From 958a7113de48344e38f16eb47542d30d7233ae8b Mon Sep 17 00:00:00 2001 From: Waseem Ahmad Date: Fri, 19 May 2017 08:38:35 +0530 Subject: [PATCH 001/183] Use variadic nature of *cobra.Command.AddCommand to add group of commands to a parent command Rather than looping over commands in a group and add it one by one to a parent command, use variadic nature of *cobra.Command.AddCommand to add the group of commands to the parent. --- pkg/kubectl/cmd/templates/command_groups.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/kubectl/cmd/templates/command_groups.go b/pkg/kubectl/cmd/templates/command_groups.go index 42baa85a607..447a39621f7 100644 --- a/pkg/kubectl/cmd/templates/command_groups.go +++ b/pkg/kubectl/cmd/templates/command_groups.go @@ -29,9 +29,7 @@ type CommandGroups []CommandGroup func (g CommandGroups) Add(c *cobra.Command) { for _, group := range g { - for _, command := range group.Commands { - c.AddCommand(command) - } + c.AddCommand(group.Commands...) } } From 8fe8e4f1067c78c70c3a8a48a4b572cb99194e8b Mon Sep 17 00:00:00 2001 From: xilabao Date: Thu, 1 Jun 2017 16:48:02 +0800 Subject: [PATCH 002/183] fix parse pairs --- pkg/kubectl/cmd/annotate_test.go | 24 ++++++++++++++++++++++++ pkg/kubectl/cmd/label_test.go | 8 ++++++++ pkg/kubectl/cmd/util/helpers.go | 6 +++--- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/pkg/kubectl/cmd/annotate_test.go b/pkg/kubectl/cmd/annotate_test.go index 7f8a2e24538..e1b6ca7d6dd 100644 --- a/pkg/kubectl/cmd/annotate_test.go +++ b/pkg/kubectl/cmd/annotate_test.go @@ -156,6 +156,18 @@ func TestParseAnnotations(t *testing.T) { scenario: "incorrect annotation input (missing =value)", expectErr: true, }, + { + annotations: []string{"-"}, + expectedErr: "invalid annotation format: -", + scenario: "incorrect annotation input (missing key)", + expectErr: true, + }, + { + annotations: []string{"=bar"}, + expectedErr: "invalid annotation format: =bar", + scenario: "incorrect annotation input (missing key)", + expectErr: true, + }, } for _, test := range tests { annotations, remove, err := parseAnnotations(test.annotations) @@ -380,6 +392,18 @@ func TestAnnotateErrors(t *testing.T) { return strings.Contains(err.Error(), "at least one annotation update is required") }, }, + "wrong annotations": { + args: []string{"pods", "-"}, + errFn: func(err error) bool { + return strings.Contains(err.Error(), "at least one annotation update is required") + }, + }, + "wrong annotations 2": { + args: []string{"pods", "=bar"}, + errFn: func(err error) bool { + return strings.Contains(err.Error(), "at least one annotation update is required") + }, + }, "no resources remove annotations": { args: []string{"pods-"}, errFn: func(err error) bool { return strings.Contains(err.Error(), "one or more resources must be specified") }, diff --git a/pkg/kubectl/cmd/label_test.go b/pkg/kubectl/cmd/label_test.go index e92dda131bd..5140ca2bcf2 100644 --- a/pkg/kubectl/cmd/label_test.go +++ b/pkg/kubectl/cmd/label_test.go @@ -289,6 +289,14 @@ func TestLabelErrors(t *testing.T) { args: []string{"pods"}, errFn: func(err error) bool { return strings.Contains(err.Error(), "at least one label update is required") }, }, + "wrong labels": { + args: []string{"pods", "-"}, + errFn: func(err error) bool { return strings.Contains(err.Error(), "at least one label update is required") }, + }, + "wrong labels 2": { + args: []string{"pods", "=bar"}, + errFn: func(err error) bool { return strings.Contains(err.Error(), "at least one label update is required") }, + }, "no resources": { args: []string{"pods-"}, errFn: func(err error) bool { return strings.Contains(err.Error(), "one or more resources must be specified") }, diff --git a/pkg/kubectl/cmd/util/helpers.go b/pkg/kubectl/cmd/util/helpers.go index 867d5c55cea..fa8ccfa7dc5 100644 --- a/pkg/kubectl/cmd/util/helpers.go +++ b/pkg/kubectl/cmd/util/helpers.go @@ -620,7 +620,7 @@ func AddInclude3rdPartyVarFlags(cmd *cobra.Command, include3rdParty *bool) { func GetResourcesAndPairs(args []string, pairType string) (resources []string, pairArgs []string, err error) { foundPair := false for _, s := range args { - nonResource := strings.Contains(s, "=") || strings.HasSuffix(s, "-") + nonResource := (strings.Contains(s, "=") && s[0] != '=') || (strings.HasSuffix(s, "-") && s != "-") switch { case !foundPair && nonResource: foundPair = true @@ -646,7 +646,7 @@ func ParsePairs(pairArgs []string, pairType string, supportRemove bool) (newPair var invalidBuf bytes.Buffer var invalidBufNonEmpty bool for _, pairArg := range pairArgs { - if strings.Contains(pairArg, "=") { + if strings.Contains(pairArg, "=") && pairArg[0] != '=' { parts := strings.SplitN(pairArg, "=", 2) if len(parts) != 2 { if invalidBufNonEmpty { @@ -657,7 +657,7 @@ func ParsePairs(pairArgs []string, pairType string, supportRemove bool) (newPair } else { newPairs[parts[0]] = parts[1] } - } else if supportRemove && strings.HasSuffix(pairArg, "-") { + } else if supportRemove && strings.HasSuffix(pairArg, "-") && pairArg != "-" { removePairs = append(removePairs, pairArg[:len(pairArg)-1]) } else { if invalidBufNonEmpty { From 712efb7aec31fc8a4cbfcf7f5ec4ee2911fc95ac Mon Sep 17 00:00:00 2001 From: Euan Kemp Date: Fri, 9 Jun 2017 16:54:06 -0700 Subject: [PATCH 003/183] owners: remove euank from sig-node-reviewers I'm already in more specific lists for things related to Container Linux or rkt and my current role doesn't leave me enough cycles to do sig-node reviewing justice. --- OWNERS_ALIASES | 1 - 1 file changed, 1 deletion(-) diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index ce21e91f747..534498221d2 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -45,7 +45,6 @@ aliases: - dchen1107 - derekwaynecarr - dims - - euank - feiskyer - mtaufen - ncdc From 3e78e53c3dcf958631b6825c41b279288914ab4f Mon Sep 17 00:00:00 2001 From: zouyee Date: Tue, 27 Jun 2017 14:51:57 +0800 Subject: [PATCH 004/183] modify some mistake --- staging/src/k8s.io/client-go/discovery/discovery_client.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/staging/src/k8s.io/client-go/discovery/discovery_client.go b/staging/src/k8s.io/client-go/discovery/discovery_client.go index 0ee46b863b4..d63b57ad96c 100644 --- a/staging/src/k8s.io/client-go/discovery/discovery_client.go +++ b/staging/src/k8s.io/client-go/discovery/discovery_client.go @@ -429,7 +429,7 @@ func NewDiscoveryClientForConfig(c *restclient.Config) (*DiscoveryClient, error) return &DiscoveryClient{restClient: client, LegacyPrefix: "/api"}, err } -// NewDiscoveryClientForConfig creates a new DiscoveryClient for the given config. If +// NewDiscoveryClientForConfigOrDie creates a new DiscoveryClient for the given config. If // there is an error, it panics. func NewDiscoveryClientForConfigOrDie(c *restclient.Config) *DiscoveryClient { client, err := NewDiscoveryClientForConfig(c) @@ -440,7 +440,7 @@ func NewDiscoveryClientForConfigOrDie(c *restclient.Config) *DiscoveryClient { } -// New creates a new DiscoveryClient for the given RESTClient. +// NewDiscoveryClient returns a new DiscoveryClient for the given RESTClient. func NewDiscoveryClient(c restclient.Interface) *DiscoveryClient { return &DiscoveryClient{restClient: c, LegacyPrefix: "/api"} } From f1afc3d09d58fc9649b4dc9d8d3a5f46a9480cbd Mon Sep 17 00:00:00 2001 From: Shiyang Wang Date: Sat, 8 Jul 2017 13:56:02 +0800 Subject: [PATCH 005/183] fix sort-by output problem --- hack/make-rules/test-cmd-util.sh | 20 ++++++++++++++++++++ pkg/kubectl/cmd/util/factory_builder.go | 11 ----------- pkg/kubectl/cmd/util/printing.go | 8 ++++++++ 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/hack/make-rules/test-cmd-util.sh b/hack/make-rules/test-cmd-util.sh index 639ceffe5cd..33befe35c28 100644 --- a/hack/make-rules/test-cmd-util.sh +++ b/hack/make-rules/test-cmd-util.sh @@ -3913,6 +3913,26 @@ run_kubectl_sort_by_tests() { kubectl get pods --sort-by="{metadata.name}" kubectl get pods --sort-by="{metadata.creationTimestamp}" + ### sort-by should works if pod exists + # Create POD + # Pre-condition: no POD exists + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + # Command + kubectl create "${kube_flags[@]}" -f test/fixtures/doc-yaml/admin/limitrange/valid-pod.yaml + # Post-condition: valid-pod is created + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + # Check output of sort-by + output_message=$(kubectl get pods --sort-by="{metadata.name}") + kube::test::if_has_string "${output_message}" "valid-pod" + ### Clean up + # Pre-condition: valid-pod exists + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" 'valid-pod:' + # Command + kubectl delete "${kube_flags[@]}" pod valid-pod --grace-period=0 --force + # Post-condition: valid-pod doesn't exist + kube::test::get_object_assert pods "{{range.items}}{{$id_field}}:{{end}}" '' + + set +o nounset set +o errexit } diff --git a/pkg/kubectl/cmd/util/factory_builder.go b/pkg/kubectl/cmd/util/factory_builder.go index 52967300ca2..e3a270fee30 100644 --- a/pkg/kubectl/cmd/util/factory_builder.go +++ b/pkg/kubectl/cmd/util/factory_builder.go @@ -32,7 +32,6 @@ import ( "k8s.io/kubernetes/pkg/kubectl/plugins" "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/printers" - printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" ) type ring2Factory struct { @@ -103,16 +102,6 @@ func (f *ring2Factory) PrinterForMapping(cmd *cobra.Command, isLocal bool, outpu printer = printers.NewVersionedPrinter(printer, mapping.ObjectConvertor, version, mapping.GroupVersionKind.GroupVersion()) - } else { - // We add handlers to the printer in case it is printers.HumanReadablePrinter. - // printers.AddHandlers expects concrete type of printers.HumanReadablePrinter - // as its parameter because of this we have to do a type check on printer and - // extract out concrete HumanReadablePrinter from it. We are then able to attach - // handlers on it. - if humanReadablePrinter, ok := printer.(*printers.HumanReadablePrinter); ok { - printersinternal.AddHandlers(humanReadablePrinter) - printer = humanReadablePrinter - } } return printer, nil diff --git a/pkg/kubectl/cmd/util/printing.go b/pkg/kubectl/cmd/util/printing.go index b1e9b3527d5..bdff16d66ec 100644 --- a/pkg/kubectl/cmd/util/printing.go +++ b/pkg/kubectl/cmd/util/printing.go @@ -26,6 +26,7 @@ import ( "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/resource" "k8s.io/kubernetes/pkg/printers" + printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" "github.com/spf13/cobra" ) @@ -126,6 +127,13 @@ func PrinterForCommand(cmd *cobra.Command, outputOpts *printers.OutputOptions, m return nil, err } + // we try to convert to HumanReadablePrinter, if return ok, it must be no generic + // we execute AddHandlers() here before maybeWrapSortingPrinter so that we don't + // need to convert to delegatePrinter again then invoke AddHandlers() + if humanReadablePrinter, ok := printer.(*printers.HumanReadablePrinter); ok { + printersinternal.AddHandlers(humanReadablePrinter) + } + return maybeWrapSortingPrinter(cmd, printer), nil } From 8e0cc7ede2e5988f420c839a43971571405f99d7 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu-zidif Date: Wed, 19 Jul 2017 22:22:01 +0800 Subject: [PATCH 006/183] add test case for pdb printer --- pkg/printers/internalversion/printers_test.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pkg/printers/internalversion/printers_test.go b/pkg/printers/internalversion/printers_test.go index ad47ec7c67e..261eecd4435 100644 --- a/pkg/printers/internalversion/printers_test.go +++ b/pkg/printers/internalversion/printers_test.go @@ -2605,6 +2605,7 @@ func TestPrintService(t *testing.T) { func TestPrintPodDisruptionBudget(t *testing.T) { minAvailable := intstr.FromInt(22) + maxUnavailable := intstr.FromInt(11) tests := []struct { pdb policy.PodDisruptionBudget expect string @@ -2624,6 +2625,22 @@ func TestPrintPodDisruptionBudget(t *testing.T) { }, }, "pdb1\t22\tN/A\t5\t0s\n", + }, + { + policy.PodDisruptionBudget{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "ns2", + Name: "pdb2", + CreationTimestamp: metav1.Time{Time: time.Now().Add(1.9e9)}, + }, + Spec: policy.PodDisruptionBudgetSpec{ + MaxUnavailable: &maxUnavailable, + }, + Status: policy.PodDisruptionBudgetStatus{ + PodDisruptionsAllowed: 5, + }, + }, + "pdb2\tN/A\t11\t5\t0s\n", }} buf := bytes.NewBuffer([]byte{}) From 2cddfd0db91f3ecfe045d315a2ef3b4cc6eb6b5a Mon Sep 17 00:00:00 2001 From: Di Xu Date: Thu, 20 Jul 2017 17:29:09 +0800 Subject: [PATCH 007/183] fix bug when azure cloud provider configuration file is not specified --- pkg/cloudprovider/providers/azure/azure.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/cloudprovider/providers/azure/azure.go b/pkg/cloudprovider/providers/azure/azure.go index 8ae82707ded..84fab4dd64b 100644 --- a/pkg/cloudprovider/providers/azure/azure.go +++ b/pkg/cloudprovider/providers/azure/azure.go @@ -327,6 +327,11 @@ func NewCloud(configReader io.Reader) (cloudprovider.Interface, error) { // ParseConfig returns a parsed configuration and azure.Environment for an Azure cloudprovider config file func ParseConfig(configReader io.Reader) (*Config, *azure.Environment, error) { var config Config + var env azure.Environment + + if configReader == nil { + return &config, &env, nil + } configContents, err := ioutil.ReadAll(configReader) if err != nil { @@ -337,7 +342,6 @@ func ParseConfig(configReader io.Reader) (*Config, *azure.Environment, error) { return nil, nil, err } - var env azure.Environment if config.Cloud == "" { env = azure.PublicCloud } else { From 935a5c1eae8de1ddac8ad7e7729ed45620046410 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu-zidif Date: Sun, 23 Jul 2017 01:59:53 +0800 Subject: [PATCH 008/183] fix f.Errorf --- pkg/kubectl/cmd/get_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/kubectl/cmd/get_test.go b/pkg/kubectl/cmd/get_test.go index e2c80d5f629..6532a7df1eb 100644 --- a/pkg/kubectl/cmd/get_test.go +++ b/pkg/kubectl/cmd/get_test.go @@ -142,7 +142,7 @@ func TestGetUnknownSchemaObject(t *testing.T) { expected := []runtime.Object{cmdtesting.NewInternalType("", "", "foo")} actual := tf.Printer.(*testPrinter).Objects if len(actual) != len(expected) { - t.Fatal(actual) + t.Fatalf("expected: %#v, but actual: %#v", expected, actual) } for i, obj := range actual { expectedJSON := runtime.EncodeOrDie(codec, expected[i]) @@ -158,7 +158,7 @@ func TestGetUnknownSchemaObject(t *testing.T) { } if !reflect.DeepEqual(expectedMap, actualMap) { - t.Errorf("unexpected object: \n%#v\n%#v", expectedMap, actualMap) + t.Errorf("expectedMap: %#v, but actualMap: %#v", expectedMap, actualMap) } } } From d717bf53b9ce5bd1c3f5fe54f74fce1b679e08e3 Mon Sep 17 00:00:00 2001 From: Ryan McNamara Date: Tue, 25 Jul 2017 13:45:07 -0700 Subject: [PATCH 009/183] DNS name error message improvement --- .../src/k8s.io/apimachinery/pkg/util/validation/validation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go b/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go index b1fcc570812..f5bab1deb06 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go @@ -126,7 +126,7 @@ func IsDNS1123Subdomain(value string) []string { } const dns1035LabelFmt string = "[a-z]([-a-z0-9]*[a-z0-9])?" -const dns1035LabelErrMsg string = "a DNS-1035 label must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character" +const dns1035LabelErrMsg string = "a DNS-1035 label must consist of lower case alphanumeric characters or '-', start with an alphabetic character, and end with an alphanumeric character" const DNS1035LabelMaxLength int = 63 var dns1035LabelRegexp = regexp.MustCompile("^" + dns1035LabelFmt + "$") From 142f142ccc8eac64a8536d3b9be8770b4fc96eb7 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu-zidif Date: Wed, 26 Jul 2017 10:20:08 +0800 Subject: [PATCH 010/183] change Errorf to Error when no printer format --- pkg/kubectl/cmd/get_test.go | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/pkg/kubectl/cmd/get_test.go b/pkg/kubectl/cmd/get_test.go index e2c80d5f629..2b2edec38d5 100644 --- a/pkg/kubectl/cmd/get_test.go +++ b/pkg/kubectl/cmd/get_test.go @@ -214,7 +214,7 @@ func TestGetObjectsWithOpenAPIOutputFormatPresent(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -260,7 +260,7 @@ func TestGetObjects(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -412,7 +412,7 @@ func TestGetSortedObjects(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -466,7 +466,7 @@ func TestGetObjectsIdentifiedByFile(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -495,7 +495,7 @@ func TestGetListObjects(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -537,7 +537,7 @@ func TestGetAllListObjects(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -566,7 +566,7 @@ func TestGetListComponentStatus(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -605,7 +605,7 @@ func TestGetMultipleTypeObjects(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -714,7 +714,7 @@ func TestGetMultipleTypeObjectsWithSelector(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -759,7 +759,7 @@ func TestGetMultipleTypeObjectsWithDirectReference(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -784,7 +784,7 @@ func TestGetByFormatForcesFlag(t *testing.T) { showAllFlag, _ := cmd.Flags().GetBool("show-all") if showAllFlag { - t.Errorf("expected showAll to not be true when getting resource") + t.Error("expected showAll to not be true when getting resource") } } @@ -904,7 +904,7 @@ func TestWatchSelector(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -946,7 +946,7 @@ func TestWatchResource(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -989,7 +989,7 @@ func TestWatchResourceIdentifiedByFile(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -1031,7 +1031,7 @@ func TestWatchOnlyResource(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } @@ -1077,7 +1077,7 @@ func TestWatchOnlyList(t *testing.T) { verifyObjects(t, expected, tf.Printer.(*testPrinter).Objects) if len(buf.String()) == 0 { - t.Errorf("unexpected empty output") + t.Error("unexpected empty output") } } From 0710d862915eb263f3db008446d5f3a5e87d3623 Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Wed, 26 Jul 2017 15:34:11 +0800 Subject: [PATCH 011/183] remove redundant comment --- pkg/volume/glusterfs/glusterfs.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pkg/volume/glusterfs/glusterfs.go b/pkg/volume/glusterfs/glusterfs.go index 92b9b09eabc..45302451603 100644 --- a/pkg/volume/glusterfs/glusterfs.go +++ b/pkg/volume/glusterfs/glusterfs.go @@ -374,7 +374,6 @@ func (b *glusterfsMounter) setUpAtInternal(dir string) error { // it all goes in a log file, we will read the log file logErr := readGlusterLog(log, b.pod.Name) if logErr != nil { - // return fmt.Errorf("glusterfs: mount failed: %v", logErr) return fmt.Errorf("glusterfs: mount failed: %v the following error information was pulled from the glusterfs log to help diagnose this issue: %v", errs, logErr) } return fmt.Errorf("glusterfs: mount failed: %v", errs) @@ -390,7 +389,7 @@ func getVolumeSource( return spec.PersistentVolume.Spec.Glusterfs, spec.ReadOnly, nil } - return nil, false, fmt.Errorf("Spec does not reference a GlusterFS volume type") + return nil, false, fmt.Errorf("Spec does not reference a Glusterfs volume type") } func (plugin *glusterfsPlugin) NewProvisioner(options volume.VolumeOptions) (volume.Provisioner, error) { @@ -488,10 +487,8 @@ func (d *glusterfsVolumeDeleter) GetPath() string { return d.plugin.host.GetPodVolumeDir(d.glusterfsMounter.glusterfs.pod.UID, strings.EscapeQualifiedNameForDisk(name), d.glusterfsMounter.glusterfs.volName) } -// // Traverse the PVs, fetching all the GIDs from those // in a given storage class, and mark them in the table. -// func (plugin *glusterfsPlugin) collectGids(className string, gidTable *MinMaxAllocator) error { kubeClient := plugin.host.GetKubeClient() if kubeClient == nil { @@ -535,12 +532,10 @@ func (plugin *glusterfsPlugin) collectGids(className string, gidTable *MinMaxAll return nil } -// // Return the gid table for a storage class. // - If this is the first time, fill it with all the gids // used in PVs of this storage class by traversing the PVs. // - Adapt the range of the table to the current range of the SC. -// func (plugin *glusterfsPlugin) getGidTable(className string, min int, max int) (*MinMaxAllocator, error) { var err error plugin.gidTableLock.Lock() From 7db36811be38ab69868db37f125bf7203dd5fda7 Mon Sep 17 00:00:00 2001 From: guangxuli Date: Wed, 26 Jul 2017 15:41:47 +0800 Subject: [PATCH 012/183] add daemonset to all categories --- pkg/kubectl/cmd/util/factory_test.go | 4 ++-- pkg/kubectl/resource/categories.go | 1 + pkg/kubectl/resource/categories_test.go | 1 + pkg/registry/extensions/daemonset/storage/storage.go | 7 +++++++ 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/kubectl/cmd/util/factory_test.go b/pkg/kubectl/cmd/util/factory_test.go index 1bfa6565665..bfeaf5ee32d 100644 --- a/pkg/kubectl/cmd/util/factory_test.go +++ b/pkg/kubectl/cmd/util/factory_test.go @@ -746,12 +746,12 @@ func TestDiscoveryReplaceAliases(t *testing.T) { { name: "all-replacement", arg: "all", - expected: "pods,replicationcontrollers,services,statefulsets.apps,horizontalpodautoscalers.autoscaling,jobs.batch,cronjobs.batch,deployments.extensions,replicasets.extensions", + expected: "pods,replicationcontrollers,services,statefulsets.apps,horizontalpodautoscalers.autoscaling,jobs.batch,cronjobs.batch,daemonsets.extensions,deployments.extensions,replicasets.extensions", }, { name: "alias-in-comma-separated-arg", arg: "all,secrets", - expected: "pods,replicationcontrollers,services,statefulsets.apps,horizontalpodautoscalers.autoscaling,jobs.batch,cronjobs.batch,deployments.extensions,replicasets.extensions,secrets", + expected: "pods,replicationcontrollers,services,statefulsets.apps,horizontalpodautoscalers.autoscaling,jobs.batch,cronjobs.batch,daemonsets.extensions,deployments.extensions,replicasets.extensions,secrets", }, } diff --git a/pkg/kubectl/resource/categories.go b/pkg/kubectl/resource/categories.go index 98f797cb3a0..9c602a996c2 100644 --- a/pkg/kubectl/resource/categories.go +++ b/pkg/kubectl/resource/categories.go @@ -118,6 +118,7 @@ var legacyUserResources = []schema.GroupResource{ {Group: "autoscaling", Resource: "horizontalpodautoscalers"}, {Group: "batch", Resource: "jobs"}, {Group: "batch", Resource: "cronjobs"}, + {Group: "extensions", Resource: "daemonsets"}, {Group: "extensions", Resource: "deployments"}, {Group: "extensions", Resource: "replicasets"}, } diff --git a/pkg/kubectl/resource/categories_test.go b/pkg/kubectl/resource/categories_test.go index a977df751e1..69314d1848c 100644 --- a/pkg/kubectl/resource/categories_test.go +++ b/pkg/kubectl/resource/categories_test.go @@ -47,6 +47,7 @@ func TestCategoryExpansion(t *testing.T) { {Resource: "horizontalpodautoscalers", Group: "autoscaling"}, {Resource: "jobs", Group: "batch"}, {Resource: "cronjobs", Group: "batch"}, + {Resource: "daemonsets", Group: "extensions"}, {Resource: "deployments", Group: "extensions"}, {Resource: "replicasets", Group: "extensions"}, }, diff --git a/pkg/registry/extensions/daemonset/storage/storage.go b/pkg/registry/extensions/daemonset/storage/storage.go index 233b4d61e12..e4bdc28f0c9 100644 --- a/pkg/registry/extensions/daemonset/storage/storage.go +++ b/pkg/registry/extensions/daemonset/storage/storage.go @@ -67,6 +67,13 @@ func (r *REST) ShortNames() []string { return []string{"ds"} } +var _ rest.CategoriesProvider = &REST{} + +// Categories implements the CategoriesProvider interface. Returns a list of categories a resource is part of. +func (r *REST) Categories() []string { + return []string{"all"} +} + // StatusREST implements the REST endpoint for changing the status of a daemonset type StatusREST struct { store *genericregistry.Store From b73ce8e47d4ab45a367e88b0bdf30cd80cd9657e Mon Sep 17 00:00:00 2001 From: Di Xu Date: Tue, 25 Jul 2017 15:38:09 +0800 Subject: [PATCH 013/183] add empty lines to separate unimplemented elements --- pkg/api/types.go | 2 ++ staging/src/k8s.io/api/core/v1/types.go | 2 ++ 2 files changed, 4 insertions(+) diff --git a/pkg/api/types.go b/pkg/api/types.go index 171bb1d828d..36219d3fe80 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -1944,6 +1944,7 @@ type PodAffinity struct { // podAffinityTerm are intersected, i.e. all terms must be satisfied. // +optional // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm + // If the affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. // If the affinity requirements specified by this field cease to be met @@ -1978,6 +1979,7 @@ type PodAntiAffinity struct { // podAffinityTerm are intersected, i.e. all terms must be satisfied. // +optional // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm + // If the anti-affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. // If the anti-affinity requirements specified by this field cease to be met diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index e99a9191ee9..1d517578fb0 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -2162,6 +2162,7 @@ type PodAffinity struct { // podAffinityTerm are intersected, i.e. all terms must be satisfied. // +optional // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"` + // If the affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. // If the affinity requirements specified by this field cease to be met @@ -2196,6 +2197,7 @@ type PodAntiAffinity struct { // podAffinityTerm are intersected, i.e. all terms must be satisfied. // +optional // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"` + // If the anti-affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. // If the anti-affinity requirements specified by this field cease to be met From b332832a17fc97a3293356b90b0204cf6fa0d1c5 Mon Sep 17 00:00:00 2001 From: Di Xu Date: Wed, 26 Jul 2017 17:01:11 +0800 Subject: [PATCH 014/183] update auto-gen --- api/openapi-spec/swagger.json | 4 ++-- api/swagger-spec/apps_v1beta1.json | 4 ++-- api/swagger-spec/apps_v1beta2.json | 4 ++-- api/swagger-spec/batch_v1.json | 4 ++-- api/swagger-spec/batch_v2alpha1.json | 4 ++-- api/swagger-spec/extensions_v1beta1.json | 4 ++-- api/swagger-spec/v1.json | 4 ++-- .../apps/v1beta1/definitions.html | 4 ++-- .../apps/v1beta2/definitions.html | 4 ++-- docs/api-reference/batch/v1/definitions.html | 4 ++-- .../batch/v2alpha1/definitions.html | 4 ++-- .../extensions/v1beta1/definitions.html | 4 ++-- docs/api-reference/v1/definitions.html | 4 ++-- federation/apis/openapi-spec/swagger.json | 4 ++-- .../apis/swagger-spec/extensions_v1beta1.json | 4 ++-- .../extensions/v1beta1/definitions.html | 4 ++-- .../src/k8s.io/api/core/v1/generated.proto | 20 ------------------- .../core/v1/types_swagger_doc_generated.go | 4 ++-- 18 files changed, 34 insertions(+), 54 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index d1eefd82f5b..2bb49a07f39 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -55062,7 +55062,7 @@ } }, "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "type": "array", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" @@ -55101,7 +55101,7 @@ } }, "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "type": "array", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json index 215ab4a142e..d72e3e8baa5 100644 --- a/api/swagger-spec/apps_v1beta1.json +++ b/api/swagger-spec/apps_v1beta1.json @@ -5540,7 +5540,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", @@ -5600,7 +5600,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json index 23a09dc3886..16f1f9ec332 100644 --- a/api/swagger-spec/apps_v1beta2.json +++ b/api/swagger-spec/apps_v1beta2.json @@ -5565,7 +5565,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", @@ -5625,7 +5625,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", diff --git a/api/swagger-spec/batch_v1.json b/api/swagger-spec/batch_v1.json index 8eb119581ab..6da7f3e6150 100644 --- a/api/swagger-spec/batch_v1.json +++ b/api/swagger-spec/batch_v1.json @@ -3287,7 +3287,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", @@ -3347,7 +3347,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", diff --git a/api/swagger-spec/batch_v2alpha1.json b/api/swagger-spec/batch_v2alpha1.json index 2e8ee8e4a3f..7819cf6d81e 100644 --- a/api/swagger-spec/batch_v2alpha1.json +++ b/api/swagger-spec/batch_v2alpha1.json @@ -4368,7 +4368,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", @@ -4428,7 +4428,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", diff --git a/api/swagger-spec/extensions_v1beta1.json b/api/swagger-spec/extensions_v1beta1.json index 2d1be589dc0..38fecf58211 100644 --- a/api/swagger-spec/extensions_v1beta1.json +++ b/api/swagger-spec/extensions_v1beta1.json @@ -8397,7 +8397,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", @@ -8457,7 +8457,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index df254d5cdc4..cfccaa08572 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -20843,7 +20843,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", @@ -20903,7 +20903,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", diff --git a/docs/api-reference/apps/v1beta1/definitions.html b/docs/api-reference/apps/v1beta1/definitions.html index 89d2253a03a..339c9496657 100755 --- a/docs/api-reference/apps/v1beta1/definitions.html +++ b/docs/api-reference/apps/v1beta1/definitions.html @@ -2274,7 +2274,7 @@ When an object is created, the system will populate this list with the current s

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

@@ -5037,7 +5037,7 @@ Examples:

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html index ce99d437d85..bf81c5f5606 100755 --- a/docs/api-reference/apps/v1beta2/definitions.html +++ b/docs/api-reference/apps/v1beta2/definitions.html @@ -2467,7 +2467,7 @@ When an object is created, the system will populate this list with the current s

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

@@ -5213,7 +5213,7 @@ Examples:

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

diff --git a/docs/api-reference/batch/v1/definitions.html b/docs/api-reference/batch/v1/definitions.html index 67792188e58..fb7805b32bb 100755 --- a/docs/api-reference/batch/v1/definitions.html +++ b/docs/api-reference/batch/v1/definitions.html @@ -1795,7 +1795,7 @@ When an object is created, the system will populate this list with the current s

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

@@ -4118,7 +4118,7 @@ Examples:

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

diff --git a/docs/api-reference/batch/v2alpha1/definitions.html b/docs/api-reference/batch/v2alpha1/definitions.html index 97c57548ee6..dc3e0905f0b 100755 --- a/docs/api-reference/batch/v2alpha1/definitions.html +++ b/docs/api-reference/batch/v2alpha1/definitions.html @@ -1795,7 +1795,7 @@ When an object is created, the system will populate this list with the current s

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

@@ -4125,7 +4125,7 @@ Examples:

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

diff --git a/docs/api-reference/extensions/v1beta1/definitions.html b/docs/api-reference/extensions/v1beta1/definitions.html index ad065bdb75a..a0f12a8ad8e 100755 --- a/docs/api-reference/extensions/v1beta1/definitions.html +++ b/docs/api-reference/extensions/v1beta1/definitions.html @@ -2779,7 +2779,7 @@ When an object is created, the system will populate this list with the current s

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

@@ -5762,7 +5762,7 @@ Examples:

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html index 97f9dbe9141..8129e01464d 100755 --- a/docs/api-reference/v1/definitions.html +++ b/docs/api-reference/v1/definitions.html @@ -3103,7 +3103,7 @@ When an object is created, the system will populate this list with the current s

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

@@ -6748,7 +6748,7 @@ Examples:

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

diff --git a/federation/apis/openapi-spec/swagger.json b/federation/apis/openapi-spec/swagger.json index 33f46ca8128..30a745a75d2 100644 --- a/federation/apis/openapi-spec/swagger.json +++ b/federation/apis/openapi-spec/swagger.json @@ -11002,7 +11002,7 @@ } }, "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "type": "array", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" @@ -11041,7 +11041,7 @@ } }, "requiredDuringSchedulingIgnoredDuringExecution": { - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "type": "array", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" diff --git a/federation/apis/swagger-spec/extensions_v1beta1.json b/federation/apis/swagger-spec/extensions_v1beta1.json index 575e7f80a6a..860322520ce 100644 --- a/federation/apis/swagger-spec/extensions_v1beta1.json +++ b/federation/apis/swagger-spec/extensions_v1beta1.json @@ -6756,7 +6756,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", @@ -6816,7 +6816,7 @@ "items": { "$ref": "v1.PodAffinityTerm" }, - "description": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." + "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied." }, "preferredDuringSchedulingIgnoredDuringExecution": { "type": "array", diff --git a/federation/docs/api-reference/extensions/v1beta1/definitions.html b/federation/docs/api-reference/extensions/v1beta1/definitions.html index 0d21241a33a..4c5a21541d3 100755 --- a/federation/docs/api-reference/extensions/v1beta1/definitions.html +++ b/federation/docs/api-reference/extensions/v1beta1/definitions.html @@ -2616,7 +2616,7 @@ When an object is created, the system will populate this list with the current s

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

@@ -5324,7 +5324,7 @@ Examples:

requiredDuringSchedulingIgnoredDuringExecution

-

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

+

If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index 4ed4c064cab..043dfe55095 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -2316,16 +2316,6 @@ message Pod { // Pod affinity is a group of inter pod affinity scheduling rules. message PodAffinity { - // NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. - // If the affinity requirements specified by this field are not met at - // scheduling time, the pod will not be scheduled onto the node. - // If the affinity requirements specified by this field cease to be met - // at some point during pod execution (e.g. due to a pod label update), the - // system will try to eventually evict the pod from its node. - // When there are multiple elements, the lists of nodes corresponding to each - // podAffinityTerm are intersected, i.e. all terms must be satisfied. - // +optional - // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"` // If the affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. // If the affinity requirements specified by this field cease to be met @@ -2377,16 +2367,6 @@ message PodAffinityTerm { // Pod anti affinity is a group of inter pod anti affinity scheduling rules. message PodAntiAffinity { - // NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. - // If the anti-affinity requirements specified by this field are not met at - // scheduling time, the pod will not be scheduled onto the node. - // If the anti-affinity requirements specified by this field cease to be met - // at some point during pod execution (e.g. due to a pod label update), the - // system will try to eventually evict the pod from its node. - // When there are multiple elements, the lists of nodes corresponding to each - // podAffinityTerm are intersected, i.e. all terms must be satisfied. - // +optional - // RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:"requiredDuringSchedulingRequiredDuringExecution,omitempty"` // If the anti-affinity requirements specified by this field are not met at // scheduling time, the pod will not be scheduled onto the node. // If the anti-affinity requirements specified by this field cease to be met diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index d4361149eba..ff8af5982b3 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -1215,7 +1215,7 @@ func (Pod) SwaggerDoc() map[string]string { var map_PodAffinity = map[string]string{ "": "Pod affinity is a group of inter pod affinity scheduling rules.", - "requiredDuringSchedulingIgnoredDuringExecution": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "requiredDuringSchedulingIgnoredDuringExecution": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "preferredDuringSchedulingIgnoredDuringExecution": "The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", } @@ -1236,7 +1236,7 @@ func (PodAffinityTerm) SwaggerDoc() map[string]string { var map_PodAntiAffinity = map[string]string{ "": "Pod anti affinity is a group of inter pod anti affinity scheduling rules.", - "requiredDuringSchedulingIgnoredDuringExecution": "NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm `json:\"requiredDuringSchedulingRequiredDuringExecution,omitempty\"` If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", + "requiredDuringSchedulingIgnoredDuringExecution": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "preferredDuringSchedulingIgnoredDuringExecution": "The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding \"weight\" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.", } From 5a8a6110a287dfa306844baba11ee19ff1b47b35 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Wed, 26 Jul 2017 16:14:39 +0200 Subject: [PATCH 015/183] Run mount in its own systemd scope. Kubelet needs to run /bin/mount in its own cgroup. - When kubelet runs as a systemd service, "systemctl restart kubelet" may kill all processes in the same cgroup and thus terminate fuse daemons that are needed for gluster and cephfs mounts. - When kubelet runs in a docker container, restart of the container kills all fuse daemons started in the container. Killing fuse daemons is bad, it basically unmounts volumes from running pods. This patch runs mount via "systemd-run --scope /bin/mount ...", which makes sure that any fuse daemons are forked in its own systemd scope (= cgroup) and they will survive restart of kubelet's systemd service or docker container. As a downside, each new fuse daemon will run in its own transient systemd service and systemctl output may be cluttered. --- pkg/util/mount/mount_linux.go | 44 +++++++++++++++++++++++++-- pkg/util/mount/nsenter_mount.go | 54 +++++++++++++++++++++++++++------ 2 files changed, 86 insertions(+), 12 deletions(-) diff --git a/pkg/util/mount/mount_linux.go b/pkg/util/mount/mount_linux.go index 1685ecb48f0..ae8a96cba3b 100644 --- a/pkg/util/mount/mount_linux.go +++ b/pkg/util/mount/mount_linux.go @@ -115,13 +115,44 @@ func doMount(mounterPath string, mountCmd string, source string, target string, mountCmd = mounterPath } + if systemdRunPath, err := exec.LookPath("systemd-run"); err == nil { + // Try to run mount via systemd-run --scope. This will escape the + // service where kubelet runs and any fuse daemons will be started in a + // specific scope. kubelet service than can be restarted without killing + // these fuse daemons. + // + // Complete command line (when mounterPath is not used): + // systemd-run --description=... --scope -- mount -t + // + // Expected flow: + // * systemd-run creates a transient scope (=~ cgroup) and executes its + // argument (/bin/mount) there. + // * mount does its job, forks a fuse daemon if necessary and finishes. + // (systemd-run --scope finishes at this point, returning mount's exit + // code and stdout/stderr - thats one of --scope benefits). + // * systemd keeps the fuse daemon running in the scope (i.e. in its own + // cgroup) until the fuse daemon dies (another --scope benefit). + // Kubelet service can be restarted and the fuse daemon survives. + // * When the fuse daemon dies (e.g. during unmount) systemd removes the + // scope automatically. + // + // systemd-mount is not used because it's too new for older distros + // (CentOS 7, Debian Jessie). + mountCmd, mountArgs = addSystemdScope(systemdRunPath, target, mountCmd, mountArgs) + } else { + // No systemd-run on the host (or we failed to check it), assume kubelet + // does not run as a systemd service. + // No code here, mountCmd and mountArgs are already populated. + } + glog.V(4).Infof("Mounting cmd (%s) with arguments (%s)", mountCmd, mountArgs) command := exec.Command(mountCmd, mountArgs...) output, err := command.CombinedOutput() if err != nil { - glog.Errorf("Mount failed: %v\nMounting command: %s\nMounting arguments: %s %s %s %v\nOutput: %s\n", err, mountCmd, source, target, fstype, options, string(output)) - return fmt.Errorf("mount failed: %v\nMounting command: %s\nMounting arguments: %s %s %s %v\nOutput: %s\n", - err, mountCmd, source, target, fstype, options, string(output)) + args := strings.Join(mountArgs, " ") + glog.Errorf("Mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s\n", err, mountCmd, args, string(output)) + return fmt.Errorf("mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s\n", + err, mountCmd, args, string(output)) } return err } @@ -145,6 +176,13 @@ func makeMountArgs(source, target, fstype string, options []string) []string { return mountArgs } +// addSystemdScope adds "system-run --scope" to given command line +func addSystemdScope(systemdRunPath, mountName, command string, args []string) (string, []string) { + descriptionArg := fmt.Sprintf("--description=Kubernetes transient mount for %s", mountName) + systemdRunArgs := []string{descriptionArg, "--scope", "--", command} + return systemdRunPath, append(systemdRunArgs, args...) +} + // Unmount unmounts the target. func (mounter *Mounter) Unmount(target string) error { glog.V(4).Infof("Unmounting %s", target) diff --git a/pkg/util/mount/nsenter_mount.go b/pkg/util/mount/nsenter_mount.go index f3a4afc1b0b..e0b82d1cd7d 100644 --- a/pkg/util/mount/nsenter_mount.go +++ b/pkg/util/mount/nsenter_mount.go @@ -50,7 +50,7 @@ import ( // contents. TODO: remove this requirement. // 6. The host image must have mount, findmnt, and umount binaries in /bin, // /usr/sbin, or /usr/bin -// +// 7. The host image should have systemd-run in /bin, /usr/sbin, or /usr/bin // For more information about mount propagation modes, see: // https://www.kernel.org/doc/Documentation/filesystems/sharedsubtree.txt type NsenterMounter struct { @@ -61,9 +61,10 @@ type NsenterMounter struct { func NewNsenterMounter() *NsenterMounter { m := &NsenterMounter{ paths: map[string]string{ - "mount": "", - "findmnt": "", - "umount": "", + "mount": "", + "findmnt": "", + "umount": "", + "systemd-run": "", }, } // search for the mount command in other locations besides /usr/bin @@ -79,6 +80,7 @@ func NewNsenterMounter() *NsenterMounter { break } // TODO: error, so that the kubelet can stop if the mounts don't exist + // (don't forget that systemd-run is optional) } return m } @@ -127,15 +129,47 @@ func (n *NsenterMounter) doNsenterMount(source, target, fstype string, options [ // makeNsenterArgs makes a list of argument to nsenter in order to do the // requested mount. func (n *NsenterMounter) makeNsenterArgs(source, target, fstype string, options []string) []string { + mountCmd := n.absHostPath("mount") + mountArgs := makeMountArgs(source, target, fstype, options) + + if systemdRunPath, hasSystemd := n.paths["systemd-run"]; hasSystemd { + // Complete command line: + // nsenter --mount=/rootfs/proc/1/ns/mnt -- /bin/systemd-run --description=... --scope -- /bin/mount -t + // Expected flow is: + // * nsenter breaks out of container's mount namespace and executes + // host's systemd-run. + // * systemd-run creates a transient scope (=~ cgroup) and executes its + // argument (/bin/mount) there. + // * mount does its job, forks a fuse daemon if necessary and finishes. + // (systemd-run --scope finishes at this point, returning mount's exit + // code and stdout/stderr - thats one of --scope benefits). + // * systemd keeps the fuse daemon running in the scope (i.e. in its own + // cgroup) until the fuse daemon dies (another --scope benefit). + // Kubelet container can be restarted and the fuse daemon survives. + // * When the daemon dies (e.g. during unmount) systemd removes the + // scope automatically. + mountCmd, mountArgs = addSystemdScope(systemdRunPath, target, mountCmd, mountArgs) + } else { + // Fall back to simple mount when the host has no systemd. + // Complete command line: + // nsenter --mount=/rootfs/proc/1/ns/mnt -- /bin/mount -t + // Expected flow is: + // * nsenter breaks out of container's mount namespace and executes host's /bin/mount. + // * mount does its job, forks a fuse daemon if necessary and finishes. + // * Any fuse daemon runs in cgroup of kubelet docker container, + // restart of kubelet container will kill it! + + // No code here, mountCmd and mountArgs use /bin/mount + } + nsenterArgs := []string{ "--mount=/rootfs/proc/1/ns/mnt", "--", - n.absHostPath("mount"), + mountCmd, } + nsenterArgs = append(nsenterArgs, mountArgs...) - args := makeMountArgs(source, target, fstype, options) - - return append(nsenterArgs, args...) + return nsenterArgs } // Unmount runs umount(8) in the host's mount namespace. @@ -146,7 +180,9 @@ func (n *NsenterMounter) Unmount(target string) error { n.absHostPath("umount"), target, } - + // No need to execute systemd-run here, it's enough that unmount is executed + // in the host's mount namespace. It will finish appropriate fuse daemon(s) + // running in any scope. glog.V(5).Infof("Unmount command: %v %v", nsenterPath, args) exec := exec.New() outputBytes, err := exec.Command(nsenterPath, args...).CombinedOutput() From 499d6c3473f27cf667913bbef0b4fd15fba3f180 Mon Sep 17 00:00:00 2001 From: Sylvain Rabot Date: Wed, 26 Jul 2017 19:04:08 +0200 Subject: [PATCH 016/183] Azure: Allow VNet to be in a separate Resource Group Define a new config VnetResourceGroup in order to be able to use a VNet which is not in the same resource group as kubernetes. Signed-off-by: Sylvain Rabot --- pkg/cloudprovider/providers/azure/azure.go | 2 ++ pkg/cloudprovider/providers/azure/azure_wrap.go | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/pkg/cloudprovider/providers/azure/azure.go b/pkg/cloudprovider/providers/azure/azure.go index 8ae82707ded..448f0643f1f 100644 --- a/pkg/cloudprovider/providers/azure/azure.go +++ b/pkg/cloudprovider/providers/azure/azure.go @@ -68,6 +68,8 @@ type Config struct { Location string `json:"location" yaml:"location"` // The name of the VNet that the cluster is deployed in VnetName string `json:"vnetName" yaml:"vnetName"` + // The name of the resource group that the Vnet is deployed in + VnetResourceGroup string `json:"vnetResourceGroup" yaml:"vnetResourceGroup"` // The name of the subnet that the cluster is deployed in SubnetName string `json:"subnetName" yaml:"subnetName"` // The name of the security group attached to the cluster's subnet diff --git a/pkg/cloudprovider/providers/azure/azure_wrap.go b/pkg/cloudprovider/providers/azure/azure_wrap.go index 7277b8c814f..e9c06dc6fc2 100644 --- a/pkg/cloudprovider/providers/azure/azure_wrap.go +++ b/pkg/cloudprovider/providers/azure/azure_wrap.go @@ -143,10 +143,17 @@ func (az *Cloud) getPublicIPAddress(name string) (pip network.PublicIPAddress, e func (az *Cloud) getSubnet(virtualNetworkName string, subnetName string) (subnet network.Subnet, exists bool, err error) { var realErr error + var rg string + + if len(az.VnetResourceGroup) > 0 { + rg = az.VnetResourceGroup + } else { + rg = az.ResourceGroup + } az.operationPollRateLimiter.Accept() glog.V(10).Infof("SubnetsClient.Get(%s): start", subnetName) - subnet, err = az.SubnetsClient.Get(az.ResourceGroup, virtualNetworkName, subnetName, "") + subnet, err = az.SubnetsClient.Get(rg, virtualNetworkName, subnetName, "") glog.V(10).Infof("SubnetsClient.Get(%s): end", subnetName) exists, realErr = checkResourceExistsFromError(err) From 17baaacb29247dbb6b04471f4bee831b0d617dc8 Mon Sep 17 00:00:00 2001 From: qingsenLi Date: Fri, 28 Jul 2017 03:11:50 +0800 Subject: [PATCH 017/183] fix the typo of intializing --- pkg/master/client_ca_hook.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/master/client_ca_hook.go b/pkg/master/client_ca_hook.go index e6d1b91001a..3a2780c92a7 100644 --- a/pkg/master/client_ca_hook.go +++ b/pkg/master/client_ca_hook.go @@ -46,7 +46,7 @@ func (h ClientCARegistrationHook) PostStartHook(hookContext genericapiserver.Pos return nil } - // intializing CAs is important so that aggregated API servers can come up with "normal" config. + // initializing CAs is important so that aggregated API servers can come up with "normal" config. // We've seen lagging etcd before, so we want to retry this a few times before we decide to crashloop // the API server on it. err := wait.Poll(1*time.Second, 30*time.Second, func() (done bool, err error) { @@ -62,7 +62,7 @@ func (h ClientCARegistrationHook) PostStartHook(hookContext genericapiserver.Pos return h.tryToWriteClientCAs(client) }) - // if we're never able to make it through intialization, kill the API server + // if we're never able to make it through initialization, kill the API server if err != nil { return fmt.Errorf("unable to initialize client CA configmap: %v", err) } From 983ecaa73d26c01bb357db043d12f3bce94f2927 Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Fri, 28 Jul 2017 17:15:43 +0800 Subject: [PATCH 018/183] Add waitForFailure for e2e test framework --- test/e2e/framework/pods.go | 17 +++++++++++++++ test/e2e_node/security_context_test.go | 30 +++++++------------------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/test/e2e/framework/pods.go b/test/e2e/framework/pods.go index fb0d1fcbd45..90ad5489f50 100644 --- a/test/e2e/framework/pods.go +++ b/test/e2e/framework/pods.go @@ -202,6 +202,23 @@ func (c *PodClient) WaitForSuccess(name string, timeout time.Duration) { )).To(Succeed(), "wait for pod %q to success", name) } +// WaitForFailure waits for pod to fail. +func (c *PodClient) WaitForFailure(name string, timeout time.Duration) { + f := c.f + Expect(WaitForPodCondition(f.ClientSet, f.Namespace.Name, name, "success or failure", timeout, + func(pod *v1.Pod) (bool, error) { + switch pod.Status.Phase { + case v1.PodFailed: + return true, nil + case v1.PodSucceeded: + return true, fmt.Errorf("pod %q successed with reason: %q, message: %q", name, pod.Status.Reason, pod.Status.Message) + default: + return false, nil + } + }, + )).To(Succeed(), "wait for pod %q to fail", name) +} + // WaitForSuccess waits for pod to succeed or an error event for that pod. func (c *PodClient) WaitForErrorEventOrSuccess(pod *v1.Pod) (*v1.Event, error) { var ev *v1.Event diff --git a/test/e2e_node/security_context_test.go b/test/e2e_node/security_context_test.go index 8ca5551fc66..55eba77e026 100644 --- a/test/e2e_node/security_context_test.go +++ b/test/e2e_node/security_context_test.go @@ -340,39 +340,25 @@ var _ = framework.KubeDescribe("Security Context", func() { podName := fmt.Sprintf("busybox-readonly-%v-%s", readOnlyRootFilesystem, uuid.NewUUID()) podClient.Create(makeUserPod(podName, "gcr.io/google_containers/busybox:1.24", - []string{"sh", "-c", "touch checkfile && [ -f checkfile ] && echo Found || true"}, + []string{"sh", "-c", "touch checkfile"}, readOnlyRootFilesystem, )) - podClient.WaitForSuccess(podName, framework.PodStartTimeout) + if readOnlyRootFilesystem { + podClient.WaitForFailure(podName, framework.PodStartTimeout) + } else { + podClient.WaitForSuccess(podName, framework.PodStartTimeout) + } return podName } It("should run the container with readonly rootfs when readOnlyRootFilesystem=true", func() { - podName := createAndWaitUserPod(true) - logs, err := framework.GetPodLogs(f.ClientSet, f.Namespace.Name, podName, podName) - if err != nil { - framework.Failf("GetPodLogs for pod %q failed: %v", podName, err) - } - - framework.Logf("Got logs for pod %q: %q", podName, logs) - if strings.Contains(logs, "Found") { - framework.Failf("readonly-rootfs container shouldn't be able to write files") - } + createAndWaitUserPod(true) }) It("should run the container with writable rootfs when readOnlyRootFilesystem=false", func() { - podName := createAndWaitUserPod(false) - logs, err := framework.GetPodLogs(f.ClientSet, f.Namespace.Name, podName, podName) - if err != nil { - framework.Failf("GetPodLogs for pod %q failed: %v", podName, err) - } - - framework.Logf("Got logs for pod %q: %q", podName, logs) - if !strings.Contains(logs, "Found") { - framework.Failf("non-readonly-rootfs container should be able to write files") - } + createAndWaitUserPod(false) }) }) }) From fa8d320a8dc57cef6058a4cb2832ba91556be622 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Thu, 27 Jul 2017 14:51:17 -0700 Subject: [PATCH 019/183] Add conversion-gen between extensions and apps --- pkg/apis/apps/v1beta1/doc.go | 1 + pkg/apis/apps/v1beta2/doc.go | 1 + 2 files changed, 2 insertions(+) diff --git a/pkg/apis/apps/v1beta1/doc.go b/pkg/apis/apps/v1beta1/doc.go index 079bf6ef9b2..058dce37f1d 100644 --- a/pkg/apis/apps/v1beta1/doc.go +++ b/pkg/apis/apps/v1beta1/doc.go @@ -15,6 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/apps +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions // +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/apps/v1beta1 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/apps/v1beta1 diff --git a/pkg/apis/apps/v1beta2/doc.go b/pkg/apis/apps/v1beta2/doc.go index 6cea002d3f5..9a0bb581994 100644 --- a/pkg/apis/apps/v1beta2/doc.go +++ b/pkg/apis/apps/v1beta2/doc.go @@ -15,6 +15,7 @@ limitations under the License. */ // +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/apps +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/extensions // +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/apps/v1beta2 // +k8s:defaulter-gen=TypeMeta // +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/apps/v1beta2 From a5e29c8af2ce87f1baa166e1aa77054c4c539f70 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Thu, 27 Jul 2017 14:53:13 -0700 Subject: [PATCH 020/183] Autogen --- .../apps/v1beta1/zz_generated.conversion.go | 372 ++++++++- .../apps/v1beta2/zz_generated.conversion.go | 728 ++++++++++++++++++ 2 files changed, 1091 insertions(+), 9 deletions(-) diff --git a/pkg/apis/apps/v1beta1/zz_generated.conversion.go b/pkg/apis/apps/v1beta1/zz_generated.conversion.go index 7da7c398cee..d5dfe18d5b4 100644 --- a/pkg/apis/apps/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta1/zz_generated.conversion.go @@ -22,13 +22,14 @@ package v1beta1 import ( v1beta1 "k8s.io/api/apps/v1beta1" - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + v1 "k8s.io/api/core/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" apps "k8s.io/kubernetes/pkg/apis/apps" + extensions "k8s.io/kubernetes/pkg/apis/extensions" unsafe "unsafe" ) @@ -44,8 +45,32 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_apps_ControllerRevision_To_v1beta1_ControllerRevision, Convert_v1beta1_ControllerRevisionList_To_apps_ControllerRevisionList, Convert_apps_ControllerRevisionList_To_v1beta1_ControllerRevisionList, + Convert_v1beta1_Deployment_To_extensions_Deployment, + Convert_extensions_Deployment_To_v1beta1_Deployment, + Convert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition, + Convert_extensions_DeploymentCondition_To_v1beta1_DeploymentCondition, + Convert_v1beta1_DeploymentList_To_extensions_DeploymentList, + Convert_extensions_DeploymentList_To_v1beta1_DeploymentList, + Convert_v1beta1_DeploymentRollback_To_extensions_DeploymentRollback, + Convert_extensions_DeploymentRollback_To_v1beta1_DeploymentRollback, + Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec, + Convert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec, + Convert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus, + Convert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus, + Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy, + Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy, + Convert_v1beta1_RollbackConfig_To_extensions_RollbackConfig, + Convert_extensions_RollbackConfig_To_v1beta1_RollbackConfig, + Convert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment, + Convert_extensions_RollingUpdateDeployment_To_v1beta1_RollingUpdateDeployment, Convert_v1beta1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy, Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta1_RollingUpdateStatefulSetStrategy, + Convert_v1beta1_Scale_To_extensions_Scale, + Convert_extensions_Scale_To_v1beta1_Scale, + Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec, + Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec, + Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus, + Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus, Convert_v1beta1_StatefulSet_To_apps_StatefulSet, Convert_apps_StatefulSet_To_v1beta1_StatefulSet, Convert_v1beta1_StatefulSetList_To_apps_StatefulSetList, @@ -129,8 +154,272 @@ func Convert_apps_ControllerRevisionList_To_v1beta1_ControllerRevisionList(in *a return autoConvert_apps_ControllerRevisionList_To_v1beta1_ControllerRevisionList(in, out, s) } +func autoConvert_v1beta1_Deployment_To_extensions_Deployment(in *v1beta1.Deployment, out *extensions.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_Deployment_To_extensions_Deployment is an autogenerated conversion function. +func Convert_v1beta1_Deployment_To_extensions_Deployment(in *v1beta1.Deployment, out *extensions.Deployment, s conversion.Scope) error { + return autoConvert_v1beta1_Deployment_To_extensions_Deployment(in, out, s) +} + +func autoConvert_extensions_Deployment_To_v1beta1_Deployment(in *extensions.Deployment, out *v1beta1.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_Deployment_To_v1beta1_Deployment is an autogenerated conversion function. +func Convert_extensions_Deployment_To_v1beta1_Deployment(in *extensions.Deployment, out *v1beta1.Deployment, s conversion.Scope) error { + return autoConvert_extensions_Deployment_To_v1beta1_Deployment(in, out, s) +} + +func autoConvert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta1.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { + out.Type = extensions.DeploymentConditionType(in.Type) + out.Status = api.ConditionStatus(in.Status) + out.LastUpdateTime = in.LastUpdateTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition is an autogenerated conversion function. +func Convert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta1.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { + return autoConvert_v1beta1_DeploymentCondition_To_extensions_DeploymentCondition(in, out, s) +} + +func autoConvert_extensions_DeploymentCondition_To_v1beta1_DeploymentCondition(in *extensions.DeploymentCondition, out *v1beta1.DeploymentCondition, s conversion.Scope) error { + out.Type = v1beta1.DeploymentConditionType(in.Type) + out.Status = v1.ConditionStatus(in.Status) + out.LastUpdateTime = in.LastUpdateTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_DeploymentCondition_To_v1beta1_DeploymentCondition is an autogenerated conversion function. +func Convert_extensions_DeploymentCondition_To_v1beta1_DeploymentCondition(in *extensions.DeploymentCondition, out *v1beta1.DeploymentCondition, s conversion.Scope) error { + return autoConvert_extensions_DeploymentCondition_To_v1beta1_DeploymentCondition(in, out, s) +} + +func autoConvert_v1beta1_DeploymentList_To_extensions_DeploymentList(in *v1beta1.DeploymentList, out *extensions.DeploymentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]extensions.Deployment, len(*in)) + for i := range *in { + if err := Convert_v1beta1_Deployment_To_extensions_Deployment(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1beta1_DeploymentList_To_extensions_DeploymentList is an autogenerated conversion function. +func Convert_v1beta1_DeploymentList_To_extensions_DeploymentList(in *v1beta1.DeploymentList, out *extensions.DeploymentList, s conversion.Scope) error { + return autoConvert_v1beta1_DeploymentList_To_extensions_DeploymentList(in, out, s) +} + +func autoConvert_extensions_DeploymentList_To_v1beta1_DeploymentList(in *extensions.DeploymentList, out *v1beta1.DeploymentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1beta1.Deployment, len(*in)) + for i := range *in { + if err := Convert_extensions_Deployment_To_v1beta1_Deployment(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = make([]v1beta1.Deployment, 0) + } + return nil +} + +// Convert_extensions_DeploymentList_To_v1beta1_DeploymentList is an autogenerated conversion function. +func Convert_extensions_DeploymentList_To_v1beta1_DeploymentList(in *extensions.DeploymentList, out *v1beta1.DeploymentList, s conversion.Scope) error { + return autoConvert_extensions_DeploymentList_To_v1beta1_DeploymentList(in, out, s) +} + +func autoConvert_v1beta1_DeploymentRollback_To_extensions_DeploymentRollback(in *v1beta1.DeploymentRollback, out *extensions.DeploymentRollback, s conversion.Scope) error { + out.Name = in.Name + out.UpdatedAnnotations = *(*map[string]string)(unsafe.Pointer(&in.UpdatedAnnotations)) + if err := Convert_v1beta1_RollbackConfig_To_extensions_RollbackConfig(&in.RollbackTo, &out.RollbackTo, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_DeploymentRollback_To_extensions_DeploymentRollback is an autogenerated conversion function. +func Convert_v1beta1_DeploymentRollback_To_extensions_DeploymentRollback(in *v1beta1.DeploymentRollback, out *extensions.DeploymentRollback, s conversion.Scope) error { + return autoConvert_v1beta1_DeploymentRollback_To_extensions_DeploymentRollback(in, out, s) +} + +func autoConvert_extensions_DeploymentRollback_To_v1beta1_DeploymentRollback(in *extensions.DeploymentRollback, out *v1beta1.DeploymentRollback, s conversion.Scope) error { + out.Name = in.Name + out.UpdatedAnnotations = *(*map[string]string)(unsafe.Pointer(&in.UpdatedAnnotations)) + if err := Convert_extensions_RollbackConfig_To_v1beta1_RollbackConfig(&in.RollbackTo, &out.RollbackTo, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_DeploymentRollback_To_v1beta1_DeploymentRollback is an autogenerated conversion function. +func Convert_extensions_DeploymentRollback_To_v1beta1_DeploymentRollback(in *extensions.DeploymentRollback, out *v1beta1.DeploymentRollback, s conversion.Scope) error { + return autoConvert_extensions_DeploymentRollback_To_v1beta1_DeploymentRollback(in, out, s) +} + +func autoConvert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta1.DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + out.Paused = in.Paused + out.RollbackTo = (*extensions.RollbackConfig)(unsafe.Pointer(in.RollbackTo)) + out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) + return nil +} + +func autoConvert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec(in *extensions.DeploymentSpec, out *v1beta1.DeploymentSpec, s conversion.Scope) error { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + out.Paused = in.Paused + out.RollbackTo = (*v1beta1.RollbackConfig)(unsafe.Pointer(in.RollbackTo)) + out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) + return nil +} + +func autoConvert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(in *v1beta1.DeploymentStatus, out *extensions.DeploymentStatus, s conversion.Scope) error { + out.ObservedGeneration = in.ObservedGeneration + out.Replicas = in.Replicas + out.UpdatedReplicas = in.UpdatedReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.UnavailableReplicas = in.UnavailableReplicas + out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions)) + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus is an autogenerated conversion function. +func Convert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(in *v1beta1.DeploymentStatus, out *extensions.DeploymentStatus, s conversion.Scope) error { + return autoConvert_v1beta1_DeploymentStatus_To_extensions_DeploymentStatus(in, out, s) +} + +func autoConvert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(in *extensions.DeploymentStatus, out *v1beta1.DeploymentStatus, s conversion.Scope) error { + out.ObservedGeneration = in.ObservedGeneration + out.Replicas = in.Replicas + out.UpdatedReplicas = in.UpdatedReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.UnavailableReplicas = in.UnavailableReplicas + out.Conditions = *(*[]v1beta1.DeploymentCondition)(unsafe.Pointer(&in.Conditions)) + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus is an autogenerated conversion function. +func Convert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(in *extensions.DeploymentStatus, out *v1beta1.DeploymentStatus, s conversion.Scope) error { + return autoConvert_extensions_DeploymentStatus_To_v1beta1_DeploymentStatus(in, out, s) +} + +func autoConvert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(in *v1beta1.DeploymentStrategy, out *extensions.DeploymentStrategy, s conversion.Scope) error { + out.Type = extensions.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(extensions.RollingUpdateDeployment) + if err := Convert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy(in *extensions.DeploymentStrategy, out *v1beta1.DeploymentStrategy, s conversion.Scope) error { + out.Type = v1beta1.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(v1beta1.RollingUpdateDeployment) + if err := Convert_extensions_RollingUpdateDeployment_To_v1beta1_RollingUpdateDeployment(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_v1beta1_RollbackConfig_To_extensions_RollbackConfig(in *v1beta1.RollbackConfig, out *extensions.RollbackConfig, s conversion.Scope) error { + out.Revision = in.Revision + return nil +} + +// Convert_v1beta1_RollbackConfig_To_extensions_RollbackConfig is an autogenerated conversion function. +func Convert_v1beta1_RollbackConfig_To_extensions_RollbackConfig(in *v1beta1.RollbackConfig, out *extensions.RollbackConfig, s conversion.Scope) error { + return autoConvert_v1beta1_RollbackConfig_To_extensions_RollbackConfig(in, out, s) +} + +func autoConvert_extensions_RollbackConfig_To_v1beta1_RollbackConfig(in *extensions.RollbackConfig, out *v1beta1.RollbackConfig, s conversion.Scope) error { + out.Revision = in.Revision + return nil +} + +// Convert_extensions_RollbackConfig_To_v1beta1_RollbackConfig is an autogenerated conversion function. +func Convert_extensions_RollbackConfig_To_v1beta1_RollbackConfig(in *extensions.RollbackConfig, out *v1beta1.RollbackConfig, s conversion.Scope) error { + return autoConvert_extensions_RollbackConfig_To_v1beta1_RollbackConfig(in, out, s) +} + +func autoConvert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(in *v1beta1.RollingUpdateDeployment, out *extensions.RollingUpdateDeployment, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) + // WARNING: in.MaxSurge requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + +func autoConvert_extensions_RollingUpdateDeployment_To_v1beta1_RollingUpdateDeployment(in *extensions.RollingUpdateDeployment, out *v1beta1.RollingUpdateDeployment, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) + // WARNING: in.MaxSurge requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + func autoConvert_v1beta1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy(in *v1beta1.RollingUpdateStatefulSetStrategy, out *apps.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Partition, &out.Partition, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Partition, &out.Partition, s); err != nil { return err } return nil @@ -142,7 +431,7 @@ func Convert_v1beta1_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateState } func autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1beta1_RollingUpdateStatefulSetStrategy(in *apps.RollingUpdateStatefulSetStrategy, out *v1beta1.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Partition, &out.Partition, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Partition, &out.Partition, s); err != nil { return err } return nil @@ -153,6 +442,71 @@ func Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta1_RollingUpdateState return autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1beta1_RollingUpdateStatefulSetStrategy(in, out, s) } +func autoConvert_v1beta1_Scale_To_extensions_Scale(in *v1beta1.Scale, out *extensions.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_Scale_To_extensions_Scale is an autogenerated conversion function. +func Convert_v1beta1_Scale_To_extensions_Scale(in *v1beta1.Scale, out *extensions.Scale, s conversion.Scope) error { + return autoConvert_v1beta1_Scale_To_extensions_Scale(in, out, s) +} + +func autoConvert_extensions_Scale_To_v1beta1_Scale(in *extensions.Scale, out *v1beta1.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_Scale_To_v1beta1_Scale is an autogenerated conversion function. +func Convert_extensions_Scale_To_v1beta1_Scale(in *extensions.Scale, out *v1beta1.Scale, s conversion.Scope) error { + return autoConvert_extensions_Scale_To_v1beta1_Scale(in, out, s) +} + +func autoConvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in *v1beta1.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in *v1beta1.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec(in, out, s) +} + +func autoConvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in *extensions.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec is an autogenerated conversion function. +func Convert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in *extensions.ScaleSpec, out *v1beta1.ScaleSpec, s conversion.Scope) error { + return autoConvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec(in, out, s) +} + +func autoConvert_v1beta1_ScaleStatus_To_extensions_ScaleStatus(in *v1beta1.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_extensions_ScaleStatus_To_v1beta1_ScaleStatus(in *extensions.ScaleStatus, out *v1beta1.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + return nil +} + func autoConvert_v1beta1_StatefulSet_To_apps_StatefulSet(in *v1beta1.StatefulSet, out *apps.StatefulSet, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta if err := Convert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec(&in.Spec, &out.Spec, s); err != nil { @@ -228,10 +582,10 @@ func Convert_apps_StatefulSetList_To_v1beta1_StatefulSetList(in *apps.StatefulSe } func autoConvert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1beta1.StatefulSetSpec, out *apps.StatefulSetSpec, s conversion.Scope) error { - if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } @@ -246,14 +600,14 @@ func autoConvert_v1beta1_StatefulSetSpec_To_apps_StatefulSetSpec(in *v1beta1.Sta } func autoConvert_apps_StatefulSetSpec_To_v1beta1_StatefulSetSpec(in *apps.StatefulSetSpec, out *v1beta1.StatefulSetSpec, s conversion.Scope) error { - if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + if err := meta_v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { return err } - out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + out.Selector = (*meta_v1.LabelSelector)(unsafe.Pointer(in.Selector)) if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { return err } - out.VolumeClaimTemplates = *(*[]core_v1.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) + out.VolumeClaimTemplates = *(*[]v1.PersistentVolumeClaim)(unsafe.Pointer(&in.VolumeClaimTemplates)) out.ServiceName = in.ServiceName out.PodManagementPolicy = v1beta1.PodManagementPolicyType(in.PodManagementPolicy) if err := Convert_apps_StatefulSetUpdateStrategy_To_v1beta1_StatefulSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { diff --git a/pkg/apis/apps/v1beta2/zz_generated.conversion.go b/pkg/apis/apps/v1beta2/zz_generated.conversion.go index 48b185a5ff1..23334b91a92 100644 --- a/pkg/apis/apps/v1beta2/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta2/zz_generated.conversion.go @@ -29,6 +29,7 @@ import ( api "k8s.io/kubernetes/pkg/api" api_v1 "k8s.io/kubernetes/pkg/api/v1" apps "k8s.io/kubernetes/pkg/apis/apps" + extensions "k8s.io/kubernetes/pkg/apis/extensions" unsafe "unsafe" ) @@ -40,8 +41,54 @@ func init() { // Public to allow building arbitrary schemes. func RegisterConversions(scheme *runtime.Scheme) error { return scheme.AddGeneratedConversionFuncs( + Convert_v1beta2_DaemonSet_To_extensions_DaemonSet, + Convert_extensions_DaemonSet_To_v1beta2_DaemonSet, + Convert_v1beta2_DaemonSetList_To_extensions_DaemonSetList, + Convert_extensions_DaemonSetList_To_v1beta2_DaemonSetList, + Convert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec, + Convert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec, + Convert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus, + Convert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus, + Convert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy, + Convert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy, + Convert_v1beta2_Deployment_To_extensions_Deployment, + Convert_extensions_Deployment_To_v1beta2_Deployment, + Convert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition, + Convert_extensions_DeploymentCondition_To_v1beta2_DeploymentCondition, + Convert_v1beta2_DeploymentList_To_extensions_DeploymentList, + Convert_extensions_DeploymentList_To_v1beta2_DeploymentList, + Convert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback, + Convert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback, + Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec, + Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec, + Convert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus, + Convert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus, + Convert_v1beta2_DeploymentStrategy_To_extensions_DeploymentStrategy, + Convert_extensions_DeploymentStrategy_To_v1beta2_DeploymentStrategy, + Convert_v1beta2_ReplicaSet_To_extensions_ReplicaSet, + Convert_extensions_ReplicaSet_To_v1beta2_ReplicaSet, + Convert_v1beta2_ReplicaSetCondition_To_extensions_ReplicaSetCondition, + Convert_extensions_ReplicaSetCondition_To_v1beta2_ReplicaSetCondition, + Convert_v1beta2_ReplicaSetList_To_extensions_ReplicaSetList, + Convert_extensions_ReplicaSetList_To_v1beta2_ReplicaSetList, + Convert_v1beta2_ReplicaSetSpec_To_extensions_ReplicaSetSpec, + Convert_extensions_ReplicaSetSpec_To_v1beta2_ReplicaSetSpec, + Convert_v1beta2_ReplicaSetStatus_To_extensions_ReplicaSetStatus, + Convert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus, + Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig, + Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig, + Convert_v1beta2_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet, + Convert_extensions_RollingUpdateDaemonSet_To_v1beta2_RollingUpdateDaemonSet, + Convert_v1beta2_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment, + Convert_extensions_RollingUpdateDeployment_To_v1beta2_RollingUpdateDeployment, Convert_v1beta2_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy, Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta2_RollingUpdateStatefulSetStrategy, + Convert_v1beta2_Scale_To_extensions_Scale, + Convert_extensions_Scale_To_v1beta2_Scale, + Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec, + Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec, + Convert_v1beta2_ScaleStatus_To_extensions_ScaleStatus, + Convert_extensions_ScaleStatus_To_v1beta2_ScaleStatus, Convert_v1beta2_StatefulSet_To_apps_StatefulSet, Convert_apps_StatefulSet_To_v1beta2_StatefulSet, Convert_v1beta2_StatefulSetList_To_apps_StatefulSetList, @@ -55,6 +102,622 @@ func RegisterConversions(scheme *runtime.Scheme) error { ) } +func autoConvert_v1beta2_DaemonSet_To_extensions_DaemonSet(in *v1beta2.DaemonSet, out *extensions.DaemonSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta2_DaemonSet_To_extensions_DaemonSet is an autogenerated conversion function. +func Convert_v1beta2_DaemonSet_To_extensions_DaemonSet(in *v1beta2.DaemonSet, out *extensions.DaemonSet, s conversion.Scope) error { + return autoConvert_v1beta2_DaemonSet_To_extensions_DaemonSet(in, out, s) +} + +func autoConvert_extensions_DaemonSet_To_v1beta2_DaemonSet(in *extensions.DaemonSet, out *v1beta2.DaemonSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_DaemonSet_To_v1beta2_DaemonSet is an autogenerated conversion function. +func Convert_extensions_DaemonSet_To_v1beta2_DaemonSet(in *extensions.DaemonSet, out *v1beta2.DaemonSet, s conversion.Scope) error { + return autoConvert_extensions_DaemonSet_To_v1beta2_DaemonSet(in, out, s) +} + +func autoConvert_v1beta2_DaemonSetList_To_extensions_DaemonSetList(in *v1beta2.DaemonSetList, out *extensions.DaemonSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]extensions.DaemonSet, len(*in)) + for i := range *in { + if err := Convert_v1beta2_DaemonSet_To_extensions_DaemonSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1beta2_DaemonSetList_To_extensions_DaemonSetList is an autogenerated conversion function. +func Convert_v1beta2_DaemonSetList_To_extensions_DaemonSetList(in *v1beta2.DaemonSetList, out *extensions.DaemonSetList, s conversion.Scope) error { + return autoConvert_v1beta2_DaemonSetList_To_extensions_DaemonSetList(in, out, s) +} + +func autoConvert_extensions_DaemonSetList_To_v1beta2_DaemonSetList(in *extensions.DaemonSetList, out *v1beta2.DaemonSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1beta2.DaemonSet, len(*in)) + for i := range *in { + if err := Convert_extensions_DaemonSet_To_v1beta2_DaemonSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = make([]v1beta2.DaemonSet, 0) + } + return nil +} + +// Convert_extensions_DaemonSetList_To_v1beta2_DaemonSetList is an autogenerated conversion function. +func Convert_extensions_DaemonSetList_To_v1beta2_DaemonSetList(in *extensions.DaemonSetList, out *v1beta2.DaemonSetList, s conversion.Scope) error { + return autoConvert_extensions_DaemonSetList_To_v1beta2_DaemonSetList(in, out, s) +} + +func autoConvert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1beta2.DaemonSetSpec, out *extensions.DaemonSetSpec, s conversion.Scope) error { + out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.TemplateGeneration = in.TemplateGeneration + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + return nil +} + +// Convert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec is an autogenerated conversion function. +func Convert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec(in *v1beta2.DaemonSetSpec, out *extensions.DaemonSetSpec, s conversion.Scope) error { + return autoConvert_v1beta2_DaemonSetSpec_To_extensions_DaemonSetSpec(in, out, s) +} + +func autoConvert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec(in *extensions.DaemonSetSpec, out *v1beta2.DaemonSetSpec, s conversion.Scope) error { + out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.TemplateGeneration = in.TemplateGeneration + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + return nil +} + +// Convert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec is an autogenerated conversion function. +func Convert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec(in *extensions.DaemonSetSpec, out *v1beta2.DaemonSetSpec, s conversion.Scope) error { + return autoConvert_extensions_DaemonSetSpec_To_v1beta2_DaemonSetSpec(in, out, s) +} + +func autoConvert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus(in *v1beta2.DaemonSetStatus, out *extensions.DaemonSetStatus, s conversion.Scope) error { + out.CurrentNumberScheduled = in.CurrentNumberScheduled + out.NumberMisscheduled = in.NumberMisscheduled + out.DesiredNumberScheduled = in.DesiredNumberScheduled + out.NumberReady = in.NumberReady + out.ObservedGeneration = in.ObservedGeneration + out.UpdatedNumberScheduled = in.UpdatedNumberScheduled + out.NumberAvailable = in.NumberAvailable + out.NumberUnavailable = in.NumberUnavailable + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus is an autogenerated conversion function. +func Convert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus(in *v1beta2.DaemonSetStatus, out *extensions.DaemonSetStatus, s conversion.Scope) error { + return autoConvert_v1beta2_DaemonSetStatus_To_extensions_DaemonSetStatus(in, out, s) +} + +func autoConvert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus(in *extensions.DaemonSetStatus, out *v1beta2.DaemonSetStatus, s conversion.Scope) error { + out.CurrentNumberScheduled = in.CurrentNumberScheduled + out.NumberMisscheduled = in.NumberMisscheduled + out.DesiredNumberScheduled = in.DesiredNumberScheduled + out.NumberReady = in.NumberReady + out.ObservedGeneration = in.ObservedGeneration + out.UpdatedNumberScheduled = in.UpdatedNumberScheduled + out.NumberAvailable = in.NumberAvailable + out.NumberUnavailable = in.NumberUnavailable + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus is an autogenerated conversion function. +func Convert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus(in *extensions.DaemonSetStatus, out *v1beta2.DaemonSetStatus, s conversion.Scope) error { + return autoConvert_extensions_DaemonSetStatus_To_v1beta2_DaemonSetStatus(in, out, s) +} + +func autoConvert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(in *v1beta2.DaemonSetUpdateStrategy, out *extensions.DaemonSetUpdateStrategy, s conversion.Scope) error { + out.Type = extensions.DaemonSetUpdateStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(extensions.RollingUpdateDaemonSet) + if err := Convert_v1beta2_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +// Convert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy is an autogenerated conversion function. +func Convert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(in *v1beta2.DaemonSetUpdateStrategy, out *extensions.DaemonSetUpdateStrategy, s conversion.Scope) error { + return autoConvert_v1beta2_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(in, out, s) +} + +func autoConvert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy(in *extensions.DaemonSetUpdateStrategy, out *v1beta2.DaemonSetUpdateStrategy, s conversion.Scope) error { + out.Type = v1beta2.DaemonSetUpdateStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(v1beta2.RollingUpdateDaemonSet) + if err := Convert_extensions_RollingUpdateDaemonSet_To_v1beta2_RollingUpdateDaemonSet(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +// Convert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy is an autogenerated conversion function. +func Convert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy(in *extensions.DaemonSetUpdateStrategy, out *v1beta2.DaemonSetUpdateStrategy, s conversion.Scope) error { + return autoConvert_extensions_DaemonSetUpdateStrategy_To_v1beta2_DaemonSetUpdateStrategy(in, out, s) +} + +func autoConvert_v1beta2_Deployment_To_extensions_Deployment(in *v1beta2.Deployment, out *extensions.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta2_Deployment_To_extensions_Deployment is an autogenerated conversion function. +func Convert_v1beta2_Deployment_To_extensions_Deployment(in *v1beta2.Deployment, out *extensions.Deployment, s conversion.Scope) error { + return autoConvert_v1beta2_Deployment_To_extensions_Deployment(in, out, s) +} + +func autoConvert_extensions_Deployment_To_v1beta2_Deployment(in *extensions.Deployment, out *v1beta2.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_Deployment_To_v1beta2_Deployment is an autogenerated conversion function. +func Convert_extensions_Deployment_To_v1beta2_Deployment(in *extensions.Deployment, out *v1beta2.Deployment, s conversion.Scope) error { + return autoConvert_extensions_Deployment_To_v1beta2_Deployment(in, out, s) +} + +func autoConvert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta2.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { + out.Type = extensions.DeploymentConditionType(in.Type) + out.Status = api.ConditionStatus(in.Status) + out.LastUpdateTime = in.LastUpdateTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition is an autogenerated conversion function. +func Convert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta2.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { + return autoConvert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition(in, out, s) +} + +func autoConvert_extensions_DeploymentCondition_To_v1beta2_DeploymentCondition(in *extensions.DeploymentCondition, out *v1beta2.DeploymentCondition, s conversion.Scope) error { + out.Type = v1beta2.DeploymentConditionType(in.Type) + out.Status = core_v1.ConditionStatus(in.Status) + out.LastUpdateTime = in.LastUpdateTime + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_DeploymentCondition_To_v1beta2_DeploymentCondition is an autogenerated conversion function. +func Convert_extensions_DeploymentCondition_To_v1beta2_DeploymentCondition(in *extensions.DeploymentCondition, out *v1beta2.DeploymentCondition, s conversion.Scope) error { + return autoConvert_extensions_DeploymentCondition_To_v1beta2_DeploymentCondition(in, out, s) +} + +func autoConvert_v1beta2_DeploymentList_To_extensions_DeploymentList(in *v1beta2.DeploymentList, out *extensions.DeploymentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]extensions.Deployment, len(*in)) + for i := range *in { + if err := Convert_v1beta2_Deployment_To_extensions_Deployment(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1beta2_DeploymentList_To_extensions_DeploymentList is an autogenerated conversion function. +func Convert_v1beta2_DeploymentList_To_extensions_DeploymentList(in *v1beta2.DeploymentList, out *extensions.DeploymentList, s conversion.Scope) error { + return autoConvert_v1beta2_DeploymentList_To_extensions_DeploymentList(in, out, s) +} + +func autoConvert_extensions_DeploymentList_To_v1beta2_DeploymentList(in *extensions.DeploymentList, out *v1beta2.DeploymentList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1beta2.Deployment, len(*in)) + for i := range *in { + if err := Convert_extensions_Deployment_To_v1beta2_Deployment(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = make([]v1beta2.Deployment, 0) + } + return nil +} + +// Convert_extensions_DeploymentList_To_v1beta2_DeploymentList is an autogenerated conversion function. +func Convert_extensions_DeploymentList_To_v1beta2_DeploymentList(in *extensions.DeploymentList, out *v1beta2.DeploymentList, s conversion.Scope) error { + return autoConvert_extensions_DeploymentList_To_v1beta2_DeploymentList(in, out, s) +} + +func autoConvert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback(in *v1beta2.DeploymentRollback, out *extensions.DeploymentRollback, s conversion.Scope) error { + out.Name = in.Name + out.UpdatedAnnotations = *(*map[string]string)(unsafe.Pointer(&in.UpdatedAnnotations)) + if err := Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(&in.RollbackTo, &out.RollbackTo, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback is an autogenerated conversion function. +func Convert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback(in *v1beta2.DeploymentRollback, out *extensions.DeploymentRollback, s conversion.Scope) error { + return autoConvert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback(in, out, s) +} + +func autoConvert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback(in *extensions.DeploymentRollback, out *v1beta2.DeploymentRollback, s conversion.Scope) error { + out.Name = in.Name + out.UpdatedAnnotations = *(*map[string]string)(unsafe.Pointer(&in.UpdatedAnnotations)) + if err := Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(&in.RollbackTo, &out.RollbackTo, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback is an autogenerated conversion function. +func Convert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback(in *extensions.DeploymentRollback, out *v1beta2.DeploymentRollback, s conversion.Scope) error { + return autoConvert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback(in, out, s) +} + +func autoConvert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta2.DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { + if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_v1beta2_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + out.Paused = in.Paused + out.RollbackTo = (*extensions.RollbackConfig)(unsafe.Pointer(in.RollbackTo)) + out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) + return nil +} + +func autoConvert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(in *extensions.DeploymentSpec, out *v1beta2.DeploymentSpec, s conversion.Scope) error { + if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + if err := Convert_extensions_DeploymentStrategy_To_v1beta2_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) + out.Paused = in.Paused + out.RollbackTo = (*v1beta2.RollbackConfig)(unsafe.Pointer(in.RollbackTo)) + out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) + return nil +} + +func autoConvert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus(in *v1beta2.DeploymentStatus, out *extensions.DeploymentStatus, s conversion.Scope) error { + out.ObservedGeneration = in.ObservedGeneration + out.Replicas = in.Replicas + out.UpdatedReplicas = in.UpdatedReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.UnavailableReplicas = in.UnavailableReplicas + out.Conditions = *(*[]extensions.DeploymentCondition)(unsafe.Pointer(&in.Conditions)) + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus is an autogenerated conversion function. +func Convert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus(in *v1beta2.DeploymentStatus, out *extensions.DeploymentStatus, s conversion.Scope) error { + return autoConvert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus(in, out, s) +} + +func autoConvert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus(in *extensions.DeploymentStatus, out *v1beta2.DeploymentStatus, s conversion.Scope) error { + out.ObservedGeneration = in.ObservedGeneration + out.Replicas = in.Replicas + out.UpdatedReplicas = in.UpdatedReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.UnavailableReplicas = in.UnavailableReplicas + out.Conditions = *(*[]v1beta2.DeploymentCondition)(unsafe.Pointer(&in.Conditions)) + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) + return nil +} + +// Convert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus is an autogenerated conversion function. +func Convert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus(in *extensions.DeploymentStatus, out *v1beta2.DeploymentStatus, s conversion.Scope) error { + return autoConvert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus(in, out, s) +} + +func autoConvert_v1beta2_DeploymentStrategy_To_extensions_DeploymentStrategy(in *v1beta2.DeploymentStrategy, out *extensions.DeploymentStrategy, s conversion.Scope) error { + out.Type = extensions.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(extensions.RollingUpdateDeployment) + if err := Convert_v1beta2_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_extensions_DeploymentStrategy_To_v1beta2_DeploymentStrategy(in *extensions.DeploymentStrategy, out *v1beta2.DeploymentStrategy, s conversion.Scope) error { + out.Type = v1beta2.DeploymentStrategyType(in.Type) + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + *out = new(v1beta2.RollingUpdateDeployment) + if err := Convert_extensions_RollingUpdateDeployment_To_v1beta2_RollingUpdateDeployment(*in, *out, s); err != nil { + return err + } + } else { + out.RollingUpdate = nil + } + return nil +} + +func autoConvert_v1beta2_ReplicaSet_To_extensions_ReplicaSet(in *v1beta2.ReplicaSet, out *extensions.ReplicaSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta2_ReplicaSetSpec_To_extensions_ReplicaSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta2_ReplicaSetStatus_To_extensions_ReplicaSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta2_ReplicaSet_To_extensions_ReplicaSet is an autogenerated conversion function. +func Convert_v1beta2_ReplicaSet_To_extensions_ReplicaSet(in *v1beta2.ReplicaSet, out *extensions.ReplicaSet, s conversion.Scope) error { + return autoConvert_v1beta2_ReplicaSet_To_extensions_ReplicaSet(in, out, s) +} + +func autoConvert_extensions_ReplicaSet_To_v1beta2_ReplicaSet(in *extensions.ReplicaSet, out *v1beta2.ReplicaSet, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_ReplicaSetSpec_To_v1beta2_ReplicaSetSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_ReplicaSet_To_v1beta2_ReplicaSet is an autogenerated conversion function. +func Convert_extensions_ReplicaSet_To_v1beta2_ReplicaSet(in *extensions.ReplicaSet, out *v1beta2.ReplicaSet, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSet_To_v1beta2_ReplicaSet(in, out, s) +} + +func autoConvert_v1beta2_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v1beta2.ReplicaSetCondition, out *extensions.ReplicaSetCondition, s conversion.Scope) error { + out.Type = extensions.ReplicaSetConditionType(in.Type) + out.Status = api.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_v1beta2_ReplicaSetCondition_To_extensions_ReplicaSetCondition is an autogenerated conversion function. +func Convert_v1beta2_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in *v1beta2.ReplicaSetCondition, out *extensions.ReplicaSetCondition, s conversion.Scope) error { + return autoConvert_v1beta2_ReplicaSetCondition_To_extensions_ReplicaSetCondition(in, out, s) +} + +func autoConvert_extensions_ReplicaSetCondition_To_v1beta2_ReplicaSetCondition(in *extensions.ReplicaSetCondition, out *v1beta2.ReplicaSetCondition, s conversion.Scope) error { + out.Type = v1beta2.ReplicaSetConditionType(in.Type) + out.Status = core_v1.ConditionStatus(in.Status) + out.LastTransitionTime = in.LastTransitionTime + out.Reason = in.Reason + out.Message = in.Message + return nil +} + +// Convert_extensions_ReplicaSetCondition_To_v1beta2_ReplicaSetCondition is an autogenerated conversion function. +func Convert_extensions_ReplicaSetCondition_To_v1beta2_ReplicaSetCondition(in *extensions.ReplicaSetCondition, out *v1beta2.ReplicaSetCondition, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSetCondition_To_v1beta2_ReplicaSetCondition(in, out, s) +} + +func autoConvert_v1beta2_ReplicaSetList_To_extensions_ReplicaSetList(in *v1beta2.ReplicaSetList, out *extensions.ReplicaSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]extensions.ReplicaSet, len(*in)) + for i := range *in { + if err := Convert_v1beta2_ReplicaSet_To_extensions_ReplicaSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = nil + } + return nil +} + +// Convert_v1beta2_ReplicaSetList_To_extensions_ReplicaSetList is an autogenerated conversion function. +func Convert_v1beta2_ReplicaSetList_To_extensions_ReplicaSetList(in *v1beta2.ReplicaSetList, out *extensions.ReplicaSetList, s conversion.Scope) error { + return autoConvert_v1beta2_ReplicaSetList_To_extensions_ReplicaSetList(in, out, s) +} + +func autoConvert_extensions_ReplicaSetList_To_v1beta2_ReplicaSetList(in *extensions.ReplicaSetList, out *v1beta2.ReplicaSetList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]v1beta2.ReplicaSet, len(*in)) + for i := range *in { + if err := Convert_extensions_ReplicaSet_To_v1beta2_ReplicaSet(&(*in)[i], &(*out)[i], s); err != nil { + return err + } + } + } else { + out.Items = make([]v1beta2.ReplicaSet, 0) + } + return nil +} + +// Convert_extensions_ReplicaSetList_To_v1beta2_ReplicaSetList is an autogenerated conversion function. +func Convert_extensions_ReplicaSetList_To_v1beta2_ReplicaSetList(in *extensions.ReplicaSetList, out *v1beta2.ReplicaSetList, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSetList_To_v1beta2_ReplicaSetList(in, out, s) +} + +func autoConvert_v1beta2_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *v1beta2.ReplicaSetSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error { + if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +func autoConvert_extensions_ReplicaSetSpec_To_v1beta2_ReplicaSetSpec(in *extensions.ReplicaSetSpec, out *v1beta2.ReplicaSetSpec, s conversion.Scope) error { + if err := v1.Convert_int32_To_Pointer_int32(&in.Replicas, &out.Replicas, s); err != nil { + return err + } + out.MinReadySeconds = in.MinReadySeconds + out.Selector = (*v1.LabelSelector)(unsafe.Pointer(in.Selector)) + if err := api_v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil { + return err + } + return nil +} + +func autoConvert_v1beta2_ReplicaSetStatus_To_extensions_ReplicaSetStatus(in *v1beta2.ReplicaSetStatus, out *extensions.ReplicaSetStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.FullyLabeledReplicas = in.FullyLabeledReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]extensions.ReplicaSetCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_v1beta2_ReplicaSetStatus_To_extensions_ReplicaSetStatus is an autogenerated conversion function. +func Convert_v1beta2_ReplicaSetStatus_To_extensions_ReplicaSetStatus(in *v1beta2.ReplicaSetStatus, out *extensions.ReplicaSetStatus, s conversion.Scope) error { + return autoConvert_v1beta2_ReplicaSetStatus_To_extensions_ReplicaSetStatus(in, out, s) +} + +func autoConvert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus(in *extensions.ReplicaSetStatus, out *v1beta2.ReplicaSetStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + out.FullyLabeledReplicas = in.FullyLabeledReplicas + out.ReadyReplicas = in.ReadyReplicas + out.AvailableReplicas = in.AvailableReplicas + out.ObservedGeneration = in.ObservedGeneration + out.Conditions = *(*[]v1beta2.ReplicaSetCondition)(unsafe.Pointer(&in.Conditions)) + return nil +} + +// Convert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus is an autogenerated conversion function. +func Convert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus(in *extensions.ReplicaSetStatus, out *v1beta2.ReplicaSetStatus, s conversion.Scope) error { + return autoConvert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus(in, out, s) +} + +func autoConvert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(in *v1beta2.RollbackConfig, out *extensions.RollbackConfig, s conversion.Scope) error { + out.Revision = in.Revision + return nil +} + +// Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig is an autogenerated conversion function. +func Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(in *v1beta2.RollbackConfig, out *extensions.RollbackConfig, s conversion.Scope) error { + return autoConvert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(in, out, s) +} + +func autoConvert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(in *extensions.RollbackConfig, out *v1beta2.RollbackConfig, s conversion.Scope) error { + out.Revision = in.Revision + return nil +} + +// Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig is an autogenerated conversion function. +func Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(in *extensions.RollbackConfig, out *v1beta2.RollbackConfig, s conversion.Scope) error { + return autoConvert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(in, out, s) +} + +func autoConvert_v1beta2_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet(in *v1beta2.RollingUpdateDaemonSet, out *extensions.RollingUpdateDaemonSet, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + +func autoConvert_extensions_RollingUpdateDaemonSet_To_v1beta2_RollingUpdateDaemonSet(in *extensions.RollingUpdateDaemonSet, out *v1beta2.RollingUpdateDaemonSet, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + +func autoConvert_v1beta2_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment(in *v1beta2.RollingUpdateDeployment, out *extensions.RollingUpdateDeployment, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) + // WARNING: in.MaxSurge requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + +func autoConvert_extensions_RollingUpdateDeployment_To_v1beta2_RollingUpdateDeployment(in *extensions.RollingUpdateDeployment, out *v1beta2.RollingUpdateDeployment, s conversion.Scope) error { + // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) + // WARNING: in.MaxSurge requires manual conversion: inconvertible types (k8s.io/apimachinery/pkg/util/intstr.IntOrString vs *k8s.io/apimachinery/pkg/util/intstr.IntOrString) + return nil +} + func autoConvert_v1beta2_RollingUpdateStatefulSetStrategy_To_apps_RollingUpdateStatefulSetStrategy(in *v1beta2.RollingUpdateStatefulSetStrategy, out *apps.RollingUpdateStatefulSetStrategy, s conversion.Scope) error { if err := v1.Convert_Pointer_int32_To_int32(&in.Partition, &out.Partition, s); err != nil { return err @@ -79,6 +742,71 @@ func Convert_apps_RollingUpdateStatefulSetStrategy_To_v1beta2_RollingUpdateState return autoConvert_apps_RollingUpdateStatefulSetStrategy_To_v1beta2_RollingUpdateStatefulSetStrategy(in, out, s) } +func autoConvert_v1beta2_Scale_To_extensions_Scale(in *v1beta2.Scale, out *extensions.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_v1beta2_ScaleStatus_To_extensions_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta2_Scale_To_extensions_Scale is an autogenerated conversion function. +func Convert_v1beta2_Scale_To_extensions_Scale(in *v1beta2.Scale, out *extensions.Scale, s conversion.Scope) error { + return autoConvert_v1beta2_Scale_To_extensions_Scale(in, out, s) +} + +func autoConvert_extensions_Scale_To_v1beta2_Scale(in *extensions.Scale, out *v1beta2.Scale, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + if err := Convert_extensions_ScaleStatus_To_v1beta2_ScaleStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + +// Convert_extensions_Scale_To_v1beta2_Scale is an autogenerated conversion function. +func Convert_extensions_Scale_To_v1beta2_Scale(in *extensions.Scale, out *v1beta2.Scale, s conversion.Scope) error { + return autoConvert_extensions_Scale_To_v1beta2_Scale(in, out, s) +} + +func autoConvert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(in *v1beta2.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec is an autogenerated conversion function. +func Convert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(in *v1beta2.ScaleSpec, out *extensions.ScaleSpec, s conversion.Scope) error { + return autoConvert_v1beta2_ScaleSpec_To_extensions_ScaleSpec(in, out, s) +} + +func autoConvert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(in *extensions.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { + out.Replicas = in.Replicas + return nil +} + +// Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec is an autogenerated conversion function. +func Convert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(in *extensions.ScaleSpec, out *v1beta2.ScaleSpec, s conversion.Scope) error { + return autoConvert_extensions_ScaleSpec_To_v1beta2_ScaleSpec(in, out, s) +} + +func autoConvert_v1beta2_ScaleStatus_To_extensions_ScaleStatus(in *v1beta2.ScaleStatus, out *extensions.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (map[string]string vs *k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector) + // WARNING: in.TargetSelector requires manual conversion: does not exist in peer-type + return nil +} + +func autoConvert_extensions_ScaleStatus_To_v1beta2_ScaleStatus(in *extensions.ScaleStatus, out *v1beta2.ScaleStatus, s conversion.Scope) error { + out.Replicas = in.Replicas + // WARNING: in.Selector requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector vs map[string]string) + return nil +} + func autoConvert_v1beta2_StatefulSet_To_apps_StatefulSet(in *v1beta2.StatefulSet, out *apps.StatefulSet, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta if err := Convert_v1beta2_StatefulSetSpec_To_apps_StatefulSetSpec(&in.Spec, &out.Spec, s); err != nil { From 604dfb319775090f715fbf2270ded63ce7474f15 Mon Sep 17 00:00:00 2001 From: Timo Reimann Date: Sun, 18 Jun 2017 00:34:22 +0200 Subject: [PATCH 021/183] Relax restrictions on environment variable names. The POSIX standard restricts environment variable names to uppercase letters, digits, and the underscore character in shell contexts only. For generic application usage, it is stated that all other characters shall be tolerated. This change relaxes the rules to some degree. Namely, we stop requiring environment variable names to be strict C_IDENTIFIERS and start permitting lowercase, dot, and dash characters. Public container images using environment variable names beyond the shell-only context can benefit from this relaxation. Elasticsearch is one popular example. --- pkg/api/types.go | 2 +- pkg/api/validation/validation.go | 4 +- pkg/api/validation/validation_test.go | 47 +++++++++++++++---- pkg/kubectl/configmap_test.go | 2 +- pkg/kubectl/env_file.go | 2 +- pkg/kubectl/run.go | 2 +- pkg/kubectl/run_test.go | 5 ++ pkg/kubectl/secret_test.go | 2 +- pkg/kubelet/kubelet_pods.go | 4 +- pkg/kubelet/kubelet_pods_test.go | 12 ++--- .../pkg/util/validation/validation.go | 37 ++++++++++++--- 11 files changed, 88 insertions(+), 31 deletions(-) diff --git a/pkg/api/types.go b/pkg/api/types.go index 171bb1d828d..ef84c2794f4 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -1440,7 +1440,7 @@ type SecretKeySelector struct { // EnvFromSource represents the source of a set of ConfigMaps type EnvFromSource struct { - // An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER. + // An optional identifier to prepend to each key in the ConfigMap. // +optional Prefix string // The ConfigMap to select from. diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index f6bd510bfdd..d0f4eed9cee 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -1548,7 +1548,7 @@ func ValidateEnv(vars []api.EnvVar, fldPath *field.Path) field.ErrorList { if len(ev.Name) == 0 { allErrs = append(allErrs, field.Required(idxPath.Child("name"), "")) } else { - for _, msg := range validation.IsCIdentifier(ev.Name) { + for _, msg := range validation.IsEnvVarName(ev.Name) { allErrs = append(allErrs, field.Invalid(idxPath.Child("name"), ev.Name, msg)) } } @@ -1637,7 +1637,7 @@ func ValidateEnvFrom(vars []api.EnvFromSource, fldPath *field.Path) field.ErrorL for i, ev := range vars { idxPath := fldPath.Index(i) if len(ev.Prefix) > 0 { - for _, msg := range validation.IsCIdentifier(ev.Prefix) { + for _, msg := range validation.IsEnvVarName(ev.Prefix) { allErrs = append(allErrs, field.Invalid(idxPath.Child("prefix"), ev.Prefix, msg)) } } diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index 6f0940d03e1..77908b03e5e 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -43,7 +43,7 @@ const ( maxLengthErrMsg = "must be no more than" namePartErrMsg = "name part must consist of" nameErrMsg = "a qualified name must consist of" - idErrMsg = "a valid C identifier must" + envVarNameErrMsg = "a valid environment variable name must consist of" ) func testVolume(name string, namespace string, spec api.PersistentVolumeSpec) *api.PersistentVolume { @@ -2575,6 +2575,8 @@ func TestValidateEnv(t *testing.T) { {Name: "ABC", Value: "value"}, {Name: "AbC_123", Value: "value"}, {Name: "abc", Value: ""}, + {Name: "a.b.c", Value: "value"}, + {Name: "a-b-c", Value: "value"}, { Name: "abc", ValueFrom: &api.EnvVarSource{ @@ -2676,9 +2678,24 @@ func TestValidateEnv(t *testing.T) { expectedError: "[0].name: Required value", }, { - name: "name not a C identifier", - envs: []api.EnvVar{{Name: "a.b.c"}}, - expectedError: `[0].name: Invalid value: "a.b.c": ` + idErrMsg, + name: "illegal character", + envs: []api.EnvVar{{Name: "a!b"}}, + expectedError: `[0].name: Invalid value: "a!b": ` + envVarNameErrMsg, + }, + { + name: "dot only", + envs: []api.EnvVar{{Name: "."}}, + expectedError: `[0].name: Invalid value: ".": must not be`, + }, + { + name: "double dots only", + envs: []api.EnvVar{{Name: ".."}}, + expectedError: `[0].name: Invalid value: "..": must not be`, + }, + { + name: "leading double dots", + envs: []api.EnvVar{{Name: "..abc"}}, + expectedError: `[0].name: Invalid value: "..abc": must not start with`, }, { name: "value and valueFrom specified", @@ -2897,6 +2914,12 @@ func TestValidateEnvFrom(t *testing.T) { LocalObjectReference: api.LocalObjectReference{Name: "abc"}, }, }, + { + Prefix: "a.b", + ConfigMapRef: &api.ConfigMapEnvSource{ + LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + }, + }, { SecretRef: &api.SecretEnvSource{ LocalObjectReference: api.LocalObjectReference{Name: "abc"}, @@ -2908,6 +2931,12 @@ func TestValidateEnvFrom(t *testing.T) { LocalObjectReference: api.LocalObjectReference{Name: "abc"}, }, }, + { + Prefix: "a.b", + SecretRef: &api.SecretEnvSource{ + LocalObjectReference: api.LocalObjectReference{Name: "abc"}, + }, + }, } if errs := ValidateEnvFrom(successCase, field.NewPath("field")); len(errs) != 0 { t.Errorf("expected success: %v", errs) @@ -2942,12 +2971,12 @@ func TestValidateEnvFrom(t *testing.T) { name: "invalid prefix", envs: []api.EnvFromSource{ { - Prefix: "a.b", + Prefix: "a!b", ConfigMapRef: &api.ConfigMapEnvSource{ LocalObjectReference: api.LocalObjectReference{Name: "abc"}}, }, }, - expectedError: `field[0].prefix: Invalid value: "a.b": ` + idErrMsg, + expectedError: `field[0].prefix: Invalid value: "a!b": ` + envVarNameErrMsg, }, { name: "zero-length name", @@ -2973,12 +3002,12 @@ func TestValidateEnvFrom(t *testing.T) { name: "invalid prefix", envs: []api.EnvFromSource{ { - Prefix: "a.b", + Prefix: "a!b", SecretRef: &api.SecretEnvSource{ LocalObjectReference: api.LocalObjectReference{Name: "abc"}}, }, }, - expectedError: `field[0].prefix: Invalid value: "a.b": ` + idErrMsg, + expectedError: `field[0].prefix: Invalid value: "a!b": ` + envVarNameErrMsg, }, { name: "no refs", @@ -3374,7 +3403,7 @@ func TestValidateContainers(t *testing.T) { ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, }, "invalid env var name": { - {Name: "abc", Image: "image", Env: []api.EnvVar{{Name: "ev.1"}}, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, + {Name: "abc", Image: "image", Env: []api.EnvVar{{Name: "ev!1"}}, ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}, }, "unknown volume name": { {Name: "abc", Image: "image", VolumeMounts: []api.VolumeMount{{Name: "anything", MountPath: "/foo"}}, diff --git a/pkg/kubectl/configmap_test.go b/pkg/kubectl/configmap_test.go index 5690c2e0f0a..b5c98b58f4c 100644 --- a/pkg/kubectl/configmap_test.go +++ b/pkg/kubectl/configmap_test.go @@ -157,7 +157,7 @@ func TestConfigMapGenerate(t *testing.T) { expectErr: true, }, { - setup: setupEnvFile("key.1=value1"), + setup: setupEnvFile("key#1=value1"), params: map[string]interface{}{ "name": "invalid_key", "from-env-file": "file.env", diff --git a/pkg/kubectl/env_file.go b/pkg/kubectl/env_file.go index ce24c710441..19598d5354a 100644 --- a/pkg/kubectl/env_file.go +++ b/pkg/kubectl/env_file.go @@ -55,7 +55,7 @@ func proccessEnvFileLine(line []byte, filePath string, data := strings.SplitN(string(line), "=", 2) key = data[0] - if errs := validation.IsCIdentifier(key); len(errs) != 0 { + if errs := validation.IsEnvVarName(key); len(errs) != 0 { return ``, ``, fmt.Errorf("%q is not a valid key name: %s", key, strings.Join(errs, ";")) } diff --git a/pkg/kubectl/run.go b/pkg/kubectl/run.go index e1f4549d62c..dbf9ba7d0c0 100644 --- a/pkg/kubectl/run.go +++ b/pkg/kubectl/run.go @@ -868,7 +868,7 @@ func parseEnvs(envArray []string) ([]v1.EnvVar, error) { if len(name) == 0 { return nil, fmt.Errorf("invalid env: %v", env) } - if len(validation.IsCIdentifier(name)) != 0 { + if len(validation.IsEnvVarName(name)) != 0 { return nil, fmt.Errorf("invalid env: %v", env) } envVar := v1.EnvVar{Name: name, Value: value} diff --git a/pkg/kubectl/run_test.go b/pkg/kubectl/run_test.go index 16a6e9423ab..114550ff3b2 100644 --- a/pkg/kubectl/run_test.go +++ b/pkg/kubectl/run_test.go @@ -1030,6 +1030,7 @@ func TestParseEnv(t *testing.T) { { envArray: []string{ "THIS_ENV=isOK", + "this.dotted.env=isOKToo", "HAS_COMMAS=foo,bar", "HAS_EQUALS=jJnro54iUu75xNy==", }, @@ -1038,6 +1039,10 @@ func TestParseEnv(t *testing.T) { Name: "THIS_ENV", Value: "isOK", }, + { + Name: "this.dotted.env", + Value: "isOKToo", + }, { Name: "HAS_COMMAS", Value: "foo,bar", diff --git a/pkg/kubectl/secret_test.go b/pkg/kubectl/secret_test.go index 309c7848d65..e7c1e7478be 100644 --- a/pkg/kubectl/secret_test.go +++ b/pkg/kubectl/secret_test.go @@ -157,7 +157,7 @@ func TestSecretGenerate(t *testing.T) { expectErr: true, }, { - setup: setupEnvFile("key.1=value1"), + setup: setupEnvFile("key#1=value1"), params: map[string]interface{}{ "name": "invalid_key", "from-env-file": "file.env", diff --git a/pkg/kubelet/kubelet_pods.go b/pkg/kubelet/kubelet_pods.go index a0651a680d9..ddc62038d03 100644 --- a/pkg/kubelet/kubelet_pods.go +++ b/pkg/kubelet/kubelet_pods.go @@ -472,7 +472,7 @@ func (kl *Kubelet) makeEnvironmentVariables(pod *v1.Pod, container *v1.Container if len(envFrom.Prefix) > 0 { k = envFrom.Prefix + k } - if errMsgs := utilvalidation.IsCIdentifier(k); len(errMsgs) != 0 { + if errMsgs := utilvalidation.IsEnvVarName(k); len(errMsgs) != 0 { invalidKeys = append(invalidKeys, k) continue } @@ -507,7 +507,7 @@ func (kl *Kubelet) makeEnvironmentVariables(pod *v1.Pod, container *v1.Container if len(envFrom.Prefix) > 0 { k = envFrom.Prefix + k } - if errMsgs := utilvalidation.IsCIdentifier(k); len(errMsgs) != 0 { + if errMsgs := utilvalidation.IsEnvVarName(k); len(errMsgs) != 0 { invalidKeys = append(invalidKeys, k) continue } diff --git a/pkg/kubelet/kubelet_pods_test.go b/pkg/kubelet/kubelet_pods_test.go index 16b8bf68b89..986de4fac8c 100644 --- a/pkg/kubelet/kubelet_pods_test.go +++ b/pkg/kubelet/kubelet_pods_test.go @@ -1219,14 +1219,14 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "test-secret", }, Data: map[string][]byte{ - "1234": []byte("abc"), - "1z": []byte("abc"), - "key": []byte("value"), + "1234": []byte("abc"), + "1z": []byte("abc"), + "key.1": []byte("value"), }, }, expectedEnvs: []kubecontainer.EnvVar{ { - Name: "key", + Name: "key.1", Value: "value", }, }, @@ -1250,12 +1250,12 @@ func TestMakeEnvironmentVariables(t *testing.T) { Name: "test-secret", }, Data: map[string][]byte{ - "1234": []byte("abc"), + "1234.name": []byte("abc"), }, }, expectedEnvs: []kubecontainer.EnvVar{ { - Name: "p_1234", + Name: "p_1234.name", Value: "abc", }, }, diff --git a/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go b/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go index b1fcc570812..85ba8467bb8 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/validation/validation.go @@ -277,6 +277,22 @@ func IsHTTPHeaderName(value string) []string { return nil } +const envVarNameFmt = "[-._a-zA-Z][-._a-zA-Z0-9]*" +const envVarNameFmtErrMsg string = "a valid environment variable name must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit" + +var envVarNameRegexp = regexp.MustCompile("^" + envVarNameFmt + "$") + +// IsEnvVarName tests if a string is a valid environment variable name. +func IsEnvVarName(value string) []string { + var errs []string + if !envVarNameRegexp.MatchString(value) { + errs = append(errs, RegexError(envVarNameFmtErrMsg, envVarNameFmt, "my.env-name", "MY_ENV.NAME", "MyEnvName1")) + } + + errs = append(errs, hasChDirPrefix(value)...) + return errs +} + const configMapKeyFmt = `[-._a-zA-Z0-9]+` const configMapKeyErrMsg string = "a valid config key must consist of alphanumeric characters, '-', '_' or '.'" @@ -291,13 +307,7 @@ func IsConfigMapKey(value string) []string { if !configMapKeyRegexp.MatchString(value) { errs = append(errs, RegexError(configMapKeyErrMsg, configMapKeyFmt, "key.name", "KEY_NAME", "key-name")) } - if value == "." { - errs = append(errs, `must not be '.'`) - } else if value == ".." { - errs = append(errs, `must not be '..'`) - } else if strings.HasPrefix(value, "..") { - errs = append(errs, `must not start with '..'`) - } + errs = append(errs, hasChDirPrefix(value)...) return errs } @@ -341,3 +351,16 @@ func prefixEach(msgs []string, prefix string) []string { func InclusiveRangeError(lo, hi int) string { return fmt.Sprintf(`must be between %d and %d, inclusive`, lo, hi) } + +func hasChDirPrefix(value string) []string { + var errs []string + switch { + case value == ".": + errs = append(errs, `must not be '.'`) + case value == "..": + errs = append(errs, `must not be '..'`) + case strings.HasPrefix(value, ".."): + errs = append(errs, `must not start with '..'`) + } + return errs +} From 11e8f3a88dddcac5f83490eb44ff05a43e1ab113 Mon Sep 17 00:00:00 2001 From: FengyunPan Date: Sat, 29 Jul 2017 11:23:23 +0800 Subject: [PATCH 022/183] Filter duplicate ips or hostnames for ingress Fix issue: #48654 --- pkg/printers/internalversion/printers.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/printers/internalversion/printers.go b/pkg/printers/internalversion/printers.go index 32c80da9f7b..4d0834cb534 100644 --- a/pkg/printers/internalversion/printers.go +++ b/pkg/printers/internalversion/printers.go @@ -702,15 +702,16 @@ func printCronJobList(list *batch.CronJobList, options printers.PrintOptions) ([ // `wide` indicates whether the returned value is meant for --o=wide output. If not, it's clipped to 16 bytes. func loadBalancerStatusStringer(s api.LoadBalancerStatus, wide bool) string { ingress := s.Ingress - result := []string{} + result := sets.NewString() for i := range ingress { if ingress[i].IP != "" { - result = append(result, ingress[i].IP) + result.Insert(ingress[i].IP) } else if ingress[i].Hostname != "" { - result = append(result, ingress[i].Hostname) + result.Insert(ingress[i].Hostname) } } - r := strings.Join(result, ",") + + r := strings.Join(result.List(), ",") if !wide && len(r) > loadBalancerWidth { r = r[0:(loadBalancerWidth-3)] + "..." } From 9e8d4b41882987725d18c931f8c7ac5028eb2060 Mon Sep 17 00:00:00 2001 From: jianglingxia Date: Sat, 29 Jul 2017 16:47:14 +0800 Subject: [PATCH 023/183] Renamed packge name to apiv1 --- pkg/controller/deployment/util/deployment_util_test.go | 6 +++--- pkg/controller/serviceaccount/tokengetter.go | 6 +++--- pkg/kubectl/cmd/util/factory.go | 6 +++--- pkg/kubectl/history.go | 4 ++-- pkg/kubectl/rollback.go | 8 ++++---- pkg/kubectl/rolling_updater.go | 4 ++-- 6 files changed, 17 insertions(+), 17 deletions(-) diff --git a/pkg/controller/deployment/util/deployment_util_test.go b/pkg/controller/deployment/util/deployment_util_test.go index d28f1f80bf2..3f60518eeff 100644 --- a/pkg/controller/deployment/util/deployment_util_test.go +++ b/pkg/controller/deployment/util/deployment_util_test.go @@ -35,7 +35,7 @@ import ( "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/kubernetes/scheme" core "k8s.io/client-go/testing" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + apiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/controller" ) @@ -147,7 +147,7 @@ func generatePod(labels map[string]string, image string) v1.Pod { func generateRSWithLabel(labels map[string]string, image string) extensions.ReplicaSet { return extensions.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ - Name: k8s_api_v1.SimpleNameGenerator.GenerateName("replicaset"), + Name: apiv1.SimpleNameGenerator.GenerateName("replicaset"), Labels: labels, }, Spec: extensions.ReplicaSetSpec{ @@ -190,7 +190,7 @@ func generateRS(deployment extensions.Deployment) extensions.ReplicaSet { return extensions.ReplicaSet{ ObjectMeta: metav1.ObjectMeta{ UID: randomUID(), - Name: k8s_api_v1.SimpleNameGenerator.GenerateName("replicaset"), + Name: apiv1.SimpleNameGenerator.GenerateName("replicaset"), Labels: template.Labels, OwnerReferences: []metav1.OwnerReference{*newDControllerRef(&deployment)}, }, diff --git a/pkg/controller/serviceaccount/tokengetter.go b/pkg/controller/serviceaccount/tokengetter.go index d8b325c0dce..e81f1381573 100644 --- a/pkg/controller/serviceaccount/tokengetter.go +++ b/pkg/controller/serviceaccount/tokengetter.go @@ -23,7 +23,7 @@ import ( "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/storage/storagebackend" clientset "k8s.io/client-go/kubernetes" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + apiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/registry/core/secret" secretstore "k8s.io/kubernetes/pkg/registry/core/secret/storage" serviceaccountregistry "k8s.io/kubernetes/pkg/registry/core/serviceaccount" @@ -68,7 +68,7 @@ func (r *registryGetter) GetServiceAccount(namespace, name string) (*v1.ServiceA return nil, err } v1ServiceAccount := v1.ServiceAccount{} - err = k8s_api_v1.Convert_api_ServiceAccount_To_v1_ServiceAccount(internalServiceAccount, &v1ServiceAccount, nil) + err = apiv1.Convert_api_ServiceAccount_To_v1_ServiceAccount(internalServiceAccount, &v1ServiceAccount, nil) return &v1ServiceAccount, err } @@ -79,7 +79,7 @@ func (r *registryGetter) GetSecret(namespace, name string) (*v1.Secret, error) { return nil, err } v1Secret := v1.Secret{} - err = k8s_api_v1.Convert_api_Secret_To_v1_Secret(internalSecret, &v1Secret, nil) + err = apiv1.Convert_api_Secret_To_v1_Secret(internalSecret, &v1Secret, nil) return &v1Secret, err } diff --git a/pkg/kubectl/cmd/util/factory.go b/pkg/kubectl/cmd/util/factory.go index 999e49d72fe..13419716ce5 100644 --- a/pkg/kubectl/cmd/util/factory.go +++ b/pkg/kubectl/cmd/util/factory.go @@ -47,7 +47,7 @@ import ( "k8s.io/client-go/tools/clientcmd" fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + apiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/api/validation" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" @@ -296,13 +296,13 @@ func GetFirstPod(client coreclient.PodsGetter, namespace string, selector labels for i := range podList.Items { pod := podList.Items[i] externalPod := &v1.Pod{} - k8s_api_v1.Convert_api_Pod_To_v1_Pod(&pod, externalPod, nil) + apiv1.Convert_api_Pod_To_v1_Pod(&pod, externalPod, nil) pods = append(pods, externalPod) } if len(pods) > 0 { sort.Sort(sortBy(pods)) internalPod := &api.Pod{} - k8s_api_v1.Convert_v1_Pod_To_api_Pod(pods[0], internalPod, nil) + apiv1.Convert_v1_Pod_To_api_Pod(pods[0], internalPod, nil) return internalPod, len(podList.Items), nil } diff --git a/pkg/kubectl/history.go b/pkg/kubectl/history.go index b1feece1511..5e2fd9c7e44 100644 --- a/pkg/kubectl/history.go +++ b/pkg/kubectl/history.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/util/strategicpatch" externalclientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + apiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/extensions" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -138,7 +138,7 @@ func (h *DeploymentHistoryViewer) ViewHistory(namespace, name string, revision i func printTemplate(template *v1.PodTemplateSpec) (string, error) { buf := bytes.NewBuffer([]byte{}) internalTemplate := &api.PodTemplateSpec{} - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate, %v", err) } w := printersinternal.NewPrefixWriter(buf) diff --git a/pkg/kubectl/rollback.go b/pkg/kubectl/rollback.go index 5312bfbeb99..43a8ccbc65f 100644 --- a/pkg/kubectl/rollback.go +++ b/pkg/kubectl/rollback.go @@ -33,7 +33,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + apiv1 "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/extensions" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" @@ -181,7 +181,7 @@ func simpleDryRun(deployment *extensions.Deployment, c clientset.Interface, toRe } buf := bytes.NewBuffer([]byte{}) internalTemplate := &api.PodTemplateSpec{} - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate, %v", err) } w := printersinternal.NewPrefixWriter(buf) @@ -200,7 +200,7 @@ func simpleDryRun(deployment *extensions.Deployment, c clientset.Interface, toRe buf := bytes.NewBuffer([]byte{}) buf.WriteString("\n") internalTemplate := &api.PodTemplateSpec{} - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(template, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate, %v", err) } w := printersinternal.NewPrefixWriter(buf) @@ -258,7 +258,7 @@ func (r *DaemonSetRollbacker) Rollback(obj runtime.Object, updatedAnnotations ma content := bytes.NewBuffer([]byte{}) w := printersinternal.NewPrefixWriter(content) internalTemplate := &api.PodTemplateSpec{} - if err := k8s_api_v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&appliedDS.Spec.Template, internalTemplate, nil); err != nil { + if err := apiv1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&appliedDS.Spec.Template, internalTemplate, nil); err != nil { return "", fmt.Errorf("failed to convert podtemplate while printing: %v", err) } printersinternal.DescribePodTemplate(internalTemplate, w) diff --git a/pkg/kubectl/rolling_updater.go b/pkg/kubectl/rolling_updater.go index 3c50e3921ed..d0a49c6006e 100644 --- a/pkg/kubectl/rolling_updater.go +++ b/pkg/kubectl/rolling_updater.go @@ -32,7 +32,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/util/integer" "k8s.io/kubernetes/pkg/api" - k8s_api_v1 "k8s.io/kubernetes/pkg/api/v1" + apiv1 "k8s.io/kubernetes/pkg/api/v1" podutil "k8s.io/kubernetes/pkg/api/v1/pod" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" "k8s.io/kubernetes/pkg/client/retry" @@ -424,7 +424,7 @@ func (r *RollingUpdater) readyPods(oldRc, newRc *api.ReplicationController, minR } for _, pod := range pods.Items { v1Pod := &v1.Pod{} - if err := k8s_api_v1.Convert_api_Pod_To_v1_Pod(&pod, v1Pod, nil); err != nil { + if err := apiv1.Convert_api_Pod_To_v1_Pod(&pod, v1Pod, nil); err != nil { return 0, 0, err } // Do not count deleted pods as ready From 376b5f8079556f88637739c2d30f5fc50ebdfda6 Mon Sep 17 00:00:00 2001 From: David Ashpole Date: Mon, 31 Jul 2017 10:40:13 -0700 Subject: [PATCH 024/183] ignore udp metrics in k8s --- pkg/kubelet/cadvisor/cadvisor_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/kubelet/cadvisor/cadvisor_linux.go b/pkg/kubelet/cadvisor/cadvisor_linux.go index cdbe96a27e4..751fed4341c 100644 --- a/pkg/kubelet/cadvisor/cadvisor_linux.go +++ b/pkg/kubelet/cadvisor/cadvisor_linux.go @@ -100,7 +100,7 @@ func New(address string, port uint, runtime string, rootPath string) (Interface, sysFs := sysfs.NewRealSysFs() // Create and start the cAdvisor container manager. - m, err := manager.New(memory.New(statsCacheDuration, nil), sysFs, maxHousekeepingInterval, allowDynamicHousekeeping, cadvisormetrics.MetricSet{cadvisormetrics.NetworkTcpUsageMetrics: struct{}{}}, http.DefaultClient) + m, err := manager.New(memory.New(statsCacheDuration, nil), sysFs, maxHousekeepingInterval, allowDynamicHousekeeping, cadvisormetrics.MetricSet{cadvisormetrics.NetworkTcpUsageMetrics: struct{}{}, cadvisormetrics.NetworkUdpUsageMetrics: struct{}{}}, http.DefaultClient) if err != nil { return nil, err } From 079883fe443fea529363e5242ccd3f8178f9ea7a Mon Sep 17 00:00:00 2001 From: Alexander Campbell Date: Mon, 17 Jul 2017 14:48:59 -0700 Subject: [PATCH 025/183] kubectl: deploy generators don't need to impl Generator iface I was able to delete some outdated tests as part of this change. --- pkg/kubectl/BUILD | 1 - pkg/kubectl/cmd/util/factory_client_access.go | 10 +- pkg/kubectl/deployment.go | 49 ---- pkg/kubectl/deployment_test.go | 247 ------------------ 4 files changed, 6 insertions(+), 301 deletions(-) delete mode 100644 pkg/kubectl/deployment_test.go diff --git a/pkg/kubectl/BUILD b/pkg/kubectl/BUILD index 52a40a1c946..f2a842fa0cd 100644 --- a/pkg/kubectl/BUILD +++ b/pkg/kubectl/BUILD @@ -14,7 +14,6 @@ go_test( "cluster_test.go", "configmap_test.go", "delete_test.go", - "deployment_test.go", "env_file_test.go", "generate_test.go", "kubectl_test.go", diff --git a/pkg/kubectl/cmd/util/factory_client_access.go b/pkg/kubectl/cmd/util/factory_client_access.go index 7e04fb8e80a..a274381e009 100644 --- a/pkg/kubectl/cmd/util/factory_client_access.go +++ b/pkg/kubectl/cmd/util/factory_client_access.go @@ -510,10 +510,12 @@ func DefaultGenerators(cmdName string) map[string]kubectl.Generator { ServiceLoadBalancerGeneratorV1Name: kubectl.ServiceLoadBalancerGeneratorV1{}, } case "deployment": - generator = map[string]kubectl.Generator{ - DeploymentBasicV1Beta1GeneratorName: kubectl.DeploymentBasicGeneratorV1{}, - DeploymentBasicAppsV1Beta1GeneratorName: kubectl.DeploymentBasicAppsGeneratorV1{}, - } + // Create Deployment has only StructuredGenerators and no + // param-based Generators. + // The StructuredGenerators are as follows (as of 2017-07-17): + // DeploymentBasicV1Beta1GeneratorName -> kubectl.DeploymentBasicGeneratorV1 + // DeploymentBasicAppsV1Beta1GeneratorName -> kubectl.DeploymentBasicAppsGeneratorV1 + generator = map[string]kubectl.Generator{} case "run": generator = map[string]kubectl.Generator{ RunV1GeneratorName: kubectl.BasicReplicationController{}, diff --git a/pkg/kubectl/deployment.go b/pkg/kubectl/deployment.go index da764b7593a..76a4f1f4436 100644 --- a/pkg/kubectl/deployment.go +++ b/pkg/kubectl/deployment.go @@ -36,16 +36,6 @@ type BaseDeploymentGenerator struct { Images []string } -// ParamNames: return the parameters expected by the BaseDeploymentGenerator. -// This method is here to aid in validation. When given a Generator, you can -// learn what it expects by calling this method. -func (BaseDeploymentGenerator) ParamNames() []GeneratorParam { - return []GeneratorParam{ - {"name", true}, - {"image", true}, - } -} - // validate: check if the caller has forgotten to set one of our fields. func (b BaseDeploymentGenerator) validate() error { if len(b.Name) == 0 { @@ -57,29 +47,6 @@ func (b BaseDeploymentGenerator) validate() error { return nil } -// baseDeploymentGeneratorFromParams: return a new BaseDeploymentGenerator with -// the fields set from params. The returned BaseDeploymentGenerator should have -// all required fields set and will pass validate() with no errors. -func baseDeploymentGeneratorFromParams(params map[string]interface{}) (*BaseDeploymentGenerator, error) { - paramNames := (BaseDeploymentGenerator{}).ParamNames() - err := ValidateParams(paramNames, params) - if err != nil { - return nil, err - } - name, isString := params["name"].(string) - if !isString { - return nil, fmt.Errorf("expected string, saw %v for 'name'", name) - } - imageStrings, isArray := params["image"].([]string) - if !isArray { - return nil, fmt.Errorf("expected []string, found :%v", imageStrings) - } - return &BaseDeploymentGenerator{ - Name: name, - Images: imageStrings, - }, nil -} - // structuredGenerate: determine the fields of a deployment. The struct that // embeds BaseDeploymentGenerator should assemble these pieces into a // runtime.Object. @@ -127,14 +94,6 @@ type DeploymentBasicGeneratorV1 struct { // Ensure it supports the generator pattern that uses parameters specified during construction var _ StructuredGenerator = &DeploymentBasicGeneratorV1{} -func (s DeploymentBasicGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error) { - base, err := baseDeploymentGeneratorFromParams(params) - if err != nil { - return nil, err - } - return (&DeploymentBasicGeneratorV1{*base}).StructuredGenerate() -} - // StructuredGenerate outputs a deployment object using the configured fields func (s *DeploymentBasicGeneratorV1) StructuredGenerate() (runtime.Object, error) { podSpec, labels, selector, err := s.structuredGenerate() @@ -165,14 +124,6 @@ type DeploymentBasicAppsGeneratorV1 struct { // Ensure it supports the generator pattern that uses parameters specified during construction var _ StructuredGenerator = &DeploymentBasicAppsGeneratorV1{} -func (s DeploymentBasicAppsGeneratorV1) Generate(params map[string]interface{}) (runtime.Object, error) { - base, err := baseDeploymentGeneratorFromParams(params) - if err != nil { - return nil, err - } - return (&DeploymentBasicAppsGeneratorV1{*base}).StructuredGenerate() -} - // StructuredGenerate outputs a deployment object using the configured fields func (s *DeploymentBasicAppsGeneratorV1) StructuredGenerate() (runtime.Object, error) { podSpec, labels, selector, err := s.structuredGenerate() diff --git a/pkg/kubectl/deployment_test.go b/pkg/kubectl/deployment_test.go deleted file mode 100644 index b32aebb2f1d..00000000000 --- a/pkg/kubectl/deployment_test.go +++ /dev/null @@ -1,247 +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 kubectl - -import ( - "reflect" - "testing" - - appsv1beta1 "k8s.io/api/apps/v1beta1" - "k8s.io/api/core/v1" - extensionsv1beta1 "k8s.io/api/extensions/v1beta1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -func TestDeploymentGenerate(t *testing.T) { - one := int32(1) - tests := []struct { - params map[string]interface{} - expected *extensionsv1beta1.Deployment - expectErr bool - }{ - { - params: map[string]interface{}{ - "name": "foo", - "image": []string{"abc/app:v4"}, - }, - expected: &extensionsv1beta1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Labels: map[string]string{"app": "foo"}, - }, - Spec: extensionsv1beta1.DeploymentSpec{ - Replicas: &one, - Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app": "foo"}}, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"app": "foo"}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{{Name: "app", Image: "abc/app:v4"}}, - }, - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{ - "name": "foo", - "image": []string{"abc/app:v4", "zyx/ape"}, - }, - expected: &extensionsv1beta1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Labels: map[string]string{"app": "foo"}, - }, - Spec: extensionsv1beta1.DeploymentSpec{ - Replicas: &one, - Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app": "foo"}}, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"app": "foo"}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{{Name: "app", Image: "abc/app:v4"}, - {Name: "ape", Image: "zyx/ape"}}, - }, - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{}, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": 1, - }, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": nil, - }, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": "foo", - "image": []string{}, - }, - expectErr: true, - }, - { - params: map[string]interface{}{ - "NAME": "some_value", - }, - expectErr: true, - }, - } - generator := DeploymentBasicGeneratorV1{} - for index, test := range tests { - t.Logf("running scenario %d", index) - obj, err := generator.Generate(test.params) - switch { - case test.expectErr && err != nil: - continue // loop, since there's no output to check - case test.expectErr && err == nil: - t.Errorf("expected error and didn't get one") - continue // loop, no expected output object - case !test.expectErr && err != nil: - t.Errorf("unexpected error %v", err) - continue // loop, no output object - case !test.expectErr && err == nil: - // do nothing and drop through - } - if !reflect.DeepEqual(obj.(*extensionsv1beta1.Deployment), test.expected) { - t.Errorf("expected:\n%#v\nsaw:\n%#v", test.expected, obj.(*extensionsv1beta1.Deployment)) - } - } -} - -func TestAppsDeploymentGenerate(t *testing.T) { - one := int32(1) - tests := []struct { - params map[string]interface{} - expected *appsv1beta1.Deployment - expectErr bool - }{ - { - params: map[string]interface{}{ - "name": "foo", - "image": []string{"abc/app:v4"}, - }, - expected: &appsv1beta1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Labels: map[string]string{"app": "foo"}, - }, - Spec: appsv1beta1.DeploymentSpec{ - Replicas: &one, - Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app": "foo"}}, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"app": "foo"}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{{Name: "app", Image: "abc/app:v4"}}, - }, - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{ - "name": "foo", - "image": []string{"abc/app:v4", "zyx/ape"}, - }, - expected: &appsv1beta1.Deployment{ - ObjectMeta: metav1.ObjectMeta{ - Name: "foo", - Labels: map[string]string{"app": "foo"}, - }, - Spec: appsv1beta1.DeploymentSpec{ - Replicas: &one, - Selector: &metav1.LabelSelector{MatchLabels: map[string]string{"app": "foo"}}, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{"app": "foo"}, - }, - Spec: v1.PodSpec{ - Containers: []v1.Container{{Name: "app", Image: "abc/app:v4"}, - {Name: "ape", Image: "zyx/ape"}}, - }, - }, - }, - }, - expectErr: false, - }, - { - params: map[string]interface{}{}, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": 1, - }, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": nil, - }, - expectErr: true, - }, - { - params: map[string]interface{}{ - "name": "foo", - "image": []string{}, - }, - expectErr: true, - }, - { - params: map[string]interface{}{ - "NAME": "some_value", - }, - expectErr: true, - }, - } - generator := DeploymentBasicAppsGeneratorV1{} - for index, test := range tests { - t.Logf("running scenario %d", index) - obj, err := generator.Generate(test.params) - switch { - case test.expectErr && err != nil: - continue // loop, since there's no output to check - case test.expectErr && err == nil: - t.Errorf("expected error and didn't get one") - continue // loop, no expected output object - case !test.expectErr && err != nil: - t.Errorf("unexpected error %v", err) - continue // loop, no output object - case !test.expectErr && err == nil: - // do nothing and drop through - } - if !reflect.DeepEqual(obj.(*appsv1beta1.Deployment), test.expected) { - t.Errorf("expected:\n%#v\nsaw:\n%#v", test.expected, obj.(*appsv1beta1.Deployment)) - } - } -} From 9fbf8f57ddff6507f5819cbc6715d12bec0fc45a Mon Sep 17 00:00:00 2001 From: Seth Jennings Date: Fri, 19 May 2017 12:20:11 -0500 Subject: [PATCH 026/183] add UpdateContainerResources function to CRI --- pkg/kubelet/apis/cri/services.go | 2 + .../apis/cri/testing/fake_runtime_service.go | 4 + .../apis/cri/v1alpha1/runtime/api.pb.go | 1198 +++++++++++------ .../apis/cri/v1alpha1/runtime/api.proto | 15 + pkg/kubelet/dockershim/docker_container.go | 19 + pkg/kubelet/dockershim/libdocker/client.go | 1 + .../dockershim/libdocker/fake_client.go | 4 + .../libdocker/instrumented_client.go | 9 + .../libdocker/kube_docker_client.go | 10 + .../dockershim/remote/docker_service.go | 8 + .../kuberuntime/instrumented_services.go | 9 + pkg/kubelet/remote/remote_runtime.go | 17 + pkg/kubelet/rktshim/app-interface.go | 5 + pkg/kubelet/rktshim/fake-app-interface.go | 4 + 14 files changed, 922 insertions(+), 383 deletions(-) diff --git a/pkg/kubelet/apis/cri/services.go b/pkg/kubelet/apis/cri/services.go index 36b11e3f9b9..8a2394dd397 100644 --- a/pkg/kubelet/apis/cri/services.go +++ b/pkg/kubelet/apis/cri/services.go @@ -43,6 +43,8 @@ type ContainerManager interface { ListContainers(filter *runtimeapi.ContainerFilter) ([]*runtimeapi.Container, error) // ContainerStatus returns the status of the container. ContainerStatus(containerID string) (*runtimeapi.ContainerStatus, error) + // UpdateContainerResources updates the cgroup resources for the container. + UpdateContainerResources(containerID string, resources *runtimeapi.LinuxContainerResources) error // ExecSync executes a command in the container, and returns the stdout output. // If command exits with a non-zero exit code, an error is returned. ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error) diff --git a/pkg/kubelet/apis/cri/testing/fake_runtime_service.go b/pkg/kubelet/apis/cri/testing/fake_runtime_service.go index c26d13abcd3..9738d18a997 100644 --- a/pkg/kubelet/apis/cri/testing/fake_runtime_service.go +++ b/pkg/kubelet/apis/cri/testing/fake_runtime_service.go @@ -362,6 +362,10 @@ func (r *FakeRuntimeService) ContainerStatus(containerID string) (*runtimeapi.Co return &status, nil } +func (r *FakeRuntimeService) UpdateContainerResources(string, *runtimeapi.LinuxContainerResources) error { + return nil +} + func (r *FakeRuntimeService) ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error) { r.Lock() defer r.Unlock() diff --git a/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go b/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go index 754d92c496d..dffb9689dfb 100644 --- a/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go +++ b/pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go @@ -79,6 +79,8 @@ limitations under the License. ContainerStatusRequest ContainerStatus ContainerStatusResponse + UpdateContainerResourcesRequest + UpdateContainerResourcesResponse ExecSyncRequest ExecSyncResponse ExecRequest @@ -1191,6 +1193,10 @@ type LinuxContainerResources struct { MemoryLimitInBytes int64 `protobuf:"varint,4,opt,name=memory_limit_in_bytes,json=memoryLimitInBytes,proto3" json:"memory_limit_in_bytes,omitempty"` // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified). OomScoreAdj int64 `protobuf:"varint,5,opt,name=oom_score_adj,json=oomScoreAdj,proto3" json:"oom_score_adj,omitempty"` + // CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified). + CpusetCpus string `protobuf:"bytes,6,opt,name=cpuset_cpus,json=cpusetCpus,proto3" json:"cpuset_cpus,omitempty"` + // CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified). + CpusetMems string `protobuf:"bytes,7,opt,name=cpuset_mems,json=cpusetMems,proto3" json:"cpuset_mems,omitempty"` } func (m *LinuxContainerResources) Reset() { *m = LinuxContainerResources{} } @@ -1232,6 +1238,20 @@ func (m *LinuxContainerResources) GetOomScoreAdj() int64 { return 0 } +func (m *LinuxContainerResources) GetCpusetCpus() string { + if m != nil { + return m.CpusetCpus + } + return "" +} + +func (m *LinuxContainerResources) GetCpusetMems() string { + if m != nil { + return m.CpusetMems + } + return "" +} + // SELinuxOption are the labels to be applied to the container. type SELinuxOption struct { User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` @@ -2205,6 +2225,42 @@ func (m *ContainerStatusResponse) GetStatus() *ContainerStatus { return nil } +type UpdateContainerResourcesRequest struct { + // ID of the container to update. + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Resource configuration specific to Linux containers. + Linux *LinuxContainerResources `protobuf:"bytes,2,opt,name=linux" json:"linux,omitempty"` +} + +func (m *UpdateContainerResourcesRequest) Reset() { *m = UpdateContainerResourcesRequest{} } +func (*UpdateContainerResourcesRequest) ProtoMessage() {} +func (*UpdateContainerResourcesRequest) Descriptor() ([]byte, []int) { + return fileDescriptorApi, []int{54} +} + +func (m *UpdateContainerResourcesRequest) GetContainerId() string { + if m != nil { + return m.ContainerId + } + return "" +} + +func (m *UpdateContainerResourcesRequest) GetLinux() *LinuxContainerResources { + if m != nil { + return m.Linux + } + return nil +} + +type UpdateContainerResourcesResponse struct { +} + +func (m *UpdateContainerResourcesResponse) Reset() { *m = UpdateContainerResourcesResponse{} } +func (*UpdateContainerResourcesResponse) ProtoMessage() {} +func (*UpdateContainerResourcesResponse) Descriptor() ([]byte, []int) { + return fileDescriptorApi, []int{55} +} + type ExecSyncRequest struct { // ID of the container. ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` @@ -2216,7 +2272,7 @@ type ExecSyncRequest struct { func (m *ExecSyncRequest) Reset() { *m = ExecSyncRequest{} } func (*ExecSyncRequest) ProtoMessage() {} -func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{54} } +func (*ExecSyncRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} } func (m *ExecSyncRequest) GetContainerId() string { if m != nil { @@ -2250,7 +2306,7 @@ type ExecSyncResponse struct { func (m *ExecSyncResponse) Reset() { *m = ExecSyncResponse{} } func (*ExecSyncResponse) ProtoMessage() {} -func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{55} } +func (*ExecSyncResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} } func (m *ExecSyncResponse) GetStdout() []byte { if m != nil { @@ -2286,7 +2342,7 @@ type ExecRequest struct { func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (*ExecRequest) ProtoMessage() {} -func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{56} } +func (*ExecRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} } func (m *ExecRequest) GetContainerId() string { if m != nil { @@ -2323,7 +2379,7 @@ type ExecResponse struct { func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (*ExecResponse) ProtoMessage() {} -func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{57} } +func (*ExecResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} } func (m *ExecResponse) GetUrl() string { if m != nil { @@ -2344,7 +2400,7 @@ type AttachRequest struct { func (m *AttachRequest) Reset() { *m = AttachRequest{} } func (*AttachRequest) ProtoMessage() {} -func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{58} } +func (*AttachRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } func (m *AttachRequest) GetContainerId() string { if m != nil { @@ -2374,7 +2430,7 @@ type AttachResponse struct { func (m *AttachResponse) Reset() { *m = AttachResponse{} } func (*AttachResponse) ProtoMessage() {} -func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{59} } +func (*AttachResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } func (m *AttachResponse) GetUrl() string { if m != nil { @@ -2392,7 +2448,7 @@ type PortForwardRequest struct { func (m *PortForwardRequest) Reset() { *m = PortForwardRequest{} } func (*PortForwardRequest) ProtoMessage() {} -func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{60} } +func (*PortForwardRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } func (m *PortForwardRequest) GetPodSandboxId() string { if m != nil { @@ -2415,7 +2471,7 @@ type PortForwardResponse struct { func (m *PortForwardResponse) Reset() { *m = PortForwardResponse{} } func (*PortForwardResponse) ProtoMessage() {} -func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{61} } +func (*PortForwardResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } func (m *PortForwardResponse) GetUrl() string { if m != nil { @@ -2431,7 +2487,7 @@ type ImageFilter struct { func (m *ImageFilter) Reset() { *m = ImageFilter{} } func (*ImageFilter) ProtoMessage() {} -func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{62} } +func (*ImageFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } func (m *ImageFilter) GetImage() *ImageSpec { if m != nil { @@ -2447,7 +2503,7 @@ type ListImagesRequest struct { func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} } func (*ListImagesRequest) ProtoMessage() {} -func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{63} } +func (*ListImagesRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } func (m *ListImagesRequest) GetFilter() *ImageFilter { if m != nil { @@ -2477,7 +2533,7 @@ type Image struct { func (m *Image) Reset() { *m = Image{} } func (*Image) ProtoMessage() {} -func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{64} } +func (*Image) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } func (m *Image) GetId() string { if m != nil { @@ -2528,7 +2584,7 @@ type ListImagesResponse struct { func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} } func (*ListImagesResponse) ProtoMessage() {} -func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{65} } +func (*ListImagesResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } func (m *ListImagesResponse) GetImages() []*Image { if m != nil { @@ -2544,7 +2600,7 @@ type ImageStatusRequest struct { func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} } func (*ImageStatusRequest) ProtoMessage() {} -func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{66} } +func (*ImageStatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } func (m *ImageStatusRequest) GetImage() *ImageSpec { if m != nil { @@ -2560,7 +2616,7 @@ type ImageStatusResponse struct { func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} } func (*ImageStatusResponse) ProtoMessage() {} -func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{67} } +func (*ImageStatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } func (m *ImageStatusResponse) GetImage() *Image { if m != nil { @@ -2584,7 +2640,7 @@ type AuthConfig struct { func (m *AuthConfig) Reset() { *m = AuthConfig{} } func (*AuthConfig) ProtoMessage() {} -func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{68} } +func (*AuthConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } func (m *AuthConfig) GetUsername() string { if m != nil { @@ -2639,7 +2695,7 @@ type PullImageRequest struct { func (m *PullImageRequest) Reset() { *m = PullImageRequest{} } func (*PullImageRequest) ProtoMessage() {} -func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{69} } +func (*PullImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } func (m *PullImageRequest) GetImage() *ImageSpec { if m != nil { @@ -2670,7 +2726,7 @@ type PullImageResponse struct { func (m *PullImageResponse) Reset() { *m = PullImageResponse{} } func (*PullImageResponse) ProtoMessage() {} -func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{70} } +func (*PullImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } func (m *PullImageResponse) GetImageRef() string { if m != nil { @@ -2686,7 +2742,7 @@ type RemoveImageRequest struct { func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} } func (*RemoveImageRequest) ProtoMessage() {} -func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{71} } +func (*RemoveImageRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } func (m *RemoveImageRequest) GetImage() *ImageSpec { if m != nil { @@ -2700,7 +2756,7 @@ type RemoveImageResponse struct { func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} } func (*RemoveImageResponse) ProtoMessage() {} -func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{72} } +func (*RemoveImageResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } type NetworkConfig struct { // CIDR to use for pod IP addresses. @@ -2709,7 +2765,7 @@ type NetworkConfig struct { func (m *NetworkConfig) Reset() { *m = NetworkConfig{} } func (*NetworkConfig) ProtoMessage() {} -func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{73} } +func (*NetworkConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } func (m *NetworkConfig) GetPodCidr() string { if m != nil { @@ -2724,7 +2780,7 @@ type RuntimeConfig struct { func (m *RuntimeConfig) Reset() { *m = RuntimeConfig{} } func (*RuntimeConfig) ProtoMessage() {} -func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{74} } +func (*RuntimeConfig) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } func (m *RuntimeConfig) GetNetworkConfig() *NetworkConfig { if m != nil { @@ -2739,7 +2795,7 @@ type UpdateRuntimeConfigRequest struct { func (m *UpdateRuntimeConfigRequest) Reset() { *m = UpdateRuntimeConfigRequest{} } func (*UpdateRuntimeConfigRequest) ProtoMessage() {} -func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{75} } +func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } func (m *UpdateRuntimeConfigRequest) GetRuntimeConfig() *RuntimeConfig { if m != nil { @@ -2753,7 +2809,7 @@ type UpdateRuntimeConfigResponse struct { func (m *UpdateRuntimeConfigResponse) Reset() { *m = UpdateRuntimeConfigResponse{} } func (*UpdateRuntimeConfigResponse) ProtoMessage() {} -func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{76} } +func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{78} } // RuntimeCondition contains condition information for the runtime. // There are 2 kinds of runtime conditions: @@ -2781,7 +2837,7 @@ type RuntimeCondition struct { func (m *RuntimeCondition) Reset() { *m = RuntimeCondition{} } func (*RuntimeCondition) ProtoMessage() {} -func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{77} } +func (*RuntimeCondition) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{79} } func (m *RuntimeCondition) GetType() string { if m != nil { @@ -2819,7 +2875,7 @@ type RuntimeStatus struct { func (m *RuntimeStatus) Reset() { *m = RuntimeStatus{} } func (*RuntimeStatus) ProtoMessage() {} -func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{78} } +func (*RuntimeStatus) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{80} } func (m *RuntimeStatus) GetConditions() []*RuntimeCondition { if m != nil { @@ -2833,7 +2889,7 @@ type StatusRequest struct { func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} -func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{79} } +func (*StatusRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{81} } type StatusResponse struct { // Status of the Runtime. @@ -2842,7 +2898,7 @@ type StatusResponse struct { func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (*StatusResponse) ProtoMessage() {} -func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{80} } +func (*StatusResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{82} } func (m *StatusResponse) GetStatus() *RuntimeStatus { if m != nil { @@ -2856,7 +2912,7 @@ type ImageFsInfoRequest struct { func (m *ImageFsInfoRequest) Reset() { *m = ImageFsInfoRequest{} } func (*ImageFsInfoRequest) ProtoMessage() {} -func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{81} } +func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{83} } // UInt64Value is the wrapper of uint64. type UInt64Value struct { @@ -2866,7 +2922,7 @@ type UInt64Value struct { func (m *UInt64Value) Reset() { *m = UInt64Value{} } func (*UInt64Value) ProtoMessage() {} -func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{82} } +func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{84} } func (m *UInt64Value) GetValue() uint64 { if m != nil { @@ -2883,7 +2939,7 @@ type StorageIdentifier struct { func (m *StorageIdentifier) Reset() { *m = StorageIdentifier{} } func (*StorageIdentifier) ProtoMessage() {} -func (*StorageIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{83} } +func (*StorageIdentifier) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{85} } func (m *StorageIdentifier) GetUuid() string { if m != nil { @@ -2910,7 +2966,7 @@ type FilesystemUsage struct { func (m *FilesystemUsage) Reset() { *m = FilesystemUsage{} } func (*FilesystemUsage) ProtoMessage() {} -func (*FilesystemUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{84} } +func (*FilesystemUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{86} } func (m *FilesystemUsage) GetTimestamp() int64 { if m != nil { @@ -2947,7 +3003,7 @@ type ImageFsInfoResponse struct { func (m *ImageFsInfoResponse) Reset() { *m = ImageFsInfoResponse{} } func (*ImageFsInfoResponse) ProtoMessage() {} -func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{85} } +func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } func (m *ImageFsInfoResponse) GetImageFilesystems() []*FilesystemUsage { if m != nil { @@ -2963,7 +3019,7 @@ type ContainerStatsRequest struct { func (m *ContainerStatsRequest) Reset() { *m = ContainerStatsRequest{} } func (*ContainerStatsRequest) ProtoMessage() {} -func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{86} } +func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{88} } func (m *ContainerStatsRequest) GetContainerId() string { if m != nil { @@ -2979,7 +3035,7 @@ type ContainerStatsResponse struct { func (m *ContainerStatsResponse) Reset() { *m = ContainerStatsResponse{} } func (*ContainerStatsResponse) ProtoMessage() {} -func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{87} } +func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{89} } func (m *ContainerStatsResponse) GetStats() *ContainerStats { if m != nil { @@ -2995,7 +3051,7 @@ type ListContainerStatsRequest struct { func (m *ListContainerStatsRequest) Reset() { *m = ListContainerStatsRequest{} } func (*ListContainerStatsRequest) ProtoMessage() {} -func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{88} } +func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{90} } func (m *ListContainerStatsRequest) GetFilter() *ContainerStatsFilter { if m != nil { @@ -3019,7 +3075,7 @@ type ContainerStatsFilter struct { func (m *ContainerStatsFilter) Reset() { *m = ContainerStatsFilter{} } func (*ContainerStatsFilter) ProtoMessage() {} -func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{89} } +func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{91} } func (m *ContainerStatsFilter) GetId() string { if m != nil { @@ -3049,7 +3105,7 @@ type ListContainerStatsResponse struct { func (m *ListContainerStatsResponse) Reset() { *m = ListContainerStatsResponse{} } func (*ListContainerStatsResponse) ProtoMessage() {} -func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{90} } +func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{92} } func (m *ListContainerStatsResponse) GetStats() []*ContainerStats { if m != nil { @@ -3075,7 +3131,7 @@ type ContainerAttributes struct { func (m *ContainerAttributes) Reset() { *m = ContainerAttributes{} } func (*ContainerAttributes) ProtoMessage() {} -func (*ContainerAttributes) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{91} } +func (*ContainerAttributes) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{93} } func (m *ContainerAttributes) GetId() string { if m != nil { @@ -3119,7 +3175,7 @@ type ContainerStats struct { func (m *ContainerStats) Reset() { *m = ContainerStats{} } func (*ContainerStats) ProtoMessage() {} -func (*ContainerStats) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{92} } +func (*ContainerStats) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{94} } func (m *ContainerStats) GetAttributes() *ContainerAttributes { if m != nil { @@ -3159,7 +3215,7 @@ type CpuUsage struct { func (m *CpuUsage) Reset() { *m = CpuUsage{} } func (*CpuUsage) ProtoMessage() {} -func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{93} } +func (*CpuUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{95} } func (m *CpuUsage) GetTimestamp() int64 { if m != nil { @@ -3185,7 +3241,7 @@ type MemoryUsage struct { func (m *MemoryUsage) Reset() { *m = MemoryUsage{} } func (*MemoryUsage) ProtoMessage() {} -func (*MemoryUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{94} } +func (*MemoryUsage) Descriptor() ([]byte, []int) { return fileDescriptorApi, []int{96} } func (m *MemoryUsage) GetTimestamp() int64 { if m != nil { @@ -3256,6 +3312,8 @@ func init() { proto.RegisterType((*ContainerStatusRequest)(nil), "runtime.ContainerStatusRequest") proto.RegisterType((*ContainerStatus)(nil), "runtime.ContainerStatus") proto.RegisterType((*ContainerStatusResponse)(nil), "runtime.ContainerStatusResponse") + proto.RegisterType((*UpdateContainerResourcesRequest)(nil), "runtime.UpdateContainerResourcesRequest") + proto.RegisterType((*UpdateContainerResourcesResponse)(nil), "runtime.UpdateContainerResourcesResponse") proto.RegisterType((*ExecSyncRequest)(nil), "runtime.ExecSyncRequest") proto.RegisterType((*ExecSyncResponse)(nil), "runtime.ExecSyncResponse") proto.RegisterType((*ExecRequest)(nil), "runtime.ExecRequest") @@ -3357,6 +3415,8 @@ type RuntimeServiceClient interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error) + // UpdateContainerResources updates ContainerConfig of the container. + UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) // ExecSync runs a command in a container synchronously. ExecSync(ctx context.Context, in *ExecSyncRequest, opts ...grpc.CallOption) (*ExecSyncResponse, error) // Exec prepares a streaming endpoint to execute a command in the container. @@ -3492,6 +3552,15 @@ func (c *runtimeServiceClient) ContainerStatus(ctx context.Context, in *Containe return out, nil } +func (c *runtimeServiceClient) UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) { + out := new(UpdateContainerResourcesResponse) + err := grpc.Invoke(ctx, "/runtime.RuntimeService/UpdateContainerResources", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *runtimeServiceClient) ExecSync(ctx context.Context, in *ExecSyncRequest, opts ...grpc.CallOption) (*ExecSyncResponse, error) { out := new(ExecSyncResponse) err := grpc.Invoke(ctx, "/runtime.RuntimeService/ExecSync", in, out, c.cc, opts...) @@ -3611,6 +3680,8 @@ type RuntimeServiceServer interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(context.Context, *ContainerStatusRequest) (*ContainerStatusResponse, error) + // UpdateContainerResources updates ContainerConfig of the container. + UpdateContainerResources(context.Context, *UpdateContainerResourcesRequest) (*UpdateContainerResourcesResponse, error) // ExecSync runs a command in a container synchronously. ExecSync(context.Context, *ExecSyncRequest) (*ExecSyncResponse, error) // Exec prepares a streaming endpoint to execute a command in the container. @@ -3850,6 +3921,24 @@ func _RuntimeService_ContainerStatus_Handler(srv interface{}, ctx context.Contex return interceptor(ctx, in, info, handler) } +func _RuntimeService_UpdateContainerResources_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateContainerResourcesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuntimeServiceServer).UpdateContainerResources(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/runtime.RuntimeService/UpdateContainerResources", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuntimeServiceServer).UpdateContainerResources(ctx, req.(*UpdateContainerResourcesRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _RuntimeService_ExecSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ExecSyncRequest) if err := dec(in); err != nil { @@ -4046,6 +4135,10 @@ var _RuntimeService_serviceDesc = grpc.ServiceDesc{ MethodName: "ContainerStatus", Handler: _RuntimeService_ContainerStatus_Handler, }, + { + MethodName: "UpdateContainerResources", + Handler: _RuntimeService_UpdateContainerResources_Handler, + }, { MethodName: "ExecSync", Handler: _RuntimeService_ExecSync_Handler, @@ -5546,6 +5639,18 @@ func (m *LinuxContainerResources) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintApi(dAtA, i, uint64(m.OomScoreAdj)) } + if len(m.CpusetCpus) > 0 { + dAtA[i] = 0x32 + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.CpusetCpus))) + i += copy(dAtA[i:], m.CpusetCpus) + } + if len(m.CpusetMems) > 0 { + dAtA[i] = 0x3a + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.CpusetMems))) + i += copy(dAtA[i:], m.CpusetMems) + } return i, nil } @@ -6684,6 +6789,58 @@ func (m *ContainerStatusResponse) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *UpdateContainerResourcesRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateContainerResourcesRequest) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.ContainerId) > 0 { + dAtA[i] = 0xa + i++ + i = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId))) + i += copy(dAtA[i:], m.ContainerId) + } + if m.Linux != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.Linux.Size())) + n40, err := m.Linux.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n40 + } + return i, nil +} + +func (m *UpdateContainerResourcesResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *UpdateContainerResourcesResponse) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + return i, nil +} + func (m *ExecSyncRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -6936,22 +7093,22 @@ func (m *PortForwardRequest) MarshalTo(dAtA []byte) (int, error) { i += copy(dAtA[i:], m.PodSandboxId) } if len(m.Port) > 0 { - dAtA41 := make([]byte, len(m.Port)*10) - var j40 int + dAtA42 := make([]byte, len(m.Port)*10) + var j41 int for _, num1 := range m.Port { num := uint64(num1) for num >= 1<<7 { - dAtA41[j40] = uint8(uint64(num)&0x7f | 0x80) + dAtA42[j41] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j40++ + j41++ } - dAtA41[j40] = uint8(num) - j40++ + dAtA42[j41] = uint8(num) + j41++ } dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(j40)) - i += copy(dAtA[i:], dAtA41[:j40]) + i = encodeVarintApi(dAtA, i, uint64(j41)) + i += copy(dAtA[i:], dAtA42[:j41]) } return i, nil } @@ -6999,11 +7156,11 @@ func (m *ImageFilter) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n42, err := m.Image.MarshalTo(dAtA[i:]) + n43, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n42 + i += n43 } return i, nil } @@ -7027,11 +7184,11 @@ func (m *ListImagesRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n43, err := m.Filter.MarshalTo(dAtA[i:]) + n44, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n43 + i += n44 } return i, nil } @@ -7096,11 +7253,11 @@ func (m *Image) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintApi(dAtA, i, uint64(m.Uid.Size())) - n44, err := m.Uid.MarshalTo(dAtA[i:]) + n45, err := m.Uid.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n44 + i += n45 } if len(m.Username) > 0 { dAtA[i] = 0x32 @@ -7160,11 +7317,11 @@ func (m *ImageStatusRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n45, err := m.Image.MarshalTo(dAtA[i:]) + n46, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n45 + i += n46 } return i, nil } @@ -7188,11 +7345,11 @@ func (m *ImageStatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n46, err := m.Image.MarshalTo(dAtA[i:]) + n47, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n46 + i += n47 } return i, nil } @@ -7270,32 +7427,32 @@ func (m *PullImageRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n47, err := m.Image.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n47 - } - if m.Auth != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.Auth.Size())) - n48, err := m.Auth.MarshalTo(dAtA[i:]) + n48, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n48 } - if m.SandboxConfig != nil { - dAtA[i] = 0x1a + if m.Auth != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(m.SandboxConfig.Size())) - n49, err := m.SandboxConfig.MarshalTo(dAtA[i:]) + i = encodeVarintApi(dAtA, i, uint64(m.Auth.Size())) + n49, err := m.Auth.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n49 } + if m.SandboxConfig != nil { + dAtA[i] = 0x1a + i++ + i = encodeVarintApi(dAtA, i, uint64(m.SandboxConfig.Size())) + n50, err := m.SandboxConfig.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n50 + } return i, nil } @@ -7342,11 +7499,11 @@ func (m *RemoveImageRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Image.Size())) - n50, err := m.Image.MarshalTo(dAtA[i:]) + n51, err := m.Image.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n50 + i += n51 } return i, nil } @@ -7412,11 +7569,11 @@ func (m *RuntimeConfig) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.NetworkConfig.Size())) - n51, err := m.NetworkConfig.MarshalTo(dAtA[i:]) + n52, err := m.NetworkConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n51 + i += n52 } return i, nil } @@ -7440,11 +7597,11 @@ func (m *UpdateRuntimeConfigRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.RuntimeConfig.Size())) - n52, err := m.RuntimeConfig.MarshalTo(dAtA[i:]) + n53, err := m.RuntimeConfig.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n52 + i += n53 } return i, nil } @@ -7580,11 +7737,11 @@ func (m *StatusResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Status.Size())) - n53, err := m.Status.MarshalTo(dAtA[i:]) + n54, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n53 + i += n54 } return i, nil } @@ -7678,32 +7835,32 @@ func (m *FilesystemUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.StorageId.Size())) - n54, err := m.StorageId.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n54 - } - if m.UsedBytes != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintApi(dAtA, i, uint64(m.UsedBytes.Size())) - n55, err := m.UsedBytes.MarshalTo(dAtA[i:]) + n55, err := m.StorageId.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n55 } - if m.InodesUsed != nil { - dAtA[i] = 0x22 + if m.UsedBytes != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintApi(dAtA, i, uint64(m.InodesUsed.Size())) - n56, err := m.InodesUsed.MarshalTo(dAtA[i:]) + i = encodeVarintApi(dAtA, i, uint64(m.UsedBytes.Size())) + n56, err := m.UsedBytes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n56 } + if m.InodesUsed != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.InodesUsed.Size())) + n57, err := m.InodesUsed.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n57 + } return i, nil } @@ -7780,11 +7937,11 @@ func (m *ContainerStatsResponse) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Stats.Size())) - n57, err := m.Stats.MarshalTo(dAtA[i:]) + n58, err := m.Stats.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n57 + i += n58 } return i, nil } @@ -7808,11 +7965,11 @@ func (m *ListContainerStatsRequest) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Filter.Size())) - n58, err := m.Filter.MarshalTo(dAtA[i:]) + n59, err := m.Filter.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n58 + i += n59 } return i, nil } @@ -7919,11 +8076,11 @@ func (m *ContainerAttributes) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.Metadata.Size())) - n59, err := m.Metadata.MarshalTo(dAtA[i:]) + n60, err := m.Metadata.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n59 + i += n60 } if len(m.Labels) > 0 { for k := range m.Labels { @@ -7981,42 +8138,42 @@ func (m *ContainerStats) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintApi(dAtA, i, uint64(m.Attributes.Size())) - n60, err := m.Attributes.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n60 - } - if m.Cpu != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintApi(dAtA, i, uint64(m.Cpu.Size())) - n61, err := m.Cpu.MarshalTo(dAtA[i:]) + n61, err := m.Attributes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n61 } - if m.Memory != nil { - dAtA[i] = 0x1a + if m.Cpu != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintApi(dAtA, i, uint64(m.Memory.Size())) - n62, err := m.Memory.MarshalTo(dAtA[i:]) + i = encodeVarintApi(dAtA, i, uint64(m.Cpu.Size())) + n62, err := m.Cpu.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n62 } - if m.WritableLayer != nil { - dAtA[i] = 0x22 + if m.Memory != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintApi(dAtA, i, uint64(m.WritableLayer.Size())) - n63, err := m.WritableLayer.MarshalTo(dAtA[i:]) + i = encodeVarintApi(dAtA, i, uint64(m.Memory.Size())) + n63, err := m.Memory.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n63 } + if m.WritableLayer != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.WritableLayer.Size())) + n64, err := m.WritableLayer.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n64 + } return i, nil } @@ -8044,11 +8201,11 @@ func (m *CpuUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.UsageCoreNanoSeconds.Size())) - n64, err := m.UsageCoreNanoSeconds.MarshalTo(dAtA[i:]) + n65, err := m.UsageCoreNanoSeconds.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n64 + i += n65 } return i, nil } @@ -8077,11 +8234,11 @@ func (m *MemoryUsage) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintApi(dAtA, i, uint64(m.WorkingSetBytes.Size())) - n65, err := m.WorkingSetBytes.MarshalTo(dAtA[i:]) + n66, err := m.WorkingSetBytes.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n65 + i += n66 } return i, nil } @@ -8635,6 +8792,14 @@ func (m *LinuxContainerResources) Size() (n int) { if m.OomScoreAdj != 0 { n += 1 + sovApi(uint64(m.OomScoreAdj)) } + l = len(m.CpusetCpus) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + l = len(m.CpusetMems) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } return n } @@ -9129,6 +9294,26 @@ func (m *ContainerStatusResponse) Size() (n int) { return n } +func (m *UpdateContainerResourcesRequest) Size() (n int) { + var l int + _ = l + l = len(m.ContainerId) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + if m.Linux != nil { + l = m.Linux.Size() + n += 1 + l + sovApi(uint64(l)) + } + return n +} + +func (m *UpdateContainerResourcesResponse) Size() (n int) { + var l int + _ = l + return n +} + func (m *ExecSyncRequest) Size() (n int) { var l int _ = l @@ -10141,6 +10326,8 @@ func (this *LinuxContainerResources) String() string { `CpuShares:` + fmt.Sprintf("%v", this.CpuShares) + `,`, `MemoryLimitInBytes:` + fmt.Sprintf("%v", this.MemoryLimitInBytes) + `,`, `OomScoreAdj:` + fmt.Sprintf("%v", this.OomScoreAdj) + `,`, + `CpusetCpus:` + fmt.Sprintf("%v", this.CpusetCpus) + `,`, + `CpusetMems:` + fmt.Sprintf("%v", this.CpusetMems) + `,`, `}`, }, "") return s @@ -10502,6 +10689,26 @@ func (this *ContainerStatusResponse) String() string { }, "") return s } +func (this *UpdateContainerResourcesRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UpdateContainerResourcesRequest{`, + `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, + `Linux:` + strings.Replace(fmt.Sprintf("%v", this.Linux), "LinuxContainerResources", "LinuxContainerResources", 1) + `,`, + `}`, + }, "") + return s +} +func (this *UpdateContainerResourcesResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&UpdateContainerResourcesResponse{`, + `}`, + }, "") + return s +} func (this *ExecSyncRequest) String() string { if this == nil { return "nil" @@ -15392,6 +15599,64 @@ func (m *LinuxContainerResources) Unmarshal(dAtA []byte) error { break } } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CpusetCpus", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CpusetCpus = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CpusetMems", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CpusetMems = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -19453,6 +19718,168 @@ func (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateContainerResourcesRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateContainerResourcesRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Linux", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Linux == nil { + m.Linux = &LinuxContainerResources{} + } + if err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *UpdateContainerResourcesResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: UpdateContainerResourcesResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: UpdateContainerResourcesResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *ExecSyncRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -24073,262 +24500,267 @@ var ( func init() { proto.RegisterFile("api.proto", fileDescriptorApi) } var fileDescriptorApi = []byte{ - // 4103 bytes of a gzipped FileDescriptorProto + // 4185 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3b, 0x4d, 0x6f, 0x1c, 0x47, - 0x76, 0x9c, 0x19, 0x7e, 0xcc, 0xbc, 0xe1, 0x0c, 0x87, 0x25, 0x8a, 0x1c, 0x8d, 0x24, 0x9a, 0x6e, - 0x59, 0xb6, 0xa4, 0x5d, 0xc9, 0x32, 0xbd, 0xb6, 0x63, 0xf9, 0x4b, 0x34, 0x49, 0x19, 0xb4, 0xa4, - 0x11, 0xb7, 0x47, 0xf4, 0xee, 0x66, 0x03, 0x74, 0x9a, 0xd3, 0xc5, 0x61, 0x5b, 0x33, 0x5d, 0xbd, - 0xdd, 0xd5, 0x92, 0x98, 0x53, 0x72, 0x09, 0x72, 0x74, 0x8e, 0xb9, 0xe5, 0x10, 0x60, 0x91, 0x4b, - 0x0e, 0x39, 0x04, 0xf9, 0x05, 0xc1, 0x02, 0x41, 0x80, 0x9c, 0x82, 0xe4, 0xb6, 0xab, 0x1c, 0x72, - 0x08, 0x90, 0xdf, 0x10, 0xd4, 0x57, 0x77, 0xf5, 0xd7, 0x88, 0x94, 0x8d, 0x5d, 0xdd, 0xba, 0x5e, - 0xbd, 0xf7, 0xea, 0x55, 0xbd, 0x57, 0xaf, 0xde, 0x7b, 0x55, 0x0d, 0x0d, 0xdb, 0x77, 0x6f, 0xf9, - 0x01, 0xa1, 0x04, 0x2d, 0x04, 0x91, 0x47, 0xdd, 0x09, 0xee, 0xdd, 0x1c, 0xb9, 0xf4, 0x38, 0x3a, - 0xbc, 0x35, 0x24, 0x93, 0x77, 0x47, 0x64, 0x44, 0xde, 0xe5, 0xfd, 0x87, 0xd1, 0x11, 0x6f, 0xf1, - 0x06, 0xff, 0x12, 0x74, 0xc6, 0x0d, 0x68, 0x7f, 0x83, 0x83, 0xd0, 0x25, 0x9e, 0x89, 0x7f, 0x15, - 0xe1, 0x90, 0xa2, 0x2e, 0x2c, 0x3c, 0x15, 0x90, 0x6e, 0x65, 0xa3, 0x72, 0xad, 0x61, 0xaa, 0xa6, - 0xf1, 0xeb, 0x0a, 0x2c, 0xc5, 0xc8, 0xa1, 0x4f, 0xbc, 0x10, 0x97, 0x63, 0xa3, 0x37, 0x61, 0x51, - 0xca, 0x64, 0x79, 0xf6, 0x04, 0x77, 0xab, 0xbc, 0xbb, 0x29, 0x61, 0x7d, 0x7b, 0x82, 0xd1, 0x3b, - 0xb0, 0xa4, 0x50, 0x14, 0x93, 0x1a, 0xc7, 0x6a, 0x4b, 0xb0, 0x1c, 0x0d, 0xdd, 0x82, 0x73, 0x0a, - 0xd1, 0xf6, 0xdd, 0x18, 0x79, 0x96, 0x23, 0x2f, 0xcb, 0xae, 0x2d, 0xdf, 0x95, 0xf8, 0xc6, 0x2f, - 0xa1, 0xb1, 0xd3, 0x1f, 0x6c, 0x13, 0xef, 0xc8, 0x1d, 0x31, 0x11, 0x43, 0x1c, 0x30, 0x9a, 0x6e, - 0x65, 0xa3, 0xc6, 0x44, 0x94, 0x4d, 0xd4, 0x83, 0x7a, 0x88, 0xed, 0x60, 0x78, 0x8c, 0xc3, 0x6e, - 0x95, 0x77, 0xc5, 0x6d, 0x46, 0x45, 0x7c, 0xea, 0x12, 0x2f, 0xec, 0xd6, 0x04, 0x95, 0x6c, 0x1a, - 0x7f, 0x53, 0x81, 0xe6, 0x3e, 0x09, 0xe8, 0x43, 0xdb, 0xf7, 0x5d, 0x6f, 0x84, 0x6e, 0x42, 0x9d, - 0xaf, 0xe5, 0x90, 0x8c, 0xf9, 0x1a, 0xb4, 0x37, 0x97, 0x6f, 0x49, 0x91, 0x6e, 0xed, 0xcb, 0x0e, - 0x33, 0x46, 0x41, 0x57, 0xa1, 0x3d, 0x24, 0x1e, 0xb5, 0x5d, 0x0f, 0x07, 0x96, 0x4f, 0x02, 0xca, - 0x57, 0x66, 0xce, 0x6c, 0xc5, 0x50, 0xc6, 0x1c, 0x5d, 0x84, 0xc6, 0x31, 0x09, 0xa9, 0xc0, 0xa8, - 0x71, 0x8c, 0x3a, 0x03, 0xf0, 0xce, 0x35, 0x58, 0xe0, 0x9d, 0xae, 0x2f, 0xd7, 0x60, 0x9e, 0x35, - 0xf7, 0x7c, 0xe3, 0xbb, 0x0a, 0xcc, 0x3d, 0x24, 0x91, 0x47, 0x33, 0xc3, 0xd8, 0xf4, 0x58, 0xea, - 0x47, 0x1b, 0xc6, 0xa6, 0xc7, 0xc9, 0x30, 0x0c, 0x43, 0xa8, 0x48, 0x0c, 0xc3, 0x3a, 0x7b, 0x50, - 0x0f, 0xb0, 0xed, 0x10, 0x6f, 0x7c, 0xc2, 0x45, 0xa8, 0x9b, 0x71, 0x9b, 0xe9, 0x2e, 0xc4, 0x63, - 0xd7, 0x8b, 0x9e, 0x5b, 0x01, 0x1e, 0xdb, 0x87, 0x78, 0xcc, 0x45, 0xa9, 0x9b, 0x6d, 0x09, 0x36, - 0x05, 0xd4, 0xf8, 0x16, 0x96, 0x98, 0xb2, 0x43, 0xdf, 0x1e, 0xe2, 0x47, 0x7c, 0x09, 0x99, 0x69, - 0xf0, 0x41, 0x3d, 0x4c, 0x9f, 0x91, 0xe0, 0x09, 0x97, 0xac, 0x6e, 0x36, 0x19, 0xac, 0x2f, 0x40, - 0xe8, 0x02, 0xd4, 0x85, 0x5c, 0xae, 0xc3, 0xc5, 0xaa, 0x9b, 0x7c, 0xc6, 0xfb, 0xae, 0x13, 0x77, - 0xb9, 0xfe, 0x50, 0x4a, 0xb5, 0x20, 0x66, 0x3f, 0x34, 0x0c, 0x80, 0x3d, 0x8f, 0x7e, 0xf8, 0x93, - 0x6f, 0xec, 0x71, 0x84, 0xd1, 0x0a, 0xcc, 0x3d, 0x65, 0x1f, 0x9c, 0x7f, 0xcd, 0x14, 0x0d, 0xe3, - 0x2f, 0x6b, 0x70, 0xf1, 0x01, 0x13, 0x70, 0x60, 0x7b, 0xce, 0x21, 0x79, 0x3e, 0xc0, 0xc3, 0x28, - 0x70, 0xe9, 0xc9, 0x36, 0xf1, 0x28, 0x7e, 0x4e, 0xd1, 0x2e, 0x2c, 0x7b, 0x4a, 0x5e, 0x4b, 0x99, - 0x00, 0xe3, 0xd0, 0xdc, 0xec, 0xc6, 0x7a, 0xcd, 0xcc, 0xc8, 0xec, 0x78, 0x69, 0x40, 0x88, 0xbe, - 0x48, 0xd6, 0x47, 0x31, 0xa9, 0x72, 0x26, 0xab, 0x31, 0x93, 0xc1, 0x2e, 0x97, 0x43, 0xb2, 0x50, - 0xeb, 0xa6, 0x18, 0xbc, 0x0f, 0x6c, 0xaf, 0x58, 0x76, 0x68, 0x45, 0x21, 0x0e, 0xf8, 0x4c, 0x9b, - 0x9b, 0xe7, 0x62, 0xe2, 0x64, 0x9e, 0x66, 0x23, 0x88, 0xbc, 0xad, 0xf0, 0x20, 0xc4, 0x01, 0xdf, - 0x51, 0x52, 0x43, 0x56, 0x40, 0x08, 0x3d, 0x0a, 0x95, 0x56, 0x14, 0xd8, 0xe4, 0x50, 0xf4, 0x2e, - 0x9c, 0x0b, 0x23, 0xdf, 0x1f, 0xe3, 0x09, 0xf6, 0xa8, 0x3d, 0xb6, 0x46, 0x01, 0x89, 0xfc, 0xb0, - 0x3b, 0xb7, 0x51, 0xbb, 0x56, 0x33, 0x91, 0xde, 0xf5, 0x15, 0xef, 0x41, 0xeb, 0x00, 0x7e, 0xe0, - 0x3e, 0x75, 0xc7, 0x78, 0x84, 0x9d, 0xee, 0x3c, 0x67, 0xaa, 0x41, 0xd0, 0x6d, 0x58, 0x09, 0xf1, - 0x70, 0x48, 0x26, 0xbe, 0xe5, 0x07, 0xe4, 0xc8, 0x1d, 0x63, 0x61, 0x53, 0x0b, 0xdc, 0xa6, 0x90, - 0xec, 0xdb, 0x17, 0x5d, 0xcc, 0xba, 0x8c, 0xef, 0xaa, 0x70, 0x9e, 0x2f, 0xc0, 0x3e, 0x71, 0xa4, - 0x2e, 0xe4, 0x8e, 0xbd, 0x02, 0xad, 0x21, 0x17, 0xc8, 0xf2, 0xed, 0x00, 0x7b, 0x54, 0x9a, 0xee, - 0xa2, 0x00, 0xee, 0x73, 0x18, 0x7a, 0x04, 0x9d, 0x50, 0xaa, 0xce, 0x1a, 0x0a, 0xdd, 0xc9, 0x15, - 0x7e, 0x2b, 0x5e, 0xa4, 0x29, 0x7a, 0x36, 0x97, 0xc2, 0x9c, 0xe2, 0x17, 0xc2, 0x93, 0x70, 0x48, - 0xc7, 0x62, 0xc7, 0x37, 0x37, 0x7f, 0x94, 0xe6, 0x93, 0x15, 0xf3, 0xd6, 0x40, 0x60, 0xef, 0x7a, - 0x34, 0x38, 0x31, 0x15, 0x6d, 0xef, 0x0e, 0x2c, 0xea, 0x1d, 0xa8, 0x03, 0xb5, 0x27, 0xf8, 0x44, - 0x4e, 0x81, 0x7d, 0x26, 0x76, 0x29, 0xf6, 0x9b, 0x68, 0xdc, 0xa9, 0xfe, 0x51, 0xc5, 0x08, 0x00, - 0x25, 0xa3, 0x3c, 0xc4, 0xd4, 0x76, 0x6c, 0x6a, 0x23, 0x04, 0xb3, 0xdc, 0x83, 0x0a, 0x16, 0xfc, - 0x9b, 0x71, 0x8d, 0xe4, 0xd6, 0x68, 0x98, 0xec, 0x13, 0x5d, 0x82, 0x46, 0x6c, 0x84, 0xd2, 0x8d, - 0x26, 0x00, 0xe6, 0xce, 0x6c, 0x4a, 0xf1, 0xc4, 0xa7, 0xdc, 0x20, 0x5a, 0xa6, 0x6a, 0x1a, 0xff, - 0x3c, 0x0b, 0x9d, 0x9c, 0x06, 0x3e, 0x82, 0xfa, 0x44, 0x0e, 0x2f, 0x6d, 0xff, 0x62, 0xe2, 0xd3, - 0x72, 0x12, 0x9a, 0x31, 0x32, 0x73, 0x19, 0x6c, 0x33, 0x6a, 0x1e, 0x3f, 0x6e, 0x33, 0xb5, 0x8e, - 0xc9, 0xc8, 0x72, 0xdc, 0x00, 0x0f, 0x29, 0x09, 0x4e, 0xa4, 0x94, 0x8b, 0x63, 0x32, 0xda, 0x51, - 0x30, 0xf4, 0x1e, 0x80, 0xe3, 0x85, 0x4c, 0xa3, 0x47, 0xee, 0x88, 0xcb, 0xda, 0xdc, 0x44, 0xf1, - 0xd8, 0xb1, 0x57, 0x37, 0x1b, 0x8e, 0x17, 0x4a, 0x61, 0x3f, 0x86, 0x16, 0xf3, 0x92, 0xd6, 0x44, - 0x38, 0x64, 0x61, 0xc5, 0xcd, 0xcd, 0x15, 0x4d, 0xe2, 0xd8, 0x5b, 0x9b, 0x8b, 0x7e, 0xd2, 0x08, - 0xd1, 0x67, 0x30, 0xcf, 0xbd, 0x54, 0xd8, 0x9d, 0xe7, 0x34, 0x57, 0x0b, 0x66, 0x29, 0xb5, 0xfd, - 0x80, 0xe3, 0x09, 0x65, 0x4b, 0x22, 0xf4, 0x00, 0x9a, 0xb6, 0xe7, 0x11, 0x6a, 0x8b, 0x0d, 0xbe, - 0xc0, 0x79, 0xdc, 0x28, 0xe7, 0xb1, 0x95, 0x20, 0x0b, 0x46, 0x3a, 0x39, 0xfa, 0x09, 0xcc, 0x71, - 0x0f, 0xd0, 0xad, 0xf3, 0x59, 0xaf, 0x4f, 0x37, 0x3f, 0x53, 0x20, 0xf7, 0x3e, 0x86, 0xa6, 0x26, - 0xda, 0x59, 0xcc, 0xad, 0xf7, 0x39, 0x74, 0xb2, 0x12, 0x9d, 0xc9, 0x5c, 0xf7, 0x60, 0xc5, 0x8c, - 0xbc, 0x44, 0x30, 0x15, 0x42, 0xbc, 0x07, 0xf3, 0x52, 0x7f, 0xc2, 0x76, 0x2e, 0x94, 0xae, 0x88, - 0x29, 0x11, 0x8d, 0xcf, 0xe0, 0x7c, 0x86, 0x95, 0x0c, 0x30, 0xde, 0x82, 0xb6, 0x4f, 0x1c, 0x2b, - 0x14, 0x60, 0xcb, 0x75, 0x94, 0x33, 0xf0, 0x63, 0xdc, 0x3d, 0x87, 0x91, 0x0f, 0x28, 0xf1, 0xf3, - 0xa2, 0x9c, 0x8e, 0xbc, 0x0b, 0xab, 0x59, 0x72, 0x31, 0xbc, 0xf1, 0x05, 0xac, 0x99, 0x78, 0x42, - 0x9e, 0xe2, 0x57, 0x65, 0xdd, 0x83, 0x6e, 0x9e, 0x41, 0xc2, 0x3c, 0x81, 0x0e, 0xa8, 0x4d, 0xa3, - 0xf0, 0x6c, 0xcc, 0xaf, 0xeb, 0x0c, 0xe4, 0xd1, 0x29, 0xf8, 0xa0, 0x36, 0x54, 0x5d, 0x5f, 0x12, - 0x55, 0x5d, 0xdf, 0xf8, 0x02, 0x1a, 0xf1, 0xa1, 0x85, 0x36, 0x93, 0xe0, 0xa6, 0xfa, 0x92, 0x93, - 0x2d, 0x0e, 0x7b, 0xee, 0xe7, 0xbc, 0xb5, 0x1c, 0x69, 0x13, 0x20, 0xf6, 0x33, 0xea, 0xa4, 0x44, - 0x79, 0x7e, 0xa6, 0x86, 0x65, 0xfc, 0x5d, 0xca, 0xe9, 0x68, 0x22, 0x3b, 0xb1, 0xc8, 0x4e, 0xca, - 0x09, 0x55, 0xcf, 0xe2, 0x84, 0x6e, 0xc1, 0x5c, 0x48, 0x6d, 0x2a, 0xdc, 0x60, 0x5b, 0x9b, 0x5c, - 0x7a, 0x48, 0x6c, 0x0a, 0x34, 0x74, 0x19, 0x60, 0x18, 0x60, 0x9b, 0x62, 0xc7, 0xb2, 0x85, 0x7f, - 0xac, 0x99, 0x0d, 0x09, 0xd9, 0xa2, 0xe8, 0x0e, 0x2c, 0xa8, 0x48, 0x65, 0x8e, 0x8b, 0xb1, 0x51, - 0xc0, 0x30, 0xb5, 0xfa, 0xa6, 0x22, 0x48, 0xf6, 0xf4, 0xfc, 0xf4, 0x3d, 0x2d, 0xe9, 0x04, 0xb2, - 0xe6, 0x96, 0x16, 0x4a, 0xdd, 0x92, 0xa0, 0x38, 0x8d, 0x5b, 0xaa, 0x97, 0xba, 0x25, 0xc9, 0x63, - 0xaa, 0x5b, 0xfa, 0x43, 0x3a, 0x98, 0x87, 0xd0, 0xcd, 0x6f, 0x10, 0xe9, 0x18, 0xde, 0x83, 0xf9, - 0x90, 0x43, 0xa6, 0x38, 0x19, 0x49, 0x22, 0x11, 0x8d, 0x7b, 0xb0, 0x92, 0xb1, 0x00, 0x11, 0x28, - 0xc6, 0xf6, 0x52, 0x39, 0x95, 0xbd, 0x18, 0xff, 0x57, 0xd1, 0xad, 0xf7, 0x9e, 0x3b, 0xa6, 0x38, - 0xc8, 0x59, 0xef, 0xfb, 0x8a, 0xa9, 0x30, 0xdd, 0xcb, 0x65, 0x4c, 0x45, 0x0c, 0x27, 0x2d, 0x71, - 0x00, 0x6d, 0xae, 0x43, 0x2b, 0xc4, 0x63, 0x7e, 0x20, 0xca, 0x50, 0xe4, 0xc7, 0x05, 0xd4, 0x62, - 0x5c, 0x61, 0x00, 0x03, 0x89, 0x2e, 0xd4, 0xd7, 0x1a, 0xeb, 0xb0, 0xde, 0x5d, 0x40, 0x79, 0xa4, - 0x33, 0xe9, 0xe1, 0x6b, 0xb6, 0xf7, 0x59, 0xee, 0x51, 0xe0, 0xe9, 0x8f, 0xb8, 0x18, 0x53, 0x94, - 0x20, 0xe4, 0x34, 0x25, 0xa2, 0xf1, 0xb7, 0x35, 0x80, 0xa4, 0xf3, 0xb5, 0xdd, 0xf4, 0x1f, 0xc5, - 0x5b, 0x50, 0x44, 0x13, 0x6f, 0x14, 0xf0, 0x2b, 0xdc, 0x7c, 0xf7, 0xd2, 0x9b, 0x4f, 0xc4, 0x15, - 0x6f, 0x15, 0x51, 0xbf, 0xb6, 0xdb, 0x6e, 0x1b, 0x56, 0xb3, 0xea, 0x96, 0x9b, 0xee, 0x3a, 0xcc, - 0xb9, 0x14, 0x4f, 0x44, 0x26, 0xad, 0xa7, 0x23, 0x1a, 0xae, 0xc0, 0x30, 0xde, 0x84, 0xc6, 0xde, - 0xc4, 0x1e, 0xe1, 0x81, 0x8f, 0x87, 0x6c, 0x2c, 0x97, 0x35, 0xe4, 0xf8, 0xa2, 0x61, 0x6c, 0x42, - 0xfd, 0x3e, 0x3e, 0x11, 0x7b, 0xf0, 0x94, 0xf2, 0x19, 0xff, 0x5a, 0x81, 0x35, 0xee, 0x3b, 0xb7, - 0x55, 0x1e, 0x6b, 0xe2, 0x90, 0x44, 0xc1, 0x10, 0x87, 0x5c, 0xa5, 0x7e, 0x64, 0xf9, 0x38, 0x70, - 0x89, 0x23, 0xb3, 0xbe, 0xc6, 0xd0, 0x8f, 0xf6, 0x39, 0x80, 0xe5, 0xba, 0xac, 0xfb, 0x57, 0x11, - 0x91, 0xb6, 0x55, 0x33, 0xeb, 0x43, 0x3f, 0xfa, 0x29, 0x6b, 0x2b, 0xda, 0xf0, 0xd8, 0x0e, 0x70, - 0xc8, 0x6d, 0x48, 0xd0, 0x0e, 0x38, 0x00, 0xbd, 0x07, 0xe7, 0x27, 0x78, 0x42, 0x82, 0x13, 0x6b, - 0xec, 0x4e, 0x5c, 0x6a, 0xb9, 0x9e, 0x75, 0x78, 0x42, 0x71, 0x28, 0x0d, 0x07, 0x89, 0xce, 0x07, - 0xac, 0x6f, 0xcf, 0xfb, 0x92, 0xf5, 0x20, 0x03, 0x5a, 0x84, 0x4c, 0xac, 0x70, 0x48, 0x02, 0x6c, - 0xd9, 0xce, 0xb7, 0xfc, 0xf0, 0xa8, 0x99, 0x4d, 0x42, 0x26, 0x03, 0x06, 0xdb, 0x72, 0xbe, 0x35, - 0x6c, 0x68, 0xa5, 0xb2, 0x40, 0x16, 0xeb, 0xf3, 0x74, 0x4f, 0xc6, 0xfa, 0xec, 0x9b, 0xc1, 0x02, - 0x32, 0x56, 0xeb, 0xc0, 0xbf, 0x19, 0x8c, 0x9e, 0xf8, 0x2a, 0xd0, 0xe7, 0xdf, 0x6c, 0xc1, 0xc6, - 0xf8, 0xa9, 0x4c, 0xc4, 0x1b, 0xa6, 0x68, 0x18, 0x0e, 0xc0, 0xb6, 0xed, 0xdb, 0x87, 0xee, 0xd8, - 0xa5, 0x27, 0xe8, 0x3a, 0x74, 0x6c, 0xc7, 0xb1, 0x86, 0x0a, 0xe2, 0x62, 0x55, 0x15, 0x59, 0xb2, - 0x1d, 0x67, 0x5b, 0x03, 0xa3, 0x1f, 0xc1, 0xb2, 0x13, 0x10, 0x3f, 0x8d, 0x2b, 0xca, 0x24, 0x1d, - 0xd6, 0xa1, 0x23, 0x1b, 0xff, 0x34, 0x0b, 0x97, 0xd3, 0x6a, 0xc9, 0xe6, 0xd5, 0x1f, 0xc1, 0x62, - 0x66, 0xd4, 0x74, 0x42, 0x9b, 0x08, 0x69, 0xa6, 0x10, 0x33, 0x99, 0x67, 0x35, 0x97, 0x79, 0x16, - 0x26, 0xec, 0xb5, 0x1f, 0x22, 0x61, 0x9f, 0xfd, 0x3e, 0x09, 0xfb, 0xdc, 0xa9, 0x12, 0xf6, 0xb7, - 0x79, 0x09, 0x4c, 0x11, 0xf1, 0xb4, 0x69, 0x5e, 0xd4, 0x69, 0x62, 0x1c, 0x4f, 0x95, 0xca, 0x32, - 0x89, 0xfd, 0xc2, 0x59, 0x12, 0xfb, 0x7a, 0x69, 0x62, 0xcf, 0x2c, 0xc2, 0xf7, 0xed, 0x60, 0x42, - 0x02, 0x95, 0xb9, 0x77, 0x1b, 0x5c, 0x84, 0x25, 0x05, 0x97, 0x59, 0x7b, 0x69, 0x8e, 0x0f, 0x65, - 0x39, 0x3e, 0xda, 0x80, 0x45, 0x8f, 0x58, 0x1e, 0x7e, 0x66, 0x31, 0x85, 0x85, 0xdd, 0xa6, 0xd0, - 0x9e, 0x47, 0xfa, 0xf8, 0xd9, 0x3e, 0x83, 0x18, 0x7f, 0x5f, 0x81, 0x95, 0xb4, 0xe1, 0xc8, 0xac, - 0xee, 0x73, 0x68, 0x04, 0x6a, 0x67, 0x4b, 0x63, 0xd9, 0x48, 0x47, 0x4f, 0x79, 0x0f, 0x60, 0x26, - 0x24, 0xe8, 0xa7, 0xa5, 0xf5, 0x81, 0xb7, 0x4b, 0xd8, 0xbc, 0xac, 0x42, 0x60, 0x6c, 0xc1, 0x72, - 0x8c, 0x3c, 0x35, 0x3b, 0xd7, 0xb2, 0xed, 0x6a, 0x3a, 0xdb, 0xf6, 0x60, 0x7e, 0x07, 0x3f, 0x75, - 0x87, 0xf8, 0x07, 0x29, 0xd0, 0x6d, 0x40, 0xd3, 0xc7, 0xc1, 0xc4, 0x0d, 0xc3, 0xd8, 0xe8, 0x1b, - 0xa6, 0x0e, 0x32, 0xfe, 0x6b, 0x0e, 0x96, 0xb2, 0x2b, 0xfb, 0x61, 0x2e, 0xb9, 0xef, 0x25, 0xbb, - 0x30, 0x3b, 0x3f, 0xed, 0x84, 0xbd, 0xa6, 0x9c, 0x78, 0x35, 0x13, 0xe3, 0xc7, 0x7e, 0x5e, 0x3a, - 0x76, 0x36, 0xff, 0x21, 0x99, 0x4c, 0x6c, 0xcf, 0x51, 0xc5, 0x53, 0xd9, 0x64, 0xab, 0x65, 0x07, - 0x23, 0xb6, 0xb5, 0x18, 0x98, 0x7f, 0xa3, 0x37, 0xa0, 0xc9, 0x62, 0x65, 0xd7, 0xe3, 0xb5, 0x01, - 0xbe, 0x71, 0x1a, 0x26, 0x48, 0xd0, 0x8e, 0x1b, 0xa0, 0xab, 0x30, 0x8b, 0xbd, 0xa7, 0xea, 0x2c, - 0x4d, 0xaa, 0xab, 0xea, 0xf0, 0x30, 0x79, 0x37, 0x7a, 0x1b, 0xe6, 0x27, 0x24, 0xf2, 0xa8, 0x8a, - 0x9a, 0xdb, 0x31, 0x22, 0x2f, 0x89, 0x9a, 0xb2, 0x17, 0x5d, 0x87, 0x05, 0x87, 0xeb, 0x40, 0x85, - 0xc6, 0x4b, 0x49, 0x7d, 0x81, 0xc3, 0x4d, 0xd5, 0x8f, 0x3e, 0x8d, 0xa3, 0x80, 0x46, 0xe6, 0x1c, - 0xcf, 0x2c, 0x6a, 0x61, 0x28, 0x70, 0x3f, 0x1d, 0x0a, 0x00, 0x67, 0x71, 0xbd, 0x94, 0xc5, 0xf4, - 0xea, 0xc0, 0x05, 0xa8, 0x8f, 0xc9, 0x48, 0xd8, 0x41, 0x53, 0x94, 0xda, 0xc7, 0x64, 0xc4, 0xcd, - 0x60, 0x85, 0x85, 0x3e, 0x8e, 0xeb, 0x75, 0x17, 0xf9, 0xf6, 0x12, 0x0d, 0x76, 0xa2, 0xf1, 0x0f, - 0x8b, 0x78, 0x43, 0xdc, 0x6d, 0xf1, 0xae, 0x06, 0x87, 0x3c, 0xf2, 0x86, 0xfc, 0xc0, 0xa5, 0xf4, - 0xa4, 0xdb, 0xe6, 0x70, 0xf6, 0xc9, 0x22, 0x56, 0x91, 0xab, 0x2c, 0x65, 0x22, 0xd6, 0xa2, 0xfd, - 0xf9, 0x1a, 0x94, 0x1f, 0xfe, 0xb1, 0x02, 0xab, 0xdb, 0x3c, 0x60, 0xd3, 0x3c, 0xc1, 0x19, 0xd2, - 0x67, 0x74, 0x3b, 0xae, 0x53, 0x64, 0xb3, 0xe0, 0xec, 0x64, 0x25, 0x1e, 0xba, 0x0b, 0x6d, 0xc5, - 0x53, 0x52, 0xd6, 0x5e, 0x56, 0xe1, 0x68, 0x85, 0x7a, 0xd3, 0xf8, 0x14, 0xd6, 0x72, 0x32, 0xcb, - 0xe0, 0xea, 0x4d, 0x58, 0x4c, 0x3c, 0x42, 0x2c, 0x72, 0x33, 0x86, 0xed, 0x39, 0xc6, 0x1d, 0x38, - 0x3f, 0xa0, 0x76, 0x40, 0x73, 0x13, 0x3e, 0x05, 0x2d, 0x2f, 0x72, 0xa4, 0x69, 0x65, 0x1d, 0x62, - 0x00, 0x2b, 0x03, 0x4a, 0xfc, 0x57, 0x60, 0xca, 0x76, 0x3a, 0x9b, 0x36, 0x89, 0xa8, 0x8c, 0xa8, - 0x54, 0xd3, 0x58, 0x13, 0x25, 0x99, 0xfc, 0x68, 0x9f, 0xc0, 0xaa, 0xa8, 0x88, 0xbc, 0xca, 0x24, - 0x2e, 0xa8, 0x7a, 0x4c, 0x9e, 0xef, 0x0e, 0x9c, 0x4b, 0x5c, 0x79, 0x92, 0xdc, 0xdd, 0x4c, 0x27, - 0x77, 0x6b, 0x79, 0x1d, 0xa7, 0x72, 0xbb, 0xbf, 0xae, 0x6a, 0x0e, 0xb3, 0x24, 0xb5, 0xdb, 0x4c, - 0xa7, 0x76, 0x97, 0x4a, 0x58, 0xa6, 0x32, 0xbb, 0xbc, 0x45, 0xd6, 0x0a, 0x2c, 0xd2, 0xcc, 0xe5, - 0x7f, 0xb3, 0x99, 0x52, 0x74, 0x46, 0xb6, 0xdf, 0x4b, 0xfa, 0xb7, 0x27, 0xd2, 0xbf, 0x78, 0xe8, - 0xb8, 0x4a, 0x75, 0x3b, 0x93, 0xfe, 0x75, 0xcb, 0xc4, 0x8c, 0xb3, 0xbf, 0xbf, 0x9a, 0x85, 0x46, - 0xdc, 0x97, 0x5b, 0xd8, 0xfc, 0x22, 0x55, 0x0b, 0x16, 0x49, 0x3f, 0xbf, 0x6a, 0xaf, 0x72, 0x7e, - 0xcd, 0xbe, 0xec, 0xfc, 0xba, 0x08, 0x0d, 0xfe, 0x61, 0x05, 0xf8, 0x48, 0x9e, 0x47, 0x75, 0x0e, - 0x30, 0xf1, 0x51, 0x62, 0x50, 0xf3, 0xa7, 0x31, 0xa8, 0x4c, 0x9e, 0xb9, 0x90, 0xcd, 0x33, 0x3f, - 0x8c, 0x4f, 0x18, 0x71, 0x16, 0xad, 0xe7, 0xd9, 0x15, 0x9e, 0x2d, 0xbb, 0xe9, 0xb3, 0x45, 0x1c, - 0x4f, 0x57, 0x0a, 0x88, 0x5f, 0xdb, 0x2c, 0xf3, 0x81, 0xc8, 0x32, 0x75, 0xab, 0x92, 0x8e, 0x70, - 0x13, 0x20, 0xde, 0xf3, 0x2a, 0xd5, 0x44, 0xf9, 0xa9, 0x99, 0x1a, 0x16, 0xf3, 0x2a, 0xa9, 0xf5, - 0x4f, 0x4a, 0xa9, 0xa7, 0xf0, 0x2a, 0xff, 0xa2, 0x47, 0x49, 0x25, 0xd5, 0xc8, 0x0f, 0x73, 0x85, - 0x89, 0xd3, 0x59, 0xdd, 0xcd, 0x74, 0x5d, 0xe2, 0x6c, 0xe6, 0x92, 0x2b, 0x4b, 0xf0, 0x43, 0xdd, - 0x0e, 0x64, 0xb7, 0xc8, 0x28, 0x1b, 0x12, 0xb2, 0x45, 0x59, 0x28, 0x75, 0xe4, 0x7a, 0x6e, 0x78, - 0x2c, 0xfa, 0xe7, 0x79, 0x3f, 0x28, 0xd0, 0x16, 0xbf, 0x56, 0xc6, 0xcf, 0x5d, 0x6a, 0x0d, 0x89, - 0x83, 0xb9, 0x31, 0xce, 0x99, 0x75, 0x06, 0xd8, 0x26, 0x0e, 0x4e, 0x36, 0x48, 0xfd, 0x4c, 0x1b, - 0xa4, 0x91, 0xd9, 0x20, 0xab, 0x30, 0x1f, 0x60, 0x3b, 0x24, 0x9e, 0x4c, 0x0c, 0x64, 0x8b, 0x9d, - 0x15, 0x13, 0x1c, 0x86, 0x6c, 0x00, 0x19, 0xc0, 0xc8, 0xa6, 0x16, 0x66, 0x2d, 0x96, 0x85, 0x59, - 0x53, 0xca, 0x9d, 0x99, 0x30, 0xab, 0x55, 0x16, 0x66, 0x9d, 0xa6, 0xda, 0xa9, 0x05, 0x91, 0xed, - 0xa9, 0x41, 0xa4, 0x1e, 0x8e, 0x2d, 0xa5, 0xc2, 0xb1, 0x3f, 0xe4, 0x9e, 0xba, 0x0f, 0x6b, 0xb9, - 0x5d, 0x20, 0x37, 0xd5, 0xed, 0x4c, 0xbd, 0xb4, 0x5b, 0xb6, 0x40, 0x71, 0xb9, 0xf4, 0x4f, 0x61, - 0x69, 0xf7, 0x39, 0x1e, 0x0e, 0x4e, 0xbc, 0xe1, 0x19, 0x22, 0x82, 0x0e, 0xd4, 0x86, 0x13, 0x47, - 0x16, 0x0a, 0xd8, 0xa7, 0x1e, 0x23, 0xd4, 0xd2, 0x31, 0x82, 0x05, 0x9d, 0x64, 0x04, 0x29, 0xe7, - 0x2a, 0x93, 0xd3, 0x61, 0xc8, 0x8c, 0xf9, 0xa2, 0x29, 0x5b, 0x12, 0x8e, 0x83, 0x80, 0xcf, 0x5a, - 0xc0, 0x71, 0x10, 0xa4, 0x2d, 0xba, 0x96, 0xb6, 0x68, 0xe3, 0x5b, 0x68, 0xb2, 0x01, 0xbe, 0x97, - 0xf8, 0x32, 0x50, 0xae, 0x25, 0x81, 0x72, 0x1c, 0x6f, 0xcf, 0x6a, 0xf1, 0xb6, 0xb1, 0x01, 0x8b, - 0x62, 0x2c, 0x39, 0x91, 0x0e, 0xd4, 0xa2, 0x60, 0xac, 0xf4, 0x16, 0x05, 0x63, 0xe3, 0x8f, 0xa1, - 0xb5, 0x45, 0xa9, 0x3d, 0x3c, 0x3e, 0x83, 0x3c, 0xf1, 0x58, 0x55, 0x3d, 0xb6, 0xcf, 0xc9, 0x64, - 0x18, 0xd0, 0x56, 0xbc, 0x4b, 0xc7, 0xef, 0x03, 0xda, 0x27, 0x01, 0xbd, 0x47, 0x82, 0x67, 0x76, - 0xe0, 0x9c, 0x2d, 0x56, 0x46, 0x30, 0x2b, 0x1f, 0xab, 0xd4, 0xae, 0xcd, 0x99, 0xfc, 0xdb, 0x78, - 0x07, 0xce, 0xa5, 0xf8, 0x95, 0x0e, 0xfc, 0x11, 0x34, 0xb9, 0x0b, 0x91, 0xf1, 0xd4, 0x35, 0xbd, - 0x1a, 0x38, 0xcd, 0xcf, 0xb0, 0x8c, 0x9b, 0x9d, 0x11, 0x1c, 0x1e, 0x3b, 0xf4, 0x1f, 0x67, 0xa2, - 0x8e, 0x95, 0x34, 0x7d, 0x26, 0xe2, 0xf8, 0x87, 0x0a, 0xcc, 0x71, 0x78, 0xce, 0xa3, 0x5f, 0x84, - 0x46, 0x80, 0x7d, 0x62, 0x51, 0x7b, 0x14, 0xbf, 0xff, 0x61, 0x80, 0xc7, 0xf6, 0x28, 0xe4, 0xcf, - 0x97, 0x58, 0xa7, 0xe3, 0x8e, 0x70, 0x48, 0xd5, 0x23, 0xa0, 0x26, 0x83, 0xed, 0x08, 0x10, 0x5b, - 0x92, 0xd0, 0xfd, 0x33, 0x11, 0x4e, 0xcc, 0x9a, 0xfc, 0x1b, 0x5d, 0x15, 0xf7, 0xf2, 0x53, 0x8a, - 0x3f, 0xfc, 0xb2, 0xbe, 0x07, 0xf5, 0x4c, 0xbd, 0x27, 0x6e, 0x1b, 0x9f, 0x02, 0xd2, 0xe7, 0x2c, - 0x17, 0xf5, 0x6d, 0x98, 0xe7, 0x4b, 0xa2, 0xce, 0xc3, 0x76, 0x7a, 0xd2, 0xa6, 0xec, 0x35, 0x3e, - 0x07, 0x24, 0x56, 0x31, 0x75, 0x06, 0x9e, 0x7e, 0xc5, 0x3f, 0x81, 0x73, 0x29, 0xfa, 0xf8, 0x1a, - 0x36, 0xc5, 0x20, 0x3b, 0xba, 0x24, 0xfe, 0xb7, 0x0a, 0xc0, 0x56, 0x44, 0x8f, 0x65, 0xa1, 0x41, - 0x9f, 0x65, 0x25, 0x3d, 0x4b, 0xd6, 0xe7, 0xdb, 0x61, 0xf8, 0x8c, 0x04, 0x2a, 0xc8, 0x8b, 0xdb, - 0xbc, 0x48, 0x10, 0xd1, 0x63, 0x55, 0xdc, 0x64, 0xdf, 0xe8, 0x2a, 0xb4, 0xc5, 0xb3, 0x2d, 0xcb, - 0x76, 0x9c, 0x00, 0x87, 0xa1, 0xac, 0x72, 0xb6, 0x04, 0x74, 0x4b, 0x00, 0x19, 0x9a, 0xeb, 0x60, - 0x8f, 0xba, 0xf4, 0xc4, 0xa2, 0xe4, 0x09, 0xf6, 0x64, 0xf8, 0xd6, 0x52, 0xd0, 0xc7, 0x0c, 0xc8, - 0xd0, 0x02, 0x3c, 0x72, 0x43, 0x1a, 0x28, 0x34, 0x55, 0x75, 0x93, 0x50, 0x8e, 0x66, 0xfc, 0xba, - 0x02, 0x9d, 0xfd, 0x68, 0x3c, 0x16, 0x93, 0x3c, 0xeb, 0x5a, 0xa2, 0x77, 0xe4, 0x3c, 0xaa, 0x19, - 0x6b, 0x48, 0x96, 0x48, 0x4e, 0xee, 0xfb, 0xa7, 0x95, 0xb7, 0x61, 0x59, 0x13, 0x54, 0x2a, 0x2d, - 0x75, 0x4a, 0x57, 0xd2, 0xa7, 0x34, 0x33, 0x14, 0x91, 0x49, 0xbd, 0xda, 0xe4, 0x8c, 0xf3, 0x70, - 0x2e, 0x45, 0x2f, 0xb3, 0xb0, 0x1b, 0xd0, 0x92, 0x57, 0xa1, 0xd2, 0x08, 0x2e, 0x40, 0x9d, 0xb9, - 0x97, 0xa1, 0xeb, 0xa8, 0xaa, 0xf6, 0x82, 0x4f, 0x9c, 0x6d, 0xd7, 0x09, 0x8c, 0x3e, 0xb4, 0x4c, - 0xc1, 0x5e, 0xe2, 0x7e, 0x06, 0x6d, 0x79, 0x71, 0x6a, 0xa5, 0x1e, 0x10, 0x24, 0x25, 0xd8, 0x14, - 0x6f, 0xb3, 0xe5, 0xe9, 0x4d, 0xe3, 0x97, 0xd0, 0x3b, 0xf0, 0x1d, 0x16, 0x4c, 0xe9, 0x5c, 0xd5, - 0xd4, 0x3e, 0x03, 0xf5, 0xac, 0xb0, 0x8c, 0x79, 0x9a, 0xac, 0x15, 0xe8, 0x4d, 0xe3, 0x32, 0x5c, - 0x2c, 0x64, 0x2e, 0xe7, 0xed, 0x43, 0x27, 0xe9, 0x70, 0x5c, 0x55, 0xcc, 0xe7, 0x45, 0xfa, 0x8a, - 0x56, 0xa4, 0x5f, 0x8d, 0x8f, 0x61, 0xe1, 0xd0, 0x65, 0x4b, 0x0b, 0x9a, 0x6a, 0x65, 0x41, 0xd3, - 0x6c, 0x2a, 0x68, 0x32, 0xbe, 0x8e, 0x57, 0x4f, 0x46, 0xac, 0x1f, 0xf3, 0xb0, 0x59, 0x8c, 0xad, - 0xdc, 0xc4, 0x85, 0x82, 0xc9, 0x09, 0x0c, 0x53, 0x43, 0x36, 0x96, 0xa0, 0x95, 0x72, 0x18, 0xc6, - 0x5d, 0x68, 0x67, 0x3c, 0xc0, 0xad, 0x4c, 0xfc, 0x90, 0x5b, 0xb6, 0x4c, 0xf4, 0xb0, 0x22, 0x1d, - 0xd1, 0xbd, 0x70, 0xcf, 0x3b, 0x22, 0x8a, 0xef, 0x15, 0x68, 0x1e, 0x94, 0x3d, 0xd1, 0x9b, 0x55, - 0x77, 0x3c, 0xef, 0xc0, 0xf2, 0x80, 0x92, 0xc0, 0x1e, 0xe1, 0x3d, 0xbe, 0x6b, 0x8f, 0x5c, 0x71, - 0x0b, 0x12, 0x45, 0xb1, 0xff, 0xe6, 0xdf, 0xc6, 0x7f, 0x54, 0x60, 0xe9, 0x9e, 0x3b, 0xc6, 0xe1, - 0x49, 0x48, 0xf1, 0xe4, 0x80, 0xc7, 0x92, 0x97, 0xa0, 0xc1, 0xa4, 0x09, 0xa9, 0x3d, 0xf1, 0xd5, - 0x1d, 0x50, 0x0c, 0x60, 0x6b, 0x14, 0x0a, 0xd6, 0x2a, 0xbb, 0xd4, 0xe3, 0xf8, 0xdc, 0xa8, 0x2c, - 0xb6, 0x96, 0x20, 0xf4, 0x3e, 0x40, 0x14, 0x62, 0x47, 0xde, 0xfb, 0xd4, 0x32, 0x47, 0xcf, 0x81, - 0x5e, 0xdf, 0x67, 0x78, 0xe2, 0x12, 0xe8, 0x03, 0x68, 0xba, 0x1e, 0x71, 0x30, 0xaf, 0xef, 0x3b, - 0x32, 0xf3, 0x2c, 0xa6, 0x02, 0x81, 0x78, 0x10, 0x62, 0xc7, 0xf8, 0x13, 0xe9, 0x85, 0xd5, 0xe2, - 0x49, 0x1d, 0xec, 0xc2, 0xb2, 0xd8, 0xd0, 0x47, 0xf1, 0xa4, 0x95, 0xa2, 0x93, 0x70, 0x2e, 0xb3, - 0x20, 0x66, 0xc7, 0x95, 0xa7, 0xa2, 0xa2, 0x30, 0xee, 0xc0, 0xf9, 0x54, 0xcc, 0x77, 0x96, 0x54, - 0xe9, 0xab, 0x4c, 0x9e, 0x95, 0x18, 0x88, 0x4c, 0x74, 0x94, 0x7d, 0x94, 0x24, 0x3a, 0xa1, 0x48, - 0x74, 0x42, 0xc3, 0x84, 0x0b, 0xa9, 0xf4, 0x2f, 0x25, 0xc8, 0x07, 0x99, 0x23, 0xfe, 0x72, 0x09, - 0xb3, 0xcc, 0x59, 0xff, 0x3f, 0x15, 0x58, 0x29, 0x42, 0x78, 0xc5, 0x42, 0xc3, 0xcf, 0x4a, 0x6e, - 0xe3, 0x6f, 0x4f, 0x95, 0xe6, 0xf7, 0x52, 0x92, 0xb9, 0x0f, 0xbd, 0xa2, 0xd5, 0xcb, 0xab, 0xa2, - 0x76, 0x0a, 0x55, 0xfc, 0x6f, 0x55, 0x2b, 0x9d, 0x6d, 0x51, 0x1a, 0xb8, 0x87, 0x11, 0x33, 0xde, - 0x1f, 0x2a, 0x05, 0xbe, 0x1b, 0xa7, 0x77, 0x62, 0xfd, 0xae, 0xe5, 0xa9, 0x92, 0x51, 0x0b, 0x53, - 0xbc, 0x47, 0xe9, 0x14, 0x4f, 0x14, 0xc5, 0x6e, 0x4e, 0x65, 0xf3, 0xda, 0xd6, 0x3d, 0x5e, 0x54, - 0xa0, 0x9d, 0xd6, 0x03, 0xfa, 0x14, 0xc0, 0x8e, 0x25, 0x97, 0x26, 0x7f, 0x69, 0xda, 0xec, 0x4c, - 0x0d, 0x1f, 0x5d, 0x81, 0xda, 0xd0, 0x8f, 0xa4, 0x46, 0x92, 0xdb, 0x91, 0x6d, 0x3f, 0x12, 0x0e, - 0x80, 0xf5, 0xb2, 0xa0, 0x59, 0xdc, 0x51, 0xe7, 0x3c, 0xd7, 0x43, 0x0e, 0x16, 0xa8, 0x12, 0x07, - 0x7d, 0x01, 0xed, 0x67, 0x81, 0x4b, 0xed, 0xc3, 0x31, 0xb6, 0xc6, 0xf6, 0x09, 0x0e, 0xa4, 0xe7, - 0x2a, 0xf7, 0x32, 0x2d, 0x85, 0xff, 0x80, 0xa1, 0x1b, 0x11, 0xd4, 0xd5, 0xf8, 0x2f, 0xf1, 0xc8, - 0xf7, 0x61, 0x2d, 0x62, 0x68, 0x16, 0xbf, 0x27, 0xf7, 0x6c, 0x8f, 0x58, 0x21, 0x66, 0x47, 0x93, - 0x7a, 0x9b, 0x56, 0xec, 0x2d, 0x57, 0x38, 0xd1, 0x36, 0x09, 0x70, 0xdf, 0xf6, 0xc8, 0x40, 0x50, - 0x18, 0x13, 0x68, 0x6a, 0xd3, 0x79, 0xc9, 0xc8, 0x77, 0x61, 0x59, 0xdd, 0x3b, 0x85, 0x98, 0x4a, - 0xbf, 0x3e, 0x6d, 0xcc, 0x25, 0x89, 0x3e, 0xc0, 0x94, 0x7b, 0xf7, 0x1b, 0x97, 0xa0, 0xae, 0x5e, - 0xf8, 0xa3, 0x05, 0xa8, 0x3d, 0xde, 0xde, 0xef, 0xcc, 0xb0, 0x8f, 0x83, 0x9d, 0xfd, 0x4e, 0xe5, - 0xc6, 0x1d, 0x58, 0xca, 0xbc, 0x3d, 0x41, 0xcb, 0xd0, 0x1a, 0x6c, 0xf5, 0x77, 0xbe, 0x7c, 0xf4, - 0x73, 0xcb, 0xdc, 0xdd, 0xda, 0xf9, 0x45, 0x67, 0x06, 0xad, 0x40, 0x47, 0x81, 0xfa, 0x8f, 0x1e, - 0x0b, 0x68, 0xe5, 0xc6, 0x93, 0x8c, 0x8d, 0x60, 0x74, 0x1e, 0x96, 0xb7, 0x1f, 0xf5, 0x1f, 0x6f, - 0xed, 0xf5, 0x77, 0x4d, 0x6b, 0xdb, 0xdc, 0xdd, 0x7a, 0xbc, 0xbb, 0xd3, 0x99, 0x49, 0x83, 0xcd, - 0x83, 0x7e, 0x7f, 0xaf, 0xff, 0x55, 0xa7, 0xc2, 0xb8, 0x26, 0xe0, 0xdd, 0x9f, 0xef, 0x31, 0xe4, - 0x6a, 0x1a, 0xf9, 0xa0, 0x7f, 0xbf, 0xff, 0xe8, 0x67, 0xfd, 0x4e, 0x6d, 0xf3, 0xb7, 0x8b, 0xd0, - 0x56, 0x87, 0x38, 0x0e, 0xf8, 0xed, 0xe4, 0xe7, 0xb0, 0xa0, 0x7e, 0xbe, 0x48, 0xbc, 0x47, 0xfa, - 0x4f, 0x91, 0x5e, 0x37, 0xdf, 0x21, 0x83, 0xa1, 0x19, 0xb4, 0xcf, 0x83, 0x13, 0xed, 0x9d, 0xcf, - 0x65, 0x3d, 0x5c, 0xc8, 0x3d, 0x24, 0xea, 0xad, 0x97, 0x75, 0xc7, 0x1c, 0x07, 0x2c, 0x22, 0xd1, - 0xdf, 0x68, 0xa2, 0x75, 0xfd, 0xdc, 0xce, 0xbf, 0xfd, 0xec, 0xbd, 0x51, 0xda, 0x1f, 0x33, 0xfd, - 0x05, 0x74, 0xb2, 0xaf, 0x33, 0x51, 0x72, 0xcb, 0x5c, 0xf2, 0xf2, 0xb3, 0xf7, 0xe6, 0x14, 0x0c, - 0x9d, 0x75, 0xee, 0x85, 0xe3, 0x46, 0xf9, 0x1b, 0xb5, 0x1c, 0xeb, 0xb2, 0x87, 0x6f, 0x62, 0x29, - 0xd2, 0xef, 0x73, 0x90, 0xfe, 0xae, 0xb0, 0xe0, 0x9d, 0x96, 0xb6, 0x14, 0xc5, 0x0f, 0x7b, 0x8c, - 0x19, 0xf4, 0x0d, 0x2c, 0x65, 0x2e, 0xa6, 0x50, 0x42, 0x55, 0x7c, 0xcd, 0xd6, 0xdb, 0x28, 0x47, - 0x48, 0xeb, 0x4d, 0xbf, 0x76, 0x4a, 0xe9, 0xad, 0xe0, 0x2e, 0x2b, 0xa5, 0xb7, 0xc2, 0xfb, 0x2a, - 0x6e, 0x5e, 0xa9, 0xcb, 0x25, 0xcd, 0xbc, 0x8a, 0x6e, 0xb2, 0x7a, 0xeb, 0x65, 0xdd, 0xfa, 0xf4, - 0x33, 0x17, 0x4b, 0xda, 0xf4, 0x8b, 0xef, 0xab, 0x7a, 0x1b, 0xe5, 0x08, 0x59, 0x5d, 0x25, 0x55, - 0xee, 0x8c, 0xae, 0x72, 0x97, 0x2a, 0x19, 0x5d, 0xe5, 0xcb, 0xe3, 0x52, 0x57, 0x99, 0x72, 0xf5, - 0x1b, 0xa5, 0xe5, 0xbc, 0xbc, 0xae, 0x8a, 0x2b, 0x84, 0xc6, 0x0c, 0xda, 0x82, 0xba, 0xaa, 0xc7, - 0xa1, 0x64, 0x77, 0x67, 0x8a, 0x80, 0xbd, 0x0b, 0x05, 0x3d, 0x31, 0x8b, 0x0f, 0x60, 0x96, 0x41, - 0xd1, 0x4a, 0x0a, 0x49, 0x91, 0x9e, 0xcf, 0x40, 0x63, 0xb2, 0x4f, 0x60, 0x5e, 0x94, 0xaf, 0x50, - 0x92, 0x57, 0xa4, 0x6a, 0x65, 0xbd, 0xb5, 0x1c, 0x3c, 0x26, 0xfe, 0x5a, 0xfc, 0x90, 0x25, 0xeb, - 0x50, 0xe8, 0x62, 0xea, 0xe1, 0x7f, 0xba, 0xda, 0xd5, 0xbb, 0x54, 0xdc, 0xa9, 0xeb, 0x2b, 0x73, - 0x38, 0xaf, 0x97, 0x45, 0x4f, 0x39, 0x7d, 0x15, 0x47, 0x63, 0xc6, 0x0c, 0xb2, 0x44, 0x49, 0x27, - 0xc3, 0xd8, 0x28, 0x56, 0x74, 0x8a, 0xf9, 0x95, 0xa9, 0x38, 0xf1, 0x00, 0x87, 0x70, 0xae, 0x20, - 0x39, 0x45, 0x09, 0x75, 0x79, 0x5e, 0xdc, 0x7b, 0x6b, 0x3a, 0x92, 0xae, 0x22, 0x69, 0x6b, 0xab, - 0xfa, 0x06, 0xd5, 0x4c, 0x6c, 0x2d, 0x07, 0x57, 0xc4, 0x9b, 0x7f, 0x51, 0x83, 0x45, 0x51, 0x42, - 0x90, 0x07, 0xcc, 0x57, 0x00, 0x49, 0x95, 0x0b, 0xf5, 0x52, 0xd3, 0x4c, 0x95, 0xfb, 0x7a, 0x17, - 0x0b, 0xfb, 0x74, 0xe5, 0x6b, 0x05, 0x2b, 0x4d, 0xf9, 0xf9, 0x32, 0x98, 0xa6, 0xfc, 0x82, 0x1a, - 0x97, 0x31, 0x83, 0x76, 0xa0, 0x11, 0x57, 0x51, 0x90, 0x56, 0x7c, 0xc9, 0x94, 0x80, 0x7a, 0xbd, - 0xa2, 0x2e, 0x5d, 0x22, 0xad, 0x32, 0xa2, 0x49, 0x94, 0xaf, 0xb7, 0x68, 0x12, 0x15, 0x15, 0x53, - 0x92, 0xd9, 0x89, 0x44, 0x30, 0x3b, 0xbb, 0x54, 0x6e, 0x9d, 0x9d, 0x5d, 0x3a, 0x77, 0x34, 0x66, - 0xbe, 0xbc, 0xf4, 0x9b, 0xdf, 0xad, 0x57, 0xfe, 0xf3, 0x77, 0xeb, 0x33, 0x7f, 0xfe, 0x62, 0xbd, - 0xf2, 0x9b, 0x17, 0xeb, 0x95, 0x7f, 0x7f, 0xb1, 0x5e, 0xf9, 0xed, 0x8b, 0xf5, 0xca, 0x77, 0xff, - 0xbd, 0x3e, 0x73, 0x38, 0xcf, 0xff, 0x50, 0x7c, 0xff, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xbd, - 0x17, 0xb2, 0x8b, 0x55, 0x3a, 0x00, 0x00, + 0x76, 0x9c, 0x19, 0x7e, 0xcc, 0xbc, 0xe1, 0x0c, 0x87, 0x25, 0x4a, 0x1c, 0x8d, 0x24, 0x8a, 0x6e, + 0x59, 0xb6, 0xa4, 0x5d, 0xc9, 0x32, 0xbd, 0x96, 0x63, 0xf9, 0x4b, 0x63, 0x92, 0x32, 0x68, 0x49, + 0x14, 0xb7, 0x47, 0xf4, 0xee, 0x66, 0x03, 0x74, 0x9a, 0xd3, 0xc5, 0x61, 0xdb, 0x33, 0x5d, 0xed, + 0xee, 0x6a, 0x49, 0x0c, 0x72, 0x48, 0x2e, 0x41, 0x2e, 0x01, 0x9c, 0x63, 0x6e, 0x39, 0x04, 0x58, + 0xe4, 0x92, 0x43, 0x0e, 0x41, 0x7e, 0x41, 0xb0, 0x97, 0x00, 0x01, 0x02, 0x04, 0xc9, 0x2d, 0xab, + 0x1c, 0x72, 0x08, 0x90, 0xdf, 0xb0, 0xa8, 0xaf, 0xee, 0xea, 0xaf, 0x11, 0x29, 0x1b, 0xbb, 0x3a, + 0x4d, 0xd7, 0xab, 0x57, 0xaf, 0x5e, 0xd5, 0x7b, 0xf5, 0xbe, 0xaa, 0x06, 0x1a, 0xb6, 0xef, 0xde, + 0xf2, 0x03, 0x42, 0x09, 0x5a, 0x08, 0x22, 0x8f, 0xba, 0x13, 0xdc, 0xbb, 0x39, 0x72, 0xe9, 0x51, + 0x74, 0x70, 0x6b, 0x48, 0x26, 0xef, 0x8c, 0xc8, 0x88, 0xbc, 0xc3, 0xfb, 0x0f, 0xa2, 0x43, 0xde, + 0xe2, 0x0d, 0xfe, 0x25, 0xc6, 0x19, 0x37, 0xa0, 0xfd, 0x15, 0x0e, 0x42, 0x97, 0x78, 0x26, 0xfe, + 0x36, 0xc2, 0x21, 0x45, 0x5d, 0x58, 0x78, 0x2a, 0x20, 0xdd, 0xca, 0x7a, 0xe5, 0x5a, 0xc3, 0x54, + 0x4d, 0xe3, 0x57, 0x15, 0x58, 0x8a, 0x91, 0x43, 0x9f, 0x78, 0x21, 0x2e, 0xc7, 0x46, 0x6f, 0xc0, + 0xa2, 0xe4, 0xc9, 0xf2, 0xec, 0x09, 0xee, 0x56, 0x79, 0x77, 0x53, 0xc2, 0x76, 0xed, 0x09, 0x46, + 0x6f, 0xc3, 0x92, 0x42, 0x51, 0x44, 0x6a, 0x1c, 0xab, 0x2d, 0xc1, 0x72, 0x36, 0x74, 0x0b, 0xce, + 0x28, 0x44, 0xdb, 0x77, 0x63, 0xe4, 0x59, 0x8e, 0xbc, 0x2c, 0xbb, 0xfa, 0xbe, 0x2b, 0xf1, 0x8d, + 0x5f, 0x42, 0x63, 0x6b, 0x77, 0xb0, 0x49, 0xbc, 0x43, 0x77, 0xc4, 0x58, 0x0c, 0x71, 0xc0, 0xc6, + 0x74, 0x2b, 0xeb, 0x35, 0xc6, 0xa2, 0x6c, 0xa2, 0x1e, 0xd4, 0x43, 0x6c, 0x07, 0xc3, 0x23, 0x1c, + 0x76, 0xab, 0xbc, 0x2b, 0x6e, 0xb3, 0x51, 0xc4, 0xa7, 0x2e, 0xf1, 0xc2, 0x6e, 0x4d, 0x8c, 0x92, + 0x4d, 0xe3, 0x6f, 0x2a, 0xd0, 0xdc, 0x23, 0x01, 0x7d, 0x64, 0xfb, 0xbe, 0xeb, 0x8d, 0xd0, 0x4d, + 0xa8, 0xf3, 0xbd, 0x1c, 0x92, 0x31, 0xdf, 0x83, 0xf6, 0xc6, 0xf2, 0x2d, 0xc9, 0xd2, 0xad, 0x3d, + 0xd9, 0x61, 0xc6, 0x28, 0xe8, 0x2a, 0xb4, 0x87, 0xc4, 0xa3, 0xb6, 0xeb, 0xe1, 0xc0, 0xf2, 0x49, + 0x40, 0xf9, 0xce, 0xcc, 0x99, 0xad, 0x18, 0xca, 0x88, 0xa3, 0x0b, 0xd0, 0x38, 0x22, 0x21, 0x15, + 0x18, 0x35, 0x8e, 0x51, 0x67, 0x00, 0xde, 0xb9, 0x0a, 0x0b, 0xbc, 0xd3, 0xf5, 0xe5, 0x1e, 0xcc, + 0xb3, 0xe6, 0x8e, 0x6f, 0x7c, 0x57, 0x81, 0xb9, 0x47, 0x24, 0xf2, 0x68, 0x66, 0x1a, 0x9b, 0x1e, + 0x49, 0xf9, 0x68, 0xd3, 0xd8, 0xf4, 0x28, 0x99, 0x86, 0x61, 0x08, 0x11, 0x89, 0x69, 0x58, 0x67, + 0x0f, 0xea, 0x01, 0xb6, 0x1d, 0xe2, 0x8d, 0x8f, 0x39, 0x0b, 0x75, 0x33, 0x6e, 0x33, 0xd9, 0x85, + 0x78, 0xec, 0x7a, 0xd1, 0x73, 0x2b, 0xc0, 0x63, 0xfb, 0x00, 0x8f, 0x39, 0x2b, 0x75, 0xb3, 0x2d, + 0xc1, 0xa6, 0x80, 0x1a, 0x5f, 0xc3, 0x12, 0x13, 0x76, 0xe8, 0xdb, 0x43, 0xfc, 0x98, 0x6f, 0x21, + 0x53, 0x0d, 0x3e, 0xa9, 0x87, 0xe9, 0x33, 0x12, 0x7c, 0xc3, 0x39, 0xab, 0x9b, 0x4d, 0x06, 0xdb, + 0x15, 0x20, 0x74, 0x1e, 0xea, 0x82, 0x2f, 0xd7, 0xe1, 0x6c, 0xd5, 0x4d, 0xbe, 0xe2, 0x3d, 0xd7, + 0x89, 0xbb, 0x5c, 0x7f, 0x28, 0xb9, 0x5a, 0x10, 0xab, 0x1f, 0x1a, 0x06, 0xc0, 0x8e, 0x47, 0xef, + 0xfc, 0xe4, 0x2b, 0x7b, 0x1c, 0x61, 0xb4, 0x02, 0x73, 0x4f, 0xd9, 0x07, 0xa7, 0x5f, 0x33, 0x45, + 0xc3, 0xf8, 0x8b, 0x1a, 0x5c, 0x78, 0xc8, 0x18, 0x1c, 0xd8, 0x9e, 0x73, 0x40, 0x9e, 0x0f, 0xf0, + 0x30, 0x0a, 0x5c, 0x7a, 0xbc, 0x49, 0x3c, 0x8a, 0x9f, 0x53, 0xb4, 0x0d, 0xcb, 0x9e, 0xe2, 0xd7, + 0x52, 0x2a, 0xc0, 0x28, 0x34, 0x37, 0xba, 0xb1, 0x5c, 0x33, 0x2b, 0x32, 0x3b, 0x5e, 0x1a, 0x10, + 0xa2, 0xcf, 0x92, 0xfd, 0x51, 0x44, 0xaa, 0x9c, 0xc8, 0xb9, 0x98, 0xc8, 0x60, 0x9b, 0xf3, 0x21, + 0x49, 0xa8, 0x7d, 0x53, 0x04, 0xde, 0x03, 0x76, 0x56, 0x2c, 0x3b, 0xb4, 0xa2, 0x10, 0x07, 0x7c, + 0xa5, 0xcd, 0x8d, 0x33, 0xf1, 0xe0, 0x64, 0x9d, 0x66, 0x23, 0x88, 0xbc, 0x7e, 0xb8, 0x1f, 0xe2, + 0x80, 0x9f, 0x28, 0x29, 0x21, 0x2b, 0x20, 0x84, 0x1e, 0x86, 0x4a, 0x2a, 0x0a, 0x6c, 0x72, 0x28, + 0x7a, 0x07, 0xce, 0x84, 0x91, 0xef, 0x8f, 0xf1, 0x04, 0x7b, 0xd4, 0x1e, 0x5b, 0xa3, 0x80, 0x44, + 0x7e, 0xd8, 0x9d, 0x5b, 0xaf, 0x5d, 0xab, 0x99, 0x48, 0xef, 0xfa, 0x82, 0xf7, 0xa0, 0x35, 0x00, + 0x3f, 0x70, 0x9f, 0xba, 0x63, 0x3c, 0xc2, 0x4e, 0x77, 0x9e, 0x13, 0xd5, 0x20, 0xe8, 0x36, 0xac, + 0x84, 0x78, 0x38, 0x24, 0x13, 0xdf, 0xf2, 0x03, 0x72, 0xe8, 0x8e, 0xb1, 0xd0, 0xa9, 0x05, 0xae, + 0x53, 0x48, 0xf6, 0xed, 0x89, 0x2e, 0xa6, 0x5d, 0xc6, 0x77, 0x55, 0x38, 0xcb, 0x37, 0x60, 0x8f, + 0x38, 0x52, 0x16, 0xf2, 0xc4, 0x5e, 0x81, 0xd6, 0x90, 0x33, 0x64, 0xf9, 0x76, 0x80, 0x3d, 0x2a, + 0x55, 0x77, 0x51, 0x00, 0xf7, 0x38, 0x0c, 0x3d, 0x86, 0x4e, 0x28, 0x45, 0x67, 0x0d, 0x85, 0xec, + 0xe4, 0x0e, 0xbf, 0x19, 0x6f, 0xd2, 0x14, 0x39, 0x9b, 0x4b, 0x61, 0x4e, 0xf0, 0x0b, 0xe1, 0x71, + 0x38, 0xa4, 0x63, 0x71, 0xe2, 0x9b, 0x1b, 0x3f, 0x4a, 0xd3, 0xc9, 0xb2, 0x79, 0x6b, 0x20, 0xb0, + 0xb7, 0x3d, 0x1a, 0x1c, 0x9b, 0x6a, 0x6c, 0xef, 0x2e, 0x2c, 0xea, 0x1d, 0xa8, 0x03, 0xb5, 0x6f, + 0xf0, 0xb1, 0x5c, 0x02, 0xfb, 0x4c, 0xf4, 0x52, 0x9c, 0x37, 0xd1, 0xb8, 0x5b, 0xfd, 0x83, 0x8a, + 0x11, 0x00, 0x4a, 0x66, 0x79, 0x84, 0xa9, 0xed, 0xd8, 0xd4, 0x46, 0x08, 0x66, 0xb9, 0x05, 0x15, + 0x24, 0xf8, 0x37, 0xa3, 0x1a, 0xc9, 0xa3, 0xd1, 0x30, 0xd9, 0x27, 0xba, 0x08, 0x8d, 0x58, 0x09, + 0xa5, 0x19, 0x4d, 0x00, 0xcc, 0x9c, 0xd9, 0x94, 0xe2, 0x89, 0x4f, 0xb9, 0x42, 0xb4, 0x4c, 0xd5, + 0x34, 0xfe, 0x79, 0x16, 0x3a, 0x39, 0x09, 0x7c, 0x00, 0xf5, 0x89, 0x9c, 0x5e, 0xea, 0xfe, 0x85, + 0xc4, 0xa6, 0xe5, 0x38, 0x34, 0x63, 0x64, 0x66, 0x32, 0xd8, 0x61, 0xd4, 0x2c, 0x7e, 0xdc, 0x66, + 0x62, 0x1d, 0x93, 0x91, 0xe5, 0xb8, 0x01, 0x1e, 0x52, 0x12, 0x1c, 0x4b, 0x2e, 0x17, 0xc7, 0x64, + 0xb4, 0xa5, 0x60, 0xe8, 0x5d, 0x00, 0xc7, 0x0b, 0x99, 0x44, 0x0f, 0xdd, 0x11, 0xe7, 0xb5, 0xb9, + 0x81, 0xe2, 0xb9, 0x63, 0xab, 0x6e, 0x36, 0x1c, 0x2f, 0x94, 0xcc, 0x7e, 0x08, 0x2d, 0x66, 0x25, + 0xad, 0x89, 0x30, 0xc8, 0x42, 0x8b, 0x9b, 0x1b, 0x2b, 0x1a, 0xc7, 0xb1, 0xb5, 0x36, 0x17, 0xfd, + 0xa4, 0x11, 0xa2, 0x4f, 0x60, 0x9e, 0x5b, 0xa9, 0xb0, 0x3b, 0xcf, 0xc7, 0x5c, 0x2d, 0x58, 0xa5, + 0x94, 0xf6, 0x43, 0x8e, 0x27, 0x84, 0x2d, 0x07, 0xa1, 0x87, 0xd0, 0xb4, 0x3d, 0x8f, 0x50, 0x5b, + 0x1c, 0xf0, 0x05, 0x4e, 0xe3, 0x46, 0x39, 0x8d, 0x7e, 0x82, 0x2c, 0x08, 0xe9, 0xc3, 0xd1, 0x4f, + 0x60, 0x8e, 0x5b, 0x80, 0x6e, 0x9d, 0xaf, 0x7a, 0x6d, 0xba, 0xfa, 0x99, 0x02, 0xb9, 0xf7, 0x21, + 0x34, 0x35, 0xd6, 0x4e, 0xa3, 0x6e, 0xbd, 0x4f, 0xa1, 0x93, 0xe5, 0xe8, 0x54, 0xea, 0xba, 0x03, + 0x2b, 0x66, 0xe4, 0x25, 0x8c, 0xa9, 0x10, 0xe2, 0x5d, 0x98, 0x97, 0xf2, 0x13, 0xba, 0x73, 0xbe, + 0x74, 0x47, 0x4c, 0x89, 0x68, 0x7c, 0x02, 0x67, 0x33, 0xa4, 0x64, 0x80, 0xf1, 0x26, 0xb4, 0x7d, + 0xe2, 0x58, 0xa1, 0x00, 0x5b, 0xae, 0xa3, 0x8c, 0x81, 0x1f, 0xe3, 0xee, 0x38, 0x6c, 0xf8, 0x80, + 0x12, 0x3f, 0xcf, 0xca, 0xc9, 0x86, 0x77, 0xe1, 0x5c, 0x76, 0xb8, 0x98, 0xde, 0xf8, 0x0c, 0x56, + 0x4d, 0x3c, 0x21, 0x4f, 0xf1, 0xab, 0x92, 0xee, 0x41, 0x37, 0x4f, 0x20, 0x21, 0x9e, 0x40, 0x07, + 0xd4, 0xa6, 0x51, 0x78, 0x3a, 0xe2, 0xd7, 0x75, 0x02, 0xd2, 0x75, 0x0a, 0x3a, 0xa8, 0x0d, 0x55, + 0xd7, 0x97, 0x83, 0xaa, 0xae, 0x6f, 0x7c, 0x06, 0x8d, 0xd8, 0x69, 0xa1, 0x8d, 0x24, 0xb8, 0xa9, + 0xbe, 0xc4, 0xb3, 0xc5, 0x61, 0xcf, 0x83, 0x9c, 0xb5, 0x96, 0x33, 0x6d, 0x00, 0xc4, 0x76, 0x46, + 0x79, 0x4a, 0x94, 0xa7, 0x67, 0x6a, 0x58, 0xc6, 0xdf, 0xa5, 0x8c, 0x8e, 0xc6, 0xb2, 0x13, 0xb3, + 0xec, 0xa4, 0x8c, 0x50, 0xf5, 0x34, 0x46, 0xe8, 0x16, 0xcc, 0x85, 0xd4, 0xa6, 0xc2, 0x0c, 0xb6, + 0xb5, 0xc5, 0xa5, 0xa7, 0xc4, 0xa6, 0x40, 0x43, 0x97, 0x00, 0x86, 0x01, 0xb6, 0x29, 0x76, 0x2c, + 0x5b, 0xd8, 0xc7, 0x9a, 0xd9, 0x90, 0x90, 0x3e, 0x45, 0x77, 0x61, 0x41, 0x45, 0x2a, 0x73, 0x9c, + 0x8d, 0xf5, 0x02, 0x82, 0xa9, 0xdd, 0x37, 0xd5, 0x80, 0xe4, 0x4c, 0xcf, 0x4f, 0x3f, 0xd3, 0x72, + 0x9c, 0x40, 0xd6, 0xcc, 0xd2, 0x42, 0xa9, 0x59, 0x12, 0x23, 0x4e, 0x62, 0x96, 0xea, 0xa5, 0x66, + 0x49, 0xd2, 0x98, 0x6a, 0x96, 0x7e, 0x9f, 0x06, 0xe6, 0x11, 0x74, 0xf3, 0x07, 0x44, 0x1a, 0x86, + 0x77, 0x61, 0x3e, 0xe4, 0x90, 0x29, 0x46, 0x46, 0x0e, 0x91, 0x88, 0xc6, 0x7d, 0x58, 0xc9, 0x68, + 0x80, 0x08, 0x14, 0x63, 0x7d, 0xa9, 0x9c, 0x48, 0x5f, 0x8c, 0xff, 0xaf, 0xe8, 0xda, 0x7b, 0xdf, + 0x1d, 0x53, 0x1c, 0xe4, 0xb4, 0xf7, 0x3d, 0x45, 0x54, 0xa8, 0xee, 0xa5, 0x32, 0xa2, 0x22, 0x86, + 0x93, 0x9a, 0x38, 0x80, 0x36, 0x97, 0xa1, 0x15, 0xe2, 0x31, 0x77, 0x88, 0x32, 0x14, 0xf9, 0x71, + 0xc1, 0x68, 0x31, 0xaf, 0x50, 0x80, 0x81, 0x44, 0x17, 0xe2, 0x6b, 0x8d, 0x75, 0x58, 0xef, 0x1e, + 0xa0, 0x3c, 0xd2, 0xa9, 0xe4, 0xf0, 0x25, 0x3b, 0xfb, 0x2c, 0xf7, 0x28, 0xb0, 0xf4, 0x87, 0x9c, + 0x8d, 0x29, 0x42, 0x10, 0x7c, 0x9a, 0x12, 0xd1, 0xf8, 0xdb, 0x1a, 0x40, 0xd2, 0xf9, 0xda, 0x1e, + 0xfa, 0x0f, 0xe2, 0x23, 0x28, 0xa2, 0x89, 0xcb, 0x05, 0xf4, 0x0a, 0x0f, 0xdf, 0xfd, 0xf4, 0xe1, + 0x13, 0x71, 0xc5, 0x9b, 0x45, 0xa3, 0x5f, 0xdb, 0x63, 0xb7, 0x09, 0xe7, 0xb2, 0xe2, 0x96, 0x87, + 0xee, 0x3a, 0xcc, 0xb9, 0x14, 0x4f, 0x44, 0x26, 0xad, 0xa7, 0x23, 0x1a, 0xae, 0xc0, 0x30, 0xde, + 0x80, 0xc6, 0xce, 0xc4, 0x1e, 0xe1, 0x81, 0x8f, 0x87, 0x6c, 0x2e, 0x97, 0x35, 0xe4, 0xfc, 0xa2, + 0x61, 0x6c, 0x40, 0xfd, 0x01, 0x3e, 0x16, 0x67, 0xf0, 0x84, 0xfc, 0x19, 0x7f, 0x55, 0x85, 0x55, + 0x6e, 0x3b, 0x37, 0x55, 0x1e, 0x6b, 0xe2, 0x90, 0x44, 0xc1, 0x10, 0x87, 0x5c, 0xa4, 0x7e, 0x64, + 0xf9, 0x38, 0x70, 0x89, 0x23, 0xb3, 0xbe, 0xc6, 0xd0, 0x8f, 0xf6, 0x38, 0x80, 0xe5, 0xba, 0xac, + 0xfb, 0xdb, 0x88, 0x48, 0xdd, 0xaa, 0x99, 0xf5, 0xa1, 0x1f, 0xfd, 0x94, 0xb5, 0xd5, 0xd8, 0xf0, + 0xc8, 0x0e, 0x70, 0xc8, 0x75, 0x48, 0x8c, 0x1d, 0x70, 0x00, 0x7a, 0x17, 0xce, 0x4e, 0xf0, 0x84, + 0x04, 0xc7, 0xd6, 0xd8, 0x9d, 0xb8, 0xd4, 0x72, 0x3d, 0xeb, 0xe0, 0x98, 0xe2, 0x50, 0x2a, 0x0e, + 0x12, 0x9d, 0x0f, 0x59, 0xdf, 0x8e, 0xf7, 0x39, 0xeb, 0x41, 0x06, 0xb4, 0x08, 0x99, 0x58, 0xe1, + 0x90, 0x04, 0xd8, 0xb2, 0x9d, 0xaf, 0xb9, 0xf3, 0xa8, 0x99, 0x4d, 0x42, 0x26, 0x03, 0x06, 0xeb, + 0x3b, 0x5f, 0xa3, 0xcb, 0xd0, 0x1c, 0xfa, 0x51, 0x88, 0xa9, 0xc5, 0x7e, 0xb8, 0x93, 0x68, 0x98, + 0x20, 0x40, 0x9b, 0x7e, 0x14, 0x6a, 0x08, 0x13, 0xb6, 0xed, 0x0b, 0x3a, 0xc2, 0x23, 0xb6, 0xcd, + 0x36, 0xb4, 0x52, 0x79, 0x24, 0xcb, 0x16, 0x78, 0xc2, 0x28, 0xb3, 0x05, 0xf6, 0xcd, 0x60, 0x01, + 0x19, 0xab, 0x9d, 0xe4, 0xdf, 0x0c, 0x46, 0x8f, 0x7d, 0x95, 0x2a, 0xf0, 0x6f, 0xb6, 0xe5, 0x63, + 0xfc, 0x54, 0xa6, 0xf2, 0x0d, 0x53, 0x34, 0x0c, 0x07, 0x60, 0xd3, 0xf6, 0xed, 0x03, 0x77, 0xec, + 0xd2, 0x63, 0x74, 0x1d, 0x3a, 0xb6, 0xe3, 0x58, 0x43, 0x05, 0x71, 0xb1, 0xaa, 0xab, 0x2c, 0xd9, + 0x8e, 0xb3, 0xa9, 0x81, 0xd1, 0x8f, 0x60, 0xd9, 0x09, 0x88, 0x9f, 0xc6, 0x15, 0x85, 0x96, 0x0e, + 0xeb, 0xd0, 0x91, 0x8d, 0x7f, 0x9a, 0x85, 0x4b, 0x69, 0xc1, 0x66, 0x33, 0xf3, 0x0f, 0x60, 0x31, + 0x33, 0x6b, 0x3a, 0x25, 0x4e, 0x98, 0x34, 0x53, 0x88, 0x99, 0xdc, 0xb5, 0x9a, 0xcb, 0x5d, 0x0b, + 0x53, 0xfe, 0xda, 0x0f, 0x91, 0xf2, 0xcf, 0x7e, 0x9f, 0x94, 0x7f, 0xee, 0x44, 0x29, 0xff, 0x5b, + 0xbc, 0x88, 0xa6, 0x06, 0xf1, 0xc4, 0x4b, 0xa8, 0x51, 0x2b, 0xc6, 0xf1, 0x54, 0xb1, 0x2d, 0x53, + 0x1a, 0x58, 0x38, 0x4d, 0x69, 0xa0, 0x5e, 0x5a, 0x1a, 0x60, 0x1a, 0xe1, 0xfb, 0x76, 0x30, 0x21, + 0x81, 0xca, 0xfd, 0xbb, 0x0d, 0xce, 0xc2, 0x92, 0x82, 0xcb, 0xbc, 0xbf, 0xb4, 0x4a, 0x00, 0x65, + 0x55, 0x02, 0xb4, 0x0e, 0x8b, 0x1e, 0xb1, 0x3c, 0xfc, 0xcc, 0x62, 0x02, 0x0b, 0xbb, 0x4d, 0x21, + 0x3d, 0x8f, 0xec, 0xe2, 0x67, 0x7b, 0x0c, 0x62, 0xfc, 0x7d, 0x05, 0x56, 0xd2, 0x8a, 0x23, 0xf3, + 0xc2, 0x4f, 0xa1, 0x11, 0x28, 0xdb, 0x20, 0x95, 0x65, 0x3d, 0x1d, 0x7f, 0xe5, 0x6d, 0x88, 0x99, + 0x0c, 0x41, 0x3f, 0x2d, 0xad, 0x30, 0xbc, 0x55, 0x42, 0xe6, 0x65, 0x35, 0x06, 0xa3, 0x0f, 0xcb, + 0x31, 0xf2, 0xd4, 0xfc, 0x5e, 0xcb, 0xd7, 0xab, 0xe9, 0x7c, 0xdd, 0x83, 0xf9, 0x2d, 0xfc, 0xd4, + 0x1d, 0xe2, 0x1f, 0xa4, 0xc4, 0xb7, 0x0e, 0x4d, 0x1f, 0x07, 0x13, 0x37, 0x0c, 0x63, 0xa5, 0x6f, + 0x98, 0x3a, 0xc8, 0xf8, 0xaf, 0x39, 0x58, 0xca, 0xee, 0xec, 0x9d, 0x5c, 0x79, 0xa0, 0x97, 0x9c, + 0xc2, 0xec, 0xfa, 0x34, 0x1f, 0x7d, 0x4d, 0xb9, 0x81, 0x6a, 0x26, 0x4b, 0x88, 0x3d, 0x85, 0x74, + 0x0d, 0x6c, 0xfd, 0x43, 0x32, 0x99, 0xd8, 0x9e, 0xa3, 0xca, 0xaf, 0xb2, 0xc9, 0x76, 0xcb, 0x0e, + 0x46, 0xec, 0x68, 0x31, 0x30, 0xff, 0x66, 0x56, 0x92, 0x45, 0xdb, 0xae, 0xc7, 0xab, 0x0b, 0xfc, + 0xe0, 0x34, 0x4c, 0x90, 0xa0, 0x2d, 0x37, 0x40, 0x57, 0x61, 0x16, 0x7b, 0x4f, 0x95, 0x37, 0x4e, + 0xea, 0xb3, 0xca, 0xfd, 0x98, 0xbc, 0x1b, 0xbd, 0x05, 0xf3, 0x13, 0x12, 0x79, 0x54, 0xc5, 0xdd, + 0xed, 0x18, 0x91, 0x17, 0x55, 0x4d, 0xd9, 0x8b, 0xae, 0xc3, 0x82, 0xc3, 0x65, 0xa0, 0x82, 0xeb, + 0xa5, 0xa4, 0x42, 0xc1, 0xe1, 0xa6, 0xea, 0x47, 0x1f, 0xc7, 0x71, 0x44, 0x23, 0x13, 0x09, 0x64, + 0x36, 0xb5, 0x30, 0x98, 0x78, 0x90, 0x0e, 0x26, 0x80, 0x93, 0xb8, 0x5e, 0x4a, 0x62, 0x7a, 0x7d, + 0xe1, 0x3c, 0xd4, 0xc7, 0x64, 0x24, 0xf4, 0xa0, 0x29, 0x8a, 0xf5, 0x63, 0x32, 0xe2, 0x6a, 0xb0, + 0xc2, 0x82, 0x27, 0xc7, 0xf5, 0xba, 0x8b, 0xfc, 0x78, 0x89, 0x06, 0xf3, 0x89, 0xfc, 0xc3, 0x22, + 0xde, 0x10, 0x77, 0x5b, 0xbc, 0xab, 0xc1, 0x21, 0x8f, 0xbd, 0x21, 0x77, 0xd9, 0x94, 0x1e, 0x77, + 0xdb, 0x1c, 0xce, 0x3e, 0x59, 0xcc, 0x2b, 0xb2, 0x9d, 0xa5, 0x4c, 0xcc, 0x5b, 0x74, 0x3e, 0x5f, + 0x83, 0x02, 0xc6, 0x3f, 0x56, 0xe0, 0xdc, 0x26, 0x0f, 0xf9, 0x34, 0x4b, 0x70, 0x8a, 0x04, 0x1c, + 0xdd, 0x8e, 0x2b, 0x1d, 0xd9, 0x3c, 0x3a, 0xbb, 0x58, 0x89, 0x87, 0xee, 0x41, 0x5b, 0xd1, 0x94, + 0x23, 0x6b, 0x2f, 0xab, 0x91, 0xb4, 0x42, 0xbd, 0x69, 0x7c, 0x0c, 0xab, 0x39, 0x9e, 0x65, 0x78, + 0xf6, 0x06, 0x2c, 0x26, 0x16, 0x21, 0x66, 0xb9, 0x19, 0xc3, 0x76, 0x1c, 0xe3, 0x2e, 0x9c, 0x1d, + 0x50, 0x3b, 0xa0, 0xb9, 0x05, 0x9f, 0x60, 0x2c, 0x2f, 0x93, 0xa4, 0xc7, 0xca, 0x4a, 0xc6, 0x00, + 0x56, 0x06, 0x94, 0xf8, 0xaf, 0x40, 0x94, 0x9d, 0x74, 0xb6, 0x6c, 0x12, 0x51, 0x19, 0x93, 0xa9, + 0xa6, 0xb1, 0x2a, 0x8a, 0x3a, 0xf9, 0xd9, 0x3e, 0x82, 0x73, 0xa2, 0xa6, 0xf2, 0x2a, 0x8b, 0x38, + 0xaf, 0x2a, 0x3a, 0x79, 0xba, 0x5b, 0x70, 0x26, 0x31, 0xe5, 0x49, 0x7a, 0x78, 0x33, 0x9d, 0x1e, + 0xae, 0xe6, 0x65, 0x9c, 0xca, 0x0e, 0xff, 0xba, 0xaa, 0x19, 0xcc, 0x92, 0xe4, 0x70, 0x23, 0x9d, + 0x1c, 0x5e, 0x2c, 0x21, 0x99, 0xca, 0x0d, 0xf3, 0x1a, 0x59, 0x2b, 0xd0, 0x48, 0x33, 0x97, 0x41, + 0xce, 0x66, 0x8a, 0xd9, 0x19, 0xde, 0x7e, 0x27, 0x09, 0xe4, 0x8e, 0x48, 0x20, 0xe3, 0xa9, 0xe3, + 0x3a, 0xd7, 0xed, 0x4c, 0x02, 0xd9, 0x2d, 0x63, 0x33, 0xce, 0x1f, 0xff, 0x72, 0x16, 0x1a, 0x71, + 0x5f, 0x6e, 0x63, 0xf3, 0x9b, 0x54, 0x2d, 0xd8, 0x24, 0xdd, 0x7f, 0xd5, 0x5e, 0xc5, 0x7f, 0xcd, + 0xbe, 0xcc, 0x7f, 0x5d, 0x80, 0x06, 0xff, 0xb0, 0x02, 0x7c, 0x28, 0xfd, 0x51, 0x9d, 0x03, 0x4c, + 0x7c, 0x98, 0x28, 0xd4, 0xfc, 0x49, 0x14, 0x2a, 0x93, 0xa9, 0x2e, 0x64, 0x33, 0xd5, 0x3b, 0xb1, + 0x87, 0x11, 0xbe, 0x68, 0x2d, 0x4f, 0xae, 0xd0, 0xb7, 0x6c, 0xa7, 0x7d, 0x8b, 0x70, 0x4f, 0x57, + 0x0a, 0x06, 0xbf, 0xb6, 0x79, 0xea, 0x43, 0x91, 0xa7, 0xea, 0x5a, 0x25, 0x0d, 0xe1, 0x06, 0x40, + 0x7c, 0xe6, 0x55, 0xb2, 0x8a, 0xf2, 0x4b, 0x33, 0x35, 0x2c, 0x66, 0x55, 0x52, 0xfb, 0x9f, 0x14, + 0x63, 0x4f, 0x60, 0x55, 0xfe, 0x45, 0x8f, 0x92, 0x4a, 0xea, 0x99, 0x77, 0x72, 0xa5, 0x8d, 0x93, + 0x69, 0xdd, 0xcd, 0x74, 0x65, 0xe3, 0x74, 0xea, 0x92, 0x2b, 0x6c, 0x70, 0xa7, 0x6e, 0x07, 0xb2, + 0x5b, 0xe4, 0xa4, 0x0d, 0x09, 0xe9, 0x53, 0x16, 0x4a, 0x1d, 0xba, 0x9e, 0x1b, 0x1e, 0x89, 0xfe, + 0x79, 0xde, 0x0f, 0x0a, 0xd4, 0xe7, 0x17, 0xd3, 0xf8, 0xb9, 0x4b, 0xad, 0x21, 0x71, 0x30, 0x57, + 0xc6, 0x39, 0xb3, 0xce, 0x00, 0x9b, 0xc4, 0xc1, 0xc9, 0x01, 0xa9, 0x9f, 0xea, 0x80, 0x34, 0x32, + 0x07, 0xe4, 0x1c, 0xcc, 0x07, 0xd8, 0x0e, 0x89, 0x27, 0x13, 0x03, 0xd9, 0x62, 0xbe, 0x62, 0x82, + 0xc3, 0x90, 0x4d, 0x20, 0x03, 0x18, 0xd9, 0xd4, 0xc2, 0xac, 0xc5, 0xb2, 0x30, 0x6b, 0x4a, 0xc1, + 0x34, 0x13, 0x66, 0xb5, 0xca, 0xc2, 0xac, 0x93, 0xd4, 0x4b, 0xb5, 0x20, 0xb2, 0x3d, 0x35, 0x88, + 0xd4, 0xc3, 0xb1, 0xa5, 0x54, 0x38, 0xf6, 0xfb, 0x3c, 0x53, 0x0f, 0x60, 0x35, 0x77, 0x0a, 0xe4, + 0xa1, 0xba, 0x9d, 0xa9, 0xb8, 0x76, 0xcb, 0x36, 0x28, 0x2e, 0xb8, 0xfe, 0x29, 0x5c, 0xde, 0xf7, + 0x9d, 0x4c, 0xa8, 0x22, 0x13, 0xad, 0x93, 0x47, 0x08, 0x77, 0x54, 0x54, 0x59, 0x3d, 0x61, 0x0e, + 0x27, 0xd0, 0x0d, 0x03, 0xd6, 0xcb, 0x67, 0x97, 0x2e, 0xff, 0x8f, 0x61, 0x69, 0xfb, 0x39, 0x1e, + 0x0e, 0x8e, 0xbd, 0xe1, 0x29, 0x38, 0xea, 0x40, 0x6d, 0x38, 0x71, 0x64, 0x29, 0x83, 0x7d, 0xea, + 0x51, 0x4c, 0x2d, 0x1d, 0xc5, 0x58, 0xd0, 0x49, 0x66, 0x90, 0x3b, 0x79, 0x8e, 0xed, 0xa4, 0xc3, + 0x90, 0x19, 0xf1, 0x45, 0x53, 0xb6, 0x24, 0x1c, 0x07, 0x01, 0x5f, 0xaa, 0x80, 0xe3, 0x20, 0x48, + 0x9f, 0xb9, 0x5a, 0xfa, 0xcc, 0x19, 0x5f, 0x43, 0x93, 0x4d, 0xf0, 0xbd, 0xd8, 0x97, 0xa1, 0x7c, + 0x2d, 0x09, 0xe5, 0xe3, 0x8c, 0x60, 0x56, 0xcb, 0x08, 0x8c, 0x75, 0x58, 0x14, 0x73, 0xc9, 0x85, + 0x74, 0xa0, 0x16, 0x05, 0x63, 0xa5, 0x59, 0x51, 0x30, 0x36, 0xfe, 0x10, 0x5a, 0x7d, 0x4a, 0xed, + 0xe1, 0xd1, 0x29, 0xf8, 0x89, 0xe7, 0xaa, 0xea, 0xd9, 0x47, 0x8e, 0x27, 0xc3, 0x80, 0xb6, 0xa2, + 0x5d, 0x3a, 0xff, 0x2e, 0xa0, 0x3d, 0x12, 0xd0, 0xfb, 0x24, 0x78, 0x66, 0x07, 0xce, 0xe9, 0xa2, + 0x79, 0x04, 0xb3, 0xf2, 0x41, 0x4e, 0xed, 0xda, 0x9c, 0xc9, 0xbf, 0x8d, 0xb7, 0xe1, 0x4c, 0x8a, + 0x5e, 0xe9, 0xc4, 0x1f, 0x40, 0x93, 0x1b, 0x39, 0x19, 0xf1, 0x5d, 0xd3, 0x2b, 0x9e, 0xd3, 0x2c, + 0xa1, 0xd1, 0x87, 0x65, 0xe6, 0xc5, 0x38, 0x3c, 0x3e, 0x16, 0x3f, 0xce, 0xc4, 0x45, 0x2b, 0xe9, + 0xf1, 0x99, 0x98, 0xe8, 0x1f, 0x2a, 0x30, 0xc7, 0xe1, 0x39, 0x9f, 0x73, 0x01, 0x1a, 0x01, 0xf6, + 0x89, 0x45, 0xed, 0x51, 0xfc, 0xc6, 0x89, 0x01, 0x9e, 0xd8, 0xa3, 0x90, 0x3f, 0xd1, 0x62, 0x9d, + 0x8e, 0x3b, 0xc2, 0x21, 0x55, 0x0f, 0x9d, 0x9a, 0x0c, 0xb6, 0x25, 0x40, 0x6c, 0x4b, 0x42, 0xf7, + 0x4f, 0x44, 0xc0, 0x33, 0x6b, 0xf2, 0x6f, 0x74, 0x55, 0xbc, 0x3d, 0x98, 0x52, 0x9e, 0xe2, 0x0f, + 0x12, 0x7a, 0x50, 0xcf, 0x54, 0xa4, 0xe2, 0xb6, 0xf1, 0x31, 0x20, 0x7d, 0xcd, 0x72, 0x53, 0xdf, + 0x82, 0x79, 0xbe, 0x25, 0xca, 0x63, 0xb7, 0xd3, 0x8b, 0x36, 0x65, 0xaf, 0xf1, 0x29, 0x20, 0xb1, + 0x8b, 0x29, 0x2f, 0x7d, 0xf2, 0x1d, 0xff, 0x08, 0xce, 0xa4, 0xc6, 0xc7, 0x57, 0xcd, 0x29, 0x02, + 0xd9, 0xd9, 0xe5, 0xe0, 0x7f, 0xad, 0x00, 0xf4, 0x23, 0x7a, 0x24, 0x4b, 0x21, 0xfa, 0x2a, 0x2b, + 0xe9, 0x55, 0xb2, 0x3e, 0xdf, 0x0e, 0xc3, 0x67, 0x24, 0x50, 0x61, 0x68, 0xdc, 0xe6, 0x65, 0x8c, + 0x88, 0x1e, 0xa9, 0xf2, 0x2b, 0xfb, 0x46, 0x57, 0xa1, 0x2d, 0x9e, 0xa6, 0x59, 0xb6, 0xe3, 0x04, + 0x38, 0x0c, 0x65, 0x1d, 0xb6, 0x25, 0xa0, 0x7d, 0x01, 0x64, 0x68, 0xae, 0x83, 0x3d, 0xea, 0xd2, + 0x63, 0x8b, 0x92, 0x6f, 0xb0, 0x27, 0x03, 0xcc, 0x96, 0x82, 0x3e, 0x61, 0x40, 0x86, 0x16, 0xe0, + 0x91, 0x1b, 0xd2, 0x40, 0xa1, 0xa9, 0xba, 0xa0, 0x84, 0x72, 0x34, 0xe3, 0x57, 0x15, 0xe8, 0xec, + 0x45, 0xe3, 0xb1, 0x58, 0xe4, 0x69, 0xf7, 0x12, 0xbd, 0x2d, 0xd7, 0x51, 0xcd, 0x68, 0x43, 0xb2, + 0x45, 0x72, 0x71, 0xdf, 0x3f, 0xf1, 0xbd, 0x0d, 0xcb, 0x1a, 0xa3, 0x52, 0x68, 0xa9, 0x38, 0xa2, + 0x92, 0x8e, 0x23, 0x98, 0xa2, 0x88, 0x5c, 0xef, 0xd5, 0x16, 0x67, 0x9c, 0x85, 0x33, 0xa9, 0xf1, + 0xd2, 0x69, 0xdc, 0x80, 0x96, 0xbc, 0xee, 0x95, 0x4a, 0x70, 0x1e, 0xea, 0xcc, 0xbc, 0x0c, 0x5d, + 0x47, 0xd5, 0xdd, 0x17, 0x7c, 0xe2, 0x6c, 0xba, 0x4e, 0x60, 0xec, 0x42, 0xcb, 0x14, 0xe4, 0x25, + 0xee, 0x27, 0xd0, 0x96, 0x97, 0xc3, 0x56, 0xea, 0x91, 0x44, 0x52, 0x24, 0x4e, 0xd1, 0x36, 0x5b, + 0x9e, 0xde, 0x34, 0x7e, 0x09, 0x3d, 0xe1, 0xd4, 0x52, 0x54, 0xd5, 0xd2, 0x3e, 0x01, 0xf5, 0x74, + 0xb2, 0x8c, 0x78, 0x7a, 0x58, 0x2b, 0xd0, 0x9b, 0xc6, 0x25, 0xb8, 0x50, 0x48, 0x5c, 0xae, 0xdb, + 0x87, 0x4e, 0xd2, 0xe1, 0xb8, 0xea, 0xba, 0x81, 0x5f, 0x23, 0x54, 0xb4, 0x6b, 0x84, 0x73, 0x71, + 0xa0, 0x20, 0x0c, 0xba, 0x6c, 0x69, 0x61, 0x5d, 0xad, 0x2c, 0xac, 0x9b, 0x4d, 0x85, 0x75, 0xc6, + 0x97, 0xf1, 0xee, 0xc9, 0x98, 0xfa, 0x43, 0x1e, 0xd8, 0x8b, 0xb9, 0x95, 0x99, 0x38, 0x5f, 0xb0, + 0x38, 0x81, 0x61, 0x6a, 0xc8, 0xc6, 0x12, 0xb4, 0x52, 0x06, 0xc3, 0xb8, 0x07, 0xed, 0x8c, 0x05, + 0xb8, 0x95, 0x89, 0x70, 0x72, 0xdb, 0x96, 0x89, 0x6f, 0x56, 0xa4, 0x21, 0xba, 0x1f, 0xee, 0x78, + 0x87, 0x44, 0xd1, 0xbd, 0x02, 0xcd, 0xfd, 0xb2, 0x67, 0x88, 0xb3, 0xea, 0x1e, 0xeb, 0x6d, 0x58, + 0x1e, 0x50, 0x12, 0xd8, 0x23, 0xbc, 0xc3, 0x4f, 0xed, 0xa1, 0x2b, 0xee, 0x69, 0xa2, 0x28, 0xb6, + 0xdf, 0xfc, 0xdb, 0xf8, 0x8f, 0x0a, 0x2c, 0xdd, 0x77, 0xc7, 0x38, 0x3c, 0x0e, 0x29, 0x9e, 0xec, + 0xf3, 0x68, 0xf7, 0x22, 0x34, 0x18, 0x37, 0x21, 0xb5, 0x27, 0xbe, 0xba, 0xe7, 0x8a, 0x01, 0x6c, + 0x8f, 0x42, 0x41, 0x5a, 0xe5, 0xbf, 0x7a, 0xa6, 0x91, 0x9b, 0x95, 0x45, 0xff, 0x12, 0x84, 0xde, + 0x03, 0x88, 0x42, 0xec, 0xc8, 0xbb, 0xad, 0x5a, 0xc6, 0xf5, 0xec, 0xeb, 0x37, 0x10, 0x0c, 0x4f, + 0x5c, 0x74, 0xbd, 0x0f, 0x4d, 0xd7, 0x23, 0x0e, 0xe6, 0x37, 0x10, 0x8e, 0xcc, 0x8d, 0x8b, 0x47, + 0x81, 0x40, 0xdc, 0x0f, 0xb1, 0x63, 0xfc, 0x91, 0xb4, 0xc2, 0x6a, 0xf3, 0xa4, 0x0c, 0xb6, 0x61, + 0x59, 0x1c, 0xe8, 0xc3, 0x78, 0xd1, 0x4a, 0xd0, 0x49, 0xc0, 0x99, 0xd9, 0x10, 0xb3, 0xe3, 0x4a, + 0xaf, 0xa8, 0x46, 0x18, 0x77, 0xe1, 0x6c, 0x2a, 0x2a, 0x3d, 0x4d, 0x32, 0xf7, 0x45, 0x26, 0x13, + 0x4c, 0x14, 0x44, 0xa6, 0x62, 0x4a, 0x3f, 0x4a, 0x52, 0xb1, 0x50, 0xa4, 0x62, 0xa1, 0x61, 0xc2, + 0xf9, 0x54, 0x82, 0x9a, 0x62, 0xe4, 0xfd, 0x8c, 0x8b, 0xbf, 0x54, 0x42, 0x2c, 0xe3, 0xeb, 0xff, + 0xb7, 0x02, 0x2b, 0x45, 0x08, 0xaf, 0x58, 0x0a, 0xf9, 0x59, 0xc9, 0x8b, 0x83, 0xdb, 0x53, 0xb9, + 0xf9, 0x9d, 0x14, 0x8d, 0x1e, 0x40, 0xaf, 0x68, 0xf7, 0xf2, 0xa2, 0xa8, 0x9d, 0x40, 0x14, 0xff, + 0x57, 0xd5, 0x8a, 0x7b, 0x7d, 0x4a, 0x03, 0xf7, 0x20, 0x62, 0xca, 0xfb, 0x43, 0x25, 0xe9, 0xf7, + 0xe2, 0x04, 0x54, 0xec, 0xdf, 0xb5, 0xfc, 0xa8, 0x64, 0xd6, 0xc2, 0x24, 0xf4, 0x71, 0x3a, 0x09, + 0x15, 0x65, 0xbb, 0x9b, 0x53, 0xc9, 0xbc, 0xb6, 0x95, 0x99, 0x17, 0x15, 0x68, 0xa7, 0xe5, 0x80, + 0x3e, 0x06, 0xb0, 0x63, 0xce, 0xa5, 0xca, 0x5f, 0x9c, 0xb6, 0x3a, 0x53, 0xc3, 0x47, 0x57, 0xa0, + 0x36, 0xf4, 0x23, 0x29, 0x91, 0xe4, 0xfe, 0x66, 0xd3, 0x8f, 0x84, 0x01, 0x60, 0xbd, 0x2c, 0x68, + 0x16, 0xf7, 0xf0, 0x39, 0xcb, 0xf5, 0x88, 0x83, 0x05, 0xaa, 0xc4, 0x41, 0x9f, 0x41, 0xfb, 0x59, + 0xe0, 0x52, 0xfb, 0x60, 0x8c, 0xad, 0xb1, 0x7d, 0x8c, 0x03, 0x69, 0xb9, 0xca, 0xad, 0x4c, 0x4b, + 0xe1, 0x3f, 0x64, 0xe8, 0x46, 0x04, 0x75, 0x35, 0xff, 0x4b, 0x2c, 0xf2, 0x03, 0x58, 0x8d, 0x18, + 0x9a, 0xc5, 0xdf, 0x02, 0x78, 0xb6, 0x47, 0xac, 0x10, 0x33, 0xd7, 0xa4, 0xde, 0xdf, 0x15, 0x5b, + 0xcb, 0x15, 0x3e, 0x68, 0x93, 0x04, 0x78, 0xd7, 0xf6, 0xc8, 0x40, 0x8c, 0x30, 0x26, 0xd0, 0xd4, + 0x96, 0xf3, 0x92, 0x99, 0xef, 0xc1, 0xb2, 0xba, 0x19, 0x0b, 0x31, 0x95, 0x76, 0x7d, 0xda, 0x9c, + 0x4b, 0x12, 0x7d, 0x80, 0x29, 0xb7, 0xee, 0x37, 0x2e, 0x42, 0x5d, 0xfd, 0x8b, 0x01, 0x2d, 0x40, + 0xed, 0xc9, 0xe6, 0x5e, 0x67, 0x86, 0x7d, 0xec, 0x6f, 0xed, 0x75, 0x2a, 0x37, 0xee, 0xc2, 0x52, + 0xe6, 0x7d, 0x0d, 0x5a, 0x86, 0xd6, 0xa0, 0xbf, 0xbb, 0xf5, 0xf9, 0xe3, 0x9f, 0x5b, 0xe6, 0x76, + 0x7f, 0xeb, 0x17, 0x9d, 0x19, 0xb4, 0x02, 0x1d, 0x05, 0xda, 0x7d, 0xfc, 0x44, 0x40, 0x2b, 0x37, + 0xbe, 0xc9, 0xe8, 0x08, 0x46, 0x67, 0x61, 0x79, 0xf3, 0xf1, 0xee, 0x93, 0xfe, 0xce, 0xee, 0xb6, + 0x69, 0x6d, 0x9a, 0xdb, 0xfd, 0x27, 0xdb, 0x5b, 0x9d, 0x99, 0x34, 0xd8, 0xdc, 0xdf, 0xdd, 0xdd, + 0xd9, 0xfd, 0xa2, 0x53, 0x61, 0x54, 0x13, 0xf0, 0xf6, 0xcf, 0x77, 0x18, 0x72, 0x35, 0x8d, 0xbc, + 0xbf, 0xfb, 0x60, 0xf7, 0xf1, 0xcf, 0x76, 0x3b, 0xb5, 0x8d, 0x7f, 0x6f, 0x41, 0x5b, 0x39, 0x71, + 0x1c, 0xf0, 0xfb, 0xd3, 0x4f, 0x61, 0x41, 0xfd, 0xc1, 0x24, 0xb1, 0x1e, 0xe9, 0x7f, 0xc3, 0xf4, + 0xba, 0xf9, 0x0e, 0x19, 0x0c, 0xcd, 0xa0, 0x3d, 0x1e, 0x9c, 0x68, 0x6f, 0x99, 0x2e, 0xe9, 0xe1, + 0x42, 0xee, 0xb1, 0x54, 0x6f, 0xad, 0xac, 0x3b, 0xa6, 0x38, 0x60, 0x11, 0x89, 0xfe, 0x0e, 0x15, + 0xad, 0xe9, 0x7e, 0x3b, 0xff, 0xbe, 0xb5, 0x77, 0xb9, 0xb4, 0x3f, 0x26, 0xfa, 0x0b, 0xe8, 0x64, + 0x5f, 0xa0, 0xa2, 0xa4, 0x86, 0x52, 0xf2, 0xba, 0xb5, 0xf7, 0xc6, 0x14, 0x0c, 0x9d, 0x74, 0xee, + 0x15, 0xe7, 0x7a, 0xf9, 0x3b, 0xbc, 0x1c, 0xe9, 0xb2, 0xc7, 0x7d, 0x62, 0x2b, 0xd2, 0x6f, 0x90, + 0x90, 0xfe, 0x76, 0xb2, 0xe0, 0x2d, 0x9a, 0xb6, 0x15, 0xc5, 0x8f, 0x97, 0x8c, 0x19, 0xf4, 0x15, + 0x2c, 0x65, 0xae, 0xce, 0x50, 0x32, 0xaa, 0xf8, 0x22, 0xb0, 0xb7, 0x5e, 0x8e, 0x90, 0x96, 0x9b, + 0x7e, 0x31, 0x96, 0x92, 0x5b, 0xc1, 0x6d, 0x5b, 0x4a, 0x6e, 0x85, 0x37, 0x6a, 0x5c, 0xbd, 0x52, + 0xd7, 0x5f, 0x9a, 0x7a, 0x15, 0xdd, 0xb5, 0xf5, 0xd6, 0xca, 0xba, 0xf5, 0xe5, 0x67, 0xae, 0xbe, + 0xb4, 0xe5, 0x17, 0xdf, 0xa8, 0xf5, 0xd6, 0xcb, 0x11, 0xb2, 0xb2, 0x4a, 0xea, 0xf0, 0x19, 0x59, + 0xe5, 0xae, 0x7d, 0x32, 0xb2, 0xca, 0x17, 0xf0, 0xa5, 0xac, 0x32, 0x05, 0xf5, 0xcb, 0xa5, 0x05, + 0xc7, 0xbc, 0xac, 0x8a, 0x6b, 0x98, 0xc6, 0x0c, 0xfa, 0x16, 0xba, 0x65, 0x55, 0x41, 0x94, 0x38, + 0xed, 0x97, 0x94, 0x2d, 0x7b, 0xd7, 0x4f, 0x80, 0x19, 0x4f, 0xd9, 0x87, 0xba, 0x2a, 0x01, 0xa2, + 0xc4, 0xa0, 0x64, 0xea, 0x8e, 0xbd, 0xf3, 0x05, 0x3d, 0x31, 0x89, 0xf7, 0x61, 0x96, 0x41, 0xd1, + 0x4a, 0x0a, 0x49, 0x0d, 0x3d, 0x9b, 0x81, 0xc6, 0xc3, 0x3e, 0x82, 0x79, 0x51, 0x31, 0x43, 0x49, + 0x2a, 0x93, 0x2a, 0xcf, 0xf5, 0x56, 0x73, 0xf0, 0x78, 0xf0, 0x97, 0xe2, 0x7f, 0x6e, 0xb2, 0xf4, + 0x85, 0x2e, 0xa4, 0xfe, 0x4f, 0x91, 0x2e, 0xb0, 0xf5, 0x2e, 0x16, 0x77, 0xea, 0x2a, 0x92, 0x89, + 0x07, 0xd6, 0xca, 0x02, 0xb6, 0x9c, 0x8a, 0x14, 0x07, 0x80, 0xc6, 0x0c, 0xb2, 0x44, 0x15, 0x29, + 0x43, 0xd8, 0x28, 0xd6, 0xad, 0x14, 0xf1, 0x2b, 0x53, 0x71, 0xe2, 0x09, 0x0e, 0xe0, 0x4c, 0x41, + 0x3e, 0x8c, 0xae, 0x64, 0x84, 0x5f, 0x94, 0x8a, 0xf7, 0xde, 0x9c, 0x8e, 0xa4, 0x8b, 0x48, 0xaa, + 0xf7, 0x39, 0xdd, 0x26, 0x68, 0x5a, 0xbd, 0x9a, 0x83, 0xab, 0xc1, 0x1b, 0x7f, 0x5e, 0x83, 0x45, + 0x51, 0xb5, 0x90, 0x3e, 0xed, 0x0b, 0x80, 0xa4, 0xb0, 0x86, 0x7a, 0xa9, 0x65, 0xa6, 0x2a, 0x8c, + 0xbd, 0x0b, 0x85, 0x7d, 0xba, 0xf0, 0xb5, 0x1a, 0x99, 0x26, 0xfc, 0x7c, 0xe5, 0x4d, 0x13, 0x7e, + 0x41, 0x59, 0xcd, 0x98, 0x41, 0x5b, 0xd0, 0x88, 0x0b, 0x37, 0x48, 0xab, 0xf7, 0x64, 0xaa, 0x4e, + 0xbd, 0x5e, 0x51, 0x97, 0xce, 0x91, 0x56, 0x8c, 0xd1, 0x38, 0xca, 0x97, 0x78, 0x34, 0x8e, 0x8a, + 0xea, 0x37, 0xc9, 0xea, 0x44, 0xee, 0x99, 0x5d, 0x5d, 0x2a, 0x9d, 0xcf, 0xae, 0x2e, 0x9d, 0xae, + 0x1a, 0x33, 0x9f, 0x5f, 0xfc, 0xf5, 0x6f, 0xd6, 0x2a, 0xff, 0xf9, 0x9b, 0xb5, 0x99, 0x3f, 0x7b, + 0xb1, 0x56, 0xf9, 0xf5, 0x8b, 0xb5, 0xca, 0xbf, 0xbd, 0x58, 0xab, 0xfc, 0xf7, 0x8b, 0xb5, 0xca, + 0x77, 0xff, 0xb3, 0x36, 0x73, 0x30, 0xcf, 0xff, 0xf8, 0xf9, 0xde, 0x6f, 0x03, 0x00, 0x00, 0xff, + 0xff, 0x19, 0x8a, 0xba, 0xfd, 0xac, 0x3b, 0x00, 0x00, } diff --git a/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto b/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto index 490771ee9dd..b4d077900e9 100644 --- a/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto +++ b/pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto @@ -61,6 +61,8 @@ service RuntimeService { // ContainerStatus returns status of the container. If the container is not // present, returns an error. rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {} + // UpdateContainerResources updates ContainerConfig of the container. + rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {} // ExecSync runs a command in a container synchronously. rpc ExecSync(ExecSyncRequest) returns (ExecSyncResponse) {} @@ -445,6 +447,10 @@ message LinuxContainerResources { int64 memory_limit_in_bytes = 4; // OOMScoreAdj adjusts the oom-killer score. Default: 0 (not specified). int64 oom_score_adj = 5; + // CpusetCpus constrains the allowed set of logical CPUs. Default: "" (not specified). + string cpuset_cpus = 6; + // CpusetMems constrains the allowed set of memory nodes. Default: "" (not specified). + string cpuset_mems = 7; } // SELinuxOption are the labels to be applied to the container. @@ -772,6 +778,15 @@ message ContainerStatusResponse { ContainerStatus status = 1; } +message UpdateContainerResourcesRequest { + // ID of the container to update. + string container_id = 1; + // Resource configuration specific to Linux containers. + LinuxContainerResources linux = 2; +} + +message UpdateContainerResourcesResponse {} + message ExecSyncRequest { // ID of the container. string container_id = 1; diff --git a/pkg/kubelet/dockershim/docker_container.go b/pkg/kubelet/dockershim/docker_container.go index 064dd6edf85..d33d8c01179 100644 --- a/pkg/kubelet/dockershim/docker_container.go +++ b/pkg/kubelet/dockershim/docker_container.go @@ -402,3 +402,22 @@ func (ds *dockerService) ContainerStatus(containerID string) (*runtimeapi.Contai LogPath: r.Config.Labels[containerLogPathLabelKey], }, nil } + +func (ds *dockerService) UpdateContainerResources(containerID string, resources *runtimeapi.LinuxContainerResources) error { + updateConfig := dockercontainer.UpdateConfig{ + Resources: dockercontainer.Resources{ + CPUPeriod: resources.CpuPeriod, + CPUQuota: resources.CpuQuota, + CPUShares: resources.CpuShares, + Memory: resources.MemoryLimitInBytes, + CpusetCpus: resources.CpusetCpus, + CpusetMems: resources.CpusetMems, + }, + } + + err := ds.client.UpdateContainerResources(containerID, updateConfig) + if err != nil { + return fmt.Errorf("failed to update container %q: %v", containerID, err) + } + return nil +} diff --git a/pkg/kubelet/dockershim/libdocker/client.go b/pkg/kubelet/dockershim/libdocker/client.go index 0307a82dc53..f6c16154738 100644 --- a/pkg/kubelet/dockershim/libdocker/client.go +++ b/pkg/kubelet/dockershim/libdocker/client.go @@ -48,6 +48,7 @@ type Interface interface { CreateContainer(dockertypes.ContainerCreateConfig) (*dockercontainer.ContainerCreateCreatedBody, error) StartContainer(id string) error StopContainer(id string, timeout time.Duration) error + UpdateContainerResources(id string, updateConfig dockercontainer.UpdateConfig) error RemoveContainer(id string, opts dockertypes.ContainerRemoveOptions) error InspectImageByRef(imageRef string) (*dockertypes.ImageInspect, error) InspectImageByID(imageID string) (*dockertypes.ImageInspect, error) diff --git a/pkg/kubelet/dockershim/libdocker/fake_client.go b/pkg/kubelet/dockershim/libdocker/fake_client.go index 341dcd484c4..48f8d6c451a 100644 --- a/pkg/kubelet/dockershim/libdocker/fake_client.go +++ b/pkg/kubelet/dockershim/libdocker/fake_client.go @@ -625,6 +625,10 @@ func (f *FakeDockerClient) RemoveContainer(id string, opts dockertypes.Container return fmt.Errorf("container not stopped") } +func (f *FakeDockerClient) UpdateContainerResources(id string, updateConfig dockercontainer.UpdateConfig) error { + return nil +} + // Logs is a test-spy implementation of Interface.Logs. // It adds an entry "logs" to the internal method call record. func (f *FakeDockerClient) Logs(id string, opts dockertypes.ContainerLogsOptions, sopts StreamOptions) error { diff --git a/pkg/kubelet/dockershim/libdocker/instrumented_client.go b/pkg/kubelet/dockershim/libdocker/instrumented_client.go index 13d4a3e6493..ff3d7f69c27 100644 --- a/pkg/kubelet/dockershim/libdocker/instrumented_client.go +++ b/pkg/kubelet/dockershim/libdocker/instrumented_client.go @@ -108,6 +108,15 @@ func (in instrumentedInterface) RemoveContainer(id string, opts dockertypes.Cont return err } +func (in instrumentedInterface) UpdateContainerResources(id string, updateConfig dockercontainer.UpdateConfig) error { + const operation = "update_container" + defer recordOperation(operation, time.Now()) + + err := in.client.UpdateContainerResources(id, updateConfig) + recordError(operation, err) + return err +} + func (in instrumentedInterface) InspectImageByRef(image string) (*dockertypes.ImageInspect, error) { const operation = "inspect_image" defer recordOperation(operation, time.Now()) diff --git a/pkg/kubelet/dockershim/libdocker/kube_docker_client.go b/pkg/kubelet/dockershim/libdocker/kube_docker_client.go index b74a5d04355..7a2f4e6d66b 100644 --- a/pkg/kubelet/dockershim/libdocker/kube_docker_client.go +++ b/pkg/kubelet/dockershim/libdocker/kube_docker_client.go @@ -171,6 +171,16 @@ func (d *kubeDockerClient) RemoveContainer(id string, opts dockertypes.Container return err } +func (d *kubeDockerClient) UpdateContainerResources(id string, updateConfig dockercontainer.UpdateConfig) error { + ctx, cancel := d.getTimeoutContext() + defer cancel() + _, err := d.client.ContainerUpdate(ctx, id, updateConfig) + if ctxErr := contextError(ctx); ctxErr != nil { + return ctxErr + } + return err +} + func (d *kubeDockerClient) inspectImageRaw(ref string) (*dockertypes.ImageInspect, error) { ctx, cancel := d.getTimeoutContext() defer cancel() diff --git a/pkg/kubelet/dockershim/remote/docker_service.go b/pkg/kubelet/dockershim/remote/docker_service.go index 13a5e8bfd25..f51004aa058 100644 --- a/pkg/kubelet/dockershim/remote/docker_service.go +++ b/pkg/kubelet/dockershim/remote/docker_service.go @@ -147,6 +147,14 @@ func (d *dockerService) ContainerStatus(ctx context.Context, r *runtimeapi.Conta return &runtimeapi.ContainerStatusResponse{Status: status}, nil } +func (d *dockerService) UpdateContainerResources(ctx context.Context, r *runtimeapi.UpdateContainerResourcesRequest) (*runtimeapi.UpdateContainerResourcesResponse, error) { + err := d.runtimeService.UpdateContainerResources(r.ContainerId, r.Linux) + if err != nil { + return nil, err + } + return &runtimeapi.UpdateContainerResourcesResponse{}, nil +} + func (d *dockerService) ExecSync(ctx context.Context, r *runtimeapi.ExecSyncRequest) (*runtimeapi.ExecSyncResponse, error) { stdout, stderr, err := d.runtimeService.ExecSync(r.ContainerId, r.Cmd, time.Duration(r.Timeout)*time.Second) var exitCode int32 diff --git a/pkg/kubelet/kuberuntime/instrumented_services.go b/pkg/kubelet/kuberuntime/instrumented_services.go index ecb6cfbdcda..65c10b1f745 100644 --- a/pkg/kubelet/kuberuntime/instrumented_services.go +++ b/pkg/kubelet/kuberuntime/instrumented_services.go @@ -131,6 +131,15 @@ func (in instrumentedRuntimeService) ContainerStatus(containerID string) (*runti return out, err } +func (in instrumentedRuntimeService) UpdateContainerResources(containerID string, resources *runtimeapi.LinuxContainerResources) error { + const operation = "container_status" + defer recordOperation(operation, time.Now()) + + err := in.service.UpdateContainerResources(containerID, resources) + recordError(operation, err) + return err +} + func (in instrumentedRuntimeService) ExecSync(containerID string, cmd []string, timeout time.Duration) ([]byte, []byte, error) { const operation = "exec_sync" defer recordOperation(operation, time.Now()) diff --git a/pkg/kubelet/remote/remote_runtime.go b/pkg/kubelet/remote/remote_runtime.go index 647c564b7e3..e42b1aa4caf 100644 --- a/pkg/kubelet/remote/remote_runtime.go +++ b/pkg/kubelet/remote/remote_runtime.go @@ -288,6 +288,23 @@ func (r *RemoteRuntimeService) ContainerStatus(containerID string) (*runtimeapi. return resp.Status, nil } +// UpdateContainerResources updates a containers resource config +func (r *RemoteRuntimeService) UpdateContainerResources(containerID string, resources *runtimeapi.LinuxContainerResources) error { + ctx, cancel := getContextWithTimeout(r.timeout) + defer cancel() + + _, err := r.runtimeClient.UpdateContainerResources(ctx, &runtimeapi.UpdateContainerResourcesRequest{ + ContainerId: containerID, + Linux: resources, + }) + if err != nil { + glog.Errorf("UpdateContainerResources %q from runtime service failed: %v", containerID, err) + return err + } + + return nil +} + // ExecSync executes a command in the container, and returns the stdout output. // If command exits with a non-zero exit code, an error is returned. func (r *RemoteRuntimeService) ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error) { diff --git a/pkg/kubelet/rktshim/app-interface.go b/pkg/kubelet/rktshim/app-interface.go index b7d9ed3b784..be01bac97fe 100644 --- a/pkg/kubelet/rktshim/app-interface.go +++ b/pkg/kubelet/rktshim/app-interface.go @@ -65,6 +65,11 @@ func (*Runtime) ContainerStatus(string) (*runtimeapi.ContainerStatus, error) { panic("not implemented") } +// UpdateContainerResources updates the resource constraints for the container. +func (*Runtime) UpdateContainerResources(string, *runtimeapi.LinuxContainerResources) error { + panic("not implemented") +} + // ExecSync executes a command in the container, and returns the stdout output. // If command exits with a non-zero exit code, an error is returned. func (*Runtime) ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error) { diff --git a/pkg/kubelet/rktshim/fake-app-interface.go b/pkg/kubelet/rktshim/fake-app-interface.go index ee6a89a6a28..b0e20d55535 100644 --- a/pkg/kubelet/rktshim/fake-app-interface.go +++ b/pkg/kubelet/rktshim/fake-app-interface.go @@ -205,6 +205,10 @@ func (r *FakeRuntime) ContainerStatus(id string) (*runtimeapi.ContainerStatus, e return &c.Status, nil } +func (r *FakeRuntime) UpdateContainerResources(string, *runtimeapi.LinuxContainerResources) error { + return nil +} + func (r *FakeRuntime) ExecSync(containerID string, cmd []string, timeout time.Duration) (stdout []byte, stderr []byte, err error) { c, ok := r.Containers[containerID] if !ok { From 3027d9bac3d418c90f4ffc0622082325a493da12 Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Thu, 13 Jul 2017 16:15:06 +0800 Subject: [PATCH 027/183] Add e2e test for privileged containers --- test/e2e_node/security_context_test.go | 61 ++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/test/e2e_node/security_context_test.go b/test/e2e_node/security_context_test.go index e89b084cd6e..1f39ffbafd4 100644 --- a/test/e2e_node/security_context_test.go +++ b/test/e2e_node/security_context_test.go @@ -459,4 +459,65 @@ var _ = framework.KubeDescribe("Security Context", func() { }) }) + Context("When creating a pod with privileged", func() { + makeUserPod := func(podName, image string, command []string, privileged bool) *v1.Pod { + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: podName, + }, + Spec: v1.PodSpec{ + RestartPolicy: v1.RestartPolicyNever, + Containers: []v1.Container{ + { + Image: image, + Name: podName, + Command: command, + SecurityContext: &v1.SecurityContext{ + Privileged: &privileged, + }, + }, + }, + }, + } + } + createAndWaitUserPod := func(privileged bool) string { + podName := fmt.Sprintf("busybox-privileged-%v-%s", privileged, uuid.NewUUID()) + podClient.Create(makeUserPod(podName, + "gcr.io/google_containers/busybox:1.24", + []string{"sh", "-c", "ip link add dummy0 type dummy || true"}, + privileged, + )) + + podClient.WaitForSuccess(podName, framework.PodStartTimeout) + + return podName + } + + It("should run the container as privileged when true", func() { + podName := createAndWaitUserPod(true) + logs, err := framework.GetPodLogs(f.ClientSet, f.Namespace.Name, podName, podName) + if err != nil { + framework.Failf("GetPodLogs for pod %q failed: %v", podName, err) + } + + framework.Logf("Got logs for pod %q: %q", podName, logs) + if strings.Contains(logs, "Operation not permitted") { + framework.Failf("privileged container should be able to create dummy device") + } + }) + + It("should run the container as unprivileged when false", func() { + podName := createAndWaitUserPod(false) + logs, err := framework.GetPodLogs(f.ClientSet, f.Namespace.Name, podName, podName) + if err != nil { + framework.Failf("GetPodLogs for pod %q failed: %v", podName, err) + } + + framework.Logf("Got logs for pod %q: %q", podName, logs) + if !strings.Contains(logs, "Operation not permitted") { + framework.Failf("unprivileged container shouldn't be able to create dummy device") + } + }) + }) + }) From 4c1879c171ec682e8571d5725c379e183564376c Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Tue, 1 Aug 2017 20:13:05 +0800 Subject: [PATCH 028/183] Rename e2e sig framework files --- test/e2e/lifecycle/BUILD | 2 +- test/e2e/lifecycle/{sig.go => framework.go} | 0 test/e2e/node/BUILD | 2 +- test/e2e/node/{sig.go => framework.go} | 0 4 files changed, 2 insertions(+), 2 deletions(-) rename test/e2e/lifecycle/{sig.go => framework.go} (100%) rename test/e2e/node/{sig.go => framework.go} (100%) diff --git a/test/e2e/lifecycle/BUILD b/test/e2e/lifecycle/BUILD index 348920c22a4..d39f01bc013 100644 --- a/test/e2e/lifecycle/BUILD +++ b/test/e2e/lifecycle/BUILD @@ -12,11 +12,11 @@ go_library( srcs = [ "addon_update.go", "cluster_upgrade.go", + "framework.go", "ha_master.go", "reboot.go", "resize_nodes.go", "restart.go", - "sig.go", ], tags = ["automanaged"], deps = [ diff --git a/test/e2e/lifecycle/sig.go b/test/e2e/lifecycle/framework.go similarity index 100% rename from test/e2e/lifecycle/sig.go rename to test/e2e/lifecycle/framework.go diff --git a/test/e2e/node/BUILD b/test/e2e/node/BUILD index d12ea9c1bba..12431fb8b82 100644 --- a/test/e2e/node/BUILD +++ b/test/e2e/node/BUILD @@ -11,11 +11,11 @@ go_library( name = "go_default_library", srcs = [ "apparmor.go", + "framework.go", "kubelet.go", "kubelet_perf.go", "nodeoutofdisk.go", "security_context.go", - "sig.go", ], tags = ["automanaged"], deps = [ diff --git a/test/e2e/node/sig.go b/test/e2e/node/framework.go similarity index 100% rename from test/e2e/node/sig.go rename to test/e2e/node/framework.go From 210d61fb0350cb527fdc4be747531acd4d438a40 Mon Sep 17 00:00:00 2001 From: Balu Dontu Date: Wed, 2 Aug 2017 08:05:04 -0700 Subject: [PATCH 029/183] VCLib Package - A common framework using by vsphere cloud provider for managing all vsphere entities --- .../providers/vsphere/vclib/BUILD | 59 +++ .../providers/vsphere/vclib/connection.go | 99 +++++ .../providers/vsphere/vclib/constants.go | 52 +++ .../providers/vsphere/vclib/custom_errors.go | 37 ++ .../providers/vsphere/vclib/datacenter.go | 164 ++++++++ .../providers/vsphere/vclib/datastore.go | 75 ++++ .../vsphere/vclib/diskmanagers/BUILD | 38 ++ .../vsphere/vclib/diskmanagers/vdm.go | 91 +++++ .../vsphere/vclib/diskmanagers/virtualdisk.go | 80 ++++ .../vsphere/vclib/diskmanagers/vmdm.go | 246 ++++++++++++ .../providers/vsphere/vclib/folder.go | 46 +++ .../providers/vsphere/vclib/pbm.go | 169 ++++++++ .../providers/vsphere/vclib/utils.go | 117 ++++++ .../providers/vsphere/vclib/virtualmachine.go | 368 ++++++++++++++++++ .../providers/vsphere/vclib/vmoptions.go | 27 ++ .../providers/vsphere/vclib/volumeoptions.go | 107 +++++ .../vsphere/vclib/vsphere_metrics.go | 133 +++++++ 17 files changed, 1908 insertions(+) create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/BUILD create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/connection.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/constants.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/custom_errors.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/datacenter.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/datastore.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vdm.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/virtualdisk.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/folder.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/pbm.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/utils.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/virtualmachine.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/vmoptions.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/volumeoptions.go create mode 100644 pkg/cloudprovider/providers/vsphere/vclib/vsphere_metrics.go diff --git a/pkg/cloudprovider/providers/vsphere/vclib/BUILD b/pkg/cloudprovider/providers/vsphere/vclib/BUILD new file mode 100644 index 00000000000..c9acb87190a --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/BUILD @@ -0,0 +1,59 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "connection.go", + "constants.go", + "custom_errors.go", + "datacenter.go", + "datastore.go", + "folder.go", + "pbm.go", + "utils.go", + "virtualmachine.go", + "vmoptions.go", + "volumeoptions.go", + "vsphere_metrics.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", + "//vendor/github.com/vmware/govmomi:go_default_library", + "//vendor/github.com/vmware/govmomi/find:go_default_library", + "//vendor/github.com/vmware/govmomi/object:go_default_library", + "//vendor/github.com/vmware/govmomi/pbm:go_default_library", + "//vendor/github.com/vmware/govmomi/pbm/types:go_default_library", + "//vendor/github.com/vmware/govmomi/property:go_default_library", + "//vendor/github.com/vmware/govmomi/session:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//pkg/cloudprovider/providers/vsphere/vclib/diskmanagers:all-srcs", + ], + tags = ["automanaged"], +) diff --git a/pkg/cloudprovider/providers/vsphere/vclib/connection.go b/pkg/cloudprovider/providers/vsphere/vclib/connection.go new file mode 100644 index 00000000000..d42a091f17f --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/connection.go @@ -0,0 +1,99 @@ +/* +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 vclib + +import ( + "fmt" + neturl "net/url" + "sync" + + "github.com/golang/glog" + "github.com/vmware/govmomi" + "github.com/vmware/govmomi/session" + "github.com/vmware/govmomi/vim25" + "golang.org/x/net/context" +) + +// VSphereConnection contains information for connecting to vCenter +type VSphereConnection struct { + GoVmomiClient *govmomi.Client + Username string + Password string + Hostname string + Port string + Insecure bool + RoundTripperCount uint +} + +var ( + clientLock sync.Mutex +) + +// Connect makes connection to vCenter and sets VSphereConnection.GoVmomiClient. +// If connection.GoVmomiClient is already set, it obtains the existing user session. +// if user session is not valid, connection.GoVmomiClient will be set to the new client. +func (connection *VSphereConnection) Connect(ctx context.Context) error { + var err error + clientLock.Lock() + defer clientLock.Unlock() + + if connection.GoVmomiClient == nil { + connection.GoVmomiClient, err = connection.NewClient(ctx) + if err != nil { + glog.Errorf("Failed to create govmomi client. err: %+v", err) + return err + } + return nil + } + m := session.NewManager(connection.GoVmomiClient.Client) + userSession, err := m.UserSession(ctx) + if err != nil { + glog.Errorf("Error while obtaining user session. err: %+v", err) + return err + } + if userSession != nil { + return nil + } + glog.Warningf("Creating new client session since the existing session is not valid or not authenticated") + connection.GoVmomiClient.Logout(ctx) + connection.GoVmomiClient, err = connection.NewClient(ctx) + if err != nil { + glog.Errorf("Failed to create govmomi client. err: %+v", err) + return err + } + return nil +} + +// NewClient creates a new govmomi client for the VSphereConnection obj +func (connection *VSphereConnection) NewClient(ctx context.Context) (*govmomi.Client, error) { + url, err := neturl.Parse(fmt.Sprintf("https://%s:%s/sdk", connection.Hostname, connection.Port)) + if err != nil { + glog.Errorf("Failed to parse URL: %s. err: %+v", url, err) + return nil, err + } + url.User = neturl.UserPassword(connection.Username, connection.Password) + client, err := govmomi.NewClient(ctx, url, connection.Insecure) + if err != nil { + glog.Errorf("Failed to create new client. err: %+v", err) + return nil, err + } + if connection.RoundTripperCount == 0 { + connection.RoundTripperCount = RoundTripperDefaultCount + } + client.RoundTripper = vim25.Retry(client.RoundTripper, vim25.TemporaryNetworkError(int(connection.RoundTripperCount))) + return client, nil +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/constants.go b/pkg/cloudprovider/providers/vsphere/vclib/constants.go new file mode 100644 index 00000000000..812cbe3856d --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/constants.go @@ -0,0 +1,52 @@ +/* +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 vclib + +// Volume Constnts +const ( + ThinDiskType = "thin" + PreallocatedDiskType = "preallocated" + EagerZeroedThickDiskType = "eagerZeroedThick" + ZeroedThickDiskType = "zeroedThick" +) + +// Controller Constants +const ( + SCSIControllerLimit = 4 + SCSIControllerDeviceLimit = 15 + SCSIDeviceSlots = 16 + SCSIReservedSlot = 7 + + SCSIControllerType = "scsi" + LSILogicControllerType = "lsiLogic" + BusLogicControllerType = "busLogic" + LSILogicSASControllerType = "lsiLogic-sas" + PVSCSIControllerType = "pvscsi" +) + +// Other Constants +const ( + LogLevel = 4 + DatastoreProperty = "datastore" + ResourcePoolProperty = "resourcePool" + DatastoreInfoProperty = "info" + VirtualMachineType = "VirtualMachine" + RoundTripperDefaultCount = 3 + VSANDatastoreType = "vsan" + DummyVMPrefixName = "vsphere-k8s" + ActivePowerState = "poweredOn" +) diff --git a/pkg/cloudprovider/providers/vsphere/vclib/custom_errors.go b/pkg/cloudprovider/providers/vsphere/vclib/custom_errors.go new file mode 100644 index 00000000000..391f328f426 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/custom_errors.go @@ -0,0 +1,37 @@ +/* +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 vclib + +import "errors" + +// Error Messages +const ( + FileAlreadyExistErrMsg = "File requested already exist" + NoDiskUUIDFoundErrMsg = "No disk UUID found" + NoDevicesFoundErrMsg = "No devices found" + DiskNotFoundErrMsg = "No vSphere disk ID found" + InvalidVolumeOptionsErrMsg = "VolumeOptions verification failed" +) + +// Error constants +var ( + ErrFileAlreadyExist = errors.New(FileAlreadyExistErrMsg) + ErrNoDiskUUIDFound = errors.New(NoDiskUUIDFoundErrMsg) + ErrNoDevicesFound = errors.New(NoDevicesFoundErrMsg) + ErrNoDiskIDFound = errors.New(DiskNotFoundErrMsg) + ErrInvalidVolumeOptions = errors.New(InvalidVolumeOptionsErrMsg) +) diff --git a/pkg/cloudprovider/providers/vsphere/vclib/datacenter.go b/pkg/cloudprovider/providers/vsphere/vclib/datacenter.go new file mode 100644 index 00000000000..f4dc1c455ae --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/datacenter.go @@ -0,0 +1,164 @@ +/* +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 vclib + +import ( + "errors" + "fmt" + "strings" + + "github.com/golang/glog" + "github.com/vmware/govmomi/find" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" + "golang.org/x/net/context" +) + +// Datacenter extends the govmomi Datacenter object +type Datacenter struct { + *object.Datacenter +} + +// GetDatacenter returns the DataCenter Object for the given datacenterPath +// If datacenter is located in a folder, include full path to datacenter else just provide the datacenter name +func GetDatacenter(ctx context.Context, connection *VSphereConnection, datacenterPath string) (*Datacenter, error) { + finder := find.NewFinder(connection.GoVmomiClient.Client, true) + datacenter, err := finder.Datacenter(ctx, datacenterPath) + if err != nil { + glog.Errorf("Failed to find the datacenter: %s. err: %+v", datacenterPath, err) + return nil, err + } + dc := Datacenter{datacenter} + return &dc, nil +} + +// GetVMByUUID gets the VM object from the given vmUUID +func (dc *Datacenter) GetVMByUUID(ctx context.Context, vmUUID string) (*VirtualMachine, error) { + s := object.NewSearchIndex(dc.Client()) + vmUUID = strings.ToLower(strings.TrimSpace(vmUUID)) + svm, err := s.FindByUuid(ctx, dc.Datacenter, vmUUID, true, nil) + if err != nil { + glog.Errorf("Failed to find VM by UUID. VM UUID: %s, err: %+v", vmUUID, err) + return nil, err + } + if svm == nil { + glog.Errorf("Unable to find VM by UUID. VM UUID: %s", vmUUID) + return nil, fmt.Errorf("Failed to find VM by UUID: %s", vmUUID) + } + virtualMachine := VirtualMachine{object.NewVirtualMachine(dc.Client(), svm.Reference()), dc} + return &virtualMachine, nil +} + +// GetVMByPath gets the VM object from the given vmPath +// vmPath should be the full path to VM and not just the name +func (dc *Datacenter) GetVMByPath(ctx context.Context, vmPath string) (*VirtualMachine, error) { + finder := getFinder(dc) + vm, err := finder.VirtualMachine(ctx, vmPath) + if err != nil { + glog.Errorf("Failed to find VM by Path. VM Path: %s, err: %+v", vmPath, err) + return nil, err + } + virtualMachine := VirtualMachine{vm, dc} + return &virtualMachine, nil +} + +// GetDatastoreByPath gets the Datastore object from the given vmDiskPath +func (dc *Datacenter) GetDatastoreByPath(ctx context.Context, vmDiskPath string) (*Datastore, error) { + datastorePathObj := new(object.DatastorePath) + isSuccess := datastorePathObj.FromString(vmDiskPath) + if !isSuccess { + glog.Errorf("Failed to parse vmDiskPath: %s", vmDiskPath) + return nil, errors.New("Failed to parse vmDiskPath") + } + finder := getFinder(dc) + ds, err := finder.Datastore(ctx, datastorePathObj.Datastore) + if err != nil { + glog.Errorf("Failed while searching for datastore: %s. err: %+v", datastorePathObj.Datastore, err) + return nil, err + } + datastore := Datastore{ds, dc} + return &datastore, nil +} + +// GetDatastoreByName gets the Datastore object for the given datastore name +func (dc *Datacenter) GetDatastoreByName(ctx context.Context, name string) (*Datastore, error) { + finder := getFinder(dc) + ds, err := finder.Datastore(ctx, name) + if err != nil { + glog.Errorf("Failed while searching for datastore: %s. err: %+v", name, err) + return nil, err + } + datastore := Datastore{ds, dc} + return &datastore, nil +} + +// GetFolderByPath gets the Folder Object from the given folder path +// folderPath should be the full path to folder +func (dc *Datacenter) GetFolderByPath(ctx context.Context, folderPath string) (*Folder, error) { + finder := getFinder(dc) + vmFolder, err := finder.Folder(ctx, folderPath) + if err != nil { + glog.Errorf("Failed to get the folder reference for %s. err: %+v", folderPath, err) + return nil, err + } + folder := Folder{vmFolder, dc} + return &folder, nil +} + +// GetVMMoList gets the VM Managed Objects with the given properties from the VM object +func (dc *Datacenter) GetVMMoList(ctx context.Context, vmObjList []*VirtualMachine, properties []string) ([]mo.VirtualMachine, error) { + var vmMoList []mo.VirtualMachine + var vmRefs []types.ManagedObjectReference + if len(vmObjList) < 1 { + glog.Errorf("VirtualMachine Object list is empty") + return nil, fmt.Errorf("VirtualMachine Object list is empty") + } + + for _, vmObj := range vmObjList { + vmRefs = append(vmRefs, vmObj.Reference()) + } + pc := property.DefaultCollector(dc.Client()) + err := pc.Retrieve(ctx, vmRefs, properties, &vmMoList) + if err != nil { + glog.Errorf("Failed to get VM managed objects from VM objects. vmObjList: %+v, properties: %+v, err: %v", vmObjList, properties, err) + return nil, err + } + return vmMoList, nil +} + +// GetDatastoreMoList gets the Datastore Managed Objects with the given properties from the datastore objects +func (dc *Datacenter) GetDatastoreMoList(ctx context.Context, dsObjList []*Datastore, properties []string) ([]mo.Datastore, error) { + var dsMoList []mo.Datastore + var dsRefs []types.ManagedObjectReference + if len(dsObjList) < 1 { + glog.Errorf("Datastore Object list is empty") + return nil, fmt.Errorf("Datastore Object list is empty") + } + + for _, dsObj := range dsObjList { + dsRefs = append(dsRefs, dsObj.Reference()) + } + pc := property.DefaultCollector(dc.Client()) + err := pc.Retrieve(ctx, dsRefs, properties, &dsMoList) + if err != nil { + glog.Errorf("Failed to get Datastore managed objects from datastore objects. dsObjList: %+v, properties: %+v, err: %v", dsObjList, properties, err) + return nil, err + } + return dsMoList, nil +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/datastore.go b/pkg/cloudprovider/providers/vsphere/vclib/datastore.go new file mode 100644 index 00000000000..1901af18909 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/datastore.go @@ -0,0 +1,75 @@ +/* +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 vclib + +import ( + "github.com/golang/glog" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/property" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/soap" + "github.com/vmware/govmomi/vim25/types" + "golang.org/x/net/context" +) + +// Datastore extends the govmomi Datastore object +type Datastore struct { + *object.Datastore + Datacenter *Datacenter +} + +// CreateDirectory creates the directory at location specified by directoryPath. +// If the intermediate level folders do not exist, and the parameter createParents is true, all the non-existent folders are created. +// directoryPath must be in the format "[vsanDatastore] kubevols" +func (ds *Datastore) CreateDirectory(ctx context.Context, directoryPath string, createParents bool) error { + fileManager := object.NewFileManager(ds.Client()) + err := fileManager.MakeDirectory(ctx, directoryPath, ds.Datacenter.Datacenter, createParents) + if err != nil { + if soap.IsSoapFault(err) { + soapFault := soap.ToSoapFault(err) + if _, ok := soapFault.VimFault().(types.FileAlreadyExists); ok { + return ErrFileAlreadyExist + } + } + return err + } + glog.V(LogLevel).Infof("Created dir with path as %+q", directoryPath) + return nil +} + +// GetType returns the type of datastore +func (ds *Datastore) GetType(ctx context.Context) (string, error) { + var dsMo mo.Datastore + pc := property.DefaultCollector(ds.Client()) + err := pc.RetrieveOne(ctx, ds.Datastore.Reference(), []string{"summary"}, &dsMo) + if err != nil { + glog.Errorf("Failed to retrieve datastore summary property. err: %v", err) + return "", err + } + return dsMo.Summary.Type, nil +} + +// IsCompatibleWithStoragePolicy returns true if datastore is compatible with given storage policy else return false +// for not compatible datastore, fault message is also returned +func (ds *Datastore) IsCompatibleWithStoragePolicy(ctx context.Context, storagePolicyID string) (bool, string, error) { + pbmClient, err := NewPbmClient(ctx, ds.Client()) + if err != nil { + glog.Errorf("Failed to get new PbmClient Object. err: %v", err) + return false, "", err + } + return pbmClient.IsDatastoreCompatible(ctx, storagePolicyID, ds) +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD new file mode 100644 index 00000000000..bf55da93cea --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD @@ -0,0 +1,38 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "vdm.go", + "virtualdisk.go", + "vmdm.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/vmware/govmomi/object:go_default_library", + "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", + "//vendor/golang.org/x/net/context:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vdm.go b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vdm.go new file mode 100644 index 00000000000..50f065fc1b1 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vdm.go @@ -0,0 +1,91 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package diskmanagers + +import ( + "time" + + "golang.org/x/net/context" + + "github.com/golang/glog" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/types" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" +) + +// virtualDiskManager implements VirtualDiskProvider Interface for creating and deleting volume using VirtualDiskManager +type virtualDiskManager struct { + diskPath string + volumeOptions *vclib.VolumeOptions +} + +// Create implements Disk's Create interface +// Contains implementation of virtualDiskManager based Provisioning +func (diskManager virtualDiskManager) Create(ctx context.Context, datastore *vclib.Datastore) (err error) { + if diskManager.volumeOptions.SCSIControllerType == "" { + diskManager.volumeOptions.SCSIControllerType = vclib.LSILogicControllerType + } + // Create virtual disk + diskFormat := vclib.DiskFormatValidType[diskManager.volumeOptions.DiskFormat] + // Create a virtual disk manager + vdm := object.NewVirtualDiskManager(datastore.Client()) + // Create specification for new virtual disk + vmDiskSpec := &types.FileBackedVirtualDiskSpec{ + VirtualDiskSpec: types.VirtualDiskSpec{ + AdapterType: diskManager.volumeOptions.SCSIControllerType, + DiskType: diskFormat, + }, + CapacityKb: int64(diskManager.volumeOptions.CapacityKB), + } + requestTime := time.Now() + // Create virtual disk + task, err := vdm.CreateVirtualDisk(ctx, diskManager.diskPath, datastore.Datacenter.Datacenter, vmDiskSpec) + if err != nil { + vclib.RecordvSphereMetric(vclib.APICreateVolume, requestTime, err) + glog.Errorf("Failed to create virtual disk: %s. err: %+v", diskManager.diskPath, err) + return err + } + err = task.Wait(ctx) + vclib.RecordvSphereMetric(vclib.APICreateVolume, requestTime, err) + if err != nil { + glog.Errorf("Failed to create virtual disk: %s. err: %+v", diskManager.diskPath, err) + return err + } + return nil +} + +// Delete implements Disk's Delete interface +func (diskManager virtualDiskManager) Delete(ctx context.Context, datastore *vclib.Datastore) error { + // Create a virtual disk manager + virtualDiskManager := object.NewVirtualDiskManager(datastore.Client()) + diskPath := vclib.RemoveClusterFromVDiskPath(diskManager.diskPath) + requestTime := time.Now() + // Delete virtual disk + task, err := virtualDiskManager.DeleteVirtualDisk(ctx, diskPath, datastore.Datacenter.Datacenter) + if err != nil { + glog.Errorf("Failed to delete virtual disk. err: %v", err) + vclib.RecordvSphereMetric(vclib.APIDeleteVolume, requestTime, err) + return err + } + err = task.Wait(ctx) + vclib.RecordvSphereMetric(vclib.APIDeleteVolume, requestTime, err) + if err != nil { + glog.Errorf("Failed to delete virtual disk. err: %v", err) + return err + } + return nil +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/virtualdisk.go b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/virtualdisk.go new file mode 100644 index 00000000000..80000da384e --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/virtualdisk.go @@ -0,0 +1,80 @@ +/* +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 diskmanagers + +import ( + "fmt" + + "github.com/golang/glog" + "golang.org/x/net/context" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" +) + +// VirtualDisk is for the Disk Management +type VirtualDisk struct { + DiskPath string + VolumeOptions *vclib.VolumeOptions + VMOptions *vclib.VMOptions +} + +// VirtualDisk Operations Const +const ( + VirtualDiskCreateOperation = "Create" + VirtualDiskDeleteOperation = "Delete" +) + +// VirtualDiskProvider defines interfaces for creating disk +type VirtualDiskProvider interface { + Create(ctx context.Context, datastore *vclib.Datastore) error + Delete(ctx context.Context, datastore *vclib.Datastore) error +} + +// getDiskManager returns vmDiskManager or vdmDiskManager based on given volumeoptions +func getDiskManager(disk *VirtualDisk, diskOperation string) VirtualDiskProvider { + var diskProvider VirtualDiskProvider + switch diskOperation { + case VirtualDiskDeleteOperation: + diskProvider = virtualDiskManager{disk.DiskPath, disk.VolumeOptions} + case VirtualDiskCreateOperation: + if disk.VolumeOptions.StoragePolicyName != "" || disk.VolumeOptions.VSANStorageProfileData != "" || disk.VolumeOptions.StoragePolicyID != "" { + diskProvider = vmDiskManager{disk.DiskPath, disk.VolumeOptions, disk.VMOptions} + } else { + diskProvider = virtualDiskManager{disk.DiskPath, disk.VolumeOptions} + } + } + return diskProvider +} + +// Create gets appropriate disk manager and calls respective create method +func (virtualDisk *VirtualDisk) Create(ctx context.Context, datastore *vclib.Datastore) error { + if virtualDisk.VolumeOptions.DiskFormat == "" { + virtualDisk.VolumeOptions.DiskFormat = vclib.ThinDiskType + } + if !virtualDisk.VolumeOptions.VerifyVolumeOptions() { + glog.Error("VolumeOptions verification failed. volumeOptions: ", virtualDisk.VolumeOptions) + return vclib.ErrInvalidVolumeOptions + } + if virtualDisk.VolumeOptions.StoragePolicyID != "" && virtualDisk.VolumeOptions.StoragePolicyName != "" { + return fmt.Errorf("Storage Policy ID and Storage Policy Name both set, Please set only one parameter") + } + return getDiskManager(virtualDisk, VirtualDiskCreateOperation).Create(ctx, datastore) +} + +// Delete gets appropriate disk manager and calls respective delete method +func (virtualDisk *VirtualDisk) Delete(ctx context.Context, datastore *vclib.Datastore) error { + return getDiskManager(virtualDisk, VirtualDiskDeleteOperation).Delete(ctx, datastore) +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go new file mode 100644 index 00000000000..812ad845064 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/vmdm.go @@ -0,0 +1,246 @@ +/* +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 diskmanagers + +import ( + "fmt" + "strings" + + "github.com/golang/glog" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/types" + "golang.org/x/net/context" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" +) + +// vmDiskManager implements VirtualDiskProvider interface for creating volume using Virtual Machine Reconfigure approach +type vmDiskManager struct { + diskPath string + volumeOptions *vclib.VolumeOptions + vmOptions *vclib.VMOptions +} + +// Create implements Disk's Create interface +// Contains implementation of VM based Provisioning to provision disk with SPBM Policy or VSANStorageProfileData +func (vmdisk vmDiskManager) Create(ctx context.Context, datastore *vclib.Datastore) (err error) { + if vmdisk.volumeOptions.SCSIControllerType == "" { + vmdisk.volumeOptions.SCSIControllerType = vclib.PVSCSIControllerType + } + pbmClient, err := vclib.NewPbmClient(ctx, datastore.Client()) + if err != nil { + glog.Errorf("Error occurred while creating new pbmClient, err: %+v", err) + return err + } + + if vmdisk.volumeOptions.StoragePolicyID == "" && vmdisk.volumeOptions.StoragePolicyName != "" { + vmdisk.volumeOptions.StoragePolicyID, err = pbmClient.ProfileIDByName(ctx, vmdisk.volumeOptions.StoragePolicyName) + if err != nil { + glog.Errorf("Error occurred while getting Profile Id from Profile Name: %s, err: %+v", vmdisk.volumeOptions.StoragePolicyName, err) + return err + } + } + if vmdisk.volumeOptions.StoragePolicyID != "" { + compatible, faultMessage, err := datastore.IsCompatibleWithStoragePolicy(ctx, vmdisk.volumeOptions.StoragePolicyID) + if err != nil { + glog.Errorf("Error occurred while checking datastore compatibility with storage policy id: %s, err: %+v", vmdisk.volumeOptions.StoragePolicyID, err) + return err + } + + if !compatible { + glog.Errorf("Datastore: %s is not compatible with Policy: %s", datastore.Name(), vmdisk.volumeOptions.StoragePolicyName) + return fmt.Errorf("User specified datastore is not compatible with the storagePolicy: %q. Failed with faults: %+q", vmdisk.volumeOptions.StoragePolicyName, faultMessage) + } + } + + storageProfileSpec := &types.VirtualMachineDefinedProfileSpec{} + // Is PBM storage policy ID is present, set the storage spec profile ID, + // else, set raw the VSAN policy string. + if vmdisk.volumeOptions.StoragePolicyID != "" { + storageProfileSpec.ProfileId = vmdisk.volumeOptions.StoragePolicyID + } else if vmdisk.volumeOptions.VSANStorageProfileData != "" { + // Check Datastore type - VSANStorageProfileData is only applicable to vSAN Datastore + dsType, err := datastore.GetType(ctx) + if err != nil { + return err + } + if dsType != vclib.VSANDatastoreType { + glog.Errorf("The specified datastore: %q is not a VSAN datastore", datastore.Name()) + return fmt.Errorf("The specified datastore: %q is not a VSAN datastore."+ + " The policy parameters will work only with VSAN Datastore."+ + " So, please specify a valid VSAN datastore in Storage class definition.", datastore.Name()) + } + storageProfileSpec.ProfileId = "" + storageProfileSpec.ProfileData = &types.VirtualMachineProfileRawData{ + ExtensionKey: "com.vmware.vim.sps", + ObjectData: vmdisk.volumeOptions.VSANStorageProfileData, + } + } else { + glog.Errorf("Both volumeOptions.StoragePolicyID and volumeOptions.VSANStorageProfileData are not set. One of them should be set") + return fmt.Errorf("Both volumeOptions.StoragePolicyID and volumeOptions.VSANStorageProfileData are not set. One of them should be set") + } + var dummyVM *vclib.VirtualMachine + // Check if VM already exist in the folder. + // If VM is already present, use it, else create a new dummy VM. + dummyVMFullName := vclib.DummyVMPrefixName + "-" + vmdisk.volumeOptions.Name + dummyVM, err = datastore.Datacenter.GetVMByPath(ctx, vmdisk.vmOptions.VMFolder.InventoryPath+"/"+dummyVMFullName) + if err != nil { + // Create a dummy VM + glog.V(1).Info("Creating Dummy VM: %q", dummyVMFullName) + dummyVM, err = vmdisk.createDummyVM(ctx, datastore.Datacenter, dummyVMFullName) + if err != nil { + glog.Errorf("Failed to create Dummy VM. err: %v", err) + return err + } + } + + // Reconfigure the VM to attach the disk with the VSAN policy configured + virtualMachineConfigSpec := types.VirtualMachineConfigSpec{} + disk, _, err := dummyVM.CreateDiskSpec(ctx, vmdisk.diskPath, datastore, vmdisk.volumeOptions) + if err != nil { + glog.Errorf("Failed to create Disk Spec. err: %v", err) + return err + } + deviceConfigSpec := &types.VirtualDeviceConfigSpec{ + Device: disk, + Operation: types.VirtualDeviceConfigSpecOperationAdd, + FileOperation: types.VirtualDeviceConfigSpecFileOperationCreate, + } + + deviceConfigSpec.Profile = append(deviceConfigSpec.Profile, storageProfileSpec) + virtualMachineConfigSpec.DeviceChange = append(virtualMachineConfigSpec.DeviceChange, deviceConfigSpec) + fileAlreadyExist := false + task, err := dummyVM.Reconfigure(ctx, virtualMachineConfigSpec) + err = task.Wait(ctx) + if err != nil { + fileAlreadyExist = isAlreadyExists(vmdisk.diskPath, err) + if fileAlreadyExist { + //Skip error and continue to detach the disk as the disk was already created on the datastore. + glog.V(vclib.LogLevel).Info("File: %v already exists", vmdisk.diskPath) + } else { + glog.Errorf("Failed to attach the disk to VM: %q with err: %+v", dummyVMFullName, err) + return err + } + } + // Detach the disk from the dummy VM. + err = dummyVM.DetachDisk(ctx, vmdisk.diskPath) + if err != nil { + if vclib.DiskNotFoundErrMsg == err.Error() && fileAlreadyExist { + // Skip error if disk was already detached from the dummy VM but still present on the datastore. + glog.V(vclib.LogLevel).Info("File: %v is already detached", vmdisk.diskPath) + } else { + glog.Errorf("Failed to detach the disk: %q from VM: %q with err: %+v", vmdisk.diskPath, dummyVMFullName, err) + return err + } + } + // Delete the dummy VM + err = dummyVM.DeleteVM(ctx) + if err != nil { + glog.Errorf("Failed to destroy the vm: %q with err: %+v", dummyVMFullName, err) + } + return nil +} + +func (vmdisk vmDiskManager) Delete(ctx context.Context, datastore *vclib.Datastore) error { + return fmt.Errorf("vmDiskManager.Delete is not supported") +} + +// CreateDummyVM create a Dummy VM at specified location with given name. +func (vmdisk vmDiskManager) createDummyVM(ctx context.Context, datacenter *vclib.Datacenter, vmName string) (*vclib.VirtualMachine, error) { + // Create a virtual machine config spec with 1 SCSI adapter. + virtualMachineConfigSpec := types.VirtualMachineConfigSpec{ + Name: vmName, + Files: &types.VirtualMachineFileInfo{ + VmPathName: "[" + vmdisk.volumeOptions.Datastore + "]", + }, + NumCPUs: 1, + MemoryMB: 4, + DeviceChange: []types.BaseVirtualDeviceConfigSpec{ + &types.VirtualDeviceConfigSpec{ + Operation: types.VirtualDeviceConfigSpecOperationAdd, + Device: &types.ParaVirtualSCSIController{ + VirtualSCSIController: types.VirtualSCSIController{ + SharedBus: types.VirtualSCSISharingNoSharing, + VirtualController: types.VirtualController{ + BusNumber: 0, + VirtualDevice: types.VirtualDevice{ + Key: 1000, + }, + }, + }, + }, + }, + }, + } + + task, err := vmdisk.vmOptions.VMFolder.CreateVM(ctx, virtualMachineConfigSpec, vmdisk.vmOptions.VMResourcePool, nil) + if err != nil { + glog.Errorf("Failed to create VM. err: %+v", err) + return nil, err + } + + dummyVMTaskInfo, err := task.WaitForResult(ctx, nil) + if err != nil { + glog.Errorf("Error occurred while waiting for create VM task result. err: %+v", err) + return nil, err + } + + vmRef := dummyVMTaskInfo.Result.(object.Reference) + dummyVM := object.NewVirtualMachine(datacenter.Client(), vmRef.Reference()) + return &vclib.VirtualMachine{VirtualMachine: dummyVM, Datacenter: datacenter}, nil +} + +// CleanUpDummyVMs deletes stale dummyVM's +func CleanUpDummyVMs(ctx context.Context, folder *vclib.Folder, dc *vclib.Datacenter) error { + vmList, err := folder.GetVirtualMachines(ctx) + if err != nil { + glog.V(4).Infof("Failed to get virtual machines in the kubernetes cluster: %s, err: %+v", folder.InventoryPath, err) + return err + } + if vmList == nil || len(vmList) == 0 { + glog.Errorf("No virtual machines found in the kubernetes cluster: %s", folder.InventoryPath) + return fmt.Errorf("No virtual machines found in the kubernetes cluster: %s", folder.InventoryPath) + } + var dummyVMList []*vclib.VirtualMachine + // Loop through VM's in the Kubernetes cluster to find dummy VM's + for _, vm := range vmList { + vmName, err := vm.ObjectName(ctx) + if err != nil { + glog.V(4).Infof("Unable to get name from VM with err: %+v", err) + continue + } + if strings.HasPrefix(vmName, vclib.DummyVMPrefixName) { + vmObj := vclib.VirtualMachine{VirtualMachine: object.NewVirtualMachine(dc.Client(), vm.Reference()), Datacenter: dc} + dummyVMList = append(dummyVMList, &vmObj) + } + } + for _, vm := range dummyVMList { + err = vm.DeleteVM(ctx) + if err != nil { + glog.V(4).Infof("Unable to delete dummy VM with err: %+v", err) + continue + } + } + return nil +} + +func isAlreadyExists(path string, err error) bool { + errorMessage := fmt.Sprintf("Cannot complete the operation because the file or folder %s already exists", path) + if errorMessage == err.Error() { + return true + } + return false +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/folder.go b/pkg/cloudprovider/providers/vsphere/vclib/folder.go new file mode 100644 index 00000000000..35294b5d4a5 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/folder.go @@ -0,0 +1,46 @@ +/* +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 vclib + +import ( + "github.com/golang/glog" + "github.com/vmware/govmomi/object" + "golang.org/x/net/context" +) + +// Folder extends the govmomi Folder object +type Folder struct { + *object.Folder + Datacenter *Datacenter +} + +// GetVirtualMachines returns list of VirtualMachine inside a folder. +func (folder *Folder) GetVirtualMachines(ctx context.Context) ([]*VirtualMachine, error) { + vmFolders, err := folder.Children(ctx) + if err != nil { + glog.Errorf("Failed to get children from Folder: %s. err: %+v", folder.InventoryPath, err) + return nil, err + } + var vmObjList []*VirtualMachine + for _, vmFolder := range vmFolders { + if vmFolder.Reference().Type == VirtualMachineType { + vmObj := VirtualMachine{object.NewVirtualMachine(folder.Client(), vmFolder.Reference()), folder.Datacenter} + vmObjList = append(vmObjList, &vmObj) + } + } + return vmObjList, nil +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/pbm.go b/pkg/cloudprovider/providers/vsphere/vclib/pbm.go new file mode 100644 index 00000000000..df749fb8966 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/pbm.go @@ -0,0 +1,169 @@ +/* +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 vclib + +import ( + "fmt" + + "github.com/golang/glog" + "github.com/vmware/govmomi/pbm" + "golang.org/x/net/context" + + pbmtypes "github.com/vmware/govmomi/pbm/types" + "github.com/vmware/govmomi/vim25" +) + +// PbmClient is extending govmomi pbm, and provides functions to get compatible list of datastore for given policy +type PbmClient struct { + *pbm.Client +} + +// NewPbmClient returns a new PBM Client object +func NewPbmClient(ctx context.Context, client *vim25.Client) (*PbmClient, error) { + pbmClient, err := pbm.NewClient(ctx, client) + if err != nil { + glog.Errorf("Failed to create new Pbm Client. err: %+v", err) + return nil, err + } + return &PbmClient{pbmClient}, nil +} + +// IsDatastoreCompatible check if the datastores is compatible for given storage policy id +// if datastore is not compatible with policy, fault message with the Datastore Name is returned +func (pbmClient *PbmClient) IsDatastoreCompatible(ctx context.Context, storagePolicyID string, datastore *Datastore) (bool, string, error) { + faultMessage := "" + placementHub := pbmtypes.PbmPlacementHub{ + HubType: datastore.Reference().Type, + HubId: datastore.Reference().Value, + } + hubs := []pbmtypes.PbmPlacementHub{placementHub} + req := []pbmtypes.BasePbmPlacementRequirement{ + &pbmtypes.PbmPlacementCapabilityProfileRequirement{ + ProfileId: pbmtypes.PbmProfileId{ + UniqueId: storagePolicyID, + }, + }, + } + compatibilityResult, err := pbmClient.CheckRequirements(ctx, hubs, nil, req) + if err != nil { + glog.Errorf("Error occurred for CheckRequirements call. err %+v", err) + return false, "", err + } + if compatibilityResult != nil && len(compatibilityResult) > 0 { + compatibleHubs := compatibilityResult.CompatibleDatastores() + if compatibleHubs != nil && len(compatibleHubs) > 0 { + return true, "", nil + } + dsName, err := datastore.ObjectName(ctx) + if err != nil { + glog.Errorf("Failed to get datastore ObjectName") + return false, "", err + } + if compatibilityResult[0].Error[0].LocalizedMessage == "" { + faultMessage = "Datastore: " + dsName + " is not compatible with the storage policy." + } else { + faultMessage = "Datastore: " + dsName + " is not compatible with the storage policy. LocalizedMessage: " + compatibilityResult[0].Error[0].LocalizedMessage + "\n" + } + return false, faultMessage, nil + } + return false, "", fmt.Errorf("compatibilityResult is nil or empty") +} + +// GetCompatibleDatastores filters and returns compatible list of datastores for given storage policy id +// For Non Compatible Datastores, fault message with the Datastore Name is also returned +func (pbmClient *PbmClient) GetCompatibleDatastores(ctx context.Context, storagePolicyID string, datastores []*Datastore) ([]*Datastore, string, error) { + var ( + dsMorNameMap = getDsMorNameMap(ctx, datastores) + localizedMessagesForNotCompatibleDatastores = "" + ) + compatibilityResult, err := pbmClient.GetPlacementCompatibilityResult(ctx, storagePolicyID, datastores) + if err != nil { + glog.Errorf("Error occurred while retrieving placement compatibility result for datastores: %+v with storagePolicyID: %s. err: %+v", datastores, storagePolicyID, err) + return nil, "", err + } + compatibleHubs := compatibilityResult.CompatibleDatastores() + var compatibleDatastoreList []*Datastore + for _, hub := range compatibleHubs { + compatibleDatastoreList = append(compatibleDatastoreList, getDatastoreFromPlacementHub(datastores, hub)) + } + for _, res := range compatibilityResult { + for _, err := range res.Error { + dsName := dsMorNameMap[res.Hub.HubId] + localizedMessage := "" + if err.LocalizedMessage != "" { + localizedMessage = "Datastore: " + dsName + " not compatible with the storage policy. LocalizedMessage: " + err.LocalizedMessage + "\n" + } else { + localizedMessage = "Datastore: " + dsName + " not compatible with the storage policy. \n" + } + localizedMessagesForNotCompatibleDatastores += localizedMessage + } + } + // Return an error if there are no compatible datastores. + if len(compatibleHubs) < 1 { + glog.Errorf("No compatible datastores found that satisfy the storage policy requirements: %s", storagePolicyID) + return nil, localizedMessagesForNotCompatibleDatastores, fmt.Errorf("No compatible datastores found that satisfy the storage policy requirements") + } + return compatibleDatastoreList, localizedMessagesForNotCompatibleDatastores, nil +} + +// GetPlacementCompatibilityResult gets placement compatibility result based on storage policy requirements. +func (pbmClient *PbmClient) GetPlacementCompatibilityResult(ctx context.Context, storagePolicyID string, datastore []*Datastore) (pbm.PlacementCompatibilityResult, error) { + var hubs []pbmtypes.PbmPlacementHub + for _, ds := range datastore { + hubs = append(hubs, pbmtypes.PbmPlacementHub{ + HubType: ds.Reference().Type, + HubId: ds.Reference().Value, + }) + } + req := []pbmtypes.BasePbmPlacementRequirement{ + &pbmtypes.PbmPlacementCapabilityProfileRequirement{ + ProfileId: pbmtypes.PbmProfileId{ + UniqueId: storagePolicyID, + }, + }, + } + res, err := pbmClient.CheckRequirements(ctx, hubs, nil, req) + if err != nil { + glog.Errorf("Error occurred for CheckRequirements call. err: %+v", err) + return nil, err + } + return res, nil +} + +// getDataStoreForPlacementHub returns matching datastore associated with given pbmPlacementHub +func getDatastoreFromPlacementHub(datastore []*Datastore, pbmPlacementHub pbmtypes.PbmPlacementHub) *Datastore { + for _, ds := range datastore { + if ds.Reference().Type == pbmPlacementHub.HubType && ds.Reference().Value == pbmPlacementHub.HubId { + return ds + } + } + return nil +} + +// getDsMorNameMap returns map of ds Mor and Datastore Object Name +func getDsMorNameMap(ctx context.Context, datastores []*Datastore) map[string]string { + dsMorNameMap := make(map[string]string) + for _, ds := range datastores { + dsObjectName, err := ds.ObjectName(ctx) + if err == nil { + dsMorNameMap[ds.Reference().Value] = dsObjectName + } else { + glog.Errorf("Error occurred while getting datastore object name. err: %+v", err) + } + } + return dsMorNameMap +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/utils.go b/pkg/cloudprovider/providers/vsphere/vclib/utils.go new file mode 100644 index 00000000000..8b80b4a4482 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/utils.go @@ -0,0 +1,117 @@ +/* +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 vclib + +import ( + "fmt" + "path/filepath" + "regexp" + "strings" + + "github.com/vmware/govmomi/find" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/types" +) + +func getFinder(dc *Datacenter) *find.Finder { + finder := find.NewFinder(dc.Client(), true) + finder.SetDatacenter(dc.Datacenter) + return finder +} + +// formatVirtualDiskUUID removes any spaces and hyphens in UUID +// Example UUID input is 42375390-71f9-43a3-a770-56803bcd7baa and output after format is 4237539071f943a3a77056803bcd7baa +func formatVirtualDiskUUID(uuid string) string { + uuidwithNoSpace := strings.Replace(uuid, " ", "", -1) + uuidWithNoHypens := strings.Replace(uuidwithNoSpace, "-", "", -1) + return strings.ToLower(uuidWithNoHypens) +} + +// getSCSIControllersOfType filters specific type of Controller device from given list of Virtual Machine Devices +func getSCSIControllersOfType(vmDevices object.VirtualDeviceList, scsiType string) []*types.VirtualController { + // get virtual scsi controllers of passed argument type + var scsiControllers []*types.VirtualController + for _, device := range vmDevices { + devType := vmDevices.Type(device) + if devType == scsiType { + if c, ok := device.(types.BaseVirtualController); ok { + scsiControllers = append(scsiControllers, c.GetVirtualController()) + } + } + } + return scsiControllers +} + +// getAvailableSCSIController gets available SCSI Controller from list of given controllers, which has less than 15 disk devices. +func getAvailableSCSIController(scsiControllers []*types.VirtualController) *types.VirtualController { + // get SCSI controller which has space for adding more devices + for _, controller := range scsiControllers { + if len(controller.Device) < SCSIControllerDeviceLimit { + return controller + } + } + return nil +} + +// getNextUnitNumber gets the next available SCSI controller unit number from given list of Controller Device List +func getNextUnitNumber(devices object.VirtualDeviceList, c types.BaseVirtualController) (int32, error) { + var takenUnitNumbers [SCSIDeviceSlots]bool + takenUnitNumbers[SCSIReservedSlot] = true + key := c.GetVirtualController().Key + + for _, device := range devices { + d := device.GetVirtualDevice() + if d.ControllerKey == key { + if d.UnitNumber != nil { + takenUnitNumbers[*d.UnitNumber] = true + } + } + } + for unitNumber, takenUnitNumber := range takenUnitNumbers { + if !takenUnitNumber { + return int32(unitNumber), nil + } + } + return -1, fmt.Errorf("SCSI Controller with key=%d does not have any available slots", key) +} + +// getSCSIControllers filters and return list of Controller Devices from given list of Virtual Machine Devices. +func getSCSIControllers(vmDevices object.VirtualDeviceList) []*types.VirtualController { + // get all virtual scsi controllers + var scsiControllers []*types.VirtualController + for _, device := range vmDevices { + devType := vmDevices.Type(device) + switch devType { + case SCSIControllerType, strings.ToLower(LSILogicControllerType), strings.ToLower(BusLogicControllerType), PVSCSIControllerType, strings.ToLower(LSILogicSASControllerType): + if c, ok := device.(types.BaseVirtualController); ok { + scsiControllers = append(scsiControllers, c.GetVirtualController()) + } + } + } + return scsiControllers +} + +// RemoveClusterFromVDiskPath removes the cluster or folder path from the vDiskPath +// for vDiskPath [DatastoreCluster/sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk, return value is [sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk +// for vDiskPath [sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk, return value remains same [sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk +func RemoveClusterFromVDiskPath(vDiskPath string) string { + datastore := regexp.MustCompile("\\[(.*?)\\]").FindStringSubmatch(vDiskPath)[1] + if filepath.Base(datastore) != datastore { + vDiskPath = strings.Replace(vDiskPath, datastore, filepath.Base(datastore), 1) + } + return vDiskPath +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/virtualmachine.go b/pkg/cloudprovider/providers/vsphere/vclib/virtualmachine.go new file mode 100644 index 00000000000..aed47f3c566 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/virtualmachine.go @@ -0,0 +1,368 @@ +/* +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 vclib + +import ( + "context" + "fmt" + "path/filepath" + "time" + + "github.com/golang/glog" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25/mo" + "github.com/vmware/govmomi/vim25/types" +) + +// VirtualMachine extends the govmomi VirtualMachine object +type VirtualMachine struct { + *object.VirtualMachine + Datacenter *Datacenter +} + +// IsDiskAttached checks if disk is attached to the VM. +func (vm *VirtualMachine) IsDiskAttached(ctx context.Context, diskPath string) (bool, error) { + device, err := vm.getVirtualDeviceByPath(ctx, diskPath) + if err != nil { + return false, err + } + if device != nil { + return true, nil + } + return false, nil +} + +// GetVirtualDiskPage83Data gets the virtual disk UUID by diskPath +func (vm *VirtualMachine) GetVirtualDiskPage83Data(ctx context.Context, diskPath string) (string, error) { + if len(diskPath) > 0 && filepath.Ext(diskPath) != ".vmdk" { + diskPath += ".vmdk" + } + vdm := object.NewVirtualDiskManager(vm.Client()) + // Returns uuid of vmdk virtual disk + diskUUID, err := vdm.QueryVirtualDiskUuid(ctx, diskPath, vm.Datacenter.Datacenter) + + if err != nil { + glog.Errorf("QueryVirtualDiskUuid failed for diskPath: %q on VM: %q. err: %+v", diskPath, vm.InventoryPath, err) + return "", ErrNoDiskUUIDFound + } + diskUUID = formatVirtualDiskUUID(diskUUID) + return diskUUID, nil +} + +// DeleteVM deletes the VM. +func (vm *VirtualMachine) DeleteVM(ctx context.Context) error { + destroyTask, err := vm.Destroy(ctx) + if err != nil { + glog.Errorf("Failed to delete the VM: %q. err: %+v", vm.InventoryPath, err) + return err + } + return destroyTask.Wait(ctx) +} + +// AttachDisk attaches the disk at location - vmDiskPath from Datastore - dsObj to the Virtual Machine +// Additionally the disk can be configured with SPBM policy if volumeOptions.StoragePolicyID is non-empty. +func (vm *VirtualMachine) AttachDisk(ctx context.Context, vmDiskPath string, volumeOptions *VolumeOptions) (string, error) { + // Check if the diskControllerType is valid + if !CheckControllerSupported(volumeOptions.SCSIControllerType) { + return "", fmt.Errorf("Not a valid SCSI Controller Type. Valid options are %q", SCSIControllerTypeValidOptions()) + } + vmDiskPathCopy := vmDiskPath + vmDiskPath = RemoveClusterFromVDiskPath(vmDiskPath) + attached, err := vm.IsDiskAttached(ctx, vmDiskPath) + if err != nil { + glog.Errorf("Error occurred while checking if disk is attached on VM: %q. vmDiskPath: %q, err: %+v", vm.InventoryPath, vmDiskPath, err) + return "", err + } + // If disk is already attached, return the disk UUID + if attached { + diskUUID, _ := vm.GetVirtualDiskPage83Data(ctx, vmDiskPath) + return diskUUID, nil + } + + dsObj, err := vm.Datacenter.GetDatastoreByPath(ctx, vmDiskPathCopy) + if err != nil { + glog.Errorf("Failed to get datastore from vmDiskPath: %q. err: %+v", vmDiskPath, err) + return "", err + } + // If disk is not attached, create a disk spec for disk to be attached to the VM. + disk, newSCSIController, err := vm.CreateDiskSpec(ctx, vmDiskPath, dsObj, volumeOptions) + if err != nil { + glog.Errorf("Error occurred while creating disk spec. err: %+v", err) + return "", err + } + vmDevices, err := vm.Device(ctx) + if err != nil { + glog.Errorf("Failed to retrieve VM devices for VM: %q. err: %+v", vm.InventoryPath, err) + return "", err + } + virtualMachineConfigSpec := types.VirtualMachineConfigSpec{} + deviceConfigSpec := &types.VirtualDeviceConfigSpec{ + Device: disk, + Operation: types.VirtualDeviceConfigSpecOperationAdd, + } + // Configure the disk with the SPBM profile only if ProfileID is not empty. + if volumeOptions.StoragePolicyID != "" { + profileSpec := &types.VirtualMachineDefinedProfileSpec{ + ProfileId: volumeOptions.StoragePolicyID, + } + deviceConfigSpec.Profile = append(deviceConfigSpec.Profile, profileSpec) + } + virtualMachineConfigSpec.DeviceChange = append(virtualMachineConfigSpec.DeviceChange, deviceConfigSpec) + requestTime := time.Now() + task, err := vm.Reconfigure(ctx, virtualMachineConfigSpec) + if err != nil { + RecordvSphereMetric(APIAttachVolume, requestTime, err) + glog.Errorf("Failed to attach the disk with storagePolicy: %q on VM: %q. err - %+v", volumeOptions.StoragePolicyID, vm.InventoryPath, err) + if newSCSIController != nil { + vm.deleteController(ctx, newSCSIController, vmDevices) + } + return "", err + } + err = task.Wait(ctx) + RecordvSphereMetric(APIAttachVolume, requestTime, err) + if err != nil { + glog.Errorf("Failed to attach the disk with storagePolicy: %+q on VM: %q. err - %+v", volumeOptions.StoragePolicyID, vm.InventoryPath, err) + if newSCSIController != nil { + vm.deleteController(ctx, newSCSIController, vmDevices) + } + return "", err + } + + // Once disk is attached, get the disk UUID. + diskUUID, err := vm.GetVirtualDiskPage83Data(ctx, vmDiskPath) + if err != nil { + glog.Errorf("Error occurred while getting Disk Info from VM: %q. err: %v", vm.InventoryPath, err) + vm.DetachDisk(ctx, vmDiskPath) + if newSCSIController != nil { + vm.deleteController(ctx, newSCSIController, vmDevices) + } + return "", err + } + return diskUUID, nil +} + +// DetachDisk detaches the disk specified by vmDiskPath +func (vm *VirtualMachine) DetachDisk(ctx context.Context, vmDiskPath string) error { + vmDiskPath = RemoveClusterFromVDiskPath(vmDiskPath) + device, err := vm.getVirtualDeviceByPath(ctx, vmDiskPath) + if err != nil { + glog.Errorf("Disk ID not found for VM: %q with diskPath: %q", vm.InventoryPath, vmDiskPath) + return err + } + if device == nil { + glog.Errorf("No virtual device found with diskPath: %q on VM: %q", vmDiskPath, vm.InventoryPath) + return fmt.Errorf("No virtual device found with diskPath: %q on VM: %q", vmDiskPath, vm.InventoryPath) + } + // Detach disk from VM + requestTime := time.Now() + err = vm.RemoveDevice(ctx, true, device) + RecordvSphereMetric(APIDetachVolume, requestTime, err) + if err != nil { + glog.Errorf("Error occurred while removing disk device for VM: %q. err: %v", vm.InventoryPath, err) + return err + } + return nil +} + +// GetResourcePool gets the resource pool for VM. +func (vm *VirtualMachine) GetResourcePool(ctx context.Context) (*object.ResourcePool, error) { + vmMoList, err := vm.Datacenter.GetVMMoList(ctx, []*VirtualMachine{vm}, []string{"resourcePool"}) + if err != nil { + glog.Errorf("Failed to get resource pool from VM: %q. err: %+v", vm.InventoryPath, err) + return nil, err + } + return object.NewResourcePool(vm.Client(), vmMoList[0].ResourcePool.Reference()), nil +} + +// Exists checks if the VM exists. +// Returns false if VM doesn't exist or VM is in powerOff state. +func (vm *VirtualMachine) Exists(ctx context.Context) (bool, error) { + vmMoList, err := vm.Datacenter.GetVMMoList(ctx, []*VirtualMachine{vm}, []string{"summary"}) + if err != nil { + glog.Errorf("Failed to get VM Managed object with property summary. err: +%v", err) + return false, err + } + if vmMoList[0].Summary.Runtime.PowerState == ActivePowerState { + return true, nil + } + if vmMoList[0].Summary.Config.Template == false { + glog.Warningf("VM is not in %s state", ActivePowerState) + } else { + glog.Warningf("VM is a template") + } + return false, nil +} + +// GetAllAccessibleDatastores gets the list of accessible Datastores for the given Virtual Machine +func (vm *VirtualMachine) GetAllAccessibleDatastores(ctx context.Context) ([]*Datastore, error) { + host, err := vm.HostSystem(ctx) + if err != nil { + glog.Errorf("Failed to get host system for VM: %q. err: %+v", vm.InventoryPath, err) + return nil, err + } + var hostSystemMo mo.HostSystem + s := object.NewSearchIndex(vm.Client()) + err = s.Properties(ctx, host.Reference(), []string{DatastoreProperty}, &hostSystemMo) + if err != nil { + glog.Errorf("Failed to retrieve datastores for host: %+v. err: %+v", host, err) + return nil, err + } + var dsObjList []*Datastore + for _, dsRef := range hostSystemMo.Datastore { + dsObjList = append(dsObjList, &Datastore{object.NewDatastore(vm.Client(), dsRef), vm.Datacenter}) + } + return dsObjList, nil +} + +// CreateDiskSpec creates a disk spec for disk +func (vm *VirtualMachine) CreateDiskSpec(ctx context.Context, diskPath string, dsObj *Datastore, volumeOptions *VolumeOptions) (*types.VirtualDisk, types.BaseVirtualDevice, error) { + var newSCSIController types.BaseVirtualDevice + vmDevices, err := vm.Device(ctx) + if err != nil { + glog.Errorf("Failed to retrieve VM devices. err: %+v", err) + return nil, nil, err + } + // find SCSI controller of particular type from VM devices + scsiControllersOfRequiredType := getSCSIControllersOfType(vmDevices, volumeOptions.SCSIControllerType) + scsiController := getAvailableSCSIController(scsiControllersOfRequiredType) + if scsiController == nil { + newSCSIController, err = vm.createAndAttachSCSIController(ctx, volumeOptions.SCSIControllerType) + if err != nil { + glog.Errorf("Failed to create SCSI controller for VM :%q with err: %+v", vm.InventoryPath, err) + return nil, nil, err + } + // Get VM device list + vmDevices, err := vm.Device(ctx) + if err != nil { + glog.Errorf("Failed to retrieve VM devices. err: %v", err) + return nil, nil, err + } + // verify scsi controller in virtual machine + scsiControllersOfRequiredType := getSCSIControllersOfType(vmDevices, volumeOptions.SCSIControllerType) + scsiController = getAvailableSCSIController(scsiControllersOfRequiredType) + if scsiController == nil { + glog.Errorf("Cannot find SCSI controller of type: %q in VM", volumeOptions.SCSIControllerType) + // attempt clean up of scsi controller + vm.deleteController(ctx, newSCSIController, vmDevices) + return nil, nil, fmt.Errorf("Cannot find SCSI controller of type: %q in VM", volumeOptions.SCSIControllerType) + } + } + disk := vmDevices.CreateDisk(scsiController, dsObj.Reference(), diskPath) + unitNumber, err := getNextUnitNumber(vmDevices, scsiController) + if err != nil { + glog.Errorf("Cannot attach disk to VM, unitNumber limit reached - %+v.", err) + return nil, nil, err + } + *disk.UnitNumber = unitNumber + backing := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo) + backing.DiskMode = string(types.VirtualDiskModeIndependent_persistent) + + if volumeOptions.CapacityKB != 0 { + disk.CapacityInKB = int64(volumeOptions.CapacityKB) + } + if volumeOptions.DiskFormat != "" { + var diskFormat string + diskFormat = DiskFormatValidType[volumeOptions.DiskFormat] + switch diskFormat { + case ThinDiskType: + backing.ThinProvisioned = types.NewBool(true) + case EagerZeroedThickDiskType: + backing.EagerlyScrub = types.NewBool(true) + default: + backing.ThinProvisioned = types.NewBool(false) + } + } + return disk, newSCSIController, nil +} + +// createAndAttachSCSIController creates and attachs the SCSI controller to the VM. +func (vm *VirtualMachine) createAndAttachSCSIController(ctx context.Context, diskControllerType string) (types.BaseVirtualDevice, error) { + // Get VM device list + vmDevices, err := vm.Device(ctx) + if err != nil { + glog.Errorf("Failed to retrieve VM devices for VM: %q. err: %+v", vm.InventoryPath, err) + return nil, err + } + allSCSIControllers := getSCSIControllers(vmDevices) + if len(allSCSIControllers) >= SCSIControllerLimit { + // we reached the maximum number of controllers we can attach + glog.Errorf("SCSI Controller Limit of %d has been reached, cannot create another SCSI controller", SCSIControllerLimit) + return nil, fmt.Errorf("SCSI Controller Limit of %d has been reached, cannot create another SCSI controller", SCSIControllerLimit) + } + newSCSIController, err := vmDevices.CreateSCSIController(diskControllerType) + if err != nil { + glog.Errorf("Failed to create new SCSI controller on VM: %q. err: %+v", vm.InventoryPath, err) + return nil, err + } + configNewSCSIController := newSCSIController.(types.BaseVirtualSCSIController).GetVirtualSCSIController() + hotAndRemove := true + configNewSCSIController.HotAddRemove = &hotAndRemove + configNewSCSIController.SharedBus = types.VirtualSCSISharing(types.VirtualSCSISharingNoSharing) + + // add the scsi controller to virtual machine + err = vm.AddDevice(context.TODO(), newSCSIController) + if err != nil { + glog.V(LogLevel).Infof("Cannot add SCSI controller to VM: %q. err: %+v", vm.InventoryPath, err) + // attempt clean up of scsi controller + vm.deleteController(ctx, newSCSIController, vmDevices) + return nil, err + } + return newSCSIController, nil +} + +// getVirtualDeviceByPath gets the virtual device by path +func (vm *VirtualMachine) getVirtualDeviceByPath(ctx context.Context, diskPath string) (types.BaseVirtualDevice, error) { + var diskUUID string + vmDevices, err := vm.Device(ctx) + if err != nil { + glog.Errorf("Failed to get the devices for VM: %q. err: %+v", vm.InventoryPath, err) + return nil, err + } + volumeUUID, err := vm.GetVirtualDiskPage83Data(ctx, diskPath) + if err != nil { + glog.Errorf("Failed to get disk UUID for path: %q on VM: %q. err: %+v", diskPath, vm.InventoryPath, err) + return nil, err + } + // filter vm devices to retrieve device for the given vmdk file identified by disk path + for _, device := range vmDevices { + if vmDevices.TypeName(device) == "VirtualDisk" { + virtualDevice := device.GetVirtualDevice() + if backing, ok := virtualDevice.Backing.(*types.VirtualDiskFlatVer2BackingInfo); ok { + diskUUID = formatVirtualDiskUUID(backing.Uuid) + if diskUUID == volumeUUID { + return device, nil + } + } + } + } + return nil, nil +} + +// deleteController removes latest added SCSI controller from VM. +func (vm *VirtualMachine) deleteController(ctx context.Context, controllerDevice types.BaseVirtualDevice, vmDevices object.VirtualDeviceList) error { + controllerDeviceList := vmDevices.SelectByType(controllerDevice) + if len(controllerDeviceList) < 1 { + return ErrNoDevicesFound + } + device := controllerDeviceList[len(controllerDeviceList)-1] + err := vm.RemoveDevice(ctx, true, device) + if err != nil { + glog.Errorf("Error occurred while removing device on VM: %q. err: %+v", vm.InventoryPath, err) + return err + } + return nil +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/vmoptions.go b/pkg/cloudprovider/providers/vsphere/vclib/vmoptions.go new file mode 100644 index 00000000000..2648d85e22a --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/vmoptions.go @@ -0,0 +1,27 @@ +/* +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 vclib + +import ( + "github.com/vmware/govmomi/object" +) + +// VMOptions provides helper objects for provisioning volume with SPBM Policy +type VMOptions struct { + VMFolder *Folder + VMResourcePool *object.ResourcePool +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/volumeoptions.go b/pkg/cloudprovider/providers/vsphere/vclib/volumeoptions.go new file mode 100644 index 00000000000..75dadb437ee --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/volumeoptions.go @@ -0,0 +1,107 @@ +/* +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 vclib + +import ( + "strings" + + "github.com/golang/glog" +) + +// VolumeOptions specifies various options for a volume. +type VolumeOptions struct { + CapacityKB int + Tags map[string]string + Name string + DiskFormat string + Datastore string + VSANStorageProfileData string + StoragePolicyName string + StoragePolicyID string + SCSIControllerType string +} + +var ( + // DiskFormatValidType specifies the valid disk formats + DiskFormatValidType = map[string]string{ + ThinDiskType: ThinDiskType, + strings.ToLower(EagerZeroedThickDiskType): EagerZeroedThickDiskType, + strings.ToLower(ZeroedThickDiskType): PreallocatedDiskType, + } + // SCSIControllerValidType specifies the supported SCSI controllers + SCSIControllerValidType = []string{LSILogicControllerType, LSILogicSASControllerType, PVSCSIControllerType} +) + +// DiskformatValidOptions generates Valid Options for Diskformat +func DiskformatValidOptions() string { + validopts := "" + for diskformat := range DiskFormatValidType { + validopts += diskformat + ", " + } + validopts = strings.TrimSuffix(validopts, ", ") + return validopts +} + +// CheckDiskFormatSupported checks if the diskFormat is valid +func CheckDiskFormatSupported(diskFormat string) bool { + if DiskFormatValidType[diskFormat] == "" { + glog.Errorf("Not a valid Disk Format. Valid options are %+q", DiskformatValidOptions()) + return false + } + return true +} + +// SCSIControllerTypeValidOptions generates valid options for SCSIControllerType +func SCSIControllerTypeValidOptions() string { + validopts := "" + for _, controllerType := range SCSIControllerValidType { + validopts += (controllerType + ", ") + } + validopts = strings.TrimSuffix(validopts, ", ") + return validopts +} + +// CheckControllerSupported checks if the given controller type is valid +func CheckControllerSupported(ctrlType string) bool { + for _, c := range SCSIControllerValidType { + if ctrlType == c { + return true + } + } + glog.Errorf("Not a valid SCSI Controller Type. Valid options are %q", SCSIControllerTypeValidOptions()) + return false +} + +// VerifyVolumeOptions checks if volumeOptions.SCIControllerType is valid controller type +func (volumeOptions VolumeOptions) VerifyVolumeOptions() bool { + // Validate only if SCSIControllerType is set by user. + // Default value is set later in virtualDiskManager.Create and vmDiskManager.Create + if volumeOptions.SCSIControllerType != "" { + isValid := CheckControllerSupported(volumeOptions.SCSIControllerType) + if !isValid { + return false + } + } + // ThinDiskType is the default, so skip the validation. + if volumeOptions.DiskFormat != ThinDiskType { + isValid := CheckDiskFormatSupported(volumeOptions.DiskFormat) + if !isValid { + return false + } + } + return true +} diff --git a/pkg/cloudprovider/providers/vsphere/vclib/vsphere_metrics.go b/pkg/cloudprovider/providers/vsphere/vclib/vsphere_metrics.go new file mode 100644 index 00000000000..ab5b45f87f9 --- /dev/null +++ b/pkg/cloudprovider/providers/vsphere/vclib/vsphere_metrics.go @@ -0,0 +1,133 @@ +/* +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. +*/ + +package vclib + +import ( + "time" + + "github.com/prometheus/client_golang/prometheus" +) + +// Cloud Provider API constants +const ( + APICreateVolume = "CreateVolume" + APIDeleteVolume = "DeleteVolume" + APIAttachVolume = "AttachVolume" + APIDetachVolume = "DetachVolume" +) + +// Cloud Provider Operation constants +const ( + OperationDeleteVolume = "DeleteVolumeOperation" + OperationAttachVolume = "AttachVolumeOperation" + OperationDetachVolume = "DetachVolumeOperation" + OperationDiskIsAttached = "DiskIsAttachedOperation" + OperationDisksAreAttached = "DisksAreAttachedOperation" + OperationCreateVolume = "CreateVolumeOperation" + OperationCreateVolumeWithPolicy = "CreateVolumeWithPolicyOperation" + OperationCreateVolumeWithRawVSANPolicy = "CreateVolumeWithRawVSANPolicyOperation" +) + +// vsphereAPIMetric is for recording latency of Single API Call. +var vsphereAPIMetric = prometheus.NewHistogramVec( + prometheus.HistogramOpts{ + Name: "cloudprovider_vsphere_api_request_duration_seconds", + Help: "Latency of vsphere api call", + }, + []string{"request"}, +) + +var vsphereAPIErrorMetric = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Name: "cloudprovider_vsphere_api_request_errors", + Help: "vsphere Api errors", + }, + []string{"request"}, +) + +// vsphereOperationMetric is for recording latency of vSphere Operation which invokes multiple APIs to get the task done. +var vsphereOperationMetric = prometheus.NewHistogramVec( + prometheus.HistogramOpts{ + Name: "cloudprovider_vsphere_operation_duration_seconds", + Help: "Latency of vsphere operation call", + }, + []string{"operation"}, +) + +var vsphereOperationErrorMetric = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Name: "cloudprovider_vsphere_operation_errors", + Help: "vsphere operation errors", + }, + []string{"operation"}, +) + +// RegisterMetrics registers all the API and Operation metrics +func RegisterMetrics() { + prometheus.MustRegister(vsphereAPIMetric) + prometheus.MustRegister(vsphereAPIErrorMetric) + prometheus.MustRegister(vsphereOperationMetric) + prometheus.MustRegister(vsphereOperationErrorMetric) +} + +// RecordvSphereMetric records the vSphere API and Operation metrics +func RecordvSphereMetric(actionName string, requestTime time.Time, err error) { + switch actionName { + case APICreateVolume, APIDeleteVolume, APIAttachVolume, APIDetachVolume: + recordvSphereAPIMetric(actionName, requestTime, err) + default: + recordvSphereOperationMetric(actionName, requestTime, err) + } +} + +func recordvSphereAPIMetric(actionName string, requestTime time.Time, err error) { + if err != nil { + vsphereAPIErrorMetric.With(prometheus.Labels{"request": actionName}).Inc() + } else { + vsphereAPIMetric.With(prometheus.Labels{"request": actionName}).Observe(calculateTimeTaken(requestTime)) + } +} + +func recordvSphereOperationMetric(actionName string, requestTime time.Time, err error) { + if err != nil { + vsphereOperationErrorMetric.With(prometheus.Labels{"operation": actionName}).Inc() + } else { + vsphereOperationMetric.With(prometheus.Labels{"operation": actionName}).Observe(calculateTimeTaken(requestTime)) + } +} + +// RecordCreateVolumeMetric records the Create Volume metric +func RecordCreateVolumeMetric(volumeOptions *VolumeOptions, requestTime time.Time, err error) { + var actionName string + if volumeOptions.StoragePolicyName != "" { + actionName = OperationCreateVolumeWithPolicy + } else if volumeOptions.VSANStorageProfileData != "" { + actionName = OperationCreateVolumeWithRawVSANPolicy + } else { + actionName = OperationCreateVolume + } + RecordvSphereMetric(actionName, requestTime, err) +} + +func calculateTimeTaken(requestBeginTime time.Time) (timeTaken float64) { + if !requestBeginTime.IsZero() { + timeTaken = time.Since(requestBeginTime).Seconds() + } else { + timeTaken = 0 + } + return timeTaken +} From f4e39933f69816822271288daab5ef7596efb122 Mon Sep 17 00:00:00 2001 From: Balu Dontu Date: Wed, 2 Aug 2017 08:05:23 -0700 Subject: [PATCH 030/183] vSphere Cloud Provider code refactoring --- pkg/cloudprovider/providers/vsphere/BUILD | 18 +- .../providers/vsphere/vsphere.go | 1698 +++-------------- .../providers/vsphere/vsphere_metrics.go | 127 -- .../providers/vsphere/vsphere_test.go | 56 +- .../providers/vsphere/vsphere_util.go | 374 ++-- pkg/volume/vsphere_volume/BUILD | 3 +- pkg/volume/vsphere_volume/attacher.go | 2 +- pkg/volume/vsphere_volume/attacher_test.go | 14 +- .../vsphere_volume/vsphere_volume_util.go | 6 +- 9 files changed, 470 insertions(+), 1828 deletions(-) delete mode 100644 pkg/cloudprovider/providers/vsphere/vsphere_metrics.go diff --git a/pkg/cloudprovider/providers/vsphere/BUILD b/pkg/cloudprovider/providers/vsphere/BUILD index 6b0e720f385..41f2d4bf37d 100644 --- a/pkg/cloudprovider/providers/vsphere/BUILD +++ b/pkg/cloudprovider/providers/vsphere/BUILD @@ -12,32 +12,24 @@ go_library( name = "go_default_library", srcs = [ "vsphere.go", - "vsphere_metrics.go", "vsphere_util.go", ], tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", + "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", + "//pkg/cloudprovider/providers/vsphere/vclib/diskmanagers:go_default_library", "//pkg/controller:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/vmware/govmomi:go_default_library", - "//vendor/github.com/vmware/govmomi/find:go_default_library", "//vendor/github.com/vmware/govmomi/object:go_default_library", - "//vendor/github.com/vmware/govmomi/pbm:go_default_library", - "//vendor/github.com/vmware/govmomi/pbm/types:go_default_library", - "//vendor/github.com/vmware/govmomi/property:go_default_library", - "//vendor/github.com/vmware/govmomi/session:go_default_library", "//vendor/github.com/vmware/govmomi/vim25:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", - "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", - "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/gopkg.in/gcfg.v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", ], ) @@ -48,6 +40,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", + "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library", @@ -63,6 +56,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//pkg/cloudprovider/providers/vsphere/vclib:all-srcs", + ], tags = ["automanaged"], ) diff --git a/pkg/cloudprovider/providers/vsphere/vsphere.go b/pkg/cloudprovider/providers/vsphere/vsphere.go index 91f8e3734b7..b1409ea3b28 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere.go @@ -20,12 +20,9 @@ import ( "errors" "fmt" "io" - "io/ioutil" "net" - "net/url" "path" "path/filepath" - "regexp" "runtime" "strings" "sync" @@ -34,96 +31,45 @@ import ( "gopkg.in/gcfg.v1" "github.com/golang/glog" - "github.com/vmware/govmomi" - "github.com/vmware/govmomi/find" - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/session" - "github.com/vmware/govmomi/vim25" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/soap" - "github.com/vmware/govmomi/vim25/types" "golang.org/x/net/context" - - pbm "github.com/vmware/govmomi/pbm" "k8s.io/api/core/v1" k8stypes "k8s.io/apimachinery/pkg/types" - k8runtime "k8s.io/apimachinery/pkg/util/runtime" v1helper "k8s.io/kubernetes/pkg/api/v1/helper" "k8s.io/kubernetes/pkg/cloudprovider" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers" "k8s.io/kubernetes/pkg/controller" ) +// VSphere Cloud Provider constants const ( - ProviderName = "vsphere" - ActivePowerState = "poweredOn" - SCSIControllerType = "scsi" - LSILogicControllerType = "lsiLogic" - BusLogicControllerType = "busLogic" - PVSCSIControllerType = "pvscsi" - LSILogicSASControllerType = "lsiLogic-sas" - SCSIControllerLimit = 4 - SCSIControllerDeviceLimit = 15 - SCSIDeviceSlots = 16 - SCSIReservedSlot = 7 - ThinDiskType = "thin" - PreallocatedDiskType = "preallocated" - EagerZeroedThickDiskType = "eagerZeroedThick" - ZeroedThickDiskType = "zeroedThick" - VolDir = "kubevols" - RoundTripperDefaultCount = 3 - DummyVMPrefixName = "vsphere-k8s" - VSANDatastoreType = "vsan" - MAC_OUI_VC = "00:50:56" - MAC_OUI_ESX = "00:0c:29" - DiskNotFoundErrMsg = "No vSphere disk ID found" - NoDiskUUIDFoundErrMsg = "No disk UUID found" - NoDevicesFoundErrMsg = "No devices found" - NonSupportedControllerTypeErrMsg = "Disk is attached to non-supported controller type" - FileAlreadyExistErrMsg = "File requested already exist" - CleanUpDummyVMRoutine_Interval = 5 - UUIDPath = "/sys/class/dmi/id/product_serial" - UUIDPrefix = "VMware-" - NameProperty = "name" + ProviderName = "vsphere" + VolDir = "kubevols" + RoundTripperDefaultCount = 3 + DummyVMPrefixName = "vsphere-k8s" + VSANDatastoreType = "vsan" + MacOuiVC = "00:50:56" + MacOuiEsx = "00:0c:29" + CleanUpDummyVMRoutineInterval = 5 + UUIDPath = "/sys/class/dmi/id/product_serial" + UUIDPrefix = "VMware-" ) -// Controller types that are currently supported for hot attach of disks -// lsilogic driver type is currently not supported because,when a device gets detached -// it fails to remove the device from the /dev path (which should be manually done) -// making the subsequent attaches to the node to fail. -// TODO: Add support for lsilogic driver type -var supportedSCSIControllerType = []string{strings.ToLower(LSILogicSASControllerType), PVSCSIControllerType} - -// Maps user options to API parameters. -// Keeping user options consistent with docker volume plugin for vSphere. -// API: http://pubs.vmware.com/vsphere-60/index.jsp#com.vmware.wssdk.apiref.doc/vim.VirtualDiskManager.VirtualDiskType.html -var diskFormatValidType = map[string]string{ - ThinDiskType: ThinDiskType, - strings.ToLower(EagerZeroedThickDiskType): EagerZeroedThickDiskType, - strings.ToLower(ZeroedThickDiskType): PreallocatedDiskType, -} - -var DiskformatValidOptions = generateDiskFormatValidOptions() var cleanUpRoutineInitialized = false -var ErrNoDiskUUIDFound = errors.New(NoDiskUUIDFoundErrMsg) -var ErrNoDiskIDFound = errors.New(DiskNotFoundErrMsg) -var ErrNoDevicesFound = errors.New(NoDevicesFoundErrMsg) -var ErrNonSupportedControllerType = errors.New(NonSupportedControllerTypeErrMsg) -var ErrFileAlreadyExist = errors.New(FileAlreadyExistErrMsg) - var clientLock sync.Mutex var cleanUpRoutineInitLock sync.Mutex var cleanUpDummyVMLock sync.RWMutex // VSphere is an implementation of cloud provider Interface for VSphere. type VSphere struct { - client *govmomi.Client - cfg *VSphereConfig + conn *vclib.VSphereConnection + cfg *VSphereConfig // InstanceID of the server where this VSphere object is instantiated. localInstanceID string } +// VSphereConfig information that is used by vSphere Cloud Provider to connect to VC type VSphereConfig struct { Global struct { // vCenter username. @@ -168,7 +114,7 @@ type VSphereConfig struct { type Volumes interface { // AttachDisk attaches given disk to given node. Current node // is used when nodeName is empty string. - AttachDisk(vmDiskPath string, storagePolicyID string, nodeName k8stypes.NodeName) (diskID string, diskUUID string, err error) + AttachDisk(vmDiskPath string, storagePolicyID string, nodeName k8stypes.NodeName) (diskUUID string, err error) // DetachDisk detaches given disk to given node. Current node // is used when nodeName is empty string. @@ -184,34 +130,12 @@ type Volumes interface { DisksAreAttached(volPath []string, nodeName k8stypes.NodeName) (map[string]bool, error) // CreateVolume creates a new vmdk with specified parameters. - CreateVolume(volumeOptions *VolumeOptions) (volumePath string, err error) + CreateVolume(volumeOptions *vclib.VolumeOptions) (volumePath string, err error) // DeleteVolume deletes vmdk. DeleteVolume(vmDiskPath string) error } -// VolumeOptions specifies capacity, tags, name and diskFormat for a volume. -type VolumeOptions struct { - CapacityKB int - Tags map[string]string - Name string - DiskFormat string - Datastore string - VSANStorageProfileData string - StoragePolicyName string - StoragePolicyID string -} - -// Generates Valid Options for Diskformat -func generateDiskFormatValidOptions() string { - validopts := "" - for diskformat := range diskFormatValidType { - validopts += (diskformat + ", ") - } - validopts = strings.TrimSuffix(validopts, ", ") - return validopts -} - // Parses vSphere cloud config file and stores it into VSphereConfig. func readConfig(config io.Reader) (VSphereConfig, error) { if config == nil { @@ -225,7 +149,7 @@ func readConfig(config io.Reader) (VSphereConfig, error) { } func init() { - registerMetrics() + vclib.RegisterMetrics() cloudprovider.RegisterCloudProvider(ProviderName, func(config io.Reader) (cloudprovider.Interface, error) { cfg, err := readConfig(config) if err != nil { @@ -238,96 +162,16 @@ func init() { // Initialize passes a Kubernetes clientBuilder interface to the cloud provider func (vs *VSphere) Initialize(clientBuilder controller.ControllerClientBuilder) {} -// UUID gets the BIOS UUID via the sys interface. This UUID is known by vsphere -func getvmUUID() (string, error) { - id, err := ioutil.ReadFile(UUIDPath) - if err != nil { - return "", fmt.Errorf("error retrieving vm uuid: %s", err) - } - uuidFromFile := string(id[:]) - //strip leading and trailing white space and new line char - uuid := strings.TrimSpace(uuidFromFile) - // check the uuid starts with "VMware-" - if !strings.HasPrefix(uuid, UUIDPrefix) { - return "", fmt.Errorf("Failed to match Prefix, UUID read from the file is %v", uuidFromFile) - } - // Strip the prefix and while spaces and - - uuid = strings.Replace(uuid[len(UUIDPrefix):(len(uuid))], " ", "", -1) - uuid = strings.Replace(uuid, "-", "", -1) - if len(uuid) != 32 { - return "", fmt.Errorf("Length check failed, UUID read from the file is %v", uuidFromFile) - } - // need to add dashes, e.g. "564d395e-d807-e18a-cb25-b79f65eb2b9f" - uuid = fmt.Sprintf("%s-%s-%s-%s-%s", uuid[0:8], uuid[8:12], uuid[12:16], uuid[16:20], uuid[20:32]) - return uuid, nil -} - -// Returns the name of the VM on which this code is running. -// Will attempt to determine the machine's name via it's UUID in this precedence order, failing if neither have a UUID: -// * cloud config value VMUUID -// * sysfs entry -func getVMName(client *govmomi.Client, cfg *VSphereConfig) (string, error) { - var vmUUID string - var err error - - if cfg.Global.VMUUID != "" { - vmUUID = cfg.Global.VMUUID - } else { - // This needs root privileges on the host, and will fail otherwise. - vmUUID, err = getvmUUID() - if err != nil { - return "", err - } - cfg.Global.VMUUID = vmUUID - } - - if vmUUID == "" { - return "", fmt.Errorf("unable to determine machine ID from cloud configuration or sysfs") - } - - // Create context - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // Create a new finder - f := find.NewFinder(client.Client, true) - - // Fetch and set data center - dc, err := f.Datacenter(ctx, cfg.Global.Datacenter) - if err != nil { - return "", err - } - f.SetDatacenter(dc) - - s := object.NewSearchIndex(client.Client) - - svm, err := s.FindByUuid(ctx, dc, strings.ToLower(strings.TrimSpace(vmUUID)), true, nil) - if err != nil { - return "", err - } - - if svm == nil { - return "", fmt.Errorf("unable to find machine reference by UUID") - } - - var vm mo.VirtualMachine - err = s.Properties(ctx, svm.Reference(), []string{"name"}, &vm) - if err != nil { - return "", err - } - - return vm.Name, nil -} - func newVSphere(cfg VSphereConfig) (*VSphere, error) { + var err error if cfg.Disk.SCSIControllerType == "" { - cfg.Disk.SCSIControllerType = PVSCSIControllerType - } else if !checkControllerSupported(cfg.Disk.SCSIControllerType) { + cfg.Disk.SCSIControllerType = vclib.PVSCSIControllerType + } else if !vclib.CheckControllerSupported(cfg.Disk.SCSIControllerType) { glog.Errorf("%v is not a supported SCSI Controller type. Please configure 'lsilogic-sas' OR 'pvscsi'", cfg.Disk.SCSIControllerType) return nil, errors.New("Controller type not supported. Please configure 'lsilogic-sas' OR 'pvscsi'") } if cfg.Global.WorkingDir != "" { - cfg.Global.WorkingDir = path.Clean(cfg.Global.WorkingDir) + "/" + cfg.Global.WorkingDir = path.Clean(cfg.Global.WorkingDir) } if cfg.Global.RoundTripperCount == 0 { cfg.Global.RoundTripperCount = RoundTripperDefaultCount @@ -335,133 +179,66 @@ func newVSphere(cfg VSphereConfig) (*VSphere, error) { if cfg.Global.VCenterPort == "" { cfg.Global.VCenterPort = "443" } + if cfg.Global.VMUUID == "" { + // This needs root privileges on the host, and will fail otherwise. + cfg.Global.VMUUID, err = getvmUUID() + if err != nil { + glog.Errorf("Failed to get VM UUID. err: %+v", err) + return nil, err + } + } + vSphereConn := vclib.VSphereConnection{ + Username: cfg.Global.User, + Password: cfg.Global.Password, + Hostname: cfg.Global.VCenterIP, + Insecure: cfg.Global.InsecureFlag, + RoundTripperCount: cfg.Global.RoundTripperCount, + Port: cfg.Global.VCenterPort, + } + var instanceID string - var c *govmomi.Client - var id string if cfg.Global.VMName == "" { // if VMName is not set in the cloud config file, each nodes (including worker nodes) need credentials to obtain VMName from vCenter glog.V(4).Infof("Cannot find VMName from cloud config file, start obtaining it from vCenter") - c, err := newClient(context.TODO(), &cfg) + // Create context + ctx, cancel := context.WithCancel(context.TODO()) + defer cancel() + err = vSphereConn.Connect(ctx) + if err != nil { + glog.Errorf("Failed to connect to vSphere") + return nil, err + } + dc, err := vclib.GetDatacenter(ctx, &vSphereConn, cfg.Global.Datacenter) if err != nil { return nil, err } - - id, err = getVMName(c, &cfg) + vm, err := dc.GetVMByUUID(ctx, cfg.Global.VMUUID) if err != nil { return nil, err } + vmName, err := vm.ObjectName(ctx) + if err != nil { + return nil, err + } + instanceID = vmName } else { - id = cfg.Global.VMName + instanceID = cfg.Global.VMName } - vs := VSphere{ - client: c, + conn: &vSphereConn, cfg: &cfg, - localInstanceID: id, + localInstanceID: instanceID, } runtime.SetFinalizer(&vs, logout) - return &vs, nil } -// Returns if the given controller type is supported by the plugin -func checkControllerSupported(ctrlType string) bool { - for _, c := range supportedSCSIControllerType { - if ctrlType == c { - return true - } - } - return false -} - func logout(vs *VSphere) { - if vs.client != nil { - vs.client.Logout(context.TODO()) + if vs.conn.GoVmomiClient != nil { + vs.conn.GoVmomiClient.Logout(context.TODO()) } } -func newClient(ctx context.Context, cfg *VSphereConfig) (*govmomi.Client, error) { - // Parse URL from string - u, err := url.Parse(fmt.Sprintf("https://%s:%s/sdk", cfg.Global.VCenterIP, cfg.Global.VCenterPort)) - if err != nil { - return nil, err - } - // set username and password for the URL - u.User = url.UserPassword(cfg.Global.User, cfg.Global.Password) - - // Connect and log in to ESX or vCenter - c, err := govmomi.NewClient(ctx, u, cfg.Global.InsecureFlag) - if err != nil { - return nil, err - } - - // Add retry functionality - c.RoundTripper = vim25.Retry(c.RoundTripper, vim25.TemporaryNetworkError(int(cfg.Global.RoundTripperCount))) - - return c, nil -} - -// Returns a client which communicates with vCenter. -// This client can used to perform further vCenter operations. -func vSphereLogin(ctx context.Context, vs *VSphere) error { - var err error - clientLock.Lock() - defer clientLock.Unlock() - if vs.client == nil { - vs.client, err = newClient(ctx, vs.cfg) - if err != nil { - return err - } - return nil - } - - m := session.NewManager(vs.client.Client) - // retrieve client's current session - u, err := m.UserSession(ctx) - if err != nil { - glog.Errorf("Error while obtaining user session. err: %q", err) - return err - } - if u != nil { - return nil - } - - glog.Warningf("Creating new client session since the existing session is not valid or not authenticated") - vs.client.Logout(ctx) - vs.client, err = newClient(ctx, vs.cfg) - if err != nil { - return err - } - - return nil -} - -// Returns vSphere object `virtual machine` by its name. -func getVirtualMachineByName(ctx context.Context, cfg *VSphereConfig, c *govmomi.Client, nodeName k8stypes.NodeName) (*object.VirtualMachine, error) { - name := nodeNameToVMName(nodeName) - - // Create a new finder - f := find.NewFinder(c.Client, true) - - // Fetch and set data center - dc, err := f.Datacenter(ctx, cfg.Global.Datacenter) - if err != nil { - return nil, err - } - f.SetDatacenter(dc) - - vmRegex := cfg.Global.WorkingDir + name - - // Retrieve vm by name - //TODO: also look for vm inside subfolders - vm, err := f.VirtualMachine(ctx, vmRegex) - if err != nil { - return nil, err - } - - return vm, nil -} - // Instances returns an implementation of Instances for vSphere. func (vs *VSphere) Instances() (cloudprovider.Instances, bool) { return vs, true @@ -469,13 +246,11 @@ func (vs *VSphere) Instances() (cloudprovider.Instances, bool) { func getLocalIP() ([]v1.NodeAddress, error) { addrs := []v1.NodeAddress{} - ifaces, err := net.Interfaces() if err != nil { glog.Errorf("net.Interfaces() failed for NodeAddresses - %v", err) return nil, err } - for _, i := range ifaces { localAddrs, err := i.Addrs() if err != nil { @@ -486,8 +261,8 @@ func getLocalIP() ([]v1.NodeAddress, error) { if ipnet.IP.To4() != nil { // Filter external IP by MAC address OUIs from vCenter and from ESX var addressType v1.NodeAddressType - if strings.HasPrefix(i.HardwareAddr.String(), MAC_OUI_VC) || - strings.HasPrefix(i.HardwareAddr.String(), MAC_OUI_ESX) { + if strings.HasPrefix(i.HardwareAddr.String(), MacOuiVC) || + strings.HasPrefix(i.HardwareAddr.String(), MacOuiEsx) { v1helper.AddToNodeAddresses(&addrs, v1.NodeAddress{ Type: v1.NodeExternalIP, @@ -508,55 +283,47 @@ func getLocalIP() ([]v1.NodeAddress, error) { return addrs, nil } -// getVMandMO returns the VM object and required field from the VM object -func (vs *VSphere) getVMandMO(ctx context.Context, nodeName k8stypes.NodeName, field string) (vm *object.VirtualMachine, mvm *mo.VirtualMachine, err error) { - // Ensure client is logged in and session is valid - err = vSphereLogin(ctx, vs) +// Get the VM Managed Object instance by from the node +func (vs *VSphere) getVMByName(ctx context.Context, nodeName k8stypes.NodeName) (*vclib.VirtualMachine, error) { + dc, err := vclib.GetDatacenter(ctx, vs.conn, vs.cfg.Global.Datacenter) if err != nil { - glog.Errorf("Failed to login into vCenter - %v", err) - return nil, nil, err + return nil, err } - - vm, err = getVirtualMachineByName(ctx, vs.cfg, vs.client, nodeName) + vmPath := vs.cfg.Global.WorkingDir + "/" + nodeNameToVMName(nodeName) + vm, err := dc.GetVMByPath(ctx, vmPath) if err != nil { - if _, ok := err.(*find.NotFoundError); ok { - return nil, nil, cloudprovider.InstanceNotFound - } - return nil, nil, err + return nil, err } - - // Retrieve required field from VM object - var movm mo.VirtualMachine - collector := property.DefaultCollector(vs.client.Client) - err = collector.RetrieveOne(ctx, vm.Reference(), []string{field}, &movm) - if err != nil { - return nil, nil, err - } - - return vm, &movm, nil + return vm, nil } // NodeAddresses is an implementation of Instances.NodeAddresses. func (vs *VSphere) NodeAddresses(nodeName k8stypes.NodeName) ([]v1.NodeAddress, error) { + // Get local IP addresses if node is local node if vs.localInstanceID == nodeNameToVMName(nodeName) { - /* Get local IP addresses if node is local node */ return getLocalIP() } - addrs := []v1.NodeAddress{} - // Create context ctx, cancel := context.WithCancel(context.Background()) defer cancel() - - _, mvm, err := vs.getVMandMO(ctx, nodeName, "guest.net") + // Ensure client is logged in and session is valid + err := vs.conn.Connect(ctx) if err != nil { - glog.Errorf("Failed to getVMandMO for NodeAddresses: err %v", err) - return addrs, err + return nil, err + } + vm, err := vs.getVMByName(ctx, nodeName) + if err != nil { + glog.Errorf("Failed to get VM object for node: %q. err: +%v", nodeNameToVMName(nodeName), err) + return nil, err + } + vmMoList, err := vm.Datacenter.GetVMMoList(ctx, []*vclib.VirtualMachine{vm}, []string{"guest.net"}) + if err != nil { + glog.Errorf("Failed to get VM Managed object with property guest.net for node: %q. err: +%v", nodeNameToVMName(nodeName), err) + return nil, err } - // retrieve VM's ip(s) - for _, v := range mvm.Guest.Net { + for _, v := range vmMoList[0].Guest.Net { if vs.cfg.Network.PublicNetwork == v.Network { for _, ip := range v.IpAddress { if net.ParseIP(ip).To4() != nil { @@ -584,10 +351,12 @@ func (vs *VSphere) NodeAddressesByProviderID(providerID string) ([]v1.NodeAddres return vs.NodeAddresses(vmNameToNodeName(vmName)) } +// AddSSHKeyToAllInstances add SSH key to all instances func (vs *VSphere) AddSSHKeyToAllInstances(user string, keyData []byte) error { return errors.New("unimplemented") } +// CurrentNodeName gives the current node name func (vs *VSphere) CurrentNodeName(hostname string) (k8stypes.NodeName, error) { return vmNameToNodeName(vs.localInstanceID), nil } @@ -604,59 +373,35 @@ func vmNameToNodeName(vmName string) k8stypes.NodeName { // ExternalID returns the cloud provider ID of the node with the specified Name (deprecated). func (vs *VSphere) ExternalID(nodeName k8stypes.NodeName) (string, error) { - if vs.localInstanceID == nodeNameToVMName(nodeName) { - return vs.cfg.Global.WorkingDir + vs.localInstanceID, nil - } - - // Create context - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - vm, mvm, err := vs.getVMandMO(ctx, nodeName, "summary") - if err != nil { - glog.Errorf("Failed to getVMandMO for ExternalID: err %v", err) - return "", err - } - - if mvm.Summary.Runtime.PowerState == ActivePowerState { - return vm.InventoryPath, nil - } - - if mvm.Summary.Config.Template == false { - glog.Warningf("VM %s, is not in %s state", nodeName, ActivePowerState) - } else { - glog.Warningf("VM %s, is a template", nodeName) - } - - return "", cloudprovider.InstanceNotFound + return vs.InstanceID(nodeName) } // InstanceID returns the cloud provider ID of the node with the specified Name. func (vs *VSphere) InstanceID(nodeName k8stypes.NodeName) (string, error) { if vs.localInstanceID == nodeNameToVMName(nodeName) { - return vs.cfg.Global.WorkingDir + vs.localInstanceID, nil + return vs.cfg.Global.WorkingDir + "/" + vs.localInstanceID, nil } - // Create context ctx, cancel := context.WithCancel(context.Background()) defer cancel() - - vm, mvm, err := vs.getVMandMO(ctx, nodeName, "summary") + // Ensure client is logged in and session is valid + err := vs.conn.Connect(ctx) if err != nil { - glog.Errorf("Failed to getVMandMO for InstanceID: err %v", err) return "", err } - - if mvm.Summary.Runtime.PowerState == ActivePowerState { + vm, err := vs.getVMByName(ctx, nodeName) + if err != nil { + glog.Errorf("Failed to get VM object for node: %q. err: +%v", nodeNameToVMName(nodeName), err) + return "", err + } + nodeExist, err := vm.Exists(ctx) + if err != nil { + glog.Errorf("Failed to check whether node %q exist. err: %+v.", nodeNameToVMName(nodeName), err) + return "", err + } + if nodeExist { return "/" + vm.InventoryPath, nil } - - if mvm.Summary.Config.Template == false { - glog.Warningf("VM %s, is not in %s state", nodeName, ActivePowerState) - } else { - glog.Warningf("VM %s, is a template", nodeName) - } - return "", cloudprovider.InstanceNotFound } @@ -688,7 +433,6 @@ func (vs *VSphere) LoadBalancer() (cloudprovider.LoadBalancer, bool) { // Zones returns an implementation of Zones for Google vSphere. func (vs *VSphere) Zones() (cloudprovider.Zones, bool) { glog.V(1).Info("The vSphere cloud provider does not support zones") - return nil, false } @@ -702,308 +446,73 @@ func (vs *VSphere) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []st return nameservers, searches } -// Returns vSphere objects virtual machine, virtual device list, datastore and datacenter. -func getVirtualMachineDevices(ctx context.Context, cfg *VSphereConfig, c *govmomi.Client, name string) (*object.VirtualMachine, object.VirtualDeviceList, *object.Datacenter, error) { - // Create a new finder - f := find.NewFinder(c.Client, true) - - // Fetch and set data center - dc, err := f.Datacenter(ctx, cfg.Global.Datacenter) - if err != nil { - return nil, nil, nil, err - } - f.SetDatacenter(dc) - - vmRegex := cfg.Global.WorkingDir + name - - vm, err := f.VirtualMachine(ctx, vmRegex) - if err != nil { - return nil, nil, nil, err - } - - // Get devices from VM - vmDevices, err := vm.Device(ctx) - if err != nil { - return nil, nil, nil, err - } - return vm, vmDevices, dc, nil -} - -// Removes SCSI controller which is latest attached to VM. -func cleanUpController(ctx context.Context, newSCSIController types.BaseVirtualDevice, vmDevices object.VirtualDeviceList, vm *object.VirtualMachine) error { - if newSCSIController == nil || vmDevices == nil || vm == nil { - return nil - } - ctls := vmDevices.SelectByType(newSCSIController) - if len(ctls) < 1 { - return ErrNoDevicesFound - } - newScsi := ctls[len(ctls)-1] - err := vm.RemoveDevice(ctx, true, newScsi) - if err != nil { - return err - } - return nil -} - -// Attaches given virtual disk volume to the compute running kubelet. -func (vs *VSphere) AttachDisk(vmDiskPath string, storagePolicyID string, nodeName k8stypes.NodeName) (diskID string, diskUUID string, err error) { - attachDiskInternal := func(vmDiskPath string, storagePolicyID string, nodeName k8stypes.NodeName) (diskID string, diskUUID string, err error) { - var newSCSIController types.BaseVirtualDevice - +// AttachDisk attaches given virtual disk volume to the compute running kubelet. +func (vs *VSphere) AttachDisk(vmDiskPath string, storagePolicyID string, nodeName k8stypes.NodeName) (diskUUID string, err error) { + attachDiskInternal := func(vmDiskPath string, storagePolicyID string, nodeName k8stypes.NodeName) (diskUUID string, err error) { + if nodeName == "" { + nodeName = vmNameToNodeName(vs.localInstanceID) + } // Create context ctx, cancel := context.WithCancel(context.Background()) defer cancel() - // Ensure client is logged in and session is valid - err = vSphereLogin(ctx, vs) + err = vs.conn.Connect(ctx) if err != nil { - glog.Errorf("Failed to login into vCenter - %v", err) - return "", "", err + return "", err } - - // Find virtual machine to attach disk to - var vSphereInstance string - if nodeName == "" { - vSphereInstance = vs.localInstanceID - nodeName = vmNameToNodeName(vSphereInstance) - } else { - vSphereInstance = nodeNameToVMName(nodeName) - } - - // Get VM device list - vm, vmDevices, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance) + vm, err := vs.getVMByName(ctx, nodeName) if err != nil { - return "", "", err + glog.Errorf("Failed to get VM object for node: %q. err: +%v", nodeNameToVMName(nodeName), err) + return "", err } - - attached, err := checkDiskAttached(vmDiskPath, vmDevices, dc, vs.client) + diskUUID, err = vm.AttachDisk(ctx, vmDiskPath, &vclib.VolumeOptions{SCSIControllerType: vclib.PVSCSIControllerType, StoragePolicyID: storagePolicyID}) if err != nil { - return "", "", err + glog.Errorf("Failed to attach disk: %s for node: %s. err: +%v", vmDiskPath, nodeNameToVMName(nodeName), err) + return "", err } - if attached { - diskID, _ = getVirtualDiskID(vmDiskPath, vmDevices, dc, vs.client) - diskUUID, _ = getVirtualDiskUUIDByPath(vmDiskPath, dc, vs.client) - return diskID, diskUUID, nil - } - - var diskControllerType = vs.cfg.Disk.SCSIControllerType - // find SCSI controller of particular type from VM devices - scsiControllersOfRequiredType := getSCSIControllersOfType(vmDevices, diskControllerType) - scsiController := getAvailableSCSIController(scsiControllersOfRequiredType) - newSCSICreated := false - if scsiController == nil { - newSCSIController, err = createAndAttachSCSIControllerToVM(ctx, vm, diskControllerType) - if err != nil { - glog.Errorf("Failed to create SCSI controller for VM :%q with err: %+v", vm.Name(), err) - return "", "", err - } - - // Get VM device list - _, vmDevices, _, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance) - if err != nil { - glog.Errorf("cannot get vmDevices for VM err=%s", err) - return "", "", fmt.Errorf("cannot get vmDevices for VM err=%s", err) - } - - scsiControllersOfRequiredType := getSCSIControllersOfType(vmDevices, diskControllerType) - scsiController := getAvailableSCSIController(scsiControllersOfRequiredType) - if scsiController == nil { - glog.Errorf("cannot find SCSI controller in VM") - // attempt clean up of scsi controller - cleanUpController(ctx, newSCSIController, vmDevices, vm) - return "", "", fmt.Errorf("cannot find SCSI controller in VM") - } - newSCSICreated = true - } - - // Create a new finder - f := find.NewFinder(vs.client.Client, true) - // Set data center - f.SetDatacenter(dc) - - datastorePathObj := new(object.DatastorePath) - isSuccess := datastorePathObj.FromString(vmDiskPath) - if !isSuccess { - glog.Errorf("Failed to parse vmDiskPath: %+q", vmDiskPath) - return "", "", errors.New("Failed to parse vmDiskPath") - } - ds, err := f.Datastore(ctx, datastorePathObj.Datastore) - if err != nil { - glog.Errorf("Failed while searching for datastore %+q. err %s", datastorePathObj.Datastore, err) - return "", "", err - } - vmDiskPath = removeClusterFromVDiskPath(vmDiskPath) - disk := vmDevices.CreateDisk(scsiController, ds.Reference(), vmDiskPath) - unitNumber, err := getNextUnitNumber(vmDevices, scsiController) - if err != nil { - glog.Errorf("cannot attach disk to VM, limit reached - %v.", err) - return "", "", err - } - *disk.UnitNumber = unitNumber - - backing := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo) - backing.DiskMode = string(types.VirtualDiskModeIndependent_persistent) - - virtualMachineConfigSpec := types.VirtualMachineConfigSpec{} - deviceConfigSpec := &types.VirtualDeviceConfigSpec{ - Device: disk, - Operation: types.VirtualDeviceConfigSpecOperationAdd, - } - // Configure the disk with the SPBM profile only if ProfileID is not empty. - if storagePolicyID != "" { - profileSpec := &types.VirtualMachineDefinedProfileSpec{ - ProfileId: storagePolicyID, - } - deviceConfigSpec.Profile = append(deviceConfigSpec.Profile, profileSpec) - } - virtualMachineConfigSpec.DeviceChange = append(virtualMachineConfigSpec.DeviceChange, deviceConfigSpec) - requestTime := time.Now() - task, err := vm.Reconfigure(ctx, virtualMachineConfigSpec) - if err != nil { - recordvSphereMetric(api_attachvolume, requestTime, err) - glog.Errorf("Failed to attach the disk with storagePolicy: %+q with err - %v", storagePolicyID, err) - if newSCSICreated { - cleanUpController(ctx, newSCSIController, vmDevices, vm) - } - return "", "", err - } - err = task.Wait(ctx) - recordvSphereMetric(api_attachvolume, requestTime, err) - if err != nil { - glog.Errorf("Failed to attach the disk with storagePolicy: %+q with err - %v", storagePolicyID, err) - if newSCSICreated { - cleanUpController(ctx, newSCSIController, vmDevices, vm) - } - return "", "", err - } - - deviceName, diskUUID, err := getVMDiskInfo(ctx, vm, disk) - if err != nil { - if newSCSICreated { - cleanUpController(ctx, newSCSIController, vmDevices, vm) - } - vs.DetachDisk(deviceName, nodeName) - return "", "", err - } - return deviceName, diskUUID, nil + return diskUUID, nil } requestTime := time.Now() - diskID, diskUUID, err = attachDiskInternal(vmDiskPath, storagePolicyID, nodeName) - recordvSphereMetric(operation_attachvolume, requestTime, err) - return diskID, diskUUID, err + diskUUID, err = attachDiskInternal(vmDiskPath, storagePolicyID, nodeName) + vclib.RecordvSphereMetric(vclib.OperationAttachVolume, requestTime, err) + return diskUUID, err } -func getVMDiskInfo(ctx context.Context, vm *object.VirtualMachine, disk *types.VirtualDisk) (string, string, error) { - vmDevices, err := vm.Device(ctx) - if err != nil { - return "", "", err - } - devices := vmDevices.SelectByType(disk) - if len(devices) < 1 { - return "", "", ErrNoDevicesFound - } - - // get new disk id - newDevice := devices[len(devices)-1] - deviceName := devices.Name(newDevice) - - // get device uuid - diskUUID, err := getVirtualDiskUUID(newDevice) - if err != nil { - return "", "", err - } - - return deviceName, diskUUID, nil -} -func getNextUnitNumber(devices object.VirtualDeviceList, c types.BaseVirtualController) (int32, error) { - // get next available SCSI controller unit number - var takenUnitNumbers [SCSIDeviceSlots]bool - takenUnitNumbers[SCSIReservedSlot] = true - key := c.GetVirtualController().Key - - for _, device := range devices { - d := device.GetVirtualDevice() - if d.ControllerKey == key { - if d.UnitNumber != nil { - takenUnitNumbers[*d.UnitNumber] = true - } +// DetachDisk detaches given virtual disk volume from the compute running kubelet. +func (vs *VSphere) DetachDisk(volPath string, nodeName k8stypes.NodeName) error { + detachDiskInternal := func(volPath string, nodeName k8stypes.NodeName) error { + if nodeName == "" { + nodeName = vmNameToNodeName(vs.localInstanceID) } - } - for unitNumber, takenUnitNumber := range takenUnitNumbers { - if !takenUnitNumber { - return int32(unitNumber), nil + // Create context + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + // Ensure client is logged in and session is valid + err := vs.conn.Connect(ctx) + if err != nil { + return err } - } - return -1, fmt.Errorf("SCSI Controller with key=%d does not have any available slots (LUN).", key) -} - -func getSCSIController(vmDevices object.VirtualDeviceList, scsiType string) *types.VirtualController { - // get virtual scsi controller of passed argument type - for _, device := range vmDevices { - devType := vmDevices.Type(device) - if devType == scsiType { - if c, ok := device.(types.BaseVirtualController); ok { - return c.GetVirtualController() - } + vm, err := vs.getVMByName(ctx, nodeName) + if err != nil { + glog.Errorf("Failed to get VM object for node: %q. err: +%v", nodeNameToVMName(nodeName), err) + return err } - } - return nil -} - -func getSCSIControllersOfType(vmDevices object.VirtualDeviceList, scsiType string) []*types.VirtualController { - // get virtual scsi controllers of passed argument type - var scsiControllers []*types.VirtualController - for _, device := range vmDevices { - devType := vmDevices.Type(device) - if devType == scsiType { - if c, ok := device.(types.BaseVirtualController); ok { - scsiControllers = append(scsiControllers, c.GetVirtualController()) - } + err = vm.DetachDisk(ctx, volPath) + if err != nil { + glog.Errorf("Failed to detach disk: %s for node: %s. err: +%v", volPath, nodeNameToVMName(nodeName), err) + return err } + return nil } - return scsiControllers -} - -func getSCSIControllers(vmDevices object.VirtualDeviceList) []*types.VirtualController { - // get all virtual scsi controllers - var scsiControllers []*types.VirtualController - for _, device := range vmDevices { - devType := vmDevices.Type(device) - switch devType { - case SCSIControllerType, strings.ToLower(LSILogicControllerType), strings.ToLower(BusLogicControllerType), PVSCSIControllerType, strings.ToLower(LSILogicSASControllerType): - if c, ok := device.(types.BaseVirtualController); ok { - scsiControllers = append(scsiControllers, c.GetVirtualController()) - } - } - } - return scsiControllers -} - -func getAvailableSCSIController(scsiControllers []*types.VirtualController) *types.VirtualController { - // get SCSI controller which has space for adding more devices - for _, controller := range scsiControllers { - if len(controller.Device) < SCSIControllerDeviceLimit { - return controller - } - } - return nil + requestTime := time.Now() + err := detachDiskInternal(volPath, nodeName) + vclib.RecordvSphereMetric(vclib.OperationDetachVolume, requestTime, nil) + return err } // DiskIsAttached returns if disk is attached to the VM using controllers supported by the plugin. func (vs *VSphere) DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (bool, error) { diskIsAttachedInternal := func(volPath string, nodeName k8stypes.NodeName) (bool, error) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // Ensure client is logged in and session is valid - err := vSphereLogin(ctx, vs) - if err != nil { - glog.Errorf("Failed to login into vCenter - %v", err) - return false, err - } - - // Find VM to detach disk from var vSphereInstance string if nodeName == "" { vSphereInstance = vs.localInstanceID @@ -1011,52 +520,53 @@ func (vs *VSphere) DiskIsAttached(volPath string, nodeName k8stypes.NodeName) (b } else { vSphereInstance = nodeNameToVMName(nodeName) } - - nodeExist, err := vs.NodeExists(nodeName) + // Create context + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + // Ensure client is logged in and session is valid + err := vs.conn.Connect(ctx) if err != nil { - glog.Errorf("Failed to check whether node exist. err: %s.", err) return false, err } - + vm, err := vs.getVMByName(ctx, nodeName) + if err != nil { + glog.Errorf("Failed to get VM object for node: %q. err: +%v", vSphereInstance, err) + return false, err + } + nodeExist, err := vm.Exists(ctx) + if err != nil { + glog.Errorf("Failed to check whether node %q exist. err: %+v", vSphereInstance, err) + return false, err + } if !nodeExist { - glog.Errorf("DiskIsAttached failed to determine whether disk %q is still attached: node %q does not exist", + glog.Errorf("DiskIsAttached failed to determine whether disk %q is still attached: node %q is powered off", volPath, vSphereInstance) - return false, fmt.Errorf("DiskIsAttached failed to determine whether disk %q is still attached: node %q does not exist", + return false, fmt.Errorf("DiskIsAttached failed to determine whether disk %q is still attached: node %q is powered off", volPath, vSphereInstance) } - - // Get VM device list - _, vmDevices, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance) + attached, err := vm.IsDiskAttached(ctx, volPath) if err != nil { - glog.Errorf("Failed to get VM devices for VM %#q. err: %s", vSphereInstance, err) - return false, err + glog.Errorf("DiskIsAttached failed to determine whether disk %q is still attached on node %q", + volPath, + vSphereInstance) } - - attached, err := checkDiskAttached(volPath, vmDevices, dc, vs.client) return attached, err } requestTime := time.Now() isAttached, err := diskIsAttachedInternal(volPath, nodeName) - recordvSphereMetric(operation_diskIsAttached, requestTime, err) + vclib.RecordvSphereMetric(vclib.OperationDiskIsAttached, requestTime, err) return isAttached, err } // DisksAreAttached returns if disks are attached to the VM using controllers supported by the plugin. func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeName) (map[string]bool, error) { disksAreAttachedInternal := func(volPaths []string, nodeName k8stypes.NodeName) (map[string]bool, error) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // Create vSphere client - err := vSphereLogin(ctx, vs) - if err != nil { - glog.Errorf("Failed to login into vCenter, err: %v", err) - return nil, err + attached := make(map[string]bool) + if len(volPaths) == 0 { + return attached, nil } - - // Find VM to detach disk from var vSphereInstance string if nodeName == "" { vSphereInstance = vs.localInstanceID @@ -1064,14 +574,24 @@ func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeNam } else { vSphereInstance = nodeNameToVMName(nodeName) } - - nodeExist, err := vs.NodeExists(nodeName) - + // Create context + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + // Ensure client is logged in and session is valid + err := vs.conn.Connect(ctx) if err != nil { - glog.Errorf("Failed to check whether node exist. err: %s.", err) return nil, err } - + vm, err := vs.getVMByName(ctx, nodeName) + if err != nil { + glog.Errorf("Failed to get VM object for node: %q. err: +%v", vSphereInstance, err) + return nil, err + } + nodeExist, err := vm.Exists(ctx) + if err != nil { + glog.Errorf("Failed to check whether node %q exist. err: %+v", vSphereInstance, err) + return nil, err + } if !nodeExist { glog.Errorf("DisksAreAttached failed to determine whether disks %v are still attached: node %q does not exist", volPaths, @@ -1080,17 +600,8 @@ func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeNam volPaths, vSphereInstance) } - - // Get VM device list - _, vmDevices, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance) - if err != nil { - glog.Errorf("Failed to get VM devices for VM %#q. err: %s", vSphereInstance, err) - return nil, err - } - - attached := make(map[string]bool) for _, volPath := range volPaths { - result, err := checkDiskAttached(volPath, vmDevices, dc, vs.client) + result, err := vm.IsDiskAttached(ctx, volPath) if err == nil { if result { attached[volPath] = true @@ -1098,6 +609,10 @@ func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeNam attached[volPath] = false } } else { + glog.Errorf("DisksAreAttached failed to determine whether disk %q from volPaths %+v is still attached on node %q", + volPath, + volPaths, + vSphereInstance) return nil, err } } @@ -1105,829 +620,130 @@ func (vs *VSphere) DisksAreAttached(volPaths []string, nodeName k8stypes.NodeNam } requestTime := time.Now() attached, err := disksAreAttachedInternal(volPaths, nodeName) - recordvSphereMetric(operation_disksAreAttached, requestTime, err) + vclib.RecordvSphereMetric(vclib.OperationDisksAreAttached, requestTime, err) return attached, err } -func checkDiskAttached(volPath string, vmdevices object.VirtualDeviceList, dc *object.Datacenter, client *govmomi.Client) (bool, error) { - _, err := getVirtualDiskControllerKey(volPath, vmdevices, dc, client) - if err != nil { - if err == ErrNoDevicesFound { - return false, nil - } - glog.Errorf("Failed to check whether disk is attached. err: %s", err) - return false, err - } - return true, nil -} - -// Returns the object key that denotes the controller object to which vmdk is attached. -func getVirtualDiskControllerKey(volPath string, vmDevices object.VirtualDeviceList, dc *object.Datacenter, client *govmomi.Client) (int32, error) { - volPath = removeClusterFromVDiskPath(volPath) - volumeUUID, err := getVirtualDiskUUIDByPath(volPath, dc, client) - - if err != nil { - glog.Errorf("disk uuid not found for %v. err: %s", volPath, err) - return -1, err - } - - // filter vm devices to retrieve disk ID for the given vmdk file - for _, device := range vmDevices { - if vmDevices.TypeName(device) == "VirtualDisk" { - diskUUID, _ := getVirtualDiskUUID(device) - if diskUUID == volumeUUID { - return device.GetVirtualDevice().ControllerKey, nil - } - } - } - return -1, ErrNoDevicesFound -} - -// Returns key of the controller. -// Key is unique id that distinguishes one device from other devices in the same virtual machine. -func getControllerKey(scsiType string, vmDevices object.VirtualDeviceList) (int32, error) { - for _, device := range vmDevices { - devType := vmDevices.Type(device) - if devType == scsiType { - if c, ok := device.(types.BaseVirtualController); ok { - return c.GetVirtualController().Key, nil - } - } - } - return -1, ErrNoDevicesFound -} - -// Returns formatted UUID for a virtual disk device. -func getVirtualDiskUUID(newDevice types.BaseVirtualDevice) (string, error) { - vd := newDevice.GetVirtualDevice() - - if b, ok := vd.Backing.(*types.VirtualDiskFlatVer2BackingInfo); ok { - uuid := formatVirtualDiskUUID(b.Uuid) - return uuid, nil - } - return "", ErrNoDiskUUIDFound -} - -func formatVirtualDiskUUID(uuid string) string { - uuidwithNoSpace := strings.Replace(uuid, " ", "", -1) - uuidWithNoHypens := strings.Replace(uuidwithNoSpace, "-", "", -1) - return strings.ToLower(uuidWithNoHypens) -} - -// Gets virtual disk UUID by datastore (namespace) path -// -// volPath can be namespace path (e.g. "[vsanDatastore] volumes/test.vmdk") or -// uuid path (e.g. "[vsanDatastore] 59427457-6c5a-a917-7997-0200103eedbc/test.vmdk"). -// `volumes` in this case would be a symlink to -// `59427457-6c5a-a917-7997-0200103eedbc`. -// -// We want users to use namespace path. It is good for attaching the disk, -// but for detaching the API requires uuid path. Hence, to detach the right -// device we have to convert the namespace path to uuid path. -func getVirtualDiskUUIDByPath(volPath string, dc *object.Datacenter, client *govmomi.Client) (string, error) { - if len(volPath) > 0 && filepath.Ext(volPath) != ".vmdk" { - volPath += ".vmdk" - } - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // VirtualDiskManager provides a way to manage and manipulate virtual disks on vmware datastores. - vdm := object.NewVirtualDiskManager(client.Client) - // Returns uuid of vmdk virtual disk - diskUUID, err := vdm.QueryVirtualDiskUuid(ctx, volPath, dc) - - if err != nil { - return "", ErrNoDiskUUIDFound - } - - diskUUID = formatVirtualDiskUUID(diskUUID) - - return diskUUID, nil -} - -// Returns a device id which is internal vSphere API identifier for the attached virtual disk. -func getVirtualDiskID(volPath string, vmDevices object.VirtualDeviceList, dc *object.Datacenter, client *govmomi.Client) (string, error) { - volumeUUID, err := getVirtualDiskUUIDByPath(volPath, dc, client) - - if err != nil { - glog.Warningf("disk uuid not found for %v ", volPath) - return "", err - } - - // filter vm devices to retrieve disk ID for the given vmdk file - for _, device := range vmDevices { - if vmDevices.TypeName(device) == "VirtualDisk" { - diskUUID, _ := getVirtualDiskUUID(device) - if diskUUID == volumeUUID { - return vmDevices.Name(device), nil - } - } - } - return "", ErrNoDiskIDFound -} - -// DetachDisk detaches given virtual disk volume from the compute running kubelet. -func (vs *VSphere) DetachDisk(volPath string, nodeName k8stypes.NodeName) error { - detachDiskInternal := func(volPath string, nodeName k8stypes.NodeName) error { - // Create context - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // Ensure client is logged in and session is valid - err := vSphereLogin(ctx, vs) - if err != nil { - glog.Errorf("Failed to login into vCenter - %v", err) - return err - } - - // Find virtual machine to attach disk to - var vSphereInstance string - if nodeName == "" { - vSphereInstance = vs.localInstanceID - nodeName = vmNameToNodeName(vSphereInstance) - } else { - vSphereInstance = nodeNameToVMName(nodeName) - } - - vm, vmDevices, dc, err := getVirtualMachineDevices(ctx, vs.cfg, vs.client, vSphereInstance) - - if err != nil { - return err - } - volPath = removeClusterFromVDiskPath(volPath) - diskID, err := getVirtualDiskID(volPath, vmDevices, dc, vs.client) - if err != nil { - glog.Warningf("disk ID not found for %v ", volPath) - return err - } - - // Gets virtual disk device - device := vmDevices.Find(diskID) - if device == nil { - return fmt.Errorf("device '%s' not found", diskID) - } - - // Detach disk from VM - requestTime := time.Now() - err = vm.RemoveDevice(ctx, true, device) - recordvSphereMetric(api_detachvolume, requestTime, err) - if err != nil { - return err - } - return nil - } - requestTime := time.Now() - err := detachDiskInternal(volPath, nodeName) - recordvSphereMetric(operation_detachvolume, requestTime, nil) - return err -} - -// CreateVolume creates a volume of given size (in KiB). -func (vs *VSphere) CreateVolume(volumeOptions *VolumeOptions) (volumePath string, err error) { - createVolumeInternal := func(volumeOptions *VolumeOptions) (volumePath string, err error) { +// CreateVolume creates a volume of given size (in KiB) and return the volume path. +// If the volumeOptions.Datastore is part of datastore cluster for example - [DatastoreCluster/sharedVmfs-0] then +// return value will be [DatastoreCluster/sharedVmfs-0] kubevols/.vmdk +// else return value will be [sharedVmfs-0] kubevols/.vmdk +func (vs *VSphere) CreateVolume(volumeOptions *vclib.VolumeOptions) (volumePath string, err error) { + glog.V(1).Infof("Starting to create a vSphere volume with volumeOptions: %+v", volumeOptions) + createVolumeInternal := func(volumeOptions *vclib.VolumeOptions) (volumePath string, err error) { var datastore string - var destVolPath string - - // Default datastore is the datastore in the vSphere config file that is used initialize vSphere cloud provider. + // Default datastore is the datastore in the vSphere config file that is used to initialize vSphere cloud provider. if volumeOptions.Datastore == "" { datastore = vs.cfg.Global.Datastore } else { datastore = volumeOptions.Datastore } - - // Default diskformat as 'thin' - if volumeOptions.DiskFormat == "" { - volumeOptions.DiskFormat = ThinDiskType - } - - if _, ok := diskFormatValidType[volumeOptions.DiskFormat]; !ok { - return "", fmt.Errorf("Cannot create disk. Error diskformat %+q."+ - " Valid options are %s.", volumeOptions.DiskFormat, DiskformatValidOptions) - } - // Create context ctx, cancel := context.WithCancel(context.Background()) defer cancel() - // Ensure client is logged in and session is valid - err = vSphereLogin(ctx, vs) + err = vs.conn.Connect(ctx) if err != nil { - glog.Errorf("Failed to login into vCenter - %v", err) return "", err } - - // Create a new finder - f := find.NewFinder(vs.client.Client, true) - - // Fetch and set data center - dc, err := f.Datacenter(ctx, vs.cfg.Global.Datacenter) - f.SetDatacenter(dc) - - if volumeOptions.StoragePolicyName != "" { - // Get the pbm client - pbmClient, err := pbm.NewClient(ctx, vs.client.Client) - if err != nil { - return "", err - } - volumeOptions.StoragePolicyID, err = pbmClient.ProfileIDByName(ctx, volumeOptions.StoragePolicyName) - if err != nil { - recordvSphereMetric(operation_createvolume_with_policy, time.Time{}, err) - return "", err - } - - compatibilityResult, err := vs.GetPlacementCompatibilityResult(ctx, pbmClient, volumeOptions.StoragePolicyID) - if err != nil { - return "", err - } - if len(compatibilityResult) < 1 { - return "", fmt.Errorf("There are no compatible datastores that satisfy the storage policy: %+q requirements", volumeOptions.StoragePolicyID) - } - - if volumeOptions.Datastore != "" { - ok, nonCompatibleDsref := vs.IsUserSpecifiedDatastoreNonCompatible(ctx, compatibilityResult, volumeOptions.Datastore) - if ok { - faultMsg := GetNonCompatibleDatastoreFaultMsg(compatibilityResult, *nonCompatibleDsref) - return "", fmt.Errorf("User specified datastore: %q is not compatible with the storagePolicy: %q. Failed with faults: %+q", volumeOptions.Datastore, volumeOptions.StoragePolicyName, faultMsg) - } - } else { - dsMoList, err := vs.GetCompatibleDatastoresMo(ctx, compatibilityResult) - if err != nil { - recordvSphereMetric(operation_createvolume_with_raw_vsan_policy, time.Time{}, err) - return "", err - } - dsMo := GetMostFreeDatastore(dsMoList) - datastore = dsMo.Info.GetDatastoreInfo().Name - } - } - ds, err := f.Datastore(ctx, datastore) + dc, err := vclib.GetDatacenter(ctx, vs.conn, vs.cfg.Global.Datacenter) if err != nil { - glog.Errorf("Failed while searching for datastore %+q. err %s", datastore, err) return "", err } - - if volumeOptions.VSANStorageProfileData != "" { - // Check if the datastore is VSAN if any capability requirements are specified. - // VSphere cloud provider now only supports VSAN capabilities requirements - ok, err := checkIfDatastoreTypeIsVSAN(vs.client, ds) - if err != nil { - return "", fmt.Errorf("Failed while determining whether the datastore: %q"+ - " is VSAN or not.", datastore) - } - if !ok { - return "", fmt.Errorf("The specified datastore: %q is not a VSAN datastore."+ - " The policy parameters will work only with VSAN Datastore."+ - " So, please specify a valid VSAN datastore in Storage class definition.", datastore) - } - } - // Create a disk with the VSAN storage capabilities specified in the volumeOptions.VSANStorageProfileData. - // This is achieved by following steps: - // 1. Create dummy VM if not already present. - // 2. Add a new disk to the VM by performing VM reconfigure. - // 3. Detach the new disk from the dummy VM. - // 4. Delete the dummy VM. + var vmOptions *vclib.VMOptions if volumeOptions.VSANStorageProfileData != "" || volumeOptions.StoragePolicyName != "" { // Acquire a read lock to ensure multiple PVC requests can be processed simultaneously. cleanUpDummyVMLock.RLock() defer cleanUpDummyVMLock.RUnlock() - // Create a new background routine that will delete any dummy VM's that are left stale. // This routine will get executed for every 5 minutes and gets initiated only once in its entire lifetime. cleanUpRoutineInitLock.Lock() if !cleanUpRoutineInitialized { + glog.V(1).Infof("Starting a clean up routine to remove stale dummy VM's") go vs.cleanUpDummyVMs(DummyVMPrefixName) cleanUpRoutineInitialized = true } cleanUpRoutineInitLock.Unlock() - - // Check if the VM exists in kubernetes cluster folder. - // The kubernetes cluster folder - vs.cfg.Global.WorkingDir is where all the nodes in the kubernetes cluster are created. - dummyVMFullName := DummyVMPrefixName + "-" + volumeOptions.Name - vmRegex := vs.cfg.Global.WorkingDir + dummyVMFullName - dummyVM, err := f.VirtualMachine(ctx, vmRegex) + vmOptions, err = vs.setVMOptions(ctx, dc) if err != nil { - // 1. Create a dummy VM and return the VM reference. - dummyVM, err = vs.createDummyVM(ctx, dc, ds, dummyVMFullName) - if err != nil { - return "", err - } - } - - // 2. Reconfigure the VM to attach the disk with the VSAN policy configured. - vmDiskPath, err := vs.createVirtualDiskWithPolicy(ctx, dc, ds, dummyVM, volumeOptions) - fileAlreadyExist := false - if err != nil { - vmDiskPath = filepath.Clean(ds.Path(VolDir)) + "/" + volumeOptions.Name + ".vmdk" - errorMessage := fmt.Sprintf("Cannot complete the operation because the file or folder %s already exists", vmDiskPath) - if errorMessage == err.Error() { - //Skip error and continue to detach the disk as the disk was already created on the datastore. - fileAlreadyExist = true - glog.V(1).Infof("File: %v already exists", vmDiskPath) - } else { - glog.Errorf("Failed to attach the disk to VM: %q with err: %+v", dummyVMFullName, err) - return "", err - } - } - - dummyVMNodeName := vmNameToNodeName(dummyVMFullName) - // 3. Detach the disk from the dummy VM. - err = vs.DetachDisk(vmDiskPath, dummyVMNodeName) - if err != nil { - if DiskNotFoundErrMsg == err.Error() && fileAlreadyExist { - // Skip error if disk was already detached from the dummy VM but still present on the datastore. - glog.V(1).Infof("File: %v is already detached", vmDiskPath) - } else { - glog.Errorf("Failed to detach the disk: %q from VM: %q with err: %+v", vmDiskPath, dummyVMFullName, err) - return "", fmt.Errorf("Failed to create the volume: %q with err: %+v", volumeOptions.Name, err) - } - } - - // 4. Delete the dummy VM - err = deleteVM(ctx, dummyVM) - if err != nil { - return "", fmt.Errorf("Failed to destroy the vm: %q with err: %+v", dummyVMFullName, err) - } - destVolPath = vmDiskPath - } else { - // Create a virtual disk directly if no VSAN storage capabilities are specified by the user. - destVolPath, err = createVirtualDisk(ctx, vs.client, dc, ds, volumeOptions) - if err != nil { - return "", fmt.Errorf("Failed to create the virtual disk having name: %+q with err: %+v", destVolPath, err) + glog.Errorf("Failed to set VM options requires to create a vsphere volume. err: %+v", err) + return "", err } } - + if volumeOptions.StoragePolicyName != "" && volumeOptions.Datastore == "" { + datastore, err = getPbmCompatibleDatastore(ctx, dc.Client(), volumeOptions.StoragePolicyName, vmOptions.VMFolder) + if err != nil { + glog.Errorf("Failed to get pbm compatible datastore with storagePolicy: %s. err: %+v", volumeOptions.StoragePolicyName, err) + return "", err + } + } + ds, err := dc.GetDatastoreByName(ctx, datastore) + if err != nil { + return "", err + } + volumeOptions.Datastore = datastore + kubeVolsPath := filepath.Clean(ds.Path(VolDir)) + "/" + err = ds.CreateDirectory(ctx, kubeVolsPath, false) + if err != nil && err != vclib.ErrFileAlreadyExist { + glog.Errorf("Cannot create dir %#v. err %s", kubeVolsPath, err) + return "", err + } + volumePath = kubeVolsPath + volumeOptions.Name + ".vmdk" + disk := diskmanagers.VirtualDisk{ + DiskPath: volumePath, + VolumeOptions: volumeOptions, + VMOptions: vmOptions, + } + err = disk.Create(ctx, ds) + if err != nil { + glog.Errorf("Failed to create a vsphere volume with volumeOptions: %+v on datastore: %s. err: %+v", volumeOptions, datastore, err) + return "", err + } if filepath.Base(datastore) != datastore { - // If Datastore is within cluster, add cluster path to the destVolPath - destVolPath = strings.Replace(destVolPath, filepath.Base(datastore), datastore, 1) + // If datastore is within cluster, add cluster path to the volumePath + volumePath = strings.Replace(volumePath, filepath.Base(datastore), datastore, 1) } - glog.V(1).Infof("VM Disk path is %+q", destVolPath) - return destVolPath, nil + return volumePath, nil } requestTime := time.Now() volumePath, err = createVolumeInternal(volumeOptions) - recordCreateVolumeMetric(volumeOptions, requestTime, err) - if err != nil { - return "", err - } - return volumePath, nil + vclib.RecordCreateVolumeMetric(volumeOptions, requestTime, err) + return volumePath, err } // DeleteVolume deletes a volume given volume name. -// Also, deletes the folder where the volume resides. func (vs *VSphere) DeleteVolume(vmDiskPath string) error { + glog.V(1).Infof("Starting to delete vSphere volume with vmDiskPath: %s", vmDiskPath) deleteVolumeInternal := func(vmDiskPath string) error { // Create context ctx, cancel := context.WithCancel(context.Background()) defer cancel() - // Ensure client is logged in and session is valid - err := vSphereLogin(ctx, vs) + err := vs.conn.Connect(ctx) if err != nil { - glog.Errorf("Failed to login into vCenter - %v", err) return err } - - // Create a new finder - f := find.NewFinder(vs.client.Client, true) - - // Fetch and set data center - dc, err := f.Datacenter(ctx, vs.cfg.Global.Datacenter) - f.SetDatacenter(dc) - - // Create a virtual disk manager - virtualDiskManager := object.NewVirtualDiskManager(vs.client.Client) - - if filepath.Ext(vmDiskPath) != ".vmdk" { - vmDiskPath += ".vmdk" - } - - // Get the vmDisk Name - diskNameWithExt := path.Base(vmDiskPath) - diskName := strings.TrimSuffix(diskNameWithExt, filepath.Ext(diskNameWithExt)) - - // Search for the dummyVM if present and delete it. - dummyVMFullName := DummyVMPrefixName + "-" + diskName - vmRegex := vs.cfg.Global.WorkingDir + dummyVMFullName - dummyVM, err := f.VirtualMachine(ctx, vmRegex) - if err == nil { - err = deleteVM(ctx, dummyVM) - if err != nil { - return fmt.Errorf("Failed to destroy the vm: %q with err: %+v", dummyVMFullName, err) - } - } - - // Delete virtual disk - vmDiskPath = removeClusterFromVDiskPath(vmDiskPath) - requestTime := time.Now() - task, err := virtualDiskManager.DeleteVirtualDisk(ctx, vmDiskPath, dc) + dc, err := vclib.GetDatacenter(ctx, vs.conn, vs.cfg.Global.Datacenter) if err != nil { - recordvSphereMetric(api_deletevolume, requestTime, err) return err } - err = task.Wait(ctx) - recordvSphereMetric(api_deletevolume, requestTime, err) + ds, err := dc.GetDatastoreByName(ctx, vs.cfg.Global.Datastore) + if err != nil { + return err + } + disk := diskmanagers.VirtualDisk{ + DiskPath: vmDiskPath, + VolumeOptions: &vclib.VolumeOptions{}, + VMOptions: &vclib.VMOptions{}, + } + err = disk.Delete(ctx, ds) + if err != nil { + glog.Errorf("Failed to delete vsphere volume with vmDiskPath: %s. err: %+v", vmDiskPath, err) + } return err } requestTime := time.Now() err := deleteVolumeInternal(vmDiskPath) - recordvSphereMetric(operation_deletevolume, requestTime, err) + vclib.RecordvSphereMetric(vclib.OperationDeleteVolume, requestTime, err) return err } - -// NodeExists checks if the node with given nodeName exist. -// Returns false if VM doesn't exist or VM is in powerOff state. -func (vs *VSphere) NodeExists(nodeName k8stypes.NodeName) (bool, error) { - if nodeName == "" { - return false, nil - } - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - _, mvm, err := vs.getVMandMO(ctx, nodeName, "summary") - if err != nil { - glog.Errorf("Failed to getVMandMO for NodeExists: err %v", err) - return false, err - } - - if mvm.Summary.Runtime.PowerState == ActivePowerState { - return true, nil - } - - if mvm.Summary.Config.Template == false { - glog.Warningf("VM %s, is not in %s state", nodeName, ActivePowerState) - } else { - glog.Warningf("VM %s, is a template", nodeName) - } - - return false, nil -} - -// A background routine which will be responsible for deleting stale dummy VM's. -func (vs *VSphere) cleanUpDummyVMs(dummyVMPrefix string) { - // Create context - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - for { - time.Sleep(CleanUpDummyVMRoutine_Interval * time.Minute) - // Ensure client is logged in and session is valid - err := vSphereLogin(ctx, vs) - if err != nil { - glog.V(4).Infof("[cleanUpDummyVMs] Unable to login to vSphere with err: %+v", err) - continue - } - - // Create a new finder - f := find.NewFinder(vs.client.Client, true) - - // Fetch and set data center - dc, err := f.Datacenter(ctx, vs.cfg.Global.Datacenter) - if err != nil { - glog.V(4).Infof("[cleanUpDummyVMs] Unable to fetch the datacenter: %q with err: %+v", vs.cfg.Global.Datacenter, err) - continue - } - f.SetDatacenter(dc) - - // Get the folder reference for global working directory where the dummy VM needs to be created. - vmFolder, err := f.Folder(ctx, strings.TrimSuffix(vs.cfg.Global.WorkingDir, "/")) - if err != nil { - glog.V(4).Infof("[cleanUpDummyVMs] Unable to get the kubernetes folder: %q reference with err: %+v", vs.cfg.Global.WorkingDir, err) - continue - } - - // A write lock is acquired to make sure the cleanUp routine doesn't delete any VM's created by ongoing PVC requests. - cleanUpDummyVMLock.Lock() - vmMoList, err := vs.GetVMsInsideFolder(ctx, vmFolder, []string{NameProperty}) - if err != nil { - glog.V(4).Infof("[cleanUpDummyVMs] Unable to get VM list in the kubernetes cluster: %q reference with err: %+v", vs.cfg.Global.WorkingDir, err) - cleanUpDummyVMLock.Unlock() - continue - } - var dummyVMRefList []*object.VirtualMachine - for _, vmMo := range vmMoList { - if strings.HasPrefix(vmMo.Name, dummyVMPrefix) { - dummyVMRefList = append(dummyVMRefList, object.NewVirtualMachine(vs.client.Client, vmMo.Reference())) - } - } - - for _, dummyVMRef := range dummyVMRefList { - err = deleteVM(ctx, dummyVMRef) - if err != nil { - glog.V(4).Infof("[cleanUpDummyVMs] Unable to delete dummy VM: %q with err: %+v", dummyVMRef.Name(), err) - continue - } - } - cleanUpDummyVMLock.Unlock() - } -} - -func (vs *VSphere) createDummyVM(ctx context.Context, datacenter *object.Datacenter, datastore *object.Datastore, vmName string) (*object.VirtualMachine, error) { - // Create a virtual machine config spec with 1 SCSI adapter. - virtualMachineConfigSpec := types.VirtualMachineConfigSpec{ - Name: vmName, - Files: &types.VirtualMachineFileInfo{ - VmPathName: "[" + datastore.Name() + "]", - }, - NumCPUs: 1, - MemoryMB: 4, - DeviceChange: []types.BaseVirtualDeviceConfigSpec{ - &types.VirtualDeviceConfigSpec{ - Operation: types.VirtualDeviceConfigSpecOperationAdd, - Device: &types.ParaVirtualSCSIController{ - VirtualSCSIController: types.VirtualSCSIController{ - SharedBus: types.VirtualSCSISharingNoSharing, - VirtualController: types.VirtualController{ - BusNumber: 0, - VirtualDevice: types.VirtualDevice{ - Key: 1000, - }, - }, - }, - }, - }, - }, - } - - // Get the resource pool for current node. This is where dummy VM will be created. - resourcePool, err := vs.getCurrentNodeResourcePool(ctx, datacenter) - if err != nil { - return nil, err - } - // Get the folder reference for global working directory where the dummy VM needs to be created. - f := find.NewFinder(vs.client.Client, true) - dc, err := f.Datacenter(ctx, vs.cfg.Global.Datacenter) - f.SetDatacenter(dc) - vmFolder, err := f.Folder(ctx, strings.TrimSuffix(vs.cfg.Global.WorkingDir, "/")) - if err != nil { - return nil, fmt.Errorf("Failed to get the folder reference for %q with err: %+v", vs.cfg.Global.WorkingDir, err) - } - task, err := vmFolder.CreateVM(ctx, virtualMachineConfigSpec, resourcePool, nil) - if err != nil { - return nil, err - } - - dummyVMTaskInfo, err := task.WaitForResult(ctx, nil) - if err != nil { - return nil, err - } - - vmRef := dummyVMTaskInfo.Result.(object.Reference) - dummyVM := object.NewVirtualMachine(vs.client.Client, vmRef.Reference()) - return dummyVM, nil -} - -func (vs *VSphere) getCurrentNodeResourcePool(ctx context.Context, datacenter *object.Datacenter) (*object.ResourcePool, error) { - // Create a new finder - f := find.NewFinder(vs.client.Client, true) - f.SetDatacenter(datacenter) - - vmRegex := vs.cfg.Global.WorkingDir + vs.localInstanceID - currentVM, err := f.VirtualMachine(ctx, vmRegex) - if err != nil { - return nil, err - } - - currentVMHost, err := currentVM.HostSystem(ctx) - if err != nil { - return nil, err - } - - // Get the resource pool for the current node. - // We create the dummy VM in the same resource pool as current node. - resourcePool, err := currentVMHost.ResourcePool(ctx) - if err != nil { - return nil, err - } - - return resourcePool, nil -} - -// Creates a virtual disk with the policy configured to the disk. -// A call to this function is made only when a user specifies VSAN storage capabilties in the storage class definition. -func (vs *VSphere) createVirtualDiskWithPolicy(ctx context.Context, datacenter *object.Datacenter, datastore *object.Datastore, virtualMachine *object.VirtualMachine, volumeOptions *VolumeOptions) (string, error) { - var diskFormat string - diskFormat = diskFormatValidType[volumeOptions.DiskFormat] - - vmDevices, err := virtualMachine.Device(ctx) - if err != nil { - return "", err - } - var diskControllerType = vs.cfg.Disk.SCSIControllerType - // find SCSI controller of particular type from VM devices - scsiControllersOfRequiredType := getSCSIControllersOfType(vmDevices, diskControllerType) - scsiController := scsiControllersOfRequiredType[0] - - kubeVolsPath := filepath.Clean(datastore.Path(VolDir)) + "/" - // Create a kubevols directory in the datastore if one doesn't exist. - err = makeDirectoryInDatastore(vs.client, datacenter, kubeVolsPath, false) - if err != nil && err != ErrFileAlreadyExist { - glog.Errorf("Cannot create dir %#v. err %s", kubeVolsPath, err) - return "", err - } - - glog.V(4).Infof("Created dir with path as %+q", kubeVolsPath) - - vmDiskPath := kubeVolsPath + volumeOptions.Name + ".vmdk" - disk := vmDevices.CreateDisk(scsiController, datastore.Reference(), vmDiskPath) - unitNumber, err := getNextUnitNumber(vmDevices, scsiController) - if err != nil { - glog.Errorf("cannot attach disk to VM, limit reached - %v.", err) - return "", err - } - *disk.UnitNumber = unitNumber - disk.CapacityInKB = int64(volumeOptions.CapacityKB) - - backing := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo) - backing.DiskMode = string(types.VirtualDiskModeIndependent_persistent) - - switch diskFormat { - case ThinDiskType: - backing.ThinProvisioned = types.NewBool(true) - case EagerZeroedThickDiskType: - backing.EagerlyScrub = types.NewBool(true) - default: - backing.ThinProvisioned = types.NewBool(false) - } - - // Reconfigure VM - virtualMachineConfigSpec := types.VirtualMachineConfigSpec{} - deviceConfigSpec := &types.VirtualDeviceConfigSpec{ - Device: disk, - Operation: types.VirtualDeviceConfigSpecOperationAdd, - FileOperation: types.VirtualDeviceConfigSpecFileOperationCreate, - } - - storageProfileSpec := &types.VirtualMachineDefinedProfileSpec{} - // Is PBM storage policy ID is present, set the storage spec profile ID, - // else, set raw the VSAN policy string. - if volumeOptions.StoragePolicyID != "" { - storageProfileSpec.ProfileId = volumeOptions.StoragePolicyID - } else if volumeOptions.VSANStorageProfileData != "" { - storageProfileSpec.ProfileId = "" - storageProfileSpec.ProfileData = &types.VirtualMachineProfileRawData{ - ExtensionKey: "com.vmware.vim.sps", - ObjectData: volumeOptions.VSANStorageProfileData, - } - } - - deviceConfigSpec.Profile = append(deviceConfigSpec.Profile, storageProfileSpec) - virtualMachineConfigSpec.DeviceChange = append(virtualMachineConfigSpec.DeviceChange, deviceConfigSpec) - task, err := virtualMachine.Reconfigure(ctx, virtualMachineConfigSpec) - if err != nil { - glog.Errorf("Failed to reconfigure the VM with the disk with err - %v.", err) - return "", err - } - - err = task.Wait(ctx) - if err != nil { - glog.Errorf("Failed to reconfigure the VM with the disk with err - %v.", err) - return "", err - } - - return vmDiskPath, nil -} - -// creating a scsi controller as there is none found. -func createAndAttachSCSIControllerToVM(ctx context.Context, vm *object.VirtualMachine, diskControllerType string) (types.BaseVirtualDevice, error) { - // Get VM device list - vmDevices, err := vm.Device(ctx) - if err != nil { - return nil, err - } - allSCSIControllers := getSCSIControllers(vmDevices) - if len(allSCSIControllers) >= SCSIControllerLimit { - // we reached the maximum number of controllers we can attach - return nil, fmt.Errorf("SCSI Controller Limit of %d has been reached, cannot create another SCSI controller", SCSIControllerLimit) - } - newSCSIController, err := vmDevices.CreateSCSIController(diskControllerType) - if err != nil { - k8runtime.HandleError(fmt.Errorf("error creating new SCSI controller: %v", err)) - return nil, err - } - configNewSCSIController := newSCSIController.(types.BaseVirtualSCSIController).GetVirtualSCSIController() - hotAndRemove := true - configNewSCSIController.HotAddRemove = &hotAndRemove - configNewSCSIController.SharedBus = types.VirtualSCSISharing(types.VirtualSCSISharingNoSharing) - - // add the scsi controller to virtual machine - err = vm.AddDevice(context.TODO(), newSCSIController) - if err != nil { - glog.V(1).Infof("cannot add SCSI controller to vm - %v", err) - // attempt clean up of scsi controller - if vmDevices, err := vm.Device(ctx); err == nil { - cleanUpController(ctx, newSCSIController, vmDevices, vm) - } - return nil, err - } - return newSCSIController, nil -} - -// Create a virtual disk. -func createVirtualDisk(ctx context.Context, c *govmomi.Client, dc *object.Datacenter, ds *object.Datastore, volumeOptions *VolumeOptions) (string, error) { - kubeVolsPath := filepath.Clean(ds.Path(VolDir)) + "/" - // Create a kubevols directory in the datastore if one doesn't exist. - err := makeDirectoryInDatastore(c, dc, kubeVolsPath, false) - if err != nil && err != ErrFileAlreadyExist { - glog.Errorf("Cannot create dir %#v. err %s", kubeVolsPath, err) - return "", err - } - - glog.V(4).Infof("Created dir with path as %+q", kubeVolsPath) - vmDiskPath := kubeVolsPath + volumeOptions.Name + ".vmdk" - - diskFormat := diskFormatValidType[volumeOptions.DiskFormat] - - // Create a virtual disk manager - virtualDiskManager := object.NewVirtualDiskManager(c.Client) - - // Create specification for new virtual disk - vmDiskSpec := &types.FileBackedVirtualDiskSpec{ - VirtualDiskSpec: types.VirtualDiskSpec{ - AdapterType: LSILogicControllerType, - DiskType: diskFormat, - }, - CapacityKb: int64(volumeOptions.CapacityKB), - } - - // Create virtual disk - requestTime := time.Now() - task, err := virtualDiskManager.CreateVirtualDisk(ctx, vmDiskPath, dc, vmDiskSpec) - if err != nil { - recordvSphereMetric(api_createvolume, requestTime, err) - return "", err - } - err = task.Wait(ctx) - recordvSphereMetric(api_createvolume, requestTime, err) - return vmDiskPath, err -} - -// Check if the provided datastore is VSAN -func checkIfDatastoreTypeIsVSAN(c *govmomi.Client, datastore *object.Datastore) (bool, error) { - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - pc := property.DefaultCollector(c.Client) - - // Convert datastores into list of references - var dsRefs []types.ManagedObjectReference - dsRefs = append(dsRefs, datastore.Reference()) - - // Retrieve summary property for the given datastore - var dsMorefs []mo.Datastore - err := pc.Retrieve(ctx, dsRefs, []string{"summary"}, &dsMorefs) - if err != nil { - return false, err - } - - for _, ds := range dsMorefs { - if ds.Summary.Type == VSANDatastoreType { - return true, nil - } - } - return false, nil -} - -// Creates a folder using the specified name. -// If the intermediate level folders do not exist, -// and the parameter createParents is true, -// all the non-existent folders are created. -func makeDirectoryInDatastore(c *govmomi.Client, dc *object.Datacenter, path string, createParents bool) error { - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - fileManager := object.NewFileManager(c.Client) - err := fileManager.MakeDirectory(ctx, path, dc, createParents) - if err != nil { - if soap.IsSoapFault(err) { - soapFault := soap.ToSoapFault(err) - if _, ok := soapFault.VimFault().(types.FileAlreadyExists); ok { - return ErrFileAlreadyExist - } - } - } - - return err -} - -// Delete the VM. -func deleteVM(ctx context.Context, vm *object.VirtualMachine) error { - destroyTask, err := vm.Destroy(ctx) - if err != nil { - return err - } - return destroyTask.Wait(ctx) -} - -// Remove the cluster or folder path from the vDiskPath -// for vDiskPath [DatastoreCluster/sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk, return value is [sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk -// for vDiskPath [sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk, return value remains same [sharedVmfs-0] kubevols/e2e-vmdk-1234.vmdk - -func removeClusterFromVDiskPath(vDiskPath string) string { - datastore := regexp.MustCompile("\\[(.*?)\\]").FindStringSubmatch(vDiskPath)[1] - if filepath.Base(datastore) != datastore { - vDiskPath = strings.Replace(vDiskPath, datastore, filepath.Base(datastore), 1) - } - return vDiskPath -} diff --git a/pkg/cloudprovider/providers/vsphere/vsphere_metrics.go b/pkg/cloudprovider/providers/vsphere/vsphere_metrics.go deleted file mode 100644 index 81beb0b4a8d..00000000000 --- a/pkg/cloudprovider/providers/vsphere/vsphere_metrics.go +++ /dev/null @@ -1,127 +0,0 @@ -/* -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. -*/ - -package vsphere - -import ( - "github.com/prometheus/client_golang/prometheus" - "time" -) - -const ( - api_createvolume = "CreateVolume" - api_deletevolume = "DeleteVolume" - api_attachvolume = "AttachVolume" - api_detachvolume = "DetachVolume" -) - -const ( - operation_deletevolume = "DeleteVolumeOperation" - operation_attachvolume = "AttachVolumeOperation" - operation_detachvolume = "DetachVolumeOperation" - operation_diskIsAttached = "DiskIsAttachedOperation" - operation_disksAreAttached = "DisksAreAttachedOperation" - operation_createvolume = "CreateVolumeOperation" - operation_createvolume_with_policy = "CreateVolumeWithPolicyOperation" - operation_createvolume_with_raw_vsan_policy = "CreateVolumeWithRawVSANPolicyOperation" -) - -// vsphereApiMetric is for recording latency of Single API Call. -var vsphereApiMetric = prometheus.NewHistogramVec( - prometheus.HistogramOpts{ - Name: "cloudprovider_vsphere_api_request_duration_seconds", - Help: "Latency of vsphere api call", - }, - []string{"request"}, -) - -var vsphereApiErrorMetric = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "cloudprovider_vsphere_api_request_errors", - Help: "vsphere Api errors", - }, - []string{"request"}, -) - -// vsphereOperationMetric is for recording latency of vSphere Operation which invokes multiple APIs to get the task done. -var vsphereOperationMetric = prometheus.NewHistogramVec( - prometheus.HistogramOpts{ - Name: "cloudprovider_vsphere_operation_duration_seconds", - Help: "Latency of vsphere operation call", - }, - []string{"operation"}, -) - -var vsphereOperationErrorMetric = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "cloudprovider_vsphere_operation_errors", - Help: "vsphere operation errors", - }, - []string{"operation"}, -) - -func registerMetrics() { - prometheus.MustRegister(vsphereApiMetric) - prometheus.MustRegister(vsphereApiErrorMetric) - prometheus.MustRegister(vsphereOperationMetric) - prometheus.MustRegister(vsphereOperationErrorMetric) -} - -func recordvSphereMetric(actionName string, requestTime time.Time, err error) { - switch actionName { - case api_createvolume, api_deletevolume, api_attachvolume, api_detachvolume: - recordvSphereAPIMetric(actionName, requestTime, err) - default: - recordvSphereOperationMetric(actionName, requestTime, err) - } -} - -func recordvSphereAPIMetric(actionName string, requestTime time.Time, err error) { - if err != nil { - vsphereApiErrorMetric.With(prometheus.Labels{"request": actionName}).Inc() - } else { - vsphereApiMetric.With(prometheus.Labels{"request": actionName}).Observe(calculateTimeTaken(requestTime)) - } -} - -func recordvSphereOperationMetric(actionName string, requestTime time.Time, err error) { - if err != nil { - vsphereOperationErrorMetric.With(prometheus.Labels{"operation": actionName}).Inc() - } else { - vsphereOperationMetric.With(prometheus.Labels{"operation": actionName}).Observe(calculateTimeTaken(requestTime)) - } -} - -func recordCreateVolumeMetric(volumeOptions *VolumeOptions, requestTime time.Time, err error) { - var actionName string - if volumeOptions.StoragePolicyName != "" { - actionName = operation_createvolume_with_policy - } else if volumeOptions.VSANStorageProfileData != "" { - actionName = operation_createvolume_with_raw_vsan_policy - } else { - actionName = operation_createvolume - } - recordvSphereMetric(actionName, requestTime, err) -} - -func calculateTimeTaken(requestBeginTime time.Time) (timeTaken float64) { - if !requestBeginTime.IsZero() { - timeTaken = time.Since(requestBeginTime).Seconds() - } else { - timeTaken = 0 - } - return timeTaken -} diff --git a/pkg/cloudprovider/providers/vsphere/vsphere_test.go b/pkg/cloudprovider/providers/vsphere/vsphere_test.go index 4dd44a6e7b2..b8b54e99aef 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere_test.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere_test.go @@ -27,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/rand" "k8s.io/kubernetes/pkg/cloudprovider" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" ) func configFromEnv() (cfg VSphereConfig, ok bool) { @@ -125,11 +126,11 @@ func TestVSphereLogin(t *testing.T) { defer cancel() // Create vSphere client - err = vSphereLogin(ctx, vs) + err = vs.conn.Connect(ctx) if err != nil { - t.Errorf("Failed to create vSpere client: %s", err) + t.Errorf("Failed to connect to vSphere: %s", err) } - defer vs.client.Logout(ctx) + defer vs.conn.GoVmomiClient.Logout(ctx) } func TestZones(t *testing.T) { @@ -168,14 +169,14 @@ func TestInstances(t *testing.T) { t.Fatalf("CurrentNodeName() failed: %s", err) } - externalId, err := i.ExternalID(nodeName) + externalID, err := i.ExternalID(nodeName) if err != nil { t.Fatalf("Instances.ExternalID(%s) failed: %s", nodeName, err) } - t.Logf("Found ExternalID(%s) = %s\n", nodeName, externalId) + t.Logf("Found ExternalID(%s) = %s\n", nodeName, externalID) nonExistingVM := types.NodeName(rand.String(15)) - externalId, err = i.ExternalID(nonExistingVM) + externalID, err = i.ExternalID(nonExistingVM) if err == cloudprovider.InstanceNotFound { t.Logf("VM %s was not found as expected\n", nonExistingVM) } else if err == nil { @@ -184,13 +185,13 @@ func TestInstances(t *testing.T) { t.Fatalf("Instances.ExternalID did not fail as expected, err: %v", err) } - instanceId, err := i.InstanceID(nodeName) + instanceID, err := i.InstanceID(nodeName) if err != nil { t.Fatalf("Instances.InstanceID(%s) failed: %s", nodeName, err) } - t.Logf("Found InstanceID(%s) = %s\n", nodeName, instanceId) + t.Logf("Found InstanceID(%s) = %s\n", nodeName, instanceID) - instanceId, err = i.InstanceID(nonExistingVM) + instanceID, err = i.InstanceID(nonExistingVM) if err == cloudprovider.InstanceNotFound { t.Logf("VM %s was not found as expected\n", nonExistingVM) } else if err == nil { @@ -222,7 +223,7 @@ func TestVolumes(t *testing.T) { t.Fatalf("CurrentNodeName() failed: %s", err) } - volumeOptions := &VolumeOptions{ + volumeOptions := &vclib.VolumeOptions{ CapacityKB: 1 * 1024 * 1024, Tags: nil, Name: "kubernetes-test-volume-" + rand.String(10), @@ -233,7 +234,7 @@ func TestVolumes(t *testing.T) { t.Fatalf("Cannot create a new VMDK volume: %v", err) } - _, _, err = vs.AttachDisk(volPath, "", "") + _, err = vs.AttachDisk(volPath, "", "") if err != nil { t.Fatalf("Cannot attach volume(%s) to VM(%s): %v", volPath, nodeName, err) } @@ -249,36 +250,3 @@ func TestVolumes(t *testing.T) { // t.Fatalf("Cannot delete VMDK volume %s: %v", volPath, err) // } } - -func TestGetVMName(t *testing.T) { - cfg, ok := configFromEnv() - if !ok { - t.Skipf("No config found in environment") - } - - // Create vSphere configuration object - vs, err := newVSphere(cfg) - if err != nil { - t.Fatalf("Failed to construct/authenticate vSphere: %s", err) - } - - // Create context - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // Create vSphere client - err = vSphereLogin(ctx, vs) - if err != nil { - t.Errorf("Failed to create vSpere client: %s", err) - } - defer vs.client.Logout(ctx) - - // Get VM name - vmName, err := getVMName(vs.client, &cfg) - if err != nil { - t.Fatalf("Failed to get VM name: %s", err) - } - if vmName != "vmname" { - t.Errorf("Expect VM name 'vmname', got: %s", vmName) - } -} diff --git a/pkg/cloudprovider/providers/vsphere/vsphere_util.go b/pkg/cloudprovider/providers/vsphere/vsphere_util.go index a5bd63b15c5..54e09cd7d56 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere_util.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere_util.go @@ -18,21 +18,23 @@ package vsphere import ( "context" + "errors" + "io/ioutil" "os" "runtime" "strings" + "time" + + "github.com/golang/glog" + "github.com/vmware/govmomi" + "github.com/vmware/govmomi/object" + "github.com/vmware/govmomi/vim25" + "github.com/vmware/govmomi/vim25/mo" "fmt" - "github.com/vmware/govmomi" - "github.com/vmware/govmomi/find" - "github.com/vmware/govmomi/object" - "github.com/vmware/govmomi/pbm" - "github.com/vmware/govmomi/property" - "github.com/vmware/govmomi/vim25/mo" - "github.com/vmware/govmomi/vim25/types" - - pbmtypes "github.com/vmware/govmomi/pbm/types" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers" ) const ( @@ -42,15 +44,17 @@ const ( VirtualMachine = "VirtualMachine" ) -// Reads vSphere configuration from system environment and construct vSphere object +// GetVSphere reads vSphere configuration from system environment and construct vSphere object func GetVSphere() (*VSphere, error) { cfg := getVSphereConfig() - client, err := GetgovmomiClient(cfg) + vSphereConn := getVSphereConn(cfg) + client, err := GetgovmomiClient(vSphereConn) if err != nil { return nil, err } + vSphereConn.GoVmomiClient = client vs := &VSphere{ - client: client, + conn: vSphereConn, cfg: cfg, localInstanceID: "", } @@ -75,233 +79,217 @@ func getVSphereConfig() *VSphereConfig { return &cfg } -func GetgovmomiClient(cfg *VSphereConfig) (*govmomi.Client, error) { - if cfg == nil { - cfg = getVSphereConfig() +func getVSphereConn(cfg *VSphereConfig) *vclib.VSphereConnection { + vSphereConn := &vclib.VSphereConnection{ + Username: cfg.Global.User, + Password: cfg.Global.Password, + Hostname: cfg.Global.VCenterIP, + Insecure: cfg.Global.InsecureFlag, + RoundTripperCount: cfg.Global.RoundTripperCount, + Port: cfg.Global.VCenterPort, } - client, err := newClient(context.TODO(), cfg) + return vSphereConn +} + +// GetgovmomiClient gets the goVMOMI client for the vsphere connection object +func GetgovmomiClient(conn *vclib.VSphereConnection) (*govmomi.Client, error) { + if conn == nil { + cfg := getVSphereConfig() + conn = getVSphereConn(cfg) + } + client, err := conn.NewClient(context.TODO()) return client, err } -// Get placement compatibility result based on storage policy requirements. -func (vs *VSphere) GetPlacementCompatibilityResult(ctx context.Context, pbmClient *pbm.Client, storagePolicyID string) (pbm.PlacementCompatibilityResult, error) { - datastores, err := vs.getSharedDatastoresInK8SCluster(ctx) +// getvmUUID gets the BIOS UUID via the sys interface. This UUID is known by vsphere +func getvmUUID() (string, error) { + id, err := ioutil.ReadFile(UUIDPath) if err != nil { - return nil, err + return "", fmt.Errorf("error retrieving vm uuid: %s", err) } - var hubs []pbmtypes.PbmPlacementHub - for _, ds := range datastores { - hubs = append(hubs, pbmtypes.PbmPlacementHub{ - HubType: ds.Type, - HubId: ds.Value, - }) + uuidFromFile := string(id[:]) + //strip leading and trailing white space and new line char + uuid := strings.TrimSpace(uuidFromFile) + // check the uuid starts with "VMware-" + if !strings.HasPrefix(uuid, UUIDPrefix) { + return "", fmt.Errorf("Failed to match Prefix, UUID read from the file is %v", uuidFromFile) } - req := []pbmtypes.BasePbmPlacementRequirement{ - &pbmtypes.PbmPlacementCapabilityProfileRequirement{ - ProfileId: pbmtypes.PbmProfileId{ - UniqueId: storagePolicyID, - }, - }, + // Strip the prefix and while spaces and - + uuid = strings.Replace(uuid[len(UUIDPrefix):(len(uuid))], " ", "", -1) + uuid = strings.Replace(uuid, "-", "", -1) + if len(uuid) != 32 { + return "", fmt.Errorf("Length check failed, UUID read from the file is %v", uuidFromFile) } - res, err := pbmClient.CheckRequirements(ctx, hubs, nil, req) - if err != nil { - return nil, err - } - return res, nil -} - -// Verify if the user specified datastore is in the list of non-compatible datastores. -// If yes, return the non compatible datastore reference. -func (vs *VSphere) IsUserSpecifiedDatastoreNonCompatible(ctx context.Context, compatibilityResult pbm.PlacementCompatibilityResult, dsName string) (bool, *types.ManagedObjectReference) { - dsMoList := vs.GetNonCompatibleDatastoresMo(ctx, compatibilityResult) - for _, ds := range dsMoList { - if ds.Info.GetDatastoreInfo().Name == dsName { - dsMoRef := ds.Reference() - return true, &dsMoRef - } - } - return false, nil -} - -func GetNonCompatibleDatastoreFaultMsg(compatibilityResult pbm.PlacementCompatibilityResult, dsMoref types.ManagedObjectReference) string { - var faultMsg string - for _, res := range compatibilityResult { - if res.Hub.HubId == dsMoref.Value { - for _, err := range res.Error { - faultMsg = faultMsg + err.LocalizedMessage - } - } - } - return faultMsg -} - -// Get the best fit compatible datastore by free space. -func GetMostFreeDatastore(dsMo []mo.Datastore) mo.Datastore { - var curMax int64 - curMax = -1 - var index int - for i, ds := range dsMo { - dsFreeSpace := ds.Info.GetDatastoreInfo().FreeSpace - if dsFreeSpace > curMax { - curMax = dsFreeSpace - index = i - } - } - return dsMo[index] -} - -func (vs *VSphere) GetCompatibleDatastoresMo(ctx context.Context, compatibilityResult pbm.PlacementCompatibilityResult) ([]mo.Datastore, error) { - compatibleHubs := compatibilityResult.CompatibleDatastores() - // Return an error if there are no compatible datastores. - if len(compatibleHubs) < 1 { - return nil, fmt.Errorf("There are no compatible datastores that satisfy the storage policy requirements") - } - dsMoList, err := vs.getDatastoreMo(ctx, compatibleHubs) - if err != nil { - return nil, err - } - return dsMoList, nil -} - -func (vs *VSphere) GetNonCompatibleDatastoresMo(ctx context.Context, compatibilityResult pbm.PlacementCompatibilityResult) []mo.Datastore { - nonCompatibleHubs := compatibilityResult.NonCompatibleDatastores() - // Return an error if there are no compatible datastores. - if len(nonCompatibleHubs) < 1 { - return nil - } - dsMoList, err := vs.getDatastoreMo(ctx, nonCompatibleHubs) - if err != nil { - return nil - } - return dsMoList -} - -// Get the datastore managed objects for the place hubs using property collector. -func (vs *VSphere) getDatastoreMo(ctx context.Context, hubs []pbmtypes.PbmPlacementHub) ([]mo.Datastore, error) { - var dsMoRefs []types.ManagedObjectReference - for _, hub := range hubs { - dsMoRefs = append(dsMoRefs, types.ManagedObjectReference{ - Type: hub.HubType, - Value: hub.HubId, - }) - } - - pc := property.DefaultCollector(vs.client.Client) - var dsMoList []mo.Datastore - err := pc.Retrieve(ctx, dsMoRefs, []string{DatastoreInfoProperty}, &dsMoList) - if err != nil { - return nil, err - } - return dsMoList, nil + // need to add dashes, e.g. "564d395e-d807-e18a-cb25-b79f65eb2b9f" + uuid = fmt.Sprintf("%s-%s-%s-%s-%s", uuid[0:8], uuid[8:12], uuid[12:16], uuid[16:20], uuid[20:32]) + return uuid, nil } // Get all datastores accessible for the virtual machine object. -func (vs *VSphere) getSharedDatastoresInK8SCluster(ctx context.Context) ([]types.ManagedObjectReference, error) { - f := find.NewFinder(vs.client.Client, true) - dc, err := f.Datacenter(ctx, vs.cfg.Global.Datacenter) - f.SetDatacenter(dc) - vmFolder, err := f.Folder(ctx, strings.TrimSuffix(vs.cfg.Global.WorkingDir, "/")) +func getSharedDatastoresInK8SCluster(ctx context.Context, folder *vclib.Folder) ([]*vclib.Datastore, error) { + vmList, err := folder.GetVirtualMachines(ctx) if err != nil { + glog.Errorf("Failed to get virtual machines in the kubernetes cluster: %s, err: %+v", folder.InventoryPath, err) return nil, err } - vmMoList, err := vs.GetVMsInsideFolder(ctx, vmFolder, []string{NameProperty}) - if err != nil { - return nil, err + if vmList == nil || len(vmList) == 0 { + glog.Errorf("No virtual machines found in the kubernetes cluster: %s", folder.InventoryPath) + return nil, fmt.Errorf("No virtual machines found in the kubernetes cluster: %s", folder.InventoryPath) } index := 0 - var sharedDs []string - for _, vmMo := range vmMoList { - if !strings.HasPrefix(vmMo.Name, DummyVMPrefixName) { - accessibleDatastores, err := vs.getAllAccessibleDatastores(ctx, vmMo) + var sharedDatastores []*vclib.Datastore + for _, vm := range vmList { + vmName, err := vm.ObjectName(ctx) + if err != nil { + return nil, err + } + if !strings.HasPrefix(vmName, DummyVMPrefixName) { + accessibleDatastores, err := vm.GetAllAccessibleDatastores(ctx) if err != nil { return nil, err } if index == 0 { - sharedDs = accessibleDatastores + sharedDatastores = accessibleDatastores } else { - sharedDs = intersect(sharedDs, accessibleDatastores) - if len(sharedDs) == 0 { - return nil, fmt.Errorf("No shared datastores found in the Kubernetes cluster") + sharedDatastores = intersect(sharedDatastores, accessibleDatastores) + if len(sharedDatastores) == 0 { + return nil, fmt.Errorf("No shared datastores found in the Kubernetes cluster: %s", folder.InventoryPath) } } index++ } } - var sharedDSMorefs []types.ManagedObjectReference - for _, ds := range sharedDs { - sharedDSMorefs = append(sharedDSMorefs, types.ManagedObjectReference{ - Value: ds, - Type: "Datastore", - }) - } - return sharedDSMorefs, nil + return sharedDatastores, nil } -func intersect(list1 []string, list2 []string) []string { - var sharedList []string +func intersect(list1 []*vclib.Datastore, list2 []*vclib.Datastore) []*vclib.Datastore { + var sharedDs []*vclib.Datastore for _, val1 := range list1 { // Check if val1 is found in list2 for _, val2 := range list2 { - if val1 == val2 { - sharedList = append(sharedList, val1) + if val1.Reference().Value == val2.Reference().Value { + sharedDs = append(sharedDs, val1) break } } } - return sharedList -} - -// Get the VM list inside a folder. -func (vs *VSphere) GetVMsInsideFolder(ctx context.Context, vmFolder *object.Folder, properties []string) ([]mo.VirtualMachine, error) { - vmFolders, err := vmFolder.Children(ctx) - if err != nil { - return nil, err - } - - pc := property.DefaultCollector(vs.client.Client) - var vmRefs []types.ManagedObjectReference - var vmMoList []mo.VirtualMachine - for _, vmFolder := range vmFolders { - if vmFolder.Reference().Type == VirtualMachine { - vmRefs = append(vmRefs, vmFolder.Reference()) - } - } - err = pc.Retrieve(ctx, vmRefs, properties, &vmMoList) - if err != nil { - return nil, err - } - return vmMoList, nil + return sharedDs } // Get the datastores accessible for the virtual machine object. -func (vs *VSphere) getAllAccessibleDatastores(ctx context.Context, vmMo mo.VirtualMachine) ([]string, error) { - f := find.NewFinder(vs.client.Client, true) - dc, err := f.Datacenter(ctx, vs.cfg.Global.Datacenter) - if err != nil { - return nil, err +func getAllAccessibleDatastores(ctx context.Context, client *vim25.Client, vmMo mo.VirtualMachine) ([]string, error) { + host := vmMo.Summary.Runtime.Host + if host == nil { + return nil, errors.New("VM doesn't have a HostSystem") } - f.SetDatacenter(dc) - vmRegex := vs.cfg.Global.WorkingDir + vmMo.Name - vmObj, err := f.VirtualMachine(ctx, vmRegex) - if err != nil { - return nil, err - } - - host, err := vmObj.HostSystem(ctx) - if err != nil { - return nil, err - } - var hostSystemMo mo.HostSystem - s := object.NewSearchIndex(vs.client.Client) - err = s.Properties(ctx, host.Reference(), []string{DatastoreProperty}, &hostSystemMo) + s := object.NewSearchIndex(client) + err := s.Properties(ctx, host.Reference(), []string{DatastoreProperty}, &hostSystemMo) if err != nil { return nil, err } - var dsRefValues []string for _, dsRef := range hostSystemMo.Datastore { dsRefValues = append(dsRefValues, dsRef.Value) } return dsRefValues, nil } + +// getMostFreeDatastore gets the best fit compatible datastore by free space. +func getMostFreeDatastoreName(ctx context.Context, client *vim25.Client, dsObjList []*vclib.Datastore) (string, error) { + dsMoList, err := dsObjList[0].Datacenter.GetDatastoreMoList(ctx, dsObjList, []string{DatastoreInfoProperty}) + if err != nil { + return "", err + } + var curMax int64 + curMax = -1 + var index int + for i, dsMo := range dsMoList { + dsFreeSpace := dsMo.Info.GetDatastoreInfo().FreeSpace + if dsFreeSpace > curMax { + curMax = dsFreeSpace + index = i + } + } + return dsMoList[index].Info.GetDatastoreInfo().Name, nil +} + +func getPbmCompatibleDatastore(ctx context.Context, client *vim25.Client, storagePolicyName string, folder *vclib.Folder) (string, error) { + pbmClient, err := vclib.NewPbmClient(ctx, client) + if err != nil { + return "", err + } + storagePolicyID, err := pbmClient.ProfileIDByName(ctx, storagePolicyName) + if err != nil { + glog.Errorf("Failed to get Profile ID by name: %s. err: %+v", storagePolicyName, err) + return "", err + } + sharedDsList, err := getSharedDatastoresInK8SCluster(ctx, folder) + if err != nil { + glog.Errorf("Failed to get shared datastores from kubernetes cluster: %s. err: %+v", folder.InventoryPath, err) + return "", err + } + compatibleDatastores, _, err := pbmClient.GetCompatibleDatastores(ctx, storagePolicyID, sharedDsList) + if err != nil { + glog.Errorf("Failed to get compatible datastores from datastores : %+v with storagePolicy: %s. err: %+v", sharedDsList, storagePolicyID, err) + return "", err + } + datastore, err := getMostFreeDatastoreName(ctx, client, compatibleDatastores) + if err != nil { + glog.Errorf("Failed to get most free datastore from compatible datastores: %+v. err: %+v", compatibleDatastores, err) + return "", err + } + return datastore, err +} + +func (vs *VSphere) setVMOptions(ctx context.Context, dc *vclib.Datacenter) (*vclib.VMOptions, error) { + var vmOptions vclib.VMOptions + vm, err := dc.GetVMByPath(ctx, vs.cfg.Global.WorkingDir+"/"+vs.localInstanceID) + if err != nil { + return nil, err + } + resourcePool, err := vm.GetResourcePool(ctx) + if err != nil { + return nil, err + } + folder, err := dc.GetFolderByPath(ctx, vs.cfg.Global.WorkingDir) + if err != nil { + return nil, err + } + vmOptions.VMFolder = folder + vmOptions.VMResourcePool = resourcePool + return &vmOptions, nil +} + +// A background routine which will be responsible for deleting stale dummy VM's. +func (vs *VSphere) cleanUpDummyVMs(dummyVMPrefix string) { + // Create context + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + for { + time.Sleep(CleanUpDummyVMRoutineInterval * time.Minute) + // Ensure client is logged in and session is valid + err := vs.conn.Connect(ctx) + if err != nil { + glog.V(4).Infof("Failed to connect to VC with err: %+v. Retrying again...", err) + continue + } + dc, err := vclib.GetDatacenter(ctx, vs.conn, vs.cfg.Global.Datacenter) + if err != nil { + glog.V(4).Infof("Failed to get the datacenter: %s from VC. err: %+v", vs.cfg.Global.Datacenter, err) + continue + } + // Get the folder reference for global working directory where the dummy VM needs to be created. + vmFolder, err := dc.GetFolderByPath(ctx, vs.cfg.Global.WorkingDir) + if err != nil { + glog.V(4).Infof("Unable to get the kubernetes folder: %q reference. err: %+v", vs.cfg.Global.WorkingDir, err) + continue + } + // A write lock is acquired to make sure the cleanUp routine doesn't delete any VM's created by ongoing PVC requests. + defer cleanUpDummyVMLock.Lock() + err = diskmanagers.CleanUpDummyVMs(ctx, vmFolder, dc) + if err != nil { + glog.V(4).Infof("Unable to clean up dummy VM's in the kubernetes cluster: %q. err: %+v", vs.cfg.Global.WorkingDir, err) + } + } +} diff --git a/pkg/volume/vsphere_volume/BUILD b/pkg/volume/vsphere_volume/BUILD index 452fe1ae8bb..426a7efeaf2 100644 --- a/pkg/volume/vsphere_volume/BUILD +++ b/pkg/volume/vsphere_volume/BUILD @@ -19,6 +19,7 @@ go_library( deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/vsphere:go_default_library", + "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", "//pkg/util/keymutex:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -43,7 +44,7 @@ go_test( library = ":go_default_library", tags = ["automanaged"], deps = [ - "//pkg/cloudprovider/providers/vsphere:go_default_library", + "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", "//pkg/volume/testing:go_default_library", diff --git a/pkg/volume/vsphere_volume/attacher.go b/pkg/volume/vsphere_volume/attacher.go index 9155d84adaf..f7a58c80d4e 100644 --- a/pkg/volume/vsphere_volume/attacher.go +++ b/pkg/volume/vsphere_volume/attacher.go @@ -75,7 +75,7 @@ func (attacher *vsphereVMDKAttacher) Attach(spec *volume.Spec, nodeName types.No // vsphereCloud.AttachDisk checks if disk is already attached to host and // succeeds in that case, so no need to do that separately. - _, diskUUID, err := attacher.vsphereVolumes.AttachDisk(volumeSource.VolumePath, volumeSource.StoragePolicyID, nodeName) + diskUUID, err := attacher.vsphereVolumes.AttachDisk(volumeSource.VolumePath, volumeSource.StoragePolicyID, nodeName) if err != nil { glog.Errorf("Error attaching volume %q to node %q: %+v", volumeSource.VolumePath, nodeName, err) return "", err diff --git a/pkg/volume/vsphere_volume/attacher_test.go b/pkg/volume/vsphere_volume/attacher_test.go index a6f07625334..dbd007dfb06 100644 --- a/pkg/volume/vsphere_volume/attacher_test.go +++ b/pkg/volume/vsphere_volume/attacher_test.go @@ -21,7 +21,7 @@ import ( "testing" "k8s.io/api/core/v1" - "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/volume" volumetest "k8s.io/kubernetes/pkg/volume/testing" @@ -233,29 +233,29 @@ type diskIsAttachedCall struct { ret error } -func (testcase *testcase) AttachDisk(diskName string, storagePolicyName string, nodeName types.NodeName) (string, string, error) { +func (testcase *testcase) AttachDisk(diskName string, storagePolicyName string, nodeName types.NodeName) (string, error) { expected := &testcase.attach if expected.diskName == "" && expected.nodeName == "" { // testcase.attach looks uninitialized, test did not expect to call // AttachDisk testcase.t.Errorf("Unexpected AttachDisk call!") - return "", "", errors.New("Unexpected AttachDisk call!") + return "", errors.New("Unexpected AttachDisk call!") } if expected.diskName != diskName { testcase.t.Errorf("Unexpected AttachDisk call: expected diskName %s, got %s", expected.diskName, diskName) - return "", "", errors.New("Unexpected AttachDisk call: wrong diskName") + return "", errors.New("Unexpected AttachDisk call: wrong diskName") } if expected.nodeName != nodeName { testcase.t.Errorf("Unexpected AttachDisk call: expected nodeName %s, got %s", expected.nodeName, nodeName) - return "", "", errors.New("Unexpected AttachDisk call: wrong nodeName") + return "", errors.New("Unexpected AttachDisk call: wrong nodeName") } glog.V(4).Infof("AttachDisk call: %s, %s, returning %q, %v", diskName, nodeName, expected.retDeviceUUID, expected.ret) - return "", expected.retDeviceUUID, expected.ret + return expected.retDeviceUUID, expected.ret } func (testcase *testcase) DetachDisk(diskName string, nodeName types.NodeName) error { @@ -312,7 +312,7 @@ func (testcase *testcase) DisksAreAttached(diskNames []string, nodeName types.No return nil, errors.New("Not implemented") } -func (testcase *testcase) CreateVolume(volumeOptions *vsphere.VolumeOptions) (volumePath string, err error) { +func (testcase *testcase) CreateVolume(volumeOptions *vclib.VolumeOptions) (volumePath string, err error) { return "", errors.New("Not implemented") } diff --git a/pkg/volume/vsphere_volume/vsphere_volume_util.go b/pkg/volume/vsphere_volume/vsphere_volume_util.go index 4a43402a61c..62ce1f7620b 100644 --- a/pkg/volume/vsphere_volume/vsphere_volume_util.go +++ b/pkg/volume/vsphere_volume/vsphere_volume_util.go @@ -27,6 +27,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/volume" volumeutil "k8s.io/kubernetes/pkg/volume/util" ) @@ -94,7 +95,7 @@ func (util *VsphereDiskUtil) CreateVolume(v *vsphereVolumeProvisioner) (volSpec // vSphere works with kilobytes, convert to KiB with rounding up volSizeKB := int(volume.RoundUpSize(volSizeBytes, 1024)) name := volume.GenerateVolumeName(v.options.ClusterName, v.options.PVName, 255) - volumeOptions := &vsphere.VolumeOptions{ + volumeOptions := &vclib.VolumeOptions{ CapacityKB: volSizeKB, Tags: *v.options.CloudTags, Name: name, @@ -129,7 +130,7 @@ func (util *VsphereDiskUtil) CreateVolume(v *vsphereVolumeProvisioner) (volSpec if volumeOptions.VSANStorageProfileData != "" { if volumeOptions.StoragePolicyName != "" { - return nil, fmt.Errorf("Cannot specify storage policy capabilities along with storage policy name. Please specify only one.") + return nil, fmt.Errorf("Cannot specify storage policy capabilities along with storage policy name. Please specify only one") } volumeOptions.VSANStorageProfileData = "(" + volumeOptions.VSANStorageProfileData + ")" } @@ -141,7 +142,6 @@ func (util *VsphereDiskUtil) CreateVolume(v *vsphereVolumeProvisioner) (volSpec vmDiskPath, err := cloud.CreateVolume(volumeOptions) if err != nil { - glog.V(2).Infof("Error creating vsphere volume: %v", err) return nil, err } volSpec = &VolumeSpec{ From 3080bd87903583a07d12cc86f9880c3df817d22f Mon Sep 17 00:00:00 2001 From: Balu Dontu Date: Wed, 2 Aug 2017 08:05:39 -0700 Subject: [PATCH 031/183] e2e test changes --- test/e2e/storage/BUILD | 1 + .../e2e/storage/persistent_volumes-vsphere.go | 2 +- test/e2e/storage/vsphere_utils.go | 5 +- test/e2e/storage/vsphere_volume_fstype.go | 73 +++++-------------- test/e2e/storage/vsphere_volume_placement.go | 5 +- .../e2e/storage/vsphere_volume_vsan_policy.go | 4 +- 6 files changed, 29 insertions(+), 61 deletions(-) diff --git a/test/e2e/storage/BUILD b/test/e2e/storage/BUILD index 0de56a0211d..15cb3415699 100644 --- a/test/e2e/storage/BUILD +++ b/test/e2e/storage/BUILD @@ -36,6 +36,7 @@ go_library( "//pkg/api/v1/helper:go_default_library", "//pkg/apis/storage/v1/util:go_default_library", "//pkg/cloudprovider/providers/vsphere:go_default_library", + "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/volume/util/volumehelper:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/test/e2e/storage/persistent_volumes-vsphere.go b/test/e2e/storage/persistent_volumes-vsphere.go index d4f8cba606c..9e9caa1b503 100644 --- a/test/e2e/storage/persistent_volumes-vsphere.go +++ b/test/e2e/storage/persistent_volumes-vsphere.go @@ -102,7 +102,7 @@ var _ = SIGDescribe("PersistentVolumes:vsphere", func() { By("Creating the Client Pod") clientPod, err = framework.CreateClientPod(c, ns, pvc) Expect(err).NotTo(HaveOccurred()) - node := types.NodeName(clientPod.Spec.NodeName) + node = types.NodeName(clientPod.Spec.NodeName) By("Verify disk should be attached to the node") isAttached, err := verifyVSphereDiskAttached(vsp, volumePath, node) diff --git a/test/e2e/storage/vsphere_utils.go b/test/e2e/storage/vsphere_utils.go index 2ff91a3b932..57e159c0ace 100644 --- a/test/e2e/storage/vsphere_utils.go +++ b/test/e2e/storage/vsphere_utils.go @@ -33,6 +33,7 @@ import ( "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" vsphere "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/pkg/volume/util/volumehelper" "k8s.io/kubernetes/test/e2e/framework" ) @@ -160,13 +161,13 @@ func getVSpherePersistentVolumeClaimSpec(namespace string, labels map[string]str } // function to create vmdk volume -func createVSphereVolume(vsp *vsphere.VSphere, volumeOptions *vsphere.VolumeOptions) (string, error) { +func createVSphereVolume(vsp *vsphere.VSphere, volumeOptions *vclib.VolumeOptions) (string, error) { var ( volumePath string err error ) if volumeOptions == nil { - volumeOptions = new(vsphere.VolumeOptions) + volumeOptions = new(vclib.VolumeOptions) volumeOptions.CapacityKB = 2097152 volumeOptions.Name = "e2e-vmdk-" + strconv.FormatInt(time.Now().UnixNano(), 10) } diff --git a/test/e2e/storage/vsphere_volume_fstype.go b/test/e2e/storage/vsphere_volume_fstype.go index 6a706431543..e62af60196a 100644 --- a/test/e2e/storage/vsphere_volume_fstype.go +++ b/test/e2e/storage/vsphere_volume_fstype.go @@ -22,8 +22,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "k8s.io/api/core/v1" - storage "k8s.io/api/storage/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" k8stype "k8s.io/apimachinery/pkg/types" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" @@ -48,10 +46,8 @@ import ( var _ = SIGDescribe("vsphere Volume fstype", func() { f := framework.NewDefaultFramework("volume-fstype") var ( - client clientset.Interface - namespace string - storageclass *storage.StorageClass - pvclaim *v1.PersistentVolumeClaim + client clientset.Interface + namespace string ) BeforeEach(func() { framework.SkipUnlessProviderIs("vsphere") @@ -60,87 +56,56 @@ var _ = SIGDescribe("vsphere Volume fstype", func() { nodeList := framework.GetReadySchedulableNodesOrDie(f.ClientSet) Expect(len(nodeList.Items)).NotTo(BeZero(), "Unable to find ready and schedulable Node") }) - AfterEach(func() { - var scDeleteError error - var pvDeleteError error - if storageclass != nil { - scDeleteError = client.StorageV1beta1().StorageClasses().Delete(storageclass.Name, nil) - } - if pvclaim != nil { - pvDeleteError = client.CoreV1().PersistentVolumeClaims(namespace).Delete(pvclaim.Name, nil) - } - framework.ExpectNoError(scDeleteError) - framework.ExpectNoError(pvDeleteError) - storageclass = nil - pvclaim = nil - }) It("verify fstype - ext3 formatted volume", func() { By("Invoking Test for fstype: ext3") - storageclass, pvclaim = invokeTestForFstype(f, client, namespace, "ext3", "ext3") + invokeTestForFstype(f, client, namespace, "ext3", "ext3") }) It("verify disk format type - default value should be ext4", func() { By("Invoking Test for fstype: Default Value") - storageclass, pvclaim = invokeTestForFstype(f, client, namespace, "", "ext4") + invokeTestForFstype(f, client, namespace, "", "ext4") }) }) -func invokeTestForFstype(f *framework.Framework, client clientset.Interface, namespace string, fstype string, expectedContent string) (*storage.StorageClass, *v1.PersistentVolumeClaim) { - +func invokeTestForFstype(f *framework.Framework, client clientset.Interface, namespace string, fstype string, expectedContent string) { framework.Logf("Invoking Test for fstype: %s", fstype) scParameters := make(map[string]string) scParameters["fstype"] = fstype By("Creating Storage Class With Fstype") - storageClassSpec := getVSphereStorageClassSpec("fstype", scParameters) - storageclass, err := client.StorageV1().StorageClasses().Create(storageClassSpec) + storageclass, err := client.StorageV1().StorageClasses().Create(getVSphereStorageClassSpec("fstype", scParameters)) Expect(err).NotTo(HaveOccurred()) + defer client.StorageV1().StorageClasses().Delete(storageclass.Name, nil) By("Creating PVC using the Storage Class") - pvclaimSpec := getVSphereClaimSpecWithStorageClassAnnotation(namespace, storageclass) - pvclaim, err := client.CoreV1().PersistentVolumeClaims(namespace).Create(pvclaimSpec) + pvclaim, err := client.CoreV1().PersistentVolumeClaims(namespace).Create(getVSphereClaimSpecWithStorageClassAnnotation(namespace, storageclass)) Expect(err).NotTo(HaveOccurred()) + defer framework.DeletePersistentVolumeClaim(client, pvclaim.Name, namespace) + var pvclaims []*v1.PersistentVolumeClaim + pvclaims = append(pvclaims, pvclaim) By("Waiting for claim to be in bound phase") - err = framework.WaitForPersistentVolumeClaimPhase(v1.ClaimBound, client, pvclaim.Namespace, pvclaim.Name, framework.Poll, framework.ClaimProvisionTimeout) - Expect(err).NotTo(HaveOccurred()) - - // Get new copy of the claim - pvclaim, err = client.CoreV1().PersistentVolumeClaims(pvclaim.Namespace).Get(pvclaim.Name, metav1.GetOptions{}) - Expect(err).NotTo(HaveOccurred()) - - // Get the bound PV - pv, err := client.CoreV1().PersistentVolumes().Get(pvclaim.Spec.VolumeName, metav1.GetOptions{}) + persistentvolumes, err := framework.WaitForPVClaimBoundPhase(client, pvclaims) Expect(err).NotTo(HaveOccurred()) By("Creating pod to attach PV to the node") // Create pod to attach Volume to Node - podSpec := getVSpherePodSpecWithClaim(pvclaim.Name, nil, "/bin/df -T /mnt/test | /bin/awk 'FNR == 2 {print $2}' > /mnt/test/fstype && while true ; do sleep 2 ; done") - pod, err := client.CoreV1().Pods(namespace).Create(podSpec) - Expect(err).NotTo(HaveOccurred()) - - By("Waiting for pod to be running") - Expect(framework.WaitForPodNameRunningInNamespace(client, pod.Name, namespace)).To(Succeed()) - - pod, err = client.CoreV1().Pods(namespace).Get(pod.Name, metav1.GetOptions{}) + pod, err := framework.CreatePod(client, namespace, pvclaims, false, "") Expect(err).NotTo(HaveOccurred()) // Asserts: Right disk is attached to the pod vsp, err := vsphere.GetVSphere() Expect(err).NotTo(HaveOccurred()) - isAttached, err := verifyVSphereDiskAttached(vsp, pv.Spec.VsphereVolume.VolumePath, k8stype.NodeName(pod.Spec.NodeName)) - Expect(err).NotTo(HaveOccurred()) - Expect(isAttached).To(BeTrue(), "disk is not attached with the node") + By("Verify the volume is accessible and available in the pod") + verifyVSphereVolumesAccessible(pod, persistentvolumes, vsp) _, err = framework.LookForStringInPodExec(namespace, pod.Name, []string{"/bin/cat", "/mnt/test/fstype"}, expectedContent, time.Minute) Expect(err).NotTo(HaveOccurred()) - var volumePaths []string - volumePaths = append(volumePaths, pv.Spec.VsphereVolume.VolumePath) + By("Deleting pod") + framework.DeletePodWithWait(f, client, pod) - By("Delete pod and wait for volume to be detached from node") - deletePodAndWaitForVolumeToDetach(f, client, pod, vsp, pod.Spec.NodeName, volumePaths) - - return storageclass, pvclaim + By("Waiting for volumes to be detached from the node") + waitForVSphereDiskToDetach(vsp, persistentvolumes[0].Spec.VsphereVolume.VolumePath, k8stype.NodeName(pod.Spec.NodeName)) } diff --git a/test/e2e/storage/vsphere_volume_placement.go b/test/e2e/storage/vsphere_volume_placement.go index 559f6863a51..e5a50a6adfb 100644 --- a/test/e2e/storage/vsphere_volume_placement.go +++ b/test/e2e/storage/vsphere_volume_placement.go @@ -29,6 +29,7 @@ import ( "k8s.io/apimachinery/pkg/util/uuid" clientset "k8s.io/client-go/kubernetes" vsphere "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere/vclib" "k8s.io/kubernetes/test/e2e/framework" ) @@ -216,8 +217,8 @@ var _ = SIGDescribe("Volume Placement", func() { */ It("should create and delete pod with multiple volumes from different datastore", func() { By("creating another vmdk on non default shared datastore") - var volumeOptions *vsphere.VolumeOptions - volumeOptions = new(vsphere.VolumeOptions) + var volumeOptions *vclib.VolumeOptions + volumeOptions = new(vclib.VolumeOptions) volumeOptions.CapacityKB = 2097152 volumeOptions.Name = "e2e-vmdk-" + strconv.FormatInt(time.Now().UnixNano(), 10) volumeOptions.Datastore = os.Getenv("VSPHERE_SECOND_SHARED_DATASTORE") diff --git a/test/e2e/storage/vsphere_volume_vsan_policy.go b/test/e2e/storage/vsphere_volume_vsan_policy.go index 3210c4adbe7..1c99814223b 100644 --- a/test/e2e/storage/vsphere_volume_vsan_policy.go +++ b/test/e2e/storage/vsphere_volume_vsan_policy.go @@ -218,7 +218,7 @@ var _ = SIGDescribe("vSphere Storage policy support for dynamic provisioning", f framework.Logf("Invoking Test for SPBM storage policy on a non-compatible datastore: %+v", scParameters) err := invokeInvalidPolicyTestNeg(client, namespace, scParameters) Expect(err).To(HaveOccurred()) - errorMsg := "User specified datastore: \\\"" + VsanDatastore + "\\\" is not compatible with the storagePolicy: \\\"" + os.Getenv("VSPHERE_SPBM_TAG_POLICY") + "\\\"" + errorMsg := "User specified datastore is not compatible with the storagePolicy: \\\"" + os.Getenv("VSPHERE_SPBM_TAG_POLICY") + "\\\"" if !strings.Contains(err.Error(), errorMsg) { Expect(err).NotTo(HaveOccurred(), errorMsg) } @@ -248,7 +248,7 @@ var _ = SIGDescribe("vSphere Storage policy support for dynamic provisioning", f framework.Logf("Invoking Test for SPBM storage policy and VSAN capabilities together: %+v", scParameters) err := invokeInvalidPolicyTestNeg(client, namespace, scParameters) Expect(err).To(HaveOccurred()) - errorMsg := "Cannot specify storage policy capabilities along with storage policy name. Please specify only one." + errorMsg := "Cannot specify storage policy capabilities along with storage policy name. Please specify only one" if !strings.Contains(err.Error(), errorMsg) { Expect(err).NotTo(HaveOccurred(), errorMsg) } From aa1d47a3c61e59cfac32fd79d3e780352eaed154 Mon Sep 17 00:00:00 2001 From: Shimin Guo Date: Sat, 29 Jul 2017 09:29:23 +0000 Subject: [PATCH 032/183] Fix premature return --- .../pkg/util/strategicpatch/patch.go | 2 +- .../pkg/util/strategicpatch/patch_test.go | 78 ++++++++++++++++++- 2 files changed, 76 insertions(+), 4 deletions(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go index 828df44351b..8884c738ed9 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch.go @@ -1138,7 +1138,7 @@ func mergePatchIntoOriginal(original, patch map[string]interface{}, t reflect.Ty return err } case !foundOriginal && !foundPatch: - return nil + continue } // Split all items into patch items and server-only items and then enforce the order. diff --git a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch_test.go b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch_test.go index 507c8cffa17..7f6372db6ad 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/patch_test.go @@ -5966,6 +5966,75 @@ retainKeysMergingList: retainKeysMergingList: - name: bar - name: foo +`), + }, + }, + { + Description: "delete and reorder in one list, reorder in another", + StrategicMergePatchRawTestCaseData: StrategicMergePatchRawTestCaseData{ + Original: []byte(` +mergingList: +- name: a + value: a +- name: b + value: b +mergeItemPtr: +- name: c + value: c +- name: d + value: d +`), + Current: []byte(` +mergingList: +- name: a + value: a +- name: b + value: b +mergeItemPtr: +- name: c + value: c +- name: d + value: d +`), + Modified: []byte(` +mergingList: +- name: b + value: b +mergeItemPtr: +- name: d + value: d +- name: c + value: c +`), + TwoWay: []byte(` +$setElementOrder/mergingList: +- name: b +$setElementOrder/mergeItemPtr: +- name: d +- name: c +mergingList: +- $patch: delete + name: a +`), + ThreeWay: []byte(` +$setElementOrder/mergingList: +- name: b +$setElementOrder/mergeItemPtr: +- name: d +- name: c +mergingList: +- $patch: delete + name: a +`), + Result: []byte(` +mergingList: +- name: b + value: b +mergeItemPtr: +- name: d + value: d +- name: c + value: c `), }, }, @@ -5993,9 +6062,12 @@ func TestStrategicMergePatch(t *testing.T) { testThreeWayPatch(t, c) } - for _, c := range strategicMergePatchRawTestCases { - testTwoWayPatchForRawTestCase(t, c) - testThreeWayPatchForRawTestCase(t, c) + // run multiple times to exercise different map traversal orders + for i := 0; i < 10; i++ { + for _, c := range strategicMergePatchRawTestCases { + testTwoWayPatchForRawTestCase(t, c) + testThreeWayPatchForRawTestCase(t, c) + } } } From 8ffc361564e68c8998630326fedd82c3ff415454 Mon Sep 17 00:00:00 2001 From: Jing Xu Date: Wed, 2 Aug 2017 14:35:39 -0700 Subject: [PATCH 033/183] AttachDisk should not call detach inside of Cinder volume provider This PR fixes #50038 which removes the detach call inside of AttachDisk. --- .../providers/openstack/openstack_volumes.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/openstack_volumes.go b/pkg/cloudprovider/providers/openstack/openstack_volumes.go index 7f7b499bb77..f9a46140c81 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_volumes.go +++ b/pkg/cloudprovider/providers/openstack/openstack_volumes.go @@ -230,11 +230,9 @@ func (os *OpenStack) AttachDisk(instanceID, volumeID string) (string, error) { glog.V(4).Infof("Disk %s is already attached to instance %s", volumeID, instanceID) return volume.ID, nil } - glog.V(2).Infof("Disk %s is attached to a different instance (%s), detaching", volumeID, volume.AttachedServerId) - err = os.DetachDisk(volume.AttachedServerId, volumeID) - if err != nil { - return "", err - } + errmsg := fmt.Sprintf("Disk %s is attached to a different instance (%s)", volumeID, volume.AttachedServerId) + glog.V(2).Infof(errmsg) + return "", errors.New(errmsg) } startTime := time.Now() From c6cafa576ce0cda74548a5ed142af94eb7ccc494 Mon Sep 17 00:00:00 2001 From: Di Xu Date: Thu, 3 Aug 2017 18:26:25 +0800 Subject: [PATCH 034/183] add fieldSelector podIP --- pkg/registry/core/pod/strategy.go | 1 + pkg/registry/core/pod/strategy_test.go | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/pkg/registry/core/pod/strategy.go b/pkg/registry/core/pod/strategy.go index 00a3c4f991e..590042ad18d 100644 --- a/pkg/registry/core/pod/strategy.go +++ b/pkg/registry/core/pod/strategy.go @@ -200,6 +200,7 @@ func PodToSelectableFields(pod *api.Pod) fields.Set { podSpecificFieldsSet["spec.nodeName"] = pod.Spec.NodeName podSpecificFieldsSet["spec.restartPolicy"] = string(pod.Spec.RestartPolicy) podSpecificFieldsSet["status.phase"] = string(pod.Status.Phase) + podSpecificFieldsSet["status.podIP"] = string(pod.Status.PodIP) return generic.AddObjectMetaFieldsSet(podSpecificFieldsSet, &pod.ObjectMeta, true) } diff --git a/pkg/registry/core/pod/strategy_test.go b/pkg/registry/core/pod/strategy_test.go index 1f9e78c25cc..eed6fcf15fd 100644 --- a/pkg/registry/core/pod/strategy_test.go +++ b/pkg/registry/core/pod/strategy_test.go @@ -82,6 +82,20 @@ func TestMatchPod(t *testing.T) { fieldSelector: fields.ParseSelectorOrDie("status.phase=Pending"), expectMatch: false, }, + { + in: &api.Pod{ + Status: api.PodStatus{PodIP: "1.2.3.4"}, + }, + fieldSelector: fields.ParseSelectorOrDie("status.podIP=1.2.3.4"), + expectMatch: true, + }, + { + in: &api.Pod{ + Status: api.PodStatus{PodIP: "1.2.3.4"}, + }, + fieldSelector: fields.ParseSelectorOrDie("status.podIP=4.3.2.1"), + expectMatch: false, + }, } for _, testCase := range testCases { m := MatchPod(labels.Everything(), testCase.fieldSelector) From 68983201bfd97562c301f893bd901a971275b3a4 Mon Sep 17 00:00:00 2001 From: Yinan Li Date: Thu, 3 Aug 2017 11:53:55 -0700 Subject: [PATCH 035/183] Added field CollisionCount to StatefulSetStatus --- pkg/apis/apps/types.go | 6 + pkg/apis/apps/validation/validation.go | 30 +++++ pkg/apis/apps/validation/validation_test.go | 114 +++++++++++++++++++ staging/src/k8s.io/api/apps/v1beta1/types.go | 6 + staging/src/k8s.io/api/apps/v1beta2/types.go | 6 + 5 files changed, 162 insertions(+) diff --git a/pkg/apis/apps/types.go b/pkg/apis/apps/types.go index 5e4173b0828..9841c2ab4f6 100644 --- a/pkg/apis/apps/types.go +++ b/pkg/apis/apps/types.go @@ -187,6 +187,12 @@ type StatefulSetStatus struct { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + CollisionCount *int64 } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/pkg/apis/apps/validation/validation.go b/pkg/apis/apps/validation/validation.go index d4a02bc7434..6b0e7d98534 100644 --- a/pkg/apis/apps/validation/validation.go +++ b/pkg/apis/apps/validation/validation.go @@ -163,9 +163,39 @@ func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) fi return allErrs } +// ValidateStatefulSetStatus validates a StatefulSetStatus. +func ValidateStatefulSetStatus(status *apps.StatefulSetStatus, fieldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.Replicas), fieldPath.Child("replicas"))...) + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.ReadyReplicas), fieldPath.Child("readyReplicas"))...) + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.CurrentReplicas), fieldPath.Child("currentReplicas"))...) + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.UpdatedReplicas), fieldPath.Child("updatedReplicas"))...) + if status.ObservedGeneration != nil { + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*status.ObservedGeneration), fieldPath.Child("observedGeneration"))...) + } + if status.CollisionCount != nil { + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*status.CollisionCount), fieldPath.Child("collisionCount"))...) + } + + msg := "cannot be greater than status.replicas" + if status.ReadyReplicas > status.Replicas { + allErrs = append(allErrs, field.Invalid(fieldPath.Child("readyReplicas"), status.ReadyReplicas, msg)) + } + if status.CurrentReplicas > status.Replicas { + allErrs = append(allErrs, field.Invalid(fieldPath.Child("currentReplicas"), status.CurrentReplicas, msg)) + } + if status.UpdatedReplicas > status.Replicas { + allErrs = append(allErrs, field.Invalid(fieldPath.Child("updatedReplicas"), status.UpdatedReplicas, msg)) + } + + return allErrs +} + // ValidateStatefulSetStatusUpdate tests if required fields in the StatefulSet are set. func ValidateStatefulSetStatusUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) field.ErrorList { allErrs := field.ErrorList{} + allErrs = append(allErrs, ValidateStatefulSetStatus(&statefulSet.Status, field.NewPath("status"))...) allErrs = append(allErrs, apivalidation.ValidateObjectMetaUpdate(&statefulSet.ObjectMeta, &oldStatefulSet.ObjectMeta, field.NewPath("metadata"))...) // TODO: Validate status. return allErrs diff --git a/pkg/apis/apps/validation/validation_test.go b/pkg/apis/apps/validation/validation_test.go index f968fdc83cb..9071fa189f0 100644 --- a/pkg/apis/apps/validation/validation_test.go +++ b/pkg/apis/apps/validation/validation_test.go @@ -22,6 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" ) @@ -300,6 +301,119 @@ func TestValidateStatefulSet(t *testing.T) { } } +func TestValidateStatefulSetStatus(t *testing.T) { + minusOne := int64(-1) + tests := []struct { + name string + replicas int32 + readyReplicas int32 + currentReplicas int32 + updatedReplicas int32 + observedGeneration *int64 + collisionCount *int64 + expectedErr bool + }{ + { + name: "valid status", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: false, + }, + { + name: "invalid replicas", + replicas: -1, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "invalid readyReplicas", + replicas: 3, + readyReplicas: -1, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "invalid currentReplicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: -1, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "invalid updatedReplicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: -1, + expectedErr: true, + }, + { + name: "invalid observedGeneration", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + observedGeneration: &minusOne, + expectedErr: true, + }, + { + name: "invalid collisionCount", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + collisionCount: &minusOne, + expectedErr: true, + }, + { + name: "readyReplicas greater than replicas", + replicas: 3, + readyReplicas: 4, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "currentReplicas greater than replicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: 4, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "updatedReplicas greater than replicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 4, + expectedErr: true, + }, + } + + for _, test := range tests { + status := apps.StatefulSetStatus{ + Replicas: test.replicas, + ReadyReplicas: test.readyReplicas, + CurrentReplicas: test.currentReplicas, + UpdatedReplicas: test.updatedReplicas, + ObservedGeneration: test.observedGeneration, + CollisionCount: test.collisionCount, + } + + errs := ValidateStatefulSetStatus(&status, field.NewPath("status")) + if hasErr := len(errs) > 0; hasErr != test.expectedErr { + t.Errorf("%s: expected error: %t, got error: %t\nerrors: %s", test.name, test.expectedErr, hasErr, errs.ToAggregate().Error()) + } + } +} + func TestValidateStatefulSetUpdate(t *testing.T) { validLabels := map[string]string{"a": "b"} validPodTemplate := api.PodTemplate{ diff --git a/staging/src/k8s.io/api/apps/v1beta1/types.go b/staging/src/k8s.io/api/apps/v1beta1/types.go index dbdadaed93b..afd5b4fa8d4 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types.go @@ -239,6 +239,12 @@ type StatefulSetStatus struct { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string `json:"updateRevision,omitempty" protobuf:"bytes,7,opt,name=updateRevision"` + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/staging/src/k8s.io/api/apps/v1beta2/types.go b/staging/src/k8s.io/api/apps/v1beta2/types.go index 6aada49f6e2..764d168dc96 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types.go @@ -246,6 +246,12 @@ type StatefulSetStatus struct { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string `json:"updateRevision,omitempty" protobuf:"bytes,7,opt,name=updateRevision"` + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object From 4a1e7ddaa6e0d2e92ce27d9846cfc8407e1fcb60 Mon Sep 17 00:00:00 2001 From: Cao Shufeng Date: Thu, 3 Aug 2017 18:29:19 +0800 Subject: [PATCH 036/183] Return Audit-Id http header for trouble shooting --- .../k8s.io/apiserver/pkg/apis/audit/types.go | 7 +++ .../pkg/apis/audit/v1alpha1/types.go | 7 +++ .../apiserver/pkg/endpoints/filters/audit.go | 18 ++++++- .../pkg/endpoints/filters/audit_test.go | 50 +++++++++++++++---- 4 files changed, 70 insertions(+), 12 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/types.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/types.go index 0cb2069259a..cfea0550661 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/types.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/types.go @@ -27,6 +27,13 @@ const ( // Header to hold the audit ID as the request is propagated through the serving hierarchy. The // Audit-ID header should be set by the first server to receive the request (e.g. the federation // server or kube-aggregator). + // + // Audit ID is also returned to client by http response header. + // It's not guaranteed Audit-Id http header is sent for all requests. When kube-apiserver didn't + // audit the events according to the audit policy, no Audit-ID is returned. Also, for request to + // pods/exec, pods/attach, pods/proxy, kube-apiserver works like a proxy and redirect the request + // to kubelet node, users will only get http headers sent from kubelet node, so no Audit-ID is + // sent when users run command like "kubectl exec" or "kubectl attach". HeaderAuditID = "Audit-ID" ) diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go index d64f6a8d49c..e2022656828 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/types.go @@ -28,6 +28,13 @@ const ( // Header to hold the audit ID as the request is propagated through the serving hierarchy. The // Audit-ID header should be set by the first server to receive the request (e.g. the federation // server or kube-aggregator). + // + // Audit ID is also returned to client by http response header. + // It's not guaranteed Audit-Id http header is sent for all requests. When kube-apiserver didn't + // audit the events according to the audit policy, no Audit-ID is returned. Also, for request to + // pods/exec, pods/attach, pods/proxy, kube-apiserver works like a proxy and redirect the request + // to kubelet node, users will only get http headers sent from kubelet node, so no Audit-ID is + // sent when users run command like "kubectl exec" or "kubectl attach". HeaderAuditID = "Audit-ID" ) diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go index 9ff9c45b9d0..ecad0c25933 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit.go @@ -107,6 +107,7 @@ func WithAudit(handler http.Handler, requestContextMapper request.RequestContext } // if no StageResponseStarted event was sent b/c neither a status code nor a body was sent, fake it here + // But Audit-Id http header will only be sent when http.ResponseWriter.WriteHeader is called. fakedSuccessStatus := &metav1.Status{ Code: http.StatusOK, Status: metav1.StatusSuccess, @@ -162,6 +163,10 @@ type auditResponseWriter struct { sink audit.Sink } +func (a *auditResponseWriter) setHttpHeader() { + a.ResponseWriter.Header().Set(auditinternal.HeaderAuditID, string(a.event.AuditID)) +} + func (a *auditResponseWriter) processCode(code int) { a.once.Do(func() { if a.event.ResponseStatus == nil { @@ -177,12 +182,16 @@ func (a *auditResponseWriter) processCode(code int) { } func (a *auditResponseWriter) Write(bs []byte) (int, error) { - a.processCode(http.StatusOK) // the Go library calls WriteHeader internally if no code was written yet. But this will go unnoticed for us + // the Go library calls WriteHeader internally if no code was written yet. But this will go unnoticed for us + a.processCode(http.StatusOK) + a.setHttpHeader() + return a.ResponseWriter.Write(bs) } func (a *auditResponseWriter) WriteHeader(code int) { a.processCode(code) + a.setHttpHeader() a.ResponseWriter.WriteHeader(code) } @@ -204,6 +213,13 @@ func (f *fancyResponseWriterDelegator) Flush() { func (f *fancyResponseWriterDelegator) Hijack() (net.Conn, *bufio.ReadWriter, error) { // fake a response status before protocol switch happens f.processCode(http.StatusSwitchingProtocols) + + // This will be ignored if WriteHeader() function has aready been called. + // It's not guaranteed Audit-ID http header is sent for all requests. + // For example, when user run "kubectl exec", apiserver uses a proxy handler + // to deal with the request, users can only get http headers returned by kubelet node. + f.setHttpHeader() + return f.ResponseWriter.(http.Hijacker).Hijack() } diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit_test.go index 16cd752c478..0987f34d6de 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit_test.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/audit_test.go @@ -436,12 +436,13 @@ func TestAuditJson(t *testing.T) { delay := 500 * time.Millisecond for _, test := range []struct { - desc string - path string - verb string - auditID string - handler func(http.ResponseWriter, *http.Request) - expected []auditv1alpha1.Event + desc string + path string + verb string + auditID string + handler func(http.ResponseWriter, *http.Request) + expected []auditv1alpha1.Event + respHeader bool }{ // short running requests with read-only verb { @@ -463,13 +464,16 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + false, }, { "short running with auditID", shortRunningPath, "GET", uuid.NewRandom().String(), - func(http.ResponseWriter, *http.Request) {}, + func(w http.ResponseWriter, req *http.Request) { + w.Write([]byte("foo")) + }, []auditv1alpha1.Event{ { Stage: auditinternal.StageRequestReceived, @@ -483,6 +487,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + true, }, { "read-only panic", @@ -505,6 +510,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 500}, }, }, + false, }, // short running request with non-read-only verb { @@ -526,13 +532,15 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + false, }, { "writing sleep", shortRunningPath, "PUT", "", - func(http.ResponseWriter, *http.Request) { + func(w http.ResponseWriter, req *http.Request) { + w.Write([]byte("foo")) time.Sleep(delay) }, []auditv1alpha1.Event{ @@ -548,6 +556,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + true, }, { "writing 403+write", @@ -571,6 +580,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 403}, }, }, + true, }, { "writing panic", @@ -593,6 +603,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 500}, }, }, + false, }, { "writing write+panic", @@ -616,6 +627,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 500}, }, }, + true, }, // long running requests { @@ -643,13 +655,16 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + false, }, { - "empty longrunning", + "empty longrunning with audit id", longRunningPath, "GET", uuid.NewRandom().String(), - func(http.ResponseWriter, *http.Request) {}, + func(w http.ResponseWriter, req *http.Request) { + w.Write([]byte("foo")) + }, []auditv1alpha1.Event{ { Stage: auditinternal.StageRequestReceived, @@ -669,6 +684,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + true, }, { "sleep longrunning", @@ -697,6 +713,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + false, }, { "sleep+403 longrunning", @@ -726,6 +743,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 403}, }, }, + true, }, { "write longrunning", @@ -754,6 +772,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 200}, }, }, + true, }, { "403+write longrunning", @@ -783,6 +802,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 403}, }, }, + true, }, { "panic longrunning", @@ -805,6 +825,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 500}, }, }, + false, }, { "write+panic longrunning", @@ -834,6 +855,7 @@ func TestAuditJson(t *testing.T) { ResponseStatus: &metav1.Status{Code: 500}, }, }, + true, }, } { var buf bytes.Buffer @@ -852,11 +874,12 @@ func TestAuditJson(t *testing.T) { } req.RemoteAddr = "127.0.0.1" + w := httptest.NewRecorder() func() { defer func() { recover() }() - handler.ServeHTTP(httptest.NewRecorder(), req) + handler.ServeHTTP(w, req) }() t.Logf("[%s] audit log: %v", test.desc, buf.String()) @@ -887,6 +910,11 @@ func TestAuditJson(t *testing.T) { if event.RequestURI != expect.RequestURI { t.Errorf("[%s] Unexpected RequestURI: %s", test.desc, event.RequestURI) } + resp := w.Result() + if test.respHeader && string(event.AuditID) != resp.Header.Get("Audit-Id") { + t.Errorf("[%s] Unexpected Audit-Id http response header, Audit-Id http response header should be the same with AuditID in log %v xx %v", test.desc, event.AuditID, w.HeaderMap.Get("Audit-Id")) + } + if test.auditID != "" && event.AuditID != types.UID(test.auditID) { t.Errorf("[%s] Unexpected AuditID in audit event, AuditID should be the same with Audit-ID http header", test.desc) } From ce826dcd783333b048baaf9c23d25cb29d9f770d Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Fri, 4 Aug 2017 11:29:51 +0800 Subject: [PATCH 037/183] Removed un-used InodePressure condition. --- pkg/controller/daemon/daemon_controller_test.go | 2 -- staging/src/k8s.io/api/core/v1/types.go | 2 -- 2 files changed, 4 deletions(-) diff --git a/pkg/controller/daemon/daemon_controller_test.go b/pkg/controller/daemon/daemon_controller_test.go index 921cd6fc3dd..067ddd51ff4 100644 --- a/pkg/controller/daemon/daemon_controller_test.go +++ b/pkg/controller/daemon/daemon_controller_test.go @@ -1514,7 +1514,6 @@ func TestUpdateNode(t *testing.T) { {Type: v1.NodeMemoryPressure, Status: v1.ConditionFalse}, {Type: v1.NodeDiskPressure, Status: v1.ConditionFalse}, {Type: v1.NodeNetworkUnavailable, Status: v1.ConditionFalse}, - {Type: v1.NodeInodePressure, Status: v1.ConditionFalse}, } return node }(), @@ -1522,7 +1521,6 @@ func TestUpdateNode(t *testing.T) { node := newNode("node1", nil) node.Status.Conditions = []v1.NodeCondition{ {Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue}, - {Type: v1.NodeInodePressure, Status: v1.ConditionFalse}, } return node }(), diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index c2c574e3446..35f9c416c0c 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -3510,8 +3510,6 @@ const ( NodeDiskPressure NodeConditionType = "DiskPressure" // NodeNetworkUnavailable means that network for the node is not correctly configured. NodeNetworkUnavailable NodeConditionType = "NetworkUnavailable" - // NodeInodePressure means the kubelet is under pressure due to insufficient available inodes. - NodeInodePressure NodeConditionType = "InodePressure" ) // NodeCondition contains condition information for a node. From 03cee68e47d7aea96243fe36086aedcc59dc8ae2 Mon Sep 17 00:00:00 2001 From: gmarek Date: Fri, 4 Aug 2017 12:27:32 +0200 Subject: [PATCH 038/183] Don't expect internal clientset to be generated for groups without new types --- hack/verify-api-groups.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/verify-api-groups.sh b/hack/verify-api-groups.sh index 51dd09e2f79..bbfcb0f0200 100755 --- a/hack/verify-api-groups.sh +++ b/hack/verify-api-groups.sh @@ -81,7 +81,7 @@ for group_dirname in "${group_dirnames[@]}"; do found=1 fi done - if [ "${found}" -ne "1" ] ; then + if [[ "${found}" -ne "1" && -f "${group_dirname}/types.go" ]] ; then echo "need to add ${group_dirname}/ to ${client_gen_file}" exit 1 fi From 300fd26469af2cd2c8a440d05605d416b791dce4 Mon Sep 17 00:00:00 2001 From: gmarek Date: Fri, 4 Aug 2017 12:47:23 +0200 Subject: [PATCH 039/183] Add metav1.MicroTime to exceptions in tag tests --- pkg/master/import_known_versions_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/master/import_known_versions_test.go b/pkg/master/import_known_versions_test.go index 374c69d8918..8046105bcba 100644 --- a/pkg/master/import_known_versions_test.go +++ b/pkg/master/import_known_versions_test.go @@ -73,6 +73,7 @@ func TestTypeTags(t *testing.T) { var typesAllowedTags = map[reflect.Type]bool{ reflect.TypeOf(intstr.IntOrString{}): true, reflect.TypeOf(metav1.Time{}): true, + reflect.TypeOf(metav1.MicroTime{}): true, reflect.TypeOf(metav1.Duration{}): true, reflect.TypeOf(metav1.TypeMeta{}): true, reflect.TypeOf(metav1.ListMeta{}): true, From 2506af46bcfa668138693ab3fe0574581ffb4fed Mon Sep 17 00:00:00 2001 From: gmarek Date: Fri, 4 Aug 2017 14:02:53 +0200 Subject: [PATCH 040/183] Add MicroTime to DeepEquals overrides --- pkg/api/helper/helpers.go | 3 +++ staging/src/k8s.io/apimachinery/pkg/api/equality/semantic.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/pkg/api/helper/helpers.go b/pkg/api/helper/helpers.go index 962b8aafb50..fc0f70a876e 100644 --- a/pkg/api/helper/helpers.go +++ b/pkg/api/helper/helpers.go @@ -53,6 +53,9 @@ var Semantic = conversion.EqualitiesOrDie( // Uninitialized quantities are equivalent to 0 quantities. return a.Cmp(b) == 0 }, + func(a, b metav1.MicroTime) bool { + return a.UTC() == b.UTC() + }, func(a, b metav1.Time) bool { return a.UTC() == b.UTC() }, diff --git a/staging/src/k8s.io/apimachinery/pkg/api/equality/semantic.go b/staging/src/k8s.io/apimachinery/pkg/api/equality/semantic.go index 3ebd8c719d0..f02fa8e4340 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/equality/semantic.go +++ b/staging/src/k8s.io/apimachinery/pkg/api/equality/semantic.go @@ -34,6 +34,9 @@ var Semantic = conversion.EqualitiesOrDie( // Uninitialized quantities are equivalent to 0 quantities. return a.Cmp(b) == 0 }, + func(a, b metav1.MicroTime) bool { + return a.UTC() == b.UTC() + }, func(a, b metav1.Time) bool { return a.UTC() == b.UTC() }, From f08f504a7ec5bc3f3f85b8cb372254d2b8766a1b Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Thu, 29 Jun 2017 13:43:24 +0200 Subject: [PATCH 041/183] Fix swallowed errors in RS and deployment tests --- test/e2e/apimachinery/garbage_collector.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/e2e/apimachinery/garbage_collector.go b/test/e2e/apimachinery/garbage_collector.go index e12b3cb0674..b3dac90ed18 100644 --- a/test/e2e/apimachinery/garbage_collector.go +++ b/test/e2e/apimachinery/garbage_collector.go @@ -413,8 +413,8 @@ var _ = SIGDescribe("Garbage collector", func() { return len(rsList.Items) > 0, nil }) - if err == wait.ErrWaitTimeout { - err = fmt.Errorf("Failed to wait for the Deployment to create some ReplicaSet: %v", err) + if err != nil { + framework.Failf("Failed to wait for the Deployment to create some ReplicaSet: %v", err) } By("delete the deployment") @@ -464,8 +464,8 @@ var _ = SIGDescribe("Garbage collector", func() { return len(rsList.Items) > 0, nil }) - if err == wait.ErrWaitTimeout { - err = fmt.Errorf("Failed to wait for the Deployment to create some ReplicaSet: %v", err) + if err != nil { + framework.Failf("Failed to wait for the Deployment to create some ReplicaSet: %v", err) } By("delete the deployment") From 17f8c97fa0cd51c79c6b52ed101a89b96228edbd Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Thu, 29 Jun 2017 13:42:50 +0200 Subject: [PATCH 042/183] Add e2e test for cronjob chained removal --- test/e2e/apimachinery/BUILD | 3 + test/e2e/apimachinery/garbage_collector.go | 125 ++++++++++++++++++++- 2 files changed, 124 insertions(+), 4 deletions(-) diff --git a/test/e2e/apimachinery/BUILD b/test/e2e/apimachinery/BUILD index 31ef898ed15..e9c7e7cadbb 100644 --- a/test/e2e/apimachinery/BUILD +++ b/test/e2e/apimachinery/BUILD @@ -33,6 +33,8 @@ go_library( "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", + "//vendor/k8s.io/api/batch/v1:go_default_library", + "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", @@ -43,6 +45,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", diff --git a/test/e2e/apimachinery/garbage_collector.go b/test/e2e/apimachinery/garbage_collector.go index b3dac90ed18..2942a0c9618 100644 --- a/test/e2e/apimachinery/garbage_collector.go +++ b/test/e2e/apimachinery/garbage_collector.go @@ -20,6 +20,8 @@ import ( "fmt" "time" + batchv1 "k8s.io/api/batch/v1" + batchv2alpha1 "k8s.io/api/batch/v2alpha1" "k8s.io/api/core/v1" v1beta1 "k8s.io/api/extensions/v1beta1" apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" @@ -28,6 +30,7 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/storage/names" @@ -46,6 +49,11 @@ func getForegroundOptions() *metav1.DeleteOptions { return &metav1.DeleteOptions{PropagationPolicy: &policy} } +func getBackgroundOptions() *metav1.DeleteOptions { + policy := metav1.DeletePropagationBackground + return &metav1.DeleteOptions{PropagationPolicy: &policy} +} + func getOrphanOptions() *metav1.DeleteOptions { var trueVar = true return &metav1.DeleteOptions{OrphanDependents: &trueVar} @@ -56,7 +64,11 @@ func getNonOrphanOptions() *metav1.DeleteOptions { return &metav1.DeleteOptions{OrphanDependents: &falseVar} } -var zero = int64(0) +var ( + zero = int64(0) + + CronJobGroupVersionResource = schema.GroupVersionResource{Group: batchv2alpha1.GroupName, Version: "v2alpha1", Resource: "cronjobs"} +) func getPodTemplateSpec(labels map[string]string) v1.PodTemplateSpec { return v1.PodTemplateSpec{ @@ -175,10 +187,10 @@ func newGCPod(name string) *v1.Pod { } } -// verifyRemainingObjects verifies if the number of the remaining replication +// verifyRemainingReplicationControllersPods verifies if the number of the remaining replication // controllers and pods are rcNum and podNum. It returns error if the // communication with the API server fails. -func verifyRemainingObjects(f *framework.Framework, clientSet clientset.Interface, rcNum, podNum int) (bool, error) { +func verifyRemainingReplicationControllersPods(f *framework.Framework, clientSet clientset.Interface, rcNum, podNum int) (bool, error) { rcClient := clientSet.Core().ReplicationControllers(f.Namespace.Name) pods, err := clientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) if err != nil { @@ -200,6 +212,42 @@ func verifyRemainingObjects(f *framework.Framework, clientSet clientset.Interfac return ret, nil } +// verifyRemainingCronJobsJobsPods verifies if the number of remaining cronjobs, +// jobs and pods. It returns error if the communication with the API server fails. +func verifyRemainingCronJobsJobsPods(f *framework.Framework, clientSet clientset.Interface, + cjNum, jobNum, podNum int) (bool, error) { + var ret = true + + cronJobs, err := f.ClientSet.BatchV2alpha1().CronJobs(f.Namespace.Name).List(metav1.ListOptions{}) + if err != nil { + return false, fmt.Errorf("Failed to list cronjobs: %v", err) + } + if len(cronJobs.Items) != cjNum { + ret = false + By(fmt.Sprintf("expected %d cronjobs, got %d cronjobs", cjNum, len(cronJobs.Items))) + } + + jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + if err != nil { + return false, fmt.Errorf("Failed to list jobs: %v", err) + } + if len(jobs.Items) != jobNum { + ret = false + By(fmt.Sprintf("expected %d jobs, got %d jobs", jobNum, len(jobs.Items))) + } + + pods, err := f.ClientSet.Core().Pods(f.Namespace.Name).List(metav1.ListOptions{}) + if err != nil { + return false, fmt.Errorf("Failed to list pods: %v", err) + } + if len(pods.Items) != podNum { + ret = false + By(fmt.Sprintf("expected %d pods, got %d pods", podNum, len(pods.Items))) + } + + return ret, nil +} + func gatherMetrics(f *framework.Framework) { By("Gathering metrics") var summary framework.TestDataSummary @@ -217,6 +265,40 @@ func gatherMetrics(f *framework.Framework) { } } +func newCronJob(name, schedule string) *batchv2alpha1.CronJob { + parallelism := int32(1) + completions := int32(1) + return &batchv2alpha1.CronJob{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + }, + TypeMeta: metav1.TypeMeta{ + Kind: "CronJob", + }, + Spec: batchv2alpha1.CronJobSpec{ + Schedule: schedule, + JobTemplate: batchv2alpha1.JobTemplateSpec{ + Spec: batchv1.JobSpec{ + Parallelism: ¶llelism, + Completions: &completions, + Template: v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + RestartPolicy: v1.RestartPolicyOnFailure, + Containers: []v1.Container{ + { + Name: "c", + Image: "gcr.io/google_containers/busybox:1.24", + Command: []string{"sleep", "300"}, + }, + }, + }, + }, + }, + }, + }, + } +} + var _ = SIGDescribe("Garbage collector", func() { f := framework.NewDefaultFramework("gc") It("should delete pods created by rc when not orphaning", func() { @@ -259,7 +341,7 @@ var _ = SIGDescribe("Garbage collector", func() { By("wait for all pods to be garbage collected") // wait for the RCs and Pods to reach the expected numbers. if err := wait.Poll(5*time.Second, 60*time.Second, func() (bool, error) { - return verifyRemainingObjects(f, clientSet, 0, 0) + return verifyRemainingReplicationControllersPods(f, clientSet, 0, 0) }); err != nil { framework.Failf("failed to wait for all pods to be deleted: %v", err) remainingPods, err := podClient.List(metav1.ListOptions{}) @@ -849,4 +931,39 @@ var _ = SIGDescribe("Garbage collector", func() { } } }) + + It("should delete jobs and pods created by cronjob", func() { + framework.SkipIfMissingResource(f.ClientPool, CronJobGroupVersionResource, f.Namespace.Name) + + By("Create the cronjob") + cronJob := newCronJob("simple", "*/1 * * * ?") + cronJob, err := f.ClientSet.BatchV2alpha1().CronJobs(f.Namespace.Name).Create(cronJob) + Expect(err).NotTo(HaveOccurred()) + + By("Wait for the CronJob to create new Job") + err = wait.PollImmediate(500*time.Millisecond, 2*time.Minute, func() (bool, error) { + jobs, err := f.ClientSet.Batch().Jobs(f.Namespace.Name).List(metav1.ListOptions{}) + if err != nil { + return false, fmt.Errorf("Failed to list jobs: %v", err) + } + return len(jobs.Items) > 0, nil + }) + if err != nil { + framework.Failf("Failed to wait for the CronJob to create some Jobs: %v", err) + } + + By("Delete the cronjob") + if err := f.ClientSet.BatchV2alpha1().CronJobs(f.Namespace.Name).Delete(cronJob.Name, getBackgroundOptions()); err != nil { + framework.Failf("Failed to delete the CronJob: %v", err) + } + By("Verify if cronjob does not leave jobs nor pods behind") + err = wait.PollImmediate(500*time.Millisecond, 1*time.Minute, func() (bool, error) { + return verifyRemainingCronJobsJobsPods(f, f.ClientSet, 0, 0, 0) + }) + if err != nil { + framework.Failf("Failed to wait for all jobs and pods to be deleted: %v", err) + } + + gatherMetrics(f) + }) }) From 7013047c16f8865b4b623b91cfbe2195d564b91f Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Wed, 12 Jul 2017 23:11:55 -0400 Subject: [PATCH 043/183] Move proxy code to its own package --- pkg/kubectl/{ => proxy}/proxy_server.go | 0 pkg/kubectl/{ => proxy}/proxy_server_test.go | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename pkg/kubectl/{ => proxy}/proxy_server.go (100%) rename pkg/kubectl/{ => proxy}/proxy_server_test.go (100%) diff --git a/pkg/kubectl/proxy_server.go b/pkg/kubectl/proxy/proxy_server.go similarity index 100% rename from pkg/kubectl/proxy_server.go rename to pkg/kubectl/proxy/proxy_server.go diff --git a/pkg/kubectl/proxy_server_test.go b/pkg/kubectl/proxy/proxy_server_test.go similarity index 100% rename from pkg/kubectl/proxy_server_test.go rename to pkg/kubectl/proxy/proxy_server_test.go From fa009f3914163409ffee04371af1f70205f197b8 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Wed, 12 Jul 2017 23:21:03 -0400 Subject: [PATCH 044/183] Ensure proxy server code is logically distinct --- pkg/kubectl/cmd/proxy.go | 22 +++++++++++----------- pkg/kubectl/proxy/proxy_server.go | 2 +- pkg/kubectl/proxy/proxy_server_test.go | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/pkg/kubectl/cmd/proxy.go b/pkg/kubectl/cmd/proxy.go index 667841d6618..f6009564fac 100644 --- a/pkg/kubectl/cmd/proxy.go +++ b/pkg/kubectl/cmd/proxy.go @@ -26,9 +26,9 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" - "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + "k8s.io/kubernetes/pkg/kubectl/proxy" "k8s.io/kubernetes/pkg/util/i18n" ) @@ -83,10 +83,10 @@ func NewCmdProxy(f cmdutil.Factory, out io.Writer) *cobra.Command { cmd.Flags().StringP("www", "w", "", "Also serve static files from the given directory under the specified prefix.") cmd.Flags().StringP("www-prefix", "P", "/static/", "Prefix to serve static files under, if static file directory is specified.") cmd.Flags().StringP("api-prefix", "", "/", "Prefix to serve the proxied API under.") - cmd.Flags().String("accept-paths", kubectl.DefaultPathAcceptRE, "Regular expression for paths that the proxy should accept.") - cmd.Flags().String("reject-paths", kubectl.DefaultPathRejectRE, "Regular expression for paths that the proxy should reject. Paths specified here will be rejected even accepted by --accept-paths.") - cmd.Flags().String("accept-hosts", kubectl.DefaultHostAcceptRE, "Regular expression for hosts that the proxy should accept.") - cmd.Flags().String("reject-methods", kubectl.DefaultMethodRejectRE, "Regular expression for HTTP methods that the proxy should reject (example --reject-methods='POST,PUT,PATCH'). ") + cmd.Flags().String("accept-paths", proxy.DefaultPathAcceptRE, "Regular expression for paths that the proxy should accept.") + cmd.Flags().String("reject-paths", proxy.DefaultPathRejectRE, "Regular expression for paths that the proxy should reject. Paths specified here will be rejected even accepted by --accept-paths.") + cmd.Flags().String("accept-hosts", proxy.DefaultHostAcceptRE, "Regular expression for hosts that the proxy should accept.") + cmd.Flags().String("reject-methods", proxy.DefaultMethodRejectRE, "Regular expression for HTTP methods that the proxy should reject (example --reject-methods='POST,PUT,PATCH'). ") cmd.Flags().IntP("port", "p", defaultPort, "The port on which to run the proxy. Set to 0 to pick a random port.") cmd.Flags().StringP("address", "", "127.0.0.1", "The IP address on which to serve on.") cmd.Flags().Bool("disable-filter", false, "If true, disable request filtering in the proxy. This is dangerous, and can leave you vulnerable to XSRF attacks, when used with an accessible port.") @@ -126,11 +126,11 @@ func RunProxy(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error { if !strings.HasSuffix(apiProxyPrefix, "/") { apiProxyPrefix += "/" } - filter := &kubectl.FilterServer{ - AcceptPaths: kubectl.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "accept-paths")), - RejectPaths: kubectl.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "reject-paths")), - AcceptHosts: kubectl.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "accept-hosts")), - RejectMethods: kubectl.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "reject-methods")), + filter := &proxy.FilterServer{ + AcceptPaths: proxy.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "accept-paths")), + RejectPaths: proxy.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "reject-paths")), + AcceptHosts: proxy.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "accept-hosts")), + RejectMethods: proxy.MakeRegexpArrayOrDie(cmdutil.GetFlagString(cmd, "reject-methods")), } if cmdutil.GetFlagBool(cmd, "disable-filter") { if path == "" { @@ -139,7 +139,7 @@ func RunProxy(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error { filter = nil } - server, err := kubectl.NewProxyServer(staticDir, apiProxyPrefix, staticPrefix, filter, clientConfig) + server, err := proxy.NewProxyServer(staticDir, apiProxyPrefix, staticPrefix, filter, clientConfig) // Separate listening from serving so we can report the bound port // when it is chosen by os (eg: port == 0) diff --git a/pkg/kubectl/proxy/proxy_server.go b/pkg/kubectl/proxy/proxy_server.go index f1712287ee9..2d5c1c26200 100644 --- a/pkg/kubectl/proxy/proxy_server.go +++ b/pkg/kubectl/proxy/proxy_server.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package kubectl +package proxy import ( "fmt" diff --git a/pkg/kubectl/proxy/proxy_server_test.go b/pkg/kubectl/proxy/proxy_server_test.go index 394259070a7..903596b6fb5 100644 --- a/pkg/kubectl/proxy/proxy_server_test.go +++ b/pkg/kubectl/proxy/proxy_server_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package kubectl +package proxy import ( "fmt" From 1df5817df34c1ef774212968e29646aa491d22e7 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 24 Jul 2017 23:35:42 -0400 Subject: [PATCH 045/183] Allow the UpgradeAwareProxy to have an upgrade specific transport We must disable HTTP/2 for proxying exec, attach, and portforward, but we may still want to use HTTP/2 for requests (from `kubectl proxy`) --- .../k8s.io/apimachinery/pkg/util/net/http.go | 7 ++ .../apimachinery/pkg/util/proxy/dial.go | 10 ++- .../pkg/util/proxy/upgradeaware.go | 84 +++++++++++++++---- .../pkg/util/proxy/upgradeaware_test.go | 14 ++-- 4 files changed, 90 insertions(+), 25 deletions(-) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/http.go b/staging/src/k8s.io/apimachinery/pkg/util/net/http.go index adb80813be2..a48f16543c9 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/http.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/http.go @@ -277,6 +277,13 @@ func NewProxierWithNoProxyCIDR(delegate func(req *http.Request) (*url.URL, error } } +// DialerFunc implements Dialer for the provided function. +type DialerFunc func(req *http.Request) (net.Conn, error) + +func (fn DialerFunc) Dial(req *http.Request) (net.Conn, error) { + return fn(req) +} + // Dialer dials a host and writes a request to it. type Dialer interface { // Dial connects to the host specified by req's URL, writes the request to the connection, and diff --git a/staging/src/k8s.io/apimachinery/pkg/util/proxy/dial.go b/staging/src/k8s.io/apimachinery/pkg/util/proxy/dial.go index e7373190940..3da7e965f53 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/proxy/dial.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/proxy/dial.go @@ -32,7 +32,10 @@ import ( func DialURL(url *url.URL, transport http.RoundTripper) (net.Conn, error) { dialAddr := netutil.CanonicalAddr(url) - dialer, _ := utilnet.DialerFor(transport) + dialer, err := utilnet.DialerFor(transport) + if err != nil { + glog.V(5).Infof("Unable to unwrap transport %T to get dialer: %v", transport, err) + } switch url.Scheme { case "http": @@ -45,7 +48,10 @@ func DialURL(url *url.URL, transport http.RoundTripper) (net.Conn, error) { var tlsConfig *tls.Config var tlsConn *tls.Conn var err error - tlsConfig, _ = utilnet.TLSClientConfig(transport) + tlsConfig, err = utilnet.TLSClientConfig(transport) + if err != nil { + glog.V(5).Infof("Unable to unwrap transport %T to get at TLS config: %v", transport, err) + } if dialer != nil { // We have a dialer; use it to open the connection, then diff --git a/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go b/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go index ff04578e29a..d443915d889 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware.go @@ -39,18 +39,29 @@ import ( // UpgradeAwareHandler is a handler for proxy requests that may require an upgrade type UpgradeAwareHandler struct { + // UpgradeRequired will reject non-upgrade connections if true. UpgradeRequired bool - Location *url.URL + // Location is the location of the upstream proxy. It is used as the location to Dial on the upstream server + // for upgrade requests unless UseRequestLocationOnUpgrade is true. + Location *url.URL // Transport provides an optional round tripper to use to proxy. If nil, the default proxy transport is used Transport http.RoundTripper + // UpgradeTransport, if specified, will be used as the backend transport when upgrade requests are provided. + // This allows clients to disable HTTP/2. + UpgradeTransport http.RoundTripper // WrapTransport indicates whether the provided Transport should be wrapped with default proxy transport behavior (URL rewriting, X-Forwarded-* header setting) WrapTransport bool // InterceptRedirects determines whether the proxy should sniff backend responses for redirects, // following them as necessary. InterceptRedirects bool - FlushInterval time.Duration - MaxBytesPerSec int64 - Responder ErrorResponder + // UseRequestLocation will use the incoming request URL when talking to the backend server. + UseRequestLocation bool + // FlushInterval controls how often the standard HTTP proxy will flush content from the upstream. + FlushInterval time.Duration + // MaxBytesPerSec controls the maximum rate for an upstream connection. No rate is imposed if the value is zero. + MaxBytesPerSec int64 + // Responder is passed errors that occur while setting up proxying. + Responder ErrorResponder } const defaultFlushInterval = 200 * time.Millisecond @@ -58,9 +69,27 @@ const defaultFlushInterval = 200 * time.Millisecond // ErrorResponder abstracts error reporting to the proxy handler to remove the need to hardcode a particular // error format. type ErrorResponder interface { + Error(w http.ResponseWriter, req *http.Request, err error) +} + +// SimpleErrorResponder is the legacy implementation of ErrorResponder for callers that only +// service a single request/response per proxy. +type SimpleErrorResponder interface { Error(err error) } +func NewErrorResponder(r SimpleErrorResponder) ErrorResponder { + return simpleResponder{r} +} + +type simpleResponder struct { + responder SimpleErrorResponder +} + +func (r simpleResponder) Error(w http.ResponseWriter, req *http.Request, err error) { + r.responder.Error(err) +} + // NewUpgradeAwareHandler creates a new proxy handler with a default flush interval. Responder is required for returning // errors to the caller. func NewUpgradeAwareHandler(location *url.URL, transport http.RoundTripper, wrapTransport, upgradeRequired bool, responder ErrorResponder) *UpgradeAwareHandler { @@ -83,7 +112,7 @@ func (h *UpgradeAwareHandler) ServeHTTP(w http.ResponseWriter, req *http.Request return } if h.UpgradeRequired { - h.Responder.Error(errors.NewBadRequest("Upgrade request required")) + h.Responder.Error(w, req, errors.NewBadRequest("Upgrade request required")) return } @@ -117,7 +146,9 @@ func (h *UpgradeAwareHandler) ServeHTTP(w http.ResponseWriter, req *http.Request // WithContext creates a shallow clone of the request with the new context. newReq := req.WithContext(context.Background()) newReq.Header = utilnet.CloneHeader(req.Header) - newReq.URL = &loc + if !h.UseRequestLocation { + newReq.URL = &loc + } proxy := httputil.NewSingleHostReverseProxy(&url.URL{Scheme: h.Location.Scheme, Host: h.Location.Host}) proxy.Transport = h.Transport @@ -128,6 +159,7 @@ func (h *UpgradeAwareHandler) ServeHTTP(w http.ResponseWriter, req *http.Request // tryUpgrade returns true if the request was handled. func (h *UpgradeAwareHandler) tryUpgrade(w http.ResponseWriter, req *http.Request) bool { if !httpstream.IsUpgradeRequest(req) { + glog.V(6).Infof("Request was not an upgrade") return false } @@ -137,18 +169,28 @@ func (h *UpgradeAwareHandler) tryUpgrade(w http.ResponseWriter, req *http.Reques err error ) + location := *h.Location + if h.UseRequestLocation { + location = *req.URL + location.Scheme = h.Location.Scheme + location.Host = h.Location.Host + } + clone := utilnet.CloneRequest(req) // Only append X-Forwarded-For in the upgrade path, since httputil.NewSingleHostReverseProxy // handles this in the non-upgrade path. utilnet.AppendForwardedForHeader(clone) if h.InterceptRedirects { - backendConn, rawResponse, err = utilnet.ConnectWithRedirects(req.Method, h.Location, clone.Header, req.Body, h) + glog.V(6).Infof("Connecting to backend proxy (intercepting redirects) %s\n Headers: %v", &location, clone.Header) + backendConn, rawResponse, err = utilnet.ConnectWithRedirects(req.Method, &location, clone.Header, req.Body, utilnet.DialerFunc(h.DialForUpgrade)) } else { - clone.URL = h.Location - backendConn, err = h.Dial(clone) + glog.V(6).Infof("Connecting to backend proxy (direct dial) %s\n Headers: %v", &location, clone.Header) + clone.URL = &location + backendConn, err = h.DialForUpgrade(clone) } if err != nil { - h.Responder.Error(err) + glog.V(6).Infof("Proxy connection error: %v", err) + h.Responder.Error(w, req, err) return true } defer backendConn.Close() @@ -157,18 +199,21 @@ func (h *UpgradeAwareHandler) tryUpgrade(w http.ResponseWriter, req *http.Reques // hijacking should be the last step in the upgrade. requestHijacker, ok := w.(http.Hijacker) if !ok { - h.Responder.Error(fmt.Errorf("request connection cannot be hijacked: %T", w)) + glog.V(6).Infof("Unable to hijack response writer: %T", w) + h.Responder.Error(w, req, fmt.Errorf("request connection cannot be hijacked: %T", w)) return true } requestHijackedConn, _, err := requestHijacker.Hijack() if err != nil { - h.Responder.Error(fmt.Errorf("error hijacking request connection: %v", err)) + glog.V(6).Infof("Unable to hijack response: %v", err) + h.Responder.Error(w, req, fmt.Errorf("error hijacking connection: %v", err)) return true } defer requestHijackedConn.Close() // Forward raw response bytes back to client. if len(rawResponse) > 0 { + glog.V(6).Infof("Writing %d bytes to hijacked connection", len(rawResponse)) if _, err = requestHijackedConn.Write(rawResponse); err != nil { utilruntime.HandleError(fmt.Errorf("Error proxying response from backend to client: %v", err)) } @@ -210,9 +255,20 @@ func (h *UpgradeAwareHandler) tryUpgrade(w http.ResponseWriter, req *http.Reques return true } -// Dial dials the backend at req.URL and writes req to it. func (h *UpgradeAwareHandler) Dial(req *http.Request) (net.Conn, error) { - conn, err := DialURL(req.URL, h.Transport) + return dial(req, h.Transport) +} + +func (h *UpgradeAwareHandler) DialForUpgrade(req *http.Request) (net.Conn, error) { + if h.UpgradeTransport != nil { + return dial(req, h.UpgradeTransport) + } + return dial(req, h.Transport) +} + +// dial dials the backend at req.URL and writes req to it. +func dial(req *http.Request, transport http.RoundTripper) (net.Conn, error) { + conn, err := DialURL(req.URL, transport) if err != nil { return nil, fmt.Errorf("error dialing backend: %v", err) } diff --git a/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware_test.go b/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware_test.go index 3e6f11237d4..985d2208548 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware_test.go +++ b/staging/src/k8s.io/apimachinery/pkg/util/proxy/upgradeaware_test.go @@ -55,18 +55,14 @@ type fakeResponder struct { w http.ResponseWriter } -func (r *fakeResponder) Error(err error) { +func (r *fakeResponder) Error(w http.ResponseWriter, req *http.Request, err error) { if r.called { r.t.Errorf("Error responder called again!\nprevious error: %v\nnew error: %v", r.err, err) } - if r.w != nil { - r.w.WriteHeader(fakeStatusCode) - _, writeErr := r.w.Write([]byte(err.Error())) - assert.NoError(r.t, writeErr) - } else { - r.t.Logf("No ResponseWriter set") - } + w.WriteHeader(fakeStatusCode) + _, writeErr := w.Write([]byte(err.Error())) + assert.NoError(r.t, writeErr) r.called = true r.err = err @@ -459,7 +455,7 @@ type noErrorsAllowed struct { t *testing.T } -func (r *noErrorsAllowed) Error(err error) { +func (r *noErrorsAllowed) Error(w http.ResponseWriter, req *http.Request, err error) { r.t.Error(err) } From d2b8cdb3c4111d43778949e1938d6a365f122746 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 24 Jul 2017 23:36:54 -0400 Subject: [PATCH 046/183] React to changes in UpgradeAwareProxy --- pkg/registry/core/node/rest/proxy.go | 2 +- pkg/registry/core/pod/rest/subresources.go | 2 +- pkg/registry/core/service/proxy.go | 2 +- .../src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/registry/core/node/rest/proxy.go b/pkg/registry/core/node/rest/proxy.go index 7535acade1a..5da6392c60a 100644 --- a/pkg/registry/core/node/rest/proxy.go +++ b/pkg/registry/core/node/rest/proxy.go @@ -76,7 +76,7 @@ func (r *ProxyREST) Connect(ctx genericapirequest.Context, id string, opts runti } func newThrottledUpgradeAwareProxyHandler(location *url.URL, transport http.RoundTripper, wrapTransport, upgradeRequired bool, responder rest.Responder) *proxy.UpgradeAwareHandler { - handler := proxy.NewUpgradeAwareHandler(location, transport, wrapTransport, upgradeRequired, responder) + handler := proxy.NewUpgradeAwareHandler(location, transport, wrapTransport, upgradeRequired, proxy.NewErrorResponder(responder)) handler.MaxBytesPerSec = capabilities.Get().PerConnectionBandwidthLimitBytesPerSec return handler } diff --git a/pkg/registry/core/pod/rest/subresources.go b/pkg/registry/core/pod/rest/subresources.go index ec6f7ac4857..76e789a5a6f 100644 --- a/pkg/registry/core/pod/rest/subresources.go +++ b/pkg/registry/core/pod/rest/subresources.go @@ -192,7 +192,7 @@ func (r *PortForwardREST) Connect(ctx genericapirequest.Context, name string, op } func newThrottledUpgradeAwareProxyHandler(location *url.URL, transport http.RoundTripper, wrapTransport, upgradeRequired, interceptRedirects bool, responder rest.Responder) *proxy.UpgradeAwareHandler { - handler := proxy.NewUpgradeAwareHandler(location, transport, wrapTransport, upgradeRequired, responder) + handler := proxy.NewUpgradeAwareHandler(location, transport, wrapTransport, upgradeRequired, proxy.NewErrorResponder(responder)) handler.InterceptRedirects = interceptRedirects && utilfeature.DefaultFeatureGate.Enabled(genericfeatures.StreamingProxyRedirects) handler.MaxBytesPerSec = capabilities.Get().PerConnectionBandwidthLimitBytesPerSec return handler diff --git a/pkg/registry/core/service/proxy.go b/pkg/registry/core/service/proxy.go index 7875e58a69a..4b24847478e 100644 --- a/pkg/registry/core/service/proxy.go +++ b/pkg/registry/core/service/proxy.go @@ -72,7 +72,7 @@ func (r *ProxyREST) Connect(ctx genericapirequest.Context, id string, opts runti } func newThrottledUpgradeAwareProxyHandler(location *url.URL, transport http.RoundTripper, wrapTransport, upgradeRequired bool, responder rest.Responder) *proxy.UpgradeAwareHandler { - handler := proxy.NewUpgradeAwareHandler(location, transport, wrapTransport, upgradeRequired, responder) + handler := proxy.NewUpgradeAwareHandler(location, transport, wrapTransport, upgradeRequired, proxy.NewErrorResponder(responder)) handler.MaxBytesPerSec = capabilities.Get().PerConnectionBandwidthLimitBytesPerSec return handler } diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go index 945051582df..7c179ab7cf3 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/handler_proxy.go @@ -181,7 +181,7 @@ func (r *responder) Object(statusCode int, obj runtime.Object) { responsewriters.WriteRawJSON(statusCode, obj, r.w) } -func (r *responder) Error(err error) { +func (r *responder) Error(_ http.ResponseWriter, _ *http.Request, err error) { http.Error(r.w, err.Error(), http.StatusInternalServerError) } From 0daee3ad2238de7bb356d1b4368b0733a3497a3a Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Mon, 24 Jul 2017 23:37:19 -0400 Subject: [PATCH 047/183] Use the UpgradeAwareProxy in `kubectl proxy` Requires a separate transport that is guaranteed not to be HTTP/2 for exec/attach/portforward, because otherwise the Go client attempts to upgrade us to HTTP/2 first. --- pkg/kubectl/BUILD | 3 +- pkg/kubectl/cmd/BUILD | 1 + pkg/kubectl/cmd/proxy.go | 4 +- pkg/kubectl/proxy/BUILD | 47 ++++++++++++++ pkg/kubectl/proxy/proxy_server.go | 87 +++++++++++++++++--------- pkg/kubectl/proxy/proxy_server_test.go | 14 ++++- pkg/kubelet/util/BUILD | 16 ++--- 7 files changed, 129 insertions(+), 43 deletions(-) create mode 100644 pkg/kubectl/proxy/BUILD diff --git a/pkg/kubectl/BUILD b/pkg/kubectl/BUILD index 52a40a1c946..398280cfd29 100644 --- a/pkg/kubectl/BUILD +++ b/pkg/kubectl/BUILD @@ -19,7 +19,6 @@ go_test( "generate_test.go", "kubectl_test.go", "namespace_test.go", - "proxy_server_test.go", "quota_test.go", "resource_filter_test.go", "rolebinding_test.go", @@ -97,7 +96,6 @@ go_library( "kubectl.go", "namespace.go", "pdb.go", - "proxy_server.go", "quota.go", "resource_filter.go", "rolebinding.go", @@ -197,6 +195,7 @@ filegroup( "//pkg/kubectl/cmd:all-srcs", "//pkg/kubectl/metricsutil:all-srcs", "//pkg/kubectl/plugins:all-srcs", + "//pkg/kubectl/proxy:all-srcs", "//pkg/kubectl/resource:all-srcs", "//pkg/kubectl/testing:all-srcs", "//pkg/kubectl/util:all-srcs", diff --git a/pkg/kubectl/cmd/BUILD b/pkg/kubectl/cmd/BUILD index 2f3d2196528..a062a31ad7f 100644 --- a/pkg/kubectl/cmd/BUILD +++ b/pkg/kubectl/cmd/BUILD @@ -91,6 +91,7 @@ go_library( "//pkg/kubectl/cmd/util/openapi:go_default_library", "//pkg/kubectl/metricsutil:go_default_library", "//pkg/kubectl/plugins:go_default_library", + "//pkg/kubectl/proxy:go_default_library", "//pkg/kubectl/resource:go_default_library", "//pkg/kubectl/util:go_default_library", "//pkg/kubectl/util/term:go_default_library", diff --git a/pkg/kubectl/cmd/proxy.go b/pkg/kubectl/cmd/proxy.go index f6009564fac..979d8f8aa23 100644 --- a/pkg/kubectl/cmd/proxy.go +++ b/pkg/kubectl/cmd/proxy.go @@ -139,7 +139,7 @@ func RunProxy(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error { filter = nil } - server, err := proxy.NewProxyServer(staticDir, apiProxyPrefix, staticPrefix, filter, clientConfig) + server, err := proxy.NewServer(staticDir, apiProxyPrefix, staticPrefix, filter, clientConfig) // Separate listening from serving so we can report the bound port // when it is chosen by os (eg: port == 0) @@ -152,7 +152,7 @@ func RunProxy(f cmdutil.Factory, out io.Writer, cmd *cobra.Command) error { if err != nil { glog.Fatal(err) } - fmt.Fprintf(out, "Starting to serve on %s", l.Addr().String()) + fmt.Fprintf(out, "Starting to serve on %s\n", l.Addr().String()) glog.Fatal(server.ServeOnListener(l)) return nil } diff --git a/pkg/kubectl/proxy/BUILD b/pkg/kubectl/proxy/BUILD new file mode 100644 index 00000000000..53dee7eaef9 --- /dev/null +++ b/pkg/kubectl/proxy/BUILD @@ -0,0 +1,47 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["proxy_server_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/util/proxy:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = ["proxy_server.go"], + tags = ["automanaged"], + deps = [ + "//pkg/kubectl/util:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/proxy:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/transport:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubectl/proxy/proxy_server.go b/pkg/kubectl/proxy/proxy_server.go index 2d5c1c26200..3e323c8dc41 100644 --- a/pkg/kubectl/proxy/proxy_server.go +++ b/pkg/kubectl/proxy/proxy_server.go @@ -20,7 +20,6 @@ import ( "fmt" "net" "net/http" - "net/http/httputil" "net/url" "os" "regexp" @@ -28,19 +27,26 @@ import ( "time" "github.com/golang/glog" - restclient "k8s.io/client-go/rest" + utilnet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/apimachinery/pkg/util/proxy" + "k8s.io/client-go/rest" + "k8s.io/client-go/transport" "k8s.io/kubernetes/pkg/kubectl/util" ) const ( - DefaultHostAcceptRE = "^localhost$,^127\\.0\\.0\\.1$,^\\[::1\\]$" - DefaultPathAcceptRE = "^.*" - DefaultPathRejectRE = "^/api/.*/pods/.*/exec,^/api/.*/pods/.*/attach" + // DefaultHostAcceptRE is the default value for which hosts to accept. + DefaultHostAcceptRE = "^localhost$,^127\\.0\\.0\\.1$,^\\[::1\\]$" + // DefaultPathAcceptRE is the default path to accept. + DefaultPathAcceptRE = "^.*" + // DefaultPathRejectRE is the default set of paths to reject. + DefaultPathRejectRE = "^/api/.*/pods/.*/exec,^/api/.*/pods/.*/attach" + // DefaultMethodRejectRE is the set of HTTP methods to reject by default. DefaultMethodRejectRE = "^$" ) var ( - // The reverse proxy will periodically flush the io writer at this frequency. + // ReverseProxyFlushInterval is the frequency to flush the reverse proxy. // Only matters for long poll connections like the one used to watch. With an // interval of 0 the reverse proxy will buffer content sent on any connection // with transfer-encoding=chunked. @@ -63,7 +69,7 @@ type FilterServer struct { delegate http.Handler } -// Splits a comma separated list of regexps into an array of Regexp objects. +// MakeRegexpArray splits a comma separated list of regexps into an array of Regexp objects. func MakeRegexpArray(str string) ([]*regexp.Regexp, error) { parts := strings.Split(str, ",") result := make([]*regexp.Regexp, len(parts)) @@ -77,6 +83,7 @@ func MakeRegexpArray(str string) ([]*regexp.Regexp, error) { return result, nil } +// MakeRegexpArrayOrDie creates an array of regular expression objects from a string or exits. func MakeRegexpArrayOrDie(str string) []*regexp.Regexp { result, err := MakeRegexpArray(str) if err != nil { @@ -137,15 +144,38 @@ func (f *FilterServer) ServeHTTP(rw http.ResponseWriter, req *http.Request) { rw.Write([]byte("

Unauthorized

")) } -// ProxyServer is a http.Handler which proxies Kubernetes APIs to remote API server. -type ProxyServer struct { +// Server is a http.Handler which proxies Kubernetes APIs to remote API server. +type Server struct { handler http.Handler } -// NewProxyServer creates and installs a new ProxyServer. -// It automatically registers the created ProxyServer to http.DefaultServeMux. +type responder struct{} + +func (r *responder) Error(w http.ResponseWriter, req *http.Request, err error) { + glog.Errorf("Error while proxying request: %v", err) + http.Error(w, err.Error(), http.StatusInternalServerError) +} + +// makeUpgradeTransport creates a transport that explicitly bypasses HTTP2 support +// for proxy connections that must upgrade. +func makeUpgradeTransport(config *rest.Config) (http.RoundTripper, error) { + transportConfig, err := config.TransportConfig() + if err != nil { + return nil, err + } + tlsConfig, err := transport.TLSConfigFor(transportConfig) + if err != nil { + return nil, err + } + rt := utilnet.SetOldTransportDefaults(&http.Transport{ + TLSClientConfig: tlsConfig, + }) + return transport.HTTPWrappersForConfig(transportConfig, rt) +} + +// NewServer creates and installs a new Server. // 'filter', if non-nil, protects requests to the api only. -func NewProxyServer(filebase string, apiProxyPrefix string, staticPrefix string, filter *FilterServer, cfg *restclient.Config) (*ProxyServer, error) { +func NewServer(filebase string, apiProxyPrefix string, staticPrefix string, filter *FilterServer, cfg *rest.Config) (*Server, error) { host := cfg.Host if !strings.HasSuffix(host, "/") { host = host + "/" @@ -154,10 +184,20 @@ func NewProxyServer(filebase string, apiProxyPrefix string, staticPrefix string, if err != nil { return nil, err } - proxy := newProxy(target) - if proxy.Transport, err = restclient.TransportFor(cfg); err != nil { + + responder := &responder{} + transport, err := rest.TransportFor(cfg) + if err != nil { return nil, err } + upgradeTransport, err := makeUpgradeTransport(cfg) + if err != nil { + return nil, err + } + proxy := proxy.NewUpgradeAwareHandler(target, transport, false, false, responder) + proxy.UpgradeTransport = upgradeTransport + proxy.UseRequestLocation = true + proxyServer := http.Handler(proxy) if filter != nil { proxyServer = filter.HandlerFor(proxyServer) @@ -174,16 +214,16 @@ func NewProxyServer(filebase string, apiProxyPrefix string, staticPrefix string, // serving their working directory by default. mux.Handle(staticPrefix, newFileHandler(staticPrefix, filebase)) } - return &ProxyServer{handler: mux}, nil + return &Server{handler: mux}, nil } // Listen is a simple wrapper around net.Listen. -func (s *ProxyServer) Listen(address string, port int) (net.Listener, error) { +func (s *Server) Listen(address string, port int) (net.Listener, error) { return net.Listen("tcp", fmt.Sprintf("%s:%d", address, port)) } // ListenUnix does net.Listen for a unix socket -func (s *ProxyServer) ListenUnix(path string) (net.Listener, error) { +func (s *Server) ListenUnix(path string) (net.Listener, error) { // Remove any socket, stale or not, but fall through for other files fi, err := os.Stat(path) if err == nil && (fi.Mode()&os.ModeSocket) != 0 { @@ -196,23 +236,14 @@ func (s *ProxyServer) ListenUnix(path string) (net.Listener, error) { return l, err } -// Serve starts the server using given listener, loops forever. -func (s *ProxyServer) ServeOnListener(l net.Listener) error { +// ServeOnListener starts the server using given listener, loops forever. +func (s *Server) ServeOnListener(l net.Listener) error { server := http.Server{ Handler: s.handler, } return server.Serve(l) } -func newProxy(target *url.URL) *httputil.ReverseProxy { - director := func(req *http.Request) { - req.URL.Scheme = target.Scheme - req.URL.Host = target.Host - req.URL.Path = singleJoiningSlash(target.Path, req.URL.Path) - } - return &httputil.ReverseProxy{Director: director, FlushInterval: ReverseProxyFlushInterval} -} - func newFileHandler(prefix, base string) http.Handler { return http.StripPrefix(prefix, http.FileServer(http.Dir(base))) } diff --git a/pkg/kubectl/proxy/proxy_server_test.go b/pkg/kubectl/proxy/proxy_server_test.go index 903596b6fb5..4a85501e2c1 100644 --- a/pkg/kubectl/proxy/proxy_server_test.go +++ b/pkg/kubectl/proxy/proxy_server_test.go @@ -27,7 +27,8 @@ import ( "strings" "testing" - restclient "k8s.io/client-go/rest" + "k8s.io/apimachinery/pkg/util/proxy" + "k8s.io/client-go/rest" ) func TestAccept(t *testing.T) { @@ -340,6 +341,12 @@ func TestFileServing(t *testing.T) { } } +func newProxy(target *url.URL) http.Handler { + p := proxy.NewUpgradeAwareHandler(target, http.DefaultTransport, false, false, &responder{}) + p.UseRequestLocation = true + return p +} + func TestAPIRequests(t *testing.T) { ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { b, err := ioutil.ReadAll(r.Body) @@ -353,6 +360,7 @@ func TestAPIRequests(t *testing.T) { // httptest.NewServer should always generate a valid URL. target, _ := url.Parse(ts.URL) + target.Path = "/" proxy := newProxy(target) tests := []struct{ method, body string }{ @@ -404,13 +412,13 @@ func TestPathHandling(t *testing.T) { {"/custom/", "/custom/api/v1/pods/", "/api/v1/pods/"}, } - cc := &restclient.Config{ + cc := &rest.Config{ Host: ts.URL, } for _, item := range table { func() { - p, err := NewProxyServer("", item.prefix, "/not/used/for/this/test", nil, cc) + p, err := NewServer("", item.prefix, "/not/used/for/this/test", nil, cc) if err != nil { t.Fatalf("%#v: %v", item, err) } diff --git a/pkg/kubelet/util/BUILD b/pkg/kubelet/util/BUILD index abfb8491465..b8942ee512c 100644 --- a/pkg/kubelet/util/BUILD +++ b/pkg/kubelet/util/BUILD @@ -8,6 +8,14 @@ load( "go_test", ) +go_test( + name = "go_default_test", + srcs = ["util_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], +) + go_library( name = "go_default_library", srcs = [ @@ -23,14 +31,6 @@ go_library( ], ) -go_test( - name = "go_default_test", - srcs = ["util_test.go"], - library = ":go_default_library", - tags = ["automanaged"], - deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), From 97a2b7661852fe5f5a1314edb3e9cd35695b5ff4 Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Tue, 25 Jul 2017 00:41:00 -0400 Subject: [PATCH 048/183] Add e2e test for kubectl exec via kubectl proxy --- test/e2e/kubectl/kubectl.go | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/test/e2e/kubectl/kubectl.go b/test/e2e/kubectl/kubectl.go index 326c015dd01..34b218085e9 100644 --- a/test/e2e/kubectl/kubectl.go +++ b/test/e2e/kubectl/kubectl.go @@ -437,9 +437,6 @@ var _ = SIGDescribe("Kubectl client", func() { }) It("should support exec through an HTTP proxy", func() { - // Note: We are skipping local since we want to verify an apiserver with HTTPS. - // At this time local only supports plain HTTP. - framework.SkipIfProviderIs("local") // Fail if the variable isn't set if framework.TestContext.Host == "" { framework.Failf("--host variable must be set to the full URI to the api server on e2e run.") @@ -473,6 +470,32 @@ var _ = SIGDescribe("Kubectl client", func() { } }) + It("should support exec through kubectl proxy", func() { + // Fail if the variable isn't set + if framework.TestContext.Host == "" { + framework.Failf("--host variable must be set to the full URI to the api server on e2e run.") + } + + By("Starting kubectl proxy") + port, proxyCmd, err := startProxyServer() + framework.ExpectNoError(err) + defer framework.TryKill(proxyCmd) + + //proxyLogs.Reset() + host := fmt.Sprintf("--server=http://127.0.0.1:%d", port) + By("Running kubectl via kubectl proxy using " + host) + output := framework.NewKubectlCommand( + host, fmt.Sprintf("--namespace=%s", ns), + "exec", "nginx", "echo", "running", "in", "container", + ).ExecOrDie() + + // Verify we got the normal output captured by the exec server + expectedExecOutput := "running in container\n" + if output != expectedExecOutput { + framework.Failf("Unexpected kubectl exec output. Wanted %q, got %q", expectedExecOutput, output) + } + }) + It("should return command exit codes", func() { framework.SkipUnlessKubectlVersionGTE(kubectlContainerExitCodeVersion) nsFlag := fmt.Sprintf("--namespace=%v", ns) @@ -1758,7 +1781,7 @@ func getAPIVersions(apiEndpoint string) (*metav1.APIVersions, error) { func startProxyServer() (int, *exec.Cmd, error) { // Specifying port 0 indicates we want the os to pick a random port. - cmd := framework.KubectlCmd("proxy", "-p", "0") + cmd := framework.KubectlCmd("proxy", "-p", "0", "--disable-filter") stdout, stderr, err := framework.StartCmdAndStreamOutput(cmd) if err != nil { return -1, nil, err From c42531cc51b67c7ab67ba6b5d94db2320feec66e Mon Sep 17 00:00:00 2001 From: Clayton Coleman Date: Wed, 26 Jul 2017 20:51:54 -0400 Subject: [PATCH 049/183] Add pkg/kubectl/proxy to list of pkg/kubectl/util consumers --- build/visible_to/BUILD | 1 + 1 file changed, 1 insertion(+) diff --git a/build/visible_to/BUILD b/build/visible_to/BUILD index ccba17fd2e1..df805b5a3e3 100644 --- a/build/visible_to/BUILD +++ b/build/visible_to/BUILD @@ -360,6 +360,7 @@ package_group( packages = [ "//pkg/kubectl", "//pkg/kubectl/cmd", + "//pkg/kubectl/proxy", ], ) From a7a551148071bb4d87f73c7b6c0f4bd7cc829b22 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Fri, 4 Aug 2017 13:25:23 -0400 Subject: [PATCH 050/183] Fix includeObject parameter parsing --- .../apimachinery/pkg/apis/meta/v1alpha1/BUILD | 1 + .../pkg/apis/meta/v1alpha1/conversion.go | 27 +++++++++++++++++++ .../pkg/apis/meta/v1alpha1/register.go | 6 +++++ .../apiserver/pkg/endpoints/apiserver_test.go | 22 ++++++++++++--- 4 files changed, 53 insertions(+), 3 deletions(-) create mode 100644 staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/conversion.go diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD index 0988e6cbda5..87a10d4e5a3 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD @@ -10,6 +10,7 @@ load( go_library( name = "go_default_library", srcs = [ + "conversion.go", "deepcopy.go", "doc.go", "generated.pb.go", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/conversion.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/conversion.go new file mode 100644 index 00000000000..f8ecc7c26cf --- /dev/null +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/conversion.go @@ -0,0 +1,27 @@ +/* +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. +*/ + +package v1alpha1 + +import "k8s.io/apimachinery/pkg/conversion" + +// Convert_Slice_string_To_v1alpha1_IncludeObjectPolicy allows converting a URL query parameter value +func Convert_Slice_string_To_v1alpha1_IncludeObjectPolicy(input *[]string, out *IncludeObjectPolicy, s conversion.Scope) error { + if len(*input) > 0 { + *out = IncludeObjectPolicy((*input)[0]) + } + return nil +} diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/register.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/register.go index 89f08f3837e..dab66bf0887 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/register.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/register.go @@ -46,6 +46,12 @@ func init() { &PartialObjectMetadataList{}, ) + if err := scheme.AddConversionFuncs( + Convert_Slice_string_To_v1alpha1_IncludeObjectPolicy, + ); err != nil { + panic(err) + } + // register manually. This usually goes through the SchemeBuilder, which we cannot use here. //scheme.AddGeneratedDeepCopyFuncs(GetGeneratedDeepCopyFuncs()...) } diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go index 19980d543d1..9da48d7f7e2 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/apiserver_test.go @@ -1885,6 +1885,20 @@ func TestGetTable(t *testing.T) { }, }, }, + { + accept: runtime.ContentTypeJSON + ";as=Table;v=v1alpha1;g=meta.k8s.io", + params: url.Values{"includeObject": []string{"Metadata"}}, + expected: &metav1alpha1.Table{ + TypeMeta: metav1.TypeMeta{Kind: "Table", APIVersion: "meta.k8s.io/v1alpha1"}, + ColumnDefinitions: []metav1alpha1.TableColumnDefinition{ + {Name: "Name", Type: "string", Description: metaDoc["name"]}, + {Name: "Created At", Type: "date", Description: metaDoc["creationTimestamp"]}, + }, + Rows: []metav1alpha1.TableRow{ + {Cells: []interface{}{"foo1", now.Time.UTC().Format(time.RFC3339)}, Object: runtime.RawExtension{Raw: encodedBody}}, + }, + }, + }, } for i, test := range tests { u, err := url.Parse(server.URL + "/" + prefix + "/" + testGroupVersion.Group + "/" + testGroupVersion.Version + "/namespaces/default/simple/id") @@ -1901,18 +1915,20 @@ func TestGetTable(t *testing.T) { } if test.statusCode != 0 { if resp.StatusCode != test.statusCode { - t.Errorf("%d: unexpected response: %#v", resp) + t.Errorf("%d: unexpected response: %#v", i, resp) } continue } if resp.StatusCode != http.StatusOK { - t.Errorf("%d: unexpected response: %#v", resp) + t.Errorf("%d: unexpected response: %#v", i, resp) } var itemOut metav1alpha1.Table - if _, err = extractBody(resp, &itemOut); err != nil { + body, err := extractBody(resp, &itemOut) + if err != nil { t.Fatal(err) } if !reflect.DeepEqual(test.expected, &itemOut) { + t.Log(body) t.Errorf("%d: did not match: %s", i, diff.ObjectReflectDiff(test.expected, &itemOut)) } } From 2d9c6dfae813faa4e8ef800750ff1283b75102eb Mon Sep 17 00:00:00 2001 From: Julia Evans Date: Thu, 3 Aug 2017 12:40:29 -0700 Subject: [PATCH 051/183] Handle errors more consistently in scheduler --- plugin/pkg/scheduler/scheduler.go | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/plugin/pkg/scheduler/scheduler.go b/plugin/pkg/scheduler/scheduler.go index 3b70c6362fa..6bddae7e30c 100644 --- a/plugin/pkg/scheduler/scheduler.go +++ b/plugin/pkg/scheduler/scheduler.go @@ -17,7 +17,6 @@ limitations under the License. package scheduler import ( - "fmt" "time" "k8s.io/api/core/v1" @@ -194,12 +193,20 @@ func (sched *Scheduler) assume(assumed *v1.Pod, host string) error { assumed.Spec.NodeName = host if err := sched.config.SchedulerCache.AssumePod(assumed); err != nil { glog.Errorf("scheduler cache AssumePod failed: %v", err) - // TODO: This means that a given pod is already in cache (which means it - // is either assumed or already added). This is most probably result of a - // BUG in retrying logic. As a temporary workaround (which doesn't fully - // fix the problem, but should reduce its impact), we simply return here, - // as binding doesn't make sense anyway. - // This should be fixed properly though. + + // This is most probably result of a BUG in retrying logic. + // We report an error here so that pod scheduling can be retried. + // This relies on the fact that Error will check if the pod has been bound + // to a node and if so will not add it back to the unscheduled pods queue + // (otherwise this would cause an infinite loop). + sched.config.Error(assumed, err) + sched.config.Recorder.Eventf(assumed, v1.EventTypeWarning, "FailedScheduling", "AssumePod failed: %v", err) + sched.config.PodConditionUpdater.Update(assumed, &v1.PodCondition{ + Type: v1.PodScheduled, + Status: v1.ConditionFalse, + Reason: "SchedulerError", + Message: err.Error(), + }) return err } @@ -219,10 +226,13 @@ func (sched *Scheduler) bind(assumed *v1.Pod, b *v1.Binding) error { // If binding succeeded then PodScheduled condition will be updated in apiserver so that // it's atomic with setting host. err := sched.config.Binder.Bind(b) + if err := sched.config.SchedulerCache.FinishBinding(assumed); err != nil { + glog.Errorf("scheduler cache FinishBinding failed: %v", err) + } if err != nil { glog.V(1).Infof("Failed to bind pod: %v/%v", assumed.Namespace, assumed.Name) if err := sched.config.SchedulerCache.ForgetPod(assumed); err != nil { - return fmt.Errorf("scheduler cache ForgetPod failed: %v", err) + glog.Errorf("scheduler cache ForgetPod failed: %v", err) } sched.config.Error(assumed, err) sched.config.Recorder.Eventf(assumed, v1.EventTypeWarning, "FailedScheduling", "Binding rejected: %v", err) @@ -234,10 +244,6 @@ func (sched *Scheduler) bind(assumed *v1.Pod, b *v1.Binding) error { return err } - if err := sched.config.SchedulerCache.FinishBinding(assumed); err != nil { - return fmt.Errorf("scheduler cache FinishBinding failed: %v", err) - } - metrics.BindingLatency.Observe(metrics.SinceInMicroseconds(bindingStart)) sched.config.Recorder.Eventf(assumed, v1.EventTypeNormal, "Scheduled", "Successfully assigned %v to %v", assumed.Name, b.Target.Name) return nil From 026a082a7ff2f94053c1cfb8382e8417e27fab84 Mon Sep 17 00:00:00 2001 From: Yang Guo Date: Mon, 31 Jul 2017 18:01:11 -0700 Subject: [PATCH 052/183] Add node e2e test for Docker's shared PID namespace --- test/e2e_node/BUILD | 5 +- test/e2e_node/docker_test.go | 73 +++++++++++++++++++ test/e2e_node/docker_util.go | 62 ++++++++++++++++ test/e2e_node/garbage_collector_test.go | 2 - .../e2e_node/jenkins/image-config-serial.yaml | 6 +- test/e2e_node/jenkins/image-config.yaml | 6 +- test/e2e_node/security_context_test.go | 20 +---- 7 files changed, 153 insertions(+), 21 deletions(-) create mode 100644 test/e2e_node/docker_test.go create mode 100644 test/e2e_node/docker_util.go diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 57421ca310f..57c95b9c9c4 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -14,6 +14,7 @@ go_library( "benchmark_util.go", "container.go", "doc.go", + "docker_util.go", "gpus.go", "image_list.go", "node_problem_detector_linux.go", @@ -39,6 +40,8 @@ go_library( "//test/e2e/metrics:go_default_library", "//test/e2e/perftype:go_default_library", "//test/e2e_node/perftype:go_default_library", + "//vendor/github.com/blang/semver:go_default_library", + "//vendor/github.com/docker/docker/client:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/client/v2:go_default_library", "//vendor/github.com/google/cadvisor/info/v2:go_default_library", @@ -71,6 +74,7 @@ go_test( "critical_pod_test.go", "density_test.go", "disk_eviction_test.go", + "docker_test.go", "dockershim_checkpoint_test.go", "dynamic_kubelet_configuration_test.go", "e2e_node_suite_test.go", @@ -118,7 +122,6 @@ go_test( "//test/e2e_node/services:go_default_library", "//test/e2e_node/system:go_default_library", "//test/utils:go_default_library", - "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/coreos/go-systemd/util:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/test/e2e_node/docker_test.go b/test/e2e_node/docker_test.go new file mode 100644 index 00000000000..8c79604fb14 --- /dev/null +++ b/test/e2e_node/docker_test.go @@ -0,0 +1,73 @@ +/* +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. +*/ + +package e2e_node + +import ( + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/kubernetes/test/e2e/framework" + + . "github.com/onsi/ginkgo" +) + +var _ = framework.KubeDescribe("Docker features [Feature:Docker]", func() { + f := framework.NewDefaultFramework("docker-feature-test") + + BeforeEach(func() { + framework.RunIfContainerRuntimeIs("docker") + }) + + Context("when shared PID namespace is enabled", func() { + It("processes in different containers of the same pod should be able to see each other", func() { + // TODO(yguo0905): Change this test to run unless the runtime is + // Docker and its version is <1.13. + By("Check whether shared PID namespace is enabled.") + isEnabled, err := isSharedPIDNamespaceEnabled() + framework.ExpectNoError(err) + if !isEnabled { + framework.Skipf("Skipped because shared PID namespace is not enabled.") + } + + By("Create a pod with two containers.") + f.PodClient().CreateSync(&v1.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "shared-pid-ns-test-pod"}, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "test-container-1", + Image: "gcr.io/google_containers/busybox:1.24", + Command: []string{"/bin/top"}, + }, + { + Name: "test-container-2", + Image: "gcr.io/google_containers/busybox:1.24", + Command: []string{"/bin/sleep"}, + Args: []string{"10000"}, + }, + }, + }, + }) + + By("Check if the process in one container is visible to the process in the other.") + pid1 := f.ExecCommandInContainer("shared-pid-ns-test-pod", "test-container-1", "/bin/pidof", "top") + pid2 := f.ExecCommandInContainer("shared-pid-ns-test-pod", "test-container-2", "/bin/pidof", "top") + if pid1 != pid2 { + framework.Failf("PIDs are not the same in different containers: test-container-1=%v, test-container-2=%v", pid1, pid2) + } + }) + }) +}) diff --git a/test/e2e_node/docker_util.go b/test/e2e_node/docker_util.go new file mode 100644 index 00000000000..b8bc2497083 --- /dev/null +++ b/test/e2e_node/docker_util.go @@ -0,0 +1,62 @@ +/* +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. +*/ + +package e2e_node + +import ( + "context" + "fmt" + + "github.com/blang/semver" + "github.com/docker/docker/client" +) + +const ( + defaultDockerEndpoint = "unix:///var/run/docker.sock" +) + +// getDockerAPIVersion returns the Docker's API version. +func getDockerAPIVersion() (semver.Version, error) { + c, err := client.NewClient(defaultDockerEndpoint, "", nil, nil) + if err != nil { + return semver.Version{}, fmt.Errorf("failed to create docker client: %v", err) + } + version, err := c.ServerVersion(context.Background()) + if err != nil { + return semver.Version{}, fmt.Errorf("failed to get docker info: %v", err) + } + return semver.MustParse(version.APIVersion + ".0"), nil +} + +// isSharedPIDNamespaceEnabled returns true if the Docker version is 1.13.1+ +// (API version 1.26+), and false otherwise. +func isSharedPIDNamespaceEnabled() (bool, error) { + version, err := getDockerAPIVersion() + if err != nil { + return false, err + } + return version.GTE(semver.MustParse("1.26.0")), nil +} + +// isDockerNoNewPrivilegesSupported returns true if Docker version is 1.11+ +// (API version 1.23+), and false otherwise. +func isDockerNoNewPrivilegesSupported() (bool, error) { + version, err := getDockerAPIVersion() + if err != nil { + return false, err + } + return version.GTE(semver.MustParse("1.23.0")), nil +} diff --git a/test/e2e_node/garbage_collector_test.go b/test/e2e_node/garbage_collector_test.go index 12505349609..0bc4852ddd7 100644 --- a/test/e2e_node/garbage_collector_test.go +++ b/test/e2e_node/garbage_collector_test.go @@ -32,8 +32,6 @@ import ( ) const ( - defaultDockerEndpoint = "unix:///var/run/docker.sock" - //TODO (dashpole): Once dynamic config is possible, test different values for maxPerPodContainer and maxContainers // Currently using default values for maxPerPodContainer and maxTotalContainers maxPerPodContainer = 1 diff --git a/test/e2e_node/jenkins/image-config-serial.yaml b/test/e2e_node/jenkins/image-config-serial.yaml index 04991988a75..12da0f85f4e 100644 --- a/test/e2e_node/jenkins/image-config-serial.yaml +++ b/test/e2e_node/jenkins/image-config-serial.yaml @@ -12,7 +12,7 @@ images: containervm: image: e2e-node-containervm-v20161208-image # docker 1.11.2 project: kubernetes-node-e2e-images - gci: + cos-stable: image_regex: cos-stable-59-9460-64-0 # docker 1.11.2 project: cos-cloud metadata: "user-data= 1.11 thats when "no-new-privileges" was added - framework.Skipf("Skipping no_new_privs tests, docker version is < 1.11 it is %s", version.String()) + isSupported, err := isDockerNoNewPrivilegesSupported() + framework.ExpectNoError(err) + if !isSupported { + framework.Skipf("Skipping because no_new_privs is not supported in this docker") } } }) From 7778b0dfeef1fc628edbdbf9a3d7d9b01889fa4b Mon Sep 17 00:00:00 2001 From: Michelle Au Date: Fri, 4 Aug 2017 16:15:53 -0700 Subject: [PATCH 053/183] Fix local storage test failures --- test/e2e/storage/persistent_volumes-local.go | 48 ++++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) diff --git a/test/e2e/storage/persistent_volumes-local.go b/test/e2e/storage/persistent_volumes-local.go index 4e26fe49d48..4554947e7c3 100644 --- a/test/e2e/storage/persistent_volumes-local.go +++ b/test/e2e/storage/persistent_volumes-local.go @@ -50,8 +50,6 @@ type localTestVolume struct { node *v1.Node // Path to the volume on the host node hostDir string - // Path to the volume in the local util container - containerDir string // PVC for this volume pvc *v1.PersistentVolumeClaim // PV for this volume @@ -322,8 +320,10 @@ var _ = SIGDescribe("PersistentVolumes-local [Feature:LocalPersistentVolumes] [S By("Creating a directory under discovery path") framework.Logf("creating local volume under path %q", volumePath) mkdirCmd := fmt.Sprintf("mkdir %v -m 777", volumePath) - _, err := framework.NodeExec(node0.Name, mkdirCmd) + err := framework.IssueSSHCommand(mkdirCmd, framework.TestContext.Provider, node0) Expect(err).NotTo(HaveOccurred()) + + By("Waiting for a PersitentVolume to be created") oldPV, err := waitForLocalPersistentVolume(config.client, volumePath) Expect(err).NotTo(HaveOccurred()) @@ -333,22 +333,27 @@ var _ = SIGDescribe("PersistentVolumes-local [Feature:LocalPersistentVolumes] [S Expect(err).NotTo(HaveOccurred()) err = framework.WaitForPersistentVolumeClaimPhase( v1.ClaimBound, config.client, claim.Namespace, claim.Name, framework.Poll, 1*time.Minute) - Expect(claim.Spec.VolumeName).To(Equal(oldPV.Name)) Expect(err).NotTo(HaveOccurred()) + claim, err = config.client.Core().PersistentVolumeClaims(config.ns).Get(claim.Name, metav1.GetOptions{}) + Expect(err).NotTo(HaveOccurred()) + Expect(claim.Spec.VolumeName).To(Equal(oldPV.Name)) + // Delete the persistent volume claim: file will be cleaned up and volume be re-created. By("Deleting the persistent volume claim to clean up persistent volume and re-create one") - writeCmd, readCmd := createWriteAndReadCmds(volumePath, testFile, testFileContent) - _, err = framework.NodeExec(node0.Name, writeCmd) + writeCmd, _ := createWriteAndReadCmds(volumePath, testFile, testFileContent) + err = framework.IssueSSHCommand(writeCmd, framework.TestContext.Provider, node0) Expect(err).NotTo(HaveOccurred()) err = config.client.Core().PersistentVolumeClaims(claim.Namespace).Delete(claim.Name, &metav1.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) + + By("Waiting for a new PersistentVolume to be re-created") newPV, err := waitForLocalPersistentVolume(config.client, volumePath) Expect(err).NotTo(HaveOccurred()) Expect(newPV.UID).NotTo(Equal(oldPV.UID)) - result, err := framework.NodeExec(node0.Name, readCmd) + fileDoesntExistCmd := createFileDoesntExistCmd(volumePath, testFile) + err = framework.IssueSSHCommand(fileDoesntExistCmd, framework.TestContext.Provider, node0) Expect(err).NotTo(HaveOccurred()) - Expect(result.Code).NotTo(BeZero(), "file should be deleted across local pv recreation, but exists") }) }) }) @@ -362,18 +367,16 @@ func podNodeName(config *localTestConfig, pod *v1.Pod) (string, error) { // setupLocalVolume setups a directory to user for local PV func setupLocalVolume(config *localTestConfig) *localTestVolume { testDirName := "local-volume-test-" + string(uuid.NewUUID()) - testDir := filepath.Join(containerBase, testDirName) hostDir := filepath.Join(hostBase, testDirName) // populate volume with testFile containing testFileContent - writeCmd, _ := createWriteAndReadCmds(testDir, testFile, testFileContent) + writeCmd, _ := createWriteAndReadCmds(hostDir, testFile, testFileContent) By(fmt.Sprintf("Creating local volume on node %q at path %q", config.node0.Name, hostDir)) - _, err := framework.NodeExec(config.node0.Name, writeCmd) + err := framework.IssueSSHCommand(writeCmd, framework.TestContext.Provider, config.node0) Expect(err).NotTo(HaveOccurred()) return &localTestVolume{ - node: config.node0, - hostDir: hostDir, - containerDir: testDir, + node: config.node0, + hostDir: hostDir, } } @@ -390,8 +393,8 @@ func cleanupLocalVolume(config *localTestConfig, volume *localTestVolume) { } By("Removing the test directory") - removeCmd := fmt.Sprintf("rm -r %s", volume.containerDir) - _, err := framework.NodeExec(config.node0.Name, removeCmd) + removeCmd := fmt.Sprintf("rm -r %s", volume.hostDir) + err := framework.IssueSSHCommand(removeCmd, framework.TestContext.Provider, config.node0) Expect(err).NotTo(HaveOccurred()) } @@ -459,7 +462,7 @@ func createLocalPod(config *localTestConfig, volume *localTestVolume) (*v1.Pod, } // Create corresponding write and read commands -// to be executed inside containers with local PV attached +// to be executed via SSH on the node with the local PV func createWriteAndReadCmds(testFileDir string, testFile string, writeTestFileContent string) (writeCmd string, readCmd string) { testFilePath := filepath.Join(testFileDir, testFile) writeCmd = fmt.Sprintf("mkdir -p %s; echo %s > %s", testFileDir, writeTestFileContent, testFilePath) @@ -467,6 +470,13 @@ func createWriteAndReadCmds(testFileDir string, testFile string, writeTestFileCo return writeCmd, readCmd } +// Create command to verify that the file doesn't exist +// to be executed via SSH on the node with the local PV +func createFileDoesntExistCmd(testFileDir string, testFile string) string { + testFilePath := filepath.Join(testFileDir, testFile) + return fmt.Sprintf("[ ! -e %s ]", testFilePath) +} + // Execute a read or write command in a pod. // Fail on error func podRWCmdExec(pod *v1.Pod, cmd string) string { @@ -495,7 +505,7 @@ func setupLocalVolumeProvisioner(config *localTestConfig) { By("Initializing local volume discovery base path") mkdirCmd := fmt.Sprintf("mkdir %v -m 777", path.Join(hostBase, discoveryDir)) - _, err := framework.NodeExec(config.node0.Name, mkdirCmd) + err := framework.IssueSSHCommand(mkdirCmd, framework.TestContext.Provider, config.node0) Expect(err).NotTo(HaveOccurred()) } @@ -505,7 +515,7 @@ func cleanupLocalVolumeProvisioner(config *localTestConfig, volumePath string) { By("Removing the test directory") removeCmd := fmt.Sprintf("rm -r %s", path.Join(hostBase, discoveryDir)) - _, err := framework.NodeExec(config.node0.Name, removeCmd) + err := framework.IssueSSHCommand(removeCmd, framework.TestContext.Provider, config.node0) Expect(err).NotTo(HaveOccurred()) By("Cleaning up persistent volume") From a1530de319195ae64493c7ce70fe7c00ee07102e Mon Sep 17 00:00:00 2001 From: FengyunPan Date: Sat, 5 Aug 2017 10:37:38 +0800 Subject: [PATCH 054/183] Use 'Infof' instead of 'Errorf' for a debug log --- pkg/kubelet/kubelet_resources.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/kubelet/kubelet_resources.go b/pkg/kubelet/kubelet_resources.go index c5d73b796bb..15e4d9ac238 100644 --- a/pkg/kubelet/kubelet_resources.go +++ b/pkg/kubelet/kubelet_resources.go @@ -43,7 +43,7 @@ func (kl *Kubelet) defaultPodLimitsForDownwardAPI(pod *v1.Pod, container *v1.Con return nil, nil, fmt.Errorf("failed to find node object, expected a node") } allocatable := node.Status.Allocatable - glog.Errorf("allocatable: %v", allocatable) + glog.Infof("allocatable: %v", allocatable) podCopy, err := scheme.Scheme.Copy(pod) if err != nil { return nil, nil, fmt.Errorf("failed to perform a deep copy of pod object: %v", err) From b2b3ae378e9f798db17500ceea53964349cb9aa0 Mon Sep 17 00:00:00 2001 From: Zhe Jin Date: Sat, 5 Aug 2017 11:09:15 +0800 Subject: [PATCH 055/183] fix typo --- pkg/controller/resourcequota/replenishment_controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controller/resourcequota/replenishment_controller.go b/pkg/controller/resourcequota/replenishment_controller.go index 6e2903bee6c..ec7372a3337 100644 --- a/pkg/controller/resourcequota/replenishment_controller.go +++ b/pkg/controller/resourcequota/replenishment_controller.go @@ -61,7 +61,7 @@ func PodReplenishmentUpdateFunc(options *ReplenishmentControllerOptions) func(ol } } -// ObjectReplenenishmentDeleteFunc will replenish on every delete +// ObjectReplenishmentDeleteFunc will replenish on every delete func ObjectReplenishmentDeleteFunc(options *ReplenishmentControllerOptions) func(obj interface{}) { return func(obj interface{}) { metaObject, err := meta.Accessor(obj) From 4a236f61452be39183bbdcd4f12f4a1accd9755e Mon Sep 17 00:00:00 2001 From: m1093782566 Date: Fri, 2 Jun 2017 10:51:55 +0800 Subject: [PATCH 056/183] use status code instead of response body for checking kube-proxy URLs --- test/e2e/framework/networking_utils.go | 15 ++++++++++++++- test/e2e/network/networking.go | 3 ++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/test/e2e/framework/networking_utils.go b/test/e2e/framework/networking_utils.go index 06da52e58f9..9d5226e4cdb 100644 --- a/test/e2e/framework/networking_utils.go +++ b/test/e2e/framework/networking_utils.go @@ -279,9 +279,22 @@ func (config *NetworkingTestConfig) DialFromNode(protocol, targetIP string, targ func (config *NetworkingTestConfig) GetSelfURL(port int32, path string, expected string) { cmd := fmt.Sprintf("curl -i -q -s --connect-timeout 1 http://localhost:%d%s", port, path) By(fmt.Sprintf("Getting kube-proxy self URL %s", path)) + config.executeCurlCmd(cmd, expected) +} +// GetSelfStatusCode executes a curl against the given path via kubectl exec into a +// test container running with host networking, and fails if the returned status +// code doesn't match the expected string. +func (config *NetworkingTestConfig) GetSelfURLStatusCode(port int32, path string, expected string) { + // check status code + cmd := fmt.Sprintf("curl -o /dev/null -i -q -s -w %%{http_code} --connect-timeout 1 http://localhost:%d%s", port, path) + By(fmt.Sprintf("Checking status code against http://localhost:%d%s", port, path)) + config.executeCurlCmd(cmd, expected) +} + +func (config *NetworkingTestConfig) executeCurlCmd(cmd string, expected string) { // These are arbitrary timeouts. The curl command should pass on first try, - // unless kubeproxy is starved/bootstrapping/restarting etc. + // unless remote server is starved/bootstrapping/restarting etc. const retryInterval = 1 * time.Second const retryTimeout = 30 * time.Second podName := config.HostTestContainerPod.Name diff --git a/test/e2e/network/networking.go b/test/e2e/network/networking.go index 68cf59a6020..f5a1566e2fb 100644 --- a/test/e2e/network/networking.go +++ b/test/e2e/network/networking.go @@ -87,7 +87,8 @@ var _ = SIGDescribe("Networking", func() { config.GetSelfURL(ports.ProxyHealthzPort, "/healthz", "200 OK") // Verify /healthz returns the proper content. config.GetSelfURL(ports.ProxyHealthzPort, "/healthz", "lastUpdated") - config.GetSelfURL(ports.ProxyStatusPort, "/proxyMode", "iptables") // the default + // Verify /proxyMode returns http status code 200. + config.GetSelfURLStatusCode(ports.ProxyStatusPort, "/proxyMode", "200") }) // TODO: Remove [Slow] when this has had enough bake time to prove presubmit worthiness. From ebe21ee4c1f5c3c72ec78e760552bd43f746968f Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Fri, 4 Aug 2017 16:50:35 +0800 Subject: [PATCH 057/183] Remove deprecated ESIPP beta annotations --- pkg/api/annotation_key_constants.go | 16 -- pkg/api/service/BUILD | 2 - pkg/api/service/util.go | 46 ----- pkg/api/service/util_test.go | 116 +---------- pkg/api/v1/defaults.go | 5 +- pkg/api/v1/defaults_test.go | 12 -- pkg/api/v1/service/BUILD | 2 - pkg/api/v1/service/util.go | 46 ----- pkg/api/v1/service/util_test.go | 116 +---------- pkg/api/validation/validation.go | 69 ------- pkg/api/validation/validation_test.go | 113 ----------- pkg/proxy/iptables/proxier_test.go | 16 +- pkg/registry/core/service/rest.go | 7 +- pkg/registry/core/service/rest_test.go | 192 ------------------ .../api/core/v1/annotation_key_constants.go | 16 -- 15 files changed, 18 insertions(+), 756 deletions(-) diff --git a/pkg/api/annotation_key_constants.go b/pkg/api/annotation_key_constants.go index bd7f21d64f4..0d41438191f 100644 --- a/pkg/api/annotation_key_constants.go +++ b/pkg/api/annotation_key_constants.go @@ -89,20 +89,4 @@ const ( // // Not all cloud providers support this annotation, though AWS & GCE do. AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges" - - // AnnotationValueExternalTrafficLocal Value of annotation to specify local endpoints behavior. - AnnotationValueExternalTrafficLocal = "OnlyLocal" - // AnnotationValueExternalTrafficGlobal Value of annotation to specify global (legacy) behavior. - AnnotationValueExternalTrafficGlobal = "Global" - - // TODO: The beta annotations have been deprecated, remove them when we release k8s 1.8. - - // BetaAnnotationHealthCheckNodePort Annotation specifying the healthcheck nodePort for the service. - // If not specified, annotation is created by the service api backend with the allocated nodePort. - // Will use user-specified nodePort value if specified by the client. - BetaAnnotationHealthCheckNodePort = "service.beta.kubernetes.io/healthcheck-nodeport" - - // BetaAnnotationExternalTraffic An annotation that denotes if this Service desires to route - // external traffic to local endpoints only. This preserves Source IP and avoids a second hop. - BetaAnnotationExternalTraffic = "service.beta.kubernetes.io/external-traffic" ) diff --git a/pkg/api/service/BUILD b/pkg/api/service/BUILD index a514e373811..995ae5171e4 100644 --- a/pkg/api/service/BUILD +++ b/pkg/api/service/BUILD @@ -15,7 +15,6 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/util/net/sets:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", ], ) @@ -28,7 +27,6 @@ go_test( "//pkg/api:go_default_library", "//pkg/util/net/sets:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], ) diff --git a/pkg/api/service/util.go b/pkg/api/service/util.go index 50041f77e2e..f75be925b59 100644 --- a/pkg/api/service/util.go +++ b/pkg/api/service/util.go @@ -18,13 +18,10 @@ package service import ( "fmt" - "strconv" "strings" "k8s.io/kubernetes/pkg/api" netsets "k8s.io/kubernetes/pkg/util/net/sets" - - "github.com/golang/glog" ) const ( @@ -77,20 +74,6 @@ func RequestsOnlyLocalTraffic(service *api.Service) bool { return false } - // First check the beta annotation and then the first class field. This is so that - // existing Services continue to work till the user decides to transition to the - // first class field. - if l, ok := service.Annotations[api.BetaAnnotationExternalTraffic]; ok { - switch l { - case api.AnnotationValueExternalTrafficLocal: - return true - case api.AnnotationValueExternalTrafficGlobal: - return false - default: - glog.Errorf("Invalid value for annotation %v: %v", api.BetaAnnotationExternalTraffic, l) - return false - } - } return service.Spec.ExternalTrafficPolicy == api.ServiceExternalTrafficPolicyTypeLocal } @@ -104,45 +87,16 @@ func NeedsHealthCheck(service *api.Service) bool { // GetServiceHealthCheckNodePort Return health check node port for service, if one exists func GetServiceHealthCheckNodePort(service *api.Service) int32 { - // First check the beta annotation and then the first class field. This is so that - // existing Services continue to work till the user decides to transition to the - // first class field. - if l, ok := service.Annotations[api.BetaAnnotationHealthCheckNodePort]; ok { - p, err := strconv.Atoi(l) - if err != nil { - glog.Errorf("Failed to parse annotation %v: %v", api.BetaAnnotationHealthCheckNodePort, err) - return 0 - } - return int32(p) - } return service.Spec.HealthCheckNodePort } // ClearExternalTrafficPolicy resets the ExternalTrafficPolicy field. func ClearExternalTrafficPolicy(service *api.Service) { - // First check the beta annotation and then the first class field. This is so that - // existing Services continue to work till the user decides to transition to the - // first class field. - if _, ok := service.Annotations[api.BetaAnnotationExternalTraffic]; ok { - delete(service.Annotations, api.BetaAnnotationExternalTraffic) - return - } service.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyType("") } // SetServiceHealthCheckNodePort sets the given health check node port on service. // It does not check whether this service needs healthCheckNodePort. func SetServiceHealthCheckNodePort(service *api.Service, hcNodePort int32) { - // First check the beta annotation and then the first class field. This is so that - // existing Services continue to work till the user decides to transition to the - // first class field. - if _, ok := service.Annotations[api.BetaAnnotationExternalTraffic]; ok { - if hcNodePort == 0 { - delete(service.Annotations, api.BetaAnnotationHealthCheckNodePort) - } else { - service.Annotations[api.BetaAnnotationHealthCheckNodePort] = fmt.Sprintf("%d", hcNodePort) - } - return - } service.Spec.HealthCheckNodePort = hcNodePort } diff --git a/pkg/api/service/util_test.go b/pkg/api/service/util_test.go index 6c87173ed27..89acbdeea87 100644 --- a/pkg/api/service/util_test.go +++ b/pkg/api/service/util_test.go @@ -17,16 +17,13 @@ limitations under the License. package service import ( + "strings" "testing" - "fmt" - "strings" + "github.com/davecgh/go-spew/spew" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/kubernetes/pkg/api" netsets "k8s.io/kubernetes/pkg/util/net/sets" - - "github.com/davecgh/go-spew/spew" ) func TestGetLoadBalancerSourceRanges(t *testing.T) { @@ -218,37 +215,6 @@ func TestNeedsHealthCheck(t *testing.T) { ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeLocal, }, }) - - checkNeedsHealthCheck(false, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: "invalid", - }, - }, - }) - checkNeedsHealthCheck(false, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficGlobal, - }, - }, - }) - checkNeedsHealthCheck(true, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - }, - }, - }) } func TestGetServiceHealthCheckNodePort(t *testing.T) { @@ -284,17 +250,6 @@ func TestGetServiceHealthCheckNodePort(t *testing.T) { HealthCheckNodePort: int32(34567), }, }) - checkGetServiceHealthCheckNodePort(34567, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - api.BetaAnnotationHealthCheckNodePort: "34567", - }, - }, - }) } func TestClearExternalTrafficPolicy(t *testing.T) { @@ -310,25 +265,11 @@ func TestClearExternalTrafficPolicy(t *testing.T) { }, }, }, - // Beta annotations cases. - { - &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - }, - }, - }, - }, } for i, tc := range testCases { ClearExternalTrafficPolicy(tc.inputService) - if _, ok := tc.inputService.Annotations[api.BetaAnnotationExternalTraffic]; ok || - tc.inputService.Spec.ExternalTrafficPolicy != "" { + if tc.inputService.Spec.ExternalTrafficPolicy != "" { t.Errorf("%v: failed to clear ExternalTrafficPolicy", i) spew.Dump(tc) } @@ -339,7 +280,6 @@ func TestSetServiceHealthCheckNodePort(t *testing.T) { testCases := []struct { inputService *api.Service hcNodePort int32 - beta bool }{ // First class fields cases. { @@ -350,7 +290,6 @@ func TestSetServiceHealthCheckNodePort(t *testing.T) { }, }, 30012, - false, }, { &api.Service{ @@ -360,58 +299,13 @@ func TestSetServiceHealthCheckNodePort(t *testing.T) { }, }, 0, - false, - }, - // Beta annotations cases. - { - &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficGlobal, - }, - }, - }, - 30012, - true, - }, - { - &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficGlobal, - }, - }, - }, - 0, - true, }, } for i, tc := range testCases { SetServiceHealthCheckNodePort(tc.inputService, tc.hcNodePort) - if !tc.beta { - if tc.inputService.Spec.HealthCheckNodePort != tc.hcNodePort { - t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, tc.inputService.Spec.HealthCheckNodePort, tc.hcNodePort) - } - } else { - l, ok := tc.inputService.Annotations[api.BetaAnnotationHealthCheckNodePort] - if tc.hcNodePort == 0 { - if ok { - t.Errorf("%v: HealthCheckNodePort set, want it to be cleared", i) - } - } else { - if !ok { - t.Errorf("%v: HealthCheckNodePort unset, want %v", i, tc.hcNodePort) - } else if l != fmt.Sprintf("%v", tc.hcNodePort) { - t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, l, tc.hcNodePort) - } - } + if tc.inputService.Spec.HealthCheckNodePort != tc.hcNodePort { + t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, tc.inputService.Spec.HealthCheckNodePort, tc.hcNodePort) } } } diff --git a/pkg/api/v1/defaults.go b/pkg/api/v1/defaults.go index e4a1600dbf4..70c1d709efb 100644 --- a/pkg/api/v1/defaults.go +++ b/pkg/api/v1/defaults.go @@ -115,10 +115,7 @@ func SetDefaults_Service(obj *v1.Service) { } // Defaults ExternalTrafficPolicy field for NodePort / LoadBalancer service // to Global for consistency. - if _, ok := obj.Annotations[v1.BetaAnnotationExternalTraffic]; ok { - // Don't default this field if beta annotation exists. - return - } else if (obj.Spec.Type == v1.ServiceTypeNodePort || + if (obj.Spec.Type == v1.ServiceTypeNodePort || obj.Spec.Type == v1.ServiceTypeLoadBalancer) && obj.Spec.ExternalTrafficPolicy == "" { obj.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster diff --git a/pkg/api/v1/defaults_test.go b/pkg/api/v1/defaults_test.go index 3b8eba645c2..0e39bd55d9f 100644 --- a/pkg/api/v1/defaults_test.go +++ b/pkg/api/v1/defaults_test.go @@ -896,18 +896,6 @@ func TestSetDefaulServiceExternalTraffic(t *testing.T) { if out.Spec.ExternalTrafficPolicy != v1.ServiceExternalTrafficPolicyTypeCluster { t.Errorf("Expected ExternalTrafficPolicy to be %v, got %v", v1.ServiceExternalTrafficPolicyTypeCluster, out.Spec.ExternalTrafficPolicy) } - - in = &v1.Service{ - Spec: v1.ServiceSpec{Type: v1.ServiceTypeLoadBalancer}, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{v1.BetaAnnotationExternalTraffic: v1.AnnotationValueExternalTrafficLocal}, - }, - } - obj = roundTrip(t, runtime.Object(in)) - out = obj.(*v1.Service) - if out.Spec.ExternalTrafficPolicy != "" { - t.Errorf("Expected ExternalTrafficPolicy to be empty, got %v", out.Spec.ExternalTrafficPolicy) - } } func TestSetDefaultNamespace(t *testing.T) { diff --git a/pkg/api/v1/service/BUILD b/pkg/api/v1/service/BUILD index 51ffdcac445..2dd2486996a 100644 --- a/pkg/api/v1/service/BUILD +++ b/pkg/api/v1/service/BUILD @@ -14,7 +14,6 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/util/net/sets:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], ) @@ -28,7 +27,6 @@ go_test( "//pkg/util/net/sets:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], ) diff --git a/pkg/api/v1/service/util.go b/pkg/api/v1/service/util.go index 03d18492b35..f496f04ca30 100644 --- a/pkg/api/v1/service/util.go +++ b/pkg/api/v1/service/util.go @@ -18,13 +18,10 @@ package service import ( "fmt" - "strconv" "strings" "k8s.io/api/core/v1" netsets "k8s.io/kubernetes/pkg/util/net/sets" - - "github.com/golang/glog" ) const ( @@ -76,21 +73,6 @@ func RequestsOnlyLocalTraffic(service *v1.Service) bool { service.Spec.Type != v1.ServiceTypeNodePort { return false } - - // First check the beta annotation and then the first class field. This is so that - // existing Services continue to work till the user decides to transition to the - // first class field. - if l, ok := service.Annotations[v1.BetaAnnotationExternalTraffic]; ok { - switch l { - case v1.AnnotationValueExternalTrafficLocal: - return true - case v1.AnnotationValueExternalTrafficGlobal: - return false - default: - glog.Errorf("Invalid value for annotation %v: %v", v1.BetaAnnotationExternalTraffic, l) - return false - } - } return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal } @@ -104,45 +86,17 @@ func NeedsHealthCheck(service *v1.Service) bool { // GetServiceHealthCheckNodePort Return health check node port for service, if one exists func GetServiceHealthCheckNodePort(service *v1.Service) int32 { - // First check the beta annotation and then the first class field. This is so that - // existing Services continue to work till the user decides to transition to the - // first class field. - if l, ok := service.Annotations[v1.BetaAnnotationHealthCheckNodePort]; ok { - p, err := strconv.Atoi(l) - if err != nil { - glog.Errorf("Failed to parse annotation %v: %v", v1.BetaAnnotationHealthCheckNodePort, err) - return 0 - } - return int32(p) - } return service.Spec.HealthCheckNodePort } // ClearExternalTrafficPolicy resets the ExternalTrafficPolicy field. func ClearExternalTrafficPolicy(service *v1.Service) { - // First check the beta annotation and then the first class field. This is so existing - // Services continue to work till the user decides to transition to the first class field. - if _, ok := service.Annotations[v1.BetaAnnotationExternalTraffic]; ok { - delete(service.Annotations, v1.BetaAnnotationExternalTraffic) - return - } service.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyType("") } // SetServiceHealthCheckNodePort sets the given health check node port on service. // It does not check whether this service needs healthCheckNodePort. func SetServiceHealthCheckNodePort(service *v1.Service, hcNodePort int32) { - // First check the beta annotation and then the first class field. This is so that - // existing Services continue to work till the user decides to transition to the - // first class field. - if _, ok := service.Annotations[v1.BetaAnnotationExternalTraffic]; ok { - if hcNodePort == 0 { - delete(service.Annotations, v1.BetaAnnotationHealthCheckNodePort) - } else { - service.Annotations[v1.BetaAnnotationHealthCheckNodePort] = fmt.Sprintf("%d", hcNodePort) - } - return - } service.Spec.HealthCheckNodePort = hcNodePort } diff --git a/pkg/api/v1/service/util_test.go b/pkg/api/v1/service/util_test.go index e4ad9daeca7..943706d2458 100644 --- a/pkg/api/v1/service/util_test.go +++ b/pkg/api/v1/service/util_test.go @@ -17,16 +17,13 @@ limitations under the License. package service import ( + "strings" "testing" - "fmt" - "strings" + "github.com/davecgh/go-spew/spew" "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" netsets "k8s.io/kubernetes/pkg/util/net/sets" - - "github.com/davecgh/go-spew/spew" ) func TestGetLoadBalancerSourceRanges(t *testing.T) { @@ -218,37 +215,6 @@ func TestNeedsHealthCheck(t *testing.T) { ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, }, }) - - checkNeedsHealthCheck(false, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - v1.BetaAnnotationExternalTraffic: "invalid", - }, - }, - }) - checkNeedsHealthCheck(false, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - v1.BetaAnnotationExternalTraffic: v1.AnnotationValueExternalTrafficGlobal, - }, - }, - }) - checkNeedsHealthCheck(true, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - v1.BetaAnnotationExternalTraffic: v1.AnnotationValueExternalTrafficLocal, - }, - }, - }) } func TestGetServiceHealthCheckNodePort(t *testing.T) { @@ -284,17 +250,6 @@ func TestGetServiceHealthCheckNodePort(t *testing.T) { HealthCheckNodePort: int32(34567), }, }) - checkGetServiceHealthCheckNodePort(34567, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeLoadBalancer, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - v1.BetaAnnotationExternalTraffic: v1.AnnotationValueExternalTrafficLocal, - v1.BetaAnnotationHealthCheckNodePort: "34567", - }, - }, - }) } func TestClearExternalTrafficPolicy(t *testing.T) { @@ -310,25 +265,11 @@ func TestClearExternalTrafficPolicy(t *testing.T) { }, }, }, - // Beta annotations cases. - { - &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - v1.BetaAnnotationExternalTraffic: v1.AnnotationValueExternalTrafficLocal, - }, - }, - }, - }, } for i, tc := range testCases { ClearExternalTrafficPolicy(tc.inputService) - if _, ok := tc.inputService.Annotations[v1.BetaAnnotationExternalTraffic]; ok || - tc.inputService.Spec.ExternalTrafficPolicy != "" { + if tc.inputService.Spec.ExternalTrafficPolicy != "" { t.Errorf("%v: failed to clear ExternalTrafficPolicy", i) spew.Dump(tc) } @@ -339,7 +280,6 @@ func TestSetServiceHealthCheckNodePort(t *testing.T) { testCases := []struct { inputService *v1.Service hcNodePort int32 - beta bool }{ // First class fields cases. { @@ -350,7 +290,6 @@ func TestSetServiceHealthCheckNodePort(t *testing.T) { }, }, 30012, - false, }, { &v1.Service{ @@ -360,58 +299,13 @@ func TestSetServiceHealthCheckNodePort(t *testing.T) { }, }, 0, - false, - }, - // Beta annotations cases. - { - &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - v1.BetaAnnotationExternalTraffic: v1.AnnotationValueExternalTrafficGlobal, - }, - }, - }, - 30012, - true, - }, - { - &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - }, - ObjectMeta: metav1.ObjectMeta{ - Annotations: map[string]string{ - v1.BetaAnnotationExternalTraffic: v1.AnnotationValueExternalTrafficGlobal, - }, - }, - }, - 0, - true, }, } for i, tc := range testCases { SetServiceHealthCheckNodePort(tc.inputService, tc.hcNodePort) - if !tc.beta { - if tc.inputService.Spec.HealthCheckNodePort != tc.hcNodePort { - t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, tc.inputService.Spec.HealthCheckNodePort, tc.hcNodePort) - } - } else { - l, ok := tc.inputService.Annotations[v1.BetaAnnotationHealthCheckNodePort] - if tc.hcNodePort == 0 { - if ok { - t.Errorf("%v: HealthCheckNodePort set, want it to be cleared", i) - } - } else { - if !ok { - t.Errorf("%v: HealthCheckNodePort unset, want %v", i, tc.hcNodePort) - } else if l != fmt.Sprintf("%v", tc.hcNodePort) { - t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, l, tc.hcNodePort) - } - } + if tc.inputService.Spec.HealthCheckNodePort != tc.hcNodePort { + t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, tc.inputService.Spec.HealthCheckNodePort, tc.hcNodePort) } } } diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index a6b49774425..b2048945fad 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -24,7 +24,6 @@ import ( "path/filepath" "reflect" "regexp" - "strconv" "strings" "github.com/golang/glog" @@ -2964,7 +2963,6 @@ func ValidateService(service *api.Service) field.ErrorList { } allErrs = append(allErrs, validateServiceExternalTrafficFieldsValue(service)...) - allErrs = append(allErrs, validateServiceExternalTrafficAPIVersion(service)...) return allErrs } @@ -3012,25 +3010,6 @@ func validateServicePort(sp *api.ServicePort, requireName, isHeadlessService boo func validateServiceExternalTrafficFieldsValue(service *api.Service) field.ErrorList { allErrs := field.ErrorList{} - // Check beta annotations. - if l, ok := service.Annotations[api.BetaAnnotationExternalTraffic]; ok { - if l != api.AnnotationValueExternalTrafficLocal && - l != api.AnnotationValueExternalTrafficGlobal { - allErrs = append(allErrs, field.Invalid(field.NewPath("metadata", "annotations").Key(api.BetaAnnotationExternalTraffic), l, - fmt.Sprintf("ExternalTraffic must be %v or %v", api.AnnotationValueExternalTrafficLocal, api.AnnotationValueExternalTrafficGlobal))) - } - } - if l, ok := service.Annotations[api.BetaAnnotationHealthCheckNodePort]; ok { - p, err := strconv.Atoi(l) - if err != nil { - allErrs = append(allErrs, field.Invalid(field.NewPath("metadata", "annotations").Key(api.BetaAnnotationHealthCheckNodePort), l, - "HealthCheckNodePort must be a valid port number")) - } else if p <= 0 { - allErrs = append(allErrs, field.Invalid(field.NewPath("metadata", "annotations").Key(api.BetaAnnotationHealthCheckNodePort), l, - "HealthCheckNodePort must be greater than 0")) - } - } - // Check first class fields. if service.Spec.ExternalTrafficPolicy != "" && service.Spec.ExternalTrafficPolicy != api.ServiceExternalTrafficPolicyTypeCluster && @@ -3046,54 +3025,6 @@ func validateServiceExternalTrafficFieldsValue(service *api.Service) field.Error return allErrs } -// serviceExternalTrafficStatus stores flags indicating whether ExternalTraffic -// related beta annotations and GA fields are set on service. -type serviceExternalTrafficStatus struct { - betaExternalTrafficIsSet bool - betaHealthCheckIsSet bool - gaExternalTrafficIsSet bool - gaHealthCheckIsSet bool -} - -func (s *serviceExternalTrafficStatus) useBetaExternalTrafficWithGA() bool { - return s.betaExternalTrafficIsSet && (s.gaExternalTrafficIsSet || s.gaHealthCheckIsSet) -} - -func (s *serviceExternalTrafficStatus) useBetaHealthCheckWithGA() bool { - return s.betaHealthCheckIsSet && (s.gaExternalTrafficIsSet || s.gaHealthCheckIsSet) -} - -func getServiceExternalTrafficStatus(service *api.Service) *serviceExternalTrafficStatus { - s := serviceExternalTrafficStatus{} - _, s.betaExternalTrafficIsSet = service.Annotations[api.BetaAnnotationExternalTraffic] - _, s.betaHealthCheckIsSet = service.Annotations[api.BetaAnnotationHealthCheckNodePort] - s.gaExternalTrafficIsSet = service.Spec.ExternalTrafficPolicy != "" - s.gaHealthCheckIsSet = service.Spec.HealthCheckNodePort != 0 - return &s -} - -// validateServiceExternalTrafficAPIVersion checks if user mixes ExternalTraffic -// API versions. -func validateServiceExternalTrafficAPIVersion(service *api.Service) field.ErrorList { - allErrs := field.ErrorList{} - - status := getServiceExternalTrafficStatus(service) - - if status.useBetaExternalTrafficWithGA() { - fieldPath := field.NewPath("metadata", "annotations").Key(api.BetaAnnotationExternalTraffic) - msg := fmt.Sprintf("please replace the beta annotation with 'ExternalTrafficPolicy' field") - allErrs = append(allErrs, field.Invalid(fieldPath, api.BetaAnnotationExternalTraffic, msg)) - } - - if status.useBetaHealthCheckWithGA() { - fieldPath := field.NewPath("metadata", "annotations").Key(api.BetaAnnotationHealthCheckNodePort) - msg := fmt.Sprintf("please replace the beta annotation with 'HealthCheckNodePort' field") - allErrs = append(allErrs, field.Invalid(fieldPath, api.BetaAnnotationHealthCheckNodePort, msg)) - } - - return allErrs -} - // ValidateServiceExternalTrafficFieldsCombination validates if ExternalTrafficPolicy, // HealthCheckNodePort and Type combination are legal. For update, it should be called // after clearing externalTraffic related fields for the ease of transitioning between diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index 4dbd31dd5eb..5e76cba1a8c 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -6450,48 +6450,6 @@ func TestValidateService(t *testing.T) { numErrs: 1, }, // ESIPP section begins. - { - name: "LoadBalancer allows onlyLocal beta annotations", - tweakSvc: func(s *api.Service) { - s.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - }, - numErrs: 0, - }, - { - name: "invalid externalTraffic beta annotation", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.BetaAnnotationExternalTraffic] = "invalid" - }, - numErrs: 1, - }, - { - name: "nagative healthCheckNodePort beta annotation", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - s.Annotations[api.BetaAnnotationHealthCheckNodePort] = "-1" - }, - numErrs: 1, - }, - { - name: "invalid healthCheckNodePort beta annotation", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - s.Annotations[api.BetaAnnotationHealthCheckNodePort] = "whatisthis" - }, - numErrs: 1, - }, - { - name: "valid healthCheckNodePort beta annotation", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - s.Annotations[api.BetaAnnotationHealthCheckNodePort] = "31100" - }, - numErrs: 0, - }, { name: "invalid externalTraffic field", tweakSvc: func(s *api.Service) { @@ -6518,33 +6476,6 @@ func TestValidateService(t *testing.T) { }, numErrs: 0, }, - { - name: "disallows use ExternalTraffic beta annotation with first class field", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - s.Spec.HealthCheckNodePort = 3001 - }, - numErrs: 1, - }, - { - name: "disallows duplicated ExternalTraffic beta annotation with first class field", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal - }, - numErrs: 1, - }, - { - name: "disallows use HealthCheckNodePort beta annotation with first class field", - tweakSvc: func(s *api.Service) { - s.Spec.Type = api.ServiceTypeLoadBalancer - s.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal - s.Annotations[api.BetaAnnotationHealthCheckNodePort] = "3001" - }, - numErrs: 1, - }, // ESIPP section ends. } @@ -8005,50 +7936,6 @@ func TestValidateServiceUpdate(t *testing.T) { }, numErrs: 1, }, - { - name: "Service allows removing onlyLocal beta annotations", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - oldSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] = "3001" - }, - numErrs: 0, - }, - { - name: "Service allows modifying onlyLocal beta annotations", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - oldSvc.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - oldSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] = "3001" - newSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficGlobal - newSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] = oldSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] - }, - numErrs: 0, - }, - { - name: "Service disallows promoting one of the onlyLocal pair to GA", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - oldSvc.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - oldSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] = "3001" - newSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal - newSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] = oldSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] - }, - numErrs: 1, - }, - { - name: "Service allows changing both onlyLocal annotations from beta to GA", - tweakSvc: func(oldSvc, newSvc *api.Service) { - oldSvc.Spec.Type = api.ServiceTypeLoadBalancer - oldSvc.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal - oldSvc.Annotations[api.BetaAnnotationHealthCheckNodePort] = "3001" - newSvc.Spec.Type = api.ServiceTypeLoadBalancer - newSvc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal - newSvc.Spec.HealthCheckNodePort = 3001 - }, - numErrs: 0, - }, { name: "`None` ClusterIP cannot be changed", tweakSvc: func(oldSvc, newSvc *api.Service) { diff --git a/pkg/proxy/iptables/proxier_test.go b/pkg/proxy/iptables/proxier_test.go index 768f0db8ff2..35f288c53b3 100644 --- a/pkg/proxy/iptables/proxier_test.go +++ b/pkg/proxy/iptables/proxier_test.go @@ -867,7 +867,7 @@ func TestOnlyLocalLoadBalancing(t *testing.T) { svc.Status.LoadBalancer.Ingress = []api.LoadBalancerIngress{{ IP: svcLBIP, }} - svc.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal + svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal }), ) @@ -958,7 +958,7 @@ func onlyLocalNodePorts(t *testing.T, fp *Proxier, ipt *iptablestest.FakeIPTable Protocol: api.ProtocolTCP, NodePort: int32(svcNodePort), }} - svc.Annotations[api.BetaAnnotationExternalTraffic] = api.AnnotationValueExternalTrafficLocal + svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal }), ) @@ -1069,10 +1069,6 @@ func TestBuildServiceMapAddRemove(t *testing.T) { } }), makeTestService("somewhere", "only-local-load-balancer", func(svc *api.Service) { - svc.ObjectMeta.Annotations = map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - api.BetaAnnotationHealthCheckNodePort: "345", - } svc.Spec.Type = api.ServiceTypeLoadBalancer svc.Spec.ClusterIP = "172.16.55.12" svc.Spec.LoadBalancerIP = "5.6.7.8" @@ -1083,6 +1079,8 @@ func TestBuildServiceMapAddRemove(t *testing.T) { {IP: "10.1.2.3"}, }, } + svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.HealthCheckNodePort = 345 }), } @@ -1214,10 +1212,6 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { svc.Spec.Ports = addTestPort(svc.Spec.Ports, "somethingelse", "TCP", 1235, 5321, 0) }) servicev2 := makeTestService("somewhere", "some-service", func(svc *api.Service) { - svc.ObjectMeta.Annotations = map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - api.BetaAnnotationHealthCheckNodePort: "345", - } svc.Spec.Type = api.ServiceTypeLoadBalancer svc.Spec.ClusterIP = "172.16.55.4" svc.Spec.LoadBalancerIP = "5.6.7.8" @@ -1228,6 +1222,8 @@ func TestBuildServiceMapServiceUpdate(t *testing.T) { {IP: "10.1.2.3"}, }, } + svc.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyTypeLocal + svc.Spec.HealthCheckNodePort = 345 }) fp.OnServiceAdd(servicev1) diff --git a/pkg/registry/core/service/rest.go b/pkg/registry/core/service/rest.go index e35dea95fea..8d4e080b873 100644 --- a/pkg/registry/core/service/rest.go +++ b/pkg/registry/core/service/rest.go @@ -279,12 +279,7 @@ func (rs *REST) healthCheckNodePortUpdate(oldService, service *api.Service) (boo case neededHealthCheckNodePort && needsHealthCheckNodePort: if oldHealthCheckNodePort != newHealthCheckNodePort { glog.Warningf("Attempt to change value of health check node port DENIED") - var fldPath *field.Path - if _, ok := service.Annotations[api.BetaAnnotationHealthCheckNodePort]; ok { - fldPath = field.NewPath("metadata", "annotations").Key(api.BetaAnnotationHealthCheckNodePort) - } else { - fldPath = field.NewPath("spec", "healthCheckNodePort") - } + fldPath := field.NewPath("spec", "healthCheckNodePort") el := field.ErrorList{field.Invalid(fldPath, newHealthCheckNodePort, "cannot change healthCheckNodePort on loadBalancer service with externalTraffic=Local during update")} return false, errors.NewInvalid(api.Kind("Service"), service.Name, el) diff --git a/pkg/registry/core/service/rest_test.go b/pkg/registry/core/service/rest_test.go index 36cdf1be00f..6d3d8b738c3 100644 --- a/pkg/registry/core/service/rest_test.go +++ b/pkg/registry/core/service/rest_test.go @@ -19,7 +19,6 @@ package service import ( "testing" - "fmt" "net" "reflect" "strings" @@ -1003,46 +1002,6 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortAllocation(t *testing. } } -// Validate allocation of a nodePort when ExternalTraffic beta annotation is set to OnlyLocal -// and type is LoadBalancer. -func TestServiceRegistryExternalTrafficHealthCheckNodePortAllocationBeta(t *testing.T) { - ctx := genericapirequest.NewDefaultContext() - storage, _ := NewTestREST(t, nil) - svc := &api.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: "external-lb-esipp", - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - }, - }, - Spec: api.ServiceSpec{ - Selector: map[string]string{"bar": "baz"}, - SessionAffinity: api.ServiceAffinityNone, - Type: api.ServiceTypeLoadBalancer, - Ports: []api.ServicePort{{ - Port: 6502, - Protocol: api.ProtocolTCP, - TargetPort: intstr.FromInt(6502), - }}, - }, - } - created_svc, err := storage.Create(ctx, svc, false) - if created_svc == nil || err != nil { - t.Errorf("Unexpected failure creating service %v", err) - } - created_service := created_svc.(*api.Service) - if !service.NeedsHealthCheck(created_service) { - t.Errorf("Expecting health check needed, returned health check not needed instead") - } - port := service.GetServiceHealthCheckNodePort(created_service) - if port == 0 { - t.Errorf("Failed to allocate health check node port and set the HealthCheckNodePort") - } else { - // Release the node port at the end of the test case. - storage.serviceNodePorts.Release(int(port)) - } -} - // Validate using the user specified nodePort when ExternalTrafficPolicy is set to Local // and type is LoadBalancer. func TestServiceRegistryExternalTrafficHealthCheckNodePortUserAllocation(t *testing.T) { @@ -1086,53 +1045,6 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortUserAllocation(t *test } } -// Validate using the user specified nodePort when ExternalTraffic beta annotation is set to OnlyLocal -// and type is LoadBalancer. -func TestServiceRegistryExternalTrafficHealthCheckNodePortUserAllocationBeta(t *testing.T) { - randomNodePort := generateRandomNodePort() - ctx := genericapirequest.NewDefaultContext() - storage, _ := NewTestREST(t, nil) - svc := &api.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: "external-lb-esipp", - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - api.BetaAnnotationHealthCheckNodePort: fmt.Sprintf("%v", randomNodePort), - }, - }, - Spec: api.ServiceSpec{ - Selector: map[string]string{"bar": "baz"}, - SessionAffinity: api.ServiceAffinityNone, - Type: api.ServiceTypeLoadBalancer, - Ports: []api.ServicePort{{ - Port: 6502, - Protocol: api.ProtocolTCP, - TargetPort: intstr.FromInt(6502), - }}, - }, - } - created_svc, err := storage.Create(ctx, svc, false) - if created_svc == nil || err != nil { - t.Fatalf("Unexpected failure creating service :%v", err) - } - created_service := created_svc.(*api.Service) - if !service.NeedsHealthCheck(created_service) { - t.Errorf("Expecting health check needed, returned health check not needed instead") - } - port := service.GetServiceHealthCheckNodePort(created_service) - if port == 0 { - t.Errorf("Failed to allocate health check node port and set the HealthCheckNodePort") - } - if port != randomNodePort { - t.Errorf("Failed to allocate requested nodePort expected %d, got %d", randomNodePort, port) - } - - if port != 0 { - // Release the node port at the end of the test case. - storage.serviceNodePorts.Release(int(port)) - } -} - // Validate that the service creation fails when the requested port number is -1. func TestServiceRegistryExternalTrafficHealthCheckNodePortNegative(t *testing.T) { ctx := genericapirequest.NewDefaultContext() @@ -1159,36 +1071,6 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortNegative(t *testing.T) t.Errorf("Unexpected creation of service with invalid HealthCheckNodePort specified") } -// Validate that the service creation fails when the requested port number in beta annotation is -1. -func TestServiceRegistryExternalTrafficHealthCheckNodePortNegativeBeta(t *testing.T) { - ctx := genericapirequest.NewDefaultContext() - storage, _ := NewTestREST(t, nil) - svc := &api.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: "external-lb-esipp", - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficLocal, - api.BetaAnnotationHealthCheckNodePort: "-1", - }, - }, - Spec: api.ServiceSpec{ - Selector: map[string]string{"bar": "baz"}, - SessionAffinity: api.ServiceAffinityNone, - Type: api.ServiceTypeLoadBalancer, - Ports: []api.ServicePort{{ - Port: 6502, - Protocol: api.ProtocolTCP, - TargetPort: intstr.FromInt(6502), - }}, - }, - } - created_svc, err := storage.Create(ctx, svc, false) - if created_svc == nil || err != nil { - return - } - t.Errorf("Unexpected creation of service with invalid HealthCheckNodePort specified") -} - // Validate that the health check nodePort is not allocated when ExternalTrafficPolicy is set to Global. func TestServiceRegistryExternalTrafficGlobal(t *testing.T) { ctx := genericapirequest.NewDefaultContext() @@ -1224,80 +1106,6 @@ func TestServiceRegistryExternalTrafficGlobal(t *testing.T) { } } -// Validate that the health check nodePort is not allocated when ExternalTraffic beta annotation is set to Global. -func TestServiceRegistryExternalTrafficGlobalBeta(t *testing.T) { - ctx := genericapirequest.NewDefaultContext() - storage, _ := NewTestREST(t, nil) - svc := &api.Service{ - ObjectMeta: metav1.ObjectMeta{ - Name: "external-lb-esipp", - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficGlobal, - }, - }, - Spec: api.ServiceSpec{ - Selector: map[string]string{"bar": "baz"}, - SessionAffinity: api.ServiceAffinityNone, - Type: api.ServiceTypeLoadBalancer, - Ports: []api.ServicePort{{ - Port: 6502, - Protocol: api.ProtocolTCP, - TargetPort: intstr.FromInt(6502), - }}, - }, - } - created_svc, err := storage.Create(ctx, svc, false) - if created_svc == nil || err != nil { - t.Errorf("Unexpected failure creating service %v", err) - } - created_service := created_svc.(*api.Service) - if service.NeedsHealthCheck(created_service) { - t.Errorf("Expecting health check not needed, returned health check needed instead") - } - // Make sure the service does not have the health check node port allocated - port := service.GetServiceHealthCheckNodePort(created_service) - if port != 0 { - // Release the node port at the end of the test case. - storage.serviceNodePorts.Release(int(port)) - t.Errorf("Unexpected allocation of health check node port: %v", port) - } -} - -// Validate that the health check nodePort is not allocated when service type is ClusterIP -func TestServiceRegistryExternalTrafficAnnotationClusterIP(t *testing.T) { - ctx := genericapirequest.NewDefaultContext() - storage, _ := NewTestREST(t, nil) - svc := &api.Service{ - ObjectMeta: metav1.ObjectMeta{Name: "external-lb-esipp", - Annotations: map[string]string{ - api.BetaAnnotationExternalTraffic: api.AnnotationValueExternalTrafficGlobal, - }, - }, - Spec: api.ServiceSpec{ - Selector: map[string]string{"bar": "baz"}, - SessionAffinity: api.ServiceAffinityNone, - Type: api.ServiceTypeClusterIP, - Ports: []api.ServicePort{{ - Port: 6502, - Protocol: api.ProtocolTCP, - TargetPort: intstr.FromInt(6502), - }}, - }, - } - created_svc, err := storage.Create(ctx, svc, false) - if created_svc == nil || err != nil { - t.Errorf("Unexpected failure creating service %v", err) - } - created_service := created_svc.(*api.Service) - // Make sure that ClusterIP services do not have the health check node port allocated - port := service.GetServiceHealthCheckNodePort(created_service) - if port != 0 { - // Release the node port at the end of the test case. - storage.serviceNodePorts.Release(int(port)) - t.Errorf("Unexpected allocation of health check node port annotation %s", api.BetaAnnotationHealthCheckNodePort) - } -} - func TestInitClusterIP(t *testing.T) { storage, _ := NewTestREST(t, nil) diff --git a/staging/src/k8s.io/api/core/v1/annotation_key_constants.go b/staging/src/k8s.io/api/core/v1/annotation_key_constants.go index 6af9c6c2b1a..6c5deb65fd3 100644 --- a/staging/src/k8s.io/api/core/v1/annotation_key_constants.go +++ b/staging/src/k8s.io/api/core/v1/annotation_key_constants.go @@ -89,20 +89,4 @@ const ( // // Not all cloud providers support this annotation, though AWS & GCE do. AnnotationLoadBalancerSourceRangesKey = "service.beta.kubernetes.io/load-balancer-source-ranges" - - // AnnotationValueExternalTrafficLocal Value of annotation to specify local endpoints behavior. - AnnotationValueExternalTrafficLocal = "OnlyLocal" - // AnnotationValueExternalTrafficGlobal Value of annotation to specify global (legacy) behavior. - AnnotationValueExternalTrafficGlobal = "Global" - - // TODO: The beta annotations have been deprecated, remove them when we release k8s 1.8. - - // BetaAnnotationHealthCheckNodePort Annotation specifying the healthcheck nodePort for the service. - // If not specified, annotation is created by the service api backend with the allocated nodePort. - // Will use user-specified nodePort value if specified by the client. - BetaAnnotationHealthCheckNodePort = "service.beta.kubernetes.io/healthcheck-nodeport" - - // BetaAnnotationExternalTraffic An annotation that denotes if this Service desires to route - // external traffic to local endpoints only. This preserves Source IP and avoids a second hop. - BetaAnnotationExternalTraffic = "service.beta.kubernetes.io/external-traffic" ) From a69697e6071c356d080b76aa3e8402271f2f056c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Sat, 5 Aug 2017 15:45:09 +0300 Subject: [PATCH 058/183] kubeadm: Add back labels for the Static Pod control plane --- cmd/kubeadm/app/phases/controlplane/BUILD | 1 + .../app/phases/controlplane/manifests.go | 3 ++ .../app/phases/controlplane/manifests_test.go | 40 ++++++++++++++----- 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/cmd/kubeadm/app/phases/controlplane/BUILD b/cmd/kubeadm/app/phases/controlplane/BUILD index 4a3c9c8e1fb..97ca9e06e58 100644 --- a/cmd/kubeadm/app/phases/controlplane/BUILD +++ b/cmd/kubeadm/app/phases/controlplane/BUILD @@ -21,6 +21,7 @@ go_test( "//cmd/kubeadm/app/constants:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", ], diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go index 17e92ce64e5..ba861534468 100644 --- a/cmd/kubeadm/app/phases/controlplane/manifests.go +++ b/cmd/kubeadm/app/phases/controlplane/manifests.go @@ -166,6 +166,9 @@ func componentPod(container v1.Container, volumes []v1.Volume) v1.Pod { Name: container.Name, Namespace: metav1.NamespaceSystem, Annotations: map[string]string{kubetypes.CriticalPodAnnotationKey: ""}, + // The component and tier labels are useful for quickly identifying the control plane Pods when doing a .List() + // against Pods in the kube-system namespace. Can for example be used together with the WaitForPodsWithLabel function + Labels: map[string]string{"component": container.Name, "tier": "control-plane"}, }, Spec: v1.PodSpec{ Containers: []v1.Container{container}, diff --git a/cmd/kubeadm/app/phases/controlplane/manifests_test.go b/cmd/kubeadm/app/phases/controlplane/manifests_test.go index 25780b00c87..260dfc6b72a 100644 --- a/cmd/kubeadm/app/phases/controlplane/manifests_test.go +++ b/cmd/kubeadm/app/phases/controlplane/manifests_test.go @@ -26,6 +26,7 @@ import ( "testing" "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/yaml" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" @@ -179,22 +180,43 @@ func TestComponentProbe(t *testing.T) { func TestComponentPod(t *testing.T) { var tests = []struct { - n string + name string + expected v1.Pod }{ { - n: "foo", + name: "foo", + expected: v1.Pod{ + TypeMeta: metav1.TypeMeta{ + APIVersion: "v1", + Kind: "Pod", + }, + ObjectMeta: metav1.ObjectMeta{ + Name: "foo", + Namespace: "kube-system", + Annotations: map[string]string{"scheduler.alpha.kubernetes.io/critical-pod": ""}, + Labels: map[string]string{"component": "foo", "tier": "control-plane"}, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "foo", + }, + }, + HostNetwork: true, + Volumes: []v1.Volume{}, + }, + }, }, } for _, rt := range tests { - c := v1.Container{Name: rt.n} - v := []v1.Volume{} - actual := componentPod(c, v) - if actual.ObjectMeta.Name != rt.n { + c := v1.Container{Name: rt.name} + actual := componentPod(c, []v1.Volume{}) + if !reflect.DeepEqual(rt.expected, actual) { t.Errorf( - "failed componentPod:\n\texpected: %s\n\t actual: %s", - rt.n, - actual.ObjectMeta.Name, + "failed componentPod:\n\texpected: %v\n\t actual: %v", + rt.expected, + actual, ) } } From 0bea0ca1d94745096548ce643dad80ed9c5b9504 Mon Sep 17 00:00:00 2001 From: Irfan Ur Rehman Date: Tue, 6 Dec 2016 00:29:40 +0530 Subject: [PATCH 059/183] [Federation] hpa controller --- federation/pkg/federatedtypes/BUILD | 10 +- federation/pkg/federatedtypes/deployment.go | 8 +- federation/pkg/federatedtypes/hpa.go | 927 ++++++++++++++++++ federation/pkg/federatedtypes/hpa_test.go | 262 +++++ federation/pkg/federatedtypes/replicaset.go | 10 +- federation/pkg/federatedtypes/scheduling.go | 36 +- .../federation-controller/sync/controller.go | 19 +- .../util/test/test_helper.go | 6 + 8 files changed, 1249 insertions(+), 29 deletions(-) create mode 100644 federation/pkg/federatedtypes/hpa.go create mode 100644 federation/pkg/federatedtypes/hpa_test.go diff --git a/federation/pkg/federatedtypes/BUILD b/federation/pkg/federatedtypes/BUILD index faa20fcda88..692c63eae15 100644 --- a/federation/pkg/federatedtypes/BUILD +++ b/federation/pkg/federatedtypes/BUILD @@ -10,11 +10,16 @@ load( go_test( name = "go_default_test", - srcs = ["scheduling_test.go"], + srcs = [ + "hpa_test.go", + "scheduling_test.go", + ], library = ":go_default_library", tags = ["automanaged"], deps = [ + "//federation/pkg/federation-controller/util/test:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -29,6 +34,7 @@ go_library( "configmap.go", "daemonset.go", "deployment.go", + "hpa.go", "namespace.go", "qualifiedname.go", "registry.go", @@ -48,12 +54,14 @@ go_library( "//pkg/api:go_default_library", "//pkg/controller/namespace/deletion:go_default_library", "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/dynamic:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", diff --git a/federation/pkg/federatedtypes/deployment.go b/federation/pkg/federatedtypes/deployment.go index af61f0f92bc..230501db0ef 100644 --- a/federation/pkg/federatedtypes/deployment.go +++ b/federation/pkg/federatedtypes/deployment.go @@ -40,16 +40,16 @@ func init() { } type DeploymentAdapter struct { - *schedulingAdapter + *replicaSchedulingAdapter client federationclientset.Interface } func NewDeploymentAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { - schedulingAdapter := schedulingAdapter{ + schedulingAdapter := replicaSchedulingAdapter{ preferencesAnnotationName: FedDeploymentPreferencesAnnotation, - updateStatusFunc: func(obj pkgruntime.Object, status interface{}) error { + updateStatusFunc: func(obj pkgruntime.Object, schedulingInfo interface{}) error { deployment := obj.(*extensionsv1.Deployment) - typedStatus := status.(ReplicaSchedulingStatus) + typedStatus := schedulingInfo.(*ReplicaSchedulingInfo).Status if typedStatus.Replicas != deployment.Status.Replicas || typedStatus.UpdatedReplicas != deployment.Status.UpdatedReplicas || typedStatus.ReadyReplicas != deployment.Status.ReadyReplicas || typedStatus.AvailableReplicas != deployment.Status.AvailableReplicas { deployment.Status = extensionsv1.DeploymentStatus{ diff --git a/federation/pkg/federatedtypes/hpa.go b/federation/pkg/federatedtypes/hpa.go new file mode 100644 index 00000000000..3479d7c4b3b --- /dev/null +++ b/federation/pkg/federatedtypes/hpa.go @@ -0,0 +1,927 @@ +/* +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. +*/ + +package federatedtypes + +import ( + "time" + + "fmt" + autoscalingv1 "k8s.io/api/autoscaling/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + pkgruntime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/watch" + kubeclientset "k8s.io/client-go/kubernetes" + restclient "k8s.io/client-go/rest" + federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" + federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" + fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" +) + +const ( + HpaKind = "horizontalpodautoscaler" + HpaControllerName = "horizontalpodautoscalers" + // This is a tunable which does not change replica nums + // on an existing local hpa, before this timeout, if it + // did scale already (avoids thrashing of replicas around). + scaleForbiddenWindow = 5 * time.Minute + // This is used as the default min for hpa object submitted + // to federation, in a situation where the default is for + // some reason not present (Spec.MinReplicas == nil) + hpaMinReplicaDefault = int32(1) +) + +func init() { + RegisterFederatedType(HpaKind, HpaControllerName, []schema.GroupVersionResource{autoscalingv1.SchemeGroupVersion.WithResource(HpaControllerName)}, NewHpaAdapter) +} + +type HpaAdapter struct { + client federationclientset.Interface +} + +func NewHpaAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { + return &HpaAdapter{client: client} +} + +func (a *HpaAdapter) Kind() string { + return HpaKind +} + +func (a *HpaAdapter) ObjectType() pkgruntime.Object { + return &autoscalingv1.HorizontalPodAutoscaler{} +} + +func (a *HpaAdapter) IsExpectedType(obj interface{}) bool { + _, ok := obj.(*autoscalingv1.HorizontalPodAutoscaler) + return ok +} + +func (a *HpaAdapter) Copy(obj pkgruntime.Object) pkgruntime.Object { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + return &autoscalingv1.HorizontalPodAutoscaler{ + ObjectMeta: fedutil.DeepCopyRelevantObjectMeta(hpa.ObjectMeta), + Spec: *fedutil.DeepCopyApiTypeOrPanic(&hpa.Spec).(*autoscalingv1.HorizontalPodAutoscalerSpec), + } +} + +func (a *HpaAdapter) Equivalent(obj1, obj2 pkgruntime.Object) bool { + return fedutil.ObjectMetaAndSpecEquivalent(obj1, obj2) +} + +func (a *HpaAdapter) QualifiedName(obj pkgruntime.Object) QualifiedName { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + return QualifiedName{Namespace: hpa.Namespace, Name: hpa.Name} +} + +func (a *HpaAdapter) ObjectMeta(obj pkgruntime.Object) *metav1.ObjectMeta { + return &obj.(*autoscalingv1.HorizontalPodAutoscaler).ObjectMeta +} + +func (a *HpaAdapter) FedCreate(obj pkgruntime.Object) (pkgruntime.Object, error) { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + return a.client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Create(hpa) +} + +func (a *HpaAdapter) FedDelete(qualifiedName QualifiedName, options *metav1.DeleteOptions) error { + return a.client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Delete(qualifiedName.Name, options) +} + +func (a *HpaAdapter) FedGet(qualifiedName QualifiedName) (pkgruntime.Object, error) { + return a.client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) +} + +func (a *HpaAdapter) FedList(namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { + return a.client.AutoscalingV1().HorizontalPodAutoscalers(namespace).List(options) +} + +func (a *HpaAdapter) FedUpdate(obj pkgruntime.Object) (pkgruntime.Object, error) { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + return a.client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Update(hpa) +} + +func (a *HpaAdapter) FedWatch(namespace string, options metav1.ListOptions) (watch.Interface, error) { + return a.client.AutoscalingV1().HorizontalPodAutoscalers(namespace).Watch(options) +} + +func (a *HpaAdapter) ClusterCreate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + return client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Create(hpa) +} + +func (a *HpaAdapter) ClusterDelete(client kubeclientset.Interface, qualifiedName QualifiedName, options *metav1.DeleteOptions) error { + return client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Delete(qualifiedName.Name, options) +} + +func (a *HpaAdapter) ClusterGet(client kubeclientset.Interface, qualifiedName QualifiedName) (pkgruntime.Object, error) { + return client.AutoscalingV1().HorizontalPodAutoscalers(qualifiedName.Namespace).Get(qualifiedName.Name, metav1.GetOptions{}) +} + +func (a *HpaAdapter) ClusterList(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (pkgruntime.Object, error) { + return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).List(options) +} + +func (a *HpaAdapter) ClusterUpdate(client kubeclientset.Interface, obj pkgruntime.Object) (pkgruntime.Object, error) { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + return client.AutoscalingV1().HorizontalPodAutoscalers(hpa.Namespace).Update(hpa) +} + +func (a *HpaAdapter) ClusterWatch(client kubeclientset.Interface, namespace string, options metav1.ListOptions) (watch.Interface, error) { + return client.AutoscalingV1().HorizontalPodAutoscalers(namespace).Watch(options) +} + +func (a *HpaAdapter) NewTestObject(namespace string) pkgruntime.Object { + var min int32 = 4 + var targetCPU int32 = 70 + return &autoscalingv1.HorizontalPodAutoscaler{ + ObjectMeta: metav1.ObjectMeta{ + GenerateName: "test-hpa-", + Namespace: namespace, + }, + Spec: autoscalingv1.HorizontalPodAutoscalerSpec{ + ScaleTargetRef: autoscalingv1.CrossVersionObjectReference{ + Kind: "replicaset", + Name: "myrs", + }, + MinReplicas: &min, + MaxReplicas: int32(10), + TargetCPUUtilizationPercentage: &targetCPU, + }, + } +} + +func (a *HpaAdapter) IsSchedulingAdapter() bool { + return true +} + +func (a *HpaAdapter) EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool { + hpa1 := obj1.(*autoscalingv1.HorizontalPodAutoscaler) + hpa2 := a.Copy(obj2).(*autoscalingv1.HorizontalPodAutoscaler) + if hpa1.Spec.MinReplicas == nil { + hpa2.Spec.MinReplicas = nil + } else if hpa2.Spec.MinReplicas == nil { + var r int32 = *hpa1.Spec.MinReplicas + hpa2.Spec.MinReplicas = &r + } else { + *hpa2.Spec.MinReplicas = *hpa1.Spec.MinReplicas + } + hpa2.Spec.MaxReplicas = hpa1.Spec.MaxReplicas + return fedutil.ObjectMetaAndSpecEquivalent(hpa1, hpa2) +} + +type replicaNums struct { + min int32 + max int32 +} + +type hpaFederatedStatus struct { + lastScaleTime *metav1.Time + // Indicates how many clusters have hpa/replicas. + // Used to average the cpu utilization which is + // reflected to the federation user. + count int32 + aggregateCPUUtilizationPercentage *int32 + currentReplicas int32 + desiredReplicas int32 +} + +type hpaSchedulingInfo struct { + scheduleState map[string]*replicaNums + fedStatus hpaFederatedStatus +} + +// List of cluster names. +type hpaLists struct { + // Stores names of those clusters which can offer min. + availableMin sets.String + // Stores names of those clusters which can offer max. + availableMax sets.String + // Stores names of those clusters which do not have hpa yet. + noHpa sets.String +} + +func (a *HpaAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (interface{}, error) { + currentClusterObjs, err := getCurrentClusterObjs(informer, key, clusters) + if err != nil { + return nil, err + } + + // Initialise averaged cpu utilisation for this reconcile. + var ccup int32 = 0 + fedStatus := hpaFederatedStatus{ + aggregateCPUUtilizationPercentage: &ccup, + count: int32(0), + desiredReplicas: int32(0), + currentReplicas: int32(0), + } + fedHpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + // We assign the last known scale time here, which we update with + // the latest time from among all clusters in ScheduleObject() + if fedHpa.Status.LastScaleTime != nil { + t := metav1.NewTime(fedHpa.Status.LastScaleTime.Time) + fedStatus.lastScaleTime = &t + } + + return &hpaSchedulingInfo{ + scheduleState: getHpaScheduleState(obj, currentClusterObjs), + fedStatus: fedStatus, + }, nil +} + +func getCurrentClusterObjs(informer fedutil.FederatedInformer, key string, clusters []*federationapi.Cluster) (map[string]pkgruntime.Object, error) { + currentClusterObjs := make(map[string]pkgruntime.Object) + for _, cluster := range clusters { + clusterName := cluster.Name + clusterObj, found, err := informer.GetTargetStore().GetByKey(clusterName, key) + if err != nil { + return nil, err + } + currentClusterObjs[clusterName] = nil + if found { + currentClusterObjs[clusterName] = clusterObj.(pkgruntime.Object) + } + } + return currentClusterObjs, nil +} + +// The algorithm used for scheduling is briefed as below: +// +// 1. Find clusters which can offer max and min, if any (lists.availableMax and +// lists.availableMin) in one pass on all clusters. +// +// 2. Reduce the replicas (both min and max) if needed (situation when fedHpa +// has lesser replicas then all cluster local hpa replicas totalled together). +// In this step reduce first from those hpas which already have max (and min) +// reducible. Once such clusters are over and reduction still needed, reduce +// one at a time from all clusters, randomly. This step will ensure that the +// exceeding replicas in local hpas are reduced to match the fedHpa. +// This step would ideally be a noop in most cases because its rare that fedHpa +// would have lesser replicas then the cluster local total (probably when user +// forces update if fedHpa). +// +// 3. Distribute the replicas. In this step we have replicas to distribute (which +// are fed replicas exceeding the sum total of local cluster replicas). If clusters +// already have replicas, one replica from each cluster which can offer replicas +// (both for max and min) are also added to this replicas to distribute numbers (min +// and max). +// 3a. We first do a sub-pass to distribute to clusters which need replicas, considering +// those as clusters in crucial need of replicas. +// 3b. After previous sub-pass, if we still have replicas remaining, in the sub-pass +// we distribute to those clusters which do not yet have any hpa. +// 3c. After previous if we still have more to distribute, then we distribute to all +// clusters randomly, giving replica distribution count (rdc=total-fed-replicas/no-of-clusters) +// to each at a time. +// +// The above algorithm is run to first distribute max and then distribute min to those clusters +// which get max. +func getHpaScheduleState(fedObj pkgruntime.Object, currentObjs map[string]pkgruntime.Object) map[string]*replicaNums { + fedHpa := fedObj.(*autoscalingv1.HorizontalPodAutoscaler) + requestedMin := hpaMinReplicaDefault + if fedHpa.Spec.MinReplicas != nil { + requestedMin = *fedHpa.Spec.MinReplicas + } + requestedReplicas := replicaNums{ + min: requestedMin, + max: fedHpa.Spec.MaxReplicas, + } + // replica distribution count, per cluster + rdc := replicaNums{ + min: requestedReplicas.min / int32(len(currentObjs)), + max: requestedReplicas.max / int32(len(currentObjs)), + } + if rdc.min < 1 { + rdc.min = 1 + } + // TODO: Is there a better way? + // We need to cap the lowest limit of Max to 2, because in a + // situation like both min and max become 1 (same) for all clusters, + // no rebalancing would happen. + if rdc.max < 2 { + rdc.max = 2 + } + + // Pass 1: Analyse existing local hpa's if any. + // clusterLists holds the list of those clusters which can offer + // min and max replicas, to those which want them. + // For example new clusters joining the federation and/or + // those clusters which need to increase or reduce replicas + // beyond min/max limits. + // schedStatus currently have status of existing hpas. + // It will eventually have desired status for this reconcile. + clusterLists, currentReplicas, scheduleState := prepareForScheduling(currentObjs) + + remainingReplicas := replicaNums{ + min: requestedReplicas.min - currentReplicas.min, + max: requestedReplicas.max - currentReplicas.max, + } + + // Pass 2: reduction of replicas if needed ( situation that fedHpa updated replicas + // to lesser then existing). + // In this pass, we remain pessimistic and reduce one replica per cluster at a time. + if remainingReplicas.min < 0 { + excessMin := (remainingReplicas.min * int32(-1)) + remainingReplicas.min = reduceMinReplicas(excessMin, clusterLists.availableMin, scheduleState) + } + if remainingReplicas.max < 0 { + excessMax := (remainingReplicas.max * int32(-1)) + remainingReplicas.max = reduceMaxReplicas(excessMax, clusterLists.availableMax, scheduleState) + } + + toDistribute := replicaNums{ + min: remainingReplicas.min + int32(clusterLists.availableMin.Len()), + max: remainingReplicas.max + int32(clusterLists.availableMax.Len()), + } + + // Pass 3: Distribute Max and then Min. + // Here we first distribute max and then (in the next loop) + // distribute min into those clusters which already get the + // max fixed. + // In this process we might not meet the min limit and total of + // min limits might remain more then the requested federated min. + // This is partially because a min per cluster cannot be lesser + // then 1, but min could be requested as 1 at federation. + // Additionally we first increase replicas into those clusters + // which already have hpa's and are in a condition to increase. + // This will save cluster related resources for the user, such that + // if an already existing cluster can satisfy users request why send + // the workload to another. + // We then go ahead to give the replicas to those which do not + // have any hpa. In this pass however we try to ensure that all + // our Max are consumed in this reconcile. + distributeMaxReplicas(toDistribute.max, clusterLists, rdc, currentObjs, scheduleState) + + // We distribute min to those clusters which: + // 1 - can adjust min (our increase step would be only 1) + // 2 - which do not have this hpa and got max(increase step rdcMin) + // We might exhaust all min replicas here, with + // some clusters still needing them. We adjust this in finalise by + // assigning min replicas to 1 into those clusters which got max + // but min remains 0. + distributeMinReplicas(toDistribute.min, clusterLists, rdc, currentObjs, scheduleState) + + return finaliseScheduleState(scheduleState) +} + +func (a *HpaAdapter) ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, ScheduleAction, error) { + // Update federated status info + typedInfo := schedulingInfo.(*hpaSchedulingInfo) + if clusterObj != nil { + clusterHpa := clusterObj.(*autoscalingv1.HorizontalPodAutoscaler) + if clusterHpa.Status.CurrentCPUUtilizationPercentage != nil { + *typedInfo.fedStatus.aggregateCPUUtilizationPercentage += + (*clusterHpa.Status.CurrentCPUUtilizationPercentage * clusterHpa.Status.CurrentReplicas) + typedInfo.fedStatus.count += clusterHpa.Status.CurrentReplicas + } + if clusterHpa.Status.LastScaleTime != nil { + t := metav1.NewTime(clusterHpa.Status.LastScaleTime.Time) + if typedInfo.fedStatus.lastScaleTime != nil && + t.After(typedInfo.fedStatus.lastScaleTime.Time) { + typedInfo.fedStatus.lastScaleTime = &t + } + } + + typedInfo.fedStatus.currentReplicas += clusterHpa.Status.CurrentReplicas + typedInfo.fedStatus.desiredReplicas += clusterHpa.Status.DesiredReplicas + } + + // Update the cluster obj and the needed action on the cluster + clusterHpaState := typedInfo.scheduleState[cluster.Name] + desiredHpa := federationObjCopy.(*autoscalingv1.HorizontalPodAutoscaler) + if clusterHpaState != nil { + desiredHpa.Spec.MaxReplicas = clusterHpaState.max + if desiredHpa.Spec.MinReplicas == nil { + min := int32(0) + desiredHpa.Spec.MinReplicas = &min + } + *desiredHpa.Spec.MinReplicas = clusterHpaState.min + } + + var defaultAction ScheduleAction = "" + switch { + case clusterHpaState != nil && clusterObj != nil: + return desiredHpa, defaultAction, nil + case clusterHpaState != nil && clusterObj == nil: + return desiredHpa, ActionAdd, nil + case clusterHpaState == nil && clusterObj != nil: + return nil, ActionDelete, nil + } + return nil, defaultAction, nil +} + +func (a *HpaAdapter) UpdateFederatedStatus(obj pkgruntime.Object, schedulingInfo interface{}) error { + fedHpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + needUpdate, newFedHpaStatus := updateStatus(fedHpa, schedulingInfo.(*hpaSchedulingInfo).fedStatus) + if needUpdate { + fedHpa.Status = newFedHpaStatus + _, err := a.client.AutoscalingV1().HorizontalPodAutoscalers(fedHpa.Namespace).UpdateStatus(fedHpa) + if err != nil { + return fmt.Errorf("Error updating hpa: %s status in federation: %v", fedHpa.Name, err) + } + } + return nil +} + +func updateStatus(fedHpa *autoscalingv1.HorizontalPodAutoscaler, newStatus hpaFederatedStatus) (bool, autoscalingv1.HorizontalPodAutoscalerStatus) { + averageCPUUtilizationPercentage := int32(0) + // Average out the available current utilisation + if *newStatus.aggregateCPUUtilizationPercentage != 0 && newStatus.count != 0 { + averageCPUUtilizationPercentage = *newStatus.aggregateCPUUtilizationPercentage / newStatus.count + } + gen := fedHpa.Generation + newFedHpaStatus := autoscalingv1.HorizontalPodAutoscalerStatus{ObservedGeneration: &gen} + needUpdate := false + if (fedHpa.Status.CurrentCPUUtilizationPercentage == nil && + averageCPUUtilizationPercentage != 0) || + (fedHpa.Status.CurrentCPUUtilizationPercentage != nil && + averageCPUUtilizationPercentage != + *fedHpa.Status.CurrentCPUUtilizationPercentage) { + needUpdate = true + newFedHpaStatus.CurrentCPUUtilizationPercentage = &averageCPUUtilizationPercentage + } + if (fedHpa.Status.LastScaleTime == nil && newStatus.lastScaleTime != nil) || + (fedHpa.Status.LastScaleTime != nil && newStatus.lastScaleTime == nil) || + ((fedHpa.Status.LastScaleTime != nil && newStatus.lastScaleTime != nil) && + newStatus.lastScaleTime.After(fedHpa.Status.LastScaleTime.Time)) { + needUpdate = true + newFedHpaStatus.LastScaleTime = newStatus.lastScaleTime + } + if fedHpa.Status.DesiredReplicas != newStatus.desiredReplicas { + needUpdate = true + newFedHpaStatus.CurrentReplicas = newStatus.currentReplicas + } + if fedHpa.Status.CurrentReplicas != newStatus.currentReplicas { + needUpdate = true + newFedHpaStatus.DesiredReplicas = newStatus.desiredReplicas + } + return needUpdate, newFedHpaStatus +} + +// prepareForScheduling prepares the lists and totals from the +// existing objs. +// currentObjs has the list of all clusters, with obj as nil +// for those clusters which do not have hpa yet. +func prepareForScheduling(currentObjs map[string]pkgruntime.Object) (hpaLists, replicaNums, map[string]*replicaNums) { + lists := hpaLists{ + availableMax: sets.NewString(), + availableMin: sets.NewString(), + noHpa: sets.NewString(), + } + existingTotal := replicaNums{ + min: int32(0), + max: int32(0), + } + + scheduleState := make(map[string]*replicaNums) + for cluster, obj := range currentObjs { + if obj == nil { + lists.noHpa.Insert(cluster) + scheduleState[cluster] = nil + continue + } + + if maxReplicasReducible(obj) { + lists.availableMax.Insert(cluster) + } + if minReplicasReducible(obj) { + lists.availableMin.Insert(cluster) + } + + replicas := replicaNums{min: 0, max: 0} + scheduleState[cluster] = &replicas + if obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MinReplicas != nil { + existingTotal.min += *obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MinReplicas + replicas.min = *obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MinReplicas + } + existingTotal.max += obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MaxReplicas + replicas.max = obj.(*autoscalingv1.HorizontalPodAutoscaler).Spec.MaxReplicas + } + + return lists, existingTotal, scheduleState +} + +// Note: reduceMinReplicas and reduceMaxReplicas, look quite similar in flow +// and code, however there are subtle differences. They together can be made +// into 1 function with an arg governing the functionality difference and +// additional args (superset of args in both) as needed. Doing so however +// makes the logical flow quite less readable. They are thus left as 2 for +// readability. + +// reduceMinReplicas reduces the min replicas from existing clusters. +// At the end of the function excessMin should be 0 and the MinList +// and the scheduledReplicas properly updated in place. +func reduceMinReplicas(excessMin int32, availableMinList sets.String, scheduled map[string]*replicaNums) int32 { + if excessMin > 0 { + // first we try reducing from those clusters which already offer min + if availableMinList.Len() > 0 { + for _, cluster := range availableMinList.List() { + replicas := scheduled[cluster] + if replicas.min > 1 { + replicas.min-- + availableMinList.Delete(cluster) + excessMin-- + if excessMin <= 0 { + break + } + } + } + } + } + + // If we could not get needed replicas from already offered min above + // we abruptly start removing replicas from some/all clusters. + // Here we might make some min to 0 signalling that this hpa might be a + // candidate to be removed from this cluster altogether. + for excessMin > 0 { + for _, replicas := range scheduled { + if replicas != nil && + replicas.min > 0 { + replicas.min-- + excessMin-- + if excessMin <= 0 { + break + } + } + } + } + + return excessMin +} + +// reduceMaxReplicas reduces the max replicas from existing clusters. +// At the end of the function excessMax should be 0 and the MaxList +// and the scheduledReplicas properly updated in place. +func reduceMaxReplicas(excessMax int32, availableMaxList sets.String, scheduled map[string]*replicaNums) int32 { + if excessMax > 0 { + // first we try reducing from those clusters which already offer max + if availableMaxList.Len() > 0 { + for _, cluster := range availableMaxList.List() { + replicas := scheduled[cluster] + if replicas != nil && !((replicas.max - replicas.min) < 0) { + replicas.max-- + availableMaxList.Delete(cluster) + excessMax-- + if excessMax <= 0 { + break + } + } + } + } + } + // If we could not get needed replicas to reduce from already offered + // max above we abruptly start removing replicas from some/all clusters. + // Here we might make some max and min to 0, signalling that this hpa be + // removed from this cluster altogether + for excessMax > 0 { + for _, replicas := range scheduled { + if replicas != nil && + !((replicas.max - replicas.min) < 0) { + replicas.max-- + excessMax-- + if excessMax <= 0 { + break + } + } + } + } + + return excessMax +} + +// distributeMaxReplicas +// Takes input: +// toDistributeMax: number of replicas to distribute. +// lists: cluster name lists, which have clusters with available max, +// available min and those with no hpas yet. +// rdc: replicadistributioncount for max and min. +// currentObjs: list of current cluster hpas. +// scheduled: schedule state which will be updated in place. +func distributeMaxReplicas(toDistributeMax int32, lists hpaLists, rdc replicaNums, + currentObjs map[string]pkgruntime.Object, scheduled map[string]*replicaNums) int32 { + for cluster, replicas := range scheduled { + if toDistributeMax == 0 { + break + } + if replicas == nil { + continue + } + if maxReplicasNeeded(currentObjs[cluster]) { + replicas.max++ + if lists.availableMax.Len() > 0 { + popped, notEmpty := lists.availableMax.PopAny() + if notEmpty { + // Boundary checks have happened earlier in + // minReplicasReducible(). + scheduled[popped].max-- + } + } + // Any which ways utilise available map replicas + toDistributeMax-- + } + } + + // If we have new clusters where we can give our replicas, + // then give away all our replicas to the new clusters first. + if lists.noHpa.Len() > 0 { + for toDistributeMax > 0 { + for _, cluster := range lists.noHpa.UnsortedList() { + if scheduled[cluster] == nil { + scheduled[cluster] = &replicaNums{min: 0, max: 0} + } + replicas := scheduled[cluster] + // first give away max from clusters offering them + // this case especially helps getting hpa into newly joining + // clusters. + if lists.availableMax.Len() > 0 { + popped, notEmpty := lists.availableMax.PopAny() + if notEmpty { + // Boundary checks to reduce max have happened earlier in + // minReplicasReducible(). + replicas.max++ + scheduled[popped].max-- + toDistributeMax-- + continue + } + } + if toDistributeMax < rdc.max { + replicas.max += toDistributeMax + toDistributeMax = 0 + break + } + replicas.max += rdc.max + toDistributeMax -= rdc.max + } + } + } else { // we have no new clusters but if still have max replicas to distribute; + // just distribute all in current clusters. + for toDistributeMax > 0 { + for cluster, replicas := range scheduled { + if replicas == nil { + replicas = &replicaNums{min: 0, max: 0} + scheduled[cluster] = replicas + } + // First give away max from clusters offering them. + // This case especially helps getting hpa into newly joining + // clusters. + if lists.availableMax.Len() > 0 { + popped, notEmpty := lists.availableMax.PopAny() + if notEmpty { + // Boundary checks have happened earlier in + // minReplicasReducible(). + replicas.max++ + scheduled[popped].max-- + toDistributeMax-- + continue + } + } + if toDistributeMax < rdc.max { + replicas.max += toDistributeMax + toDistributeMax = 0 + break + } + replicas.max += rdc.max + toDistributeMax -= rdc.max + } + } + } + return toDistributeMax +} + +// distributeMinReplicas +// Takes input: +// toDistributeMin: number of replicas to distribute. +// lists: cluster name lists, which have clusters with available max, +// available min and those with no hpas yet. +// rdc: replicadistributioncount for max and min. +// currentObjs: list of current cluster hpas. +// scheduled: schedule state which will be updated in place. +func distributeMinReplicas(toDistributeMin int32, lists hpaLists, rdc replicaNums, + currentObjs map[string]pkgruntime.Object, scheduled map[string]*replicaNums) int32 { + for cluster, replicas := range scheduled { + if toDistributeMin == 0 { + break + } + // We have distriubted Max and thus scheduled might not be nil + // but probably current (what we got originally) is nil(no hpa) + if replicas == nil || currentObjs[cluster] == nil { + continue + } + if minReplicasIncreasable(currentObjs[cluster]) { + if lists.availableMin.Len() > 0 { + popped, notEmpty := lists.availableMin.PopAny() + if notEmpty { + // Boundary checks have happened earlier. + scheduled[popped].min-- + replicas.min++ + toDistributeMin-- + } + } + } + } + + if lists.noHpa.Len() > 0 { + // TODO: can this become an infinite loop? + for toDistributeMin > 0 { + for _, cluster := range lists.noHpa.UnsortedList() { + replicas := scheduled[cluster] + if replicas == nil { + // We did not get max here so this cluster + // remains without hpa + continue + } + var replicaNum int32 = 0 + if toDistributeMin < rdc.min { + replicaNum = toDistributeMin + } else { + replicaNum = rdc.min + } + if (replicas.max - replicaNum) < replicas.min { + // Cannot increase the min in this cluster + // as it will go beyond max + continue + } + if lists.availableMin.Len() > 0 { + popped, notEmpty := lists.availableMin.PopAny() + if notEmpty { + // Boundary checks have happened earlier. + scheduled[popped].min-- + replicas.min++ + toDistributeMin-- + continue + } + } + replicas.min += replicaNum + toDistributeMin -= replicaNum + } + } + } else { // we have no new clusters but if still have min replicas to distribute; + // just distribute all in current clusters. + for toDistributeMin > 0 { + for _, replicas := range scheduled { + if replicas == nil { + // We did not get max here so this cluster + // remains without hpa + continue + } + var replicaNum int32 = 0 + if toDistributeMin < rdc.min { + replicaNum = toDistributeMin + } else { + replicaNum = rdc.min + } + if (replicas.max - replicaNum) < replicas.min { + // Cannot increase the min in this cluster + // as it will go beyond max + continue + } + if lists.availableMin.Len() > 0 { + popped, notEmpty := lists.availableMin.PopAny() + if notEmpty { + // Boundary checks have happened earlier. + scheduled[popped].min-- + replicas.min++ + toDistributeMin-- + continue + } + } + replicas.min += replicaNum + toDistributeMin -= replicaNum + } + } + } + return toDistributeMin +} + +// finaliseScheduleState ensures that the minReplica count is made to 1 +// for those clusters which got max, but did not get min. This is because +// k8s hpa does not accept hpas with 0 min replicas. +// The replica num distribution can thus have more mins then fedHpa requested +// but its better then having all replicas go into one cluster (if fedHpa +// requested min=1 (which is the most usual case). +func finaliseScheduleState(scheduled map[string]*replicaNums) map[string]*replicaNums { + for _, replicas := range scheduled { + if (replicas != nil) && (replicas.min <= 0) && (replicas.max > 0) { + // Min total does not necessarily meet the federated min limit. + replicas.min = 1 + } + } + return scheduled +} + +// isPristine is used to determine if so far local controller has been +// able to really determine, what should be the desired replica number for +// this cluster. +// This is used to get hpas into those clusters which might join fresh, +// and so far other cluster hpas haven't really reached anywhere. +// TODO: There is a flaw here, that a just born object would also offer its +// replicas which can also lead to fast thrashing. +// The only better way is to either ensure that object creation time stamp is set +// and can be used authoritatively; or have another field on the local object +// which is mandatorily set on creation and can be used authoritatively. +// Should we abuse annotations again for this, or this can be a proper requirement? +func isPristine(hpa *autoscalingv1.HorizontalPodAutoscaler) bool { + if hpa.Status.LastScaleTime == nil && + hpa.Status.DesiredReplicas == 0 { + return true + } + return false +} + +// isScaleable tells if it already has been a reasonable amount of +// time since this hpa scaled. Its used to avoid fast thrashing. +func isScaleable(hpa *autoscalingv1.HorizontalPodAutoscaler) bool { + if hpa.Status.LastScaleTime == nil { + return false + } + t := hpa.Status.LastScaleTime.Add(scaleForbiddenWindow) + if t.After(time.Now()) { + return false + } + return true +} + +func maxReplicasReducible(obj pkgruntime.Object) bool { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + if (hpa.Spec.MinReplicas != nil) && + (((hpa.Spec.MaxReplicas - 1) - *hpa.Spec.MinReplicas) < 0) { + return false + } + if isPristine(hpa) { + return true + } + if !isScaleable(hpa) { + return false + } + if (hpa.Status.DesiredReplicas < hpa.Status.CurrentReplicas) || + ((hpa.Status.DesiredReplicas == hpa.Status.CurrentReplicas) && + (hpa.Status.DesiredReplicas < hpa.Spec.MaxReplicas)) { + return true + } + return false +} + +// minReplicasReducible checks if this cluster (hpa) can offer replicas which are +// stuck here because of min limit. +// Its noteworthy, that min and max are adjusted separately, but if the replicas +// are not being used here, the max adjustment will lead it to become equal to min, +// but will not be able to scale down further and offer max to some other cluster +// which needs replicas. +func minReplicasReducible(obj pkgruntime.Object) bool { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + if isPristine(hpa) && (hpa.Spec.MinReplicas != nil) && + (*hpa.Spec.MinReplicas > 1) && + (*hpa.Spec.MinReplicas <= hpa.Spec.MaxReplicas) { + return true + } + if !isScaleable(hpa) { + return false + } + if (hpa.Spec.MinReplicas != nil) && + (*hpa.Spec.MinReplicas > 1) && + (hpa.Status.DesiredReplicas == hpa.Status.CurrentReplicas) && + (hpa.Status.CurrentReplicas == *hpa.Spec.MinReplicas) { + return true + } + return false +} + +func maxReplicasNeeded(obj pkgruntime.Object) bool { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + if !isScaleable(hpa) { + return false + } + + if (hpa.Status.CurrentReplicas == hpa.Status.DesiredReplicas) && + (hpa.Status.CurrentReplicas == hpa.Spec.MaxReplicas) { + return true + } + return false +} + +func minReplicasIncreasable(obj pkgruntime.Object) bool { + hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) + if !isScaleable(hpa) || + ((hpa.Spec.MinReplicas != nil) && + (*hpa.Spec.MinReplicas) >= hpa.Spec.MaxReplicas) { + return false + } + + if (hpa.Spec.MinReplicas != nil) && + (hpa.Status.DesiredReplicas > *hpa.Spec.MinReplicas) { + return true + } + return false +} diff --git a/federation/pkg/federatedtypes/hpa_test.go b/federation/pkg/federatedtypes/hpa_test.go new file mode 100644 index 00000000000..2168fb894f6 --- /dev/null +++ b/federation/pkg/federatedtypes/hpa_test.go @@ -0,0 +1,262 @@ +/* +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. +*/ + +package federatedtypes + +import ( + "testing" + "time" + + autoscalingv1 "k8s.io/api/autoscaling/v1" + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + pkgruntime "k8s.io/apimachinery/pkg/runtime" + . "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" + + "github.com/stretchr/testify/assert" +) + +type replicas struct { + min int32 + max int32 +} + +func TestGetHpaScheduleState(t *testing.T) { + defaultFedHpa := newHpaWithReplicas(NewInt32(1), NewInt32(70), 10) + testCases := map[string]struct { + fedHpa *autoscalingv1.HorizontalPodAutoscaler + localHpas map[string]pkgruntime.Object + expectedReplicas map[string]*replicas + }{ + "Distribiutes replicas randomly if no existing hpa in any local cluster": { + localHpas: func() map[string]pkgruntime.Object { + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = nil + hpas["c2"] = nil + return hpas + }(), + }, + "Cluster with no hpa gets replicas if other clusters have replicas": { + localHpas: func() map[string]pkgruntime.Object { + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = newHpaWithReplicas(NewInt32(1), NewInt32(70), 10) + hpas["c2"] = nil + return hpas + }(), + expectedReplicas: map[string]*replicas{ + "c1": { + min: int32(1), + max: int32(9), + }, + "c2": { + min: int32(1), + max: int32(1), + }, + }, + }, + "Cluster needing max replicas gets it if there is another cluster to offer max": { + localHpas: func() map[string]pkgruntime.Object { + hpa1 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 7) + hpa1 = updateHpaStatus(hpa1, NewInt32(50), 5, 5, true) + hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 1) + hpa2 = updateHpaStatus(hpa2, NewInt32(70), 1, 1, true) + // include third object to ensure, it does not break the test + hpa3 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 2) + hpa3 = updateHpaStatus(hpa3, NewInt32(70), 1, 1, false) + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = hpa1 + hpas["c2"] = hpa2 + hpas["c3"] = hpa3 + return hpas + }(), + expectedReplicas: map[string]*replicas{ + "c1": { + min: int32(1), + max: int32(6), + }, + "c2": { + min: int32(1), + max: int32(2), + }, + "c3": { + min: int32(1), + max: int32(2), + }, + }, + }, + "Cluster needing max replicas does not get it if there is no cluster offerring max": { + localHpas: func() map[string]pkgruntime.Object { + hpa1 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 9) + hpa1 = updateHpaStatus(hpa1, NewInt32(70), 9, 9, false) + hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 1) + hpa2 = updateHpaStatus(hpa2, NewInt32(70), 1, 1, true) + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = hpa1 + hpas["c2"] = hpa2 + return hpas + }(), + expectedReplicas: map[string]*replicas{ + "c1": { + min: int32(1), + max: int32(9), + }, + "c2": { + min: int32(1), + max: int32(1), + }, + }, + }, + "Cluster which can increase min replicas gets to increase min if there is a cluster offering min": { + fedHpa: newHpaWithReplicas(NewInt32(4), NewInt32(70), 10), + localHpas: func() map[string]pkgruntime.Object { + hpa1 := newHpaWithReplicas(NewInt32(3), NewInt32(70), 6) + hpa1 = updateHpaStatus(hpa1, NewInt32(50), 3, 3, true) + hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 4) + hpa2 = updateHpaStatus(hpa2, NewInt32(50), 3, 3, true) + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = hpa1 + hpas["c2"] = hpa2 + return hpas + }(), + expectedReplicas: map[string]*replicas{ + "c1": { + min: int32(2), + max: int32(6), + }, + "c2": { + min: int32(2), + max: int32(4), + }, + }, + }, + "Cluster which can increase min replicas does not increase if there are no clusters offering min": { + fedHpa: newHpaWithReplicas(NewInt32(4), NewInt32(70), 10), + localHpas: func() map[string]pkgruntime.Object { + hpa1 := newHpaWithReplicas(NewInt32(3), NewInt32(70), 6) + hpa1 = updateHpaStatus(hpa1, NewInt32(50), 4, 4, true) + hpa2 := newHpaWithReplicas(NewInt32(1), NewInt32(70), 4) + hpa2 = updateHpaStatus(hpa2, NewInt32(50), 3, 3, true) + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = hpa1 + hpas["c2"] = hpa2 + return hpas + }(), + expectedReplicas: map[string]*replicas{ + "c1": { + min: int32(3), + max: int32(6), + }, + "c2": { + min: int32(1), + max: int32(4), + }, + }, + }, + "Increasing replicas on fed object increases the same on clusters": { + // Existing total of local min, max = 1+1, 5+5 decreasing to below + fedHpa: newHpaWithReplicas(NewInt32(4), NewInt32(70), 14), + localHpas: func() map[string]pkgruntime.Object { + // does not matter if scaleability is true + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = newHpaWithReplicas(NewInt32(1), NewInt32(70), 5) + hpas["c2"] = newHpaWithReplicas(NewInt32(1), NewInt32(70), 5) + return hpas + }(), + // We dont know which cluster gets how many, but the resultant total should match + }, + "Decreasing replicas on fed object decreases the same on clusters": { + // Existing total of local min, max = 2+2, 8+8 decreasing to below + fedHpa: newHpaWithReplicas(NewInt32(3), NewInt32(70), 8), + localHpas: func() map[string]pkgruntime.Object { + // does not matter if scaleability is true + hpas := make(map[string]pkgruntime.Object) + hpas["c1"] = newHpaWithReplicas(NewInt32(2), NewInt32(70), 8) + hpas["c2"] = newHpaWithReplicas(NewInt32(2), NewInt32(70), 8) + return hpas + }(), + // We dont know which cluster gets how many, but the resultant total should match + }, + } + + for testName, testCase := range testCases { + t.Run(testName, func(t *testing.T) { + if testCase.fedHpa == nil { + testCase.fedHpa = defaultFedHpa + } + scheduledState := getHpaScheduleState(testCase.fedHpa, testCase.localHpas) + checkClusterConditions(t, testCase.fedHpa, scheduledState) + if testCase.expectedReplicas != nil { + for cluster, replicas := range testCase.expectedReplicas { + scheduledReplicas := scheduledState[cluster] + assert.Equal(t, replicas.min, scheduledReplicas.min) + assert.Equal(t, replicas.max, scheduledReplicas.max) + } + } + }) + } +} + +func updateHpaStatus(hpa *autoscalingv1.HorizontalPodAutoscaler, currentUtilisation *int32, current, desired int32, scaleable bool) *autoscalingv1.HorizontalPodAutoscaler { + hpa.Status.CurrentReplicas = current + hpa.Status.DesiredReplicas = desired + hpa.Status.CurrentCPUUtilizationPercentage = currentUtilisation + now := metav1.Now() + scaledTime := now + if scaleable { + // definitely more then 5 minutes ago + scaledTime = metav1.NewTime(now.Time.Add(-6 * time.Minute)) + } + hpa.Status.LastScaleTime = &scaledTime + return hpa +} + +func checkClusterConditions(t *testing.T, fedHpa *autoscalingv1.HorizontalPodAutoscaler, scheduled map[string]*replicaNums) { + minTotal := int32(0) + maxTotal := int32(0) + for _, replicas := range scheduled { + minTotal += replicas.min + maxTotal += replicas.max + } + + // - Total of max matches the fed max + assert.Equal(t, fedHpa.Spec.MaxReplicas, maxTotal) + // - Total of min is not less then fed min + assert.Condition(t, func() bool { + if *fedHpa.Spec.MinReplicas <= minTotal { + return true + } + return false + }) +} + +func newHpaWithReplicas(min, targetUtilisation *int32, max int32) *autoscalingv1.HorizontalPodAutoscaler { + return &autoscalingv1.HorizontalPodAutoscaler{ + ObjectMeta: metav1.ObjectMeta{ + Name: "myhpa", + Namespace: apiv1.NamespaceDefault, + SelfLink: "/api/mylink", + }, + Spec: autoscalingv1.HorizontalPodAutoscalerSpec{ + ScaleTargetRef: autoscalingv1.CrossVersionObjectReference{ + Kind: "HorizontalPodAutoscaler", + Name: "target-", + }, + MinReplicas: min, + MaxReplicas: max, + TargetCPUUtilizationPercentage: targetUtilisation, + }, + } +} diff --git a/federation/pkg/federatedtypes/replicaset.go b/federation/pkg/federatedtypes/replicaset.go index d439c7a361a..909b12b7d0a 100644 --- a/federation/pkg/federatedtypes/replicaset.go +++ b/federation/pkg/federatedtypes/replicaset.go @@ -40,16 +40,16 @@ func init() { } type ReplicaSetAdapter struct { - *schedulingAdapter + *replicaSchedulingAdapter client federationclientset.Interface } func NewReplicaSetAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { - schedulingAdapter := schedulingAdapter{ + replicaSchedulingAdapter := replicaSchedulingAdapter{ preferencesAnnotationName: FedReplicaSetPreferencesAnnotation, - updateStatusFunc: func(obj pkgruntime.Object, status interface{}) error { + updateStatusFunc: func(obj pkgruntime.Object, schedulingInfo interface{}) error { rs := obj.(*extensionsv1.ReplicaSet) - typedStatus := status.(ReplicaSchedulingStatus) + typedStatus := schedulingInfo.(*ReplicaSchedulingInfo).Status if typedStatus.Replicas != rs.Status.Replicas || typedStatus.FullyLabeledReplicas != rs.Status.FullyLabeledReplicas || typedStatus.ReadyReplicas != rs.Status.ReadyReplicas || typedStatus.AvailableReplicas != rs.Status.AvailableReplicas { rs.Status = extensionsv1.ReplicaSetStatus{ @@ -64,7 +64,7 @@ func NewReplicaSetAdapter(client federationclientset.Interface, config *restclie return nil }, } - return &ReplicaSetAdapter{&schedulingAdapter, client} + return &ReplicaSetAdapter{&replicaSchedulingAdapter, client} } func (a *ReplicaSetAdapter) Kind() string { diff --git a/federation/pkg/federatedtypes/scheduling.go b/federation/pkg/federatedtypes/scheduling.go index a6f9bcc9905..3cad44bd59e 100644 --- a/federation/pkg/federatedtypes/scheduling.go +++ b/federation/pkg/federatedtypes/scheduling.go @@ -37,6 +37,16 @@ import ( "github.com/golang/glog" ) +// ScheduleAction is used by the interface ScheduleObject of SchedulingAdapter +// to sync controller reconcile to convey the action type needed for the +// particular cluster local object in ScheduleObject +type ScheduleAction string + +const ( + ActionAdd = "add" + ActionDelete = "delete" +) + // ReplicaSchedulingStatus contains the status of the replica type objects (rs or deployment) // that are being scheduled into joined clusters. type ReplicaSchedulingStatus struct { @@ -58,26 +68,26 @@ type ReplicaSchedulingInfo struct { // federated type that requires more complex synchronization logic. type SchedulingAdapter interface { GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (interface{}, error) - ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, bool, error) - UpdateFederatedStatus(obj pkgruntime.Object, status interface{}) error + ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, ScheduleAction, error) + UpdateFederatedStatus(obj pkgruntime.Object, schedulingInfo interface{}) error // EquivalentIgnoringSchedule returns whether obj1 and obj2 are // equivalent ignoring differences due to scheduling. EquivalentIgnoringSchedule(obj1, obj2 pkgruntime.Object) bool } -// schedulingAdapter is meant to be embedded in other type adapters that require -// workload scheduling. -type schedulingAdapter struct { +// replicaSchedulingAdapter is meant to be embedded in other type adapters that require +// workload scheduling with actual pod replicas. +type replicaSchedulingAdapter struct { preferencesAnnotationName string updateStatusFunc func(pkgruntime.Object, interface{}) error } -func (a *schedulingAdapter) IsSchedulingAdapter() bool { +func (a *replicaSchedulingAdapter) IsSchedulingAdapter() bool { return true } -func (a *schedulingAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (interface{}, error) { +func (a *replicaSchedulingAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []*federationapi.Cluster, informer fedutil.FederatedInformer) (interface{}, error) { var clusterNames []string for _, cluster := range clusters { clusterNames = append(clusterNames, cluster.Name) @@ -128,7 +138,7 @@ func (a *schedulingAdapter) GetSchedule(obj pkgruntime.Object, key string, clust }, nil } -func (a *schedulingAdapter) ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, bool, error) { +func (a *replicaSchedulingAdapter) ScheduleObject(cluster *federationapi.Cluster, clusterObj pkgruntime.Object, federationObjCopy pkgruntime.Object, schedulingInfo interface{}) (pkgruntime.Object, ScheduleAction, error) { typedSchedulingInfo := schedulingInfo.(*ReplicaSchedulingInfo) replicas, ok := typedSchedulingInfo.Schedule[cluster.Name] if !ok { @@ -152,11 +162,15 @@ func (a *schedulingAdapter) ScheduleObject(cluster *federationapi.Cluster, clust } } } - return federationObjCopy, replicas > 0, nil + var action ScheduleAction = "" + if replicas > 0 { + action = ActionAdd + } + return federationObjCopy, action, nil } -func (a *schedulingAdapter) UpdateFederatedStatus(obj pkgruntime.Object, status interface{}) error { - return a.updateStatusFunc(obj, status) +func (a *replicaSchedulingAdapter) UpdateFederatedStatus(obj pkgruntime.Object, schedulingInfo interface{}) error { + return a.updateStatusFunc(obj, schedulingInfo) } func schedule(planner *planner.Planner, obj pkgruntime.Object, key string, clusterNames []string, currentReplicasPerCluster map[string]int64, estimatedCapacity map[string]int64) map[string]int64 { diff --git a/federation/pkg/federation-controller/sync/controller.go b/federation/pkg/federation-controller/sync/controller.go index 800a1484f8a..41cee680fd3 100644 --- a/federation/pkg/federation-controller/sync/controller.go +++ b/federation/pkg/federation-controller/sync/controller.go @@ -490,8 +490,7 @@ func syncToClusters(clustersAccessor clustersAccessorFunc, operationsAccessor op if !ok { glog.Fatalf("Adapter for kind %q does not properly implement SchedulingAdapter.", kind) } - typedScheduleInfo := schedulingInfo.(*federatedtypes.ReplicaSchedulingInfo) - err = schedulingAdapter.UpdateFederatedStatus(obj, typedScheduleInfo.Status) + err = schedulingAdapter.UpdateFederatedStatus(obj, schedulingInfo) if err != nil { runtime.HandleError(fmt.Errorf("adapter.UpdateFinished() failed on adapter for %s %q: %v", kind, key, err)) return statusError @@ -548,7 +547,7 @@ func clusterOperations(adapter federatedtypes.FederatedTypeAdapter, selectedClus return nil, wrappedErr } - shouldCreateIfNeeded := true + var scheduleAction federatedtypes.ScheduleAction = federatedtypes.ActionAdd if adapter.IsSchedulingAdapter() { schedulingAdapter, ok := adapter.(federatedtypes.SchedulingAdapter) if !ok { @@ -559,7 +558,7 @@ func clusterOperations(adapter federatedtypes.FederatedTypeAdapter, selectedClus if clusterObj != nil { clusterTypedObj = clusterObj.(pkgruntime.Object) } - desiredObj, shouldCreateIfNeeded, err = schedulingAdapter.ScheduleObject(cluster, clusterTypedObj, desiredObj, schedulingInfo) + desiredObj, scheduleAction, err = schedulingAdapter.ScheduleObject(cluster, clusterTypedObj, desiredObj, schedulingInfo) if err != nil { runtime.HandleError(err) return nil, err @@ -568,11 +567,15 @@ func clusterOperations(adapter federatedtypes.FederatedTypeAdapter, selectedClus var operationType util.FederatedOperationType = "" if found { - clusterObj := clusterObj.(pkgruntime.Object) - if !adapter.Equivalent(desiredObj, clusterObj) { - operationType = util.OperationTypeUpdate + if scheduleAction == federatedtypes.ActionDelete { + operationType = util.OperationTypeDelete + } else { + clusterObj := clusterObj.(pkgruntime.Object) + if !adapter.Equivalent(desiredObj, clusterObj) { + operationType = util.OperationTypeUpdate + } } - } else if shouldCreateIfNeeded { + } else if scheduleAction == federatedtypes.ActionAdd { operationType = util.OperationTypeAdd } diff --git a/federation/pkg/federation-controller/util/test/test_helper.go b/federation/pkg/federation-controller/util/test/test_helper.go index de6307b80e4..534111d7424 100644 --- a/federation/pkg/federation-controller/util/test/test_helper.go +++ b/federation/pkg/federation-controller/util/test/test_helper.go @@ -446,3 +446,9 @@ func AssertHasFinalizer(t *testing.T, obj runtime.Object, finalizer string) { require.Nil(t, err) assert.True(t, hasFinalizer) } + +func NewInt32(val int32) *int32 { + p := new(int32) + *p = val + return p +} From 2be69a515c83ee255f033ab478068f3527f0cd73 Mon Sep 17 00:00:00 2001 From: Irfan Ur Rehman Date: Tue, 25 Jul 2017 21:10:26 +0530 Subject: [PATCH 060/183] [Federation] Make the hpa scale time window configurable --- .../app/controllermanager.go | 4 +- .../app/options/options.go | 9 +++ federation/pkg/federatedtypes/adapter.go | 2 +- federation/pkg/federatedtypes/configmap.go | 2 +- federation/pkg/federatedtypes/daemonset.go | 2 +- federation/pkg/federatedtypes/deployment.go | 2 +- federation/pkg/federatedtypes/hpa.go | 69 +++++++++++-------- federation/pkg/federatedtypes/hpa_test.go | 10 +-- federation/pkg/federatedtypes/namespace.go | 2 +- federation/pkg/federatedtypes/replicaset.go | 2 +- federation/pkg/federatedtypes/secret.go | 2 +- .../federation-controller/sync/controller.go | 4 +- hack/verify-flags/known-flags.txt | 1 + test/e2e_federation/crud.go | 2 +- test/e2e_federation/upgrades/simple.go | 2 +- test/integration/federation/crud_test.go | 2 +- .../federation/framework/controller.go | 2 +- 17 files changed, 72 insertions(+), 47 deletions(-) diff --git a/federation/cmd/federation-controller-manager/app/controllermanager.go b/federation/cmd/federation-controller-manager/app/controllermanager.go index 9144eca97f4..5076e4174f7 100644 --- a/federation/cmd/federation-controller-manager/app/controllermanager.go +++ b/federation/cmd/federation-controller-manager/app/controllermanager.go @@ -149,9 +149,11 @@ func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) err go serviceController.Run(s.ConcurrentServiceSyncs, wait.NeverStop) } + adapterSpecificArgs := make(map[string]interface{}) + adapterSpecificArgs[federatedtypes.HpaKind] = &s.HpaScaleForbiddenWindow for kind, federatedType := range federatedtypes.FederatedTypes() { if controllerEnabled(s.Controllers, serverResources, federatedType.ControllerName, federatedType.RequiredResources, true) { - synccontroller.StartFederationSyncController(kind, federatedType.AdapterFactory, restClientCfg, stopChan, minimizeLatency) + synccontroller.StartFederationSyncController(kind, federatedType.AdapterFactory, restClientCfg, stopChan, minimizeLatency, adapterSpecificArgs) } } diff --git a/federation/cmd/federation-controller-manager/app/options/options.go b/federation/cmd/federation-controller-manager/app/options/options.go index e6659c36977..069075aa771 100644 --- a/federation/cmd/federation-controller-manager/app/options/options.go +++ b/federation/cmd/federation-controller-manager/app/options/options.go @@ -72,6 +72,13 @@ type ControllerManagerConfiguration struct { ContentType string `json:"contentType"` // ConfigurationMap determining which controllers should be enabled or disabled Controllers utilflag.ConfigurationMap `json:"controllers"` + // HpaScaleForbiddenWindow is the duration used by federation hpa controller to + // determine if it can move max and/or min replicas around (or not), of a cluster local + // hpa object, by comparing current time with the last scaled time of that cluster local hpa. + // Lower value will result in faster response to scalibility conditions achieved + // by cluster local hpas on local replicas, but too low a value can result in thrashing. + // Higher values will result in slower response to scalibility conditions on local replicas. + HpaScaleForbiddenWindow metav1.Duration `json:"HpaScaleForbiddenWindow"` } // CMServer is the main context object for the controller manager. @@ -100,6 +107,7 @@ func NewCMServer() *CMServer { APIServerBurst: 30, LeaderElection: leaderelectionconfig.DefaultLeaderElectionConfiguration(), Controllers: make(utilflag.ConfigurationMap), + HpaScaleForbiddenWindow: metav1.Duration{Duration: 2 * time.Minute}, }, } return &s @@ -125,6 +133,7 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet) { fs.IntVar(&s.APIServerBurst, "federated-api-burst", s.APIServerBurst, "Burst to use while talking with federation apiserver") fs.StringVar(&s.DnsProvider, "dns-provider", s.DnsProvider, "DNS provider. Valid values are: "+fmt.Sprintf("%q", dnsprovider.RegisteredDnsProviders())) fs.StringVar(&s.DnsConfigFile, "dns-provider-config", s.DnsConfigFile, "Path to config file for configuring DNS provider.") + fs.DurationVar(&s.HpaScaleForbiddenWindow.Duration, "hpa-scale-forbidden-window", s.HpaScaleForbiddenWindow.Duration, "The time window wrt cluster local hpa lastscale time, during which federated hpa would not move the hpa max/min replicas around") fs.Var(&s.Controllers, "controllers", ""+ "A set of key=value pairs that describe controller configuration "+ "to enable/disable specific controllers. Key should be the resource name (like services) and value should be true or false. "+ diff --git a/federation/pkg/federatedtypes/adapter.go b/federation/pkg/federatedtypes/adapter.go index 3d26e63c4ca..1dbda2a498e 100644 --- a/federation/pkg/federatedtypes/adapter.go +++ b/federation/pkg/federatedtypes/adapter.go @@ -62,7 +62,7 @@ type FederatedTypeAdapter interface { // that create instances of FederatedTypeAdapter. Such methods should // be registered with RegisterAdapterFactory to ensure the type // adapter is discoverable. -type AdapterFactory func(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter +type AdapterFactory func(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter // SetAnnotation sets the given key and value in the given object's ObjectMeta.Annotations map func SetAnnotation(adapter FederatedTypeAdapter, obj pkgruntime.Object, key, value string) { diff --git a/federation/pkg/federatedtypes/configmap.go b/federation/pkg/federatedtypes/configmap.go index 9108c78b9e2..79fdea2caf1 100644 --- a/federation/pkg/federatedtypes/configmap.go +++ b/federation/pkg/federatedtypes/configmap.go @@ -41,7 +41,7 @@ type ConfigMapAdapter struct { client federationclientset.Interface } -func NewConfigMapAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { +func NewConfigMapAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { return &ConfigMapAdapter{client: client} } diff --git a/federation/pkg/federatedtypes/daemonset.go b/federation/pkg/federatedtypes/daemonset.go index 3b581b6ddf6..6c5ba82050c 100644 --- a/federation/pkg/federatedtypes/daemonset.go +++ b/federation/pkg/federatedtypes/daemonset.go @@ -44,7 +44,7 @@ type DaemonSetAdapter struct { client federationclientset.Interface } -func NewDaemonSetAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { +func NewDaemonSetAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { return &DaemonSetAdapter{client: client} } diff --git a/federation/pkg/federatedtypes/deployment.go b/federation/pkg/federatedtypes/deployment.go index 230501db0ef..cc6eccbd70b 100644 --- a/federation/pkg/federatedtypes/deployment.go +++ b/federation/pkg/federatedtypes/deployment.go @@ -44,7 +44,7 @@ type DeploymentAdapter struct { client federationclientset.Interface } -func NewDeploymentAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { +func NewDeploymentAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { schedulingAdapter := replicaSchedulingAdapter{ preferencesAnnotationName: FedDeploymentPreferencesAnnotation, updateStatusFunc: func(obj pkgruntime.Object, schedulingInfo interface{}) error { diff --git a/federation/pkg/federatedtypes/hpa.go b/federation/pkg/federatedtypes/hpa.go index 3479d7c4b3b..66806b35159 100644 --- a/federation/pkg/federatedtypes/hpa.go +++ b/federation/pkg/federatedtypes/hpa.go @@ -36,14 +36,14 @@ import ( const ( HpaKind = "horizontalpodautoscaler" HpaControllerName = "horizontalpodautoscalers" - // This is a tunable which does not change replica nums - // on an existing local hpa, before this timeout, if it - // did scale already (avoids thrashing of replicas around). - scaleForbiddenWindow = 5 * time.Minute // This is used as the default min for hpa object submitted // to federation, in a situation where the default is for // some reason not present (Spec.MinReplicas == nil) hpaMinReplicaDefault = int32(1) + // This is a tunable which does not change replica nums + // on an existing local hpa, before this timeout, if it + // did scale already (avoids thrashing of replicas around). + ScaleForbiddenWindow = 2 * time.Minute ) func init() { @@ -51,11 +51,22 @@ func init() { } type HpaAdapter struct { - client federationclientset.Interface + client federationclientset.Interface + scaleForbiddenWindow time.Duration } -func NewHpaAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { - return &HpaAdapter{client: client} +func NewHpaAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { + var scaleForbiddenWindow time.Duration + if adapterSpecificArgs != nil && adapterSpecificArgs[HpaKind] != nil { + scaleForbiddenWindow = adapterSpecificArgs[HpaKind].(*metav1.Duration).Duration + } else { + scaleForbiddenWindow = ScaleForbiddenWindow + } + + return &HpaAdapter{ + client: client, + scaleForbiddenWindow: scaleForbiddenWindow, + } } func (a *HpaAdapter) Kind() string { @@ -237,7 +248,7 @@ func (a *HpaAdapter) GetSchedule(obj pkgruntime.Object, key string, clusters []* } return &hpaSchedulingInfo{ - scheduleState: getHpaScheduleState(obj, currentClusterObjs), + scheduleState: a.getHpaScheduleState(obj, currentClusterObjs), fedStatus: fedStatus, }, nil } @@ -288,7 +299,7 @@ func getCurrentClusterObjs(informer fedutil.FederatedInformer, key string, clust // // The above algorithm is run to first distribute max and then distribute min to those clusters // which get max. -func getHpaScheduleState(fedObj pkgruntime.Object, currentObjs map[string]pkgruntime.Object) map[string]*replicaNums { +func (a *HpaAdapter) getHpaScheduleState(fedObj pkgruntime.Object, currentObjs map[string]pkgruntime.Object) map[string]*replicaNums { fedHpa := fedObj.(*autoscalingv1.HorizontalPodAutoscaler) requestedMin := hpaMinReplicaDefault if fedHpa.Spec.MinReplicas != nil { @@ -322,7 +333,7 @@ func getHpaScheduleState(fedObj pkgruntime.Object, currentObjs map[string]pkgrun // beyond min/max limits. // schedStatus currently have status of existing hpas. // It will eventually have desired status for this reconcile. - clusterLists, currentReplicas, scheduleState := prepareForScheduling(currentObjs) + clusterLists, currentReplicas, scheduleState := a.prepareForScheduling(currentObjs) remainingReplicas := replicaNums{ min: requestedReplicas.min - currentReplicas.min, @@ -362,7 +373,7 @@ func getHpaScheduleState(fedObj pkgruntime.Object, currentObjs map[string]pkgrun // We then go ahead to give the replicas to those which do not // have any hpa. In this pass however we try to ensure that all // our Max are consumed in this reconcile. - distributeMaxReplicas(toDistribute.max, clusterLists, rdc, currentObjs, scheduleState) + a.distributeMaxReplicas(toDistribute.max, clusterLists, rdc, currentObjs, scheduleState) // We distribute min to those clusters which: // 1 - can adjust min (our increase step would be only 1) @@ -371,7 +382,7 @@ func getHpaScheduleState(fedObj pkgruntime.Object, currentObjs map[string]pkgrun // some clusters still needing them. We adjust this in finalise by // assigning min replicas to 1 into those clusters which got max // but min remains 0. - distributeMinReplicas(toDistribute.min, clusterLists, rdc, currentObjs, scheduleState) + a.distributeMinReplicas(toDistribute.min, clusterLists, rdc, currentObjs, scheduleState) return finaliseScheduleState(scheduleState) } @@ -474,7 +485,7 @@ func updateStatus(fedHpa *autoscalingv1.HorizontalPodAutoscaler, newStatus hpaFe // existing objs. // currentObjs has the list of all clusters, with obj as nil // for those clusters which do not have hpa yet. -func prepareForScheduling(currentObjs map[string]pkgruntime.Object) (hpaLists, replicaNums, map[string]*replicaNums) { +func (a *HpaAdapter) prepareForScheduling(currentObjs map[string]pkgruntime.Object) (hpaLists, replicaNums, map[string]*replicaNums) { lists := hpaLists{ availableMax: sets.NewString(), availableMin: sets.NewString(), @@ -493,10 +504,10 @@ func prepareForScheduling(currentObjs map[string]pkgruntime.Object) (hpaLists, r continue } - if maxReplicasReducible(obj) { + if a.maxReplicasReducible(obj) { lists.availableMax.Insert(cluster) } - if minReplicasReducible(obj) { + if a.minReplicasReducible(obj) { lists.availableMin.Insert(cluster) } @@ -609,7 +620,7 @@ func reduceMaxReplicas(excessMax int32, availableMaxList sets.String, scheduled // rdc: replicadistributioncount for max and min. // currentObjs: list of current cluster hpas. // scheduled: schedule state which will be updated in place. -func distributeMaxReplicas(toDistributeMax int32, lists hpaLists, rdc replicaNums, +func (a *HpaAdapter) distributeMaxReplicas(toDistributeMax int32, lists hpaLists, rdc replicaNums, currentObjs map[string]pkgruntime.Object, scheduled map[string]*replicaNums) int32 { for cluster, replicas := range scheduled { if toDistributeMax == 0 { @@ -618,7 +629,7 @@ func distributeMaxReplicas(toDistributeMax int32, lists hpaLists, rdc replicaNum if replicas == nil { continue } - if maxReplicasNeeded(currentObjs[cluster]) { + if a.maxReplicasNeeded(currentObjs[cluster]) { replicas.max++ if lists.availableMax.Len() > 0 { popped, notEmpty := lists.availableMax.PopAny() @@ -708,7 +719,7 @@ func distributeMaxReplicas(toDistributeMax int32, lists hpaLists, rdc replicaNum // rdc: replicadistributioncount for max and min. // currentObjs: list of current cluster hpas. // scheduled: schedule state which will be updated in place. -func distributeMinReplicas(toDistributeMin int32, lists hpaLists, rdc replicaNums, +func (a *HpaAdapter) distributeMinReplicas(toDistributeMin int32, lists hpaLists, rdc replicaNums, currentObjs map[string]pkgruntime.Object, scheduled map[string]*replicaNums) int32 { for cluster, replicas := range scheduled { if toDistributeMin == 0 { @@ -719,7 +730,7 @@ func distributeMinReplicas(toDistributeMin int32, lists hpaLists, rdc replicaNum if replicas == nil || currentObjs[cluster] == nil { continue } - if minReplicasIncreasable(currentObjs[cluster]) { + if a.minReplicasIncreasable(currentObjs[cluster]) { if lists.availableMin.Len() > 0 { popped, notEmpty := lists.availableMin.PopAny() if notEmpty { @@ -842,18 +853,18 @@ func isPristine(hpa *autoscalingv1.HorizontalPodAutoscaler) bool { // isScaleable tells if it already has been a reasonable amount of // time since this hpa scaled. Its used to avoid fast thrashing. -func isScaleable(hpa *autoscalingv1.HorizontalPodAutoscaler) bool { +func (a *HpaAdapter) isScaleable(hpa *autoscalingv1.HorizontalPodAutoscaler) bool { if hpa.Status.LastScaleTime == nil { return false } - t := hpa.Status.LastScaleTime.Add(scaleForbiddenWindow) + t := hpa.Status.LastScaleTime.Add(a.scaleForbiddenWindow) if t.After(time.Now()) { return false } return true } -func maxReplicasReducible(obj pkgruntime.Object) bool { +func (a *HpaAdapter) maxReplicasReducible(obj pkgruntime.Object) bool { hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) if (hpa.Spec.MinReplicas != nil) && (((hpa.Spec.MaxReplicas - 1) - *hpa.Spec.MinReplicas) < 0) { @@ -862,7 +873,7 @@ func maxReplicasReducible(obj pkgruntime.Object) bool { if isPristine(hpa) { return true } - if !isScaleable(hpa) { + if !a.isScaleable(hpa) { return false } if (hpa.Status.DesiredReplicas < hpa.Status.CurrentReplicas) || @@ -879,14 +890,14 @@ func maxReplicasReducible(obj pkgruntime.Object) bool { // are not being used here, the max adjustment will lead it to become equal to min, // but will not be able to scale down further and offer max to some other cluster // which needs replicas. -func minReplicasReducible(obj pkgruntime.Object) bool { +func (a *HpaAdapter) minReplicasReducible(obj pkgruntime.Object) bool { hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) if isPristine(hpa) && (hpa.Spec.MinReplicas != nil) && (*hpa.Spec.MinReplicas > 1) && (*hpa.Spec.MinReplicas <= hpa.Spec.MaxReplicas) { return true } - if !isScaleable(hpa) { + if !a.isScaleable(hpa) { return false } if (hpa.Spec.MinReplicas != nil) && @@ -898,9 +909,9 @@ func minReplicasReducible(obj pkgruntime.Object) bool { return false } -func maxReplicasNeeded(obj pkgruntime.Object) bool { +func (a *HpaAdapter) maxReplicasNeeded(obj pkgruntime.Object) bool { hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - if !isScaleable(hpa) { + if !a.isScaleable(hpa) { return false } @@ -911,9 +922,9 @@ func maxReplicasNeeded(obj pkgruntime.Object) bool { return false } -func minReplicasIncreasable(obj pkgruntime.Object) bool { +func (a *HpaAdapter) minReplicasIncreasable(obj pkgruntime.Object) bool { hpa := obj.(*autoscalingv1.HorizontalPodAutoscaler) - if !isScaleable(hpa) || + if !a.isScaleable(hpa) || ((hpa.Spec.MinReplicas != nil) && (*hpa.Spec.MinReplicas) >= hpa.Spec.MaxReplicas) { return false diff --git a/federation/pkg/federatedtypes/hpa_test.go b/federation/pkg/federatedtypes/hpa_test.go index 2168fb894f6..95447b18d54 100644 --- a/federation/pkg/federatedtypes/hpa_test.go +++ b/federation/pkg/federatedtypes/hpa_test.go @@ -18,7 +18,6 @@ package federatedtypes import ( "testing" - "time" autoscalingv1 "k8s.io/api/autoscaling/v1" apiv1 "k8s.io/api/core/v1" @@ -191,12 +190,15 @@ func TestGetHpaScheduleState(t *testing.T) { }, } + adapter := &HpaAdapter{ + scaleForbiddenWindow: ScaleForbiddenWindow, + } for testName, testCase := range testCases { t.Run(testName, func(t *testing.T) { if testCase.fedHpa == nil { testCase.fedHpa = defaultFedHpa } - scheduledState := getHpaScheduleState(testCase.fedHpa, testCase.localHpas) + scheduledState := adapter.getHpaScheduleState(testCase.fedHpa, testCase.localHpas) checkClusterConditions(t, testCase.fedHpa, scheduledState) if testCase.expectedReplicas != nil { for cluster, replicas := range testCase.expectedReplicas { @@ -216,8 +218,8 @@ func updateHpaStatus(hpa *autoscalingv1.HorizontalPodAutoscaler, currentUtilisat now := metav1.Now() scaledTime := now if scaleable { - // definitely more then 5 minutes ago - scaledTime = metav1.NewTime(now.Time.Add(-6 * time.Minute)) + // definitely more then ScaleForbiddenWindow time ago + scaledTime = metav1.NewTime(now.Time.Add(-2 * ScaleForbiddenWindow)) } hpa.Status.LastScaleTime = &scaledTime return hpa diff --git a/federation/pkg/federatedtypes/namespace.go b/federation/pkg/federatedtypes/namespace.go index 210338872cc..3caf1a2f679 100644 --- a/federation/pkg/federatedtypes/namespace.go +++ b/federation/pkg/federatedtypes/namespace.go @@ -50,7 +50,7 @@ type NamespaceAdapter struct { deleter deletion.NamespacedResourcesDeleterInterface } -func NewNamespaceAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { +func NewNamespaceAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { dynamicClientPool := dynamic.NewDynamicClientPool(config) discoverResourcesFunc := client.Discovery().ServerPreferredNamespacedResources deleter := deletion.NewNamespacedResourcesDeleter( diff --git a/federation/pkg/federatedtypes/replicaset.go b/federation/pkg/federatedtypes/replicaset.go index 909b12b7d0a..f854679bb06 100644 --- a/federation/pkg/federatedtypes/replicaset.go +++ b/federation/pkg/federatedtypes/replicaset.go @@ -44,7 +44,7 @@ type ReplicaSetAdapter struct { client federationclientset.Interface } -func NewReplicaSetAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { +func NewReplicaSetAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { replicaSchedulingAdapter := replicaSchedulingAdapter{ preferencesAnnotationName: FedReplicaSetPreferencesAnnotation, updateStatusFunc: func(obj pkgruntime.Object, schedulingInfo interface{}) error { diff --git a/federation/pkg/federatedtypes/secret.go b/federation/pkg/federatedtypes/secret.go index 535e9faffec..09548ca62a1 100644 --- a/federation/pkg/federatedtypes/secret.go +++ b/federation/pkg/federatedtypes/secret.go @@ -41,7 +41,7 @@ type SecretAdapter struct { client federationclientset.Interface } -func NewSecretAdapter(client federationclientset.Interface, config *restclient.Config) FederatedTypeAdapter { +func NewSecretAdapter(client federationclientset.Interface, config *restclient.Config, adapterSpecificArgs map[string]interface{}) FederatedTypeAdapter { return &SecretAdapter{client: client} } diff --git a/federation/pkg/federation-controller/sync/controller.go b/federation/pkg/federation-controller/sync/controller.go index 41cee680fd3..649d3b23621 100644 --- a/federation/pkg/federation-controller/sync/controller.go +++ b/federation/pkg/federation-controller/sync/controller.go @@ -93,10 +93,10 @@ type FederationSyncController struct { } // StartFederationSyncController starts a new sync controller for a type adapter -func StartFederationSyncController(kind string, adapterFactory federatedtypes.AdapterFactory, config *restclient.Config, stopChan <-chan struct{}, minimizeLatency bool) { +func StartFederationSyncController(kind string, adapterFactory federatedtypes.AdapterFactory, config *restclient.Config, stopChan <-chan struct{}, minimizeLatency bool, adapterSpecificArgs map[string]interface{}) { restclient.AddUserAgent(config, fmt.Sprintf("federation-%s-controller", kind)) client := federationclientset.NewForConfigOrDie(config) - adapter := adapterFactory(client, config) + adapter := adapterFactory(client, config, adapterSpecificArgs) controller := newFederationSyncController(client, adapter) if minimizeLatency { controller.minimizeLatency() diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index 3d29834e7f2..64561455503 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -331,6 +331,7 @@ host-network-sources host-pid-sources host-port-endpoints host-system-namespace +hpa-scale-forbidden-window http-check-frequency http-port ignore-daemonsets diff --git a/test/e2e_federation/crud.go b/test/e2e_federation/crud.go index ba8c850b00d..91d534a227b 100644 --- a/test/e2e_federation/crud.go +++ b/test/e2e_federation/crud.go @@ -45,7 +45,7 @@ var _ = framework.KubeDescribe("Federated types [Feature:Federation][Experimenta if clusterClients == nil { clusterClients = f.GetClusterClients() } - adapter := fedType.AdapterFactory(f.FederationClientset, f.FederationConfig) + adapter := fedType.AdapterFactory(f.FederationClientset, f.FederationConfig, nil) crudTester := fedframework.NewFederatedTypeCRUDTester(adapter, clusterClients) obj := adapter.NewTestObject(f.FederationNamespace.Name) crudTester.CheckLifecycle(obj) diff --git a/test/e2e_federation/upgrades/simple.go b/test/e2e_federation/upgrades/simple.go index 75854ed297d..6516ecd204f 100644 --- a/test/e2e_federation/upgrades/simple.go +++ b/test/e2e_federation/upgrades/simple.go @@ -38,7 +38,7 @@ type SimpleUpgradeTest struct { // Setup creates a resource and validates its propagation to member clusters func (ut *SimpleUpgradeTest) Setup(f *fedframework.Framework) { - adapter := ut.adapterFactory(f.FederationClientset, f.FederationConfig) + adapter := ut.adapterFactory(f.FederationClientset, f.FederationConfig, nil) clients := f.GetClusterClients() ut.crudTester = fedframework.NewFederatedTypeCRUDTester(adapter, clients) diff --git a/test/integration/federation/crud_test.go b/test/integration/federation/crud_test.go index 703eac9dd85..5c3fa8b0b24 100644 --- a/test/integration/federation/crud_test.go +++ b/test/integration/federation/crud_test.go @@ -104,7 +104,7 @@ func initCRUDTest(t *testing.T, fedFixture *framework.FederationFixture, adapter fixture := framework.NewControllerFixture(t, kind, adapterFactory, config) client := fedFixture.APIFixture.NewClient(fmt.Sprintf("crud-test-%s", kind)) - adapter := adapterFactory(client, config) + adapter := adapterFactory(client, config, nil) crudTester := framework.NewFederatedTypeCRUDTester(t, adapter, fedFixture.ClusterClients) diff --git a/test/integration/federation/framework/controller.go b/test/integration/federation/framework/controller.go index 4cfaa1ff9da..2c5e925b1dd 100644 --- a/test/integration/federation/framework/controller.go +++ b/test/integration/federation/framework/controller.go @@ -34,7 +34,7 @@ func NewControllerFixture(t *testing.T, kind string, adapterFactory federatedtyp f := &ControllerFixture{ stopChan: make(chan struct{}), } - synccontroller.StartFederationSyncController(kind, adapterFactory, config, f.stopChan, true) + synccontroller.StartFederationSyncController(kind, adapterFactory, config, f.stopChan, true, nil) return f } From a0cebcb559c5c0ab8a2e50b1ee11cc62f9ebb3a8 Mon Sep 17 00:00:00 2001 From: zhouhaibing089 Date: Mon, 9 Jan 2017 09:52:46 +0800 Subject: [PATCH 061/183] plugin/pkg/client/auth: add openstack auth provider --- .../src/k8s.io/client-go/Godeps/Godeps.json | 28 +++ .../client-go/plugin/pkg/client/auth/BUILD | 2 + .../plugin/pkg/client/auth/openstack/BUILD | 40 +++++ .../pkg/client/auth/openstack/openstack.go | 161 ++++++++++++++++++ .../client/auth/openstack/openstack_test.go | 116 +++++++++++++ .../plugin/pkg/client/auth/plugins.go | 1 + 6 files changed, 348 insertions(+) create mode 100644 staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD create mode 100644 staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go create mode 100644 staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go diff --git a/staging/src/k8s.io/client-go/Godeps/Godeps.json b/staging/src/k8s.io/client-go/Godeps/Godeps.json index 25134d60444..328e0a168e2 100644 --- a/staging/src/k8s.io/client-go/Godeps/Godeps.json +++ b/staging/src/k8s.io/client-go/Godeps/Godeps.json @@ -174,6 +174,34 @@ "ImportPath": "github.com/googleapis/gnostic/extensions", "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" }, + { + "ImportPath": "github.com/gophercloud/gophercloud", + "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack", + "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants", + "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens", + "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens", + "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/openstack/utils", + "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" + }, + { + "ImportPath": "github.com/gophercloud/gophercloud/pagination", + "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" + }, { "ImportPath": "github.com/gregjones/httpcache", "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD index b0c9df62f56..4ced574ba93 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD @@ -15,6 +15,7 @@ go_library( "//vendor/k8s.io/client-go/plugin/pkg/client/auth/azure:go_default_library", "//vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp:go_default_library", "//vendor/k8s.io/client-go/plugin/pkg/client/auth/oidc:go_default_library", + "//vendor/k8s.io/client-go/plugin/pkg/client/auth/openstack:go_default_library", ], ) @@ -32,6 +33,7 @@ filegroup( "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure:all-srcs", "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp:all-srcs", "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc:all-srcs", + "//staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack:all-srcs", ], tags = ["automanaged"], ) diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD new file mode 100644 index 00000000000..b7802cc6eb4 --- /dev/null +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD @@ -0,0 +1,40 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["openstack_test.go"], + library = ":go_default_library", + tags = ["automanaged"], +) + +go_library( + name = "go_default_library", + srcs = ["openstack.go"], + tags = ["automanaged"], + deps = [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/gophercloud/gophercloud/openstack:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go new file mode 100644 index 00000000000..9df94913122 --- /dev/null +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack.go @@ -0,0 +1,161 @@ +/* +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. +*/ + +package openstack + +import ( + "fmt" + "net/http" + "sync" + "time" + + "github.com/golang/glog" + "github.com/gophercloud/gophercloud/openstack" + + restclient "k8s.io/client-go/rest" +) + +func init() { + if err := restclient.RegisterAuthProviderPlugin("openstack", newOpenstackAuthProvider); err != nil { + glog.Fatalf("Failed to register openstack auth plugin: %s", err) + } +} + +// DefaultTTLDuration is the time before a token gets expired. +const DefaultTTLDuration = 10 * time.Minute + +// openstackAuthProvider is an authprovider for openstack. this provider reads +// the environment variables to determine the client identity, and generates a +// token which will be inserted into the request header later. +type openstackAuthProvider struct { + ttl time.Duration + + tokenGetter TokenGetter +} + +// TokenGetter returns a bearer token that can be inserted into request. +type TokenGetter interface { + Token() (string, error) +} + +type tokenGetter struct{} + +// Token creates a token by authenticate with keystone. +func (*tokenGetter) Token() (string, error) { + options, err := openstack.AuthOptionsFromEnv() + if err != nil { + return "", fmt.Errorf("failed to read openstack env vars: %s", err) + } + client, err := openstack.AuthenticatedClient(options) + if err != nil { + return "", fmt.Errorf("authentication failed: %s", err) + } + return client.TokenID, nil +} + +// cachedGetter caches a token until it gets expired, after the expiration, it will +// generate another token and cache it. +type cachedGetter struct { + mutex sync.Mutex + tokenGetter TokenGetter + + token string + born time.Time + ttl time.Duration +} + +// Token returns the current available token, create a new one if expired. +func (c *cachedGetter) Token() (string, error) { + c.mutex.Lock() + defer c.mutex.Unlock() + + var err error + // no token or exceeds the TTL + if c.token == "" || time.Now().Sub(c.born) > c.ttl { + c.token, err = c.tokenGetter.Token() + if err != nil { + return "", fmt.Errorf("failed to get token: %s", err) + } + c.born = time.Now() + } + return c.token, nil +} + +// tokenRoundTripper implements the RoundTripper interface: adding the bearer token +// into the request header. +type tokenRoundTripper struct { + http.RoundTripper + + tokenGetter TokenGetter +} + +// RoundTrip adds the bearer token into the request. +func (t *tokenRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + // if the authorization header already present, use it. + if req.Header.Get("Authorization") != "" { + return t.RoundTripper.RoundTrip(req) + } + + token, err := t.tokenGetter.Token() + if err == nil { + req.Header.Set("Authorization", "Bearer "+token) + } else { + glog.V(4).Infof("failed to get token: %s", err) + } + + return t.RoundTripper.RoundTrip(req) +} + +// newOpenstackAuthProvider creates an auth provider which works with openstack +// environment. +func newOpenstackAuthProvider(clusterAddress string, config map[string]string, persister restclient.AuthProviderConfigPersister) (restclient.AuthProvider, error) { + var ttlDuration time.Duration + var err error + + ttl, found := config["ttl"] + if !found { + ttlDuration = DefaultTTLDuration + // persist to config + config["ttl"] = ttlDuration.String() + if err = persister.Persist(config); err != nil { + return nil, fmt.Errorf("failed to persist config: %s", err) + } + } else { + ttlDuration, err = time.ParseDuration(ttl) + if err != nil { + return nil, fmt.Errorf("failed to parse ttl config: %s", err) + } + } + + // TODO: read/persist client configuration(OS_XXX env vars) in config + + return &openstackAuthProvider{ + ttl: ttlDuration, + tokenGetter: &tokenGetter{}, + }, nil +} + +func (oap *openstackAuthProvider) WrapTransport(rt http.RoundTripper) http.RoundTripper { + return &tokenRoundTripper{ + RoundTripper: rt, + tokenGetter: &cachedGetter{ + tokenGetter: oap.tokenGetter, + ttl: oap.ttl, + }, + } +} + +func (oap *openstackAuthProvider) Login() error { return nil } diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go new file mode 100644 index 00000000000..411bec70f7f --- /dev/null +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/openstack_test.go @@ -0,0 +1,116 @@ +/* +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. +*/ + +package openstack + +import ( + "math/rand" + "net/http" + "testing" + "time" +) + +// testTokenGetter is a simple random token getter. +type testTokenGetter struct{} + +const LetterBytes = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" + +func RandStringBytes(n int) string { + b := make([]byte, n) + for i := range b { + b[i] = LetterBytes[rand.Intn(len(LetterBytes))] + } + return string(b) +} + +func (*testTokenGetter) Token() (string, error) { + return RandStringBytes(32), nil +} + +// testRoundTripper is mocked roundtripper which responds with unauthorized when +// there is no authorization header, otherwise returns status ok. +type testRoundTripper struct{} + +func (trt *testRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + authHeader := req.Header.Get("Authorization") + if authHeader == "" || authHeader == "Bearer " { + return &http.Response{ + StatusCode: http.StatusUnauthorized, + }, nil + } + return &http.Response{StatusCode: http.StatusOK}, nil +} + +func TestOpenstackAuthProvider(t *testing.T) { + trt := &tokenRoundTripper{ + RoundTripper: &testRoundTripper{}, + } + + tests := []struct { + name string + ttl time.Duration + interval time.Duration + same bool + }{ + { + name: "normal", + ttl: 2 * time.Second, + interval: 1 * time.Second, + same: true, + }, + { + name: "expire", + ttl: 1 * time.Second, + interval: 2 * time.Second, + same: false, + }, + } + + for _, test := range tests { + trt.tokenGetter = &cachedGetter{ + tokenGetter: &testTokenGetter{}, + ttl: test.ttl, + } + + req, err := http.NewRequest(http.MethodPost, "https://test-api-server.com", nil) + if err != nil { + t.Errorf("failed to new request: %s", err) + } + trt.RoundTrip(req) + header := req.Header.Get("Authorization") + if header == "" { + t.Errorf("expect to see token in header, but is absent") + } + + time.Sleep(test.interval) + + req, err = http.NewRequest(http.MethodPost, "https://test-api-server.com", nil) + if err != nil { + t.Errorf("failed to new request: %s", err) + } + trt.RoundTrip(req) + newHeader := req.Header.Get("Authorization") + if newHeader == "" { + t.Errorf("expect to see token in header, but is absent") + } + + same := newHeader == header + if same != test.same { + t.Errorf("expect to get %t when compare header, but saw %t", test.same, same) + } + } + +} diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins.go b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins.go index 0328fbd8e7f..42085d7ae15 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins.go +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/plugins.go @@ -21,4 +21,5 @@ import ( _ "k8s.io/client-go/plugin/pkg/client/auth/azure" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" _ "k8s.io/client-go/plugin/pkg/client/auth/oidc" + _ "k8s.io/client-go/plugin/pkg/client/auth/openstack" ) From 1ff8e12a24278897837c83e9f3433154847ec2b5 Mon Sep 17 00:00:00 2001 From: FengyunPan Date: Sun, 6 Aug 2017 14:29:47 +0800 Subject: [PATCH 062/183] [OpenStack] Add more detail error message I get same simple error messages "Unable to initialize cinder client for region: RegionOne" from controller-manager, but I can not find the reason. We should add more detail message "err" into glog.Errorf. --- pkg/cloudprovider/providers/openstack/openstack_client.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/openstack_client.go b/pkg/cloudprovider/providers/openstack/openstack_client.go index 71b0078bfd0..916c4a09c56 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_client.go +++ b/pkg/cloudprovider/providers/openstack/openstack_client.go @@ -28,7 +28,7 @@ func (os *OpenStack) NewNetworkV2() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Warningf("Failed to find network v2 endpoint: %v", err) + glog.Warningf("Failed to find network v2 endpoint for region %s: %v", os.region, err) return nil, err } return network, nil @@ -39,7 +39,7 @@ func (os *OpenStack) NewComputeV2() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Warningf("Failed to find compute v2 endpoint: %v", err) + glog.Warningf("Failed to find compute v2 endpoint for region %s: %v", os.region, err) return nil, err } return compute, nil @@ -50,7 +50,7 @@ func (os *OpenStack) NewBlockStorageV1() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Errorf("Unable to initialize cinder v1 client for region: %s", os.region) + glog.Errorf("Unable to initialize cinder v1 client for region %s: %v", os.region, err) return nil, err } return storage, nil @@ -61,7 +61,7 @@ func (os *OpenStack) NewBlockStorageV2() (*gophercloud.ServiceClient, error) { Region: os.region, }) if err != nil { - glog.Errorf("Unable to initialize cinder v2 client for region: %s", os.region) + glog.Errorf("Unable to initialize cinder v2 client for region %s: %v", os.region, err) return nil, err } return storage, nil From b28a83a4cf779189d72a87e847441888e7918e5d Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Wed, 2 Aug 2017 19:41:33 +1000 Subject: [PATCH 063/183] Migrate to GetControllerOf from meta/v1 package --- pkg/controller/controller_ref_manager.go | 15 +-------------- pkg/controller/cronjob/BUILD | 2 -- .../cronjob/cronjob_controller_test.go | 3 +-- pkg/controller/cronjob/utils.go | 3 +-- pkg/controller/daemon/daemon_controller.go | 18 +++++++++--------- .../deployment/deployment_controller.go | 14 +++++++------- .../deployment/util/deployment_util.go | 6 +++--- pkg/controller/disruption/disruption.go | 12 ++++++------ pkg/controller/history/BUILD | 1 - pkg/controller/history/controller_history.go | 9 ++++----- .../history/controller_history_test.go | 10 +++++----- pkg/controller/job/job_controller.go | 8 ++++---- pkg/controller/replicaset/replica_set.go | 8 ++++---- .../replication/replication_controller.go | 8 ++++---- pkg/controller/statefulset/stateful_set.go | 10 +++++----- .../statefulset/stateful_set_utils_test.go | 3 +-- pkg/kubectl/BUILD | 1 - pkg/kubectl/cmd/BUILD | 1 - pkg/kubectl/cmd/drain.go | 3 +-- pkg/kubectl/history.go | 3 +-- pkg/printers/internalversion/BUILD | 1 - pkg/printers/internalversion/describe.go | 5 ++--- pkg/printers/internalversion/printers.go | 3 +-- test/e2e/apimachinery/BUILD | 1 - test/e2e/apimachinery/garbage_collector.go | 5 ++--- test/e2e/apps/daemon_set.go | 12 ++++++------ test/e2e/apps/deployment.go | 5 ++--- test/e2e/apps/job.go | 5 ++--- test/e2e/apps/statefulset.go | 9 ++++----- test/e2e/framework/util.go | 2 +- 30 files changed, 77 insertions(+), 109 deletions(-) diff --git a/pkg/controller/controller_ref_manager.go b/pkg/controller/controller_ref_manager.go index 64d6b8c0a62..564a67ca549 100644 --- a/pkg/controller/controller_ref_manager.go +++ b/pkg/controller/controller_ref_manager.go @@ -31,19 +31,6 @@ import ( utilerrors "k8s.io/apimachinery/pkg/util/errors" ) -// GetControllerOf returns the controllerRef if controllee has a controller, -// otherwise returns nil. -func GetControllerOf(controllee metav1.Object) *metav1.OwnerReference { - ownerRefs := controllee.GetOwnerReferences() - for i := range ownerRefs { - owner := &ownerRefs[i] - if owner.Controller != nil && *owner.Controller == true { - return owner - } - } - return nil -} - type BaseControllerRefManager struct { Controller metav1.Object Selector labels.Selector @@ -78,7 +65,7 @@ func (m *BaseControllerRefManager) CanAdopt() error { // // No reconciliation will be attempted if the controller is being deleted. func (m *BaseControllerRefManager) ClaimObject(obj metav1.Object, match func(metav1.Object) bool, adopt, release func(metav1.Object) error) (bool, error) { - controllerRef := GetControllerOf(obj) + controllerRef := metav1.GetControllerOf(obj) if controllerRef != nil { if controllerRef.UID != m.Controller.GetUID() { // Owned by someone else. Ignore. diff --git a/pkg/controller/cronjob/BUILD b/pkg/controller/cronjob/BUILD index b0b0d7dd770..06c9d0689b1 100644 --- a/pkg/controller/cronjob/BUILD +++ b/pkg/controller/cronjob/BUILD @@ -19,7 +19,6 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/controller:go_default_library", "//pkg/util/metrics:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/robfig/cron:go_default_library", @@ -54,7 +53,6 @@ go_test( deps = [ "//pkg/api/install:go_default_library", "//pkg/apis/batch/install:go_default_library", - "//pkg/controller:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/controller/cronjob/cronjob_controller_test.go b/pkg/controller/cronjob/cronjob_controller_test.go index 4e3a0feee2a..e5f22cfda06 100644 --- a/pkg/controller/cronjob/cronjob_controller_test.go +++ b/pkg/controller/cronjob/cronjob_controller_test.go @@ -32,7 +32,6 @@ import ( // For the cronjob controller to do conversions. _ "k8s.io/kubernetes/pkg/api/install" _ "k8s.io/kubernetes/pkg/apis/batch/install" - "k8s.io/kubernetes/pkg/controller" ) // schedule is hourly on the hour @@ -295,7 +294,7 @@ func TestSyncOne_RunOrNot(t *testing.T) { } for i := range jc.Jobs { job := &jc.Jobs[i] - controllerRef := controller.GetControllerOf(job) + controllerRef := metav1.GetControllerOf(job) if controllerRef == nil { t.Errorf("%s: expected job to have ControllerRef: %#v", name, job) } else { diff --git a/pkg/controller/cronjob/utils.go b/pkg/controller/cronjob/utils.go index ee5d75f4575..372d048b8ce 100644 --- a/pkg/controller/cronjob/utils.go +++ b/pkg/controller/cronjob/utils.go @@ -32,7 +32,6 @@ import ( "k8s.io/apimachinery/pkg/types" ref "k8s.io/client-go/tools/reference" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" ) // Utilities for dealing with Jobs and CronJobs and time. @@ -61,7 +60,7 @@ func deleteFromActiveList(sj *batchv2alpha1.CronJob, uid types.UID) { // getParentUIDFromJob extracts UID of job's parent and whether it was found func getParentUIDFromJob(j batchv1.Job) (types.UID, bool) { - controllerRef := controller.GetControllerOf(&j) + controllerRef := metav1.GetControllerOf(&j) if controllerRef == nil { return types.UID(""), false diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index 17a41364516..0fce881823f 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -320,7 +320,7 @@ func (dsc *DaemonSetsController) addHistory(obj interface{}) { } // If it has a ControllerRef, that's all that matters. - if controllerRef := controller.GetControllerOf(history); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(history); controllerRef != nil { ds := dsc.resolveControllerRef(history.Namespace, controllerRef) if ds == nil { return @@ -352,8 +352,8 @@ func (dsc *DaemonSetsController) updateHistory(old, cur interface{}) { return } - curControllerRef := controller.GetControllerOf(curHistory) - oldControllerRef := controller.GetControllerOf(oldHistory) + curControllerRef := metav1.GetControllerOf(curHistory) + oldControllerRef := metav1.GetControllerOf(oldHistory) controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) if controllerRefChanged && oldControllerRef != nil { // The ControllerRef was changed. Sync the old controller, if any. @@ -411,7 +411,7 @@ func (dsc *DaemonSetsController) deleteHistory(obj interface{}) { } } - controllerRef := controller.GetControllerOf(history) + controllerRef := metav1.GetControllerOf(history) if controllerRef == nil { // No controller should care about orphans being deleted. return @@ -435,7 +435,7 @@ func (dsc *DaemonSetsController) addPod(obj interface{}) { } // If it has a ControllerRef, that's all that matters. - if controllerRef := controller.GetControllerOf(pod); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil { ds := dsc.resolveControllerRef(pod.Namespace, controllerRef) if ds == nil { return @@ -478,8 +478,8 @@ func (dsc *DaemonSetsController) updatePod(old, cur interface{}) { changedToReady := !podutil.IsPodReady(oldPod) && podutil.IsPodReady(curPod) labelChanged := !reflect.DeepEqual(curPod.Labels, oldPod.Labels) - curControllerRef := controller.GetControllerOf(curPod) - oldControllerRef := controller.GetControllerOf(oldPod) + curControllerRef := metav1.GetControllerOf(curPod) + oldControllerRef := metav1.GetControllerOf(oldPod) controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) if controllerRefChanged && oldControllerRef != nil { // The ControllerRef was changed. Sync the old controller, if any. @@ -539,7 +539,7 @@ func (dsc *DaemonSetsController) deletePod(obj interface{}) { } } - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { // No controller should care about orphans being deleted. return @@ -1068,7 +1068,7 @@ func (dsc *DaemonSetsController) simulate(newPod *v1.Pod, node *v1.Node, ds *ext } // ignore pods that belong to the daemonset when taking into account whether // a daemonset should bind to a node. - if controllerRef := controller.GetControllerOf(pod); controllerRef != nil && controllerRef.UID == ds.UID { + if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil && controllerRef.UID == ds.UID { continue } pods = append(pods, pod) diff --git a/pkg/controller/deployment/deployment_controller.go b/pkg/controller/deployment/deployment_controller.go index 56eecf59564..da60d174b15 100644 --- a/pkg/controller/deployment/deployment_controller.go +++ b/pkg/controller/deployment/deployment_controller.go @@ -205,7 +205,7 @@ func (dc *DeploymentController) addReplicaSet(obj interface{}) { } // If it has a ControllerRef, that's all that matters. - if controllerRef := controller.GetControllerOf(rs); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(rs); controllerRef != nil { d := dc.resolveControllerRef(rs.Namespace, controllerRef) if d == nil { return @@ -260,8 +260,8 @@ func (dc *DeploymentController) updateReplicaSet(old, cur interface{}) { return } - curControllerRef := controller.GetControllerOf(curRS) - oldControllerRef := controller.GetControllerOf(oldRS) + curControllerRef := metav1.GetControllerOf(curRS) + oldControllerRef := metav1.GetControllerOf(oldRS) controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) if controllerRefChanged && oldControllerRef != nil { // The ControllerRef was changed. Sync the old controller, if any. @@ -319,7 +319,7 @@ func (dc *DeploymentController) deleteReplicaSet(obj interface{}) { } } - controllerRef := controller.GetControllerOf(rs) + controllerRef := metav1.GetControllerOf(rs) if controllerRef == nil { // No controller should care about orphans being deleted. return @@ -409,7 +409,7 @@ func (dc *DeploymentController) getDeploymentForPod(pod *v1.Pod) *extensions.Dep // Find the owning replica set var rs *extensions.ReplicaSet var err error - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { // No controller owns this Pod. return nil @@ -425,7 +425,7 @@ func (dc *DeploymentController) getDeploymentForPod(pod *v1.Pod) *extensions.Dep } // Now find the Deployment that owns that ReplicaSet. - controllerRef = controller.GetControllerOf(rs) + controllerRef = metav1.GetControllerOf(rs) if controllerRef == nil { return nil } @@ -542,7 +542,7 @@ func (dc *DeploymentController) getPodMapForDeployment(d *extensions.Deployment, for _, pod := range pods { // Do not ignore inactive Pods because Recreate Deployments need to verify that no // Pods from older versions are running before spinning up new Pods. - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { continue } diff --git a/pkg/controller/deployment/util/deployment_util.go b/pkg/controller/deployment/util/deployment_util.go index f994a8c94bd..caa108b8201 100644 --- a/pkg/controller/deployment/util/deployment_util.go +++ b/pkg/controller/deployment/util/deployment_util.go @@ -579,7 +579,7 @@ func ListReplicaSets(deployment *extensions.Deployment, getRSList RsListFunc) ([ // Only include those whose ControllerRef matches the Deployment. owned := make([]*extensions.ReplicaSet, 0, len(all)) for _, rs := range all { - controllerRef := controller.GetControllerOf(rs) + controllerRef := metav1.GetControllerOf(rs) if controllerRef != nil && controllerRef.UID == deployment.UID { owned = append(owned, rs) } @@ -603,7 +603,7 @@ func ListReplicaSetsInternal(deployment *internalextensions.Deployment, getRSLis // Only include those whose ControllerRef matches the Deployment. filtered := make([]*internalextensions.ReplicaSet, 0, len(all)) for _, rs := range all { - controllerRef := controller.GetControllerOf(rs) + controllerRef := metav1.GetControllerOf(rs) if controllerRef != nil && controllerRef.UID == deployment.UID { filtered = append(filtered, rs) } @@ -637,7 +637,7 @@ func ListPods(deployment *extensions.Deployment, rsList []*extensions.ReplicaSet owned := &v1.PodList{Items: make([]v1.Pod, 0, len(all.Items))} for i := range all.Items { pod := &all.Items[i] - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef != nil && rsMap[controllerRef.UID] { owned.Items = append(owned.Items, *pod) } diff --git a/pkg/controller/disruption/disruption.go b/pkg/controller/disruption/disruption.go index 3755641865c..0f27683d982 100644 --- a/pkg/controller/disruption/disruption.go +++ b/pkg/controller/disruption/disruption.go @@ -184,7 +184,7 @@ var ( // getPodReplicaSets finds replicasets which have no matching deployments. func (dc *DisruptionController) getPodReplicaSets(pod *v1.Pod) ([]controllerAndScale, error) { var casSlice []controllerAndScale - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { return nil, nil } @@ -199,7 +199,7 @@ func (dc *DisruptionController) getPodReplicaSets(pod *v1.Pod) ([]controllerAndS if rs.UID != controllerRef.UID { return nil, nil } - controllerRef = controller.GetControllerOf(rs) + controllerRef = metav1.GetControllerOf(rs) if controllerRef != nil && controllerRef.Kind == controllerKindDep.Kind { // Skip RS if it's controlled by a Deployment. return nil, nil @@ -211,7 +211,7 @@ func (dc *DisruptionController) getPodReplicaSets(pod *v1.Pod) ([]controllerAndS // getPodStatefulSet returns the statefulset managing the given pod. func (dc *DisruptionController) getPodStatefulSets(pod *v1.Pod) ([]controllerAndScale, error) { var casSlice []controllerAndScale - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { return nil, nil } @@ -234,7 +234,7 @@ func (dc *DisruptionController) getPodStatefulSets(pod *v1.Pod) ([]controllerAnd // getPodDeployments finds deployments for any replicasets which are being managed by deployments. func (dc *DisruptionController) getPodDeployments(pod *v1.Pod) ([]controllerAndScale, error) { var casSlice []controllerAndScale - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { return nil, nil } @@ -249,7 +249,7 @@ func (dc *DisruptionController) getPodDeployments(pod *v1.Pod) ([]controllerAndS if rs.UID != controllerRef.UID { return nil, nil } - controllerRef = controller.GetControllerOf(rs) + controllerRef = metav1.GetControllerOf(rs) if controllerRef == nil { return nil, nil } @@ -270,7 +270,7 @@ func (dc *DisruptionController) getPodDeployments(pod *v1.Pod) ([]controllerAndS func (dc *DisruptionController) getPodReplicationControllers(pod *v1.Pod) ([]controllerAndScale, error) { var casSlice []controllerAndScale - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { return nil, nil } diff --git a/pkg/controller/history/BUILD b/pkg/controller/history/BUILD index a451a15c3d9..1c820282efb 100644 --- a/pkg/controller/history/BUILD +++ b/pkg/controller/history/BUILD @@ -37,7 +37,6 @@ go_library( tags = ["automanaged"], deps = [ "//pkg/client/retry:go_default_library", - "//pkg/controller:go_default_library", "//pkg/util/hash:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/pkg/controller/history/controller_history.go b/pkg/controller/history/controller_history.go index f9d461fc6fc..da77be2c217 100644 --- a/pkg/controller/history/controller_history.go +++ b/pkg/controller/history/controller_history.go @@ -27,7 +27,6 @@ import ( appsinformers "k8s.io/client-go/informers/apps/v1beta1" clientset "k8s.io/client-go/kubernetes" appslisters "k8s.io/client-go/listers/apps/v1beta1" - "k8s.io/kubernetes/pkg/controller" hashutil "k8s.io/kubernetes/pkg/util/hash" apiequality "k8s.io/apimachinery/pkg/api/equality" @@ -225,7 +224,7 @@ func (rh *realHistory) ListControllerRevisions(parent metav1.Object, selector la } var owned []*apps.ControllerRevision for i := range history { - ref := controller.GetControllerOf(history[i]) + ref := metav1.GetControllerOf(history[i]) if ref == nil || ref.UID == parent.GetUID() { owned = append(owned, history[i]) } @@ -302,7 +301,7 @@ func (rh *realHistory) DeleteControllerRevision(revision *apps.ControllerRevisio func (rh *realHistory) AdoptControllerRevision(parent metav1.Object, parentKind schema.GroupVersionKind, revision *apps.ControllerRevision) (*apps.ControllerRevision, error) { // Return an error if the parent does not own the revision - if owner := controller.GetControllerOf(revision); owner != nil { + if owner := metav1.GetControllerOf(revision); owner != nil { return nil, fmt.Errorf("attempt to adopt revision owned by %v", owner) } // Use strategic merge patch to add an owner reference indicating a controller ref @@ -346,7 +345,7 @@ func (fh *fakeHistory) ListControllerRevisions(parent metav1.Object, selector la var owned []*apps.ControllerRevision for i := range history { - ref := controller.GetControllerOf(history[i]) + ref := metav1.GetControllerOf(history[i]) if ref == nil || ref.UID == parent.GetUID() { owned = append(owned, history[i]) } @@ -431,7 +430,7 @@ func (fh *fakeHistory) UpdateControllerRevision(revision *apps.ControllerRevisio func (fh *fakeHistory) AdoptControllerRevision(parent metav1.Object, parentKind schema.GroupVersionKind, revision *apps.ControllerRevision) (*apps.ControllerRevision, error) { blockOwnerDeletion := true isController := true - if owner := controller.GetControllerOf(revision); owner != nil { + if owner := metav1.GetControllerOf(revision); owner != nil { return nil, fmt.Errorf("attempt to adopt revision owned by %v", owner) } key, err := cache.DeletionHandlingMetaNamespaceKeyFunc(revision) diff --git a/pkg/controller/history/controller_history_test.go b/pkg/controller/history/controller_history_test.go index ce78a3db860..296fb761dc6 100644 --- a/pkg/controller/history/controller_history_test.go +++ b/pkg/controller/history/controller_history_test.go @@ -992,7 +992,7 @@ func TestRealHistory_AdoptControllerRevision(t *testing.T) { if !test.err && err != nil { t.Errorf("%s: %s", test.name, err) } - if !test.err && controller.GetControllerOf(adopted).UID != test.parent.GetUID() { + if !test.err && metav1.GetControllerOf(adopted).UID != test.parent.GetUID() { t.Errorf("%s: adoption failed", test.name) } if test.err && err == nil { @@ -1103,7 +1103,7 @@ func TestFakeHistory_AdoptControllerRevision(t *testing.T) { if !test.err && err != nil { t.Errorf("%s: %s", test.name, err) } - if !test.err && controller.GetControllerOf(adopted).UID != test.parent.GetUID() { + if !test.err && metav1.GetControllerOf(adopted).UID != test.parent.GetUID() { t.Errorf("%s: adoption failed", test.name) } if test.err && err == nil { @@ -1211,7 +1211,7 @@ func TestRealHistory_ReleaseControllerRevision(t *testing.T) { if found == nil { return true, nil, errors.NewNotFound(apps.Resource("controllerrevisions"), test.revision.Name) } - if foundParent := controller.GetControllerOf(test.revision); foundParent == nil || + if foundParent := metav1.GetControllerOf(test.revision); foundParent == nil || foundParent.UID != test.parent.GetUID() { return true, nil, errors.NewInvalid( test.revision.GroupVersionKind().GroupKind(), test.revision.Name, nil) @@ -1258,7 +1258,7 @@ func TestRealHistory_ReleaseControllerRevision(t *testing.T) { if adopted == nil { return } - if owner := controller.GetControllerOf(adopted); owner != nil && owner.UID == test.parent.GetUID() { + if owner := metav1.GetControllerOf(adopted); owner != nil && owner.UID == test.parent.GetUID() { t.Errorf("%s: release failed", test.name) } } @@ -1386,7 +1386,7 @@ func TestFakeHistory_ReleaseControllerRevision(t *testing.T) { if adopted == nil { return } - if owner := controller.GetControllerOf(adopted); owner != nil && owner.UID == test.parent.GetUID() { + if owner := metav1.GetControllerOf(adopted); owner != nil && owner.UID == test.parent.GetUID() { t.Errorf("%s: release failed", test.name) } } diff --git a/pkg/controller/job/job_controller.go b/pkg/controller/job/job_controller.go index 50e4f7ad151..45594b6bcc4 100644 --- a/pkg/controller/job/job_controller.go +++ b/pkg/controller/job/job_controller.go @@ -193,7 +193,7 @@ func (jm *JobController) addPod(obj interface{}) { } // If it has a ControllerRef, that's all that matters. - if controllerRef := controller.GetControllerOf(pod); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil { job := jm.resolveControllerRef(pod.Namespace, controllerRef) if job == nil { return @@ -238,8 +238,8 @@ func (jm *JobController) updatePod(old, cur interface{}) { labelChanged := !reflect.DeepEqual(curPod.Labels, oldPod.Labels) - curControllerRef := controller.GetControllerOf(curPod) - oldControllerRef := controller.GetControllerOf(oldPod) + curControllerRef := metav1.GetControllerOf(curPod) + oldControllerRef := metav1.GetControllerOf(oldPod) controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) if controllerRefChanged && oldControllerRef != nil { // The ControllerRef was changed. Sync the old controller, if any. @@ -289,7 +289,7 @@ func (jm *JobController) deletePod(obj interface{}) { } } - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { // No controller should care about orphans being deleted. return diff --git a/pkg/controller/replicaset/replica_set.go b/pkg/controller/replicaset/replica_set.go index 97b27b7040c..27d694b29fc 100644 --- a/pkg/controller/replicaset/replica_set.go +++ b/pkg/controller/replicaset/replica_set.go @@ -236,7 +236,7 @@ func (rsc *ReplicaSetController) addPod(obj interface{}) { } // If it has a ControllerRef, that's all that matters. - if controllerRef := controller.GetControllerOf(pod); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil { rs := rsc.resolveControllerRef(pod.Namespace, controllerRef) if rs == nil { return @@ -292,8 +292,8 @@ func (rsc *ReplicaSetController) updatePod(old, cur interface{}) { return } - curControllerRef := controller.GetControllerOf(curPod) - oldControllerRef := controller.GetControllerOf(oldPod) + curControllerRef := metav1.GetControllerOf(curPod) + oldControllerRef := metav1.GetControllerOf(oldPod) controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) if controllerRefChanged && oldControllerRef != nil { // The ControllerRef was changed. Sync the old controller, if any. @@ -362,7 +362,7 @@ func (rsc *ReplicaSetController) deletePod(obj interface{}) { } } - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { // No controller should care about orphans being deleted. return diff --git a/pkg/controller/replication/replication_controller.go b/pkg/controller/replication/replication_controller.go index c50fc790b0b..5f066382fb1 100644 --- a/pkg/controller/replication/replication_controller.go +++ b/pkg/controller/replication/replication_controller.go @@ -231,7 +231,7 @@ func (rm *ReplicationManager) addPod(obj interface{}) { } // If it has a ControllerRef, that's all that matters. - if controllerRef := controller.GetControllerOf(pod); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil { rc := rm.resolveControllerRef(pod.Namespace, controllerRef) if rc == nil { return @@ -287,8 +287,8 @@ func (rm *ReplicationManager) updatePod(old, cur interface{}) { return } - curControllerRef := controller.GetControllerOf(curPod) - oldControllerRef := controller.GetControllerOf(oldPod) + curControllerRef := metav1.GetControllerOf(curPod) + oldControllerRef := metav1.GetControllerOf(oldPod) controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) if controllerRefChanged && oldControllerRef != nil { // The ControllerRef was changed. Sync the old controller, if any. @@ -357,7 +357,7 @@ func (rm *ReplicationManager) deletePod(obj interface{}) { } } - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { // No controller should care about orphans being deleted. return diff --git a/pkg/controller/statefulset/stateful_set.go b/pkg/controller/statefulset/stateful_set.go index f9838ff9310..b34cbc6e673 100644 --- a/pkg/controller/statefulset/stateful_set.go +++ b/pkg/controller/statefulset/stateful_set.go @@ -170,7 +170,7 @@ func (ssc *StatefulSetController) addPod(obj interface{}) { } // If it has a ControllerRef, that's all that matters. - if controllerRef := controller.GetControllerOf(pod); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil { set := ssc.resolveControllerRef(pod.Namespace, controllerRef) if set == nil { return @@ -204,8 +204,8 @@ func (ssc *StatefulSetController) updatePod(old, cur interface{}) { labelChanged := !reflect.DeepEqual(curPod.Labels, oldPod.Labels) - curControllerRef := controller.GetControllerOf(curPod) - oldControllerRef := controller.GetControllerOf(oldPod) + curControllerRef := metav1.GetControllerOf(curPod) + oldControllerRef := metav1.GetControllerOf(oldPod) controllerRefChanged := !reflect.DeepEqual(curControllerRef, oldControllerRef) if controllerRefChanged && oldControllerRef != nil { // The ControllerRef was changed. Sync the old controller, if any. @@ -260,7 +260,7 @@ func (ssc *StatefulSetController) deletePod(obj interface{}) { } } - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { // No controller should care about orphans being deleted. return @@ -316,7 +316,7 @@ func (ssc *StatefulSetController) adoptOrphanRevisions(set *apps.StatefulSet) er } hasOrphans := false for i := range revisions { - if controller.GetControllerOf(revisions[i]) == nil { + if metav1.GetControllerOf(revisions[i]) == nil { hasOrphans = true break } diff --git a/pkg/controller/statefulset/stateful_set_utils_test.go b/pkg/controller/statefulset/stateful_set_utils_test.go index 58dfe05ecf6..92dd4c5a543 100644 --- a/pkg/controller/statefulset/stateful_set_utils_test.go +++ b/pkg/controller/statefulset/stateful_set_utils_test.go @@ -31,7 +31,6 @@ import ( apps "k8s.io/api/apps/v1beta1" "k8s.io/api/core/v1" podutil "k8s.io/kubernetes/pkg/api/v1/pod" - "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/controller/history" ) @@ -252,7 +251,7 @@ func TestOverlappingStatefulSets(t *testing.T) { func TestNewPodControllerRef(t *testing.T) { set := newStatefulSet(1) pod := newStatefulSetPod(set, 0) - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { t.Fatalf("No ControllerRef found on new pod") } diff --git a/pkg/kubectl/BUILD b/pkg/kubectl/BUILD index 52a40a1c946..f807020268d 100644 --- a/pkg/kubectl/BUILD +++ b/pkg/kubectl/BUILD @@ -135,7 +135,6 @@ go_library( "//pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion:go_default_library", "//pkg/client/retry:go_default_library", "//pkg/client/unversioned:go_default_library", - "//pkg/controller:go_default_library", "//pkg/controller/daemon:go_default_library", "//pkg/controller/deployment/util:go_default_library", "//pkg/credentialprovider:go_default_library", diff --git a/pkg/kubectl/cmd/BUILD b/pkg/kubectl/cmd/BUILD index 2f3d2196528..8f9e881e2e0 100644 --- a/pkg/kubectl/cmd/BUILD +++ b/pkg/kubectl/cmd/BUILD @@ -79,7 +79,6 @@ go_library( "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion:go_default_library", "//pkg/client/unversioned:go_default_library", - "//pkg/controller:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/auth:go_default_library", "//pkg/kubectl/cmd/config:go_default_library", diff --git a/pkg/kubectl/cmd/drain.go b/pkg/kubectl/cmd/drain.go index 8f6d511bc03..1f9d48c1ef1 100644 --- a/pkg/kubectl/cmd/drain.go +++ b/pkg/kubectl/cmd/drain.go @@ -42,7 +42,6 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/policy" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/pkg/kubectl/cmd/templates" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -286,7 +285,7 @@ func (o *DrainOptions) getController(namespace string, controllerRef *metav1.Own } func (o *DrainOptions) getPodController(pod api.Pod) (*metav1.OwnerReference, error) { - controllerRef := controller.GetControllerOf(&pod) + controllerRef := metav1.GetControllerOf(&pod) if controllerRef == nil { return nil, nil } diff --git a/pkg/kubectl/history.go b/pkg/kubectl/history.go index b1feece1511..4e3edb83ec7 100644 --- a/pkg/kubectl/history.go +++ b/pkg/kubectl/history.go @@ -37,7 +37,6 @@ import ( "k8s.io/kubernetes/pkg/apis/apps" "k8s.io/kubernetes/pkg/apis/extensions" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/controller" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" sliceutil "k8s.io/kubernetes/pkg/kubectl/util/slice" printersinternal "k8s.io/kubernetes/pkg/printers/internalversion" @@ -273,7 +272,7 @@ func controlledHistories(c externalclientset.Interface, namespace, name string) for i := range historyList.Items { history := historyList.Items[i] // Skip history that doesn't belong to the DaemonSet - if controllerRef := controller.GetControllerOf(&history); controllerRef == nil || controllerRef.UID != ds.UID { + if controllerRef := metav1.GetControllerOf(&history); controllerRef == nil || controllerRef.UID != ds.UID { continue } result = append(result, &history) diff --git a/pkg/printers/internalversion/BUILD b/pkg/printers/internalversion/BUILD index 965d2a4a23c..7c093aecf30 100644 --- a/pkg/printers/internalversion/BUILD +++ b/pkg/printers/internalversion/BUILD @@ -81,7 +81,6 @@ go_library( "//pkg/apis/storage/util:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", - "//pkg/controller:go_default_library", "//pkg/controller/deployment/util:go_default_library", "//pkg/fieldpath:go_default_library", "//pkg/printers:go_default_library", diff --git a/pkg/printers/internalversion/describe.go b/pkg/printers/internalversion/describe.go index d8b3ae409a8..6d6e2c6bc03 100644 --- a/pkg/printers/internalversion/describe.go +++ b/pkg/printers/internalversion/describe.go @@ -70,7 +70,6 @@ import ( storageutil "k8s.io/kubernetes/pkg/apis/storage/util" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion" - "k8s.io/kubernetes/pkg/controller" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" "k8s.io/kubernetes/pkg/fieldpath" "k8s.io/kubernetes/pkg/printers" @@ -675,7 +674,7 @@ func describePod(pod *api.Pod, events *api.EventList) (string, error) { } func printController(controllee metav1.Object) string { - if controllerRef := controller.GetControllerOf(controllee); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(controllee); controllerRef != nil { return fmt.Sprintf("%s/%s", controllerRef.Kind, controllerRef.Name) } return "" @@ -2923,7 +2922,7 @@ func getPodStatusForController(c coreclient.PodInterface, selector labels.Select return } for _, pod := range rcPods.Items { - controllerRef := controller.GetControllerOf(&pod) + controllerRef := metav1.GetControllerOf(&pod) // Skip pods that are orphans or owned by other controllers. if controllerRef == nil || controllerRef.UID != uid { continue diff --git a/pkg/printers/internalversion/printers.go b/pkg/printers/internalversion/printers.go index 596a8f8340d..32fbcce3beb 100644 --- a/pkg/printers/internalversion/printers.go +++ b/pkg/printers/internalversion/printers.go @@ -55,7 +55,6 @@ import ( "k8s.io/kubernetes/pkg/apis/rbac" "k8s.io/kubernetes/pkg/apis/storage" storageutil "k8s.io/kubernetes/pkg/apis/storage/util" - "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/printers" "k8s.io/kubernetes/pkg/util/node" ) @@ -1770,7 +1769,7 @@ func printControllerRevision(obj *apps.ControllerRevision, options printers.Prin Object: runtime.RawExtension{Object: obj}, } - controllerRef := controller.GetControllerOf(obj) + controllerRef := metav1.GetControllerOf(obj) controllerName := "" if controllerRef != nil { withKind := true diff --git a/test/e2e/apimachinery/BUILD b/test/e2e/apimachinery/BUILD index 31ef898ed15..2226d6f06b6 100644 --- a/test/e2e/apimachinery/BUILD +++ b/test/e2e/apimachinery/BUILD @@ -23,7 +23,6 @@ go_library( "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/client/retry:go_default_library", - "//pkg/controller:go_default_library", "//pkg/printers:go_default_library", "//pkg/util/version:go_default_library", "//test/e2e/apps:go_default_library", diff --git a/test/e2e/apimachinery/garbage_collector.go b/test/e2e/apimachinery/garbage_collector.go index d0d38b560bd..a797784d85e 100644 --- a/test/e2e/apimachinery/garbage_collector.go +++ b/test/e2e/apimachinery/garbage_collector.go @@ -21,7 +21,7 @@ import ( "time" "k8s.io/api/core/v1" - v1beta1 "k8s.io/api/extensions/v1beta1" + "k8s.io/api/extensions/v1beta1" apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" apiextensionsclientset "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset" apiextensionstestserver "k8s.io/apiextensions-apiserver/test/integration/testserver" @@ -33,7 +33,6 @@ import ( "k8s.io/apiserver/pkg/storage/names" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/metrics" @@ -498,7 +497,7 @@ var _ = SIGDescribe("Garbage collector", func() { framework.Failf("Failed to list ReplicaSet %v", err) } for _, replicaSet := range rs.Items { - if controller.GetControllerOf(&replicaSet.ObjectMeta) != nil { + if metav1.GetControllerOf(&replicaSet.ObjectMeta) != nil { framework.Failf("Found ReplicaSet with non nil ownerRef %v", replicaSet) } } diff --git a/test/e2e/apps/daemon_set.go b/test/e2e/apps/daemon_set.go index f2825ecf895..86422035b8a 100644 --- a/test/e2e/apps/daemon_set.go +++ b/test/e2e/apps/daemon_set.go @@ -630,7 +630,7 @@ func checkDaemonPodOnNodes(f *framework.Framework, ds *extensions.DaemonSet, nod nodesToPodCount := make(map[string]int) for _, pod := range pods { - if controllerRef := controller.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != ds.UID { + if controllerRef := metav1.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != ds.UID { continue } if pod.DeletionTimestamp != nil { @@ -726,7 +726,7 @@ func checkDaemonPodsImageAndAvailability(c clientset.Interface, ds *extensions.D unavailablePods := 0 allImagesUpdated := true for _, pod := range pods { - if controllerRef := controller.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != ds.UID { + if controllerRef := metav1.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != ds.UID { continue } podImage := pod.Spec.Containers[0].Image @@ -779,7 +779,7 @@ func checkDaemonSetPodsOrphaned(c clientset.Interface, ns string, label map[stri pods := listDaemonPods(c, ns, label) for _, pod := range pods.Items { // This pod is orphaned only when controller ref is cleared - if controllerRef := controller.GetControllerOf(&pod); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(&pod); controllerRef != nil { return false, nil } } @@ -792,7 +792,7 @@ func checkDaemonSetHistoryOrphaned(c clientset.Interface, ns string, label map[s histories := listDaemonHistories(c, ns, label) for _, history := range histories.Items { // This history is orphaned only when controller ref is cleared - if controllerRef := controller.GetControllerOf(&history); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(&history); controllerRef != nil { return false, nil } } @@ -805,7 +805,7 @@ func checkDaemonSetPodsAdopted(c clientset.Interface, ns string, dsUID types.UID pods := listDaemonPods(c, ns, label) for _, pod := range pods.Items { // This pod is adopted only when its controller ref is update - if controllerRef := controller.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != dsUID { + if controllerRef := metav1.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != dsUID { return false, nil } } @@ -818,7 +818,7 @@ func checkDaemonSetHistoryAdopted(c clientset.Interface, ns string, dsUID types. histories := listDaemonHistories(c, ns, label) for _, history := range histories.Items { // This history is adopted only when its controller ref is update - if controllerRef := controller.GetControllerOf(&history); controllerRef == nil || controllerRef.UID != dsUID { + if controllerRef := metav1.GetControllerOf(&history); controllerRef == nil || controllerRef.UID != dsUID { return false, nil } } diff --git a/test/e2e/apps/deployment.go b/test/e2e/apps/deployment.go index 6434fa0160d..2dcd4fbe7d1 100644 --- a/test/e2e/apps/deployment.go +++ b/test/e2e/apps/deployment.go @@ -38,7 +38,6 @@ import ( extensionsclient "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/pkg/controller" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" "k8s.io/kubernetes/pkg/kubectl" utilpointer "k8s.io/kubernetes/pkg/util/pointer" @@ -1380,7 +1379,7 @@ func checkDeploymentReplicaSetsControllerRef(c clientset.Interface, ns string, u rsList := listDeploymentReplicaSets(c, ns, label) for _, rs := range rsList.Items { // This rs is adopted only when its controller ref is update - if controllerRef := controller.GetControllerOf(&rs); controllerRef == nil || controllerRef.UID != uid { + if controllerRef := metav1.GetControllerOf(&rs); controllerRef == nil || controllerRef.UID != uid { return fmt.Errorf("ReplicaSet %s has unexpected controllerRef %v", rs.Name, controllerRef) } } @@ -1392,7 +1391,7 @@ func waitDeploymentReplicaSetsOrphaned(c clientset.Interface, ns string, label m rsList := listDeploymentReplicaSets(c, ns, label) for _, rs := range rsList.Items { // This rs is orphaned only when controller ref is cleared - if controllerRef := controller.GetControllerOf(&rs); controllerRef != nil { + if controllerRef := metav1.GetControllerOf(&rs); controllerRef != nil { return false, nil } } diff --git a/test/e2e/apps/job.go b/test/e2e/apps/job.go index a60b0f34b20..7180f9a7ad6 100644 --- a/test/e2e/apps/job.go +++ b/test/e2e/apps/job.go @@ -24,7 +24,6 @@ import ( "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" batchinternal "k8s.io/kubernetes/pkg/apis/batch" - "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/pkg/kubectl" "k8s.io/kubernetes/test/e2e/framework" @@ -135,7 +134,7 @@ var _ = SIGDescribe("Job", func() { By("Checking that the Job readopts the Pod") Expect(framework.WaitForPodCondition(f.ClientSet, pod.Namespace, pod.Name, "adopted", framework.JobTimeout, func(pod *v1.Pod) (bool, error) { - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { return false, nil } @@ -154,7 +153,7 @@ var _ = SIGDescribe("Job", func() { By("Checking that the Job releases the Pod") Expect(framework.WaitForPodCondition(f.ClientSet, pod.Namespace, pod.Name, "released", framework.JobTimeout, func(pod *v1.Pod) (bool, error) { - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef != nil { return false, nil } diff --git a/test/e2e/apps/statefulset.go b/test/e2e/apps/statefulset.go index bced0081214..766f484249d 100644 --- a/test/e2e/apps/statefulset.go +++ b/test/e2e/apps/statefulset.go @@ -31,7 +31,6 @@ import ( "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/test/e2e/framework" ) @@ -145,7 +144,7 @@ var _ = SIGDescribe("StatefulSet", func() { By("Checking that stateful set pods are created with ControllerRef") pod := pods.Items[0] - controllerRef := controller.GetControllerOf(&pod) + controllerRef := metav1.GetControllerOf(&pod) Expect(controllerRef).ToNot(BeNil()) Expect(controllerRef.Kind).To(Equal(ss.Kind)) Expect(controllerRef.Name).To(Equal(ss.Name)) @@ -159,7 +158,7 @@ var _ = SIGDescribe("StatefulSet", func() { By("Checking that the stateful set readopts the pod") Expect(framework.WaitForPodCondition(c, pod.Namespace, pod.Name, "adopted", framework.StatefulSetTimeout, func(pod *v1.Pod) (bool, error) { - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { return false, nil } @@ -179,7 +178,7 @@ var _ = SIGDescribe("StatefulSet", func() { By("Checking that the stateful set releases the pod") Expect(framework.WaitForPodCondition(c, pod.Namespace, pod.Name, "released", framework.StatefulSetTimeout, func(pod *v1.Pod) (bool, error) { - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef != nil { return false, nil } @@ -196,7 +195,7 @@ var _ = SIGDescribe("StatefulSet", func() { By("Checking that the stateful set readopts the pod") Expect(framework.WaitForPodCondition(c, pod.Namespace, pod.Name, "adopted", framework.StatefulSetTimeout, func(pod *v1.Pod) (bool, error) { - controllerRef := controller.GetControllerOf(pod) + controllerRef := metav1.GetControllerOf(pod) if controllerRef == nil { return false, nil } diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 1a9130414b0..d622a75167f 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -653,7 +653,7 @@ func WaitForPodsRunningReady(c clientset.Interface, ns string, minPods, allowedN notReady++ badPods = append(badPods, pod) default: - if controller.GetControllerOf(&pod) == nil { + if metav1.GetControllerOf(&pod) == nil { Logf("Pod %s is Failed, but it's not controlled by a controller", pod.ObjectMeta.Name) badPods = append(badPods, pod) } From 042b5642b9926267e470fb0a2c0dd2df19eb6c6a Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Wed, 2 Aug 2017 20:05:37 +1000 Subject: [PATCH 064/183] Migrate to NewControllerRef from meta/v1 package --- pkg/controller/controller_ref_manager_test.go | 16 +--------------- pkg/controller/cronjob/utils.go | 15 +-------------- pkg/controller/daemon/daemon_controller.go | 16 +--------------- pkg/controller/daemon/daemon_controller_test.go | 4 ++-- pkg/controller/daemon/update.go | 2 +- .../deployment/deployment_controller_test.go | 4 ++-- pkg/controller/deployment/sync.go | 16 +--------------- pkg/controller/job/job_controller.go | 2 +- pkg/controller/job/job_controller_test.go | 6 +++--- pkg/controller/job/utils.go | 14 -------------- pkg/controller/statefulset/stateful_set_utils.go | 16 +--------------- 11 files changed, 14 insertions(+), 97 deletions(-) diff --git a/pkg/controller/controller_ref_manager_test.go b/pkg/controller/controller_ref_manager_test.go index 368385f771b..1af203af8d8 100644 --- a/pkg/controller/controller_ref_manager_test.go +++ b/pkg/controller/controller_ref_manager_test.go @@ -36,20 +36,6 @@ var ( controllerUID = "123" ) -func newControllerRef(controller metav1.Object) *metav1.OwnerReference { - var controllerKind = v1beta1.SchemeGroupVersion.WithKind("Fake") - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: "Fake", - UID: controller.GetUID(), - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - func newPod(podName string, label map[string]string, owner metav1.Object) *v1.Pod { pod := &v1.Pod{ ObjectMeta: metav1.ObjectMeta{ @@ -66,7 +52,7 @@ func newPod(podName string, label map[string]string, owner metav1.Object) *v1.Po }, } if owner != nil { - pod.OwnerReferences = []metav1.OwnerReference{*newControllerRef(owner)} + pod.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(owner, v1beta1.SchemeGroupVersion.WithKind("Fake"))} } return pod } diff --git a/pkg/controller/cronjob/utils.go b/pkg/controller/cronjob/utils.go index 372d048b8ce..dbdd8dd96c8 100644 --- a/pkg/controller/cronjob/utils.go +++ b/pkg/controller/cronjob/utils.go @@ -169,19 +169,6 @@ func getRecentUnmetScheduleTimes(sj batchv2alpha1.CronJob, now time.Time) ([]tim return starts, nil } -func newControllerRef(sj *batchv2alpha1.CronJob) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: sj.Name, - UID: sj.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - // XXX unit test this // getJobFromTemplate makes a Job from a CronJob @@ -204,7 +191,7 @@ func getJobFromTemplate(sj *batchv2alpha1.CronJob, scheduledTime time.Time) (*ba Labels: labels, Annotations: annotations, Name: name, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(sj)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(sj, controllerKind)}, }, } if err := api.Scheme.Convert(&sj.Spec.JobTemplate.Spec, &job.Spec, nil); err != nil { diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index 0fce881823f..d98087d3e10 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -816,7 +816,7 @@ func (dsc *DaemonSetsController) syncNodes(ds *extensions.DaemonSet, podsToDelet for i := 0; i < createDiff; i++ { go func(ix int) { defer createWait.Done() - err := dsc.podControl.CreatePodsOnNode(nodesNeedingDaemonPods[ix], ds.Namespace, &template, ds, newControllerRef(ds)) + err := dsc.podControl.CreatePodsOnNode(nodesNeedingDaemonPods[ix], ds.Namespace, &template, ds, metav1.NewControllerRef(ds, controllerKind)) if err != nil && errors.IsTimeout(err) { // Pod is created but its initialization has timed out. // If the initialization is successful eventually, the @@ -1237,20 +1237,6 @@ func NodeConditionPredicates(nodeInfo *schedulercache.NodeInfo) (bool, []algorit return len(reasons) == 0, reasons } -// newControllerRef creates a ControllerRef pointing to the given DaemonSet. -func newControllerRef(ds *extensions.DaemonSet) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: ds.Name, - UID: ds.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - // byCreationTimestamp sorts a list by creation timestamp, using their names as a tie breaker. type byCreationTimestamp []*extensions.DaemonSet diff --git a/pkg/controller/daemon/daemon_controller_test.go b/pkg/controller/daemon/daemon_controller_test.go index 921cd6fc3dd..13ff88db883 100644 --- a/pkg/controller/daemon/daemon_controller_test.go +++ b/pkg/controller/daemon/daemon_controller_test.go @@ -201,7 +201,7 @@ func newPod(podName string, nodeName string, label map[string]string, ds *extens } pod.Name = names.SimpleNameGenerator.GenerateName(podName) if ds != nil { - pod.OwnerReferences = []metav1.OwnerReference{*newControllerRef(ds)} + pod.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(ds, controllerKind)} } return pod } @@ -1808,7 +1808,7 @@ func TestUpdatePodChangeControllerRef(t *testing.T) { pod := newPod("pod1-", "node-0", simpleDaemonSetLabel, ds1) prev := *pod - prev.OwnerReferences = []metav1.OwnerReference{*newControllerRef(ds2)} + prev.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(ds2, controllerKind)} bumpResourceVersion(pod) manager.updatePod(&prev, pod) if got, want := manager.queue.Len(), 2; got != want { diff --git a/pkg/controller/daemon/update.go b/pkg/controller/daemon/update.go index 6c765d0da69..72486594f0e 100644 --- a/pkg/controller/daemon/update.go +++ b/pkg/controller/daemon/update.go @@ -339,7 +339,7 @@ func (dsc *DaemonSetsController) snapshot(ds *extensions.DaemonSet, revision int Namespace: ds.Namespace, Labels: labelsutil.CloneAndAddLabel(ds.Spec.Template.Labels, extensions.DefaultDaemonSetUniqueLabelKey, hash), Annotations: ds.Annotations, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(ds)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(ds, controllerKind)}, }, Data: runtime.RawExtension{Raw: patch}, Revision: revision, diff --git a/pkg/controller/deployment/deployment_controller_test.go b/pkg/controller/deployment/deployment_controller_test.go index 9298e53e6d6..6fbc0de699f 100644 --- a/pkg/controller/deployment/deployment_controller_test.go +++ b/pkg/controller/deployment/deployment_controller_test.go @@ -126,7 +126,7 @@ func newReplicaSet(d *extensions.Deployment, name string, replicas int) *extensi UID: uuid.NewUUID(), Namespace: metav1.NamespaceDefault, Labels: d.Spec.Selector.MatchLabels, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(d)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(d, controllerKind)}, }, Spec: extensions.ReplicaSetSpec{ Selector: d.Spec.Selector, @@ -810,7 +810,7 @@ func TestUpdateReplicaSetChangeControllerRef(t *testing.T) { // Change ControllerRef and expect both old and new to queue. prev := *rs - prev.OwnerReferences = []metav1.OwnerReference{*newControllerRef(d2)} + prev.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(d2, controllerKind)} next := *rs bumpResourceVersion(&next) dc.updateReplicaSet(&prev, &next) diff --git a/pkg/controller/deployment/sync.go b/pkg/controller/deployment/sync.go index cb0e993ec62..a1a85a5a8f7 100644 --- a/pkg/controller/deployment/sync.go +++ b/pkg/controller/deployment/sync.go @@ -306,7 +306,7 @@ func (dc *DeploymentController) getNewReplicaSet(d *extensions.Deployment, rsLis // Make the name deterministic, to ensure idempotence Name: d.Name + "-" + podTemplateSpecHash, Namespace: d.Namespace, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(d)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(d, controllerKind)}, }, Spec: extensions.ReplicaSetSpec{ Replicas: new(int32), @@ -651,17 +651,3 @@ func (dc *DeploymentController) isScalingEvent(d *extensions.Deployment, rsList } return false, nil } - -// newControllerRef returns a ControllerRef pointing to the deployment. -func newControllerRef(d *extensions.Deployment) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: d.Name, - UID: d.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} diff --git a/pkg/controller/job/job_controller.go b/pkg/controller/job/job_controller.go index 45594b6bcc4..6ed99e36d63 100644 --- a/pkg/controller/job/job_controller.go +++ b/pkg/controller/job/job_controller.go @@ -624,7 +624,7 @@ func (jm *JobController) manageJob(activePods []*v1.Pod, succeeded int32, job *b for i := int32(0); i < diff; i++ { go func() { defer wait.Done() - err := jm.podControl.CreatePodsWithControllerRef(job.Namespace, &job.Spec.Template, job, newControllerRef(job)) + err := jm.podControl.CreatePodsWithControllerRef(job.Namespace, &job.Spec.Template, job, metav1.NewControllerRef(job, controllerKind)) if err != nil && errors.IsTimeout(err) { // Pod is created but its initialization has timed out. // If the initialization is successful eventually, the diff --git a/pkg/controller/job/job_controller_test.go b/pkg/controller/job/job_controller_test.go index 9559ff502e3..51e909a9364 100644 --- a/pkg/controller/job/job_controller_test.go +++ b/pkg/controller/job/job_controller_test.go @@ -109,7 +109,7 @@ func newPodList(count int32, status v1.PodPhase, job *batch.Job) []v1.Pod { Name: fmt.Sprintf("pod-%v", rand.String(10)), Labels: job.Spec.Selector.MatchLabels, Namespace: job.Namespace, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(job)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(job, controllerKind)}, }, Status: v1.PodStatus{Phase: status}, } @@ -634,7 +634,7 @@ func newPod(name string, job *batch.Job) *v1.Pod { Name: name, Labels: job.Spec.Selector.MatchLabels, Namespace: job.Namespace, - OwnerReferences: []metav1.OwnerReference{*newControllerRef(job)}, + OwnerReferences: []metav1.OwnerReference{*metav1.NewControllerRef(job, controllerKind)}, }, } } @@ -971,7 +971,7 @@ func TestUpdatePodChangeControllerRef(t *testing.T) { // Changed ControllerRef. Expect both old and new to queue. prev := *pod1 - prev.OwnerReferences = []metav1.OwnerReference{*newControllerRef(job2)} + prev.OwnerReferences = []metav1.OwnerReference{*metav1.NewControllerRef(job2, controllerKind)} bumpResourceVersion(pod1) jm.updatePod(&prev, pod1) if got, want := jm.queue.Len(), 2; got != want { diff --git a/pkg/controller/job/utils.go b/pkg/controller/job/utils.go index 438a5e01041..25c3d08c908 100644 --- a/pkg/controller/job/utils.go +++ b/pkg/controller/job/utils.go @@ -19,7 +19,6 @@ package job import ( batch "k8s.io/api/batch/v1" "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) func IsJobFinished(j *batch.Job) bool { @@ -30,16 +29,3 @@ func IsJobFinished(j *batch.Job) bool { } return false } - -func newControllerRef(j *batch.Job) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: j.Name, - UID: j.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} diff --git a/pkg/controller/statefulset/stateful_set_utils.go b/pkg/controller/statefulset/stateful_set_utils.go index 3c4fcb9a2c8..0102fb1502a 100644 --- a/pkg/controller/statefulset/stateful_set_utils.go +++ b/pkg/controller/statefulset/stateful_set_utils.go @@ -219,20 +219,6 @@ func allowsBurst(set *apps.StatefulSet) bool { return set.Spec.PodManagementPolicy == apps.ParallelPodManagement } -// newControllerRef returns an ControllerRef pointing to a given StatefulSet. -func newControllerRef(set *apps.StatefulSet) *metav1.OwnerReference { - blockOwnerDeletion := true - isController := true - return &metav1.OwnerReference{ - APIVersion: controllerKind.GroupVersion().String(), - Kind: controllerKind.Kind, - Name: set.Name, - UID: set.UID, - BlockOwnerDeletion: &blockOwnerDeletion, - Controller: &isController, - } -} - // setPodRevision sets the revision of Pod to revision by adding the StatefulSetRevisionLabel func setPodRevision(pod *v1.Pod, revision string) { if pod.Labels == nil { @@ -252,7 +238,7 @@ func getPodRevision(pod *v1.Pod) string { // newStatefulSetPod returns a new Pod conforming to the set's Spec with an identity generated from ordinal. func newStatefulSetPod(set *apps.StatefulSet, ordinal int) *v1.Pod { - pod, _ := controller.GetPodFromTemplate(&set.Spec.Template, set, newControllerRef(set)) + pod, _ := controller.GetPodFromTemplate(&set.Spec.Template, set, metav1.NewControllerRef(set, controllerKind)) pod.Name = getPodName(set, ordinal) updateIdentity(set, pod) updateStorage(set, pod) From 32b78aebf25fb1aba0eb2704a93e24b61f5ce49f Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Wed, 2 Aug 2017 20:36:58 +1000 Subject: [PATCH 065/183] Migrate to IsControlledBy from meta/v1 package --- pkg/controller/daemon/daemon_controller.go | 2 +- pkg/controller/deployment/util/deployment_util.go | 6 ++---- pkg/controller/history/controller_history_test.go | 11 +++++------ pkg/kubectl/history.go | 7 +++---- test/e2e/apps/daemon_set.go | 4 ++-- 5 files changed, 13 insertions(+), 17 deletions(-) diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index d98087d3e10..ce2d90ef417 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -1068,7 +1068,7 @@ func (dsc *DaemonSetsController) simulate(newPod *v1.Pod, node *v1.Node, ds *ext } // ignore pods that belong to the daemonset when taking into account whether // a daemonset should bind to a node. - if controllerRef := metav1.GetControllerOf(pod); controllerRef != nil && controllerRef.UID == ds.UID { + if metav1.IsControlledBy(pod, ds) { continue } pods = append(pods, pod) diff --git a/pkg/controller/deployment/util/deployment_util.go b/pkg/controller/deployment/util/deployment_util.go index caa108b8201..45419f48ddf 100644 --- a/pkg/controller/deployment/util/deployment_util.go +++ b/pkg/controller/deployment/util/deployment_util.go @@ -579,8 +579,7 @@ func ListReplicaSets(deployment *extensions.Deployment, getRSList RsListFunc) ([ // Only include those whose ControllerRef matches the Deployment. owned := make([]*extensions.ReplicaSet, 0, len(all)) for _, rs := range all { - controllerRef := metav1.GetControllerOf(rs) - if controllerRef != nil && controllerRef.UID == deployment.UID { + if metav1.IsControlledBy(rs, deployment) { owned = append(owned, rs) } } @@ -603,8 +602,7 @@ func ListReplicaSetsInternal(deployment *internalextensions.Deployment, getRSLis // Only include those whose ControllerRef matches the Deployment. filtered := make([]*internalextensions.ReplicaSet, 0, len(all)) for _, rs := range all { - controllerRef := metav1.GetControllerOf(rs) - if controllerRef != nil && controllerRef.UID == deployment.UID { + if metav1.IsControlledBy(rs, deployment) { filtered = append(filtered, rs) } } diff --git a/pkg/controller/history/controller_history_test.go b/pkg/controller/history/controller_history_test.go index 296fb761dc6..ab5845eb342 100644 --- a/pkg/controller/history/controller_history_test.go +++ b/pkg/controller/history/controller_history_test.go @@ -992,7 +992,7 @@ func TestRealHistory_AdoptControllerRevision(t *testing.T) { if !test.err && err != nil { t.Errorf("%s: %s", test.name, err) } - if !test.err && metav1.GetControllerOf(adopted).UID != test.parent.GetUID() { + if !test.err && !metav1.IsControlledBy(adopted, test.parent) { t.Errorf("%s: adoption failed", test.name) } if test.err && err == nil { @@ -1103,7 +1103,7 @@ func TestFakeHistory_AdoptControllerRevision(t *testing.T) { if !test.err && err != nil { t.Errorf("%s: %s", test.name, err) } - if !test.err && metav1.GetControllerOf(adopted).UID != test.parent.GetUID() { + if !test.err && !metav1.IsControlledBy(adopted, test.parent) { t.Errorf("%s: adoption failed", test.name) } if test.err && err == nil { @@ -1211,8 +1211,7 @@ func TestRealHistory_ReleaseControllerRevision(t *testing.T) { if found == nil { return true, nil, errors.NewNotFound(apps.Resource("controllerrevisions"), test.revision.Name) } - if foundParent := metav1.GetControllerOf(test.revision); foundParent == nil || - foundParent.UID != test.parent.GetUID() { + if !metav1.IsControlledBy(test.revision, test.parent) { return true, nil, errors.NewInvalid( test.revision.GroupVersionKind().GroupKind(), test.revision.Name, nil) } @@ -1258,7 +1257,7 @@ func TestRealHistory_ReleaseControllerRevision(t *testing.T) { if adopted == nil { return } - if owner := metav1.GetControllerOf(adopted); owner != nil && owner.UID == test.parent.GetUID() { + if metav1.IsControlledBy(adopted, test.parent) { t.Errorf("%s: release failed", test.name) } } @@ -1386,7 +1385,7 @@ func TestFakeHistory_ReleaseControllerRevision(t *testing.T) { if adopted == nil { return } - if owner := metav1.GetControllerOf(adopted); owner != nil && owner.UID == test.parent.GetUID() { + if metav1.IsControlledBy(adopted, test.parent) { t.Errorf("%s: release failed", test.name) } } diff --git a/pkg/kubectl/history.go b/pkg/kubectl/history.go index 4e3edb83ec7..625bbda8ac0 100644 --- a/pkg/kubectl/history.go +++ b/pkg/kubectl/history.go @@ -271,11 +271,10 @@ func controlledHistories(c externalclientset.Interface, namespace, name string) } for i := range historyList.Items { history := historyList.Items[i] - // Skip history that doesn't belong to the DaemonSet - if controllerRef := metav1.GetControllerOf(&history); controllerRef == nil || controllerRef.UID != ds.UID { - continue + // Only add history that belongs to the DaemonSet + if metav1.IsControlledBy(&history, ds) { + result = append(result, &history) } - result = append(result, &history) } return ds, result, nil } diff --git a/test/e2e/apps/daemon_set.go b/test/e2e/apps/daemon_set.go index 86422035b8a..17a00686f6b 100644 --- a/test/e2e/apps/daemon_set.go +++ b/test/e2e/apps/daemon_set.go @@ -630,7 +630,7 @@ func checkDaemonPodOnNodes(f *framework.Framework, ds *extensions.DaemonSet, nod nodesToPodCount := make(map[string]int) for _, pod := range pods { - if controllerRef := metav1.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != ds.UID { + if !metav1.IsControlledBy(&pod, ds) { continue } if pod.DeletionTimestamp != nil { @@ -726,7 +726,7 @@ func checkDaemonPodsImageAndAvailability(c clientset.Interface, ds *extensions.D unavailablePods := 0 allImagesUpdated := true for _, pod := range pods { - if controllerRef := metav1.GetControllerOf(&pod); controllerRef == nil || controllerRef.UID != ds.UID { + if !metav1.IsControlledBy(&pod, ds) { continue } podImage := pod.Spec.Containers[0].Image From 7c506c6a1496a2a85b235897d1a1547501d6bea1 Mon Sep 17 00:00:00 2001 From: Maciej Borsz Date: Mon, 7 Aug 2017 10:25:42 +0200 Subject: [PATCH 066/183] Modify e2e.go to arbitrarily pick one of zones we have nodes in for multizone tests. --- test/e2e/e2e.go | 14 +++++++++++++- test/e2e/framework/test_context.go | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 6400fc544ff..8876bcd7718 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -77,7 +77,8 @@ func setupProviderConfig() error { if !framework.TestContext.CloudConfig.MultiZone { managedZones = []string{zone} } - cloudConfig.Provider, err = gcecloud.CreateGCECloud(framework.TestContext.CloudConfig.ApiEndpoint, + + gceCloud, err := gcecloud.CreateGCECloud(framework.TestContext.CloudConfig.ApiEndpoint, framework.TestContext.CloudConfig.ProjectID, region, zone, managedZones, "" /* networkUrl */, "" /* subnetworkUrl */, nil, /* nodeTags */ "" /* nodeInstancePerfix */, nil /* tokenSource */, false /* useMetadataServer */) @@ -85,6 +86,17 @@ func setupProviderConfig() error { return fmt.Errorf("Error building GCE/GKE provider: %v", err) } + cloudConfig.Provider = gceCloud + + if cloudConfig.Zone == "" && framework.TestContext.CloudConfig.MultiZone { + zones, err := gceCloud.GetAllZones() + if err != nil { + return err + } + + cloudConfig.Zone, _ = zones.PopAny() + } + case "aws": if cloudConfig.Zone == "" { return fmt.Errorf("gce-zone must be specified for AWS") diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 0883eb128ae..309a372b63c 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -144,7 +144,7 @@ type NodeTestContextType struct { type CloudConfig struct { ApiEndpoint string ProjectID string - Zone string + Zone string // for multizone tests, arbitrarily chosen zone Region string MultiZone bool Cluster string From 2eda19da7be9b8e0fad294bf902684f23a795dd2 Mon Sep 17 00:00:00 2001 From: Shiyang Wang Date: Wed, 19 Jul 2017 10:15:21 +0800 Subject: [PATCH 067/183] Fix NotFound errors do not line up with API endpoint's group version --- federation/registry/cluster/etcd/etcd.go | 12 +- .../storage/storage.go | 6 +- .../storage/storage.go | 6 +- .../controllerrevision/storage/storage.go | 12 +- .../apps/statefulset/storage/storage.go | 12 +- .../storage/storage.go | 12 +- pkg/registry/batch/cronjob/storage/storage.go | 17 ++- pkg/registry/batch/job/storage/storage.go | 12 +- .../certificates/storage/storage.go | 12 +- .../core/configmap/storage/storage.go | 12 +- pkg/registry/core/endpoint/storage/storage.go | 12 +- pkg/registry/core/event/storage/storage.go | 4 +- .../core/limitrange/storage/storage.go | 12 +- .../core/namespace/storage/storage.go | 12 +- pkg/registry/core/node/storage/storage.go | 12 +- .../core/persistentvolume/storage/storage.go | 12 +- .../persistentvolumeclaim/storage/storage.go | 12 +- pkg/registry/core/pod/storage/storage.go | 12 +- .../core/podtemplate/storage/storage.go | 12 +- .../replicationcontroller/storage/storage.go | 12 +- .../core/resourcequota/storage/storage.go | 12 +- pkg/registry/core/secret/storage/storage.go | 12 +- pkg/registry/core/service/storage/storage.go | 12 +- .../core/serviceaccount/storage/storage.go | 12 +- .../extensions/daemonset/storage/storage.go | 12 +- .../extensions/deployment/storage/storage.go | 12 +- .../extensions/ingress/storage/storage.go | 12 +- .../networkpolicy/storage/storage.go | 12 +- .../podsecuritypolicy/storage/storage.go | 12 +- .../extensions/replicaset/storage/storage.go | 12 +- .../networkpolicy/storage/storage.go | 12 +- .../poddisruptionbudget/storage/storage.go | 12 +- .../rbac/clusterrole/storage/storage.go | 12 +- .../clusterrolebinding/storage/storage.go | 12 +- pkg/registry/rbac/role/storage/storage.go | 12 +- .../rbac/rolebinding/storage/storage.go | 12 +- .../priorityclass/storage/storage.go | 12 +- .../settings/podpreset/storage/storage.go | 12 +- .../storage/storageclass/storage/storage.go | 12 +- .../pkg/registry/customresource/etcd.go | 4 +- .../registry/customresourcedefinition/etcd.go | 10 +- .../pkg/registry/generic/registry/store.go | 96 +++++++++------- .../registry/generic/registry/store_test.go | 107 ++++++++++++++++-- .../pkg/registry/apiservice/etcd/etcd.go | 10 +- .../pkg/registry/wardle/fischer/etcd.go | 10 +- .../pkg/registry/wardle/flunder/etcd.go | 10 +- 46 files changed, 403 insertions(+), 297 deletions(-) diff --git a/federation/registry/cluster/etcd/etcd.go b/federation/registry/cluster/etcd/etcd.go index 180ce8ca934..8f8c3be28c1 100644 --- a/federation/registry/cluster/etcd/etcd.go +++ b/federation/registry/cluster/etcd/etcd.go @@ -48,12 +48,12 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo // NewREST returns a RESTStorage object that will work against clusters. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &federation.Cluster{} }, - NewListFunc: func() runtime.Object { return &federation.ClusterList{} }, - PredicateFunc: cluster.MatchCluster, - QualifiedResource: federation.Resource("clusters"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusters"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &federation.Cluster{} }, + NewListFunc: func() runtime.Object { return &federation.ClusterList{} }, + PredicateFunc: cluster.MatchCluster, + DefaultQualifiedResource: federation.Resource("clusters"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusters"), CreateStrategy: cluster.Strategy, UpdateStrategy: cluster.Strategy, diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go index 0aefa3b4521..8e7d570bcb0 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go @@ -40,9 +40,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*admissionregistration.ExternalAdmissionHookConfiguration).Name, nil }, - PredicateFunc: externaladmissionhookconfiguration.MatchExternalAdmissionHookConfiguration, - QualifiedResource: admissionregistration.Resource("externaladmissionhookconfigurations"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("externaladmissionhookconfigurations"), + PredicateFunc: externaladmissionhookconfiguration.MatchExternalAdmissionHookConfiguration, + DefaultQualifiedResource: admissionregistration.Resource("externaladmissionhookconfigurations"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("externaladmissionhookconfigurations"), CreateStrategy: externaladmissionhookconfiguration.Strategy, UpdateStrategy: externaladmissionhookconfiguration.Strategy, diff --git a/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go b/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go index e7351fc9869..becea1ae56b 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go +++ b/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go @@ -40,9 +40,9 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*admissionregistration.InitializerConfiguration).Name, nil }, - PredicateFunc: initializerconfiguration.MatchInitializerConfiguration, - QualifiedResource: admissionregistration.Resource("initializerconfigurations"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("initializerconfigurations"), + PredicateFunc: initializerconfiguration.MatchInitializerConfiguration, + DefaultQualifiedResource: admissionregistration.Resource("initializerconfigurations"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("initializerconfigurations"), CreateStrategy: initializerconfiguration.Strategy, UpdateStrategy: initializerconfiguration.Strategy, diff --git a/pkg/registry/apps/controllerrevision/storage/storage.go b/pkg/registry/apps/controllerrevision/storage/storage.go index d994c338f27..556d5ef1be5 100644 --- a/pkg/registry/apps/controllerrevision/storage/storage.go +++ b/pkg/registry/apps/controllerrevision/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work with ControllerRevision objects. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &apps.ControllerRevision{} }, - NewListFunc: func() runtime.Object { return &apps.ControllerRevisionList{} }, - PredicateFunc: controllerrevision.MatchControllerRevision, - QualifiedResource: apps.Resource("controllerrevisions"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("controllerrevisions"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &apps.ControllerRevision{} }, + NewListFunc: func() runtime.Object { return &apps.ControllerRevisionList{} }, + PredicateFunc: controllerrevision.MatchControllerRevision, + DefaultQualifiedResource: apps.Resource("controllerrevisions"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("controllerrevisions"), CreateStrategy: controllerrevision.Strategy, UpdateStrategy: controllerrevision.Strategy, diff --git a/pkg/registry/apps/statefulset/storage/storage.go b/pkg/registry/apps/statefulset/storage/storage.go index fc6d417c7fe..d40f1d14c5e 100644 --- a/pkg/registry/apps/statefulset/storage/storage.go +++ b/pkg/registry/apps/statefulset/storage/storage.go @@ -37,12 +37,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against replication controllers. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} }, - NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} }, - PredicateFunc: statefulset.MatchStatefulSet, - QualifiedResource: appsapi.Resource("statefulsets"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("statefulsets"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} }, + NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} }, + PredicateFunc: statefulset.MatchStatefulSet, + DefaultQualifiedResource: appsapi.Resource("statefulsets"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("statefulsets"), CreateStrategy: statefulset.Strategy, UpdateStrategy: statefulset.Strategy, diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go index 33280d82233..3421192cd07 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go @@ -36,12 +36,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against horizontal pod autoscalers. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} }, - NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} }, - PredicateFunc: horizontalpodautoscaler.MatchAutoscaler, - QualifiedResource: autoscaling.Resource("horizontalpodautoscalers"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("horizontalpodautoscalers"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} }, + NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} }, + PredicateFunc: horizontalpodautoscaler.MatchAutoscaler, + DefaultQualifiedResource: autoscaling.Resource("horizontalpodautoscalers"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("horizontalpodautoscalers"), CreateStrategy: horizontalpodautoscaler.Strategy, UpdateStrategy: horizontalpodautoscaler.Strategy, diff --git a/pkg/registry/batch/cronjob/storage/storage.go b/pkg/registry/batch/cronjob/storage/storage.go index f4ada18bc6b..dbff7059b24 100644 --- a/pkg/registry/batch/cronjob/storage/storage.go +++ b/pkg/registry/batch/cronjob/storage/storage.go @@ -37,15 +37,14 @@ type REST struct { // NewREST returns a RESTStorage object that will work against CronJobs. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &batch.CronJob{} }, - NewListFunc: func() runtime.Object { return &batch.CronJobList{} }, - QualifiedResource: batch.Resource("cronjobs"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("cronjobs"), - - CreateStrategy: cronjob.Strategy, - UpdateStrategy: cronjob.Strategy, - DeleteStrategy: cronjob.Strategy, + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &batch.CronJob{} }, + NewListFunc: func() runtime.Object { return &batch.CronJobList{} }, + DefaultQualifiedResource: batch.Resource("cronjobs"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("cronjobs"), + CreateStrategy: cronjob.Strategy, + UpdateStrategy: cronjob.Strategy, + DeleteStrategy: cronjob.Strategy, } options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { diff --git a/pkg/registry/batch/job/storage/storage.go b/pkg/registry/batch/job/storage/storage.go index 912c86e4827..aa52d251023 100644 --- a/pkg/registry/batch/job/storage/storage.go +++ b/pkg/registry/batch/job/storage/storage.go @@ -52,12 +52,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against Jobs. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &batch.Job{} }, - NewListFunc: func() runtime.Object { return &batch.JobList{} }, - PredicateFunc: job.MatchJob, - QualifiedResource: batch.Resource("jobs"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("jobs"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &batch.Job{} }, + NewListFunc: func() runtime.Object { return &batch.JobList{} }, + PredicateFunc: job.MatchJob, + DefaultQualifiedResource: batch.Resource("jobs"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("jobs"), CreateStrategy: job.Strategy, UpdateStrategy: job.Strategy, diff --git a/pkg/registry/certificates/certificates/storage/storage.go b/pkg/registry/certificates/certificates/storage/storage.go index f8f719a6642..2da56ee106f 100644 --- a/pkg/registry/certificates/certificates/storage/storage.go +++ b/pkg/registry/certificates/certificates/storage/storage.go @@ -36,12 +36,12 @@ type REST struct { // NewREST returns a registry which will store CertificateSigningRequest in the given helper func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *ApprovalREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} }, - NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} }, - PredicateFunc: csrregistry.Matcher, - QualifiedResource: certificates.Resource("certificatesigningrequests"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("certificatesigningrequests"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} }, + NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} }, + PredicateFunc: csrregistry.Matcher, + DefaultQualifiedResource: certificates.Resource("certificatesigningrequests"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("certificatesigningrequests"), CreateStrategy: csrregistry.Strategy, UpdateStrategy: csrregistry.Strategy, diff --git a/pkg/registry/core/configmap/storage/storage.go b/pkg/registry/core/configmap/storage/storage.go index 9931f24ff07..8aed341b7c0 100644 --- a/pkg/registry/core/configmap/storage/storage.go +++ b/pkg/registry/core/configmap/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work with ConfigMap objects. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.ConfigMap{} }, - NewListFunc: func() runtime.Object { return &api.ConfigMapList{} }, - PredicateFunc: configmap.MatchConfigMap, - QualifiedResource: api.Resource("configmaps"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("configmaps"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.ConfigMap{} }, + NewListFunc: func() runtime.Object { return &api.ConfigMapList{} }, + PredicateFunc: configmap.MatchConfigMap, + DefaultQualifiedResource: api.Resource("configmaps"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("configmaps"), CreateStrategy: configmap.Strategy, UpdateStrategy: configmap.Strategy, diff --git a/pkg/registry/core/endpoint/storage/storage.go b/pkg/registry/core/endpoint/storage/storage.go index f440066ac44..44abfc437a8 100644 --- a/pkg/registry/core/endpoint/storage/storage.go +++ b/pkg/registry/core/endpoint/storage/storage.go @@ -33,12 +33,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against endpoints. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.Endpoints{} }, - NewListFunc: func() runtime.Object { return &api.EndpointsList{} }, - PredicateFunc: endpoint.MatchEndpoints, - QualifiedResource: api.Resource("endpoints"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("endpoints"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.Endpoints{} }, + NewListFunc: func() runtime.Object { return &api.EndpointsList{} }, + PredicateFunc: endpoint.MatchEndpoints, + DefaultQualifiedResource: api.Resource("endpoints"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("endpoints"), CreateStrategy: endpoint.Strategy, UpdateStrategy: endpoint.Strategy, diff --git a/pkg/registry/core/event/storage/storage.go b/pkg/registry/core/event/storage/storage.go index 125f36de5c6..abc030be1fb 100644 --- a/pkg/registry/core/event/storage/storage.go +++ b/pkg/registry/core/event/storage/storage.go @@ -50,8 +50,8 @@ func NewREST(optsGetter generic.RESTOptionsGetter, ttl uint64) *REST { TTLFunc: func(runtime.Object, uint64, bool) (uint64, error) { return ttl, nil }, - QualifiedResource: resource, - WatchCacheSize: cachesize.GetWatchCacheSizeByResource(resource.Resource), + DefaultQualifiedResource: resource, + WatchCacheSize: cachesize.GetWatchCacheSizeByResource(resource.Resource), CreateStrategy: event.Strategy, UpdateStrategy: event.Strategy, diff --git a/pkg/registry/core/limitrange/storage/storage.go b/pkg/registry/core/limitrange/storage/storage.go index bfe7e91a3b7..ba29960e362 100644 --- a/pkg/registry/core/limitrange/storage/storage.go +++ b/pkg/registry/core/limitrange/storage/storage.go @@ -33,12 +33,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against horizontal pod autoscalers. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.LimitRange{} }, - NewListFunc: func() runtime.Object { return &api.LimitRangeList{} }, - PredicateFunc: limitrange.MatchLimitRange, - QualifiedResource: api.Resource("limitranges"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("limitranges"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.LimitRange{} }, + NewListFunc: func() runtime.Object { return &api.LimitRangeList{} }, + PredicateFunc: limitrange.MatchLimitRange, + DefaultQualifiedResource: api.Resource("limitranges"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("limitranges"), CreateStrategy: limitrange.Strategy, UpdateStrategy: limitrange.Strategy, diff --git a/pkg/registry/core/namespace/storage/storage.go b/pkg/registry/core/namespace/storage/storage.go index f1c7ffc2df2..0b3edf132d5 100644 --- a/pkg/registry/core/namespace/storage/storage.go +++ b/pkg/registry/core/namespace/storage/storage.go @@ -54,12 +54,12 @@ type FinalizeREST struct { // NewREST returns a RESTStorage object that will work against namespaces. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *FinalizeREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.Namespace{} }, - NewListFunc: func() runtime.Object { return &api.NamespaceList{} }, - PredicateFunc: namespace.MatchNamespace, - QualifiedResource: api.Resource("namespaces"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("namespaces"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.Namespace{} }, + NewListFunc: func() runtime.Object { return &api.NamespaceList{} }, + PredicateFunc: namespace.MatchNamespace, + DefaultQualifiedResource: api.Resource("namespaces"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("namespaces"), CreateStrategy: namespace.Strategy, UpdateStrategy: namespace.Strategy, diff --git a/pkg/registry/core/node/storage/storage.go b/pkg/registry/core/node/storage/storage.go index 32aab18e7be..fb9e6c2fcdb 100644 --- a/pkg/registry/core/node/storage/storage.go +++ b/pkg/registry/core/node/storage/storage.go @@ -73,12 +73,12 @@ func (r *StatusREST) Update(ctx genericapirequest.Context, name string, objInfo // NewStorage returns a NodeStorage object that will work against nodes. func NewStorage(optsGetter generic.RESTOptionsGetter, kubeletClientConfig client.KubeletClientConfig, proxyTransport http.RoundTripper) (*NodeStorage, error) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.Node{} }, - NewListFunc: func() runtime.Object { return &api.NodeList{} }, - PredicateFunc: node.MatchNode, - QualifiedResource: api.Resource("nodes"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("nodes"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.Node{} }, + NewListFunc: func() runtime.Object { return &api.NodeList{} }, + PredicateFunc: node.MatchNode, + DefaultQualifiedResource: api.Resource("nodes"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("nodes"), CreateStrategy: node.Strategy, UpdateStrategy: node.Strategy, diff --git a/pkg/registry/core/persistentvolume/storage/storage.go b/pkg/registry/core/persistentvolume/storage/storage.go index 8bc34e578ba..7c69f7eb812 100644 --- a/pkg/registry/core/persistentvolume/storage/storage.go +++ b/pkg/registry/core/persistentvolume/storage/storage.go @@ -35,12 +35,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against persistent volumes. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.PersistentVolume{} }, - NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} }, - PredicateFunc: persistentvolume.MatchPersistentVolumes, - QualifiedResource: api.Resource("persistentvolumes"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumes"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.PersistentVolume{} }, + NewListFunc: func() runtime.Object { return &api.PersistentVolumeList{} }, + PredicateFunc: persistentvolume.MatchPersistentVolumes, + DefaultQualifiedResource: api.Resource("persistentvolumes"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumes"), CreateStrategy: persistentvolume.Strategy, UpdateStrategy: persistentvolume.Strategy, diff --git a/pkg/registry/core/persistentvolumeclaim/storage/storage.go b/pkg/registry/core/persistentvolumeclaim/storage/storage.go index 79c23de7f0d..d5295dbf631 100644 --- a/pkg/registry/core/persistentvolumeclaim/storage/storage.go +++ b/pkg/registry/core/persistentvolumeclaim/storage/storage.go @@ -35,12 +35,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against persistent volume claims. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} }, - NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} }, - PredicateFunc: persistentvolumeclaim.MatchPersistentVolumeClaim, - QualifiedResource: api.Resource("persistentvolumeclaims"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumeclaims"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.PersistentVolumeClaim{} }, + NewListFunc: func() runtime.Object { return &api.PersistentVolumeClaimList{} }, + PredicateFunc: persistentvolumeclaim.MatchPersistentVolumeClaim, + DefaultQualifiedResource: api.Resource("persistentvolumeclaims"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("persistentvolumeclaims"), CreateStrategy: persistentvolumeclaim.Strategy, UpdateStrategy: persistentvolumeclaim.Strategy, diff --git a/pkg/registry/core/pod/storage/storage.go b/pkg/registry/core/pod/storage/storage.go index ca58827d832..83b20d588ef 100644 --- a/pkg/registry/core/pod/storage/storage.go +++ b/pkg/registry/core/pod/storage/storage.go @@ -66,12 +66,12 @@ type REST struct { func NewStorage(optsGetter generic.RESTOptionsGetter, k client.ConnectionInfoGetter, proxyTransport http.RoundTripper, podDisruptionBudgetClient policyclient.PodDisruptionBudgetsGetter) PodStorage { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.Pod{} }, - NewListFunc: func() runtime.Object { return &api.PodList{} }, - PredicateFunc: pod.MatchPod, - QualifiedResource: api.Resource("pods"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("pods"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.Pod{} }, + NewListFunc: func() runtime.Object { return &api.PodList{} }, + PredicateFunc: pod.MatchPod, + DefaultQualifiedResource: api.Resource("pods"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("pods"), CreateStrategy: pod.Strategy, UpdateStrategy: pod.Strategy, diff --git a/pkg/registry/core/podtemplate/storage/storage.go b/pkg/registry/core/podtemplate/storage/storage.go index 0a9e67c1ffc..13d1d436594 100644 --- a/pkg/registry/core/podtemplate/storage/storage.go +++ b/pkg/registry/core/podtemplate/storage/storage.go @@ -32,12 +32,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against pod templates. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.PodTemplate{} }, - NewListFunc: func() runtime.Object { return &api.PodTemplateList{} }, - PredicateFunc: podtemplate.MatchPodTemplate, - QualifiedResource: api.Resource("podtemplates"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podtemplates"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.PodTemplate{} }, + NewListFunc: func() runtime.Object { return &api.PodTemplateList{} }, + PredicateFunc: podtemplate.MatchPodTemplate, + DefaultQualifiedResource: api.Resource("podtemplates"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podtemplates"), CreateStrategy: podtemplate.Strategy, UpdateStrategy: podtemplate.Strategy, diff --git a/pkg/registry/core/replicationcontroller/storage/storage.go b/pkg/registry/core/replicationcontroller/storage/storage.go index 54b84f4246a..1d0bb1e76e9 100644 --- a/pkg/registry/core/replicationcontroller/storage/storage.go +++ b/pkg/registry/core/replicationcontroller/storage/storage.go @@ -61,12 +61,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against replication controllers. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.ReplicationController{} }, - NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} }, - PredicateFunc: replicationcontroller.MatchController, - QualifiedResource: api.Resource("replicationcontrollers"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicationcontrollers"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.ReplicationController{} }, + NewListFunc: func() runtime.Object { return &api.ReplicationControllerList{} }, + PredicateFunc: replicationcontroller.MatchController, + DefaultQualifiedResource: api.Resource("replicationcontrollers"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicationcontrollers"), CreateStrategy: replicationcontroller.Strategy, UpdateStrategy: replicationcontroller.Strategy, diff --git a/pkg/registry/core/resourcequota/storage/storage.go b/pkg/registry/core/resourcequota/storage/storage.go index a54df9271ae..90638de8a6f 100644 --- a/pkg/registry/core/resourcequota/storage/storage.go +++ b/pkg/registry/core/resourcequota/storage/storage.go @@ -35,12 +35,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against resource quotas. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.ResourceQuota{} }, - NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} }, - PredicateFunc: resourcequota.MatchResourceQuota, - QualifiedResource: api.Resource("resourcequotas"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("resourcequotas"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.ResourceQuota{} }, + NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} }, + PredicateFunc: resourcequota.MatchResourceQuota, + DefaultQualifiedResource: api.Resource("resourcequotas"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("resourcequotas"), CreateStrategy: resourcequota.Strategy, UpdateStrategy: resourcequota.Strategy, diff --git a/pkg/registry/core/secret/storage/storage.go b/pkg/registry/core/secret/storage/storage.go index 7bb7b268752..8dc5592eed0 100644 --- a/pkg/registry/core/secret/storage/storage.go +++ b/pkg/registry/core/secret/storage/storage.go @@ -32,12 +32,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against secrets. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.Secret{} }, - NewListFunc: func() runtime.Object { return &api.SecretList{} }, - PredicateFunc: secret.Matcher, - QualifiedResource: api.Resource("secrets"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("secrets"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.Secret{} }, + NewListFunc: func() runtime.Object { return &api.SecretList{} }, + PredicateFunc: secret.Matcher, + DefaultQualifiedResource: api.Resource("secrets"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("secrets"), CreateStrategy: secret.Strategy, UpdateStrategy: secret.Strategy, diff --git a/pkg/registry/core/service/storage/storage.go b/pkg/registry/core/service/storage/storage.go index 4551ba39715..6192b2842c8 100644 --- a/pkg/registry/core/service/storage/storage.go +++ b/pkg/registry/core/service/storage/storage.go @@ -35,12 +35,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against services. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.Service{} }, - NewListFunc: func() runtime.Object { return &api.ServiceList{} }, - PredicateFunc: service.MatchServices, - QualifiedResource: api.Resource("services"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("services"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.Service{} }, + NewListFunc: func() runtime.Object { return &api.ServiceList{} }, + PredicateFunc: service.MatchServices, + DefaultQualifiedResource: api.Resource("services"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("services"), CreateStrategy: service.Strategy, UpdateStrategy: service.Strategy, diff --git a/pkg/registry/core/serviceaccount/storage/storage.go b/pkg/registry/core/serviceaccount/storage/storage.go index 7fb488aea79..3c9b1d26e94 100644 --- a/pkg/registry/core/serviceaccount/storage/storage.go +++ b/pkg/registry/core/serviceaccount/storage/storage.go @@ -33,12 +33,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against service accounts. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &api.ServiceAccount{} }, - NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} }, - PredicateFunc: serviceaccount.Matcher, - QualifiedResource: api.Resource("serviceaccounts"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("serviceaccounts"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &api.ServiceAccount{} }, + NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} }, + PredicateFunc: serviceaccount.Matcher, + DefaultQualifiedResource: api.Resource("serviceaccounts"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("serviceaccounts"), CreateStrategy: serviceaccount.Strategy, UpdateStrategy: serviceaccount.Strategy, diff --git a/pkg/registry/extensions/daemonset/storage/storage.go b/pkg/registry/extensions/daemonset/storage/storage.go index 233b4d61e12..86e7e45c2fb 100644 --- a/pkg/registry/extensions/daemonset/storage/storage.go +++ b/pkg/registry/extensions/daemonset/storage/storage.go @@ -37,12 +37,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against DaemonSets. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &extensions.DaemonSet{} }, - NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} }, - PredicateFunc: daemonset.MatchDaemonSet, - QualifiedResource: extensions.Resource("daemonsets"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("daemonsets"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &extensions.DaemonSet{} }, + NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} }, + PredicateFunc: daemonset.MatchDaemonSet, + DefaultQualifiedResource: extensions.Resource("daemonsets"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("daemonsets"), CreateStrategy: daemonset.Strategy, UpdateStrategy: daemonset.Strategy, diff --git a/pkg/registry/extensions/deployment/storage/storage.go b/pkg/registry/extensions/deployment/storage/storage.go index 55fa90b6cbc..d747ecad8af 100644 --- a/pkg/registry/extensions/deployment/storage/storage.go +++ b/pkg/registry/extensions/deployment/storage/storage.go @@ -63,12 +63,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against deployments. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *RollbackREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &extensions.Deployment{} }, - NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} }, - PredicateFunc: deployment.MatchDeployment, - QualifiedResource: extensions.Resource("deployments"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("deployments"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &extensions.Deployment{} }, + NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} }, + PredicateFunc: deployment.MatchDeployment, + DefaultQualifiedResource: extensions.Resource("deployments"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("deployments"), CreateStrategy: deployment.Strategy, UpdateStrategy: deployment.Strategy, diff --git a/pkg/registry/extensions/ingress/storage/storage.go b/pkg/registry/extensions/ingress/storage/storage.go index e4e8601ef3b..8b891a6209a 100644 --- a/pkg/registry/extensions/ingress/storage/storage.go +++ b/pkg/registry/extensions/ingress/storage/storage.go @@ -37,12 +37,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against replication controllers. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &extensions.Ingress{} }, - NewListFunc: func() runtime.Object { return &extensions.IngressList{} }, - PredicateFunc: ingress.MatchIngress, - QualifiedResource: extensions.Resource("ingresses"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("ingresses"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &extensions.Ingress{} }, + NewListFunc: func() runtime.Object { return &extensions.IngressList{} }, + PredicateFunc: ingress.MatchIngress, + DefaultQualifiedResource: extensions.Resource("ingresses"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("ingresses"), CreateStrategy: ingress.Strategy, UpdateStrategy: ingress.Strategy, diff --git a/pkg/registry/extensions/networkpolicy/storage/storage.go b/pkg/registry/extensions/networkpolicy/storage/storage.go index 5f4ebaa31b2..8bb412a4a0d 100644 --- a/pkg/registry/extensions/networkpolicy/storage/storage.go +++ b/pkg/registry/extensions/networkpolicy/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against network policies. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} }, - NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} }, - PredicateFunc: networkpolicy.MatchNetworkPolicy, - QualifiedResource: extensionsapi.Resource("networkpolicies"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} }, + NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} }, + PredicateFunc: networkpolicy.MatchNetworkPolicy, + DefaultQualifiedResource: extensionsapi.Resource("networkpolicies"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"), CreateStrategy: networkpolicy.Strategy, UpdateStrategy: networkpolicy.Strategy, diff --git a/pkg/registry/extensions/podsecuritypolicy/storage/storage.go b/pkg/registry/extensions/podsecuritypolicy/storage/storage.go index 7ba363699f7..eff8d11b76e 100644 --- a/pkg/registry/extensions/podsecuritypolicy/storage/storage.go +++ b/pkg/registry/extensions/podsecuritypolicy/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against PodSecurityPolicy objects. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} }, - NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} }, - PredicateFunc: podsecuritypolicy.MatchPodSecurityPolicy, - QualifiedResource: extensions.Resource("podsecuritypolicies"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podsecuritypolicies"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} }, + NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} }, + PredicateFunc: podsecuritypolicy.MatchPodSecurityPolicy, + DefaultQualifiedResource: extensions.Resource("podsecuritypolicies"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podsecuritypolicies"), CreateStrategy: podsecuritypolicy.Strategy, UpdateStrategy: podsecuritypolicy.Strategy, diff --git a/pkg/registry/extensions/replicaset/storage/storage.go b/pkg/registry/extensions/replicaset/storage/storage.go index 78e0ecc6567..b10c455ae91 100644 --- a/pkg/registry/extensions/replicaset/storage/storage.go +++ b/pkg/registry/extensions/replicaset/storage/storage.go @@ -60,12 +60,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against ReplicaSet. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} }, - NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} }, - PredicateFunc: replicaset.MatchReplicaSet, - QualifiedResource: extensions.Resource("replicasets"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicasets"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &extensions.ReplicaSet{} }, + NewListFunc: func() runtime.Object { return &extensions.ReplicaSetList{} }, + PredicateFunc: replicaset.MatchReplicaSet, + DefaultQualifiedResource: extensions.Resource("replicasets"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("replicasets"), CreateStrategy: replicaset.Strategy, UpdateStrategy: replicaset.Strategy, diff --git a/pkg/registry/networking/networkpolicy/storage/storage.go b/pkg/registry/networking/networkpolicy/storage/storage.go index 4779813a4f9..3e26dd33751 100644 --- a/pkg/registry/networking/networkpolicy/storage/storage.go +++ b/pkg/registry/networking/networkpolicy/storage/storage.go @@ -35,12 +35,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against NetworkPolicies func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &networkingapi.NetworkPolicy{} }, - NewListFunc: func() runtime.Object { return &networkingapi.NetworkPolicyList{} }, - PredicateFunc: networkpolicy.Matcher, - QualifiedResource: networkingapi.Resource("networkpolicies"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &networkingapi.NetworkPolicy{} }, + NewListFunc: func() runtime.Object { return &networkingapi.NetworkPolicyList{} }, + PredicateFunc: networkpolicy.Matcher, + DefaultQualifiedResource: networkingapi.Resource("networkpolicies"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"), CreateStrategy: networkpolicy.Strategy, UpdateStrategy: networkpolicy.Strategy, diff --git a/pkg/registry/policy/poddisruptionbudget/storage/storage.go b/pkg/registry/policy/poddisruptionbudget/storage/storage.go index 99777872c15..2daa230365d 100644 --- a/pkg/registry/policy/poddisruptionbudget/storage/storage.go +++ b/pkg/registry/policy/poddisruptionbudget/storage/storage.go @@ -37,12 +37,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against pod disruption budgets. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} }, - NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} }, - PredicateFunc: poddisruptionbudget.MatchPodDisruptionBudget, - QualifiedResource: policyapi.Resource("poddisruptionbudgets"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("poddisruptionbudgets"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} }, + NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} }, + PredicateFunc: poddisruptionbudget.MatchPodDisruptionBudget, + DefaultQualifiedResource: policyapi.Resource("poddisruptionbudgets"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("poddisruptionbudgets"), CreateStrategy: poddisruptionbudget.Strategy, UpdateStrategy: poddisruptionbudget.Strategy, diff --git a/pkg/registry/rbac/clusterrole/storage/storage.go b/pkg/registry/rbac/clusterrole/storage/storage.go index 119dca07613..e434280a409 100644 --- a/pkg/registry/rbac/clusterrole/storage/storage.go +++ b/pkg/registry/rbac/clusterrole/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against ClusterRole objects. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &rbac.ClusterRole{} }, - NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} }, - PredicateFunc: clusterrole.Matcher, - QualifiedResource: rbac.Resource("clusterroles"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterroles"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &rbac.ClusterRole{} }, + NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} }, + PredicateFunc: clusterrole.Matcher, + DefaultQualifiedResource: rbac.Resource("clusterroles"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterroles"), CreateStrategy: clusterrole.Strategy, UpdateStrategy: clusterrole.Strategy, diff --git a/pkg/registry/rbac/clusterrolebinding/storage/storage.go b/pkg/registry/rbac/clusterrolebinding/storage/storage.go index ccc7f8df76f..2cb178ca63f 100644 --- a/pkg/registry/rbac/clusterrolebinding/storage/storage.go +++ b/pkg/registry/rbac/clusterrolebinding/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against ClusterRoleBinding objects. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} }, - NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} }, - PredicateFunc: clusterrolebinding.Matcher, - QualifiedResource: rbac.Resource("clusterrolebindings"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterrolebindings"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} }, + NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} }, + PredicateFunc: clusterrolebinding.Matcher, + DefaultQualifiedResource: rbac.Resource("clusterrolebindings"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterrolebindings"), CreateStrategy: clusterrolebinding.Strategy, UpdateStrategy: clusterrolebinding.Strategy, diff --git a/pkg/registry/rbac/role/storage/storage.go b/pkg/registry/rbac/role/storage/storage.go index 039587d411e..18f17867252 100644 --- a/pkg/registry/rbac/role/storage/storage.go +++ b/pkg/registry/rbac/role/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against Role objects. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &rbac.Role{} }, - NewListFunc: func() runtime.Object { return &rbac.RoleList{} }, - PredicateFunc: role.Matcher, - QualifiedResource: rbac.Resource("roles"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("roles"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &rbac.Role{} }, + NewListFunc: func() runtime.Object { return &rbac.RoleList{} }, + PredicateFunc: role.Matcher, + DefaultQualifiedResource: rbac.Resource("roles"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("roles"), CreateStrategy: role.Strategy, UpdateStrategy: role.Strategy, diff --git a/pkg/registry/rbac/rolebinding/storage/storage.go b/pkg/registry/rbac/rolebinding/storage/storage.go index 641ffab63f9..3ccf4f72cf6 100644 --- a/pkg/registry/rbac/rolebinding/storage/storage.go +++ b/pkg/registry/rbac/rolebinding/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against RoleBinding objects. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &rbac.RoleBinding{} }, - NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} }, - PredicateFunc: rolebinding.Matcher, - QualifiedResource: rbac.Resource("rolebindings"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("rolebindings"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &rbac.RoleBinding{} }, + NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} }, + PredicateFunc: rolebinding.Matcher, + DefaultQualifiedResource: rbac.Resource("rolebindings"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("rolebindings"), CreateStrategy: rolebinding.Strategy, UpdateStrategy: rolebinding.Strategy, diff --git a/pkg/registry/scheduling/priorityclass/storage/storage.go b/pkg/registry/scheduling/priorityclass/storage/storage.go index e24a319f680..5f2ba014b5d 100644 --- a/pkg/registry/scheduling/priorityclass/storage/storage.go +++ b/pkg/registry/scheduling/priorityclass/storage/storage.go @@ -35,12 +35,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against priority classes. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &schedulingapi.PriorityClass{} }, - NewListFunc: func() runtime.Object { return &schedulingapi.PriorityClassList{} }, - PredicateFunc: priorityclass.Matcher, - QualifiedResource: schedulingapi.Resource("priorityclasses"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("priorityclasses"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &schedulingapi.PriorityClass{} }, + NewListFunc: func() runtime.Object { return &schedulingapi.PriorityClassList{} }, + PredicateFunc: priorityclass.Matcher, + DefaultQualifiedResource: schedulingapi.Resource("priorityclasses"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("priorityclasses"), CreateStrategy: priorityclass.Strategy, UpdateStrategy: priorityclass.Strategy, diff --git a/pkg/registry/settings/podpreset/storage/storage.go b/pkg/registry/settings/podpreset/storage/storage.go index 233146c3194..4d1c7ca54b5 100644 --- a/pkg/registry/settings/podpreset/storage/storage.go +++ b/pkg/registry/settings/podpreset/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against replication controllers. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &settingsapi.PodPreset{} }, - NewListFunc: func() runtime.Object { return &settingsapi.PodPresetList{} }, - PredicateFunc: podpreset.Matcher, - QualifiedResource: settingsapi.Resource("podpresets"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podpresets"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &settingsapi.PodPreset{} }, + NewListFunc: func() runtime.Object { return &settingsapi.PodPresetList{} }, + PredicateFunc: podpreset.Matcher, + DefaultQualifiedResource: settingsapi.Resource("podpresets"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podpresets"), CreateStrategy: podpreset.Strategy, UpdateStrategy: podpreset.Strategy, diff --git a/pkg/registry/storage/storageclass/storage/storage.go b/pkg/registry/storage/storageclass/storage/storage.go index e8d98c8332f..3dcb18a301f 100644 --- a/pkg/registry/storage/storageclass/storage/storage.go +++ b/pkg/registry/storage/storageclass/storage/storage.go @@ -34,12 +34,12 @@ type REST struct { // NewREST returns a RESTStorage object that will work against persistent volumes. func NewREST(optsGetter generic.RESTOptionsGetter) *REST { store := &genericregistry.Store{ - Copier: api.Scheme, - NewFunc: func() runtime.Object { return &storageapi.StorageClass{} }, - NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} }, - PredicateFunc: storageclass.MatchStorageClasses, - QualifiedResource: storageapi.Resource("storageclasses"), - WatchCacheSize: cachesize.GetWatchCacheSizeByResource("storageclass"), + Copier: api.Scheme, + NewFunc: func() runtime.Object { return &storageapi.StorageClass{} }, + NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} }, + PredicateFunc: storageclass.MatchStorageClasses, + DefaultQualifiedResource: storageapi.Resource("storageclasses"), + WatchCacheSize: cachesize.GetWatchCacheSizeByResource("storageclass"), CreateStrategy: storageclass.Strategy, UpdateStrategy: storageclass.Strategy, diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go index 138b05932fc..6abd528354b 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/etcd.go @@ -40,8 +40,8 @@ func NewREST(resource schema.GroupResource, listKind schema.GroupVersionKind, co ret.SetGroupVersionKind(listKind) return ret }, - PredicateFunc: strategy.MatchCustomResourceDefinitionStorage, - QualifiedResource: resource, + PredicateFunc: strategy.MatchCustomResourceDefinitionStorage, + DefaultQualifiedResource: resource, CreateStrategy: strategy, UpdateStrategy: strategy, diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go index f300dac285d..901406bfef2 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/etcd.go @@ -41,11 +41,11 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST strategy := NewStrategy(scheme) store := &genericregistry.Store{ - Copier: scheme, - NewFunc: func() runtime.Object { return &apiextensions.CustomResourceDefinition{} }, - NewListFunc: func() runtime.Object { return &apiextensions.CustomResourceDefinitionList{} }, - PredicateFunc: MatchCustomResourceDefinition, - QualifiedResource: apiextensions.Resource("customresourcedefinitions"), + Copier: scheme, + NewFunc: func() runtime.Object { return &apiextensions.CustomResourceDefinition{} }, + NewListFunc: func() runtime.Object { return &apiextensions.CustomResourceDefinitionList{} }, + PredicateFunc: MatchCustomResourceDefinition, + DefaultQualifiedResource: apiextensions.Resource("customresourcedefinitions"), CreateStrategy: strategy, UpdateStrategy: strategy, diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go index ef1bd068f38..3b514376cf5 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go @@ -37,6 +37,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/apimachinery/pkg/watch" + "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" @@ -82,8 +83,10 @@ type Store struct { // curl GET /apis/group/version/namespaces/my-ns/myresource NewListFunc func() runtime.Object - // QualifiedResource is the pluralized name of the resource. - QualifiedResource schema.GroupResource + // DefaultQualifiedResource is the pluralized name of the resource. + // This field is used if there is no request info present in the context. + // See qualifiedResourceFromContext for details. + DefaultQualifiedResource schema.GroupResource // KeyRootFunc returns the root etcd key for this resource; should not // include trailing "/". This is used for operations that work on the @@ -262,16 +265,17 @@ func (e *Store) ListPredicate(ctx genericapirequest.Context, p storage.Selection } p.IncludeUninitialized = options.IncludeUninitialized list := e.NewListFunc() + qualifiedResource := e.qualifiedResourceFromContext(ctx) if name, ok := p.MatchesSingle(); ok { if key, err := e.KeyFunc(ctx, name); err == nil { err := e.Storage.GetToList(ctx, key, options.ResourceVersion, p, list) - return list, storeerr.InterpretListError(err, e.QualifiedResource) + return list, storeerr.InterpretListError(err, qualifiedResource) } // if we cannot extract a key based on the current context, the optimization is skipped } err := e.Storage.List(ctx, e.KeyRootFunc(ctx), options.ResourceVersion, p, list) - return list, storeerr.InterpretListError(err, e.QualifiedResource) + return list, storeerr.InterpretListError(err, qualifiedResource) } // Create inserts a new item according to the unique key from the object. @@ -287,13 +291,14 @@ func (e *Store) Create(ctx genericapirequest.Context, obj runtime.Object, includ if err != nil { return nil, err } + qualifiedResource := e.qualifiedResourceFromContext(ctx) ttl, err := e.calculateTTL(obj, 0, false) if err != nil { return nil, err } out := e.NewFunc() if err := e.Storage.Create(ctx, key, obj, out, ttl); err != nil { - err = storeerr.InterpretCreateError(err, e.QualifiedResource, name) + err = storeerr.InterpretCreateError(err, qualifiedResource, name) err = rest.CheckGeneratedNameError(e.CreateStrategy, err, obj) if !kubeerr.IsAlreadyExists(err) { return nil, err @@ -327,6 +332,8 @@ func (e *Store) Create(ctx genericapirequest.Context, obj runtime.Object, includ return out, nil } +// WaitForInitialized holds until the object is initialized, or returns an error if the default limit expires. +// This method is exposed publicly for consumers of generic rest tooling. func (e *Store) WaitForInitialized(ctx genericapirequest.Context, obj runtime.Object) (runtime.Object, error) { // return early if we don't have initializers, or if they've completed already accessor, err := meta.Accessor(obj) @@ -345,6 +352,7 @@ func (e *Store) WaitForInitialized(ctx genericapirequest.Context, obj runtime.Ob if err != nil { return nil, err } + qualifiedResource := e.qualifiedResourceFromContext(ctx) w, err := e.Storage.Watch(ctx, key, accessor.GetResourceVersion(), storage.SelectionPredicate{ Label: labels.Everything(), Field: fields.Everything(), @@ -363,7 +371,7 @@ func (e *Store) WaitForInitialized(ctx genericapirequest.Context, obj runtime.Ob case event, ok := <-ch: if !ok { msg := fmt.Sprintf("server has timed out waiting for the initialization of %s %s", - e.QualifiedResource.String(), accessor.GetName()) + qualifiedResource.String(), accessor.GetName()) return nil, kubeerr.NewTimeoutError(msg, 0) } switch event.Type { @@ -448,15 +456,15 @@ func (e *Store) deleteWithoutFinalizers(ctx genericapirequest.Context, name, key // requests to remove all finalizers from the object, so we // ignore the NotFound error. if storage.IsNotFound(err) { - _, err := e.finalizeDelete(obj, true) + _, err := e.finalizeDelete(ctx, obj, true) // clients are expecting an updated object if a PUT succeeded, // but finalizeDelete returns a metav1.Status, so return // the object in the request instead. return obj, false, err } - return nil, false, storeerr.InterpretDeleteError(err, e.QualifiedResource, name) + return nil, false, storeerr.InterpretDeleteError(err, e.qualifiedResourceFromContext(ctx), name) } - _, err := e.finalizeDelete(out, true) + _, err := e.finalizeDelete(ctx, out, true) // clients are expecting an updated object if a PUT succeeded, but // finalizeDelete returns a metav1.Status, so return the object in // the request instead. @@ -477,6 +485,7 @@ func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest. creating = false ) + qualifiedResource := e.qualifiedResourceFromContext(ctx) storagePreconditions := &storage.Preconditions{} if preconditions := objInfo.Preconditions(); preconditions != nil { storagePreconditions.UID = preconditions.UID @@ -508,7 +517,7 @@ func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest. } if version == 0 { if !e.UpdateStrategy.AllowCreateOnUpdate() { - return nil, nil, kubeerr.NewNotFound(e.QualifiedResource, name) + return nil, nil, kubeerr.NewNotFound(qualifiedResource, name) } creating = true creatingObj = obj @@ -542,12 +551,12 @@ func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest. // TODO: The Invalid error should have a field for Resource. // After that field is added, we should fill the Resource and // leave the Kind field empty. See the discussion in #18526. - qualifiedKind := schema.GroupKind{Group: e.QualifiedResource.Group, Kind: e.QualifiedResource.Resource} + qualifiedKind := schema.GroupKind{Group: qualifiedResource.Group, Kind: qualifiedResource.Resource} fieldErrList := field.ErrorList{field.Invalid(field.NewPath("metadata").Child("resourceVersion"), newVersion, "must be specified for an update")} return nil, nil, kubeerr.NewInvalid(qualifiedKind, name, fieldErrList) } if newVersion != version { - return nil, nil, kubeerr.NewConflict(e.QualifiedResource, name, fmt.Errorf(OptimisticLockErrorMsg)) + return nil, nil, kubeerr.NewConflict(qualifiedResource, name, fmt.Errorf(OptimisticLockErrorMsg)) } } if err := rest.BeforeUpdate(e.UpdateStrategy, ctx, obj, existing); err != nil { @@ -573,10 +582,10 @@ func (e *Store) Update(ctx genericapirequest.Context, name string, objInfo rest. return e.deleteWithoutFinalizers(ctx, name, key, deleteObj, storagePreconditions) } if creating { - err = storeerr.InterpretCreateError(err, e.QualifiedResource, name) + err = storeerr.InterpretCreateError(err, qualifiedResource, name) err = rest.CheckGeneratedNameError(e.CreateStrategy, err, creatingObj) } else { - err = storeerr.InterpretUpdateError(err, e.QualifiedResource, name) + err = storeerr.InterpretUpdateError(err, qualifiedResource, name) } return nil, false, err } @@ -614,7 +623,7 @@ func (e *Store) Get(ctx genericapirequest.Context, name string, options *metav1. return nil, err } if err := e.Storage.Get(ctx, key, options.ResourceVersion, obj, false); err != nil { - return nil, storeerr.InterpretGetError(err, e.QualifiedResource, name) + return nil, storeerr.InterpretGetError(err, e.qualifiedResourceFromContext(ctx), name) } if e.Decorator != nil { if err := e.Decorator(obj); err != nil { @@ -624,6 +633,16 @@ func (e *Store) Get(ctx genericapirequest.Context, name string, options *metav1. return obj, nil } +// qualifiedResourceFromContext attempts to retrieve a GroupResource from the context's request info. +// If the context has no request info, DefaultQualifiedResource is used. +func (e *Store) qualifiedResourceFromContext(ctx genericapirequest.Context) schema.GroupResource { + if info, ok := request.RequestInfoFrom(ctx); ok { + return schema.GroupResource{Group: info.APIGroup, Resource: info.Resource} + } + // some implementations access storage directly and thus the context has no RequestInfo + return e.DefaultQualifiedResource +} + var ( errAlreadyDeleting = fmt.Errorf("abort delete") errDeleteNow = fmt.Errorf("delete now") @@ -827,10 +846,10 @@ func (e *Store) updateForGracefulDeletion(ctx genericapirequest.Context, name, k // we should fall through and truly delete the object. return nil, false, true, out, lastExisting case errAlreadyDeleting: - out, err = e.finalizeDelete(in, true) + out, err = e.finalizeDelete(ctx, in, true) return err, false, false, out, lastExisting default: - return storeerr.InterpretUpdateError(err, e.QualifiedResource, name), false, false, out, lastExisting + return storeerr.InterpretUpdateError(err, e.qualifiedResourceFromContext(ctx), name), false, false, out, lastExisting } } @@ -918,10 +937,10 @@ func (e *Store) updateForGracefulDeletionAndFinalizers(ctx genericapirequest.Con // we should fall through and truly delete the object. return nil, false, true, out, lastExisting case errAlreadyDeleting: - out, err = e.finalizeDelete(in, true) + out, err = e.finalizeDelete(ctx, in, true) return err, false, false, out, lastExisting default: - return storeerr.InterpretUpdateError(err, e.QualifiedResource, name), false, false, out, lastExisting + return storeerr.InterpretUpdateError(err, e.qualifiedResourceFromContext(ctx), name), false, false, out, lastExisting } } @@ -931,10 +950,10 @@ func (e *Store) Delete(ctx genericapirequest.Context, name string, options *meta if err != nil { return nil, false, err } - obj := e.NewFunc() + qualifiedResource := e.qualifiedResourceFromContext(ctx) if err := e.Storage.Get(ctx, key, "", obj, false); err != nil { - return nil, false, storeerr.InterpretDeleteError(err, e.QualifiedResource, name) + return nil, false, storeerr.InterpretDeleteError(err, qualifiedResource, name) } // support older consumers of delete by treating "nil" as delete immediately if options == nil { @@ -950,7 +969,7 @@ func (e *Store) Delete(ctx genericapirequest.Context, name string, options *meta } // this means finalizers cannot be updated via DeleteOptions if a deletion is already pending if pendingGraceful { - out, err := e.finalizeDelete(obj, false) + out, err := e.finalizeDelete(ctx, obj, false) return out, false, err } // check if obj has pending finalizers @@ -991,12 +1010,12 @@ func (e *Store) Delete(ctx genericapirequest.Context, name string, options *meta if storage.IsNotFound(err) && ignoreNotFound && lastExisting != nil { // The lastExisting object may not be the last state of the object // before its deletion, but it's the best approximation. - out, err := e.finalizeDelete(lastExisting, true) + out, err := e.finalizeDelete(ctx, lastExisting, true) return out, true, err } - return nil, false, storeerr.InterpretDeleteError(err, e.QualifiedResource, name) + return nil, false, storeerr.InterpretDeleteError(err, qualifiedResource, name) } - out, err = e.finalizeDelete(out, true) + out, err = e.finalizeDelete(ctx, out, true) return out, true, err } @@ -1098,7 +1117,7 @@ func (e *Store) DeleteCollection(ctx genericapirequest.Context, options *metav1. // finalizeDelete runs the Store's AfterDelete hook if runHooks is set and // returns the decorated deleted object if appropriate. -func (e *Store) finalizeDelete(obj runtime.Object, runHooks bool) (runtime.Object, error) { +func (e *Store) finalizeDelete(ctx genericapirequest.Context, obj runtime.Object, runHooks bool) (runtime.Object, error) { if runHooks && e.AfterDelete != nil { if err := e.AfterDelete(obj); err != nil { return nil, err @@ -1118,10 +1137,11 @@ func (e *Store) finalizeDelete(obj runtime.Object, runHooks bool) (runtime.Objec if err != nil { return nil, err } + qualifiedResource := e.qualifiedResourceFromContext(ctx) details := &metav1.StatusDetails{ Name: accessor.GetName(), - Group: e.QualifiedResource.Group, - Kind: e.QualifiedResource.Resource, // Yes we set Kind field to resource. + Group: qualifiedResource.Group, + Kind: qualifiedResource.Resource, // Yes we set Kind field to resource. UID: accessor.GetUID(), } status := &metav1.Status{Status: metav1.StatusSuccess, Details: details} @@ -1238,17 +1258,17 @@ func (e *Store) Export(ctx genericapirequest.Context, name string, opts metav1.E // CompleteWithOptions updates the store with the provided options and // defaults common fields. func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error { - if e.QualifiedResource.Empty() { + if e.DefaultQualifiedResource.Empty() { return fmt.Errorf("store %#v must have a non-empty qualified resource", e) } if e.NewFunc == nil { - return fmt.Errorf("store for %s must have NewFunc set", e.QualifiedResource.String()) + return fmt.Errorf("store for %s must have NewFunc set", e.DefaultQualifiedResource.String()) } if e.NewListFunc == nil { - return fmt.Errorf("store for %s must have NewListFunc set", e.QualifiedResource.String()) + return fmt.Errorf("store for %s must have NewListFunc set", e.DefaultQualifiedResource.String()) } if (e.KeyRootFunc == nil) != (e.KeyFunc == nil) { - return fmt.Errorf("store for %s must set both KeyRootFunc and KeyFunc or neither", e.QualifiedResource.String()) + return fmt.Errorf("store for %s must set both KeyRootFunc and KeyFunc or neither", e.DefaultQualifiedResource.String()) } var isNamespaced bool @@ -1258,15 +1278,15 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error { case e.UpdateStrategy != nil: isNamespaced = e.UpdateStrategy.NamespaceScoped() default: - return fmt.Errorf("store for %s must have CreateStrategy or UpdateStrategy set", e.QualifiedResource.String()) + return fmt.Errorf("store for %s must have CreateStrategy or UpdateStrategy set", e.DefaultQualifiedResource.String()) } if e.DeleteStrategy == nil { - return fmt.Errorf("store for %s must have DeleteStrategy set", e.QualifiedResource.String()) + return fmt.Errorf("store for %s must have DeleteStrategy set", e.DefaultQualifiedResource.String()) } if options.RESTOptions == nil { - return fmt.Errorf("options for %s must have RESTOptions set", e.QualifiedResource.String()) + return fmt.Errorf("options for %s must have RESTOptions set", e.DefaultQualifiedResource.String()) } attrFunc := options.AttrFunc @@ -1287,7 +1307,7 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error { } } - opts, err := options.RESTOptions.GetRESTOptions(e.QualifiedResource) + opts, err := options.RESTOptions.GetRESTOptions(e.DefaultQualifiedResource) if err != nil { return err } @@ -1298,7 +1318,7 @@ func (e *Store) CompleteWithOptions(options *generic.StoreOptions) error { prefix = "/" + prefix } if prefix == "/" { - return fmt.Errorf("store for %s has an invalid prefix %q", e.QualifiedResource.String(), opts.ResourcePrefix) + return fmt.Errorf("store for %s has an invalid prefix %q", e.DefaultQualifiedResource.String(), opts.ResourcePrefix) } // Set the default behavior for storage key generation @@ -1377,5 +1397,5 @@ func (e *Store) ConvertToTable(ctx genericapirequest.Context, object runtime.Obj if e.TableConvertor != nil { return e.TableConvertor.ConvertToTable(ctx, object, tableOptions) } - return rest.NewDefaultTableConvertor(e.QualifiedResource).ConvertToTable(ctx, object, tableOptions) + return rest.NewDefaultTableConvertor(e.qualifiedResourceFromContext(ctx)).ConvertToTable(ctx, object, tableOptions) } diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go index fa61ac97b9d..800d1b257c4 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store_test.go @@ -42,6 +42,7 @@ import ( "k8s.io/apimachinery/pkg/watch" "k8s.io/apiserver/pkg/apis/example" examplev1 "k8s.io/apiserver/pkg/apis/example/v1" + "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" @@ -381,6 +382,13 @@ func isInitialized(obj metav1.Object) bool { return obj.GetInitializers() == nil } +func isQualifiedResource(err error, kind, group string) bool { + if err.(errors.APIStatus).Status().Details.Kind != kind || err.(errors.APIStatus).Status().Details.Group != group { + return false + } + return true +} + func TestStoreCreateInitialized(t *testing.T) { podA := &example.Pod{ ObjectMeta: metav1.ObjectMeta{ @@ -1801,13 +1809,13 @@ func newTestGenericStoreRegistry(t *testing.T, scheme *runtime.Scheme, hasCacheE } return destroyFunc, &Store{ - Copier: scheme, - NewFunc: func() runtime.Object { return &example.Pod{} }, - NewListFunc: func() runtime.Object { return &example.PodList{} }, - QualifiedResource: example.Resource("pods"), - CreateStrategy: strategy, - UpdateStrategy: strategy, - DeleteStrategy: strategy, + Copier: scheme, + NewFunc: func() runtime.Object { return &example.Pod{} }, + NewListFunc: func() runtime.Object { return &example.PodList{} }, + DefaultQualifiedResource: example.Resource("pods"), + CreateStrategy: strategy, + UpdateStrategy: strategy, + DeleteStrategy: strategy, KeyRootFunc: func(ctx genericapirequest.Context) string { return podPrefix }, @@ -1842,7 +1850,7 @@ func TestFinalizeDelete(t *testing.T) { obj := &example.Pod{ ObjectMeta: metav1.ObjectMeta{Name: "foo", UID: "random-uid"}, } - result, err := s.finalizeDelete(obj, false) + result, err := s.finalizeDelete(genericapirequest.NewContext(), obj, false) if err != nil { t.Fatalf("unexpected err: %s", err) } @@ -1852,8 +1860,8 @@ func TestFinalizeDelete(t *testing.T) { Status: metav1.StatusSuccess, Details: &metav1.StatusDetails{ Name: "foo", - Group: s.QualifiedResource.Group, - Kind: s.QualifiedResource.Resource, + Group: s.DefaultQualifiedResource.Group, + Kind: s.DefaultQualifiedResource.Resource, UID: "random-uid", }, } @@ -1861,3 +1869,82 @@ func TestFinalizeDelete(t *testing.T) { t.Errorf("unexpected obj. expected %#v, got %#v", expectedObj, returnedObj) } } + +func fakeRequestInfo(resource, apiGroup string) *request.RequestInfo { + return &request.RequestInfo{ + IsResourceRequest: true, + Path: "/api/v1/test", + Verb: "test", + APIPrefix: "api", + APIGroup: apiGroup, + APIVersion: "v1", + Namespace: "", + Resource: resource, + Subresource: "", + Name: "", + Parts: []string{"test"}, + } +} + +func TestQualifiedResource(t *testing.T) { + podA := &example.Pod{ + ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test"}, + Spec: example.PodSpec{NodeName: "machine"}, + } + + qualifiedKind := "pod" + qualifiedGroup := "test" + testContext := genericapirequest.WithNamespace(genericapirequest.NewContext(), "test") + testContext = genericapirequest.WithRequestInfo(testContext, fakeRequestInfo(qualifiedKind, qualifiedGroup)) + + destroyFunc, registry := NewTestGenericStoreRegistry(t) + defer destroyFunc() + + // update a non-exist object + _, _, err := registry.Update(testContext, podA.Name, rest.DefaultUpdatedObjectInfo(podA, scheme)) + if !errors.IsNotFound(err) { + t.Fatalf("Unexpected error: %v", err) + } + + if !isQualifiedResource(err, qualifiedKind, qualifiedGroup) { + t.Fatalf("Unexpected error: %#v", err) + } + + // get a non-exist object + _, err = registry.Get(testContext, podA.Name, &metav1.GetOptions{}) + + if !errors.IsNotFound(err) { + t.Fatalf("Unexpected error: %v", err) + } + + if !isQualifiedResource(err, qualifiedKind, qualifiedGroup) { + t.Fatalf("Unexpected error: %#v", err) + } + + // delete a non-exist object + _, _, err = registry.Delete(testContext, podA.Name, nil) + + if !errors.IsNotFound(err) { + t.Fatalf("Unexpected error: %v", err) + } + + if !isQualifiedResource(err, qualifiedKind, qualifiedGroup) { + t.Fatalf("Unexpected error: %#v", err) + } + + // create a non-exist object + _, err = registry.Create(testContext, podA, false) + if err != nil { + t.Fatal(err) + } + + // create a exist object will fail + _, err = registry.Create(testContext, podA, false) + if !errors.IsAlreadyExists(err) { + t.Fatalf("Unexpected error: %v", err) + } + + if !isQualifiedResource(err, qualifiedKind, qualifiedGroup) { + t.Fatalf("Unexpected error: %#v", err) + } +} diff --git a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go index 320aa5f0f0d..82db5783f2f 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/etcd.go @@ -35,11 +35,11 @@ type REST struct { func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) *REST { strategy := apiservice.NewStrategy(scheme) store := &genericregistry.Store{ - Copier: scheme, - NewFunc: func() runtime.Object { return &apiregistration.APIService{} }, - NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} }, - PredicateFunc: apiservice.MatchAPIService, - QualifiedResource: apiregistration.Resource("apiservices"), + Copier: scheme, + NewFunc: func() runtime.Object { return &apiregistration.APIService{} }, + NewListFunc: func() runtime.Object { return &apiregistration.APIServiceList{} }, + PredicateFunc: apiservice.MatchAPIService, + DefaultQualifiedResource: apiregistration.Resource("apiservices"), CreateStrategy: strategy, UpdateStrategy: strategy, diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/etcd.go b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/etcd.go index 5cf11ec8c8e..228a668feaa 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/etcd.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/etcd.go @@ -29,11 +29,11 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) (*reg strategy := NewStrategy(scheme) store := &genericregistry.Store{ - Copier: scheme, - NewFunc: func() runtime.Object { return &wardle.Fischer{} }, - NewListFunc: func() runtime.Object { return &wardle.FischerList{} }, - PredicateFunc: MatchFischer, - QualifiedResource: wardle.Resource("fischers"), + Copier: scheme, + NewFunc: func() runtime.Object { return &wardle.Fischer{} }, + NewListFunc: func() runtime.Object { return &wardle.FischerList{} }, + PredicateFunc: MatchFischer, + DefaultQualifiedResource: wardle.Resource("fischers"), CreateStrategy: strategy, UpdateStrategy: strategy, diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/etcd.go b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/etcd.go index 8bb5ef44033..7f12cb4cbe3 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/etcd.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/etcd.go @@ -29,11 +29,11 @@ func NewREST(scheme *runtime.Scheme, optsGetter generic.RESTOptionsGetter) (*reg strategy := NewStrategy(scheme) store := &genericregistry.Store{ - Copier: scheme, - NewFunc: func() runtime.Object { return &wardle.Flunder{} }, - NewListFunc: func() runtime.Object { return &wardle.FlunderList{} }, - PredicateFunc: MatchFlunder, - QualifiedResource: wardle.Resource("flunders"), + Copier: scheme, + NewFunc: func() runtime.Object { return &wardle.Flunder{} }, + NewListFunc: func() runtime.Object { return &wardle.FlunderList{} }, + PredicateFunc: MatchFlunder, + DefaultQualifiedResource: wardle.Resource("flunders"), CreateStrategy: strategy, UpdateStrategy: strategy, From e79a228a7839a552d48553cbb32302193cefc34e Mon Sep 17 00:00:00 2001 From: Mik Vyatskov Date: Mon, 7 Aug 2017 09:57:47 +0200 Subject: [PATCH 068/183] Move the sig-instrumentation test to a dedicated folder --- hack/.golint_failures | 2 +- test/e2e/BUILD | 6 +-- test/e2e/apimachinery/BUILD | 2 +- test/e2e/apimachinery/garbage_collector.go | 2 +- test/e2e/e2e.go | 2 +- test/e2e/framework/BUILD | 3 +- test/e2e/framework/framework.go | 2 +- test/e2e/framework/kubelet_stats.go | 2 +- test/e2e/{ => framework}/metrics/BUILD | 0 .../metrics/api_server_metrics.go | 0 .../metrics/controller_manager_metrics.go | 0 .../metrics/generic_metrics.go | 0 .../metrics/kubelet_metrics.go | 0 .../metrics/metrics_grabber.go | 0 .../metrics/scheduler_metrics.go | 0 test/e2e/framework/metrics_util.go | 2 +- test/e2e/instrumentation/monitoring/BUILD | 3 ++ .../monitoring/metrics_grabber.go} | 39 ++++++++++--------- test/e2e_node/BUILD | 4 +- test/e2e_node/density_test.go | 2 +- test/e2e_node/util.go | 2 +- 21 files changed, 37 insertions(+), 36 deletions(-) rename test/e2e/{ => framework}/metrics/BUILD (100%) rename test/e2e/{ => framework}/metrics/api_server_metrics.go (100%) rename test/e2e/{ => framework}/metrics/controller_manager_metrics.go (100%) rename test/e2e/{ => framework}/metrics/generic_metrics.go (100%) rename test/e2e/{ => framework}/metrics/kubelet_metrics.go (100%) rename test/e2e/{ => framework}/metrics/metrics_grabber.go (100%) rename test/e2e/{ => framework}/metrics/scheduler_metrics.go (100%) rename test/e2e/{metrics_grabber_test.go => instrumentation/monitoring/metrics_grabber.go} (70%) diff --git a/hack/.golint_failures b/hack/.golint_failures index 6f06c2e926d..d64de194cf2 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -813,13 +813,13 @@ test/e2e/autoscaling test/e2e/chaosmonkey test/e2e/common test/e2e/framework +test/e2e/framework/metrics test/e2e/instrumentation test/e2e/instrumentation/logging test/e2e/instrumentation/monitoring test/e2e/kubectl test/e2e/lifecycle test/e2e/lifecycle/bootstrap -test/e2e/metrics test/e2e/network test/e2e/node test/e2e/scalability diff --git a/test/e2e/BUILD b/test/e2e/BUILD index f54541a6474..241fcc61ef2 100644 --- a/test/e2e/BUILD +++ b/test/e2e/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = [ "e2e_test.go", - "metrics_grabber_test.go", "taints_test.go", ], library = ":go_default_library", @@ -26,14 +25,12 @@ go_test( "//test/e2e/kubectl:go_default_library", "//test/e2e/lifecycle:go_default_library", "//test/e2e/lifecycle/bootstrap:go_default_library", - "//test/e2e/metrics:go_default_library", "//test/e2e/network:go_default_library", "//test/e2e/scalability:go_default_library", "//test/e2e/scheduling:go_default_library", "//test/e2e/storage:go_default_library", "//test/utils:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", - "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -85,9 +82,9 @@ go_library( "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e/framework/ginkgowrapper:go_default_library", + "//test/e2e/framework/metrics:go_default_library", "//test/e2e/generated:go_default_library", "//test/e2e/manifest:go_default_library", - "//test/e2e/metrics:go_default_library", "//test/e2e_federation:go_default_library", "//test/utils:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -155,7 +152,6 @@ filegroup( "//test/e2e/kubectl:all-srcs", "//test/e2e/lifecycle:all-srcs", "//test/e2e/manifest:all-srcs", - "//test/e2e/metrics:all-srcs", "//test/e2e/network:all-srcs", "//test/e2e/node:all-srcs", "//test/e2e/perftype:all-srcs", diff --git a/test/e2e/apimachinery/BUILD b/test/e2e/apimachinery/BUILD index 31ef898ed15..dfba9975541 100644 --- a/test/e2e/apimachinery/BUILD +++ b/test/e2e/apimachinery/BUILD @@ -28,7 +28,7 @@ go_library( "//pkg/util/version:go_default_library", "//test/e2e/apps:go_default_library", "//test/e2e/framework:go_default_library", - "//test/e2e/metrics:go_default_library", + "//test/e2e/framework/metrics:go_default_library", "//test/utils:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", diff --git a/test/e2e/apimachinery/garbage_collector.go b/test/e2e/apimachinery/garbage_collector.go index d0d38b560bd..11aad942466 100644 --- a/test/e2e/apimachinery/garbage_collector.go +++ b/test/e2e/apimachinery/garbage_collector.go @@ -35,7 +35,7 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/controller" "k8s.io/kubernetes/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/metrics" + "k8s.io/kubernetes/test/e2e/framework/metrics" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 6400fc544ff..4e2e1383cee 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -40,8 +40,8 @@ import ( commontest "k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework/ginkgowrapper" + "k8s.io/kubernetes/test/e2e/framework/metrics" "k8s.io/kubernetes/test/e2e/manifest" - "k8s.io/kubernetes/test/e2e/metrics" federationtest "k8s.io/kubernetes/test/e2e_federation" testutils "k8s.io/kubernetes/test/utils" ) diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 972c0b5db56..06be9b417a8 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -79,8 +79,8 @@ go_library( "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", "//plugin/pkg/scheduler/schedulercache:go_default_library", "//test/e2e/framework/ginkgowrapper:go_default_library", + "//test/e2e/framework/metrics:go_default_library", "//test/e2e/manifest:go_default_library", - "//test/e2e/metrics:go_default_library", "//test/e2e/perftype:go_default_library", "//test/utils:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", @@ -152,6 +152,7 @@ filegroup( srcs = [ ":package-srcs", "//test/e2e/framework/ginkgowrapper:all-srcs", + "//test/e2e/framework/metrics:all-srcs", ], tags = ["automanaged"], ) diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index fd2e7f8a41a..ccf9c43fdf8 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -43,7 +43,7 @@ import ( restclient "k8s.io/client-go/rest" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" - "k8s.io/kubernetes/test/e2e/metrics" + "k8s.io/kubernetes/test/e2e/framework/metrics" testutils "k8s.io/kubernetes/test/utils" . "github.com/onsi/ginkgo" diff --git a/test/e2e/framework/kubelet_stats.go b/test/e2e/framework/kubelet_stats.go index 4a83d219b4c..d94c318d655 100644 --- a/test/e2e/framework/kubelet_stats.go +++ b/test/e2e/framework/kubelet_stats.go @@ -37,7 +37,7 @@ import ( stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" "k8s.io/kubernetes/pkg/master/ports" - "k8s.io/kubernetes/test/e2e/metrics" + "k8s.io/kubernetes/test/e2e/framework/metrics" "github.com/prometheus/common/model" ) diff --git a/test/e2e/metrics/BUILD b/test/e2e/framework/metrics/BUILD similarity index 100% rename from test/e2e/metrics/BUILD rename to test/e2e/framework/metrics/BUILD diff --git a/test/e2e/metrics/api_server_metrics.go b/test/e2e/framework/metrics/api_server_metrics.go similarity index 100% rename from test/e2e/metrics/api_server_metrics.go rename to test/e2e/framework/metrics/api_server_metrics.go diff --git a/test/e2e/metrics/controller_manager_metrics.go b/test/e2e/framework/metrics/controller_manager_metrics.go similarity index 100% rename from test/e2e/metrics/controller_manager_metrics.go rename to test/e2e/framework/metrics/controller_manager_metrics.go diff --git a/test/e2e/metrics/generic_metrics.go b/test/e2e/framework/metrics/generic_metrics.go similarity index 100% rename from test/e2e/metrics/generic_metrics.go rename to test/e2e/framework/metrics/generic_metrics.go diff --git a/test/e2e/metrics/kubelet_metrics.go b/test/e2e/framework/metrics/kubelet_metrics.go similarity index 100% rename from test/e2e/metrics/kubelet_metrics.go rename to test/e2e/framework/metrics/kubelet_metrics.go diff --git a/test/e2e/metrics/metrics_grabber.go b/test/e2e/framework/metrics/metrics_grabber.go similarity index 100% rename from test/e2e/metrics/metrics_grabber.go rename to test/e2e/framework/metrics/metrics_grabber.go diff --git a/test/e2e/metrics/scheduler_metrics.go b/test/e2e/framework/metrics/scheduler_metrics.go similarity index 100% rename from test/e2e/metrics/scheduler_metrics.go rename to test/e2e/framework/metrics/scheduler_metrics.go diff --git a/test/e2e/framework/metrics_util.go b/test/e2e/framework/metrics_util.go index 26d464a1d54..4284afc7f0c 100644 --- a/test/e2e/framework/metrics_util.go +++ b/test/e2e/framework/metrics_util.go @@ -33,7 +33,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/util/system" - "k8s.io/kubernetes/test/e2e/metrics" + "k8s.io/kubernetes/test/e2e/framework/metrics" "github.com/prometheus/common/expfmt" "github.com/prometheus/common/model" diff --git a/test/e2e/instrumentation/monitoring/BUILD b/test/e2e/instrumentation/monitoring/BUILD index 1c898613758..71666c75e24 100644 --- a/test/e2e/instrumentation/monitoring/BUILD +++ b/test/e2e/instrumentation/monitoring/BUILD @@ -12,15 +12,18 @@ go_library( srcs = [ "cadvisor.go", "influxdb.go", + "metrics_grabber.go", "stackdriver.go", ], tags = ["automanaged"], deps = [ "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", + "//test/e2e/framework/metrics:go_default_library", "//test/e2e/instrumentation/common:go_default_library", "//vendor/github.com/influxdata/influxdb/client/v2:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", + "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/golang.org/x/oauth2/google:go_default_library", "//vendor/google.golang.org/api/monitoring/v3:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/test/e2e/metrics_grabber_test.go b/test/e2e/instrumentation/monitoring/metrics_grabber.go similarity index 70% rename from test/e2e/metrics_grabber_test.go rename to test/e2e/instrumentation/monitoring/metrics_grabber.go index 96005f349c6..e7f0ea5bde2 100644 --- a/test/e2e/metrics_grabber_test.go +++ b/test/e2e/instrumentation/monitoring/metrics_grabber.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package e2e +package monitoring import ( "strings" @@ -22,17 +22,18 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/metrics" + "k8s.io/kubernetes/test/e2e/framework/metrics" + instrumentation "k8s.io/kubernetes/test/e2e/instrumentation/common" - . "github.com/onsi/ginkgo" - . "github.com/onsi/gomega" + gin "github.com/onsi/ginkgo" + gom "github.com/onsi/gomega" ) -var _ = framework.KubeDescribe("MetricsGrabber", func() { +var _ = instrumentation.SIGDescribe("MetricsGrabber", func() { f := framework.NewDefaultFramework("metrics-grabber") var c clientset.Interface var grabber *metrics.MetricsGrabber - BeforeEach(func() { + gin.BeforeEach(func() { var err error c = f.ClientSet framework.ExpectNoError(err) @@ -40,24 +41,24 @@ var _ = framework.KubeDescribe("MetricsGrabber", func() { framework.ExpectNoError(err) }) - It("should grab all metrics from API server.", func() { - By("Connecting to /metrics endpoint") + gin.It("should grab all metrics from API server.", func() { + gin.By("Connecting to /metrics endpoint") response, err := grabber.GrabFromApiServer() framework.ExpectNoError(err) - Expect(response).NotTo(BeEmpty()) + gom.Expect(response).NotTo(gom.BeEmpty()) }) - It("should grab all metrics from a Kubelet.", func() { - By("Proxying to Node through the API server") + gin.It("should grab all metrics from a Kubelet.", func() { + gin.By("Proxying to Node through the API server") nodes := framework.GetReadySchedulableNodesOrDie(f.ClientSet) - Expect(nodes.Items).NotTo(BeEmpty()) + gom.Expect(nodes.Items).NotTo(gom.BeEmpty()) response, err := grabber.GrabFromKubelet(nodes.Items[0].Name) framework.ExpectNoError(err) - Expect(response).NotTo(BeEmpty()) + gom.Expect(response).NotTo(gom.BeEmpty()) }) - It("should grab all metrics from a Scheduler.", func() { - By("Proxying to Pod through the API server") + gin.It("should grab all metrics from a Scheduler.", func() { + gin.By("Proxying to Pod through the API server") // Check if master Node is registered nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) @@ -74,11 +75,11 @@ var _ = framework.KubeDescribe("MetricsGrabber", func() { } response, err := grabber.GrabFromScheduler() framework.ExpectNoError(err) - Expect(response).NotTo(BeEmpty()) + gom.Expect(response).NotTo(gom.BeEmpty()) }) - It("should grab all metrics from a ControllerManager.", func() { - By("Proxying to Pod through the API server") + gin.It("should grab all metrics from a ControllerManager.", func() { + gin.By("Proxying to Pod through the API server") // Check if master Node is registered nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) framework.ExpectNoError(err) @@ -95,6 +96,6 @@ var _ = framework.KubeDescribe("MetricsGrabber", func() { } response, err := grabber.GrabFromControllerManager() framework.ExpectNoError(err) - Expect(response).NotTo(BeEmpty()) + gom.Expect(response).NotTo(gom.BeEmpty()) }) }) diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 57421ca310f..7558894c096 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -36,7 +36,7 @@ go_library( "//pkg/util/procfs:go_default_library", "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", - "//test/e2e/metrics:go_default_library", + "//test/e2e/framework/metrics:go_default_library", "//test/e2e/perftype:go_default_library", "//test/e2e_node/perftype:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -114,7 +114,7 @@ go_test( "//pkg/security/apparmor:go_default_library", "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", - "//test/e2e/metrics:go_default_library", + "//test/e2e/framework/metrics:go_default_library", "//test/e2e_node/services:go_default_library", "//test/e2e_node/system:go_default_library", "//test/utils:go_default_library", diff --git a/test/e2e_node/density_test.go b/test/e2e_node/density_test.go index 8aabd88d281..e440b429381 100644 --- a/test/e2e_node/density_test.go +++ b/test/e2e_node/density_test.go @@ -34,7 +34,7 @@ import ( stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubemetrics "k8s.io/kubernetes/pkg/kubelet/metrics" "k8s.io/kubernetes/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/metrics" + "k8s.io/kubernetes/test/e2e/framework/metrics" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" diff --git a/test/e2e_node/util.go b/test/e2e_node/util.go index 92e6f2b689b..1d5ac3683d2 100644 --- a/test/e2e_node/util.go +++ b/test/e2e_node/util.go @@ -39,7 +39,7 @@ import ( stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" "k8s.io/kubernetes/test/e2e/framework" - "k8s.io/kubernetes/test/e2e/metrics" + "k8s.io/kubernetes/test/e2e/framework/metrics" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" From 0210c3dd778606e5f1bd4977b46dfe463ebf0757 Mon Sep 17 00:00:00 2001 From: Mik Vyatskov Date: Mon, 7 Aug 2017 09:45:32 +0200 Subject: [PATCH 069/183] Fix Stackdriver Logging soak tests issues --- .../instrumentation/logging/stackdrvier/soak.go | 5 +++-- .../instrumentation/logging/utils/logging_agent.go | 7 ++++++- test/e2e/instrumentation/logging/utils/wait.go | 14 +++++++------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/test/e2e/instrumentation/logging/stackdrvier/soak.go b/test/e2e/instrumentation/logging/stackdrvier/soak.go index 92d94764a5f..e1a863190d7 100644 --- a/test/e2e/instrumentation/logging/stackdrvier/soak.go +++ b/test/e2e/instrumentation/logging/stackdrvier/soak.go @@ -84,8 +84,9 @@ var _ = instrumentation.SIGDescribe("Cluster level logging implemented by Stackd for runIdx := 0; runIdx < podRunCount; runIdx++ { // Starting one pod on each node. for _, pod := range podsByRun[runIdx] { - err := pod.Start(f) - framework.Logf("Failed to start pod: %v", err) + if err := pod.Start(f); err != nil { + framework.Logf("Failed to start pod: %v", err) + } } <-t.C } diff --git a/test/e2e/instrumentation/logging/utils/logging_agent.go b/test/e2e/instrumentation/logging/utils/logging_agent.go index 4ca60a6c4a4..f42dc28c6da 100644 --- a/test/e2e/instrumentation/logging/utils/logging_agent.go +++ b/test/e2e/instrumentation/logging/utils/logging_agent.go @@ -65,7 +65,12 @@ func EnsureLoggingAgentRestartsCount(f *framework.Framework, appName string, max maxRestartCount := 0 for _, pod := range agentPods.Items { - restartCount := int(pod.Status.ContainerStatuses[0].RestartCount) + contStatuses := pod.Status.ContainerStatuses + if len(contStatuses) == 0 { + framework.Logf("There are no container statuses for pod %s", pod.Name) + continue + } + restartCount := int(contStatuses[0].RestartCount) maxRestartCount = integer.IntMax(maxRestartCount, restartCount) framework.Logf("Logging agent %s on node %s was restarted %d times", diff --git a/test/e2e/instrumentation/logging/utils/wait.go b/test/e2e/instrumentation/logging/utils/wait.go index 6f0e44c5d6e..9d1c13c5810 100644 --- a/test/e2e/instrumentation/logging/utils/wait.go +++ b/test/e2e/instrumentation/logging/utils/wait.go @@ -150,9 +150,6 @@ func getFullIngestionPred(podsMap map[string]FiniteLoggingPod) NumberedIngestion return func(name string, occ map[int]bool) (bool, error) { p := podsMap[name] ok := len(occ) == p.ExpectedLineCount() - if !ok { - framework.Logf("Pod %s is still missing %d lines", name, p.ExpectedLineCount()-len(occ)) - } return ok, nil } } @@ -160,24 +157,27 @@ func getFullIngestionPred(podsMap map[string]FiniteLoggingPod) NumberedIngestion func getFullIngestionTimeout(podsMap map[string]FiniteLoggingPod, slack float64) NumberedTimeoutFun { return func(names []string, occs map[string]map[int]bool) error { totalGot, totalWant := 0, 0 - podsWithLosses := []string{} + lossMsgs := []string{} for _, name := range names { got := len(occs[name]) want := podsMap[name].ExpectedLineCount() if got != want { - podsWithLosses = append(podsWithLosses, name) + lossMsg := fmt.Sprintf("%s: %d lines", name, want-got) + lossMsgs = append(lossMsgs, lossMsg) } totalGot += got totalWant += want } - if len(podsWithLosses) > 0 { - framework.Logf("Still missing logs from: %s", strings.Join(podsWithLosses, ", ")) + if len(lossMsgs) > 0 { + framework.Logf("Still missing logs from:\n%s", strings.Join(lossMsgs, "\n")) } lostFrac := 1 - float64(totalGot)/float64(totalWant) if lostFrac > slack { return fmt.Errorf("still missing %.2f%% of logs, only %.2f%% is tolerable", lostFrac*100, slack*100) } + framework.Logf("Missing %.2f%% of logs, which is lower than the threshold %.2f%%", + lostFrac*100, slack*100) return nil } } From 48db05166a92414358757727b56d1f854d940e54 Mon Sep 17 00:00:00 2001 From: FengyunPan Date: Mon, 7 Aug 2017 17:11:40 +0800 Subject: [PATCH 070/183] Ignore the available volume when calling DetachDisk If use detachs the volume by nova in openstack env, volume becomes available. If nova instance is been deleted, nova will detach it automatically. So the "available" is fine since that means the volume is detached from instance already. --- .../providers/openstack/openstack_volumes.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/cloudprovider/providers/openstack/openstack_volumes.go b/pkg/cloudprovider/providers/openstack/openstack_volumes.go index 7f7b499bb77..a5479a4f4b6 100644 --- a/pkg/cloudprovider/providers/openstack/openstack_volumes.go +++ b/pkg/cloudprovider/providers/openstack/openstack_volumes.go @@ -215,11 +215,7 @@ func (os *OpenStack) AttachDisk(instanceID, volumeID string) (string, error) { if err != nil { return "", err } - if volume.Status != VolumeAvailableStatus { - errmsg := fmt.Sprintf("volume %s status is %s, not %s, can not be attached to instance %s.", volume.Name, volume.Status, VolumeAvailableStatus, instanceID) - glog.Errorf(errmsg) - return "", errors.New(errmsg) - } + cClient, err := os.NewComputeV2() if err != nil { return "", err @@ -258,6 +254,12 @@ func (os *OpenStack) DetachDisk(instanceID, volumeID string) error { if err != nil { return err } + if volume.Status == VolumeAvailableStatus { + // "available" is fine since that means the volume is detached from instance already. + glog.V(2).Infof("volume: %s has been detached from compute: %s ", volume.ID, instanceID) + return nil + } + if volume.Status != VolumeInUseStatus { errmsg := fmt.Sprintf("can not detach volume %s, its status is %s.", volume.Name, volume.Status) glog.Errorf(errmsg) From 6d789ee640dbd2f2f355bd6ccccdeea74f573805 Mon Sep 17 00:00:00 2001 From: Maciej Borsz Date: Mon, 7 Aug 2017 11:45:09 +0200 Subject: [PATCH 071/183] Fix storage tests for multizone test configuration. --- test/e2e/framework/volume_util.go | 9 +++++++-- test/e2e/storage/volumes.go | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/test/e2e/framework/volume_util.go b/test/e2e/framework/volume_util.go index 14efbbb4672..0a65928fafc 100644 --- a/test/e2e/framework/volume_util.go +++ b/test/e2e/framework/volume_util.go @@ -100,6 +100,8 @@ type VolumeTestConfig struct { ServerNodeName string // ClientNodeName is the spec.nodeName to run client pod on. Default is any node. ClientNodeName string + // NodeSelector to use in pod spec (server, client and injector pods). + NodeSelector map[string]string } // VolumeTest contains a volume to mount into a client pod and its @@ -286,6 +288,7 @@ func StartVolumeServer(client clientset.Interface, config VolumeTestConfig) *v1. Volumes: volumes, RestartPolicy: restartPolicy, NodeName: config.ServerNodeName, + NodeSelector: config.NodeSelector, }, } @@ -390,8 +393,9 @@ func TestVolumeClient(client clientset.Interface, config VolumeTestConfig, fsGro Level: "s0:c0,c1", }, }, - Volumes: []v1.Volume{}, - NodeName: config.ClientNodeName, + Volumes: []v1.Volume{}, + NodeName: config.ClientNodeName, + NodeSelector: config.NodeSelector, }, } podsNamespacer := client.CoreV1().Pods(config.Namespace) @@ -476,6 +480,7 @@ func InjectHtml(client clientset.Interface, config VolumeTestConfig, volume v1.V VolumeSource: volume, }, }, + NodeSelector: config.NodeSelector, }, } diff --git a/test/e2e/storage/volumes.go b/test/e2e/storage/volumes.go index 0fe7287dacb..f5c91a583f5 100644 --- a/test/e2e/storage/volumes.go +++ b/test/e2e/storage/volumes.go @@ -54,6 +54,7 @@ import ( "k8s.io/apimachinery/pkg/types" clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/cloudprovider/providers/vsphere" + kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/test/e2e/framework" ) @@ -429,6 +430,11 @@ var _ = SIGDescribe("Volumes", func() { config = framework.VolumeTestConfig{ Namespace: namespace.Name, Prefix: "pd", + // PD will be created in framework.TestContext.CloudConfig.Zone zone, + // so pods should be also scheduled there. + NodeSelector: map[string]string{ + kubeletapis.LabelZoneFailureDomain: framework.TestContext.CloudConfig.Zone, + }, } }) From 18ae1ba813f6ba8ff7b80ede4f6471d4c8b46a3b Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Mon, 7 Aug 2017 19:29:39 +0800 Subject: [PATCH 072/183] Handled taints on node in batch. --- pkg/controller/BUILD | 3 + pkg/controller/controller_utils.go | 123 ++++---- pkg/controller/controller_utils_test.go | 358 ++++++++++++++++++++++++ pkg/controller/node/controller_utils.go | 2 +- pkg/controller/node/node_controller.go | 4 +- test/e2e/framework/util.go | 2 +- 6 files changed, 440 insertions(+), 52 deletions(-) diff --git a/pkg/controller/BUILD b/pkg/controller/BUILD index 4d2d889d8ee..dc6dbfbac2b 100644 --- a/pkg/controller/BUILD +++ b/pkg/controller/BUILD @@ -18,7 +18,9 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/controller/node/testutil:go_default_library", "//pkg/securitycontext:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", @@ -32,6 +34,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", diff --git a/pkg/controller/controller_utils.go b/pkg/controller/controller_utils.go index 4a6d6863dab..4833b09cf1a 100644 --- a/pkg/controller/controller_utils.go +++ b/pkg/controller/controller_utils.go @@ -885,50 +885,11 @@ func (o ReplicaSetsBySizeNewer) Less(i, j int) bool { return *(o[i].Spec.Replicas) > *(o[j].Spec.Replicas) } -func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taint *v1.Taint) error { - firstTry := true - return clientretry.RetryOnConflict(UpdateTaintBackoff, func() error { - var err error - var oldNode *v1.Node - // First we try getting node from the API server cache, as it's cheaper. If it fails - // we get it from etcd to be sure to have fresh data. - if firstTry { - oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{ResourceVersion: "0"}) - firstTry = false - } else { - oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) - } - if err != nil { - return err - } - newNode, ok, err := taintutils.AddOrUpdateTaint(oldNode, taint) - if err != nil { - return fmt.Errorf("Failed to update taint annotation!") - } - if !ok { - return nil - } - return PatchNodeTaints(c, nodeName, oldNode, newNode) - }) -} - -// RemoveTaintOffNode is for cleaning up taints temporarily added to node, -// won't fail if target taint doesn't exist or has been removed. -// If passed a node it'll check if there's anything to be done, if taint is not present it won't issue -// any API calls. -func RemoveTaintOffNode(c clientset.Interface, nodeName string, taint *v1.Taint, node *v1.Node) error { - // Short circuit for limiting amount of API calls. - if node != nil { - match := false - for i := range node.Spec.Taints { - if node.Spec.Taints[i].MatchTaint(taint) { - match = true - break - } - } - if !match { - return nil - } +// AddOrUpdateTaintOnNode add taints to the node. If taint was added into node, it'll issue API calls +// to update nodes; otherwise, no API calls. Return error if any. +func AddOrUpdateTaintOnNode(c clientset.Interface, nodeName string, taints ...*v1.Taint) error { + if len(taints) == 0 { + return nil } firstTry := true return clientretry.RetryOnConflict(UpdateTaintBackoff, func() error { @@ -945,11 +906,77 @@ func RemoveTaintOffNode(c clientset.Interface, nodeName string, taint *v1.Taint, if err != nil { return err } - newNode, ok, err := taintutils.RemoveTaint(oldNode, taint) - if err != nil { - return fmt.Errorf("Failed to update taint annotation!") + + var newNode *v1.Node + oldNodeCopy := oldNode + updated := false + for _, taint := range taints { + curNewNode, ok, err := taintutils.AddOrUpdateTaint(oldNodeCopy, taint) + if err != nil { + return fmt.Errorf("Failed to update taint of node!") + } + updated = updated || ok + newNode = curNewNode + oldNodeCopy = curNewNode } - if !ok { + if !updated { + return nil + } + return PatchNodeTaints(c, nodeName, oldNode, newNode) + }) +} + +// RemoveTaintOffNode is for cleaning up taints temporarily added to node, +// won't fail if target taint doesn't exist or has been removed. +// If passed a node it'll check if there's anything to be done, if taint is not present it won't issue +// any API calls. +func RemoveTaintOffNode(c clientset.Interface, nodeName string, node *v1.Node, taints ...*v1.Taint) error { + if len(taints) == 0 { + return nil + } + // Short circuit for limiting amount of API calls. + if node != nil { + match := false + for _, taint := range taints { + if taintutils.TaintExists(node.Spec.Taints, taint) { + match = true + break + } + } + if !match { + return nil + } + } + + firstTry := true + return clientretry.RetryOnConflict(UpdateTaintBackoff, func() error { + var err error + var oldNode *v1.Node + // First we try getting node from the API server cache, as it's cheaper. If it fails + // we get it from etcd to be sure to have fresh data. + if firstTry { + oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{ResourceVersion: "0"}) + firstTry = false + } else { + oldNode, err = c.Core().Nodes().Get(nodeName, metav1.GetOptions{}) + } + if err != nil { + return err + } + + var newNode *v1.Node + oldNodeCopy := oldNode + updated := false + for _, taint := range taints { + curNewNode, ok, err := taintutils.RemoveTaint(oldNodeCopy, taint) + if err != nil { + return fmt.Errorf("Failed to remove taint of node!") + } + updated = updated || ok + newNode = curNewNode + oldNodeCopy = curNewNode + } + if !updated { return nil } return PatchNodeTaints(c, nodeName, oldNode, newNode) diff --git a/pkg/controller/controller_utils_test.go b/pkg/controller/controller_utils_test.go index 0e4fdd3fa21..7abc0af277e 100644 --- a/pkg/controller/controller_utils_test.go +++ b/pkg/controller/controller_utils_test.go @@ -37,12 +37,15 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/uuid" clientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/kubernetes/fake" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/record" utiltesting "k8s.io/client-go/util/testing" "k8s.io/kubernetes/pkg/api" + _ "k8s.io/kubernetes/pkg/api/install" "k8s.io/kubernetes/pkg/api/testapi" + "k8s.io/kubernetes/pkg/controller/node/testutil" "k8s.io/kubernetes/pkg/securitycontext" ) @@ -479,3 +482,358 @@ func TestComputeHash(t *testing.T) { } } } + +func TestRemoveTaintOffNode(t *testing.T) { + tests := []struct { + name string + nodeHandler *testutil.FakeNodeHandler + nodeName string + taintsToRemove []*v1.Taint + expectedTaints []v1.Taint + requestCount int + }{ + { + name: "remove one taint from node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToRemove: []*v1.Taint{ + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + }, + requestCount: 4, + }, + { + name: "remove multiple taints from node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + {Key: "key4", Value: "value4", Effect: "NoExecute"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToRemove: []*v1.Taint{ + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + }, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key4", Value: "value4", Effect: "NoExecute"}, + }, + requestCount: 4, + }, + { + name: "remove no-exist taints from node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToRemove: []*v1.Taint{ + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + }, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + requestCount: 2, + }, + { + name: "remove taint from node without taints", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToRemove: []*v1.Taint{ + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + }, + expectedTaints: nil, + requestCount: 2, + }, + { + name: "remove empty taint list from node without taints", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToRemove: []*v1.Taint{}, + expectedTaints: nil, + requestCount: 2, + }, + { + name: "remove empty taint list from node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToRemove: []*v1.Taint{}, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + requestCount: 2, + }, + } + for _, test := range tests { + node, _ := test.nodeHandler.Get(test.nodeName, metav1.GetOptions{}) + if err := RemoveTaintOffNode(test.nodeHandler, test.nodeName, node, test.taintsToRemove...); err != nil { + t.Errorf("%s: RemoveTaintOffNode() error = %v", test.name, err) + } + + node, _ = test.nodeHandler.Get(test.nodeName, metav1.GetOptions{}) + if !reflect.DeepEqual(node.Spec.Taints, test.expectedTaints) { + t.Errorf("%s: failed to remove taint off node: expected %+v, got %+v", + test.name, test.expectedTaints, node.Spec.Taints) + } + + if test.nodeHandler.RequestCount != test.requestCount { + t.Errorf("%s: unexpected request count: expected %+v, got %+v", + test.name, test.requestCount, test.nodeHandler.RequestCount) + } + } +} + +func TestAddOrUpdateTaintOnNode(t *testing.T) { + tests := []struct { + name string + nodeHandler *testutil.FakeNodeHandler + nodeName string + taintsToAdd []*v1.Taint + expectedTaints []v1.Taint + requestCount int + }{ + { + name: "add one taint on node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToAdd: []*v1.Taint{ + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + requestCount: 3, + }, + { + name: "add multiple taints to node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToAdd: []*v1.Taint{ + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + {Key: "key4", Value: "value4", Effect: "NoExecute"}, + }, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + {Key: "key4", Value: "value4", Effect: "NoExecute"}, + }, + requestCount: 3, + }, + { + name: "add exist taints to node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToAdd: []*v1.Taint{ + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + requestCount: 3, + }, + { + name: "add taint to node without taints", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToAdd: []*v1.Taint{ + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + }, + expectedTaints: []v1.Taint{ + {Key: "key3", Value: "value3", Effect: "NoSchedule"}, + }, + requestCount: 3, + }, + { + name: "add empty taint list to node without taints", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToAdd: []*v1.Taint{}, + expectedTaints: nil, + requestCount: 1, + }, + { + name: "add empty taint list to node", + nodeHandler: &testutil.FakeNodeHandler{ + Existing: []*v1.Node{ + { + ObjectMeta: metav1.ObjectMeta{ + Name: "node1", + }, + Spec: v1.NodeSpec{ + Taints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + }, + }, + }, + Clientset: fake.NewSimpleClientset(&v1.PodList{Items: []v1.Pod{*testutil.NewPod("pod0", "node0")}}), + }, + nodeName: "node1", + taintsToAdd: []*v1.Taint{}, + expectedTaints: []v1.Taint{ + {Key: "key1", Value: "value1", Effect: "NoSchedule"}, + {Key: "key2", Value: "value2", Effect: "NoExecute"}, + }, + requestCount: 1, + }, + } + for _, test := range tests { + if err := AddOrUpdateTaintOnNode(test.nodeHandler, test.nodeName, test.taintsToAdd...); err != nil { + t.Errorf("%s: AddOrUpdateTaintOnNode() error = %v", test.name, err) + } + + node, _ := test.nodeHandler.Get(test.nodeName, metav1.GetOptions{}) + if !reflect.DeepEqual(node.Spec.Taints, test.expectedTaints) { + t.Errorf("%s: failed to add taint to node: expected %+v, got %+v", + test.name, test.expectedTaints, node.Spec.Taints) + } + + if test.nodeHandler.RequestCount != test.requestCount { + t.Errorf("%s: unexpected request count: expected %+v, got %+v", + test.name, test.requestCount, test.nodeHandler.RequestCount) + } + } +} diff --git a/pkg/controller/node/controller_utils.go b/pkg/controller/node/controller_utils.go index 035dfdc6f9a..9b5666d5861 100644 --- a/pkg/controller/node/controller_utils.go +++ b/pkg/controller/node/controller_utils.go @@ -303,7 +303,7 @@ func swapNodeControllerTaint(kubeClient clientset.Interface, taintToAdd, taintTo } glog.V(4).Infof("Added %v Taint to Node %v", taintToAdd, node.Name) - err = controller.RemoveTaintOffNode(kubeClient, node.Name, taintToRemove, node) + err = controller.RemoveTaintOffNode(kubeClient, node.Name, node, taintToRemove) if err != nil { utilruntime.HandleError( fmt.Errorf( diff --git a/pkg/controller/node/node_controller.go b/pkg/controller/node/node_controller.go index 1df7d2d2c3e..5a2fa6f89f0 100644 --- a/pkg/controller/node/node_controller.go +++ b/pkg/controller/node/node_controller.go @@ -1072,12 +1072,12 @@ func (nc *NodeController) markNodeForTainting(node *v1.Node) bool { func (nc *NodeController) markNodeAsHealthy(node *v1.Node) (bool, error) { nc.evictorLock.Lock() defer nc.evictorLock.Unlock() - err := controller.RemoveTaintOffNode(nc.kubeClient, node.Name, UnreachableTaintTemplate, node) + err := controller.RemoveTaintOffNode(nc.kubeClient, node.Name, node, UnreachableTaintTemplate) if err != nil { glog.Errorf("Failed to remove taint from node %v: %v", node.Name, err) return false, err } - err = controller.RemoveTaintOffNode(nc.kubeClient, node.Name, NotReadyTaintTemplate, node) + err = controller.RemoveTaintOffNode(nc.kubeClient, node.Name, node, NotReadyTaintTemplate) if err != nil { glog.Errorf("Failed to remove taint from node %v: %v", node.Name, err) return false, err diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 1a9130414b0..0b6455f83c3 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -2551,7 +2551,7 @@ func ExpectNodeHasLabel(c clientset.Interface, nodeName string, labelKey string, } func RemoveTaintOffNode(c clientset.Interface, nodeName string, taint v1.Taint) { - ExpectNoError(controller.RemoveTaintOffNode(c, nodeName, &taint, nil)) + ExpectNoError(controller.RemoveTaintOffNode(c, nodeName, nil, &taint)) VerifyThatTaintIsGone(c, nodeName, &taint) } From 2ebd743be8968228c52562516357b75cfb514ec4 Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Sat, 5 Aug 2017 14:49:10 +0800 Subject: [PATCH 073/183] Added toleration for node condition taints. --- pkg/controller/daemon/daemon_controller.go | 29 +++++++++ .../daemon/daemon_controller_test.go | 62 +++++++++++++++++++ pkg/controller/daemon/util/BUILD | 3 + pkg/controller/daemon/util/daemonset_util.go | 27 ++++++++ pkg/kubelet/types/pod_update.go | 10 ++- 5 files changed, 129 insertions(+), 2 deletions(-) diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index 61919a412e0..33ee04929ab 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -1042,6 +1042,30 @@ func (dsc *DaemonSetsController) simulate(newPod *v1.Pod, node *v1.Node, ds *ext Effect: v1.TaintEffectNoExecute, }) + // According to TaintNodesByCondition, all DaemonSet pods should tolerate + // MemoryPressure and DisPressure taints, and the critical pods should tolerate + // OutOfDisk taint additional. + v1helper.AddOrUpdateTolerationInPod(newPod, &v1.Toleration{ + Key: algorithm.TaintNodeDiskPressure, + Operator: v1.TolerationOpExists, + Effect: v1.TaintEffectNoSchedule, + }) + + v1helper.AddOrUpdateTolerationInPod(newPod, &v1.Toleration{ + Key: algorithm.TaintNodeMemoryPressure, + Operator: v1.TolerationOpExists, + Effect: v1.TaintEffectNoSchedule, + }) + + if utilfeature.DefaultFeatureGate.Enabled(features.ExperimentalCriticalPodAnnotation) && + kubelettypes.IsCriticalPod(newPod) { + v1helper.AddOrUpdateTolerationInPod(newPod, &v1.Toleration{ + Key: algorithm.TaintNodeOutOfDisk, + Operator: v1.TolerationOpExists, + Effect: v1.TaintEffectNoSchedule, + }) + } + pods := []*v1.Pod{} podList, err := dsc.podLister.List(labels.Everything()) @@ -1214,6 +1238,11 @@ func Predicates(pod *v1.Pod, nodeInfo *schedulercache.NodeInfo) (bool, []algorit func NodeConditionPredicates(nodeInfo *schedulercache.NodeInfo) (bool, []algorithm.PredicateFailureReason) { reasons := []algorithm.PredicateFailureReason{} + // If TaintNodesByCondition feature was enabled, account PodToleratesNodeTaints predicates. + if utilfeature.DefaultFeatureGate.Enabled(features.TaintNodesByCondition) { + return true, nil + } + for _, c := range nodeInfo.Node().Status.Conditions { // TODO: There are other node status that the DaemonSet should ideally respect too, // e.g. MemoryPressure, and DiskPressure diff --git a/pkg/controller/daemon/daemon_controller_test.go b/pkg/controller/daemon/daemon_controller_test.go index 921cd6fc3dd..0c918fef4f2 100644 --- a/pkg/controller/daemon/daemon_controller_test.go +++ b/pkg/controller/daemon/daemon_controller_test.go @@ -1251,6 +1251,68 @@ func TestOutOfDiskNodeDaemonLaunchesCriticalPod(t *testing.T) { } } +// DaemonSet should launch a critical pod even when the node with OutOfDisk taints. +func TestTaintOutOfDiskNodeDaemonLaunchesCriticalPod(t *testing.T) { + for _, strategy := range updateStrategies() { + ds := newDaemonSet("critical") + ds.Spec.UpdateStrategy = *strategy + setDaemonSetCritical(ds) + manager, podControl, _ := newTestController(ds) + + node := newNode("not-enough-disk", nil) + node.Status.Conditions = []v1.NodeCondition{{Type: v1.NodeOutOfDisk, Status: v1.ConditionTrue}} + node.Spec.Taints = []v1.Taint{{Key: algorithm.TaintNodeOutOfDisk, Effect: v1.TaintEffectNoSchedule}} + manager.nodeStore.Add(node) + + // NOTE: Whether or not TaintNodesByCondition is enabled, it'll add toleration to DaemonSet pods. + + // Without enabling critical pod annotation feature gate, we shouldn't create critical pod + utilfeature.DefaultFeatureGate.Set("ExperimentalCriticalPodAnnotation=False") + utilfeature.DefaultFeatureGate.Set("TaintNodesByCondition=True") + manager.dsStore.Add(ds) + syncAndValidateDaemonSets(t, manager, ds, podControl, 0, 0, 0) + + // With enabling critical pod annotation feature gate, we will create critical pod + utilfeature.DefaultFeatureGate.Set("ExperimentalCriticalPodAnnotation=True") + utilfeature.DefaultFeatureGate.Set("TaintNodesByCondition=False") + manager.dsStore.Add(ds) + syncAndValidateDaemonSets(t, manager, ds, podControl, 1, 0, 0) + + // Rollback feature gate to false. + utilfeature.DefaultFeatureGate.Set("TaintNodesByCondition=False") + utilfeature.DefaultFeatureGate.Set("ExperimentalCriticalPodAnnotation=False") + } +} + +// DaemonSet should launch a pod even when the node with MemoryPressure/DiskPressure taints. +func TestTaintPressureNodeDaemonLaunchesPod(t *testing.T) { + for _, strategy := range updateStrategies() { + ds := newDaemonSet("critical") + ds.Spec.UpdateStrategy = *strategy + setDaemonSetCritical(ds) + manager, podControl, _ := newTestController(ds) + + node := newNode("resources-pressure", nil) + node.Status.Conditions = []v1.NodeCondition{ + {Type: v1.NodeDiskPressure, Status: v1.ConditionTrue}, + {Type: v1.NodeMemoryPressure, Status: v1.ConditionTrue}, + } + node.Spec.Taints = []v1.Taint{ + {Key: algorithm.TaintNodeDiskPressure, Effect: v1.TaintEffectNoSchedule}, + {Key: algorithm.TaintNodeMemoryPressure, Effect: v1.TaintEffectNoSchedule}, + } + manager.nodeStore.Add(node) + + // Enabling critical pod and taint nodes by condition feature gate should create critical pod + utilfeature.DefaultFeatureGate.Set("TaintNodesByCondition=True") + manager.dsStore.Add(ds) + syncAndValidateDaemonSets(t, manager, ds, podControl, 1, 0, 0) + + // Rollback feature gate to false. + utilfeature.DefaultFeatureGate.Set("TaintNodesByCondition=False") + } +} + // DaemonSet should launch a critical pod even when the node has insufficient free resource. func TestInsufficientCapacityNodeDaemonLaunchesCriticalPod(t *testing.T) { for _, strategy := range updateStrategies() { diff --git a/pkg/controller/daemon/util/BUILD b/pkg/controller/daemon/util/BUILD index a14a6b39c07..e74429a2bf3 100644 --- a/pkg/controller/daemon/util/BUILD +++ b/pkg/controller/daemon/util/BUILD @@ -15,11 +15,14 @@ go_library( deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", + "//pkg/features:go_default_library", + "//pkg/kubelet/types:go_default_library", "//pkg/util/labels:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", ], ) diff --git a/pkg/controller/daemon/util/daemonset_util.go b/pkg/controller/daemon/util/daemonset_util.go index 8c0bc1aaa32..ebb8f86a18b 100644 --- a/pkg/controller/daemon/util/daemonset_util.go +++ b/pkg/controller/daemon/util/daemonset_util.go @@ -22,9 +22,12 @@ import ( "k8s.io/api/core/v1" extensions "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/client-go/kubernetes/scheme" v1helper "k8s.io/kubernetes/pkg/api/v1/helper" podutil "k8s.io/kubernetes/pkg/api/v1/pod" + "k8s.io/kubernetes/pkg/features" + kubelettypes "k8s.io/kubernetes/pkg/kubelet/types" labelsutil "k8s.io/kubernetes/pkg/util/labels" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" ) @@ -55,6 +58,30 @@ func CreatePodTemplate(template v1.PodTemplateSpec, generation int64, hash strin Effect: v1.TaintEffectNoExecute, }) + // According to TaintNodesByCondition feature, all DaemonSet pods should tolerate + // MemoryPressure and DisPressure taints, and the critical pods should tolerate + // OutOfDisk taint. + v1helper.AddOrUpdateTolerationInPodSpec(&newTemplate.Spec, &v1.Toleration{ + Key: algorithm.TaintNodeDiskPressure, + Operator: v1.TolerationOpExists, + Effect: v1.TaintEffectNoSchedule, + }) + + v1helper.AddOrUpdateTolerationInPodSpec(&newTemplate.Spec, &v1.Toleration{ + Key: algorithm.TaintNodeMemoryPressure, + Operator: v1.TolerationOpExists, + Effect: v1.TaintEffectNoSchedule, + }) + + if utilfeature.DefaultFeatureGate.Enabled(features.ExperimentalCriticalPodAnnotation) && + kubelettypes.IsCritical(newTemplate.Namespace, newTemplate.Annotations) { + v1helper.AddOrUpdateTolerationInPodSpec(&newTemplate.Spec, &v1.Toleration{ + Key: algorithm.TaintNodeOutOfDisk, + Operator: v1.TolerationOpExists, + Effect: v1.TaintEffectNoExecute, + }) + } + templateGenerationStr := fmt.Sprint(generation) newTemplate.ObjectMeta.Labels = labelsutil.CloneAndAddLabel( template.ObjectMeta.Labels, diff --git a/pkg/kubelet/types/pod_update.go b/pkg/kubelet/types/pod_update.go index 45a53a0145e..2b95b3b1879 100644 --- a/pkg/kubelet/types/pod_update.go +++ b/pkg/kubelet/types/pod_update.go @@ -141,11 +141,17 @@ func (sp SyncPodType) String() string { // key. Both the rescheduler and the kubelet use this key to make admission // and scheduling decisions. func IsCriticalPod(pod *v1.Pod) bool { + return IsCritical(pod.Namespace, pod.Annotations) +} + +// IsCritical returns true if parameters bear the critical pod annotation +// key. The DaemonSetController use this key directly to make scheduling decisions. +func IsCritical(ns string, annotations map[string]string) bool { // Critical pods are restricted to "kube-system" namespace as of now. - if pod.Namespace != kubeapi.NamespaceSystem { + if ns != kubeapi.NamespaceSystem { return false } - val, ok := pod.Annotations[CriticalPodAnnotationKey] + val, ok := annotations[CriticalPodAnnotationKey] if ok && val == "" { return true } From 53742560cdb1b2f4ba46eda0ad476087364b6224 Mon Sep 17 00:00:00 2001 From: FengyunPan Date: Mon, 7 Aug 2017 20:18:20 +0800 Subject: [PATCH 074/183] There is no need to split service key repeatedly --- pkg/controller/endpoint/endpoints_controller.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkg/controller/endpoint/endpoints_controller.go b/pkg/controller/endpoint/endpoints_controller.go index fcc0991d412..f1cea8b39b0 100644 --- a/pkg/controller/endpoint/endpoints_controller.go +++ b/pkg/controller/endpoint/endpoints_controller.go @@ -328,12 +328,6 @@ func (e *EndpointController) syncService(key string) error { // service is deleted. However, if we're down at the time when // the service is deleted, we will miss that deletion, so this // doesn't completely solve the problem. See #6877. - namespace, name, err := cache.SplitMetaNamespaceKey(key) - if err != nil { - utilruntime.HandleError(fmt.Errorf("Need to delete endpoint with key %q, but couldn't understand the key: %v", key, err)) - // Don't retry, as the key isn't going to magically become understandable. - return nil - } err = e.client.Core().Endpoints(namespace).Delete(name, nil) if err != nil && !errors.IsNotFound(err) { return err From ec397c4374f3e5d99f6ca8ee79892e1f0d9d8d38 Mon Sep 17 00:00:00 2001 From: deads2k Date: Thu, 3 Aug 2017 08:39:43 -0400 Subject: [PATCH 075/183] convert default predicates to use the default --- hack/.golint_failures | 10 ---- .../externaladmissionhookconfiguration/BUILD | 4 -- .../storage/storage.go | 3 +- .../strategy.go | 30 ----------- .../initializerconfiguration/BUILD | 4 -- .../storage/storage.go | 3 +- .../initializerconfiguration/strategy.go | 30 ----------- pkg/registry/apps/controllerrevision/BUILD | 6 --- .../controllerrevision/storage/storage.go | 3 +- .../apps/controllerrevision/strategy.go | 29 ----------- .../apps/controllerrevision/strategy_test.go | 51 ------------------- pkg/registry/apps/statefulset/BUILD | 4 -- .../apps/statefulset/storage/storage.go | 3 +- pkg/registry/apps/statefulset/strategy.go | 30 ----------- .../autoscaling/horizontalpodautoscaler/BUILD | 17 ------- .../storage/storage.go | 3 +- .../horizontalpodautoscaler/strategy.go | 26 ---------- .../horizontalpodautoscaler/strategy_test.go | 35 ------------- pkg/registry/certificates/certificates/BUILD | 4 -- .../certificates/storage/storage.go | 3 +- .../certificates/certificates/strategy.go | 27 ---------- pkg/registry/core/configmap/BUILD | 5 -- .../core/configmap/storage/storage.go | 3 +- pkg/registry/core/configmap/strategy.go | 29 ----------- pkg/registry/core/configmap/strategy_test.go | 10 ---- pkg/registry/core/endpoint/BUILD | 16 ------ pkg/registry/core/endpoint/storage/storage.go | 3 +- pkg/registry/core/endpoint/strategy.go | 30 ----------- pkg/registry/core/endpoint/strategy_test.go | 33 ------------ pkg/registry/core/limitrange/BUILD | 15 ------ .../core/limitrange/storage/storage.go | 3 +- pkg/registry/core/limitrange/strategy.go | 26 ---------- pkg/registry/core/limitrange/strategy_test.go | 33 ------------ pkg/registry/core/podtemplate/BUILD | 15 ------ .../core/podtemplate/storage/storage.go | 3 +- pkg/registry/core/podtemplate/strategy.go | 26 ---------- .../core/podtemplate/strategy_test.go | 33 ------------ pkg/registry/core/resourcequota/BUILD | 5 -- .../core/resourcequota/storage/storage.go | 3 +- pkg/registry/core/resourcequota/strategy.go | 29 ----------- .../core/resourcequota/strategy_test.go | 10 ---- pkg/registry/core/service/BUILD | 5 -- pkg/registry/core/service/storage/storage.go | 3 +- pkg/registry/core/service/strategy.go | 25 --------- pkg/registry/core/service/strategy_test.go | 10 ---- pkg/registry/core/serviceaccount/BUILD | 16 ------ .../core/serviceaccount/storage/storage.go | 3 +- pkg/registry/core/serviceaccount/strategy.go | 29 ----------- .../core/serviceaccount/strategy_test.go | 33 ------------ pkg/registry/extensions/daemonset/BUILD | 7 --- .../extensions/daemonset/storage/storage.go | 3 +- pkg/registry/extensions/daemonset/strategy.go | 31 ----------- .../extensions/daemonset/strategy_test.go | 12 ----- pkg/registry/extensions/deployment/BUILD | 6 --- .../extensions/deployment/storage/storage.go | 3 +- .../extensions/deployment/strategy.go | 31 ----------- .../extensions/deployment/strategy_test.go | 11 ---- pkg/registry/extensions/ingress/BUILD | 6 --- .../extensions/ingress/storage/storage.go | 3 +- pkg/registry/extensions/ingress/strategy.go | 31 ----------- .../extensions/ingress/strategy_test.go | 11 ---- pkg/registry/extensions/networkpolicy/BUILD | 4 -- .../networkpolicy/storage/storage.go | 3 +- .../extensions/networkpolicy/strategy.go | 30 ----------- .../extensions/podsecuritypolicy/BUILD | 4 -- .../podsecuritypolicy/storage/storage.go | 3 +- .../extensions/podsecuritypolicy/strategy.go | 29 ----------- pkg/registry/networking/networkpolicy/BUILD | 4 -- .../networkpolicy/storage/storage.go | 3 +- .../networking/networkpolicy/strategy.go | 29 ----------- pkg/registry/policy/poddisruptionbudget/BUILD | 4 -- .../poddisruptionbudget/storage/storage.go | 3 +- .../policy/poddisruptionbudget/strategy.go | 30 ----------- pkg/registry/rbac/clusterrole/BUILD | 3 -- .../rbac/clusterrole/storage/storage.go | 3 +- pkg/registry/rbac/clusterrole/strategy.go | 28 ---------- pkg/registry/rbac/clusterrolebinding/BUILD | 3 -- .../clusterrolebinding/storage/storage.go | 3 +- .../rbac/clusterrolebinding/strategy.go | 28 ---------- pkg/registry/rbac/role/BUILD | 3 -- pkg/registry/rbac/role/storage/storage.go | 3 +- pkg/registry/rbac/role/strategy.go | 28 ---------- pkg/registry/rbac/rolebinding/BUILD | 3 -- .../rbac/rolebinding/storage/storage.go | 3 +- pkg/registry/rbac/rolebinding/strategy.go | 28 ---------- pkg/registry/scheduling/priorityclass/BUILD | 4 -- .../priorityclass/storage/storage.go | 3 +- .../scheduling/priorityclass/strategy.go | 30 ----------- pkg/registry/settings/podpreset/BUILD | 4 -- .../settings/podpreset/storage/storage.go | 3 +- pkg/registry/settings/podpreset/strategy.go | 30 ----------- pkg/registry/storage/storageclass/BUILD | 4 -- .../storage/storageclass/storage/storage.go | 3 +- pkg/registry/storage/storageclass/strategy.go | 29 ----------- 94 files changed, 27 insertions(+), 1299 deletions(-) delete mode 100644 pkg/registry/autoscaling/horizontalpodautoscaler/strategy_test.go delete mode 100644 pkg/registry/core/endpoint/strategy_test.go delete mode 100644 pkg/registry/core/limitrange/strategy_test.go delete mode 100644 pkg/registry/core/podtemplate/strategy_test.go delete mode 100644 pkg/registry/core/serviceaccount/strategy_test.go diff --git a/hack/.golint_failures b/hack/.golint_failures index 6f06c2e926d..f978757401c 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -309,12 +309,9 @@ pkg/proxy/util pkg/proxy/winuserspace pkg/quota/evaluator/core pkg/quota/generic -pkg/registry/admissionregistration/externaladmissionhookconfiguration pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage -pkg/registry/admissionregistration/initializerconfiguration pkg/registry/admissionregistration/initializerconfiguration/storage pkg/registry/admissionregistration/rest -pkg/registry/apps/controllerrevision pkg/registry/apps/rest pkg/registry/apps/statefulset pkg/registry/apps/statefulset/storage @@ -337,11 +334,9 @@ pkg/registry/certificates/certificates pkg/registry/certificates/certificates/storage pkg/registry/certificates/rest pkg/registry/core/componentstatus -pkg/registry/core/configmap pkg/registry/core/endpoint/storage pkg/registry/core/event pkg/registry/core/event/storage -pkg/registry/core/limitrange pkg/registry/core/limitrange/storage pkg/registry/core/namespace pkg/registry/core/namespace/storage @@ -353,7 +348,6 @@ pkg/registry/core/persistentvolumeclaim pkg/registry/core/persistentvolumeclaim/storage pkg/registry/core/pod pkg/registry/core/pod/rest -pkg/registry/core/podtemplate pkg/registry/core/podtemplate/storage pkg/registry/core/replicationcontroller pkg/registry/core/replicationcontroller/storage @@ -377,13 +371,10 @@ pkg/registry/extensions/deployment pkg/registry/extensions/deployment/storage pkg/registry/extensions/ingress pkg/registry/extensions/ingress/storage -pkg/registry/extensions/networkpolicy pkg/registry/extensions/networkpolicy/storage -pkg/registry/extensions/podsecuritypolicy pkg/registry/extensions/replicaset pkg/registry/extensions/replicaset/storage pkg/registry/extensions/rest -pkg/registry/networking/networkpolicy pkg/registry/networking/networkpolicy/storage pkg/registry/networking/rest pkg/registry/policy/poddisruptionbudget @@ -404,7 +395,6 @@ pkg/registry/rbac/validation pkg/registry/registrytest pkg/registry/scheduling/priorityclass/storage pkg/registry/scheduling/rest -pkg/registry/settings/podpreset pkg/registry/settings/podpreset/storage pkg/registry/settings/rest pkg/registry/storage/rest diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD index a699ba6685f..e391b43c2d2 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD @@ -18,13 +18,9 @@ go_library( "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", "//pkg/apis/admissionregistration/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go index 8e7d570bcb0..86f5c7edd7e 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/storage.go @@ -40,7 +40,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*admissionregistration.ExternalAdmissionHookConfiguration).Name, nil }, - PredicateFunc: externaladmissionhookconfiguration.MatchExternalAdmissionHookConfiguration, DefaultQualifiedResource: admissionregistration.Resource("externaladmissionhookconfigurations"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("externaladmissionhookconfigurations"), @@ -48,7 +47,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: externaladmissionhookconfiguration.Strategy, DeleteStrategy: externaladmissionhookconfiguration.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: externaladmissionhookconfiguration.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go index 8876a40b42a..d6d26379542 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/strategy.go @@ -17,16 +17,11 @@ limitations under the License. package externaladmissionhookconfiguration import ( - "fmt" "reflect" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/admissionregistration" @@ -93,28 +88,3 @@ func (externaladmissionhookConfigurationStrategy) ValidateUpdate(ctx genericapir func (externaladmissionhookConfigurationStrategy) AllowUnconditionalUpdate() bool { return false } - -// MatchReplicaSet is the filter used by the generic etcd backend to route -// watch events from etcd to clients of the apiserver only interested in specific -// labels/fields. -func MatchExternalAdmissionHookConfiguration(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - ic, ok := obj.(*admissionregistration.ExternalAdmissionHookConfiguration) - if !ok { - return nil, nil, false, fmt.Errorf("Given object is not a ExternalAdmissionHookConfiguration.") - } - return labels.Set(ic.ObjectMeta.Labels), ExternalAdmissionHookConfigurationToSelectableFields(ic), ic.Initializers != nil, nil -} - -// ExternalAdmissionHookConfigurationToSelectableFields returns a field set that represents the object. -func ExternalAdmissionHookConfigurationToSelectableFields(ic *admissionregistration.ExternalAdmissionHookConfiguration) fields.Set { - return generic.ObjectMetaFieldsSet(&ic.ObjectMeta, false) -} diff --git a/pkg/registry/admissionregistration/initializerconfiguration/BUILD b/pkg/registry/admissionregistration/initializerconfiguration/BUILD index 0d42bfc42e6..f8320d35ac7 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/BUILD +++ b/pkg/registry/admissionregistration/initializerconfiguration/BUILD @@ -18,13 +18,9 @@ go_library( "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", "//pkg/apis/admissionregistration/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go b/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go index becea1ae56b..590759a9165 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go +++ b/pkg/registry/admissionregistration/initializerconfiguration/storage/storage.go @@ -40,7 +40,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ObjectNameFunc: func(obj runtime.Object) (string, error) { return obj.(*admissionregistration.InitializerConfiguration).Name, nil }, - PredicateFunc: initializerconfiguration.MatchInitializerConfiguration, DefaultQualifiedResource: admissionregistration.Resource("initializerconfigurations"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("initializerconfigurations"), @@ -48,7 +47,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: initializerconfiguration.Strategy, DeleteStrategy: initializerconfiguration.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: initializerconfiguration.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/admissionregistration/initializerconfiguration/strategy.go b/pkg/registry/admissionregistration/initializerconfiguration/strategy.go index 6484e5c70b2..3f0e73925bc 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/strategy.go +++ b/pkg/registry/admissionregistration/initializerconfiguration/strategy.go @@ -17,16 +17,11 @@ limitations under the License. package initializerconfiguration import ( - "fmt" "reflect" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/admissionregistration" @@ -93,28 +88,3 @@ func (initializerConfigurationStrategy) ValidateUpdate(ctx genericapirequest.Con func (initializerConfigurationStrategy) AllowUnconditionalUpdate() bool { return false } - -// MatchReplicaSet is the filter used by the generic etcd backend to route -// watch events from etcd to clients of the apiserver only interested in specific -// labels/fields. -func MatchInitializerConfiguration(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - ic, ok := obj.(*admissionregistration.InitializerConfiguration) - if !ok { - return nil, nil, false, fmt.Errorf("Given object is not a InitializerConfiguration.") - } - return labels.Set(ic.ObjectMeta.Labels), InitializerConfigurationToSelectableFields(ic), ic.ObjectMeta.Initializers != nil, nil -} - -// InitializerConfigurationToSelectableFields returns a field set that represents the object. -func InitializerConfigurationToSelectableFields(ic *admissionregistration.InitializerConfiguration) fields.Set { - return generic.ObjectMetaFieldsSet(&ic.ObjectMeta, false) -} diff --git a/pkg/registry/apps/controllerrevision/BUILD b/pkg/registry/apps/controllerrevision/BUILD index e656b6cb948..51490282900 100644 --- a/pkg/registry/apps/controllerrevision/BUILD +++ b/pkg/registry/apps/controllerrevision/BUILD @@ -17,8 +17,6 @@ go_test( "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", ], @@ -35,14 +33,10 @@ go_library( "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/apps/controllerrevision/storage/storage.go b/pkg/registry/apps/controllerrevision/storage/storage.go index 556d5ef1be5..8c4d7024fdb 100644 --- a/pkg/registry/apps/controllerrevision/storage/storage.go +++ b/pkg/registry/apps/controllerrevision/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &apps.ControllerRevision{} }, NewListFunc: func() runtime.Object { return &apps.ControllerRevisionList{} }, - PredicateFunc: controllerrevision.MatchControllerRevision, DefaultQualifiedResource: apps.Resource("controllerrevisions"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("controllerrevisions"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: controllerrevision.Strategy, DeleteStrategy: controllerrevision.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: controllerrevision.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) } diff --git a/pkg/registry/apps/controllerrevision/strategy.go b/pkg/registry/apps/controllerrevision/strategy.go index 89cb78ab9e6..f6f207b9053 100644 --- a/pkg/registry/apps/controllerrevision/strategy.go +++ b/pkg/registry/apps/controllerrevision/strategy.go @@ -17,16 +17,10 @@ limitations under the License. package controllerrevision import ( - "errors" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" @@ -83,26 +77,3 @@ func (strategy) ValidateUpdate(ctx genericapirequest.Context, newObj, oldObj run oldRevision, newRevision := oldObj.(*apps.ControllerRevision), newObj.(*apps.ControllerRevision) return validation.ValidateControllerRevisionUpdate(newRevision, oldRevision) } - -// ControllerRevisionToSelectableFields returns a field set that represents the object for matching purposes. -func ControllerRevisionToSelectableFields(revision *apps.ControllerRevision) fields.Set { - return generic.ObjectMetaFieldsSet(&revision.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - history, ok := obj.(*apps.ControllerRevision) - if !ok { - return nil, nil, false, errors.New("supplied object is not an ControllerRevision") - } - return labels.Set(history.ObjectMeta.Labels), ControllerRevisionToSelectableFields(history), history.Initializers != nil, nil -} - -// MatchControllerRevision returns a generic matcher for a given label and field selector. -func MatchControllerRevision(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/apps/controllerrevision/strategy_test.go b/pkg/registry/apps/controllerrevision/strategy_test.go index bba85db130c..594e33277ac 100644 --- a/pkg/registry/apps/controllerrevision/strategy_test.go +++ b/pkg/registry/apps/controllerrevision/strategy_test.go @@ -20,8 +20,6 @@ import ( "testing" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" @@ -127,55 +125,6 @@ func TestStrategy_ValidateUpdate(t *testing.T) { } } -func TestControllerRevisionToSelectableFields(t *testing.T) { - rev := newControllerRevision("validname", "validns", newObject(), 0) - fieldSet := ControllerRevisionToSelectableFields(rev) - if fieldSet.Get("metadata.name") != rev.Name { - t.Errorf("expeted %s found %s", rev.Name, fieldSet.Get("metadata.name")) - } - if fieldSet.Get("metadata.namespace") != rev.Namespace { - t.Errorf("expeted %s found %s", rev.Namespace, fieldSet.Get("metadata.namespace")) - } -} - -func TestGetAttrs(t *testing.T) { - rev := newControllerRevision("validname", "validns", newObject(), 0) - labelSet, fieldSet, uninitialized, err := GetAttrs(rev) - if err != nil { - t.Fatal(err) - } - if uninitialized { - t.Errorf("unexpected attrs") - } - if fieldSet.Get("metadata.name") != rev.Name { - t.Errorf("expeted %s found %s", rev.Name, fieldSet.Get("metadata.name")) - } - if fieldSet.Get("metadata.namespace") != rev.Namespace { - t.Errorf("expeted %s found %s", rev.Namespace, fieldSet.Get("metadata.namespace")) - } - if labelSet.Get("foo") != rev.Labels["foo"] { - t.Errorf("expected %s found %s", rev.Labels["foo"], labelSet.Get("foo")) - } -} - -func TestMatchControllerRevision(t *testing.T) { - rev := newControllerRevision("validname", "validns", newObject(), 0) - ls := labels.SelectorFromSet(labels.Set(rev.Labels)) - pred := MatchControllerRevision(ls, nil) - if matches, err := pred.Matches(rev); err != nil { - t.Error(err) - } else if !matches { - t.Error("failed to match ControllerRevision by labels") - } - fs := fields.SelectorFromSet(ControllerRevisionToSelectableFields(rev)) - pred = MatchControllerRevision(ls, fs) - if matches, err := pred.Matches(rev); err != nil { - t.Error(err) - } else if !matches { - t.Error("failed to match ControllerRevision by fields") - } -} - func newControllerRevision(name, namespace string, data runtime.Object, revision int64) *apps.ControllerRevision { return &apps.ControllerRevision{ ObjectMeta: metav1.ObjectMeta{ diff --git a/pkg/registry/apps/statefulset/BUILD b/pkg/registry/apps/statefulset/BUILD index ca2c3e58142..c9d4f03c723 100644 --- a/pkg/registry/apps/statefulset/BUILD +++ b/pkg/registry/apps/statefulset/BUILD @@ -20,14 +20,10 @@ go_library( "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/apps/statefulset/storage/storage.go b/pkg/registry/apps/statefulset/storage/storage.go index d40f1d14c5e..dac28b0e846 100644 --- a/pkg/registry/apps/statefulset/storage/storage.go +++ b/pkg/registry/apps/statefulset/storage/storage.go @@ -40,7 +40,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { Copier: api.Scheme, NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} }, NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} }, - PredicateFunc: statefulset.MatchStatefulSet, DefaultQualifiedResource: appsapi.Resource("statefulsets"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("statefulsets"), @@ -48,7 +47,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { UpdateStrategy: statefulset.Strategy, DeleteStrategy: statefulset.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: statefulset.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/apps/statefulset/strategy.go b/pkg/registry/apps/statefulset/strategy.go index eda0b2a1fe8..9a737e8cfd2 100644 --- a/pkg/registry/apps/statefulset/strategy.go +++ b/pkg/registry/apps/statefulset/strategy.go @@ -17,17 +17,11 @@ limitations under the License. package statefulset import ( - "fmt" - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" @@ -106,30 +100,6 @@ func (statefulSetStrategy) AllowUnconditionalUpdate() bool { return true } -// StatefulSetToSelectableFields returns a field set that represents the object. -func StatefulSetToSelectableFields(statefulSet *apps.StatefulSet) fields.Set { - return generic.ObjectMetaFieldsSet(&statefulSet.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - statefulSet, ok := obj.(*apps.StatefulSet) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not an StatefulSet.") - } - return labels.Set(statefulSet.ObjectMeta.Labels), StatefulSetToSelectableFields(statefulSet), statefulSet.Initializers != nil, nil -} - -// MatchStatefulSet is the filter used by the generic etcd backend to watch events -// from etcd to clients of the apiserver only interested in specific labels/fields. -func MatchStatefulSet(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - type statefulSetStatusStrategy struct { statefulSetStrategy } diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD b/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD index 8a4f6c8af45..fb954d07f4e 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD @@ -5,7 +5,6 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", - "go_test", ) go_library( @@ -19,29 +18,13 @@ go_library( "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", "//pkg/apis/autoscaling/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) -go_test( - name = "go_default_test", - srcs = ["strategy_test.go"], - library = ":go_default_library", - tags = ["automanaged"], - deps = [ - "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", - "//pkg/apis/autoscaling:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go index 3421192cd07..fb5b598d3a3 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/storage.go @@ -39,7 +39,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { Copier: api.Scheme, NewFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscaler{} }, NewListFunc: func() runtime.Object { return &autoscaling.HorizontalPodAutoscalerList{} }, - PredicateFunc: horizontalpodautoscaler.MatchAutoscaler, DefaultQualifiedResource: autoscaling.Resource("horizontalpodautoscalers"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("horizontalpodautoscalers"), @@ -47,7 +46,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { UpdateStrategy: horizontalpodautoscaler.Strategy, DeleteStrategy: horizontalpodautoscaler.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: horizontalpodautoscaler.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go b/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go index e7b05126e18..d9c81ab07e5 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/strategy.go @@ -17,14 +17,9 @@ limitations under the License. package horizontalpodautoscaler import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/autoscaling" @@ -86,27 +81,6 @@ func (autoscalerStrategy) AllowUnconditionalUpdate() bool { return true } -func AutoscalerToSelectableFields(hpa *autoscaling.HorizontalPodAutoscaler) fields.Set { - return nil -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - hpa, ok := obj.(*autoscaling.HorizontalPodAutoscaler) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a horizontal pod autoscaler.") - } - return labels.Set(hpa.ObjectMeta.Labels), AutoscalerToSelectableFields(hpa), hpa.Initializers != nil, nil -} - -func MatchAutoscaler(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - type autoscalerStatusStrategy struct { autoscalerStrategy } diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/strategy_test.go b/pkg/registry/autoscaling/horizontalpodautoscaler/strategy_test.go deleted file mode 100644 index f5df8fa211b..00000000000 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/strategy_test.go +++ /dev/null @@ -1,35 +0,0 @@ -/* -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. -*/ - -package horizontalpodautoscaler - -import ( - "testing" - - _ "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - apitesting "k8s.io/kubernetes/pkg/api/testing" - "k8s.io/kubernetes/pkg/apis/autoscaling" -) - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - testapi.Autoscaling.GroupVersion().String(), - "Autoscaler", - AutoscalerToSelectableFields(&autoscaling.HorizontalPodAutoscaler{}), - nil, - ) -} diff --git a/pkg/registry/certificates/certificates/BUILD b/pkg/registry/certificates/certificates/BUILD index 87f6427ff28..7b2d0f21dc0 100644 --- a/pkg/registry/certificates/certificates/BUILD +++ b/pkg/registry/certificates/certificates/BUILD @@ -22,15 +22,11 @@ go_library( "//pkg/apis/certificates/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/certificates/certificates/storage/storage.go b/pkg/registry/certificates/certificates/storage/storage.go index 2da56ee106f..372717f3ee3 100644 --- a/pkg/registry/certificates/certificates/storage/storage.go +++ b/pkg/registry/certificates/certificates/storage/storage.go @@ -39,7 +39,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Approva Copier: api.Scheme, NewFunc: func() runtime.Object { return &certificates.CertificateSigningRequest{} }, NewListFunc: func() runtime.Object { return &certificates.CertificateSigningRequestList{} }, - PredicateFunc: csrregistry.Matcher, DefaultQualifiedResource: certificates.Resource("certificatesigningrequests"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("certificatesigningrequests"), @@ -47,7 +46,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Approva UpdateStrategy: csrregistry.Strategy, DeleteStrategy: csrregistry.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: csrregistry.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/certificates/certificates/strategy.go b/pkg/registry/certificates/certificates/strategy.go index 15a3794e6f7..8ef65a2c01a 100644 --- a/pkg/registry/certificates/certificates/strategy.go +++ b/pkg/registry/certificates/certificates/strategy.go @@ -19,13 +19,9 @@ package certificates import ( "fmt" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/certificates" @@ -176,26 +172,3 @@ func (csrApprovalStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, func (csrApprovalStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateCertificateSigningRequestUpdate(obj.(*certificates.CertificateSigningRequest), old.(*certificates.CertificateSigningRequest)) } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - sa, ok := obj.(*certificates.CertificateSigningRequest) - if !ok { - return nil, nil, false, fmt.Errorf("not a CertificateSigningRequest") - } - return labels.Set(sa.Labels), SelectableFields(sa), sa.Initializers != nil, nil -} - -// Matcher returns a generic matcher for a given label and field selector. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// SelectableFields returns a field set that can be used for filter selection -func SelectableFields(obj *certificates.CertificateSigningRequest) fields.Set { - return generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false) -} diff --git a/pkg/registry/core/configmap/BUILD b/pkg/registry/core/configmap/BUILD index 6fb83539718..ff694136733 100644 --- a/pkg/registry/core/configmap/BUILD +++ b/pkg/registry/core/configmap/BUILD @@ -21,15 +21,11 @@ go_library( "//pkg/api/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) @@ -41,7 +37,6 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", ], diff --git a/pkg/registry/core/configmap/storage/storage.go b/pkg/registry/core/configmap/storage/storage.go index 8aed341b7c0..4a22ed8a310 100644 --- a/pkg/registry/core/configmap/storage/storage.go +++ b/pkg/registry/core/configmap/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &api.ConfigMap{} }, NewListFunc: func() runtime.Object { return &api.ConfigMapList{} }, - PredicateFunc: configmap.MatchConfigMap, DefaultQualifiedResource: api.Resource("configmaps"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("configmaps"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: configmap.Strategy, DeleteStrategy: configmap.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: configmap.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/core/configmap/strategy.go b/pkg/registry/core/configmap/strategy.go index abb663882fd..b44da007423 100644 --- a/pkg/registry/core/configmap/strategy.go +++ b/pkg/registry/core/configmap/strategy.go @@ -17,16 +17,10 @@ limitations under the License. package configmap import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" @@ -84,26 +78,3 @@ func (strategy) ValidateUpdate(ctx genericapirequest.Context, newObj, oldObj run return validation.ValidateConfigMapUpdate(newCfg, oldCfg) } - -// ConfigMapToSelectableFields returns a field set that represents the object for matching purposes. -func ConfigMapToSelectableFields(cfg *api.ConfigMap) fields.Set { - return generic.ObjectMetaFieldsSet(&cfg.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - cfg, ok := obj.(*api.ConfigMap) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a ConfigMap") - } - return labels.Set(cfg.ObjectMeta.Labels), ConfigMapToSelectableFields(cfg), cfg.Initializers != nil, nil -} - -// MatchConfigMap returns a generic matcher for a given label and field selector. -func MatchConfigMap(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/core/configmap/strategy_test.go b/pkg/registry/core/configmap/strategy_test.go index c001f59c420..a6ec3254e19 100644 --- a/pkg/registry/core/configmap/strategy_test.go +++ b/pkg/registry/core/configmap/strategy_test.go @@ -22,7 +22,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" ) func TestConfigMapStrategy(t *testing.T) { @@ -69,12 +68,3 @@ func TestConfigMapStrategy(t *testing.T) { t.Errorf("Expected a validation error") } } - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), - "ConfigMap", - ConfigMapToSelectableFields(&api.ConfigMap{}), - nil, - ) -} diff --git a/pkg/registry/core/endpoint/BUILD b/pkg/registry/core/endpoint/BUILD index 0c6153559b9..3ccf3b9c5c7 100644 --- a/pkg/registry/core/endpoint/BUILD +++ b/pkg/registry/core/endpoint/BUILD @@ -5,7 +5,6 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", - "go_test", ) go_library( @@ -22,30 +21,15 @@ go_library( "//pkg/api/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) -go_test( - name = "go_default_test", - srcs = ["strategy_test.go"], - library = ":go_default_library", - tags = ["automanaged"], - deps = [ - "//pkg/api:go_default_library", - "//pkg/api/testing:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/registry/core/endpoint/storage/storage.go b/pkg/registry/core/endpoint/storage/storage.go index 44abfc437a8..28e30837199 100644 --- a/pkg/registry/core/endpoint/storage/storage.go +++ b/pkg/registry/core/endpoint/storage/storage.go @@ -36,7 +36,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &api.Endpoints{} }, NewListFunc: func() runtime.Object { return &api.EndpointsList{} }, - PredicateFunc: endpoint.MatchEndpoints, DefaultQualifiedResource: api.Resource("endpoints"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("endpoints"), @@ -44,7 +43,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: endpoint.Strategy, DeleteStrategy: endpoint.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: endpoint.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/core/endpoint/strategy.go b/pkg/registry/core/endpoint/strategy.go index c50894b2e69..b3a6d4ee78b 100644 --- a/pkg/registry/core/endpoint/strategy.go +++ b/pkg/registry/core/endpoint/strategy.go @@ -17,15 +17,9 @@ limitations under the License. package endpoint import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - pkgstorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" endptspkg "k8s.io/kubernetes/pkg/api/endpoints" @@ -80,27 +74,3 @@ func (endpointsStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old func (endpointsStrategy) AllowUnconditionalUpdate() bool { return true } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - endpoints, ok := obj.(*api.Endpoints) - if !ok { - return nil, nil, false, fmt.Errorf("invalid object type %#v", obj) - } - return endpoints.Labels, EndpointsToSelectableFields(endpoints), endpoints.Initializers != nil, nil -} - -// MatchEndpoints returns a generic matcher for a given label and field selector. -func MatchEndpoints(label labels.Selector, field fields.Selector) pkgstorage.SelectionPredicate { - return pkgstorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// EndpointsToSelectableFields returns a field set that represents the object -// TODO: fields are not labels, and the validation rules for them do not apply. -func EndpointsToSelectableFields(endpoints *api.Endpoints) fields.Set { - return generic.ObjectMetaFieldsSet(&endpoints.ObjectMeta, true) -} diff --git a/pkg/registry/core/endpoint/strategy_test.go b/pkg/registry/core/endpoint/strategy_test.go deleted file mode 100644 index b520dd4c9d8..00000000000 --- a/pkg/registry/core/endpoint/strategy_test.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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. -*/ - -package endpoint - -import ( - "testing" - - "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" -) - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), - "Endpoints", - EndpointsToSelectableFields(&api.Endpoints{}), - nil, - ) -} diff --git a/pkg/registry/core/limitrange/BUILD b/pkg/registry/core/limitrange/BUILD index 12732c4d4a4..a8ee1cf5167 100644 --- a/pkg/registry/core/limitrange/BUILD +++ b/pkg/registry/core/limitrange/BUILD @@ -5,7 +5,6 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", - "go_test", ) go_library( @@ -18,28 +17,14 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) -go_test( - name = "go_default_test", - srcs = ["strategy_test.go"], - library = ":go_default_library", - tags = ["automanaged"], - deps = [ - "//pkg/api:go_default_library", - "//pkg/api/testing:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/registry/core/limitrange/storage/storage.go b/pkg/registry/core/limitrange/storage/storage.go index ba29960e362..68d43499d64 100644 --- a/pkg/registry/core/limitrange/storage/storage.go +++ b/pkg/registry/core/limitrange/storage/storage.go @@ -36,7 +36,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &api.LimitRange{} }, NewListFunc: func() runtime.Object { return &api.LimitRangeList{} }, - PredicateFunc: limitrange.MatchLimitRange, DefaultQualifiedResource: api.Resource("limitranges"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("limitranges"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { DeleteStrategy: limitrange.Strategy, ExportStrategy: limitrange.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: limitrange.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/core/limitrange/strategy.go b/pkg/registry/core/limitrange/strategy.go index 7f49d635a4f..25b9f14135a 100644 --- a/pkg/registry/core/limitrange/strategy.go +++ b/pkg/registry/core/limitrange/strategy.go @@ -17,15 +17,10 @@ limitations under the License. package limitrange import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" @@ -76,30 +71,9 @@ func (limitrangeStrategy) AllowUnconditionalUpdate() bool { return true } -func LimitRangeToSelectableFields(limitRange *api.LimitRange) fields.Set { - return nil -} - func (limitrangeStrategy) Export(genericapirequest.Context, runtime.Object, bool) error { // Copied from OpenShift exporter // TODO: this needs to be fixed // limitrange.Strategy.PrepareForCreate(ctx, obj) return nil } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - lr, ok := obj.(*api.LimitRange) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a limit range.") - } - return labels.Set(lr.ObjectMeta.Labels), LimitRangeToSelectableFields(lr), lr.Initializers != nil, nil -} - -func MatchLimitRange(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/core/limitrange/strategy_test.go b/pkg/registry/core/limitrange/strategy_test.go deleted file mode 100644 index 8c7c98e6efc..00000000000 --- a/pkg/registry/core/limitrange/strategy_test.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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. -*/ - -package limitrange - -import ( - "testing" - - "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" -) - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), - "LimitRange", - LimitRangeToSelectableFields(&api.LimitRange{}), - nil, - ) -} diff --git a/pkg/registry/core/podtemplate/BUILD b/pkg/registry/core/podtemplate/BUILD index ae3e776b5b8..24f51cc7e29 100644 --- a/pkg/registry/core/podtemplate/BUILD +++ b/pkg/registry/core/podtemplate/BUILD @@ -5,7 +5,6 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", - "go_test", ) go_library( @@ -18,27 +17,13 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) -go_test( - name = "go_default_test", - srcs = ["strategy_test.go"], - library = ":go_default_library", - tags = ["automanaged"], - deps = [ - "//pkg/api:go_default_library", - "//pkg/api/testing:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/registry/core/podtemplate/storage/storage.go b/pkg/registry/core/podtemplate/storage/storage.go index 13d1d436594..9376d4b4ba4 100644 --- a/pkg/registry/core/podtemplate/storage/storage.go +++ b/pkg/registry/core/podtemplate/storage/storage.go @@ -35,7 +35,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &api.PodTemplate{} }, NewListFunc: func() runtime.Object { return &api.PodTemplateList{} }, - PredicateFunc: podtemplate.MatchPodTemplate, DefaultQualifiedResource: api.Resource("podtemplates"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podtemplates"), @@ -46,7 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { ReturnDeletedObject: true, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: podtemplate.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/core/podtemplate/strategy.go b/pkg/registry/core/podtemplate/strategy.go index 87012c541cb..77a1dee56a3 100644 --- a/pkg/registry/core/podtemplate/strategy.go +++ b/pkg/registry/core/podtemplate/strategy.go @@ -17,14 +17,9 @@ limitations under the License. package podtemplate import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" @@ -83,24 +78,3 @@ func (podTemplateStrategy) Export(ctx genericapirequest.Context, obj runtime.Obj // Do nothing return nil } - -func PodTemplateToSelectableFields(podTemplate *api.PodTemplate) fields.Set { - return nil -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - pt, ok := obj.(*api.PodTemplate) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a pod template.") - } - return labels.Set(pt.ObjectMeta.Labels), PodTemplateToSelectableFields(pt), pt.Initializers != nil, nil -} - -func MatchPodTemplate(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/core/podtemplate/strategy_test.go b/pkg/registry/core/podtemplate/strategy_test.go deleted file mode 100644 index 0f82101df0b..00000000000 --- a/pkg/registry/core/podtemplate/strategy_test.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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. -*/ - -package podtemplate - -import ( - "testing" - - "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" -) - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), - "PodTemplate", - PodTemplateToSelectableFields(&api.PodTemplate{}), - nil, - ) -} diff --git a/pkg/registry/core/resourcequota/BUILD b/pkg/registry/core/resourcequota/BUILD index d77733d99bb..dd19588a71d 100644 --- a/pkg/registry/core/resourcequota/BUILD +++ b/pkg/registry/core/resourcequota/BUILD @@ -18,13 +18,9 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) @@ -36,7 +32,6 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/pkg/registry/core/resourcequota/storage/storage.go b/pkg/registry/core/resourcequota/storage/storage.go index 90638de8a6f..c708d114a41 100644 --- a/pkg/registry/core/resourcequota/storage/storage.go +++ b/pkg/registry/core/resourcequota/storage/storage.go @@ -38,7 +38,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { Copier: api.Scheme, NewFunc: func() runtime.Object { return &api.ResourceQuota{} }, NewListFunc: func() runtime.Object { return &api.ResourceQuotaList{} }, - PredicateFunc: resourcequota.MatchResourceQuota, DefaultQualifiedResource: api.Resource("resourcequotas"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("resourcequotas"), @@ -47,7 +46,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { DeleteStrategy: resourcequota.Strategy, ReturnDeletedObject: true, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: resourcequota.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/core/resourcequota/strategy.go b/pkg/registry/core/resourcequota/strategy.go index 6211e8f4bb0..e9c26c009ca 100644 --- a/pkg/registry/core/resourcequota/strategy.go +++ b/pkg/registry/core/resourcequota/strategy.go @@ -17,15 +17,9 @@ limitations under the License. package resourcequota import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" @@ -99,26 +93,3 @@ func (resourcequotaStatusStrategy) PrepareForUpdate(ctx genericapirequest.Contex func (resourcequotaStatusStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateResourceQuotaStatusUpdate(obj.(*api.ResourceQuota), old.(*api.ResourceQuota)) } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - resourcequotaObj, ok := obj.(*api.ResourceQuota) - if !ok { - return nil, nil, false, fmt.Errorf("not a resourcequota") - } - return labels.Set(resourcequotaObj.Labels), ResourceQuotaToSelectableFields(resourcequotaObj), resourcequotaObj.Initializers != nil, nil -} - -// MatchResourceQuota returns a generic matcher for a given label and field selector. -func MatchResourceQuota(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// ResourceQuotaToSelectableFields returns a field set that represents the object -func ResourceQuotaToSelectableFields(resourcequota *api.ResourceQuota) fields.Set { - return generic.ObjectMetaFieldsSet(&resourcequota.ObjectMeta, true) -} diff --git a/pkg/registry/core/resourcequota/strategy_test.go b/pkg/registry/core/resourcequota/strategy_test.go index bde07ac7a6f..6ec3816fc06 100644 --- a/pkg/registry/core/resourcequota/strategy_test.go +++ b/pkg/registry/core/resourcequota/strategy_test.go @@ -23,7 +23,6 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" ) func TestResourceQuotaStrategy(t *testing.T) { @@ -59,12 +58,3 @@ func TestResourceQuotaStrategy(t *testing.T) { t.Errorf("ResourceQuota does not allow setting status on create") } } - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), - "ResourceQuota", - ResourceQuotaToSelectableFields(&api.ResourceQuota{}), - nil, - ) -} diff --git a/pkg/registry/core/service/BUILD b/pkg/registry/core/service/BUILD index 727511864b4..cc97dfc4545 100644 --- a/pkg/registry/core/service/BUILD +++ b/pkg/registry/core/service/BUILD @@ -32,8 +32,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/proxy:go_default_library", @@ -41,9 +39,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", ], @@ -61,7 +57,6 @@ go_test( "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", "//pkg/api/service:go_default_library", - "//pkg/api/testing:go_default_library", "//pkg/features:go_default_library", "//pkg/registry/core/service/ipallocator:go_default_library", "//pkg/registry/core/service/portallocator:go_default_library", diff --git a/pkg/registry/core/service/storage/storage.go b/pkg/registry/core/service/storage/storage.go index 6192b2842c8..886f227592e 100644 --- a/pkg/registry/core/service/storage/storage.go +++ b/pkg/registry/core/service/storage/storage.go @@ -38,7 +38,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { Copier: api.Scheme, NewFunc: func() runtime.Object { return &api.Service{} }, NewListFunc: func() runtime.Object { return &api.ServiceList{} }, - PredicateFunc: service.MatchServices, DefaultQualifiedResource: api.Resource("services"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("services"), @@ -47,7 +46,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { DeleteStrategy: service.Strategy, ExportStrategy: service.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: service.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/core/service/strategy.go b/pkg/registry/core/service/strategy.go index 7736f6c2cce..1d3da254978 100644 --- a/pkg/registry/core/service/strategy.go +++ b/pkg/registry/core/service/strategy.go @@ -19,13 +19,9 @@ package service import ( "fmt" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" @@ -103,27 +99,6 @@ func (svcStrategy) Export(ctx genericapirequest.Context, obj runtime.Object, exa return nil } -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - service, ok := obj.(*api.Service) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a service") - } - return labels.Set(service.ObjectMeta.Labels), ServiceToSelectableFields(service), service.Initializers != nil, nil -} - -func MatchServices(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -func ServiceToSelectableFields(service *api.Service) fields.Set { - return generic.ObjectMetaFieldsSet(&service.ObjectMeta, true) -} - type serviceStatusStrategy struct { svcStrategy } diff --git a/pkg/registry/core/service/strategy_test.go b/pkg/registry/core/service/strategy_test.go index 7f01450bfda..46e3c65546e 100644 --- a/pkg/registry/core/service/strategy_test.go +++ b/pkg/registry/core/service/strategy_test.go @@ -27,7 +27,6 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" ) func TestExportService(t *testing.T) { @@ -212,15 +211,6 @@ func TestBeforeUpdate(t *testing.T) { } } -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), - "Service", - ServiceToSelectableFields(&api.Service{}), - nil, - ) -} - func TestServiceStatusStrategy(t *testing.T) { ctx := genericapirequest.NewDefaultContext() if !StatusStrategy.NamespaceScoped() { diff --git a/pkg/registry/core/serviceaccount/BUILD b/pkg/registry/core/serviceaccount/BUILD index d3e815ffc36..6e460eda990 100644 --- a/pkg/registry/core/serviceaccount/BUILD +++ b/pkg/registry/core/serviceaccount/BUILD @@ -5,7 +5,6 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", - "go_test", ) go_library( @@ -21,30 +20,15 @@ go_library( "//pkg/api/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) -go_test( - name = "go_default_test", - srcs = ["strategy_test.go"], - library = ":go_default_library", - tags = ["automanaged"], - deps = [ - "//pkg/api:go_default_library", - "//pkg/api/testing:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/registry/core/serviceaccount/storage/storage.go b/pkg/registry/core/serviceaccount/storage/storage.go index 3c9b1d26e94..9d6b8c1ffbb 100644 --- a/pkg/registry/core/serviceaccount/storage/storage.go +++ b/pkg/registry/core/serviceaccount/storage/storage.go @@ -36,7 +36,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &api.ServiceAccount{} }, NewListFunc: func() runtime.Object { return &api.ServiceAccountList{} }, - PredicateFunc: serviceaccount.Matcher, DefaultQualifiedResource: api.Resource("serviceaccounts"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("serviceaccounts"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { DeleteStrategy: serviceaccount.Strategy, ReturnDeletedObject: true, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: serviceaccount.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/core/serviceaccount/strategy.go b/pkg/registry/core/serviceaccount/strategy.go index 2ff37ecd94a..501e0436189 100644 --- a/pkg/registry/core/serviceaccount/strategy.go +++ b/pkg/registry/core/serviceaccount/strategy.go @@ -17,15 +17,9 @@ limitations under the License. package serviceaccount import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/validation" @@ -78,26 +72,3 @@ func (strategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.O func (strategy) AllowUnconditionalUpdate() bool { return true } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - sa, ok := obj.(*api.ServiceAccount) - if !ok { - return nil, nil, false, fmt.Errorf("not a serviceaccount") - } - return labels.Set(sa.Labels), SelectableFields(sa), sa.Initializers != nil, nil -} - -// Matcher returns a generic matcher for a given label and field selector. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// SelectableFields returns a field set that represents the object -func SelectableFields(obj *api.ServiceAccount) fields.Set { - return generic.ObjectMetaFieldsSet(&obj.ObjectMeta, true) -} diff --git a/pkg/registry/core/serviceaccount/strategy_test.go b/pkg/registry/core/serviceaccount/strategy_test.go deleted file mode 100644 index 76b1cdc57c1..00000000000 --- a/pkg/registry/core/serviceaccount/strategy_test.go +++ /dev/null @@ -1,33 +0,0 @@ -/* -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. -*/ - -package serviceaccount - -import ( - "testing" - - "k8s.io/kubernetes/pkg/api" - apitesting "k8s.io/kubernetes/pkg/api/testing" -) - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - api.Registry.GroupOrDie(api.GroupName).GroupVersion.String(), - "ServiceAccount", - SelectableFields(&api.ServiceAccount{}), - nil, - ) -} diff --git a/pkg/registry/extensions/daemonset/BUILD b/pkg/registry/extensions/daemonset/BUILD index 294aaec3378..eb6a4a423fc 100644 --- a/pkg/registry/extensions/daemonset/BUILD +++ b/pkg/registry/extensions/daemonset/BUILD @@ -20,14 +20,10 @@ go_library( "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) @@ -39,9 +35,6 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", - "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", ], ) diff --git a/pkg/registry/extensions/daemonset/storage/storage.go b/pkg/registry/extensions/daemonset/storage/storage.go index 86e7e45c2fb..b3d754d093f 100644 --- a/pkg/registry/extensions/daemonset/storage/storage.go +++ b/pkg/registry/extensions/daemonset/storage/storage.go @@ -40,7 +40,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { Copier: api.Scheme, NewFunc: func() runtime.Object { return &extensions.DaemonSet{} }, NewListFunc: func() runtime.Object { return &extensions.DaemonSetList{} }, - PredicateFunc: daemonset.MatchDaemonSet, DefaultQualifiedResource: extensions.Resource("daemonsets"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("daemonsets"), @@ -48,7 +47,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { UpdateStrategy: daemonset.Strategy, DeleteStrategy: daemonset.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: daemonset.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/extensions/daemonset/strategy.go b/pkg/registry/extensions/daemonset/strategy.go index 80e03dc1665..c75fa365237 100644 --- a/pkg/registry/extensions/daemonset/strategy.go +++ b/pkg/registry/extensions/daemonset/strategy.go @@ -17,17 +17,11 @@ limitations under the License. package daemonset import ( - "fmt" - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" @@ -125,31 +119,6 @@ func (daemonSetStrategy) AllowUnconditionalUpdate() bool { return true } -// DaemonSetToSelectableFields returns a field set that represents the object. -func DaemonSetToSelectableFields(daemon *extensions.DaemonSet) fields.Set { - return generic.ObjectMetaFieldsSet(&daemon.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - ds, ok := obj.(*extensions.DaemonSet) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a ds.") - } - return labels.Set(ds.ObjectMeta.Labels), DaemonSetToSelectableFields(ds), ds.Initializers != nil, nil -} - -// MatchSetDaemon is the filter used by the generic etcd backend to route -// watch events from etcd to clients of the apiserver only interested in specific -// labels/fields. -func MatchDaemonSet(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - type daemonSetStatusStrategy struct { daemonSetStrategy } diff --git a/pkg/registry/extensions/daemonset/strategy_test.go b/pkg/registry/extensions/daemonset/strategy_test.go index 0590c76473a..0f16ce4d96d 100644 --- a/pkg/registry/extensions/daemonset/strategy_test.go +++ b/pkg/registry/extensions/daemonset/strategy_test.go @@ -21,20 +21,8 @@ import ( "k8s.io/apiserver/pkg/registry/rest" _ "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - apitesting "k8s.io/kubernetes/pkg/api/testing" - "k8s.io/kubernetes/pkg/apis/extensions" ) -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - testapi.Extensions.GroupVersion().String(), - "DaemonSet", - DaemonSetToSelectableFields(&extensions.DaemonSet{}), - nil, - ) -} - func TestDefaultGarbageCollectionPolicy(t *testing.T) { // Make sure we correctly implement the interface. // Otherwise a typo could silently change the default. diff --git a/pkg/registry/extensions/deployment/BUILD b/pkg/registry/extensions/deployment/BUILD index c4280eaaed3..ff1210ed68b 100644 --- a/pkg/registry/extensions/deployment/BUILD +++ b/pkg/registry/extensions/deployment/BUILD @@ -23,14 +23,10 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) @@ -42,8 +38,6 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/pkg/registry/extensions/deployment/storage/storage.go b/pkg/registry/extensions/deployment/storage/storage.go index d747ecad8af..1e6fcbe83d5 100644 --- a/pkg/registry/extensions/deployment/storage/storage.go +++ b/pkg/registry/extensions/deployment/storage/storage.go @@ -66,7 +66,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Rollbac Copier: api.Scheme, NewFunc: func() runtime.Object { return &extensions.Deployment{} }, NewListFunc: func() runtime.Object { return &extensions.DeploymentList{} }, - PredicateFunc: deployment.MatchDeployment, DefaultQualifiedResource: extensions.Resource("deployments"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("deployments"), @@ -74,7 +73,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Rollbac UpdateStrategy: deployment.Strategy, DeleteStrategy: deployment.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: deployment.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/extensions/deployment/strategy.go b/pkg/registry/extensions/deployment/strategy.go index 819ca5e965f..a90aeb89bae 100644 --- a/pkg/registry/extensions/deployment/strategy.go +++ b/pkg/registry/extensions/deployment/strategy.go @@ -17,17 +17,11 @@ limitations under the License. package deployment import ( - "fmt" - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" @@ -119,28 +113,3 @@ func (deploymentStatusStrategy) PrepareForUpdate(ctx genericapirequest.Context, func (deploymentStatusStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidateDeploymentStatusUpdate(obj.(*extensions.Deployment), old.(*extensions.Deployment)) } - -// DeploymentToSelectableFields returns a field set that represents the object. -func DeploymentToSelectableFields(deployment *extensions.Deployment) fields.Set { - return generic.ObjectMetaFieldsSet(&deployment.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - deployment, ok := obj.(*extensions.Deployment) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a deployment.") - } - return labels.Set(deployment.ObjectMeta.Labels), DeploymentToSelectableFields(deployment), deployment.Initializers != nil, nil -} - -// MatchDeployment is the filter used by the generic etcd backend to route -// watch events from etcd to clients of the apiserver only interested in specific -// labels/fields. -func MatchDeployment(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/extensions/deployment/strategy_test.go b/pkg/registry/extensions/deployment/strategy_test.go index c166457f121..74668493540 100644 --- a/pkg/registry/extensions/deployment/strategy_test.go +++ b/pkg/registry/extensions/deployment/strategy_test.go @@ -24,20 +24,9 @@ import ( "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - apitesting "k8s.io/kubernetes/pkg/api/testing" "k8s.io/kubernetes/pkg/apis/extensions" ) -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - testapi.Extensions.GroupVersion().String(), - "Deployment", - DeploymentToSelectableFields(&extensions.Deployment{}), - nil, - ) -} - func TestStatusUpdates(t *testing.T) { tests := []struct { old runtime.Object diff --git a/pkg/registry/extensions/ingress/BUILD b/pkg/registry/extensions/ingress/BUILD index d849d82d872..bdd561af8e5 100644 --- a/pkg/registry/extensions/ingress/BUILD +++ b/pkg/registry/extensions/ingress/BUILD @@ -20,13 +20,9 @@ go_library( "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) @@ -38,8 +34,6 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/api/testing:go_default_library", "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/pkg/registry/extensions/ingress/storage/storage.go b/pkg/registry/extensions/ingress/storage/storage.go index 8b891a6209a..f6c7d6a915c 100644 --- a/pkg/registry/extensions/ingress/storage/storage.go +++ b/pkg/registry/extensions/ingress/storage/storage.go @@ -40,7 +40,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { Copier: api.Scheme, NewFunc: func() runtime.Object { return &extensions.Ingress{} }, NewListFunc: func() runtime.Object { return &extensions.IngressList{} }, - PredicateFunc: ingress.MatchIngress, DefaultQualifiedResource: extensions.Resource("ingresses"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("ingresses"), @@ -48,7 +47,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { UpdateStrategy: ingress.Strategy, DeleteStrategy: ingress.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: ingress.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/extensions/ingress/strategy.go b/pkg/registry/extensions/ingress/strategy.go index add1e0a3276..41edf5bc7f4 100644 --- a/pkg/registry/extensions/ingress/strategy.go +++ b/pkg/registry/extensions/ingress/strategy.go @@ -17,16 +17,10 @@ limitations under the License. package ingress import ( - "fmt" - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" @@ -100,31 +94,6 @@ func (ingressStrategy) AllowUnconditionalUpdate() bool { return true } -// IngressToSelectableFields returns a field set that represents the object. -func IngressToSelectableFields(ingress *extensions.Ingress) fields.Set { - return generic.ObjectMetaFieldsSet(&ingress.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - ingress, ok := obj.(*extensions.Ingress) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not an Ingress.") - } - return labels.Set(ingress.ObjectMeta.Labels), IngressToSelectableFields(ingress), ingress.Initializers != nil, nil -} - -// MatchIngress is the filter used by the generic etcd backend to ingress -// watch events from etcd to clients of the apiserver only interested in specific -// labels/fields. -func MatchIngress(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - type ingressStatusStrategy struct { ingressStrategy } diff --git a/pkg/registry/extensions/ingress/strategy_test.go b/pkg/registry/extensions/ingress/strategy_test.go index 3e381eca41b..15db6711ff5 100644 --- a/pkg/registry/extensions/ingress/strategy_test.go +++ b/pkg/registry/extensions/ingress/strategy_test.go @@ -23,8 +23,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - apitesting "k8s.io/kubernetes/pkg/api/testing" "k8s.io/kubernetes/pkg/apis/extensions" ) @@ -132,12 +130,3 @@ func TestIngressStatusStrategy(t *testing.T) { t.Errorf("Unexpected error %v", errs) } } - -func TestSelectableFieldLabelConversions(t *testing.T) { - apitesting.TestSelectableFieldLabelConversionsOfKind(t, - testapi.Extensions.GroupVersion().String(), - "Ingress", - IngressToSelectableFields(&extensions.Ingress{}), - nil, - ) -} diff --git a/pkg/registry/extensions/networkpolicy/BUILD b/pkg/registry/extensions/networkpolicy/BUILD index 782847dde18..8d1bedf5269 100644 --- a/pkg/registry/extensions/networkpolicy/BUILD +++ b/pkg/registry/extensions/networkpolicy/BUILD @@ -20,13 +20,9 @@ go_library( "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/extensions/networkpolicy/storage/storage.go b/pkg/registry/extensions/networkpolicy/storage/storage.go index 8bb412a4a0d..cb69d55ee47 100644 --- a/pkg/registry/extensions/networkpolicy/storage/storage.go +++ b/pkg/registry/extensions/networkpolicy/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &extensionsapi.NetworkPolicy{} }, NewListFunc: func() runtime.Object { return &extensionsapi.NetworkPolicyList{} }, - PredicateFunc: networkpolicy.MatchNetworkPolicy, DefaultQualifiedResource: extensionsapi.Resource("networkpolicies"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: networkpolicy.Strategy, DeleteStrategy: networkpolicy.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: networkpolicy.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/extensions/networkpolicy/strategy.go b/pkg/registry/extensions/networkpolicy/strategy.go index 63eb28b719f..1c1ea71377d 100644 --- a/pkg/registry/extensions/networkpolicy/strategy.go +++ b/pkg/registry/extensions/networkpolicy/strategy.go @@ -17,16 +17,10 @@ limitations under the License. package networkpolicy import ( - "fmt" - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" @@ -92,27 +86,3 @@ func (networkPolicyStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, func (networkPolicyStrategy) AllowUnconditionalUpdate() bool { return true } - -// NetworkPolicyToSelectableFields returns a field set that represents the object. -func NetworkPolicyToSelectableFields(networkPolicy *extensions.NetworkPolicy) fields.Set { - return generic.ObjectMetaFieldsSet(&networkPolicy.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - networkPolicy, ok := obj.(*extensions.NetworkPolicy) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a NetworkPolicy.") - } - return labels.Set(networkPolicy.ObjectMeta.Labels), NetworkPolicyToSelectableFields(networkPolicy), networkPolicy.Initializers != nil, nil -} - -// MatchNetworkPolicy is the filter used by the generic etcd backend to watch events -// from etcd to clients of the apiserver only interested in specific labels/fields. -func MatchNetworkPolicy(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/extensions/podsecuritypolicy/BUILD b/pkg/registry/extensions/podsecuritypolicy/BUILD index 658ab4cdc29..fe59a04ecb0 100644 --- a/pkg/registry/extensions/podsecuritypolicy/BUILD +++ b/pkg/registry/extensions/podsecuritypolicy/BUILD @@ -18,14 +18,10 @@ go_library( "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", "//pkg/apis/extensions/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/extensions/podsecuritypolicy/storage/storage.go b/pkg/registry/extensions/podsecuritypolicy/storage/storage.go index eff8d11b76e..7f4eed37aa5 100644 --- a/pkg/registry/extensions/podsecuritypolicy/storage/storage.go +++ b/pkg/registry/extensions/podsecuritypolicy/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &extensions.PodSecurityPolicy{} }, NewListFunc: func() runtime.Object { return &extensions.PodSecurityPolicyList{} }, - PredicateFunc: podsecuritypolicy.MatchPodSecurityPolicy, DefaultQualifiedResource: extensions.Resource("podsecuritypolicies"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podsecuritypolicies"), @@ -46,7 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { DeleteStrategy: podsecuritypolicy.Strategy, ReturnDeletedObject: true, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: podsecuritypolicy.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/extensions/podsecuritypolicy/strategy.go b/pkg/registry/extensions/podsecuritypolicy/strategy.go index d9213619da3..130b90d338b 100644 --- a/pkg/registry/extensions/podsecuritypolicy/strategy.go +++ b/pkg/registry/extensions/podsecuritypolicy/strategy.go @@ -17,16 +17,10 @@ limitations under the License. package podsecuritypolicy import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" @@ -75,26 +69,3 @@ func (strategy) Validate(ctx genericapirequest.Context, obj runtime.Object) fiel func (strategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.Object) field.ErrorList { return validation.ValidatePodSecurityPolicyUpdate(old.(*extensions.PodSecurityPolicy), obj.(*extensions.PodSecurityPolicy)) } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - psp, ok := obj.(*extensions.PodSecurityPolicy) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a pod security policy.") - } - return labels.Set(psp.ObjectMeta.Labels), PodSecurityPolicyToSelectableFields(psp), psp.Initializers != nil, nil -} - -// Matcher returns a generic matcher for a given label and field selector. -func MatchPodSecurityPolicy(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// PodSecurityPolicyToSelectableFields returns a label set that represents the object -func PodSecurityPolicyToSelectableFields(obj *extensions.PodSecurityPolicy) fields.Set { - return generic.ObjectMetaFieldsSet(&obj.ObjectMeta, false) -} diff --git a/pkg/registry/networking/networkpolicy/BUILD b/pkg/registry/networking/networkpolicy/BUILD index 6a09bac280d..a3f9aea9321 100644 --- a/pkg/registry/networking/networkpolicy/BUILD +++ b/pkg/registry/networking/networkpolicy/BUILD @@ -21,15 +21,11 @@ go_library( "//pkg/apis/networking/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/networking/networkpolicy/storage/storage.go b/pkg/registry/networking/networkpolicy/storage/storage.go index 3e26dd33751..0ee45bde784 100644 --- a/pkg/registry/networking/networkpolicy/storage/storage.go +++ b/pkg/registry/networking/networkpolicy/storage/storage.go @@ -38,7 +38,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &networkingapi.NetworkPolicy{} }, NewListFunc: func() runtime.Object { return &networkingapi.NetworkPolicyList{} }, - PredicateFunc: networkpolicy.Matcher, DefaultQualifiedResource: networkingapi.Resource("networkpolicies"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("networkpolicies"), @@ -46,7 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: networkpolicy.Strategy, DeleteStrategy: networkpolicy.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: networkpolicy.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/networking/networkpolicy/strategy.go b/pkg/registry/networking/networkpolicy/strategy.go index 2b58c6c1288..fe66f6f62e2 100644 --- a/pkg/registry/networking/networkpolicy/strategy.go +++ b/pkg/registry/networking/networkpolicy/strategy.go @@ -17,16 +17,11 @@ limitations under the License. package networkpolicy import ( - "fmt" "reflect" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/networking" @@ -91,27 +86,3 @@ func (networkPolicyStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, func (networkPolicyStrategy) AllowUnconditionalUpdate() bool { return true } - -// SelectableFields returns a field set that represents the object. -func SelectableFields(networkPolicy *networking.NetworkPolicy) fields.Set { - return generic.ObjectMetaFieldsSet(&networkPolicy.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - networkPolicy, ok := obj.(*networking.NetworkPolicy) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a NetworkPolicy.") - } - return labels.Set(networkPolicy.ObjectMeta.Labels), SelectableFields(networkPolicy), networkPolicy.Initializers != nil, nil -} - -// Matcher is the filter used by the generic etcd backend to watch events -// from etcd to clients of the apiserver only interested in specific labels/fields. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/policy/poddisruptionbudget/BUILD b/pkg/registry/policy/poddisruptionbudget/BUILD index b492e7221ed..0f918b931b0 100644 --- a/pkg/registry/policy/poddisruptionbudget/BUILD +++ b/pkg/registry/policy/poddisruptionbudget/BUILD @@ -20,13 +20,9 @@ go_library( "//pkg/apis/policy:go_default_library", "//pkg/apis/policy/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/policy/poddisruptionbudget/storage/storage.go b/pkg/registry/policy/poddisruptionbudget/storage/storage.go index 2daa230365d..e97136c2958 100644 --- a/pkg/registry/policy/poddisruptionbudget/storage/storage.go +++ b/pkg/registry/policy/poddisruptionbudget/storage/storage.go @@ -40,7 +40,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { Copier: api.Scheme, NewFunc: func() runtime.Object { return &policyapi.PodDisruptionBudget{} }, NewListFunc: func() runtime.Object { return &policyapi.PodDisruptionBudgetList{} }, - PredicateFunc: poddisruptionbudget.MatchPodDisruptionBudget, DefaultQualifiedResource: policyapi.Resource("poddisruptionbudgets"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("poddisruptionbudgets"), @@ -48,7 +47,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { UpdateStrategy: poddisruptionbudget.Strategy, DeleteStrategy: poddisruptionbudget.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: poddisruptionbudget.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/policy/poddisruptionbudget/strategy.go b/pkg/registry/policy/poddisruptionbudget/strategy.go index a0f6a71d22a..43ef18c0a7a 100644 --- a/pkg/registry/policy/poddisruptionbudget/strategy.go +++ b/pkg/registry/policy/poddisruptionbudget/strategy.go @@ -17,16 +17,10 @@ limitations under the License. package poddisruptionbudget import ( - "fmt" - apiequality "k8s.io/apimachinery/pkg/api/equality" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/policy" @@ -99,30 +93,6 @@ func (podDisruptionBudgetStrategy) AllowUnconditionalUpdate() bool { return false } -// PodDisruptionBudgetToSelectableFields returns a field set that represents the object. -func PodDisruptionBudgetToSelectableFields(podDisruptionBudget *policy.PodDisruptionBudget) fields.Set { - return generic.ObjectMetaFieldsSet(&podDisruptionBudget.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - podDisruptionBudget, ok := obj.(*policy.PodDisruptionBudget) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a PodDisruptionBudget.") - } - return labels.Set(podDisruptionBudget.ObjectMeta.Labels), PodDisruptionBudgetToSelectableFields(podDisruptionBudget), podDisruptionBudget.Initializers != nil, nil -} - -// MatchPodDisruptionBudget is the filter used by the generic etcd backend to watch events -// from etcd to clients of the apiserver only interested in specific labels/fields. -func MatchPodDisruptionBudget(label labels.Selector, field fields.Selector) storage.SelectionPredicate { - return storage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - type podDisruptionBudgetStatusStrategy struct { podDisruptionBudgetStrategy } diff --git a/pkg/registry/rbac/clusterrole/BUILD b/pkg/registry/rbac/clusterrole/BUILD index caa3362b1aa..36124e2898d 100644 --- a/pkg/registry/rbac/clusterrole/BUILD +++ b/pkg/registry/rbac/clusterrole/BUILD @@ -21,14 +21,11 @@ go_library( "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/rbac/clusterrole/storage/storage.go b/pkg/registry/rbac/clusterrole/storage/storage.go index e434280a409..9c8dbc86279 100644 --- a/pkg/registry/rbac/clusterrole/storage/storage.go +++ b/pkg/registry/rbac/clusterrole/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &rbac.ClusterRole{} }, NewListFunc: func() runtime.Object { return &rbac.ClusterRoleList{} }, - PredicateFunc: clusterrole.Matcher, DefaultQualifiedResource: rbac.Resource("clusterroles"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterroles"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: clusterrole.Strategy, DeleteStrategy: clusterrole.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: clusterrole.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/rbac/clusterrole/strategy.go b/pkg/registry/rbac/clusterrole/strategy.go index ead2a876f27..7d4e766a880 100644 --- a/pkg/registry/rbac/clusterrole/strategy.go +++ b/pkg/registry/rbac/clusterrole/strategy.go @@ -17,15 +17,10 @@ limitations under the License. package clusterrole import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/rbac" @@ -102,26 +97,3 @@ func (strategy) AllowUnconditionalUpdate() bool { func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { return nil } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - role, ok := obj.(*rbac.ClusterRole) - if !ok { - return nil, nil, false, fmt.Errorf("not a ClusterRole") - } - return labels.Set(role.Labels), SelectableFields(role), role.Initializers != nil, nil -} - -// Matcher returns a generic matcher for a given label and field selector. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// SelectableFields returns a field set that can be used for filter selection -func SelectableFields(obj *rbac.ClusterRole) fields.Set { - return nil -} diff --git a/pkg/registry/rbac/clusterrolebinding/BUILD b/pkg/registry/rbac/clusterrolebinding/BUILD index f08b0a01342..8de2b3d2f1b 100644 --- a/pkg/registry/rbac/clusterrolebinding/BUILD +++ b/pkg/registry/rbac/clusterrolebinding/BUILD @@ -21,14 +21,11 @@ go_library( "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/rbac/clusterrolebinding/storage/storage.go b/pkg/registry/rbac/clusterrolebinding/storage/storage.go index 2cb178ca63f..31eefd21911 100644 --- a/pkg/registry/rbac/clusterrolebinding/storage/storage.go +++ b/pkg/registry/rbac/clusterrolebinding/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &rbac.ClusterRoleBinding{} }, NewListFunc: func() runtime.Object { return &rbac.ClusterRoleBindingList{} }, - PredicateFunc: clusterrolebinding.Matcher, DefaultQualifiedResource: rbac.Resource("clusterrolebindings"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("clusterrolebindings"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: clusterrolebinding.Strategy, DeleteStrategy: clusterrolebinding.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: clusterrolebinding.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/rbac/clusterrolebinding/strategy.go b/pkg/registry/rbac/clusterrolebinding/strategy.go index bb9168d51d4..383be8bd2d9 100644 --- a/pkg/registry/rbac/clusterrolebinding/strategy.go +++ b/pkg/registry/rbac/clusterrolebinding/strategy.go @@ -17,15 +17,10 @@ limitations under the License. package clusterrolebinding import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/rbac" @@ -102,26 +97,3 @@ func (strategy) AllowUnconditionalUpdate() bool { func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { return nil } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - roleBinding, ok := obj.(*rbac.ClusterRoleBinding) - if !ok { - return nil, nil, false, fmt.Errorf("not a ClusterRoleBinding") - } - return labels.Set(roleBinding.Labels), SelectableFields(roleBinding), roleBinding.Initializers != nil, nil -} - -// Matcher returns a generic matcher for a given label and field selector. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// SelectableFields returns a field set that can be used for filter selection -func SelectableFields(obj *rbac.ClusterRoleBinding) fields.Set { - return nil -} diff --git a/pkg/registry/rbac/role/BUILD b/pkg/registry/rbac/role/BUILD index 6f4756a478e..a42f6c9182f 100644 --- a/pkg/registry/rbac/role/BUILD +++ b/pkg/registry/rbac/role/BUILD @@ -21,14 +21,11 @@ go_library( "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/rbac/role/storage/storage.go b/pkg/registry/rbac/role/storage/storage.go index 18f17867252..4717f9371f2 100644 --- a/pkg/registry/rbac/role/storage/storage.go +++ b/pkg/registry/rbac/role/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &rbac.Role{} }, NewListFunc: func() runtime.Object { return &rbac.RoleList{} }, - PredicateFunc: role.Matcher, DefaultQualifiedResource: rbac.Resource("roles"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("roles"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: role.Strategy, DeleteStrategy: role.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: role.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/rbac/role/strategy.go b/pkg/registry/rbac/role/strategy.go index aaf2a56abb8..da80adc4ed7 100644 --- a/pkg/registry/rbac/role/strategy.go +++ b/pkg/registry/rbac/role/strategy.go @@ -17,15 +17,10 @@ limitations under the License. package role import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/rbac" @@ -102,26 +97,3 @@ func (strategy) AllowUnconditionalUpdate() bool { func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { return nil } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - role, ok := obj.(*rbac.Role) - if !ok { - return nil, nil, false, fmt.Errorf("not a Role") - } - return labels.Set(role.Labels), SelectableFields(role), role.Initializers != nil, nil -} - -// Matcher returns a generic matcher for a given label and field selector. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// SelectableFields returns a field set that can be used for filter selection -func SelectableFields(obj *rbac.Role) fields.Set { - return nil -} diff --git a/pkg/registry/rbac/rolebinding/BUILD b/pkg/registry/rbac/rolebinding/BUILD index 18f5138a017..fde3b7a5d95 100644 --- a/pkg/registry/rbac/rolebinding/BUILD +++ b/pkg/registry/rbac/rolebinding/BUILD @@ -21,14 +21,11 @@ go_library( "//pkg/apis/rbac/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/rbac/rolebinding/storage/storage.go b/pkg/registry/rbac/rolebinding/storage/storage.go index 3ccf4f72cf6..25ff81aad0d 100644 --- a/pkg/registry/rbac/rolebinding/storage/storage.go +++ b/pkg/registry/rbac/rolebinding/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &rbac.RoleBinding{} }, NewListFunc: func() runtime.Object { return &rbac.RoleBindingList{} }, - PredicateFunc: rolebinding.Matcher, DefaultQualifiedResource: rbac.Resource("rolebindings"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("rolebindings"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: rolebinding.Strategy, DeleteStrategy: rolebinding.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: rolebinding.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/rbac/rolebinding/strategy.go b/pkg/registry/rbac/rolebinding/strategy.go index f5291ab0b23..0abeb7ed76c 100644 --- a/pkg/registry/rbac/rolebinding/strategy.go +++ b/pkg/registry/rbac/rolebinding/strategy.go @@ -17,15 +17,10 @@ limitations under the License. package rolebinding import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/rbac" @@ -102,26 +97,3 @@ func (strategy) AllowUnconditionalUpdate() bool { func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { return nil } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - roleBinding, ok := obj.(*rbac.RoleBinding) - if !ok { - return nil, nil, false, fmt.Errorf("not a RoleBinding") - } - return labels.Set(roleBinding.Labels), SelectableFields(roleBinding), roleBinding.Initializers != nil, nil -} - -// Matcher returns a generic matcher for a given label and field selector. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// SelectableFields returns a field set that can be used for filter selection -func SelectableFields(obj *rbac.RoleBinding) fields.Set { - return nil -} diff --git a/pkg/registry/scheduling/priorityclass/BUILD b/pkg/registry/scheduling/priorityclass/BUILD index ffea9f8a5b4..b92c2898890 100644 --- a/pkg/registry/scheduling/priorityclass/BUILD +++ b/pkg/registry/scheduling/priorityclass/BUILD @@ -34,15 +34,11 @@ go_library( "//pkg/apis/scheduling/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/scheduling/priorityclass/storage/storage.go b/pkg/registry/scheduling/priorityclass/storage/storage.go index 5f2ba014b5d..6390381f1f1 100644 --- a/pkg/registry/scheduling/priorityclass/storage/storage.go +++ b/pkg/registry/scheduling/priorityclass/storage/storage.go @@ -38,7 +38,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &schedulingapi.PriorityClass{} }, NewListFunc: func() runtime.Object { return &schedulingapi.PriorityClassList{} }, - PredicateFunc: priorityclass.Matcher, DefaultQualifiedResource: schedulingapi.Resource("priorityclasses"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("priorityclasses"), @@ -46,7 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: priorityclass.Strategy, DeleteStrategy: priorityclass.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: priorityclass.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/scheduling/priorityclass/strategy.go b/pkg/registry/scheduling/priorityclass/strategy.go index 64be7365f81..6a6e060eef7 100644 --- a/pkg/registry/scheduling/priorityclass/strategy.go +++ b/pkg/registry/scheduling/priorityclass/strategy.go @@ -17,15 +17,9 @@ limitations under the License. package priorityclass import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/scheduling" @@ -83,27 +77,3 @@ func (priorityClassStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, func (priorityClassStrategy) AllowUnconditionalUpdate() bool { return true } - -// SelectableFields returns a field set that represents the object. -func SelectableFields(pc *scheduling.PriorityClass) fields.Set { - return generic.ObjectMetaFieldsSet(&pc.ObjectMeta, false) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - pc, ok := obj.(*scheduling.PriorityClass) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a PriorityClass") - } - return labels.Set(pc.ObjectMeta.Labels), SelectableFields(pc), pc.Initializers != nil, nil -} - -// Matcher is the filter used by the generic etcd backend to watch events -// from etcd to clients of the apiserver only interested in specific labels/fields. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/settings/podpreset/BUILD b/pkg/registry/settings/podpreset/BUILD index 4868f51f3c9..010ecd82f3e 100644 --- a/pkg/registry/settings/podpreset/BUILD +++ b/pkg/registry/settings/podpreset/BUILD @@ -21,15 +21,11 @@ go_library( "//pkg/apis/settings/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/settings/podpreset/storage/storage.go b/pkg/registry/settings/podpreset/storage/storage.go index 4d1c7ca54b5..7a40f2c9f62 100644 --- a/pkg/registry/settings/podpreset/storage/storage.go +++ b/pkg/registry/settings/podpreset/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &settingsapi.PodPreset{} }, NewListFunc: func() runtime.Object { return &settingsapi.PodPresetList{} }, - PredicateFunc: podpreset.Matcher, DefaultQualifiedResource: settingsapi.Resource("podpresets"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("podpresets"), @@ -45,7 +44,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { UpdateStrategy: podpreset.Strategy, DeleteStrategy: podpreset.Strategy, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: podpreset.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/settings/podpreset/strategy.go b/pkg/registry/settings/podpreset/strategy.go index 6eb0f94acd8..2d53ed16e68 100644 --- a/pkg/registry/settings/podpreset/strategy.go +++ b/pkg/registry/settings/podpreset/strategy.go @@ -17,15 +17,9 @@ limitations under the License. package podpreset import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/settings" @@ -86,27 +80,3 @@ func (podPresetStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, old func (podPresetStrategy) AllowUnconditionalUpdate() bool { return true } - -// SelectableFields returns a field set that represents the object. -func SelectableFields(pip *settings.PodPreset) fields.Set { - return generic.ObjectMetaFieldsSet(&pip.ObjectMeta, true) -} - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - pip, ok := obj.(*settings.PodPreset) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not a PodPreset.") - } - return labels.Set(pip.ObjectMeta.Labels), SelectableFields(pip), pip.Initializers != nil, nil -} - -// Matcher is the filter used by the generic etcd backend to watch events -// from etcd to clients of the apiserver only interested in specific labels/fields. -func Matcher(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} diff --git a/pkg/registry/storage/storageclass/BUILD b/pkg/registry/storage/storageclass/BUILD index c11ddcf4ddf..5bf50fad01f 100644 --- a/pkg/registry/storage/storageclass/BUILD +++ b/pkg/registry/storage/storageclass/BUILD @@ -19,13 +19,9 @@ go_library( "//pkg/api:go_default_library", "//pkg/apis/storage:go_default_library", "//pkg/apis/storage/validation:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", - "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", - "//vendor/k8s.io/apiserver/pkg/storage:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", ], ) diff --git a/pkg/registry/storage/storageclass/storage/storage.go b/pkg/registry/storage/storageclass/storage/storage.go index 3dcb18a301f..25c1807e49f 100644 --- a/pkg/registry/storage/storageclass/storage/storage.go +++ b/pkg/registry/storage/storageclass/storage/storage.go @@ -37,7 +37,6 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { Copier: api.Scheme, NewFunc: func() runtime.Object { return &storageapi.StorageClass{} }, NewListFunc: func() runtime.Object { return &storageapi.StorageClassList{} }, - PredicateFunc: storageclass.MatchStorageClasses, DefaultQualifiedResource: storageapi.Resource("storageclasses"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("storageclass"), @@ -46,7 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { DeleteStrategy: storageclass.Strategy, ReturnDeletedObject: true, } - options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: storageclass.GetAttrs} + options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { panic(err) // TODO: Propagate error up } diff --git a/pkg/registry/storage/storageclass/strategy.go b/pkg/registry/storage/storageclass/strategy.go index 73aa7d2b37f..216cc7ddc26 100644 --- a/pkg/registry/storage/storageclass/strategy.go +++ b/pkg/registry/storage/storageclass/strategy.go @@ -17,15 +17,9 @@ limitations under the License. package storageclass import ( - "fmt" - - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/validation/field" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" - "k8s.io/apiserver/pkg/registry/generic" - apistorage "k8s.io/apiserver/pkg/storage" "k8s.io/apiserver/pkg/storage/names" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/storage" @@ -78,26 +72,3 @@ func (storageClassStrategy) ValidateUpdate(ctx genericapirequest.Context, obj, o func (storageClassStrategy) AllowUnconditionalUpdate() bool { return true } - -// GetAttrs returns labels and fields of a given object for filtering purposes. -func GetAttrs(obj runtime.Object) (labels.Set, fields.Set, bool, error) { - cls, ok := obj.(*storage.StorageClass) - if !ok { - return nil, nil, false, fmt.Errorf("given object is not of type StorageClass") - } - return labels.Set(cls.ObjectMeta.Labels), StorageClassToSelectableFields(cls), cls.Initializers != nil, nil -} - -// MatchStorageClass returns a generic matcher for a given label and field selector. -func MatchStorageClasses(label labels.Selector, field fields.Selector) apistorage.SelectionPredicate { - return apistorage.SelectionPredicate{ - Label: label, - Field: field, - GetAttrs: GetAttrs, - } -} - -// StorageClassToSelectableFields returns a label set that represents the object -func StorageClassToSelectableFields(storageClass *storage.StorageClass) fields.Set { - return generic.ObjectMetaFieldsSet(&storageClass.ObjectMeta, false) -} From 173bc31c25033939f4d9f807f63e96a136d4bf2d Mon Sep 17 00:00:00 2001 From: Jamie Hannaford Date: Mon, 7 Aug 2017 11:31:19 +0200 Subject: [PATCH 076/183] Enable selfHosted feature flag --- cmd/kubeadm/app/apis/kubeadm/types.go | 5 ----- cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go | 5 ----- cmd/kubeadm/app/cmd/BUILD | 1 + cmd/kubeadm/app/cmd/features/features.go | 6 ++++++ cmd/kubeadm/app/cmd/init.go | 7 ++----- 5 files changed, 9 insertions(+), 15 deletions(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go index 2e132f913cd..b6baf01ee64 100644 --- a/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/types.go @@ -39,11 +39,6 @@ type MasterConfiguration struct { Token string TokenTTL time.Duration - // SelfHosted enables an alpha deployment type where the apiserver, scheduler, and - // controller manager are managed by Kubernetes itself. This option is likely to - // become the default in the future. - SelfHosted bool - APIServerExtraArgs map[string]string ControllerManagerExtraArgs map[string]string SchedulerExtraArgs map[string]string diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go index ca2b698f152..38c2e77b123 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go @@ -38,11 +38,6 @@ type MasterConfiguration struct { Token string `json:"token"` TokenTTL time.Duration `json:"tokenTTL"` - // SelfHosted enables an alpha deployment type where the apiserver, scheduler, and - // controller manager are managed by Kubernetes itself. This option is likely to - // become the default in the future. - SelfHosted bool `json:"selfHosted"` - APIServerExtraArgs map[string]string `json:"apiServerExtraArgs"` ControllerManagerExtraArgs map[string]string `json:"controllerManagerExtraArgs"` SchedulerExtraArgs map[string]string `json:"schedulerExtraArgs"` diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index 57d18294b2c..d803edc9ae6 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -24,6 +24,7 @@ go_library( "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/validation:go_default_library", + "//cmd/kubeadm/app/cmd/features:go_default_library", "//cmd/kubeadm/app/cmd/phases:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/discovery:go_default_library", diff --git a/cmd/kubeadm/app/cmd/features/features.go b/cmd/kubeadm/app/cmd/features/features.go index ad2a584b4b8..e77ef8412d2 100644 --- a/cmd/kubeadm/app/cmd/features/features.go +++ b/cmd/kubeadm/app/cmd/features/features.go @@ -31,6 +31,12 @@ const ( // FeatureList represents a list of feature gates type FeatureList map[utilfeature.Feature]utilfeature.FeatureSpec +// Enabled indicates whether a feature name has been enabled +func Enabled(featureList map[string]bool, featureName utilfeature.Feature) bool { + _, ok := featureList[string(featureName)] + return ok +} + // Supports indicates whether a feature name is supported on the given // feature set func Supports(featureList FeatureList, featureName string) bool { diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index bd2e8266663..e08ec4dab4e 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -31,6 +31,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" + "k8s.io/kubernetes/cmd/kubeadm/app/cmd/features" cmdphases "k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" addonsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons" @@ -147,10 +148,6 @@ func NewCmdInit(out io.Writer) *cobra.Command { &skipTokenPrint, "skip-token-print", skipTokenPrint, "Skip printing of the default bootstrap token generated by 'kubeadm init'", ) - cmd.PersistentFlags().BoolVar( - &cfg.SelfHosted, "self-hosted", cfg.SelfHosted, - "[experimental] If kubeadm should make this control plane self-hosted", - ) cmd.PersistentFlags().StringVar( &cfg.Token, "token", cfg.Token, @@ -288,7 +285,7 @@ func (i *Init) Run(out io.Writer) error { } // Is deployment type self-hosted? - if i.cfg.SelfHosted { + if features.Enabled(i.cfg.FeatureFlags, features.SelfHosting) { // Temporary control plane is up, now we create our self hosted control // plane components and remove the static manifests: fmt.Println("[self-hosted] Creating self-hosted control plane...") From 2f747f3d3c99c249131487c441c9085643c2309c Mon Sep 17 00:00:00 2001 From: Beata Skiba Date: Thu, 20 Jul 2017 15:05:25 +0200 Subject: [PATCH 077/183] Add a simple cloud provider for e2e tests on kubemark This is needed for cluster autoscaler e2e test to run on kubemark. We need the ability to add and remove nodes and operate on nodegroups. Kubemark does not provide this at the moment. --- hack/verify-flags/known-flags.txt | 1 + pkg/kubemark/BUILD | 8 + pkg/kubemark/controller.go | 343 +++++++++++++++++++++++++++++ test/e2e/framework/BUILD | 2 + test/e2e/framework/framework.go | 26 +++ test/e2e/framework/size.go | 6 + test/e2e/framework/test_context.go | 18 +- 7 files changed, 397 insertions(+), 7 deletions(-) create mode 100644 pkg/kubemark/controller.go diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index a3d243b78bd..d2ee5b68bb8 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -425,6 +425,7 @@ kube-reserved kube-reserved-cgroup kube-master-url kube-reserved +kubemark-external-kubeconfig kubernetes-anywhere-cluster kubernetes-anywhere-path kubernetes-anywhere-phase2-provider diff --git a/pkg/kubemark/BUILD b/pkg/kubemark/BUILD index 1831c1c8398..70835e5c55e 100644 --- a/pkg/kubemark/BUILD +++ b/pkg/kubemark/BUILD @@ -10,6 +10,7 @@ load( go_library( name = "go_default_library", srcs = [ + "controller.go", "hollow_kubelet.go", "hollow_proxy.go", ], @@ -22,6 +23,7 @@ go_library( "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/componentconfig/v1alpha1:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", + "//pkg/controller:go_default_library", "//pkg/kubelet:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/cm:go_default_library", @@ -44,9 +46,15 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/client-go/informers:go_default_library", + "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/listers/core/v1:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", ], diff --git a/pkg/kubemark/controller.go b/pkg/kubemark/controller.go new file mode 100644 index 00000000000..53d163175cc --- /dev/null +++ b/pkg/kubemark/controller.go @@ -0,0 +1,343 @@ +/* +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. +*/ + +package kubemark + +import ( + "fmt" + "math/rand" + "sync" + "time" + + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/informers" + informersv1 "k8s.io/client-go/informers/core/v1" + kubeclient "k8s.io/client-go/kubernetes" + listersv1 "k8s.io/client-go/listers/core/v1" + "k8s.io/client-go/tools/cache" + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/controller" + + "github.com/golang/glog" +) + +const ( + namespaceKubemark = "kubemark" + hollowNodeName = "hollow-node" + nodeGroupLabel = "autoscaling.k8s.io/nodegroup" + numRetries = 3 +) + +// KubemarkController is a simplified version of cloud provider for kubemark. It allows +// to add and delete nodes from a kubemark cluster and introduces nodegroups +// by applying labels to the kubemark's hollow-nodes. +type KubemarkController struct { + nodeTemplate *apiv1.ReplicationController + externalCluster externalCluster + kubemarkCluster kubemarkCluster + rand *rand.Rand +} + +// externalCluster is used to communicate with the external cluster that hosts +// kubemark, in order to be able to list, create and delete hollow nodes +// by manipulating the replication controllers. +type externalCluster struct { + rcLister listersv1.ReplicationControllerLister + rcSynced cache.InformerSynced + podLister listersv1.PodLister + podSynced cache.InformerSynced + client kubeclient.Interface +} + +// kubemarkCluster is used to delete nodes from kubemark cluster once their +// respective replication controllers have been deleted and the nodes have +// become unready. This is to cover for the fact that there is no proper cloud +// provider for kubemark that would care for deleting the nodes. +type kubemarkCluster struct { + client kubeclient.Interface + nodeLister listersv1.NodeLister + nodeSynced cache.InformerSynced + nodesToDelete map[string]bool + nodesToDeleteLock sync.Mutex +} + +// NewKubemarkController creates KubemarkController using the provided clients to talk to external +// and kubemark clusters. +func NewKubemarkController(externalClient kubeclient.Interface, externalInformerFactory informers.SharedInformerFactory, + kubemarkClient kubeclient.Interface, kubemarkNodeInformer informersv1.NodeInformer) (*KubemarkController, error) { + rcInformer := externalInformerFactory.InformerFor(&apiv1.ReplicationController{}, newReplicationControllerInformer) + podInformer := externalInformerFactory.InformerFor(&apiv1.Pod{}, newPodInformer) + controller := &KubemarkController{ + externalCluster: externalCluster{ + rcLister: listersv1.NewReplicationControllerLister(rcInformer.GetIndexer()), + rcSynced: rcInformer.HasSynced, + podLister: listersv1.NewPodLister(podInformer.GetIndexer()), + podSynced: podInformer.HasSynced, + client: externalClient, + }, + kubemarkCluster: kubemarkCluster{ + nodeLister: kubemarkNodeInformer.Lister(), + nodeSynced: kubemarkNodeInformer.Informer().HasSynced, + client: kubemarkClient, + nodesToDelete: make(map[string]bool), + nodesToDeleteLock: sync.Mutex{}, + }, + rand: rand.New(rand.NewSource(time.Now().UTC().UnixNano())), + } + + kubemarkNodeInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ + UpdateFunc: controller.kubemarkCluster.removeUnneededNodes, + }) + + return controller, nil +} + +// Init waits for population of caches and populates the node template needed +// for creation of kubemark nodes. +func (kubemarkController *KubemarkController) Init(stopCh chan struct{}) { + if !controller.WaitForCacheSync("kubemark", stopCh, + kubemarkController.externalCluster.rcSynced, + kubemarkController.externalCluster.podSynced, + kubemarkController.kubemarkCluster.nodeSynced) { + return + } + + // Get hollow node template from an existing hollow node to be able to create + // new nodes based on it. + nodeTemplate, err := kubemarkController.getNodeTemplate() + if err != nil { + glog.Fatalf("Failed to get node template: %s", err) + } + kubemarkController.nodeTemplate = nodeTemplate +} + +// GetNodesForNodegroup returns list of the nodes in the node group. +func (kubemarkController *KubemarkController) GetNodeNamesForNodegroup(nodeGroup string) ([]string, error) { + selector := labels.SelectorFromSet(labels.Set{nodeGroupLabel: nodeGroup}) + pods, err := kubemarkController.externalCluster.podLister.List(selector) + if err != nil { + return nil, err + } + result := make([]string, 0, len(pods)) + for _, pod := range pods { + result = append(result, pod.ObjectMeta.Name) + } + return result, nil +} + +// GetNodeGroupSize returns the current size for the node group. +func (kubemarkController *KubemarkController) GetNodeGroupSize(nodeGroup string) (int, error) { + selector := labels.SelectorFromSet(labels.Set(map[string]string{nodeGroupLabel: nodeGroup})) + nodes, err := kubemarkController.externalCluster.rcLister.List(selector) + if err != nil { + return 0, err + } + return len(nodes), nil +} + +// SetNodeGroupSize changes the size of node group by adding or removing nodes. +func (kubemarkController *KubemarkController) SetNodeGroupSize(nodeGroup string, size int) error { + currSize, err := kubemarkController.GetNodeGroupSize(nodeGroup) + if err != nil { + return err + } + switch delta := size - currSize; { + case delta < 0: + absDelta := -delta + nodes, err := kubemarkController.GetNodeNamesForNodegroup(nodeGroup) + if err != nil { + return err + } + if len(nodes) > absDelta { + return fmt.Errorf("can't remove %d nodes from %s nodegroup, not enough nodes", absDelta, nodeGroup) + } + for i, node := range nodes { + if i == absDelta { + return nil + } + if err := kubemarkController.removeNodeFromNodeGroup(nodeGroup, node); err != nil { + return err + } + } + case delta > 0: + for i := 0; i < delta; i++ { + if err := kubemarkController.addNodeToNodeGroup(nodeGroup); err != nil { + return err + } + } + } + + return nil +} + +func (kubemarkController *KubemarkController) addNodeToNodeGroup(nodeGroup string) error { + templateCopy, err := api.Scheme.Copy(kubemarkController.nodeTemplate) + if err != nil { + return err + } + node := templateCopy.(*apiv1.ReplicationController) + node.Name = fmt.Sprintf("%s-%d", nodeGroup, kubemarkController.rand.Int63()) + node.Labels = map[string]string{nodeGroupLabel: nodeGroup, "name": node.Name} + node.Spec.Template.Labels = node.Labels + + for i := 0; i < numRetries; i++ { + _, err = kubemarkController.externalCluster.client.CoreV1().ReplicationControllers(node.Namespace).Create(node) + if err == nil { + return nil + } + } + + return err +} + +func (kubemarkController *KubemarkController) removeNodeFromNodeGroup(nodeGroup string, node string) error { + pods, err := kubemarkController.externalCluster.podLister.List(labels.Everything()) + if err != nil { + return err + } + for _, pod := range pods { + if pod.ObjectMeta.Name == node { + if pod.ObjectMeta.Labels[nodeGroupLabel] != nodeGroup { + return fmt.Errorf("can't delete node %s from nodegroup %s. Node is not in nodegroup", node, nodeGroup) + } + policy := metav1.DeletePropagationForeground + for i := 0; i < numRetries; i++ { + err := kubemarkController.externalCluster.client.CoreV1().ReplicationControllers(namespaceKubemark).Delete( + pod.ObjectMeta.Labels["name"], + &metav1.DeleteOptions{PropagationPolicy: &policy}) + if err == nil { + glog.Infof("marking node %s for deletion", node) + // Mark node for deletion from kubemark cluster. + // Once it becomes unready after replication controller + // deletion has been noticed, we will delete it explicitly. + // This is to cover for the fact that kubemark does not + // take care of this itself. + kubemarkController.kubemarkCluster.markNodeForDeletion(node) + return nil + } + } + } + } + + return fmt.Errorf("can't delete node %s from nodegroup %s. Node does not exist", node, nodeGroup) +} + +func (kubemarkController *KubemarkController) getReplicationControllerByName(name string) *apiv1.ReplicationController { + rcs, err := kubemarkController.externalCluster.rcLister.List(labels.Everything()) + if err != nil { + return nil + } + for _, rc := range rcs { + if rc.ObjectMeta.Name == name { + return rc + } + } + return nil +} + +func (kubemarkController *KubemarkController) getNodeNameForPod(podName string) (string, error) { + pods, err := kubemarkController.externalCluster.podLister.List(labels.Everything()) + if err != nil { + return "", err + } + for _, pod := range pods { + if pod.ObjectMeta.Name == podName { + return pod.Labels["name"], nil + } + } + return "", fmt.Errorf("pod %s not found", podName) +} + +// getNodeTemplate returns the template for hollow node replication controllers +// by looking for an existing hollow node specification. This requires at least +// one kubemark node to be present on startup. +func (kubemarkController *KubemarkController) getNodeTemplate() (*apiv1.ReplicationController, error) { + podName, err := kubemarkController.kubemarkCluster.getHollowNodeName() + if err != nil { + return nil, err + } + hollowNodeName, err := kubemarkController.getNodeNameForPod(podName) + if err != nil { + return nil, err + } + if hollowNode := kubemarkController.getReplicationControllerByName(hollowNodeName); hollowNode != nil { + nodeTemplate := &apiv1.ReplicationController{ + Spec: apiv1.ReplicationControllerSpec{ + Template: hollowNode.Spec.Template, + }, + } + + nodeTemplate.Spec.Selector = nil + nodeTemplate.Namespace = namespaceKubemark + one := int32(1) + nodeTemplate.Spec.Replicas = &one + + return nodeTemplate, nil + } + return nil, fmt.Errorf("can't get hollow node template") +} + +func (kubemarkCluster *kubemarkCluster) getHollowNodeName() (string, error) { + nodes, err := kubemarkCluster.nodeLister.List(labels.Everything()) + if err != nil { + return "", err + } + for _, node := range nodes { + return node.Name, nil + } + return "", fmt.Errorf("did not find any hollow nodes in the cluster") +} + +func (kubemarkCluster *kubemarkCluster) removeUnneededNodes(oldObj interface{}, newObj interface{}) { + node, ok := newObj.(*apiv1.Node) + if !ok { + return + } + for _, condition := range node.Status.Conditions { + // Delete node if it is in unready state, and it has been + // explicitly marked for deletion. + if condition.Type == apiv1.NodeReady && condition.Status != apiv1.ConditionTrue { + kubemarkCluster.nodesToDeleteLock.Lock() + defer kubemarkCluster.nodesToDeleteLock.Unlock() + if kubemarkCluster.nodesToDelete[node.Name] { + kubemarkCluster.nodesToDelete[node.Name] = false + if err := kubemarkCluster.client.CoreV1().Nodes().Delete(node.Name, &metav1.DeleteOptions{}); err != nil { + glog.Errorf("failed to delete node %s from kubemark cluster", node.Name) + } + } + return + } + } +} + +func (kubemarkCluster *kubemarkCluster) markNodeForDeletion(name string) { + kubemarkCluster.nodesToDeleteLock.Lock() + defer kubemarkCluster.nodesToDeleteLock.Unlock() + kubemarkCluster.nodesToDelete[name] = true +} + +func newReplicationControllerInformer(kubeClient kubeclient.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + rcListWatch := cache.NewListWatchFromClient(kubeClient.CoreV1().RESTClient(), "replicationcontrollers", namespaceKubemark, fields.Everything()) + return cache.NewSharedIndexInformer(rcListWatch, &apiv1.ReplicationController{}, resyncPeriod, nil) +} + +func newPodInformer(kubeClient kubeclient.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + podListWatch := cache.NewListWatchFromClient(kubeClient.CoreV1().RESTClient(), "pods", namespaceKubemark, fields.Everything()) + return cache.NewSharedIndexInformer(podListWatch, &apiv1.Pod{}, resyncPeriod, nil) +} diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 06be9b417a8..c9d7f0de190 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -68,6 +68,7 @@ go_library( "//pkg/kubelet/metrics:go_default_library", "//pkg/kubelet/sysctl:go_default_library", "//pkg/kubelet/util/format:go_default_library", + "//pkg/kubemark:go_default_library", "//pkg/master/ports:go_default_library", "//pkg/ssh:go_default_library", "//pkg/util/file:go_default_library", @@ -128,6 +129,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", "//vendor/k8s.io/client-go/dynamic:go_default_library", + "//vendor/k8s.io/client-go/informers:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index ccf9c43fdf8..f4fa2bfa8f5 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -37,12 +37,15 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/dynamic" + "k8s.io/client-go/informers" clientset "k8s.io/client-go/kubernetes" staging "k8s.io/client-go/kubernetes" clientreporestclient "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" + "k8s.io/kubernetes/pkg/kubemark" "k8s.io/kubernetes/test/e2e/framework/metrics" testutils "k8s.io/kubernetes/test/utils" @@ -95,6 +98,8 @@ type Framework struct { // Place where various additional data is stored during test run to be printed to ReportDir, // or stdout if ReportDir is not set once test ends. TestSummaries []TestDataSummary + + kubemarkControllerCloseChannel chan struct{} } type TestDataSummary interface { @@ -190,6 +195,23 @@ func (f *Framework) BeforeEach() { f.StagingClient, err = staging.NewForConfig(clientRepoConfig) Expect(err).NotTo(HaveOccurred()) f.ClientPool = dynamic.NewClientPool(config, api.Registry.RESTMapper(), dynamic.LegacyAPIPathResolverFunc) + if ProviderIs("kubemark") && TestContext.KubemarkExternalKubeConfig != "" && TestContext.CloudConfig.KubemarkController == nil { + externalConfig, err := clientcmd.BuildConfigFromFlags("", TestContext.KubemarkExternalKubeConfig) + externalConfig.QPS = f.Options.ClientQPS + externalConfig.Burst = f.Options.ClientBurst + Expect(err).NotTo(HaveOccurred()) + externalClient, err := clientset.NewForConfig(externalConfig) + Expect(err).NotTo(HaveOccurred()) + f.kubemarkControllerCloseChannel = make(chan struct{}) + externalInformerFactory := informers.NewSharedInformerFactory(externalClient, 0) + kubemarkInformerFactory := informers.NewSharedInformerFactory(f.ClientSet, 0) + kubemarkNodeInformer := kubemarkInformerFactory.Core().V1().Nodes() + go kubemarkNodeInformer.Informer().Run(f.kubemarkControllerCloseChannel) + TestContext.CloudConfig.KubemarkController, err = kubemark.NewKubemarkController(externalClient, externalInformerFactory, f.ClientSet, kubemarkNodeInformer) + Expect(err).NotTo(HaveOccurred()) + externalInformerFactory.Start(f.kubemarkControllerCloseChannel) + TestContext.CloudConfig.KubemarkController.Init(f.kubemarkControllerCloseChannel) + } } if !f.SkipNamespaceCreation { @@ -342,6 +364,10 @@ func (f *Framework) AfterEach() { } } + if TestContext.CloudConfig.KubemarkController != nil { + close(f.kubemarkControllerCloseChannel) + } + PrintSummaries(f.TestSummaries, f.BaseName) // Check whether all nodes are ready after the test. diff --git a/test/e2e/framework/size.go b/test/e2e/framework/size.go index ec20dafbe89..7883f41fc08 100644 --- a/test/e2e/framework/size.go +++ b/test/e2e/framework/size.go @@ -51,6 +51,8 @@ func ResizeGroup(group string, size int32) error { } else if TestContext.Provider == "aws" { client := autoscaling.New(session.New()) return awscloud.ResizeInstanceGroup(client, group, int(size)) + } else if TestContext.Provider == "kubemark" { + return TestContext.CloudConfig.KubemarkController.SetNodeGroupSize(group, int(size)) } else { return fmt.Errorf("Provider does not support InstanceGroups") } @@ -72,6 +74,8 @@ func GetGroupNodes(group string) ([]string, error) { lines[i] = line[:strings.Index(line, " ")] } return lines, nil + } else if TestContext.Provider == "kubemark" { + return TestContext.CloudConfig.KubemarkController.GetNodeNamesForNodegroup(group) } else { return nil, fmt.Errorf("provider does not support InstanceGroups") } @@ -99,6 +103,8 @@ func GroupSize(group string) (int, error) { return -1, fmt.Errorf("instance group not found: %s", group) } return instanceGroup.CurrentSize() + } else if TestContext.Provider == "kubemark" { + return TestContext.CloudConfig.KubemarkController.GetNodeGroupSize(group) } else { return -1, fmt.Errorf("provider does not support InstanceGroups") } diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index 309a372b63c..b4f87b092cb 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -27,17 +27,19 @@ import ( "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/apis/componentconfig" "k8s.io/kubernetes/pkg/cloudprovider" + "k8s.io/kubernetes/pkg/kubemark" ) const defaultHost = "http://127.0.0.1:8080" type TestContextType struct { - KubeConfig string - KubeContext string - KubeAPIContentType string - KubeVolumeDir string - CertDir string - Host string + KubeConfig string + KubemarkExternalKubeConfig string + KubeContext string + KubeAPIContentType string + KubeVolumeDir string + CertDir string + Host string // TODO: Deprecating this over time... instead just use gobindata_util.go , see #23987. RepoRoot string DockershimCheckpointDir string @@ -158,7 +160,8 @@ type CloudConfig struct { NodeTag string MasterTag string - Provider cloudprovider.Interface + Provider cloudprovider.Interface + KubemarkController *kubemark.KubemarkController } var TestContext TestContextType @@ -201,6 +204,7 @@ func RegisterCommonFlags() { func RegisterClusterFlags() { flag.BoolVar(&TestContext.VerifyServiceAccount, "e2e-verify-service-account", true, "If true tests will verify the service account before running.") flag.StringVar(&TestContext.KubeConfig, clientcmd.RecommendedConfigPathFlag, os.Getenv(clientcmd.RecommendedConfigPathEnvVar), "Path to kubeconfig containing embedded authinfo.") + 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.") From 17eb58131a29c7299299fa8c690bcf8fa4c20c84 Mon Sep 17 00:00:00 2001 From: Solly Ross Date: Fri, 4 Aug 2017 14:44:54 -0400 Subject: [PATCH 078/183] Handle missing OpenAPI specs on aggregated servers Previously, the aggregator would fail to actually set up the aggregator proxy for an API server that was missing an OpenAPI spec. It would show up in discovery, but the actual proxying would fail to occur. Now, we simply log an error if we can't fetch an OpenAPI spec for a particular aggregated server, and continue on. --- staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go index 40b07d267f3..0d72b9e43df 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/apiserver.go @@ -17,6 +17,7 @@ limitations under the License. package apiserver import ( + "fmt" "net/http" "time" @@ -26,6 +27,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/serializer" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/rest" @@ -261,7 +263,7 @@ func (s *APIAggregator) AddAPIService(apiService *apiregistration.APIService) er } proxyHandler.updateAPIService(apiService) if err := s.openAPIAggregator.loadApiServiceSpec(proxyHandler, apiService); err != nil { - return err + utilruntime.HandleError(fmt.Errorf("unable to load OpenAPI spec for API service %s: %v", apiService.Name, err)) } s.proxyHandlers[apiService.Name] = proxyHandler s.GenericAPIServer.Handler.NonGoRestfulMux.Handle(proxyPath, proxyHandler) From 47d426c4413e4a3d3dd81158b8e6172ca55fc025 Mon Sep 17 00:00:00 2001 From: David Eads Date: Mon, 7 Aug 2017 12:55:29 -0400 Subject: [PATCH 079/183] provide the failing health as part of the controller error --- cmd/kube-controller-manager/app/controllermanager.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index 7fed1789165..0c7659cbb41 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -342,6 +342,7 @@ func NewControllerInitializers() map[string]InitFunc { func GetAvailableResources(clientBuilder controller.ControllerClientBuilder) (map[schema.GroupVersionResource]bool, error) { var discoveryClient discovery.DiscoveryInterface + var healthzContent string // If apiserver is not running we should wait for some time and fail only then. This is particularly // important when we start apiserver and controller manager at the same time. err := wait.PollImmediate(time.Second, 10*time.Second, func() (bool, error) { @@ -352,17 +353,19 @@ func GetAvailableResources(clientBuilder controller.ControllerClientBuilder) (ma } healthStatus := 0 - client.Discovery().RESTClient().Get().AbsPath("/healthz").Do().StatusCode(&healthStatus) + resp := client.Discovery().RESTClient().Get().AbsPath("/healthz").Do().StatusCode(&healthStatus) if healthStatus != http.StatusOK { glog.Errorf("Server isn't healthy yet. Waiting a little while.") return false, nil } + content, _ := resp.Raw() + healthzContent = string(content) discoveryClient = client.Discovery() return true, nil }) if err != nil { - return nil, fmt.Errorf("failed to get api versions from server: %v", err) + return nil, fmt.Errorf("failed to get api versions from server: %v: %v", healthzContent, err) } resourceMap, err := discoveryClient.ServerResources() From 4dcdfd4aa8b3c2412c2bfd086831dd2f97368c99 Mon Sep 17 00:00:00 2001 From: jianhuiz Date: Thu, 3 Aug 2017 11:01:48 -0700 Subject: [PATCH 080/183] add job controller --- .../federation-controller-manager/app/BUILD | 1 + .../app/controllermanager.go | 9 + .../app/options/options.go | 6 + federation/pkg/federation-controller/BUILD | 1 + .../pkg/federation-controller/job/BUILD | 80 +++ .../job/jobcontroller.go | 561 ++++++++++++++++++ .../job/jobcontroller_test.go | 282 +++++++++ .../federation-controller/util/handlers.go | 1 + hack/verify-flags/known-flags.txt | 1 + 9 files changed, 942 insertions(+) create mode 100644 federation/pkg/federation-controller/job/BUILD create mode 100644 federation/pkg/federation-controller/job/jobcontroller.go create mode 100644 federation/pkg/federation-controller/job/jobcontroller_test.go diff --git a/federation/cmd/federation-controller-manager/app/BUILD b/federation/cmd/federation-controller-manager/app/BUILD index a4fffac2a2b..0d7514b4aef 100644 --- a/federation/cmd/federation-controller-manager/app/BUILD +++ b/federation/cmd/federation-controller-manager/app/BUILD @@ -24,6 +24,7 @@ go_library( "//federation/pkg/federatedtypes:go_default_library", "//federation/pkg/federation-controller/cluster:go_default_library", "//federation/pkg/federation-controller/ingress:go_default_library", + "//federation/pkg/federation-controller/job:go_default_library", "//federation/pkg/federation-controller/service:go_default_library", "//federation/pkg/federation-controller/service/dns:go_default_library", "//federation/pkg/federation-controller/sync:go_default_library", diff --git a/federation/cmd/federation-controller-manager/app/controllermanager.go b/federation/cmd/federation-controller-manager/app/controllermanager.go index 9144eca97f4..d4abefe200c 100644 --- a/federation/cmd/federation-controller-manager/app/controllermanager.go +++ b/federation/cmd/federation-controller-manager/app/controllermanager.go @@ -37,6 +37,7 @@ import ( "k8s.io/kubernetes/federation/pkg/federatedtypes" clustercontroller "k8s.io/kubernetes/federation/pkg/federation-controller/cluster" ingresscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/ingress" + jobcontroller "k8s.io/kubernetes/federation/pkg/federation-controller/job" servicecontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service" servicednscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service/dns" synccontroller "k8s.io/kubernetes/federation/pkg/federation-controller/sync" @@ -155,6 +156,14 @@ func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) err } } + if controllerEnabled(s.Controllers, serverResources, jobcontroller.ControllerName, jobcontroller.RequiredResources, true) { + glog.V(3).Infof("Loading client config for job controller %q", jobcontroller.UserAgentName) + jobClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, jobcontroller.UserAgentName)) + jobController := jobcontroller.NewJobController(jobClientset) + glog.V(3).Infof("Running job controller") + go jobController.Run(s.ConcurrentJobSyncs, wait.NeverStop) + } + if controllerEnabled(s.Controllers, serverResources, ingresscontroller.ControllerName, ingresscontroller.RequiredResources, true) { glog.V(3).Infof("Loading client config for ingress controller %q", ingresscontroller.UserAgentName) ingClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, ingresscontroller.UserAgentName)) diff --git a/federation/cmd/federation-controller-manager/app/options/options.go b/federation/cmd/federation-controller-manager/app/options/options.go index e6659c36977..5d6efca5a10 100644 --- a/federation/cmd/federation-controller-manager/app/options/options.go +++ b/federation/cmd/federation-controller-manager/app/options/options.go @@ -56,6 +56,10 @@ type ControllerManagerConfiguration struct { // allowed to sync concurrently. Larger number = more responsive service // management, but more CPU (and network) load. ConcurrentReplicaSetSyncs int `json:"concurrentReplicaSetSyncs"` + // concurrentJobSyncs is the number of Jobs that are + // allowed to sync concurrently. Larger number = more responsive service + // management, but more CPU (and network) load. + ConcurrentJobSyncs int `json:"concurrentJobSyncs"` // clusterMonitorPeriod is the period for syncing ClusterStatus in cluster controller. ClusterMonitorPeriod metav1.Duration `json:"clusterMonitorPeriod"` // APIServerQPS is the QPS to use while talking with federation apiserver. @@ -96,6 +100,7 @@ func NewCMServer() *CMServer { ConcurrentServiceSyncs: 10, ConcurrentReplicaSetSyncs: 10, ClusterMonitorPeriod: metav1.Duration{Duration: 40 * time.Second}, + ConcurrentJobSyncs: 10, APIServerQPS: 20.0, APIServerBurst: 30, LeaderElection: leaderelectionconfig.DefaultLeaderElectionConfiguration(), @@ -115,6 +120,7 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.ServiceDnsSuffix, "service-dns-suffix", s.ServiceDnsSuffix, "DNS Suffix to use when publishing federated service names. Defaults to zone-name") fs.IntVar(&s.ConcurrentServiceSyncs, "concurrent-service-syncs", s.ConcurrentServiceSyncs, "The number of service syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load") fs.IntVar(&s.ConcurrentReplicaSetSyncs, "concurrent-replicaset-syncs", s.ConcurrentReplicaSetSyncs, "The number of ReplicaSets syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load") + fs.IntVar(&s.ConcurrentJobSyncs, "concurrent-job-syncs", s.ConcurrentJobSyncs, "The number of Jobs syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load") fs.DurationVar(&s.ClusterMonitorPeriod.Duration, "cluster-monitor-period", s.ClusterMonitorPeriod.Duration, "The period for syncing ClusterStatus in ClusterController.") fs.BoolVar(&s.EnableProfiling, "profiling", true, "Enable profiling via web interface host:port/debug/pprof/") fs.BoolVar(&s.EnableContentionProfiling, "contention-profiling", false, "Enable lock contention profiling, if profiling is enabled") diff --git a/federation/pkg/federation-controller/BUILD b/federation/pkg/federation-controller/BUILD index 28057fc52ea..951da1b7786 100644 --- a/federation/pkg/federation-controller/BUILD +++ b/federation/pkg/federation-controller/BUILD @@ -26,6 +26,7 @@ filegroup( ":package-srcs", "//federation/pkg/federation-controller/cluster:all-srcs", "//federation/pkg/federation-controller/ingress:all-srcs", + "//federation/pkg/federation-controller/job:all-srcs", "//federation/pkg/federation-controller/service:all-srcs", "//federation/pkg/federation-controller/sync:all-srcs", "//federation/pkg/federation-controller/util:all-srcs", diff --git a/federation/pkg/federation-controller/job/BUILD b/federation/pkg/federation-controller/job/BUILD new file mode 100644 index 00000000000..da81dc92077 --- /dev/null +++ b/federation/pkg/federation-controller/job/BUILD @@ -0,0 +1,80 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_library( + name = "go_default_library", + srcs = ["jobcontroller.go"], + tags = ["automanaged"], + deps = [ + "//federation/apis/federation:go_default_library", + "//federation/apis/federation/v1beta1:go_default_library", + "//federation/client/clientset_generated/federation_clientset:go_default_library", + "//federation/pkg/federation-controller/util:go_default_library", + "//federation/pkg/federation-controller/util/deletionhelper:go_default_library", + "//federation/pkg/federation-controller/util/eventsink:go_default_library", + "//federation/pkg/federation-controller/util/planner:go_default_library", + "//federation/pkg/federation-controller/util/replicapreferences:go_default_library", + "//pkg/api:go_default_library", + "//pkg/controller:go_default_library", + "//vendor/github.com/davecgh/go-spew/spew:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/batch/v1:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/client-go/tools/record:go_default_library", + "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", + "//vendor/k8s.io/client-go/util/workqueue:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["jobcontroller_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//federation/apis/federation/v1beta1:go_default_library", + "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", + "//federation/pkg/federation-controller/util:go_default_library", + "//federation/pkg/federation-controller/util/finalizers:go_default_library", + "//federation/pkg/federation-controller/util/test:go_default_library", + "//pkg/apis/batch/v1:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/k8s.io/api/batch/v1:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + "//vendor/k8s.io/client-go/testing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/federation/pkg/federation-controller/job/jobcontroller.go b/federation/pkg/federation-controller/job/jobcontroller.go new file mode 100644 index 00000000000..d3977182fc1 --- /dev/null +++ b/federation/pkg/federation-controller/job/jobcontroller.go @@ -0,0 +1,561 @@ +/* +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 job + +import ( + "fmt" + "reflect" + "time" + + "github.com/davecgh/go-spew/spew" + "github.com/golang/glog" + + batchv1 "k8s.io/api/batch/v1" + clientv1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/wait" + "k8s.io/apimachinery/pkg/watch" + kubeclientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/cache" + "k8s.io/client-go/tools/record" + "k8s.io/client-go/util/flowcontrol" + "k8s.io/client-go/util/workqueue" + fed "k8s.io/kubernetes/federation/apis/federation" + fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" + fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" + fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" + "k8s.io/kubernetes/federation/pkg/federation-controller/util/deletionhelper" + "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" + "k8s.io/kubernetes/federation/pkg/federation-controller/util/planner" + "k8s.io/kubernetes/federation/pkg/federation-controller/util/replicapreferences" + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/controller" +) + +const ( + fedJobPreferencesAnnotation = "federation.kubernetes.io/job-preferences" + allClustersKey = "THE_ALL_CLUSTER_KEY" + // UserAgentName is the user agent used in the federation client + UserAgentName = "Federation-Job-Controller" + // ControllerName is name of this controller + ControllerName = "jobs" +) + +var ( + // RequiredResources is the resource group version of the type this controller manages + RequiredResources = []schema.GroupVersionResource{batchv1.SchemeGroupVersion.WithResource("jobs")} + jobReviewDelay = 10 * time.Second + clusterAvailableDelay = 20 * time.Second + clusterUnavailableDelay = 60 * time.Second + updateTimeout = 30 * time.Second + backoffInitial = 5 * time.Second + backoffMax = 1 * time.Minute +) + +// FederationJobController synchronizes the state of a federated job object +// to clusters that are members of the federation. +type FederationJobController struct { + fedClient fedclientset.Interface + + jobController cache.Controller + jobStore cache.Store + + fedJobInformer fedutil.FederatedInformer + + jobDeliverer *fedutil.DelayingDeliverer + clusterDeliverer *fedutil.DelayingDeliverer + jobWorkQueue workqueue.Interface + // For updating members of federation. + fedUpdater fedutil.FederatedUpdater + + jobBackoff *flowcontrol.Backoff + // For events + eventRecorder record.EventRecorder + + defaultPlanner *planner.Planner + deletionHelper *deletionhelper.DeletionHelper +} + +// NewJobController creates a new federation job controller +func NewJobController(fedClient fedclientset.Interface) *FederationJobController { + broadcaster := record.NewBroadcaster() + broadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(fedClient)) + recorder := broadcaster.NewRecorder(api.Scheme, clientv1.EventSource{Component: "federated-job-controller"}) + fjc := &FederationJobController{ + fedClient: fedClient, + jobDeliverer: fedutil.NewDelayingDeliverer(), + clusterDeliverer: fedutil.NewDelayingDeliverer(), + jobWorkQueue: workqueue.New(), + jobBackoff: flowcontrol.NewBackOff(backoffInitial, backoffMax), + defaultPlanner: planner.NewPlanner(&fed.ReplicaAllocationPreferences{ + Clusters: map[string]fed.ClusterPreferences{ + "*": {Weight: 1}, + }, + }), + eventRecorder: recorder, + } + + jobFedInformerFactory := func(cluster *fedv1.Cluster, clientset kubeclientset.Interface) (cache.Store, cache.Controller) { + return cache.NewInformer( + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return clientset.BatchV1().Jobs(metav1.NamespaceAll).List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return clientset.BatchV1().Jobs(metav1.NamespaceAll).Watch(options) + }, + }, + &batchv1.Job{}, + controller.NoResyncPeriodFunc(), + fedutil.NewTriggerOnAllChanges( + func(obj runtime.Object) { fjc.deliverLocalJob(obj, jobReviewDelay) }, + ), + ) + } + clusterLifecycle := fedutil.ClusterLifecycleHandlerFuncs{ + ClusterAvailable: func(cluster *fedv1.Cluster) { + fjc.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterAvailableDelay) + }, + ClusterUnavailable: func(cluster *fedv1.Cluster, _ []interface{}) { + fjc.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterUnavailableDelay) + }, + } + fjc.fedJobInformer = fedutil.NewFederatedInformer(fedClient, jobFedInformerFactory, &clusterLifecycle) + + fjc.jobStore, fjc.jobController = cache.NewInformer( + &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { + return fjc.fedClient.BatchV1().Jobs(metav1.NamespaceAll).List(options) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return fjc.fedClient.BatchV1().Jobs(metav1.NamespaceAll).Watch(options) + }, + }, + &batchv1.Job{}, + controller.NoResyncPeriodFunc(), + fedutil.NewTriggerOnMetaAndSpecChanges( + func(obj runtime.Object) { fjc.deliverFedJobObj(obj, 0) }, + ), + ) + + fjc.fedUpdater = fedutil.NewFederatedUpdater(fjc.fedJobInformer, "job", updateTimeout, fjc.eventRecorder, + func(client kubeclientset.Interface, obj runtime.Object) error { + rs := obj.(*batchv1.Job) + _, err := client.BatchV1().Jobs(rs.Namespace).Create(rs) + return err + }, + func(client kubeclientset.Interface, obj runtime.Object) error { + rs := obj.(*batchv1.Job) + _, err := client.BatchV1().Jobs(rs.Namespace).Update(rs) + return err + }, + func(client kubeclientset.Interface, obj runtime.Object) error { + rs := obj.(*batchv1.Job) + err := client.BatchV1().Jobs(rs.Namespace).Delete(rs.Name, &metav1.DeleteOptions{}) + return err + }) + + fjc.deletionHelper = deletionhelper.NewDeletionHelper( + fjc.updateJob, + // objNameFunc + func(obj runtime.Object) string { + job := obj.(*batchv1.Job) + return job.Name + }, + fjc.fedJobInformer, + fjc.fedUpdater, + ) + + return fjc +} + +// Sends the given updated object to apiserver. +// Assumes that the given object is a job. +func (fjc *FederationJobController) updateJob(obj runtime.Object) (runtime.Object, error) { + job := obj.(*batchv1.Job) + return fjc.fedClient.BatchV1().Jobs(job.Namespace).Update(job) +} + +// Run starts the syncing of federation jobs to the clusters. +func (fjc *FederationJobController) Run(workers int, stopCh <-chan struct{}) { + go fjc.jobController.Run(stopCh) + fjc.fedJobInformer.Start() + + fjc.jobDeliverer.StartWithHandler(func(item *fedutil.DelayingDelivererItem) { + fjc.jobWorkQueue.Add(item.Key) + }) + fjc.clusterDeliverer.StartWithHandler(func(_ *fedutil.DelayingDelivererItem) { + fjc.reconcileJobsOnClusterChange() + }) + + for !fjc.isSynced() { + time.Sleep(5 * time.Millisecond) + } + + for i := 0; i < workers; i++ { + go wait.Until(fjc.worker, time.Second, stopCh) + } + + fedutil.StartBackoffGC(fjc.jobBackoff, stopCh) + + <-stopCh + glog.Infof("Shutting down FederationJobController") + fjc.jobDeliverer.Stop() + fjc.clusterDeliverer.Stop() + fjc.jobWorkQueue.ShutDown() + fjc.fedJobInformer.Stop() +} + +func (fjc *FederationJobController) isSynced() bool { + if !fjc.fedJobInformer.ClustersSynced() { + glog.V(3).Infof("Cluster list not synced") + return false + } + clusters, err := fjc.fedJobInformer.GetReadyClusters() + if err != nil { + glog.Errorf("Failed to get ready clusters: %v", err) + return false + } + if !fjc.fedJobInformer.GetTargetStore().ClustersSynced(clusters) { + glog.V(2).Infof("cluster job list not synced") + return false + } + + if !fjc.jobController.HasSynced() { + glog.V(2).Infof("federation job list not synced") + return false + } + return true +} + +func (fjc *FederationJobController) deliverLocalJob(obj interface{}, duration time.Duration) { + key, err := controller.KeyFunc(obj) + if err != nil { + glog.Errorf("Couldn't get key for object %v: %v", obj, err) + return + } + _, exists, err := fjc.jobStore.GetByKey(key) + if err != nil { + glog.Errorf("Couldn't get federated job %v: %v", key, err) + return + } + if exists { // ignore jobs exists only in local k8s + fjc.deliverJobByKey(key, duration, false) + } +} + +func (fjc *FederationJobController) deliverFedJobObj(obj interface{}, delay time.Duration) { + key, err := controller.KeyFunc(obj) + if err != nil { + glog.Errorf("Couldn't get key for object %+v: %v", obj, err) + return + } + fjc.deliverJobByKey(key, delay, false) +} + +func (fjc *FederationJobController) deliverJobByKey(key string, delay time.Duration, failed bool) { + if failed { + fjc.jobBackoff.Next(key, time.Now()) + delay = delay + fjc.jobBackoff.Get(key) + } else { + fjc.jobBackoff.Reset(key) + } + fjc.jobDeliverer.DeliverAfter(key, nil, delay) +} + +type reconciliationStatus string + +const ( + statusAllOk = reconciliationStatus("ALL_OK") + statusNeedRecheck = reconciliationStatus("RECHECK") + statusError = reconciliationStatus("ERROR") + statusNotSynced = reconciliationStatus("NOSYNC") +) + +func (fjc *FederationJobController) worker() { + for { + item, quit := fjc.jobWorkQueue.Get() + if quit { + return + } + key := item.(string) + status, err := fjc.reconcileJob(key) + fjc.jobWorkQueue.Done(item) + if err != nil { + glog.Errorf("Error syncing job controller: %v", err) + fjc.deliverJobByKey(key, 0, true) + } else { + switch status { + case statusAllOk: + break + case statusError: + fjc.deliverJobByKey(key, 0, true) + case statusNeedRecheck: + fjc.deliverJobByKey(key, jobReviewDelay, false) + case statusNotSynced: + fjc.deliverJobByKey(key, clusterAvailableDelay, false) + default: + glog.Errorf("Unhandled reconciliation status: %s", status) + fjc.deliverJobByKey(key, jobReviewDelay, false) + } + } + } +} + +type scheduleResult struct { + Parallelism *int32 + Completions *int32 +} + +func (fjc *FederationJobController) schedule(fjob *batchv1.Job, clusters []*fedv1.Cluster) map[string]scheduleResult { + plnr := fjc.defaultPlanner + frsPref, err := replicapreferences.GetAllocationPreferences(fjob, fedJobPreferencesAnnotation) + if err != nil { + glog.Warningf("Invalid job specific preference, use default. rs: %v, err: %v", fjob, err) + } + if frsPref != nil { // create a new planner if user specified a preference + plnr = planner.NewPlanner(frsPref) + } + + parallelism := int64(*fjob.Spec.Parallelism) + var clusterNames []string + for _, cluster := range clusters { + clusterNames = append(clusterNames, cluster.Name) + } + parallelismResult, _ := plnr.Plan(parallelism, clusterNames, nil, nil, fjob.Namespace+"/"+fjob.Name) + + if frsPref != nil { + for _, clusterPref := range frsPref.Clusters { + clusterPref.MinReplicas = 0 + clusterPref.MaxReplicas = nil + } + plnr = planner.NewPlanner(frsPref) + } + clusterNames = nil + for clusterName := range parallelismResult { + clusterNames = append(clusterNames, clusterName) + } + completionsResult := make(map[string]int64) + if fjob.Spec.Completions != nil { + completionsResult, _ = plnr.Plan(int64(*fjob.Spec.Completions), clusterNames, nil, nil, fjob.Namespace+"/"+fjob.Name) + } + + results := make(map[string]scheduleResult) + for _, clusterName := range clusterNames { + paralle := int32(parallelismResult[clusterName]) + complet := int32(completionsResult[clusterName]) + result := scheduleResult{ + Parallelism: ¶lle, + } + if fjob.Spec.Completions != nil { + result.Completions = &complet + } + results[clusterName] = result + } + + return results +} + +func (fjc *FederationJobController) reconcileJob(key string) (reconciliationStatus, error) { + if !fjc.isSynced() { + return statusNotSynced, nil + } + + glog.V(4).Infof("Start reconcile job %q", key) + startTime := time.Now() + defer glog.V(4).Infof("Finished reconcile job %q (%v)", key, time.Now().Sub(startTime)) + + objFromStore, exists, err := fjc.jobStore.GetByKey(key) + if err != nil { + return statusError, err + } + if !exists { + // deleted federated job, nothing need to do + return statusAllOk, nil + } + + // Create a copy before modifying the obj to prevent race condition with other readers of obj from store. + obj, err := api.Scheme.DeepCopy(objFromStore) + fjob, ok := obj.(*batchv1.Job) + if err != nil || !ok { + return statusError, err + } + + // delete job + if fjob.DeletionTimestamp != nil { + if err := fjc.delete(fjob); err != nil { + fjc.eventRecorder.Eventf(fjob, api.EventTypeNormal, "DeleteFailed", "Job delete failed: %v", err) + return statusError, err + } + return statusAllOk, nil + } + + glog.V(3).Infof("Ensuring delete object from underlying clusters finalizer for job: %s\n", key) + // Add the required finalizers before creating a job in underlying clusters. + updatedJobObj, err := fjc.deletionHelper.EnsureFinalizers(fjob) + if err != nil { + return statusError, err + } + fjob = updatedJobObj.(*batchv1.Job) + + clusters, err := fjc.fedJobInformer.GetReadyClusters() + if err != nil { + return statusError, err + } + + scheduleResult := fjc.schedule(fjob, clusters) + glog.V(3).Infof("Start syncing local job %s: %s\n", key, spew.Sprintf("%v", scheduleResult)) + + fedStatus := batchv1.JobStatus{} + var fedStatusFailedCondition *batchv1.JobCondition + var fedStatusCompleteCondition *batchv1.JobCondition + var operations []fedutil.FederatedOperation + for clusterName, result := range scheduleResult { + ljobObj, exists, err := fjc.fedJobInformer.GetTargetStore().GetByKey(clusterName, key) + if err != nil { + return statusError, err + } + ljob := &batchv1.Job{ + ObjectMeta: fedutil.DeepCopyRelevantObjectMeta(fjob.ObjectMeta), + Spec: *fedutil.DeepCopyApiTypeOrPanic(&fjob.Spec).(*batchv1.JobSpec), + } + // use selector generated at federation level, or user specified value + manualSelector := true + ljob.Spec.ManualSelector = &manualSelector + ljob.Spec.Parallelism = result.Parallelism + ljob.Spec.Completions = result.Completions + + if !exists { + if *ljob.Spec.Parallelism > 0 { + fjc.eventRecorder.Eventf(fjob, api.EventTypeNormal, "CreateInCluster", "Creating job in cluster %s", clusterName) + operations = append(operations, fedutil.FederatedOperation{ + Type: fedutil.OperationTypeAdd, + Obj: ljob, + ClusterName: clusterName, + }) + } + } else { + currentLjob := ljobObj.(*batchv1.Job) + + // Update existing job, if needed. + if !fedutil.ObjectMetaAndSpecEquivalent(ljob, currentLjob) { + fjc.eventRecorder.Eventf(fjob, api.EventTypeNormal, "UpdateInCluster", "Updating job in cluster %s", clusterName) + operations = append(operations, fedutil.FederatedOperation{ + Type: fedutil.OperationTypeUpdate, + Obj: ljob, + ClusterName: clusterName, + }) + } + + // collect local job status + for _, condition := range currentLjob.Status.Conditions { + if condition.Type == batchv1.JobComplete { + if fedStatusCompleteCondition == nil || + fedStatusCompleteCondition.LastTransitionTime.Before(condition.LastTransitionTime) { + fedStatusCompleteCondition = &condition + } + } else if condition.Type == batchv1.JobFailed { + if fedStatusFailedCondition == nil || + fedStatusFailedCondition.LastTransitionTime.Before(condition.LastTransitionTime) { + fedStatusFailedCondition = &condition + } + } + } + if currentLjob.Status.StartTime != nil { + if fedStatus.StartTime == nil || fedStatus.StartTime.After(currentLjob.Status.StartTime.Time) { + fedStatus.StartTime = currentLjob.Status.StartTime + } + } + if currentLjob.Status.CompletionTime != nil { + if fedStatus.CompletionTime == nil || fedStatus.CompletionTime.Before(*currentLjob.Status.CompletionTime) { + fedStatus.CompletionTime = currentLjob.Status.CompletionTime + } + } + fedStatus.Active += currentLjob.Status.Active + fedStatus.Succeeded += currentLjob.Status.Succeeded + fedStatus.Failed += currentLjob.Status.Failed + } + } + + // federated job fails if any local job failes + if fedStatusFailedCondition != nil { + fedStatus.Conditions = append(fedStatus.Conditions, *fedStatusFailedCondition) + } else if fedStatusCompleteCondition != nil { + fedStatus.Conditions = append(fedStatus.Conditions, *fedStatusCompleteCondition) + } + if !reflect.DeepEqual(fedStatus, fjob.Status) { + fjob.Status = fedStatus + _, err = fjc.fedClient.BatchV1().Jobs(fjob.Namespace).UpdateStatus(fjob) + if err != nil { + return statusError, err + } + } + + if len(operations) == 0 { + // Everything is in order + return statusAllOk, nil + } + + if glog.V(4) { + for i, op := range operations { + job := op.Obj.(*batchv1.Job) + glog.V(4).Infof("operation[%d]: %s, %s/%s/%s, %d", i, op.Type, op.ClusterName, job.Namespace, job.Name, *job.Spec.Parallelism) + } + } + err = fjc.fedUpdater.Update(operations) + if err != nil { + return statusError, err + } + + // Some operations were made, reconcile after a while. + return statusNeedRecheck, nil + +} + +func (fjc *FederationJobController) reconcileJobsOnClusterChange() { + if !fjc.isSynced() { + fjc.clusterDeliverer.DeliverAfter(allClustersKey, nil, clusterAvailableDelay) + } + jobs := fjc.jobStore.List() + for _, job := range jobs { + key, _ := controller.KeyFunc(job) + fjc.deliverJobByKey(key, 0, false) + } +} + +// delete deletes the given job or returns error if the deletion was not complete. +func (fjc *FederationJobController) delete(job *batchv1.Job) error { + glog.V(3).Infof("Handling deletion of job: %s/%s\n", job.Namespace, job.Name) + _, err := fjc.deletionHelper.HandleObjectInUnderlyingClusters(job) + if err != nil { + return err + } + + err = fjc.fedClient.BatchV1().Jobs(job.Namespace).Delete(job.Name, nil) + if err != nil { + // Its all good if the error is not found error. That means it is deleted already and we do not have to do anything. + // This is expected when we are processing an update as a result of job finalizer deletion. + // The process that deleted the last finalizer is also going to delete the job and we do not have to do anything. + if !errors.IsNotFound(err) { + return fmt.Errorf("failed to delete job: %s/%s, %v", job.Namespace, job.Name, err) + } + } + return nil +} diff --git a/federation/pkg/federation-controller/job/jobcontroller_test.go b/federation/pkg/federation-controller/job/jobcontroller_test.go new file mode 100644 index 00000000000..65a869baa4a --- /dev/null +++ b/federation/pkg/federation-controller/job/jobcontroller_test.go @@ -0,0 +1,282 @@ +/* +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 job + +import ( + "flag" + "fmt" + "testing" + "time" + + batchv1 "k8s.io/api/batch/v1" + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + kubeclientset "k8s.io/client-go/kubernetes" + kubeclientfake "k8s.io/client-go/kubernetes/fake" + core "k8s.io/client-go/testing" + fedv1 "k8s.io/kubernetes/federation/apis/federation/v1beta1" + fedclientfake "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset/fake" + fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" + finalizersutil "k8s.io/kubernetes/federation/pkg/federation-controller/util/finalizers" + testutil "k8s.io/kubernetes/federation/pkg/federation-controller/util/test" + batchv1internal "k8s.io/kubernetes/pkg/apis/batch/v1" + + "github.com/stretchr/testify/assert" + "k8s.io/apimachinery/pkg/util/sets" + "reflect" + "strings" +) + +func installWatchReactor(fakeClien *core.Fake, resource string) chan runtime.Object { + objChan := make(chan runtime.Object, 100) + + fakeWatch := watch.NewRaceFreeFake() + fakeClien.PrependWatchReactor(resource, core.DefaultWatchReactor(fakeWatch, nil)) + fakeClien.PrependReactor("create", resource, func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := action.(core.CreateAction).GetObject() + batchv1internal.SetDefaults_Job(obj.(*batchv1.Job)) + fakeWatch.Add(obj) + objChan <- obj + return false, nil, nil + }) + fakeClien.PrependReactor("update", resource, func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := action.(core.UpdateAction).GetObject() + fakeWatch.Modify(obj) + objChan <- obj + return false, nil, nil + }) + fakeClien.PrependReactor("delete", resource, func(action core.Action) (handled bool, ret runtime.Object, err error) { + obj := &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{ + Name: action.(core.DeleteAction).GetName(), + Namespace: action.GetNamespace(), + }, + } + fakeWatch.Delete(obj) + objChan <- obj + return false, nil, nil + }) + + return objChan +} + +func TestJobController(t *testing.T) { + flag.Set("logtostderr", "true") + flag.Set("v", "5") + flag.Parse() + + jobReviewDelay = 50 * time.Millisecond + clusterAvailableDelay = 200 * time.Millisecond + clusterUnavailableDelay = 200 * time.Millisecond + + fedclientset := fedclientfake.NewSimpleClientset() + fedChan := installWatchReactor(&fedclientset.Fake, "jobs") + + fedclientset.Federation().Clusters().Create(testutil.NewCluster("k8s-1", apiv1.ConditionTrue)) + fedclientset.Federation().Clusters().Create(testutil.NewCluster("k8s-2", apiv1.ConditionTrue)) + + kube1clientset := kubeclientfake.NewSimpleClientset() + kube1Chan := installWatchReactor(&kube1clientset.Fake, "jobs") + kube2clientset := kubeclientfake.NewSimpleClientset() + kube2Chan := installWatchReactor(&kube2clientset.Fake, "jobs") + + fedInformerClientFactory := func(cluster *fedv1.Cluster) (kubeclientset.Interface, error) { + switch cluster.Name { + case "k8s-1": + return kube1clientset, nil + case "k8s-2": + return kube2clientset, nil + default: + return nil, fmt.Errorf("Unknown cluster: %v", cluster.Name) + } + } + jobController := NewJobController(fedclientset) + fedjobinformer := testutil.ToFederatedInformerForTestOnly(jobController.fedJobInformer) + fedjobinformer.SetClientFactory(fedInformerClientFactory) + + stopChan := make(chan struct{}) + defer close(stopChan) + go jobController.Run(5, stopChan) + + test := func(job *batchv1.Job, parallelism1, parallelism2, completions1, completions2 int32) { + job, _ = fedclientset.Batch().Jobs(metav1.NamespaceDefault).Create(job) + + joinErrors := func(errors []error) error { + if len(errors) == 0 { + return nil + } + errorStrings := []string{} + for _, err := range errors { + errorStrings = append(errorStrings, err.Error()) + } + return fmt.Errorf("%s", strings.Join(errorStrings, "\n")) + } + + // check local jobs are created with correct spec + checkLocalJob := func(parallelism, completions int32) testutil.CheckingFunction { + return func(obj runtime.Object) error { + errors := []error{} + ljob := obj.(*batchv1.Job) + if !fedutil.ObjectMetaEquivalent(job.ObjectMeta, ljob.ObjectMeta) { + errors = append(errors, fmt.Errorf("Job meta un-equivalent: %#v (expected) != %#v (actual)", job.ObjectMeta, ljob.ObjectMeta)) + } + if err := checkEqual(t, *ljob.Spec.Parallelism, parallelism, "Spec.Parallelism"); err != nil { + errors = append(errors, err) + } + if ljob.Spec.Completions != nil { + if err := checkEqual(t, *ljob.Spec.Completions, completions, "Spec.Completions"); err != nil { + errors = append(errors, err) + } + } + return joinErrors(errors) + } + } + checkFedJob := func(obj runtime.Object) error { + errors := []error{} + return joinErrors(errors) + } + assert.NoError(t, testutil.CheckObjectFromChan(kube1Chan, checkLocalJob(parallelism1, completions1))) + assert.NoError(t, testutil.CheckObjectFromChan(kube2Chan, checkLocalJob(parallelism2, completions2))) + assert.NoError(t, testutil.CheckObjectFromChan(fedChan, checkFedJob)) + + // finish local jobs + job1, _ := kube1clientset.Batch().Jobs(metav1.NamespaceDefault).Get(job.Name, metav1.GetOptions{}) + finishJob(job1, 100*time.Millisecond) + job1, _ = kube1clientset.Batch().Jobs(metav1.NamespaceDefault).UpdateStatus(job1) + job2, _ := kube2clientset.Batch().Jobs(metav1.NamespaceDefault).Get(job.Name, metav1.GetOptions{}) + finishJob(job2, 100*time.Millisecond) + job2, _ = kube2clientset.Batch().Jobs(metav1.NamespaceDefault).UpdateStatus(job2) + + // check fed job status updated + assert.NoError(t, testutil.CheckObjectFromChan(fedChan, func(obj runtime.Object) error { + errors := []error{} + job := obj.(*batchv1.Job) + if err := checkEqual(t, *job.Spec.Parallelism, *job1.Spec.Parallelism+*job2.Spec.Parallelism, "Spec.Parallelism"); err != nil { + errors = append(errors, err) + } + if job.Spec.Completions != nil { + if err := checkEqual(t, *job.Spec.Completions, *job1.Spec.Completions+*job2.Spec.Completions, "Spec.Completions"); err != nil { + errors = append(errors, err) + } + } + if err := checkEqual(t, job.Status.Succeeded, job1.Status.Succeeded+job2.Status.Succeeded, "Status.Succeeded"); err != nil { + errors = append(errors, err) + } + return joinErrors(errors) + })) + + // delete fed job by set deletion time, and remove orphan finalizer + job, _ = fedclientset.Batch().Jobs(metav1.NamespaceDefault).Get(job.Name, metav1.GetOptions{}) + deletionTimestamp := metav1.Now() + job.DeletionTimestamp = &deletionTimestamp + finalizersutil.RemoveFinalizers(job, sets.NewString(metav1.FinalizerOrphanDependents)) + fedclientset.Batch().Jobs(metav1.NamespaceDefault).Update(job) + + // check jobs are deleted + checkDeleted := func(obj runtime.Object) error { + djob := obj.(*batchv1.Job) + deletedJob := &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{ + Name: djob.Name, + Namespace: djob.Namespace, + }, + } + if !reflect.DeepEqual(djob, deletedJob) { + return fmt.Errorf("%s/%s should be deleted", djob.Namespace, djob.Name) + } + return nil + } + assert.NoError(t, testutil.CheckObjectFromChan(kube1Chan, checkDeleted)) + assert.NoError(t, testutil.CheckObjectFromChan(kube2Chan, checkDeleted)) + assert.NoError(t, testutil.CheckObjectFromChan(fedChan, checkDeleted)) + } + + test(newJob("job1", 2, 7), 1, 1, 4, 3) + test(newJob("job2", 2, -1), 1, 1, -1, -1) + test(newJob("job3", 7, 2), 4, 3, 1, 1) + test(newJob("job4", 7, 1), 4, 3, 1, 0) +} + +func checkEqual(_ *testing.T, expected, actual interface{}, msg string) error { + if !assert.ObjectsAreEqual(expected, actual) { + return fmt.Errorf("%s not equal: %#v (expected) != %#v (actual)", msg, expected, actual) + } + return nil +} + +func newJob(name string, parallelism int32, completions int32) *batchv1.Job { + job := batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: metav1.NamespaceDefault, + SelfLink: "/api/v1/namespaces/default/jobs/name", + }, + Spec: batchv1.JobSpec{ + Parallelism: ¶llelism, + Completions: &completions, + Template: apiv1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{ + "foo": name, + }, + }, + Spec: apiv1.PodSpec{ + Containers: []apiv1.Container{ + {Image: "foo/bar"}, + }, + RestartPolicy: apiv1.RestartPolicyNever, + }, + }, + }, + } + if parallelism < 0 { + job.Spec.Parallelism = nil + } + if completions < 0 { + job.Spec.Completions = nil + } + + batchv1internal.SetDefaults_Job(&job) + return &job +} + +func newCondition(conditionType batchv1.JobConditionType, reason, message string) batchv1.JobCondition { + return batchv1.JobCondition{ + Type: conditionType, + Status: apiv1.ConditionTrue, + LastProbeTime: metav1.Now(), + LastTransitionTime: metav1.Now(), + Reason: reason, + Message: message, + } +} + +func finishJob(job *batchv1.Job, duration time.Duration) { + job.Status.Conditions = append(job.Status.Conditions, newCondition(batchv1.JobComplete, "", "")) + if job.Spec.Completions == nil { + job.Status.Succeeded = 1 + } else { + job.Status.Succeeded = *job.Spec.Completions + } + now := metav1.Now() + job.Status.StartTime = &now + time.Sleep(duration) + now = metav1.Now() + job.Status.CompletionTime = &now +} diff --git a/federation/pkg/federation-controller/util/handlers.go b/federation/pkg/federation-controller/util/handlers.go index 0e2dec5bf58..406d5ca3161 100644 --- a/federation/pkg/federation-controller/util/handlers.go +++ b/federation/pkg/federation-controller/util/handlers.go @@ -71,6 +71,7 @@ func NewTriggerOnMetaAndSpecChanges(triggerFunc func(pkgruntime.Object)) *cache. oldMeta := getFieldOrPanic(old, "ObjectMeta").(metav1.ObjectMeta) curMeta := getFieldOrPanic(cur, "ObjectMeta").(metav1.ObjectMeta) if !ObjectMetaEquivalent(oldMeta, curMeta) || + !reflect.DeepEqual(oldMeta.DeletionTimestamp, curMeta.DeletionTimestamp) || !reflect.DeepEqual(getFieldOrPanic(old, "Spec"), getFieldOrPanic(cur, "Spec")) { triggerFunc(curObj) } diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index a3d243b78bd..453b36fb402 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -119,6 +119,7 @@ cni-conf-dir concurrent-deployment-syncs concurrent-endpoint-syncs concurrent-gc-syncs +concurrent-job-syncs concurrent-namespace-syncs concurrent-replicaset-syncs concurrent-resource-quota-syncs From 746444e43a8a1965f6907ee29f65804e36187505 Mon Sep 17 00:00:00 2001 From: jianhuiz Date: Thu, 3 Aug 2017 11:02:06 -0700 Subject: [PATCH 081/183] add fed job e2e test --- test/e2e_federation/BUILD | 3 + test/e2e_federation/job.go | 291 +++++++++++++++++++++++++++++++++++++ 2 files changed, 294 insertions(+) create mode 100644 test/e2e_federation/job.go diff --git a/test/e2e_federation/BUILD b/test/e2e_federation/BUILD index 274a930df30..181a626ba59 100644 --- a/test/e2e_federation/BUILD +++ b/test/e2e_federation/BUILD @@ -15,6 +15,7 @@ go_library( "crud.go", "event.go", "ingress.go", + "job.go", "namespace.go", "replicaset.go", "service.go", @@ -29,6 +30,7 @@ go_library( "//federation/client/clientset_generated/federation_clientset/typed/core/v1:go_default_library", "//federation/pkg/federatedtypes:go_default_library", "//federation/pkg/federation-controller/util:go_default_library", + "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", "//pkg/cloudprovider:go_default_library", "//test/e2e/chaosmonkey:go_default_library", @@ -38,6 +40,7 @@ go_library( "//test/e2e_federation/upgrades:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", + "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/test/e2e_federation/job.go b/test/e2e_federation/job.go new file mode 100644 index 00000000000..71ad152ba4b --- /dev/null +++ b/test/e2e_federation/job.go @@ -0,0 +1,291 @@ +/* +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. +*/ + +package e2e_federation + +import ( + "fmt" + "strings" + "time" + + batchv1 "k8s.io/api/batch/v1" + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/wait" + fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" + fedutil "k8s.io/kubernetes/federation/pkg/federation-controller/util" + "k8s.io/kubernetes/test/e2e/framework" + fedframework "k8s.io/kubernetes/test/e2e_federation/framework" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/kubernetes/pkg/api" +) + +const ( + FederationJobName = "federation-job" +) + +var _ = framework.KubeDescribe("Federation jobs [Feature:Federation]", func() { + + f := fedframework.NewDefaultFederatedFramework("federation-job") + + Describe("Job objects [NoCluster]", func() { + AfterEach(func() { + fedframework.SkipUnlessFederated(f.ClientSet) + + // Delete all jobs. + nsName := f.FederationNamespace.Name + deleteAllJobsOrFail(f.FederationClientset, nsName) + }) + + It("should be created and deleted successfully", func() { + fedframework.SkipUnlessFederated(f.ClientSet) + + nsName := f.FederationNamespace.Name + job := createJobOrFail(f.FederationClientset, nsName) + By(fmt.Sprintf("Creation of job %q in namespace %q succeeded. Deleting job.", job.Name, nsName)) + // Cleanup + err := f.FederationClientset.Batch().Jobs(nsName).Delete(job.Name, &metav1.DeleteOptions{}) + framework.ExpectNoError(err, "Error deleting job %q in namespace %q", job.Name, job.Namespace) + By(fmt.Sprintf("Deletion of job %q in namespace %q succeeded.", job.Name, nsName)) + }) + + }) + + // e2e cases for federated job controller + Describe("Federated Job", func() { + var ( + clusters fedframework.ClusterSlice + ) + BeforeEach(func() { + fedframework.SkipUnlessFederated(f.ClientSet) + clusters = f.GetRegisteredClusters() + }) + + AfterEach(func() { + nsName := f.FederationNamespace.Name + deleteAllJobsOrFail(f.FederationClientset, nsName) + }) + + It("should create and update matching jobs in underlying clusters", func() { + nsName := f.FederationNamespace.Name + job := createJobOrFail(f.FederationClientset, nsName) + defer func() { + // cleanup. deletion of jobs is not supported for underlying clusters + By(fmt.Sprintf("Deleting job %q/%q", nsName, job.Name)) + waitForJobOrFail(f.FederationClientset, nsName, job.Name, clusters) + f.FederationClientset.Batch().Jobs(nsName).Delete(job.Name, &metav1.DeleteOptions{}) + }() + + waitForJobOrFail(f.FederationClientset, nsName, job.Name, clusters) + By(fmt.Sprintf("Successfuly created and synced job %q/%q to clusters", nsName, job.Name)) + }) + + It("should be deleted from underlying clusters when OrphanDependents is false", func() { + fedframework.SkipUnlessFederated(f.ClientSet) + nsName := f.FederationNamespace.Name + orphanDependents := false + verifyCascadingDeletionForJob(f.FederationClientset, clusters, &orphanDependents, nsName) + By(fmt.Sprintf("Verified that jobs were deleted from underlying clusters")) + }) + + It("should not be deleted from underlying clusters when OrphanDependents is true", func() { + fedframework.SkipUnlessFederated(f.ClientSet) + nsName := f.FederationNamespace.Name + orphanDependents := true + verifyCascadingDeletionForJob(f.FederationClientset, clusters, &orphanDependents, nsName) + By(fmt.Sprintf("Verified that jobs were not deleted from underlying clusters")) + }) + + It("should not be deleted from underlying clusters when OrphanDependents is nil", func() { + fedframework.SkipUnlessFederated(f.ClientSet) + nsName := f.FederationNamespace.Name + verifyCascadingDeletionForJob(f.FederationClientset, clusters, nil, nsName) + By(fmt.Sprintf("Verified that jobs were not deleted from underlying clusters")) + }) + + }) +}) + +// deleteAllJobsOrFail deletes all jobs in the given namespace name. +func deleteAllJobsOrFail(clientset *fedclientset.Clientset, nsName string) { + jobList, err := clientset.Batch().Jobs(nsName).List(metav1.ListOptions{}) + Expect(err).NotTo(HaveOccurred()) + orphanDependents := false + for _, job := range jobList.Items { + deleteJobOrFail(clientset, nsName, job.Name, &orphanDependents) + } +} + +// verifyCascadingDeletionForJob verifies that job are deleted +// from underlying clusters when orphan dependents is false and they are not +// deleted when orphan dependents is true. +func verifyCascadingDeletionForJob(clientset *fedclientset.Clientset, clusters fedframework.ClusterSlice, orphanDependents *bool, nsName string) { + job := createJobOrFail(clientset, nsName) + jobName := job.Name + // Check subclusters if the job was created there. + By(fmt.Sprintf("Waiting for job %s to be created in all underlying clusters", jobName)) + err := wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) { + for _, cluster := range clusters { + _, err := cluster.Batch().Jobs(nsName).Get(jobName, metav1.GetOptions{}) + if err != nil && errors.IsNotFound(err) { + return false, nil + } + if err != nil { + return false, err + } + } + return true, nil + }) + framework.ExpectNoError(err, "Not all jobs created") + + By(fmt.Sprintf("Deleting job %s", jobName)) + deleteJobOrFail(clientset, nsName, jobName, orphanDependents) + + By(fmt.Sprintf("Verifying job %s in underlying clusters", jobName)) + errMessages := []string{} + // job should be present in underlying clusters unless orphanDependents is false. + shouldExist := orphanDependents == nil || *orphanDependents == true + for _, cluster := range clusters { + clusterName := cluster.Name + _, err := cluster.Batch().Jobs(nsName).Get(jobName, metav1.GetOptions{}) + if shouldExist && errors.IsNotFound(err) { + errMessages = append(errMessages, fmt.Sprintf("unexpected NotFound error for job %s in cluster %s, expected job to exist", jobName, clusterName)) + } else if !shouldExist && !errors.IsNotFound(err) { + errMessages = append(errMessages, fmt.Sprintf("expected NotFound error for job %s in cluster %s, got error: %v", jobName, clusterName, err)) + } + } + if len(errMessages) != 0 { + framework.Failf("%s", strings.Join(errMessages, "; ")) + } +} + +func waitForJobOrFail(c *fedclientset.Clientset, namespace string, jobName string, clusters fedframework.ClusterSlice) { + err := waitForJob(c, namespace, jobName, clusters) + framework.ExpectNoError(err, "Failed to verify job %q/%q, err: %v", namespace, jobName, err) +} + +func waitForJob(c *fedclientset.Clientset, namespace string, jobName string, clusters fedframework.ClusterSlice) error { + err := wait.Poll(10*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { + fjob, err := c.Batch().Jobs(namespace).Get(jobName, metav1.GetOptions{}) + if err != nil { + return false, err + } + succeeded := int32(0) + for _, cluster := range clusters { + job, err := cluster.Batch().Jobs(namespace).Get(jobName, metav1.GetOptions{}) + if err != nil && !errors.IsNotFound(err) { + By(fmt.Sprintf("Failed getting job: %q/%q/%q, err: %v", cluster.Name, namespace, jobName, err)) + return false, err + } + if err == nil { + if !verifyJob(fjob, job) { + By(fmt.Sprintf("Job meta or spec not match for cluster %q:\n federation: %v\n cluster: %v", cluster.Name, fjob, job)) + return false, nil + } + succeeded += job.Status.Succeeded + } + } + if succeeded == fjob.Status.Succeeded && + (fjob.Spec.Completions != nil && succeeded == *fjob.Spec.Completions) { + return true, nil + } + By(fmt.Sprintf("Job statuses not match, federation succeeded: %v/%v, clusters succeeded: %v\n", + fjob.Status.Succeeded, func(p *int32) int32 { + if p != nil { + return *p + } else { + return -1 + } + }(fjob.Spec.Completions), succeeded)) + return false, nil + }) + + return err +} + +func verifyJob(fedJob, localJob *batchv1.Job) bool { + localJobObj, _ := api.Scheme.DeepCopy(localJob) + localJob = localJobObj.(*batchv1.Job) + localJob.Spec.ManualSelector = fedJob.Spec.ManualSelector + localJob.Spec.Completions = fedJob.Spec.Completions + localJob.Spec.Parallelism = fedJob.Spec.Parallelism + return fedutil.ObjectMetaAndSpecEquivalent(fedJob, localJob) +} + +func createJobOrFail(clientset *fedclientset.Clientset, namespace string) *batchv1.Job { + if clientset == nil || len(namespace) == 0 { + Fail(fmt.Sprintf("Internal error: invalid parameters passed to createJobOrFail: clientset: %v, namespace: %v", clientset, namespace)) + } + By(fmt.Sprintf("Creating federation job %q in namespace %q", FederationJobName, namespace)) + + job := newJobForFed(namespace, FederationJobName, 5, 5) + + _, err := clientset.Batch().Jobs(namespace).Create(job) + framework.ExpectNoError(err, "Creating job %q in namespace %q", job.Name, namespace) + By(fmt.Sprintf("Successfully created federation job %q in namespace %q", FederationJobName, namespace)) + return job +} + +func deleteJobOrFail(clientset *fedclientset.Clientset, nsName string, jobName string, orphanDependents *bool) { + By(fmt.Sprintf("Deleting job %q in namespace %q", jobName, nsName)) + err := clientset.Batch().Jobs(nsName).Delete(jobName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) + if err != nil && !errors.IsNotFound(err) { + framework.ExpectNoError(err, "Error deleting job %q in namespace %q", jobName, nsName) + } + + // Wait for the job to be deleted. + err = wait.Poll(10*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { + _, err := clientset.Batch().Jobs(nsName).Get(jobName, metav1.GetOptions{}) + if err != nil && errors.IsNotFound(err) { + return true, nil + } + return false, err + }) + if err != nil { + framework.Failf("Error in deleting job %s: %v", jobName, err) + } +} + +func newJobForFed(namespace string, name string, completions int32, parallelism int32) *batchv1.Job { + return &batchv1.Job{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: namespace, + }, + Spec: batchv1.JobSpec{ + Parallelism: ¶llelism, + Completions: &completions, + Template: v1.PodTemplateSpec{ + ObjectMeta: metav1.ObjectMeta{ + Labels: map[string]string{"name": "fjob"}, + }, + Spec: v1.PodSpec{ + Containers: []v1.Container{ + { + Name: "sleep", + Image: "gcr.io/google_containers/busybox:1.24", + Command: []string{"sleep", "1"}, + }, + }, + RestartPolicy: v1.RestartPolicyNever, + }, + }, + }, + } +} From 91f100b50178e1f46b46df21ea11a2f60e5d04aa Mon Sep 17 00:00:00 2001 From: Jun Xiang Tee Date: Thu, 20 Jul 2017 12:49:13 -0700 Subject: [PATCH 082/183] implement statefulset scale subresource --- api/openapi-spec/swagger.json | 308 ++++ api/swagger-spec/apps_v1beta1.json | 165 ++ api/swagger-spec/apps_v1beta2.json | 165 ++ .../apps/v1beta1/operations.html | 1429 ++++++++++------ .../apps/v1beta2/operations.html | 1453 +++++++++++------ pkg/registry/apps/rest/storage_apps.go | 14 +- pkg/registry/apps/statefulset/BUILD | 5 + pkg/registry/apps/statefulset/registry.go | 95 ++ pkg/registry/apps/statefulset/storage/BUILD | 7 + .../apps/statefulset/storage/storage.go | 122 +- .../apps/statefulset/storage/storage_test.go | 151 +- test/e2e/apps/statefulset.go | 37 + test/e2e/framework/BUILD | 1 + test/e2e/framework/statefulset_utils.go | 20 +- 14 files changed, 2870 insertions(+), 1102 deletions(-) create mode 100644 pkg/registry/apps/statefulset/registry.go diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 02b632f57de..9684eb25e16 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -21339,6 +21339,160 @@ } ] }, + "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale": { + "get": { + "description": "read scale of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "readAppsV1beta1NamespacedStatefulSetScale", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta1" + } + }, + "put": { + "description": "replace scale of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "replaceAppsV1beta1NamespacedStatefulSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta1" + } + }, + "patch": { + "description": "partially update scale of the specified StatefulSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta1" + ], + "operationId": "patchAppsV1beta1NamespacedStatefulSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta1.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Scale", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status": { "get": { "description": "read status of the specified StatefulSet", @@ -25360,6 +25514,160 @@ } ] }, + "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale": { + "get": { + "description": "read scale of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "readAppsV1beta2NamespacedStatefulSetScale", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta2" + } + }, + "put": { + "description": "replace scale of the specified StatefulSet", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "replaceAppsV1beta2NamespacedStatefulSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta2" + } + }, + "patch": { + "description": "partially update scale of the specified StatefulSet", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "apps_v1beta2" + ], + "operationId": "patchAppsV1beta2NamespacedStatefulSetScale", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.apps.v1beta2.Scale" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "apps", + "kind": "Scale", + "version": "v1beta2" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Scale", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status": { "get": { "description": "read status of the specified StatefulSet", diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json index 5524e1f712d..2f384bd93c8 100644 --- a/api/swagger-spec/apps_v1beta1.json +++ b/api/swagger-spec/apps_v1beta1.json @@ -2982,6 +2982,171 @@ } ] }, + { + "path": "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale", + "description": "API at /apis/apps/v1beta1", + "operations": [ + { + "type": "v1beta1.Scale", + "method": "GET", + "summary": "read scale of the specified StatefulSet", + "nickname": "readNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1beta1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1beta1.Scale", + "method": "PUT", + "summary": "replace scale of the specified StatefulSet", + "nickname": "replaceNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1beta1.Scale", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1beta1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1beta1.Scale", + "method": "PATCH", + "summary": "partially update scale of the specified StatefulSet", + "nickname": "patchNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1beta1.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, { "path": "/apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/status", "description": "API at /apis/apps/v1beta1", diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json index dec3f47f914..0dd7d9ae7e4 100644 --- a/api/swagger-spec/apps_v1beta2.json +++ b/api/swagger-spec/apps_v1beta2.json @@ -4338,6 +4338,171 @@ } ] }, + { + "path": "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale", + "description": "API at /apis/apps/v1beta2", + "operations": [ + { + "type": "v1beta2.Scale", + "method": "GET", + "summary": "read scale of the specified StatefulSet", + "nickname": "readNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1beta2.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1beta2.Scale", + "method": "PUT", + "summary": "replace scale of the specified StatefulSet", + "nickname": "replaceNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1beta2.Scale", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1beta2.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1beta2.Scale", + "method": "PATCH", + "summary": "partially update scale of the specified StatefulSet", + "nickname": "patchNamespacedStatefulSetScale", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Scale", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1beta2.Scale" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + } + ] + }, { "path": "/apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status", "description": "API at /apis/apps/v1beta2", diff --git a/docs/api-reference/apps/v1beta1/operations.html b/docs/api-reference/apps/v1beta1/operations.html index 42ce7aeb673..fee327b7d07 100755 --- a/docs/api-reference/apps/v1beta1/operations.html +++ b/docs/api-reference/apps/v1beta1/operations.html @@ -4609,6 +4609,385 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+

read scale of the specified StatefulSet

+
+
+
GET /apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Scale

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta1.Scale

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta1

    +
  • +
+
+
+
+
+

replace scale of the specified StatefulSet

+
+
+
PUT /apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

BodyParameter

body

true

v1beta1.Scale

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Scale

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta1.Scale

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta1

    +
  • +
+
+
+
+
+

partially update scale of the specified StatefulSet

+
+
+
PATCH /apis/apps/v1beta1/namespaces/{namespace}/statefulsets/{name}/scale
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

BodyParameter

body

true

v1.Patch

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Scale

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta1.Scale

+ +
+
+

Consumes

+
+
    +
  • +

    application/json-patch+json

    +
  • +
  • +

    application/merge-patch+json

    +
  • +
  • +

    application/strategic-merge-patch+json

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta1

    +
  • +
+
+
+
+

read status of the specified StatefulSet

@@ -4616,7 +4995,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -4666,7 +5045,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -4691,7 +5070,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -4701,7 +5080,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -4717,7 +5096,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -4735,7 +5114,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -4793,7 +5172,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -4818,7 +5197,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -4828,7 +5207,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -4844,7 +5223,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -4862,7 +5241,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -4920,7 +5299,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -4945,7 +5324,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -4961,471 +5340,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta1

    -
  • -
-
-
- -
-

list or watch objects of kind StatefulSet

-
-
-
GET /apis/apps/v1beta1/statefulsets
-
-
-
-

Parameters

-
-------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1beta1.StatefulSetList

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta1

    -
  • -
-
-
-
-
-

watch individual changes to a list of ControllerRevision

-
-
-
GET /apis/apps/v1beta1/watch/controllerrevisions
-
-
-
-

Parameters

- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta1

    -
  • -
-
-
-
-
-

watch individual changes to a list of Deployment

-
-
-
GET /apis/apps/v1beta1/watch/deployments
-
-
-
-

Parameters

- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-

Produces

    @@ -5438,12 +5352,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
  • application/vnd.kubernetes.protobuf

  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
@@ -5459,10 +5367,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

watch individual changes to a list of ControllerRevision

+

list or watch objects of kind StatefulSet

-
GET /apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions
+
GET /apis/apps/v1beta1/statefulsets
@@ -5543,14 +5451,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

integer (int32)

- -

PathParameter

-

namespace

-

object name and auth scope, such as for teams and projects

-

true

-

string

- - @@ -5574,7 +5474,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

200

success

-

v1.WatchEvent

+

v1beta1.StatefulSetList

@@ -5624,6 +5524,485 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+

watch individual changes to a list of ControllerRevision

+
+
+
GET /apis/apps/v1beta1/watch/controllerrevisions
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta1

    +
  • +
+
+
+
+
+

watch individual changes to a list of Deployment

+
+
+
GET /apis/apps/v1beta1/watch/deployments
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta1

    +
  • +
+
+
+
+
+

watch individual changes to a list of ControllerRevision

+
+
+
GET /apis/apps/v1beta1/watch/namespaces/{namespace}/controllerrevisions
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta1

    +
  • +
+
+
+
+

watch changes to an object of kind ControllerRevision

@@ -5631,7 +6010,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -5729,7 +6108,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -5754,7 +6133,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -5764,7 +6143,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -5786,7 +6165,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -5804,7 +6183,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -5894,7 +6273,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -5919,7 +6298,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -5929,7 +6308,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -5951,7 +6330,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -5969,7 +6348,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -6067,7 +6446,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -6092,7 +6471,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -6102,7 +6481,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -6124,7 +6503,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -6142,7 +6521,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -6232,7 +6611,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -6257,7 +6636,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -6267,7 +6646,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -6289,7 +6668,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -6307,7 +6686,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -6405,7 +6784,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -6430,7 +6809,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -6440,7 +6819,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -6462,7 +6841,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -6480,7 +6859,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -6562,7 +6941,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -6587,7 +6966,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -6597,7 +6976,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -6619,7 +6998,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • diff --git a/docs/api-reference/apps/v1beta2/operations.html b/docs/api-reference/apps/v1beta2/operations.html index ef9f89c69f1..c7f4095ff51 100755 --- a/docs/api-reference/apps/v1beta2/operations.html +++ b/docs/api-reference/apps/v1beta2/operations.html @@ -6735,6 +6735,385 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+

read scale of the specified StatefulSet

+
+
+
GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale
+
+
+
+

Parameters

+
++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Scale

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta2.Scale

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+
+
+

replace scale of the specified StatefulSet

+
+
+
PUT /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

BodyParameter

body

true

v1beta2.Scale

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Scale

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta2.Scale

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+
+
+

partially update scale of the specified StatefulSet

+
+
+
PATCH /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

BodyParameter

body

true

v1.Patch

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Scale

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta2.Scale

+ +
+
+

Consumes

+
+
    +
  • +

    application/json-patch+json

    +
  • +
  • +

    application/merge-patch+json

    +
  • +
  • +

    application/strategic-merge-patch+json

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+
+

read status of the specified StatefulSet

@@ -6742,7 +7121,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -6792,7 +7171,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -6817,7 +7196,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -6827,7 +7206,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -6843,7 +7222,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -6861,7 +7240,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -6919,7 +7298,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -6944,7 +7323,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -6954,7 +7333,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -6970,7 +7349,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -6988,7 +7367,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -7046,7 +7425,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -7071,7 +7450,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -7087,471 +7466,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta2

    -
  • -
-
-
- -
-

list or watch objects of kind ReplicaSet

-
-
-
GET /apis/apps/v1beta2/replicasets
-
-
-
-

Parameters

-
-------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1beta2.ReplicaSetList

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta2

    -
  • -
-
-
-
-
-

list or watch objects of kind StatefulSet

-
-
-
GET /apis/apps/v1beta2/statefulsets
-
-
-
-

Parameters

- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1beta2.StatefulSetList

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta2

    -
  • -
-
-
-
-
-

watch individual changes to a list of DaemonSet

-
-
-
GET /apis/apps/v1beta2/watch/daemonsets
-
-
-
-

Parameters

- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-

Produces

    @@ -7564,12 +7478,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
  • application/vnd.kubernetes.protobuf

  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
@@ -7585,10 +7493,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

watch individual changes to a list of Deployment

+

list or watch objects of kind ReplicaSet

-
GET /apis/apps/v1beta2/watch/deployments
+
GET /apis/apps/v1beta2/replicasets
@@ -7692,7 +7600,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

200

success

-

v1.WatchEvent

+

v1beta2.ReplicaSetList

@@ -7742,6 +7650,477 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+

list or watch objects of kind StatefulSet

+
+
+
GET /apis/apps/v1beta2/statefulsets
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta2.StatefulSetList

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+
+
+

watch individual changes to a list of DaemonSet

+
+
+
GET /apis/apps/v1beta2/watch/daemonsets
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+
+
+

watch individual changes to a list of Deployment

+
+
+
GET /apis/apps/v1beta2/watch/deployments
+
+
+
+

Parameters

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1.WatchEvent

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+
+

watch individual changes to a list of DaemonSet

@@ -7749,7 +8128,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -7839,7 +8218,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -7864,7 +8243,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -7874,7 +8253,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -7896,7 +8275,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -7914,7 +8293,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -8012,7 +8391,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -8037,7 +8416,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -8047,7 +8426,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -8069,7 +8448,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -8087,7 +8466,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -8177,7 +8556,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -8202,7 +8581,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -8212,7 +8591,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -8234,7 +8613,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -8252,7 +8631,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -8350,7 +8729,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -8375,7 +8754,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -8385,7 +8764,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -8407,7 +8786,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -8425,7 +8804,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -8515,7 +8894,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -8540,7 +8919,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -8550,7 +8929,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -8572,7 +8951,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -8590,7 +8969,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -8688,7 +9067,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -8713,7 +9092,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -8723,7 +9102,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -8745,7 +9124,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -8763,7 +9142,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -8853,7 +9232,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -8878,7 +9257,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -8888,7 +9267,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -8910,7 +9289,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -8928,7 +9307,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -9026,7 +9405,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -9051,7 +9430,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -9061,7 +9440,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -9083,7 +9462,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -9101,7 +9480,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -9183,7 +9562,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -9208,7 +9587,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -9218,7 +9597,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -9240,7 +9619,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • @@ -9258,7 +9637,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -9340,7 +9719,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -9365,7 +9744,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -9375,7 +9754,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Produces

+

Produces

  • @@ -9397,7 +9776,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Tags

+

Tags

  • diff --git a/pkg/registry/apps/rest/storage_apps.go b/pkg/registry/apps/rest/storage_apps.go index ff82d94c240..545d46405df 100644 --- a/pkg/registry/apps/rest/storage_apps.go +++ b/pkg/registry/apps/rest/storage_apps.go @@ -63,9 +63,10 @@ func (p RESTStorageProvider) v1beta1Storage(apiResourceConfigSource serverstorag storage["deployments/scale"] = deploymentStorage.Scale } if apiResourceConfigSource.ResourceEnabled(version.WithResource("statefulsets")) { - statefulsetStorage, statefulsetStatusStorage := statefulsetstore.NewREST(restOptionsGetter) - storage["statefulsets"] = statefulsetStorage - storage["statefulsets/status"] = statefulsetStatusStorage + statefulSetStorage := statefulsetstore.NewStorage(restOptionsGetter) + storage["statefulsets"] = statefulSetStorage.StatefulSet + storage["statefulsets/status"] = statefulSetStorage.Status + storage["statefulsets/scale"] = statefulSetStorage.Scale } if apiResourceConfigSource.ResourceEnabled(version.WithResource("controllerrevisions")) { historyStorage := controllerrevisionsstore.NewREST(restOptionsGetter) @@ -86,9 +87,10 @@ func (p RESTStorageProvider) v1beta2Storage(apiResourceConfigSource serverstorag storage["deployments/scale"] = deploymentStorage.Scale } if apiResourceConfigSource.ResourceEnabled(version.WithResource("statefulsets")) { - statefulsetStorage, statefulsetStatusStorage := statefulsetstore.NewREST(restOptionsGetter) - storage["statefulsets"] = statefulsetStorage - storage["statefulsets/status"] = statefulsetStatusStorage + statefulSetStorage := statefulsetstore.NewStorage(restOptionsGetter) + storage["statefulsets"] = statefulSetStorage.StatefulSet + storage["statefulsets/status"] = statefulSetStorage.Status + storage["statefulsets/scale"] = statefulSetStorage.Scale } if apiResourceConfigSource.ResourceEnabled(version.WithResource("daemonsets")) { daemonSetStorage, daemonSetStatusStorage := daemonsetstore.NewREST(restOptionsGetter) diff --git a/pkg/registry/apps/statefulset/BUILD b/pkg/registry/apps/statefulset/BUILD index c9d4f03c723..b2e690d623d 100644 --- a/pkg/registry/apps/statefulset/BUILD +++ b/pkg/registry/apps/statefulset/BUILD @@ -12,6 +12,7 @@ go_library( name = "go_default_library", srcs = [ "doc.go", + "registry.go", "strategy.go", ], tags = ["automanaged"], @@ -20,8 +21,12 @@ go_library( "//pkg/apis/apps:go_default_library", "//pkg/apis/apps/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/names:go_default_library", diff --git a/pkg/registry/apps/statefulset/registry.go b/pkg/registry/apps/statefulset/registry.go new file mode 100644 index 00000000000..25d136f8620 --- /dev/null +++ b/pkg/registry/apps/statefulset/registry.go @@ -0,0 +1,95 @@ +/* +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. +*/ + +package statefulset + +import ( + "fmt" + + "k8s.io/apimachinery/pkg/api/errors" + metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/watch" + genericapirequest "k8s.io/apiserver/pkg/endpoints/request" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/apps" +) + +// Registry is an interface for things that know how to store StatefulSets. +type Registry interface { + ListStatefulSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*apps.StatefulSetList, error) + WatchStatefulSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) + GetStatefulSet(ctx genericapirequest.Context, statefulSetID string, options *metav1.GetOptions) (*apps.StatefulSet, error) + CreateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) + UpdateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) + DeleteStatefulSet(ctx genericapirequest.Context, statefulSetID string) error +} + +// storage puts strong typing around storage calls +type storage struct { + rest.StandardStorage +} + +// NewRegistry returns a new Registry interface for the given Storage. Any mismatched +// types will panic. +func NewRegistry(s rest.StandardStorage) Registry { + return &storage{s} +} + +func (s *storage) ListStatefulSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (*apps.StatefulSetList, error) { + if options != nil && options.FieldSelector != nil && !options.FieldSelector.Empty() { + return nil, fmt.Errorf("field selector not supported yet") + } + obj, err := s.List(ctx, options) + if err != nil { + return nil, err + } + return obj.(*apps.StatefulSetList), err +} + +func (s *storage) WatchStatefulSets(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (watch.Interface, error) { + return s.Watch(ctx, options) +} + +func (s *storage) GetStatefulSet(ctx genericapirequest.Context, statefulSetID string, options *metav1.GetOptions) (*apps.StatefulSet, error) { + obj, err := s.Get(ctx, statefulSetID, options) + if err != nil { + return nil, errors.NewNotFound(apps.Resource("statefulsets/scale"), statefulSetID) + } + return obj.(*apps.StatefulSet), nil +} + +func (s *storage) CreateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) { + obj, err := s.Create(ctx, statefulSet, false) + if err != nil { + return nil, err + } + return obj.(*apps.StatefulSet), nil +} + +func (s *storage) UpdateStatefulSet(ctx genericapirequest.Context, statefulSet *apps.StatefulSet) (*apps.StatefulSet, error) { + obj, _, err := s.Update(ctx, statefulSet.Name, rest.DefaultUpdatedObjectInfo(statefulSet, api.Scheme)) + if err != nil { + return nil, err + } + return obj.(*apps.StatefulSet), nil +} + +func (s *storage) DeleteStatefulSet(ctx genericapirequest.Context, statefulSetID string) error { + _, _, err := s.Delete(ctx, statefulSetID, nil) + return err +} diff --git a/pkg/registry/apps/statefulset/storage/BUILD b/pkg/registry/apps/statefulset/storage/BUILD index 9efc691e4fc..c8d5023a1af 100644 --- a/pkg/registry/apps/statefulset/storage/BUILD +++ b/pkg/registry/apps/statefulset/storage/BUILD @@ -16,10 +16,14 @@ go_test( deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/extensions:go_default_library", "//pkg/registry/registrytest:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", @@ -34,8 +38,11 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", + "//pkg/apis/extensions:go_default_library", + "//pkg/apis/extensions/validation:go_default_library", "//pkg/registry/apps/statefulset:go_default_library", "//pkg/registry/cachesize:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/pkg/registry/apps/statefulset/storage/storage.go b/pkg/registry/apps/statefulset/storage/storage.go index dac28b0e846..80375251a96 100644 --- a/pkg/registry/apps/statefulset/storage/storage.go +++ b/pkg/registry/apps/statefulset/storage/storage.go @@ -17,6 +17,9 @@ limitations under the License. package storage import ( + "fmt" + + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" @@ -24,23 +27,43 @@ import ( genericregistry "k8s.io/apiserver/pkg/registry/generic/registry" "k8s.io/apiserver/pkg/registry/rest" "k8s.io/kubernetes/pkg/api" - appsapi "k8s.io/kubernetes/pkg/apis/apps" + "k8s.io/kubernetes/pkg/apis/apps" + "k8s.io/kubernetes/pkg/apis/extensions" + extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation" "k8s.io/kubernetes/pkg/registry/apps/statefulset" "k8s.io/kubernetes/pkg/registry/cachesize" ) -// rest implements a RESTStorage for replication controllers against etcd +// StatefulSetStorage includes dummy storage for StatefulSets, and their Status and Scale subresource. +type StatefulSetStorage struct { + StatefulSet *REST + Status *StatusREST + Scale *ScaleREST +} + +func NewStorage(optsGetter generic.RESTOptionsGetter) StatefulSetStorage { + statefulSetRest, statefulSetStatusRest := NewREST(optsGetter) + statefulSetRegistry := statefulset.NewRegistry(statefulSetRest) + + return StatefulSetStorage{ + StatefulSet: statefulSetRest, + Status: statefulSetStatusRest, + Scale: &ScaleREST{registry: statefulSetRegistry}, + } +} + +// rest implements a RESTStorage for statefulsets against etcd type REST struct { *genericregistry.Store } -// NewREST returns a RESTStorage object that will work against replication controllers. +// NewREST returns a RESTStorage object that will work against statefulsets. func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST) { store := &genericregistry.Store{ Copier: api.Scheme, - NewFunc: func() runtime.Object { return &appsapi.StatefulSet{} }, - NewListFunc: func() runtime.Object { return &appsapi.StatefulSetList{} }, - DefaultQualifiedResource: appsapi.Resource("statefulsets"), + NewFunc: func() runtime.Object { return &apps.StatefulSet{} }, + NewListFunc: func() runtime.Object { return &apps.StatefulSetList{} }, + DefaultQualifiedResource: apps.Resource("statefulsets"), WatchCacheSize: cachesize.GetWatchCacheSizeByResource("statefulsets"), CreateStrategy: statefulset.Strategy, @@ -71,7 +94,7 @@ type StatusREST struct { } func (r *StatusREST) New() runtime.Object { - return &appsapi.StatefulSet{} + return &apps.StatefulSet{} } // Get retrieves the object from the storage. It is required to support Patch. @@ -91,3 +114,88 @@ var _ rest.ShortNamesProvider = &REST{} func (r *REST) ShortNames() []string { return []string{"sts"} } + +type ScaleREST struct { + registry statefulset.Registry +} + +// ScaleREST implements Patcher +var _ = rest.Patcher(&ScaleREST{}) + +// New creates a new Scale object +func (r *ScaleREST) New() runtime.Object { + return &extensions.Scale{} +} + +func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) { + ss, err := r.registry.GetStatefulSet(ctx, name, options) + if err != nil { + return nil, err + } + scale, err := scaleFromStatefulSet(ss) + if err != nil { + return nil, errors.NewBadRequest(fmt.Sprintf("%v", err)) + } + return scale, err +} + +func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo rest.UpdatedObjectInfo) (runtime.Object, bool, error) { + ss, err := r.registry.GetStatefulSet(ctx, name, &metav1.GetOptions{}) + if err != nil { + return nil, false, err + } + + oldScale, err := scaleFromStatefulSet(ss) + if err != nil { + return nil, false, err + } + + obj, err := objInfo.UpdatedObject(ctx, oldScale) + if err != nil { + return nil, false, err + } + if obj == nil { + return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale")) + } + scale, ok := obj.(*extensions.Scale) + if !ok { + return nil, false, errors.NewBadRequest(fmt.Sprintf("wrong object passed to Scale update: %v", obj)) + } + + if errs := extvalidation.ValidateScale(scale); len(errs) > 0 { + return nil, false, errors.NewInvalid(extensions.Kind("Scale"), scale.Name, errs) + } + + ss.Spec.Replicas = scale.Spec.Replicas + ss.ResourceVersion = scale.ResourceVersion + ss, err = r.registry.UpdateStatefulSet(ctx, ss) + if err != nil { + return nil, false, err + } + newScale, err := scaleFromStatefulSet(ss) + if err != nil { + return nil, false, errors.NewBadRequest(fmt.Sprintf("%v", err)) + } + return newScale, false, err +} + +// scaleFromStatefulSet returns a scale subresource for a statefulset. +func scaleFromStatefulSet(ss *apps.StatefulSet) (*extensions.Scale, error) { + return &extensions.Scale{ + // TODO: Create a variant of ObjectMeta type that only contains the fields below. + ObjectMeta: metav1.ObjectMeta{ + Name: ss.Name, + Namespace: ss.Namespace, + UID: ss.UID, + ResourceVersion: ss.ResourceVersion, + CreationTimestamp: ss.CreationTimestamp, + }, + Spec: extensions.ScaleSpec{ + Replicas: ss.Spec.Replicas, + }, + Status: extensions.ScaleStatus{ + Replicas: ss.Status.Replicas, + Selector: ss.Spec.Selector, + }, + }, nil +} diff --git a/pkg/registry/apps/statefulset/storage/storage_test.go b/pkg/registry/apps/statefulset/storage/storage_test.go index 9d4001d82ea..933d99b2d42 100644 --- a/pkg/registry/apps/statefulset/storage/storage_test.go +++ b/pkg/registry/apps/statefulset/storage/storage_test.go @@ -19,24 +19,28 @@ package storage import ( "testing" + apiequality "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/util/diff" genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" + "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/registry/registrytest" ) // TODO: allow for global factory override -func newStorage(t *testing.T) (*REST, *StatusREST, *etcdtesting.EtcdTestServer) { +func newStorage(t *testing.T) (StatefulSetStorage, *etcdtesting.EtcdTestServer) { etcdStorage, server := registrytest.NewEtcdStorage(t, apps.GroupName) restOptions := generic.RESTOptions{StorageConfig: etcdStorage, Decorator: generic.UndecoratedStorage, DeleteCollectionWorkers: 1, ResourcePrefix: "statefulsets"} - statefulSetStorage, statusStorage := NewREST(restOptions) - return statefulSetStorage, statusStorage, server + storage := NewStorage(restOptions) + return storage, server } // createStatefulSet is a helper function that returns a StatefulSet with the updated resource version. @@ -83,11 +87,13 @@ func validNewStatefulSet() *apps.StatefulSet { } } +var validStatefulSet = *validNewStatefulSet() + func TestCreate(t *testing.T) { - storage, _, server := newStorage(t) + storage, server := newStorage(t) defer server.Terminate(t) - defer storage.Store.DestroyFunc() - test := registrytest.New(t, storage.Store) + defer storage.StatefulSet.Store.DestroyFunc() + test := registrytest.New(t, storage.StatefulSet.Store) ps := validNewStatefulSet() ps.ObjectMeta = metav1.ObjectMeta{} test.TestCreate( @@ -100,13 +106,13 @@ func TestCreate(t *testing.T) { // TODO: Test updates to spec when we allow them. func TestStatusUpdate(t *testing.T) { - storage, statusStorage, server := newStorage(t) + storage, server := newStorage(t) defer server.Terminate(t) - defer storage.Store.DestroyFunc() + defer storage.StatefulSet.Store.DestroyFunc() ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceDefault) key := "/statefulsets/" + metav1.NamespaceDefault + "/foo" validStatefulSet := validNewStatefulSet() - if err := storage.Storage.Create(ctx, key, validStatefulSet, nil, 0); err != nil { + if err := storage.StatefulSet.Storage.Create(ctx, key, validStatefulSet, nil, 0); err != nil { t.Fatalf("unexpected error: %v", err) } update := apps.StatefulSet{ @@ -119,10 +125,10 @@ func TestStatusUpdate(t *testing.T) { }, } - if _, _, err := statusStorage.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update, api.Scheme)); err != nil { + if _, _, err := storage.Status.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update, api.Scheme)); err != nil { t.Fatalf("unexpected error: %v", err) } - obj, err := storage.Get(ctx, "foo", &metav1.GetOptions{}) + obj, err := storage.StatefulSet.Get(ctx, "foo", &metav1.GetOptions{}) if err != nil { t.Fatalf("unexpected error: %v", err) } @@ -137,34 +143,34 @@ func TestStatusUpdate(t *testing.T) { } func TestGet(t *testing.T) { - storage, _, server := newStorage(t) + storage, server := newStorage(t) defer server.Terminate(t) - defer storage.Store.DestroyFunc() - test := registrytest.New(t, storage.Store) + defer storage.StatefulSet.Store.DestroyFunc() + test := registrytest.New(t, storage.StatefulSet.Store) test.TestGet(validNewStatefulSet()) } func TestList(t *testing.T) { - storage, _, server := newStorage(t) + storage, server := newStorage(t) defer server.Terminate(t) - defer storage.Store.DestroyFunc() - test := registrytest.New(t, storage.Store) + defer storage.StatefulSet.Store.DestroyFunc() + test := registrytest.New(t, storage.StatefulSet.Store) test.TestList(validNewStatefulSet()) } func TestDelete(t *testing.T) { - storage, _, server := newStorage(t) + storage, server := newStorage(t) defer server.Terminate(t) - defer storage.Store.DestroyFunc() - test := registrytest.New(t, storage.Store) + defer storage.StatefulSet.Store.DestroyFunc() + test := registrytest.New(t, storage.StatefulSet.Store) test.TestDelete(validNewStatefulSet()) } func TestWatch(t *testing.T) { - storage, _, server := newStorage(t) + storage, server := newStorage(t) defer server.Terminate(t) - defer storage.Store.DestroyFunc() - test := registrytest.New(t, storage.Store) + defer storage.StatefulSet.Store.DestroyFunc() + test := registrytest.New(t, storage.StatefulSet.Store) test.TestWatch( validNewStatefulSet(), // matching labels @@ -189,11 +195,104 @@ func TestWatch(t *testing.T) { } func TestCategories(t *testing.T) { - storage, _, server := newStorage(t) + storage, server := newStorage(t) defer server.Terminate(t) - defer storage.Store.DestroyFunc() + defer storage.StatefulSet.Store.DestroyFunc() expected := []string{"all"} - registrytest.AssertCategories(t, storage, expected) + registrytest.AssertCategories(t, storage.StatefulSet, expected) +} + +func TestShortNames(t *testing.T) { + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.StatefulSet.Store.DestroyFunc() + expected := []string{"sts"} + registrytest.AssertShortNames(t, storage.StatefulSet, expected) +} + +func TestScaleGet(t *testing.T) { + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.StatefulSet.Store.DestroyFunc() + + name := "foo" + + var sts apps.StatefulSet + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceDefault) + key := "/statefulsets/" + metav1.NamespaceDefault + "/" + name + if err := storage.StatefulSet.Storage.Create(ctx, key, &validStatefulSet, &sts, 0); err != nil { + t.Fatalf("error setting new statefulset (key: %s) %v: %v", key, validStatefulSet, err) + } + + want := &extensions.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: metav1.NamespaceDefault, + UID: sts.UID, + ResourceVersion: sts.ResourceVersion, + CreationTimestamp: sts.CreationTimestamp, + }, + Spec: extensions.ScaleSpec{ + Replicas: validStatefulSet.Spec.Replicas, + }, + Status: extensions.ScaleStatus{ + Replicas: validStatefulSet.Status.Replicas, + Selector: validStatefulSet.Spec.Selector, + }, + } + obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{}) + got := obj.(*extensions.Scale) + if err != nil { + t.Fatalf("error fetching scale for %s: %v", name, err) + } + if !apiequality.Semantic.DeepEqual(got, want) { + t.Errorf("unexpected scale: %s", diff.ObjectDiff(got, want)) + } +} + +func TestScaleUpdate(t *testing.T) { + storage, server := newStorage(t) + defer server.Terminate(t) + defer storage.StatefulSet.Store.DestroyFunc() + + name := "foo" + + var sts apps.StatefulSet + ctx := genericapirequest.WithNamespace(genericapirequest.NewContext(), metav1.NamespaceDefault) + key := "/statefulsets/" + metav1.NamespaceDefault + "/" + name + if err := storage.StatefulSet.Storage.Create(ctx, key, &validStatefulSet, &sts, 0); err != nil { + t.Fatalf("error setting new statefulset (key: %s) %v: %v", key, validStatefulSet, err) + } + replicas := 12 + update := extensions.Scale{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: metav1.NamespaceDefault, + }, + Spec: extensions.ScaleSpec{ + Replicas: int32(replicas), + }, + } + + if _, _, err := storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update, api.Scheme)); err != nil { + t.Fatalf("error updating scale %v: %v", update, err) + } + + obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{}) + if err != nil { + t.Fatalf("error fetching scale for %s: %v", name, err) + } + scale := obj.(*extensions.Scale) + if scale.Spec.Replicas != int32(replicas) { + t.Errorf("wrong replicas count expected: %d got: %d", replicas, scale.Spec.Replicas) + } + + update.ResourceVersion = sts.ResourceVersion + update.Spec.Replicas = 15 + + if _, _, err = storage.Scale.Update(ctx, update.Name, rest.DefaultUpdatedObjectInfo(&update, api.Scheme)); err != nil && !errors.IsConflict(err) { + t.Fatalf("unexpected error, expecting an update conflict but got %v", err) + } } // TODO: Test generation number. diff --git a/test/e2e/apps/statefulset.go b/test/e2e/apps/statefulset.go index bced0081214..548995bf7d3 100644 --- a/test/e2e/apps/statefulset.go +++ b/test/e2e/apps/statefulset.go @@ -843,6 +843,43 @@ var _ = SIGDescribe("StatefulSet", func() { return nil }, framework.StatefulPodTimeout, 2*time.Second).Should(BeNil()) }) + + It("should have a working scale subresource", func() { + By("Creating statefulset " + ssName + " in namespace " + ns) + ss := framework.NewStatefulSet(ssName, ns, headlessSvcName, 1, nil, nil, labels) + sst := framework.NewStatefulSetTester(c) + sst.SetHttpProbe(ss) + ss, err := c.AppsV1beta1().StatefulSets(ns).Create(ss) + Expect(err).NotTo(HaveOccurred()) + sst.WaitForRunningAndReady(*ss.Spec.Replicas, ss) + ss = sst.WaitForStatus(ss) + + By("getting scale subresource") + scale := framework.NewStatefulSetScale(ss) + scaleResult := &apps.Scale{} + err = c.AppsV1beta1().RESTClient().Get().AbsPath("/apis/apps/v1beta1").Namespace(ns).Resource("statefulsets").Name(ssName).SubResource("scale").Do().Into(scale) + if err != nil { + framework.Failf("Failed to get scale subresource: %v", err) + } + Expect(scale.Spec.Replicas).To(Equal(int32(1))) + Expect(scale.Status.Replicas).To(Equal(int32(1))) + + By("updating a scale subresource") + scale.ResourceVersion = "" //unconditionally update to 2 replicas + scale.Spec.Replicas = 2 + err = c.AppsV1beta1().RESTClient().Put().AbsPath("/apis/apps/v1beta1").Namespace(ns).Resource("statefulsets").Name(ssName).SubResource("scale").Body(scale).Do().Into(scaleResult) + if err != nil { + framework.Failf("Failed to put scale subresource: %v", err) + } + Expect(scaleResult.Spec.Replicas).To(Equal(int32(2))) + + By("verifying the statefulset Spec.Replicas was modified") + ss, err = c.AppsV1beta1().StatefulSets(ns).Get(ssName, metav1.GetOptions{}) + if err != nil { + framework.Failf("Failed to get statefulset resource: %v", err) + } + Expect(*(ss.Spec.Replicas)).To(Equal(int32(2))) + }) }) framework.KubeDescribe("Deploy clustered applications [Feature:StatefulSet] [Slow]", func() { diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 06be9b417a8..cc8957abc03 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -101,6 +101,7 @@ go_library( "//vendor/google.golang.org/api/compute/v1:go_default_library", "//vendor/google.golang.org/api/googleapi:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", + "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/test/e2e/framework/statefulset_utils.go b/test/e2e/framework/statefulset_utils.go index bc4c9a68dac..b33cc332c54 100644 --- a/test/e2e/framework/statefulset_utils.go +++ b/test/e2e/framework/statefulset_utils.go @@ -29,6 +29,7 @@ import ( . "github.com/onsi/gomega" apps "k8s.io/api/apps/v1beta1" + appsV1beta2 "k8s.io/api/apps/v1beta2" "k8s.io/api/core/v1" apierrs "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/api/resource" @@ -224,7 +225,7 @@ func (s *StatefulSetTester) Scale(ss *apps.StatefulSet, count int32) error { // UpdateReplicas updates the replicas of ss to count. func (s *StatefulSetTester) UpdateReplicas(ss *apps.StatefulSet, count int32) { - s.update(ss.Namespace, ss.Name, func(ss *apps.StatefulSet) { ss.Spec.Replicas = &count }) + s.update(ss.Namespace, ss.Name, func(ss *apps.StatefulSet) { *(ss.Spec.Replicas) = count }) } // Restart scales ss to 0 and then back to its previous number of replicas. @@ -812,6 +813,23 @@ func NewStatefulSet(name, ns, governingSvcName string, replicas int32, statefulP } } +// NewStatefulSetScale creates a new StatefulSet scale subresource and returns it +func NewStatefulSetScale(ss *apps.StatefulSet) *appsV1beta2.Scale { + return &appsV1beta2.Scale{ + // TODO: Create a variant of ObjectMeta type that only contains the fields below. + ObjectMeta: metav1.ObjectMeta{ + Name: ss.Name, + Namespace: ss.Namespace, + }, + Spec: appsV1beta2.ScaleSpec{ + Replicas: *(ss.Spec.Replicas), + }, + Status: appsV1beta2.ScaleStatus{ + Replicas: ss.Status.Replicas, + }, + } +} + var statefulPodRegex = regexp.MustCompile("(.*)-([0-9]+)$") func getStatefulPodOrdinal(pod *v1.Pod) int { From 926f070719f98a1fd3a811898cbcb90c919b3d56 Mon Sep 17 00:00:00 2001 From: Robert Rati Date: Mon, 17 Jul 2017 00:28:57 -0400 Subject: [PATCH 083/183] Make ClusterID required for AWS. #48954 --- cmd/cloud-controller-manager/app/options/options.go | 2 ++ cmd/cloud-controller-manager/controller-manager.go | 8 ++++++++ cmd/kube-controller-manager/app/controllermanager.go | 8 ++++++++ cmd/kube-controller-manager/app/options/options.go | 2 ++ pkg/apis/componentconfig/types.go | 2 ++ pkg/cloudprovider/cloud.go | 2 ++ pkg/cloudprovider/providers/aws/aws.go | 5 +++++ pkg/cloudprovider/providers/aws/tags.go | 4 ++++ pkg/cloudprovider/providers/azure/azure.go | 5 +++++ pkg/cloudprovider/providers/cloudstack/cloudstack.go | 5 +++++ pkg/cloudprovider/providers/fake/fake.go | 5 +++++ pkg/cloudprovider/providers/gce/gce.go | 5 +++++ pkg/cloudprovider/providers/openstack/openstack.go | 5 +++++ pkg/cloudprovider/providers/ovirt/ovirt.go | 5 +++++ pkg/cloudprovider/providers/photon/photon.go | 5 +++++ pkg/cloudprovider/providers/rackspace/rackspace.go | 5 +++++ pkg/cloudprovider/providers/vsphere/vsphere.go | 5 +++++ 17 files changed, 78 insertions(+) diff --git a/cmd/cloud-controller-manager/app/options/options.go b/cmd/cloud-controller-manager/app/options/options.go index 0f5a3e79689..2d57294ec88 100644 --- a/cmd/cloud-controller-manager/app/options/options.go +++ b/cmd/cloud-controller-manager/app/options/options.go @@ -71,6 +71,8 @@ func (s *CloudControllerManagerServer) AddFlags(fs *pflag.FlagSet) { fs.Var(componentconfig.IPVar{Val: &s.Address}, "address", "The IP address to serve on (set to 0.0.0.0 for all interfaces)") fs.StringVar(&s.CloudProvider, "cloud-provider", s.CloudProvider, "The provider of cloud services. Cannot be empty.") fs.StringVar(&s.CloudConfigFile, "cloud-config", s.CloudConfigFile, "The path to the cloud provider configuration file. Empty string for no configuration file.") + fs.BoolVar(&s.AllowUntaggedCloud, "allow-untagged-cloud", false, "Allow the cluster to run without the cluster-id on cloud instances. This is a legacy mode of operation and a cluster-id will be required in the future.") + fs.MarkDeprecated("allow-untagged-cloud", "This flag is deprecated and will be removed in a future release. A cluster-id will be required on cloud instances") fs.DurationVar(&s.MinResyncPeriod.Duration, "min-resync-period", s.MinResyncPeriod.Duration, "The resync period in reflectors will be random between MinResyncPeriod and 2*MinResyncPeriod") fs.DurationVar(&s.NodeMonitorPeriod.Duration, "node-monitor-period", s.NodeMonitorPeriod.Duration, "The period for syncing NodeStatus in NodeController.") diff --git a/cmd/cloud-controller-manager/controller-manager.go b/cmd/cloud-controller-manager/controller-manager.go index 28f906e528e..49f793294b5 100644 --- a/cmd/cloud-controller-manager/controller-manager.go +++ b/cmd/cloud-controller-manager/controller-manager.go @@ -61,6 +61,14 @@ func main() { glog.Fatalf("Cloud provider could not be initialized: %v", err) } + if cloud.HasClusterID() == false { + if s.AllowUntaggedCloud == true { + glog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") + } else { + glog.Fatalf("no ClusterID Found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option") + } + } + if err := app.Run(s, cloud); err != nil { fmt.Fprintf(os.Stderr, "%v\n", err) os.Exit(1) diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index bf6539edd9d..2c5e2518fc0 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -411,6 +411,14 @@ func CreateControllerContext(s *options.CMServer, rootClientBuilder, clientBuild if cloud != nil { // Initialize the cloud provider with a reference to the clientBuilder cloud.Initialize(rootClientBuilder) + + if cloud.HasClusterID() == false { + if s.AllowUntaggedCloud == true { + glog.Warning("detected a cluster without a ClusterID. A ClusterID will be required in the future. Please tag your cluster to avoid any future issues") + } else { + return ControllerContext{}, fmt.Errorf("no ClusterID Found. A ClusterID is required for the cloud provider to function properly. This check can be bypassed by setting the allow-untagged-cloud option") + } + } } ctx := ControllerContext{ diff --git a/cmd/kube-controller-manager/app/options/options.go b/cmd/kube-controller-manager/app/options/options.go index f7754b381d2..5b834261fa7 100644 --- a/cmd/kube-controller-manager/app/options/options.go +++ b/cmd/kube-controller-manager/app/options/options.go @@ -134,6 +134,8 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet, allControllers []string, disabled fs.BoolVar(&s.UseServiceAccountCredentials, "use-service-account-credentials", s.UseServiceAccountCredentials, "If true, use individual service account credentials for each controller.") fs.StringVar(&s.CloudProvider, "cloud-provider", s.CloudProvider, "The provider for cloud services. Empty string for no provider.") fs.StringVar(&s.CloudConfigFile, "cloud-config", s.CloudConfigFile, "The path to the cloud provider configuration file. Empty string for no configuration file.") + fs.BoolVar(&s.AllowUntaggedCloud, "allow-untagged-cloud", false, "Allow the cluster to run without the cluster-id on cloud instances. This is a legacy mode of operation and a cluster-id will be required in the future.") + fs.MarkDeprecated("allow-untagged-cloud", "This flag is deprecated and will be removed in a future release. A cluster-id will be required on cloud instances") fs.Int32Var(&s.ConcurrentEndpointSyncs, "concurrent-endpoint-syncs", s.ConcurrentEndpointSyncs, "The number of endpoint syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load") fs.Int32Var(&s.ConcurrentServiceSyncs, "concurrent-service-syncs", s.ConcurrentServiceSyncs, "The number of services that are allowed to sync concurrently. Larger number = more responsive service management, but more CPU (and network) load") fs.Int32Var(&s.ConcurrentRCSyncs, "concurrent_rc_syncs", s.ConcurrentRCSyncs, "The number of replication controllers that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load") diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index 2c0a7b2fe4f..4e4d5e1c1e6 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -669,6 +669,8 @@ type KubeControllerManagerConfiguration struct { CloudProvider string // cloudConfigFile is the path to the cloud provider configuration file. CloudConfigFile string + // run with untagged cloud instances + AllowUntaggedCloud bool // concurrentEndpointSyncs is the number of endpoint syncing operations // that will be done concurrently. Larger number = faster endpoint updating, // but more CPU (and network) load. diff --git a/pkg/cloudprovider/cloud.go b/pkg/cloudprovider/cloud.go index 409d39a7d13..5c4651f7d3a 100644 --- a/pkg/cloudprovider/cloud.go +++ b/pkg/cloudprovider/cloud.go @@ -45,6 +45,8 @@ type Interface interface { ProviderName() string // ScrubDNS provides an opportunity for cloud-provider-specific code to process DNS settings for pods. ScrubDNS(nameservers, searches []string) (nsOut, srchOut []string) + // HasClusterID returns true if a ClusterID is required and set + HasClusterID() bool } // Clusters is an abstract, pluggable interface for clusters of containers. diff --git a/pkg/cloudprovider/providers/aws/aws.go b/pkg/cloudprovider/providers/aws/aws.go index ebd56a36086..704c5e9966e 100644 --- a/pkg/cloudprovider/providers/aws/aws.go +++ b/pkg/cloudprovider/providers/aws/aws.go @@ -971,6 +971,11 @@ func (c *Cloud) Routes() (cloudprovider.Routes, bool) { return c, true } +// HasClusterID returns true if the cluster has a clusterID +func (c *Cloud) HasClusterID() bool { + return len(c.tagging.clusterID()) > 0 +} + // NodeAddresses is an implementation of Instances.NodeAddresses. func (c *Cloud) NodeAddresses(name types.NodeName) ([]v1.NodeAddress, error) { if c.selfAWSInstance.nodeName == name || len(name) == 0 { diff --git a/pkg/cloudprovider/providers/aws/tags.go b/pkg/cloudprovider/providers/aws/tags.go index 3d051850574..bb63fce2bfd 100644 --- a/pkg/cloudprovider/providers/aws/tags.go +++ b/pkg/cloudprovider/providers/aws/tags.go @@ -276,3 +276,7 @@ func (t *awsTagging) buildTags(lifecycle ResourceLifecycle, additionalTags map[s return tags } + +func (t *awsTagging) clusterID() string { + return t.ClusterID +} diff --git a/pkg/cloudprovider/providers/azure/azure.go b/pkg/cloudprovider/providers/azure/azure.go index 33c90b38360..be0e2df4464 100644 --- a/pkg/cloudprovider/providers/azure/azure.go +++ b/pkg/cloudprovider/providers/azure/azure.go @@ -391,6 +391,11 @@ func (az *Cloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []stri return nameservers, searches } +// HasClusterID returns true if the cluster has a clusterID +func (az *Cloud) HasClusterID() bool { + return true +} + // ProviderName returns the cloud provider ID. func (az *Cloud) ProviderName() string { return CloudProviderName diff --git a/pkg/cloudprovider/providers/cloudstack/cloudstack.go b/pkg/cloudprovider/providers/cloudstack/cloudstack.go index f8e2b3ffb6f..1b86d8243ab 100644 --- a/pkg/cloudprovider/providers/cloudstack/cloudstack.go +++ b/pkg/cloudprovider/providers/cloudstack/cloudstack.go @@ -120,6 +120,11 @@ func (cs *CSCloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []st return nameservers, searches } +// HasClusterID returns true if the cluster has a clusterID +func (cs *CSCloud) HasClusterID() bool { + return true +} + // GetZone returns the Zone containing the region that the program is running in. func (cs *CSCloud) GetZone() (cloudprovider.Zone, error) { glog.V(2).Infof("Current zone is %v", cs.zone) diff --git a/pkg/cloudprovider/providers/fake/fake.go b/pkg/cloudprovider/providers/fake/fake.go index 77022e2cb8c..05c10c146cc 100644 --- a/pkg/cloudprovider/providers/fake/fake.go +++ b/pkg/cloudprovider/providers/fake/fake.go @@ -111,6 +111,11 @@ func (f *FakeCloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []s return nameservers, searches } +// HasClusterID returns true if the cluster has a clusterID +func (f *FakeCloud) HasClusterID() bool { + return true +} + // LoadBalancer returns a fake implementation of LoadBalancer. // Actually it just returns f itself. func (f *FakeCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool) { diff --git a/pkg/cloudprovider/providers/gce/gce.go b/pkg/cloudprovider/providers/gce/gce.go index a6d5dccaedb..a4dd5eab159 100644 --- a/pkg/cloudprovider/providers/gce/gce.go +++ b/pkg/cloudprovider/providers/gce/gce.go @@ -469,6 +469,11 @@ func (gce *GCECloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut [] return nameservers, srchOut } +// HasClusterID returns true if the cluster has a clusterID +func (gce *GCECloud) HasClusterID() bool { + return true +} + // GCECloud implements cloudprovider.Interface. var _ cloudprovider.Interface = (*GCECloud)(nil) diff --git a/pkg/cloudprovider/providers/openstack/openstack.go b/pkg/cloudprovider/providers/openstack/openstack.go index 15993f6f910..43599ec1b7f 100644 --- a/pkg/cloudprovider/providers/openstack/openstack.go +++ b/pkg/cloudprovider/providers/openstack/openstack.go @@ -458,6 +458,11 @@ func (os *OpenStack) ScrubDNS(nameServers, searches []string) ([]string, []strin return nameServers, searches } +// HasClusterID returns true if the cluster has a clusterID +func (os *OpenStack) HasClusterID() bool { + return true +} + func (os *OpenStack) LoadBalancer() (cloudprovider.LoadBalancer, bool) { glog.V(4).Info("openstack.LoadBalancer() called") diff --git a/pkg/cloudprovider/providers/ovirt/ovirt.go b/pkg/cloudprovider/providers/ovirt/ovirt.go index 73275262919..fe71113ed0a 100644 --- a/pkg/cloudprovider/providers/ovirt/ovirt.go +++ b/pkg/cloudprovider/providers/ovirt/ovirt.go @@ -134,6 +134,11 @@ func (v *OVirtCloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut [] return nameservers, searches } +// HasClusterID returns true if the cluster has a clusterID +func (v *OVirtCloud) HasClusterID() bool { + return true +} + // LoadBalancer returns an implementation of LoadBalancer for oVirt cloud func (v *OVirtCloud) LoadBalancer() (cloudprovider.LoadBalancer, bool) { return nil, false diff --git a/pkg/cloudprovider/providers/photon/photon.go b/pkg/cloudprovider/providers/photon/photon.go index 8ef0b1dcfcc..87ecc1b160e 100644 --- a/pkg/cloudprovider/providers/photon/photon.go +++ b/pkg/cloudprovider/providers/photon/photon.go @@ -539,6 +539,11 @@ func (pc *PCCloud) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []st return nameservers, searches } +// HasClusterID returns true if the cluster has a clusterID +func (pc *PCCloud) HasClusterID() bool { + return true +} + // Attaches given virtual disk volume to the compute running kubelet. func (pc *PCCloud) AttachDisk(pdID string, nodeName k8stypes.NodeName) error { photonClient, err := getPhotonClient(pc) diff --git a/pkg/cloudprovider/providers/rackspace/rackspace.go b/pkg/cloudprovider/providers/rackspace/rackspace.go index 0e04d9407c4..b087bfa4cea 100644 --- a/pkg/cloudprovider/providers/rackspace/rackspace.go +++ b/pkg/cloudprovider/providers/rackspace/rackspace.go @@ -529,6 +529,11 @@ func (os *Rackspace) ScrubDNS(nameservers, searches []string) (nsOut, srchOut [] return nameservers, searches } +// HasClusterID returns true if the cluster has a clusterID +func (os *Rackspace) HasClusterID() bool { + return true +} + func (os *Rackspace) LoadBalancer() (cloudprovider.LoadBalancer, bool) { return nil, false } diff --git a/pkg/cloudprovider/providers/vsphere/vsphere.go b/pkg/cloudprovider/providers/vsphere/vsphere.go index b1409ea3b28..60086d52297 100644 --- a/pkg/cloudprovider/providers/vsphere/vsphere.go +++ b/pkg/cloudprovider/providers/vsphere/vsphere.go @@ -747,3 +747,8 @@ func (vs *VSphere) DeleteVolume(vmDiskPath string) error { vclib.RecordvSphereMetric(vclib.OperationDeleteVolume, requestTime, err) return err } + +// HasClusterID returns true if the cluster has a clusterID +func (vs *VSphere) HasClusterID() bool { + return true +} From c5f011beee58e96c5c538498225f65dd219f989e Mon Sep 17 00:00:00 2001 From: Quinton Hoole Date: Mon, 7 Aug 2017 13:08:40 -0700 Subject: [PATCH 084/183] Add Shashi as approver for e2e_federation --- test/e2e_federation/OWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/test/e2e_federation/OWNERS b/test/e2e_federation/OWNERS index ad98c68b671..b60580337e5 100644 --- a/test/e2e_federation/OWNERS +++ b/test/e2e_federation/OWNERS @@ -13,3 +13,4 @@ approvers: - mwielgus - nikhiljindal - quinton-hoole + - shashidharatd From 4ee72eb300423772020dd1cf208159058ba7dab5 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Mon, 7 Aug 2017 09:42:32 -0400 Subject: [PATCH 085/183] Revert "Merge pull request #47353 from apelisse/http-cache" This reverts commit fc89743dca6b563063b74728c3b28100cf674d9d, reversing changes made to 29ab38e898988c36e2de34f77fa33be556eb21bd. --- Godeps/Godeps.json | 13 - Godeps/LICENSES | 55 -- pkg/kubectl/cmd/get.go | 7 +- pkg/kubectl/cmd/testing/fake.go | 4 +- pkg/kubectl/cmd/util/factory.go | 2 +- .../cmd/util/factory_object_mapping.go | 25 +- pkg/kubectl/cmd/util/helpers.go | 13 + pkg/kubectl/cmd/util/openapi/BUILD | 5 + pkg/kubectl/cmd/util/openapi/openapi_cache.go | 163 +++++ .../cmd/util/openapi/openapi_cache_test.go | 268 ++++++++ .../cmd/util/openapi/openapi_getter.go | 16 +- .../cmd/util/openapi/openapi_getter_test.go | 72 +-- .../Godeps/Godeps.json | 16 - .../src/k8s.io/apiserver/Godeps/Godeps.json | 12 - .../src/k8s.io/client-go/Godeps/Godeps.json | 16 - staging/src/k8s.io/client-go/rest/config.go | 4 - .../src/k8s.io/client-go/rest/config_test.go | 1 - .../src/k8s.io/client-go/rest/transport.go | 1 - .../tools/clientcmd/client_config.go | 5 - .../client-go/tools/clientcmd/overrides.go | 8 - staging/src/k8s.io/client-go/transport/BUILD | 3 - .../src/k8s.io/client-go/transport/config.go | 4 - .../client-go/transport/round_trippers.go | 17 - .../transport/round_trippers_test.go | 61 -- .../k8s.io/kube-aggregator/Godeps/Godeps.json | 16 - .../src/k8s.io/kube-gen/Godeps/Godeps.json | 16 - staging/src/k8s.io/metrics/Godeps/Godeps.json | 16 - .../sample-apiserver/Godeps/Godeps.json | 16 - vendor/BUILD | 2 - .../gregjones/httpcache/.travis.yml | 18 - vendor/github.com/gregjones/httpcache/BUILD | 30 - .../gregjones/httpcache/LICENSE.txt | 7 - .../github.com/gregjones/httpcache/README.md | 24 - .../gregjones/httpcache/diskcache/BUILD | 28 - .../httpcache/diskcache/diskcache.go | 61 -- .../gregjones/httpcache/httpcache.go | 553 ----------------- vendor/github.com/peterbourgon/diskv/BUILD | 32 - vendor/github.com/peterbourgon/diskv/LICENSE | 19 - .../github.com/peterbourgon/diskv/README.md | 141 ----- .../peterbourgon/diskv/compression.go | 64 -- vendor/github.com/peterbourgon/diskv/diskv.go | 578 ------------------ vendor/github.com/peterbourgon/diskv/index.go | 115 ---- 42 files changed, 491 insertions(+), 2036 deletions(-) create mode 100644 pkg/kubectl/cmd/util/openapi/openapi_cache.go create mode 100644 pkg/kubectl/cmd/util/openapi/openapi_cache_test.go delete mode 100644 vendor/github.com/gregjones/httpcache/.travis.yml delete mode 100644 vendor/github.com/gregjones/httpcache/BUILD delete mode 100644 vendor/github.com/gregjones/httpcache/LICENSE.txt delete mode 100644 vendor/github.com/gregjones/httpcache/README.md delete mode 100644 vendor/github.com/gregjones/httpcache/diskcache/BUILD delete mode 100644 vendor/github.com/gregjones/httpcache/diskcache/diskcache.go delete mode 100644 vendor/github.com/gregjones/httpcache/httpcache.go delete mode 100644 vendor/github.com/peterbourgon/diskv/BUILD delete mode 100644 vendor/github.com/peterbourgon/diskv/LICENSE delete mode 100644 vendor/github.com/peterbourgon/diskv/README.md delete mode 100644 vendor/github.com/peterbourgon/diskv/compression.go delete mode 100644 vendor/github.com/peterbourgon/diskv/diskv.go delete mode 100644 vendor/github.com/peterbourgon/diskv/index.go diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json index d8d99622bda..271f154f560 100644 --- a/Godeps/Godeps.json +++ b/Godeps/Godeps.json @@ -1707,14 +1707,6 @@ "ImportPath": "github.com/gorilla/websocket", "Rev": "6eb6ad425a89d9da7a5549bc6da8f79ba5c17844" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/grpc-ecosystem/go-grpc-prometheus", "Comment": "v1.1-4-g2500245", @@ -2247,11 +2239,6 @@ "Comment": "v0.3.5-10-g0049ab3", "Rev": "0049ab3dc4c4c70a9eee23087437b69c0dde2130" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Comment": "v2.0.0-2-g5dfcb07", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/pkg/errors", "Comment": "v0.7.0-13-ga221380", diff --git a/Godeps/LICENSES b/Godeps/LICENSES index 5aeb01e9ee6..5911292ad9c 100644 --- a/Godeps/LICENSES +++ b/Godeps/LICENSES @@ -59441,34 +59441,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ================================================================================ -================================================================================ -= vendor/github.com/gregjones/httpcache licensed under: = - -Copyright © 2012 Greg Jones (greg.jones@gmail.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -= vendor/github.com/gregjones/httpcache/LICENSE.txt 3cfef421226b2dacde78a4871380ac24 - -================================================================================ - - -================================================================================ -= vendor/github.com/gregjones/httpcache/diskcache licensed under: = - -Copyright © 2012 Greg Jones (greg.jones@gmail.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -= vendor/github.com/gregjones/httpcache/LICENSE.txt 3cfef421226b2dacde78a4871380ac24 - -================================================================================ - - ================================================================================ = vendor/github.com/grpc-ecosystem/go-grpc-prometheus licensed under: = @@ -71602,33 +71574,6 @@ SOFTWARE. ================================================================================ -================================================================================ -= vendor/github.com/peterbourgon/diskv licensed under: = - -Copyright (c) 2011-2012 Peter Bourgon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -= vendor/github.com/peterbourgon/diskv/LICENSE f9f3e815fc84aa04c4f4db33c553eef9 - -================================================================================ - - ================================================================================ = vendor/github.com/pkg/errors licensed under: = diff --git a/pkg/kubectl/cmd/get.go b/pkg/kubectl/cmd/get.go index 0d1cf0ebc93..077fb958aa9 100644 --- a/pkg/kubectl/cmd/get.go +++ b/pkg/kubectl/cmd/get.go @@ -138,6 +138,7 @@ func NewCmdGet(f cmdutil.Factory, out io.Writer, errOut io.Writer) *cobra.Comman usage := "identifying the resource to get from a server." cmdutil.AddFilenameOptionFlags(cmd, &options.FilenameOptions, usage) cmdutil.AddInclude3rdPartyFlags(cmd) + cmdutil.AddOpenAPIFlags(cmd) cmd.Flags().StringVar(&options.Raw, "raw", options.Raw, "Raw URI to request from the server. Uses the transport specified by the kubeconfig file.") return cmd } @@ -456,7 +457,7 @@ func RunGet(f cmdutil.Factory, out, errOut io.Writer, cmd *cobra.Command, args [ // if cmd does not specify output format and useOpenAPIPrintColumnFlagLabel flag is true, // then get the default output options for this mapping from OpenAPI schema. if !cmdSpecifiesOutputFmt(cmd) && useOpenAPIPrintColumns { - outputOpts, _ = outputOptsForMappingFromOpenAPI(f, mapping) + outputOpts, _ = outputOptsForMappingFromOpenAPI(f, cmdutil.GetOpenAPICacheDir(cmd), mapping) } printer, err = f.PrinterForMapping(cmd, false, outputOpts, mapping, allNamespaces) @@ -555,11 +556,11 @@ func cmdSpecifiesOutputFmt(cmd *cobra.Command) bool { // outputOptsForMappingFromOpenAPI looks for the output format metatadata in the // openapi schema and returns the output options for the mapping if found. -func outputOptsForMappingFromOpenAPI(f cmdutil.Factory, mapping *meta.RESTMapping) (*printers.OutputOptions, bool) { +func outputOptsForMappingFromOpenAPI(f cmdutil.Factory, openAPIcacheDir string, mapping *meta.RESTMapping) (*printers.OutputOptions, bool) { // user has not specified any output format, check if OpenAPI has // default specification to print this resource type - api, err := f.OpenAPISchema() + api, err := f.OpenAPISchema(openAPIcacheDir) if err != nil { // Error getting schema return nil, false diff --git a/pkg/kubectl/cmd/testing/fake.go b/pkg/kubectl/cmd/testing/fake.go index b69bc1123ef..23c27a45653 100644 --- a/pkg/kubectl/cmd/testing/fake.go +++ b/pkg/kubectl/cmd/testing/fake.go @@ -418,7 +418,7 @@ func (f *FakeFactory) SwaggerSchema(schema.GroupVersionKind) (*swagger.ApiDeclar return nil, nil } -func (f *FakeFactory) OpenAPISchema() (openapi.Resources, error) { +func (f *FakeFactory) OpenAPISchema(cacheDir string) (openapi.Resources, error) { return nil, nil } @@ -756,7 +756,7 @@ func (f *fakeAPIFactory) SwaggerSchema(schema.GroupVersionKind) (*swagger.ApiDec return nil, nil } -func (f *fakeAPIFactory) OpenAPISchema() (openapi.Resources, error) { +func (f *fakeAPIFactory) OpenAPISchema(cacheDir string) (openapi.Resources, error) { if f.tf.OpenAPISchemaFunc != nil { return f.tf.OpenAPISchemaFunc() } diff --git a/pkg/kubectl/cmd/util/factory.go b/pkg/kubectl/cmd/util/factory.go index d2ccc5c9179..999e49d72fe 100644 --- a/pkg/kubectl/cmd/util/factory.go +++ b/pkg/kubectl/cmd/util/factory.go @@ -224,7 +224,7 @@ type ObjectMappingFactory interface { // SwaggerSchema returns the schema declaration for the provided group version kind. SwaggerSchema(schema.GroupVersionKind) (*swagger.ApiDeclaration, error) // OpenAPISchema returns the schema openapi schema definiton - OpenAPISchema() (openapi.Resources, error) + OpenAPISchema(cacheDir string) (openapi.Resources, error) } // BuilderFactory holds the second level of factory methods. These functions depend upon ObjectMappingFactory and ClientAccessFactory methods. diff --git a/pkg/kubectl/cmd/util/factory_object_mapping.go b/pkg/kubectl/cmd/util/factory_object_mapping.go index 6adb64fb54f..83cb1b30dbf 100644 --- a/pkg/kubectl/cmd/util/factory_object_mapping.go +++ b/pkg/kubectl/cmd/util/factory_object_mapping.go @@ -439,7 +439,13 @@ func (f *ring1Factory) SwaggerSchema(gvk schema.GroupVersionKind) (*swagger.ApiD } // OpenAPISchema returns metadata and structural information about Kubernetes object definitions. -func (f *ring1Factory) OpenAPISchema() (openapi.Resources, error) { +// Will try to cache the data to a local file. Cache is written and read from a +// file created with ioutil.TempFile and obeys the expiration semantics of that file. +// The cache location is a function of the client and server versions so that the open API +// schema will be cached separately for different client / server combinations. +// Note, the cache will not be invalidated if the server changes its open API schema without +// changing the server version. +func (f *ring1Factory) OpenAPISchema(cacheDir string) (openapi.Resources, error) { discovery, err := f.clientAccessFactory.DiscoveryClient() if err != nil { return nil, err @@ -447,8 +453,23 @@ func (f *ring1Factory) OpenAPISchema() (openapi.Resources, error) { // Lazily initialize the OpenAPIGetter once f.openAPIGetter.once.Do(func() { + // Get the server version for caching the openapi spec + versionString := "" + version, err := discovery.ServerVersion() + if err != nil { + // Cache the result under the server version + versionString = version.String() + } + + // Get the cache directory for caching the openapi spec + cacheDir, err = substituteUserHome(cacheDir) + if err != nil { + // Don't cache the result if we couldn't substitute the home directory + cacheDir = "" + } + // Create the caching OpenAPIGetter - f.openAPIGetter.getter = openapi.NewOpenAPIGetter(discovery) + f.openAPIGetter.getter = openapi.NewOpenAPIGetter(cacheDir, versionString, discovery) }) // Delegate to the OpenAPIGetter diff --git a/pkg/kubectl/cmd/util/helpers.go b/pkg/kubectl/cmd/util/helpers.go index 885cd8754d7..0cd966c6328 100644 --- a/pkg/kubectl/cmd/util/helpers.go +++ b/pkg/kubectl/cmd/util/helpers.go @@ -404,6 +404,19 @@ func AddValidateOptionFlags(cmd *cobra.Command, options *ValidateOptions) { cmd.MarkFlagFilename("schema-cache-dir") } +func AddOpenAPIFlags(cmd *cobra.Command) { + cmd.Flags().String("schema-cache-dir", + fmt.Sprintf("~/%s/%s", clientcmd.RecommendedHomeDir, clientcmd.RecommendedSchemaName), + fmt.Sprintf("If non-empty, load/store cached API schemas in this directory, default is '$HOME/%s/%s'", + clientcmd.RecommendedHomeDir, clientcmd.RecommendedSchemaName), + ) + cmd.MarkFlagFilename("schema-cache-dir") +} + +func GetOpenAPICacheDir(cmd *cobra.Command) string { + return GetFlagString(cmd, "schema-cache-dir") +} + func AddFilenameOptionFlags(cmd *cobra.Command, options *resource.FilenameOptions, usage string) { kubectl.AddJsonFilenameFlag(cmd, &options.Filenames, "Filename, directory, or URL to files "+usage) cmd.Flags().BoolVarP(&options.Recursive, "recursive", "R", options.Recursive, "Process the directory used in -f, --filename recursively. Useful when you want to manage related manifests organized within the same directory.") diff --git a/pkg/kubectl/cmd/util/openapi/BUILD b/pkg/kubectl/cmd/util/openapi/BUILD index 01920e15696..eb926ee7e97 100644 --- a/pkg/kubectl/cmd/util/openapi/BUILD +++ b/pkg/kubectl/cmd/util/openapi/BUILD @@ -15,11 +15,15 @@ go_library( "document.go", "extensions.go", "openapi.go", + "openapi_cache.go", "openapi_getter.go", ], tags = ["automanaged"], deps = [ + "//pkg/version:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", "//vendor/gopkg.in/yaml.v2:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", @@ -31,6 +35,7 @@ go_test( name = "go_default_xtest", size = "small", srcs = [ + "openapi_cache_test.go", "openapi_getter_test.go", "openapi_suite_test.go", "openapi_test.go", diff --git a/pkg/kubectl/cmd/util/openapi/openapi_cache.go b/pkg/kubectl/cmd/util/openapi/openapi_cache.go new file mode 100644 index 00000000000..faf83456b49 --- /dev/null +++ b/pkg/kubectl/cmd/util/openapi/openapi_cache.go @@ -0,0 +1,163 @@ +/* +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. +*/ + +package openapi + +import ( + "bytes" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + + "github.com/golang/glog" + "github.com/golang/protobuf/proto" + openapi_v2 "github.com/googleapis/gnostic/OpenAPIv2" + + "k8s.io/client-go/discovery" + "k8s.io/kubernetes/pkg/version" +) + +const openapiFileName = "openapi_cache" + +type CachingOpenAPIClient struct { + version string + client discovery.OpenAPISchemaInterface + cacheDirName string +} + +// NewCachingOpenAPIClient returns a new discovery.OpenAPISchemaInterface +// that will read the openapi spec from a local cache if it exists, and +// if not will then fetch an openapi spec using a client. +// client: used to fetch a new openapi spec if a local cache is not found +// version: the server version and used as part of the cache file location +// cacheDir: the directory under which the cache file will be written +func NewCachingOpenAPIClient(client discovery.OpenAPISchemaInterface, version, cacheDir string) *CachingOpenAPIClient { + return &CachingOpenAPIClient{ + client: client, + version: version, + cacheDirName: cacheDir, + } +} + +// OpenAPIData returns an openapi spec. +// It will first attempt to read the spec from a local cache +// If it cannot read a local cache, it will read the file +// using the client and then write the cache. +func (c *CachingOpenAPIClient) OpenAPIData() (Resources, error) { + // Try to use the cached version + if c.useCache() { + doc, err := c.readOpenAPICache() + if err == nil { + return NewOpenAPIData(doc) + } + } + + // No cached version found, download from server + s, err := c.client.OpenAPISchema() + if err != nil { + glog.V(2).Infof("Failed to download openapi data %v", err) + return nil, err + } + + oa, err := NewOpenAPIData(s) + if err != nil { + glog.V(2).Infof("Failed to parse openapi data %v", err) + return nil, err + } + + // Try to cache the openapi spec + if c.useCache() { + err = c.writeToCache(s) + if err != nil { + // Just log an message, no need to fail the command since we got the data we need + glog.V(2).Infof("Unable to cache openapi spec %v", err) + } + } + + // Return the parsed data + return oa, nil +} + +// useCache returns true if the client should try to use the cache file +func (c *CachingOpenAPIClient) useCache() bool { + return len(c.version) > 0 && len(c.cacheDirName) > 0 +} + +// readOpenAPICache tries to read the openapi spec from the local file cache +func (c *CachingOpenAPIClient) readOpenAPICache() (*openapi_v2.Document, error) { + // Get the filename to read + filename := c.openAPICacheFilename() + + // Read the cached file + data, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + + doc := &openapi_v2.Document{} + return doc, proto.Unmarshal(data, doc) +} + +// writeToCache tries to write the openapi spec to the local file cache. +// writes the data to a new tempfile, and then links the cache file and the tempfile +func (c *CachingOpenAPIClient) writeToCache(doc *openapi_v2.Document) error { + // Get the constant filename used to read the cache. + cacheFile := c.openAPICacheFilename() + + // Binary encode the spec. This is 10x as fast as using json encoding. (60ms vs 600ms) + b, err := proto.Marshal(doc) + if err != nil { + return fmt.Errorf("Could not binary encode openapi spec: %v", err) + } + + // Create a new temp file for the cached openapi spec. + cacheDir := filepath.Dir(cacheFile) + if err := os.MkdirAll(cacheDir, 0755); err != nil { + return fmt.Errorf("Could not create directory: %v %v", cacheDir, err) + } + tmpFile, err := ioutil.TempFile(cacheDir, "openapi") + if err != nil { + return fmt.Errorf("Could not create temp cache file: %v %v", cacheFile, err) + } + + // Write the binary encoded openapi spec to the temp file + if _, err := io.Copy(tmpFile, bytes.NewBuffer(b)); err != nil { + return fmt.Errorf("Could not write temp cache file: %v", err) + } + + // Link the temp cache file to the constant cache filepath + return linkFiles(tmpFile.Name(), cacheFile) +} + +// openAPICacheFilename returns the filename to read the cache from +func (c *CachingOpenAPIClient) openAPICacheFilename() string { + // Cache using the client and server versions + return filepath.Join(c.cacheDirName, c.version, version.Get().GitVersion, openapiFileName) +} + +// linkFiles links the old file to the new file +func linkFiles(old, new string) error { + if err := os.Link(old, new); err != nil { + // If we can't write due to file existing, or permission problems, keep going. + if os.IsExist(err) || os.IsPermission(err) { + return nil + } + return err + } + return nil +} diff --git a/pkg/kubectl/cmd/util/openapi/openapi_cache_test.go b/pkg/kubectl/cmd/util/openapi/openapi_cache_test.go new file mode 100644 index 00000000000..de93c028484 --- /dev/null +++ b/pkg/kubectl/cmd/util/openapi/openapi_cache_test.go @@ -0,0 +1,268 @@ +/* +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. +*/ + +package openapi_test + +import ( + "fmt" + "io/ioutil" + "os" + "path/filepath" + "sync" + + "gopkg.in/yaml.v2" + + "github.com/googleapis/gnostic/OpenAPIv2" + "github.com/googleapis/gnostic/compiler" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" +) + +var _ = Describe("When reading openAPIData", func() { + var tmpDir string + var err error + var client *fakeOpenAPIClient + var instance *openapi.CachingOpenAPIClient + var expectedData openapi.Resources + + BeforeEach(func() { + tmpDir, err = ioutil.TempDir("", "openapi_cache_test") + Expect(err).To(BeNil()) + client = &fakeOpenAPIClient{} + instance = openapi.NewCachingOpenAPIClient(client, "v1.6", tmpDir) + + d, err := data.OpenAPISchema() + Expect(err).To(BeNil()) + + expectedData, err = openapi.NewOpenAPIData(d) + Expect(err).To(BeNil()) + }) + + AfterEach(func() { + os.RemoveAll(tmpDir) + }) + + It("should write to the cache", func() { + By("getting the live openapi spec from the server") + result, err := instance.OpenAPIData() + Expect(err).To(BeNil()) + Expect(result).To(Equal(expectedData)) + Expect(client.calls).To(Equal(1)) + + By("writing the live openapi spec to a local cache file") + names, err := getFilenames(tmpDir) + Expect(err).To(BeNil()) + Expect(names).To(ConsistOf("v1.6")) + + names, err = getFilenames(filepath.Join(tmpDir, "v1.6")) + Expect(err).To(BeNil()) + Expect(names).To(HaveLen(1)) + clientVersion := names[0] + + names, err = getFilenames(filepath.Join(tmpDir, "v1.6", clientVersion)) + Expect(err).To(BeNil()) + Expect(names).To(ContainElement("openapi_cache")) + }) + + It("should read from the cache", func() { + // First call should use the client + result, err := instance.OpenAPIData() + Expect(err).To(BeNil()) + Expect(result).To(Equal(expectedData)) + Expect(client.calls).To(Equal(1)) + + // Second call shouldn't use the client + result, err = instance.OpenAPIData() + Expect(err).To(BeNil()) + Expect(result).To(Equal(expectedData)) + Expect(client.calls).To(Equal(1)) + + names, err := getFilenames(tmpDir) + Expect(err).To(BeNil()) + Expect(names).To(ConsistOf("v1.6")) + }) + + It("propagate errors that are encountered", func() { + // Expect an error + client.err = fmt.Errorf("expected error") + result, err := instance.OpenAPIData() + Expect(err.Error()).To(Equal(client.err.Error())) + Expect(result).To(BeNil()) + Expect(client.calls).To(Equal(1)) + + // No cache file is written + files, err := ioutil.ReadDir(tmpDir) + Expect(err).To(BeNil()) + Expect(files).To(HaveLen(0)) + + // Client error is not cached + result, err = instance.OpenAPIData() + Expect(err.Error()).To(Equal(client.err.Error())) + Expect(result).To(BeNil()) + Expect(client.calls).To(Equal(2)) + }) +}) + +var _ = Describe("Reading openAPIData", func() { + var tmpDir string + var serverVersion string + var cacheDir string + + BeforeEach(func() { + var err error + tmpDir, err = ioutil.TempDir("", "openapi_cache_test") + Expect(err).To(BeNil()) + }) + + AfterEach(func() { + os.RemoveAll(tmpDir) + }) + + // Set the serverVersion to empty + Context("when the server version is empty", func() { + BeforeEach(func() { + serverVersion = "" + cacheDir = tmpDir + }) + It("should not cache the result", func() { + client := &fakeOpenAPIClient{} + + instance := openapi.NewCachingOpenAPIClient(client, serverVersion, cacheDir) + + d, err := data.OpenAPISchema() + Expect(err).To(BeNil()) + + expectedData, err := openapi.NewOpenAPIData(d) + Expect(err).To(BeNil()) + + By("getting the live openapi schema") + result, err := instance.OpenAPIData() + Expect(err).To(BeNil()) + Expect(result).To(Equal(expectedData)) + Expect(client.calls).To(Equal(1)) + + files, err := ioutil.ReadDir(tmpDir) + Expect(err).To(BeNil()) + Expect(files).To(HaveLen(0)) + }) + }) + + Context("when the cache directory is empty", func() { + BeforeEach(func() { + serverVersion = "v1.6" + cacheDir = "" + }) + It("should not cache the result", func() { + client := &fakeOpenAPIClient{} + + instance := openapi.NewCachingOpenAPIClient(client, serverVersion, cacheDir) + + d, err := data.OpenAPISchema() + Expect(err).To(BeNil()) + + expectedData, err := openapi.NewOpenAPIData(d) + Expect(err).To(BeNil()) + + By("getting the live openapi schema") + result, err := instance.OpenAPIData() + Expect(err).To(BeNil()) + Expect(result).To(Equal(expectedData)) + Expect(client.calls).To(Equal(1)) + + files, err := ioutil.ReadDir(tmpDir) + Expect(err).To(BeNil()) + Expect(files).To(HaveLen(0)) + }) + }) +}) + +// Test Utils +func getFilenames(path string) ([]string, error) { + files, err := ioutil.ReadDir(path) + if err != nil { + return nil, err + } + result := []string{} + for _, n := range files { + result = append(result, n.Name()) + } + return result, nil +} + +type fakeOpenAPIClient struct { + calls int + err error +} + +func (f *fakeOpenAPIClient) OpenAPISchema() (*openapi_v2.Document, error) { + f.calls = f.calls + 1 + + if f.err != nil { + return nil, f.err + } + + return data.OpenAPISchema() +} + +// Test utils +var data apiData + +type apiData struct { + sync.Once + data *openapi_v2.Document + err error +} + +func (d *apiData) OpenAPISchema() (*openapi_v2.Document, error) { + d.Do(func() { + // Get the path to the swagger.json file + wd, err := os.Getwd() + if err != nil { + d.err = err + return + } + + abs, err := filepath.Abs(wd) + if err != nil { + d.err = err + return + } + + root := filepath.Dir(filepath.Dir(filepath.Dir(filepath.Dir(filepath.Dir(abs))))) + specpath := filepath.Join(root, "api", "openapi-spec", "swagger.json") + _, err = os.Stat(specpath) + if err != nil { + d.err = err + return + } + spec, err := ioutil.ReadFile(specpath) + if err != nil { + d.err = err + return + } + var info yaml.MapSlice + err = yaml.Unmarshal(spec, &info) + if err != nil { + d.err = err + return + } + d.data, d.err = openapi_v2.NewDocument(info, compiler.NewContext("$root", nil)) + }) + + return d.data, d.err +} diff --git a/pkg/kubectl/cmd/util/openapi/openapi_getter.go b/pkg/kubectl/cmd/util/openapi/openapi_getter.go index d5c9476a02b..0b655dc0471 100644 --- a/pkg/kubectl/cmd/util/openapi/openapi_getter.go +++ b/pkg/kubectl/cmd/util/openapi/openapi_getter.go @@ -29,6 +29,8 @@ type synchronizedOpenAPIGetter struct { openAPISchema Resources err error + serverVersion string + cacheDir string openAPIClient discovery.OpenAPISchemaInterface } @@ -40,10 +42,12 @@ type Getter interface { Get() (Resources, error) } -// NewOpenAPIGetter returns an object to return OpenAPIDatas which reads -// from a server, and then stores in memory for subsequent invocations -func NewOpenAPIGetter(openAPIClient discovery.OpenAPISchemaInterface) Getter { +// NewOpenAPIGetter returns an object to return OpenAPIDatas which either read from a +// local file cache or read from a server, and then stored in memory for subsequent invocations +func NewOpenAPIGetter(cacheDir, serverVersion string, openAPIClient discovery.OpenAPISchemaInterface) Getter { return &synchronizedOpenAPIGetter{ + serverVersion: serverVersion, + cacheDir: cacheDir, openAPIClient: openAPIClient, } } @@ -51,13 +55,15 @@ func NewOpenAPIGetter(openAPIClient discovery.OpenAPISchemaInterface) Getter { // Resources implements Getter func (g *synchronizedOpenAPIGetter) Get() (Resources, error) { g.Do(func() { - s, err := g.openAPIClient.OpenAPISchema() + client := NewCachingOpenAPIClient(g.openAPIClient, g.serverVersion, g.cacheDir) + result, err := client.OpenAPIData() if err != nil { g.err = err return } - g.openAPISchema, g.err = NewOpenAPIData(s) + // Save the result + g.openAPISchema = result }) // Return the save result diff --git a/pkg/kubectl/cmd/util/openapi/openapi_getter_test.go b/pkg/kubectl/cmd/util/openapi/openapi_getter_test.go index d8c7467840f..bbaca9dee35 100644 --- a/pkg/kubectl/cmd/util/openapi/openapi_getter_test.go +++ b/pkg/kubectl/cmd/util/openapi/openapi_getter_test.go @@ -18,83 +18,13 @@ package openapi_test import ( "fmt" - "io/ioutil" - "os" - "path/filepath" - "sync" - "gopkg.in/yaml.v2" - - "github.com/googleapis/gnostic/OpenAPIv2" - "github.com/googleapis/gnostic/compiler" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" ) -// Test utils -var data apiData - -type apiData struct { - sync.Once - data *openapi_v2.Document - err error -} - -func (d *apiData) OpenAPISchema() (*openapi_v2.Document, error) { - d.Do(func() { - // Get the path to the swagger.json file - wd, err := os.Getwd() - if err != nil { - d.err = err - return - } - - abs, err := filepath.Abs(wd) - if err != nil { - d.err = err - return - } - - root := filepath.Dir(filepath.Dir(filepath.Dir(filepath.Dir(filepath.Dir(abs))))) - specpath := filepath.Join(root, "api", "openapi-spec", "swagger.json") - _, err = os.Stat(specpath) - if err != nil { - d.err = err - return - } - spec, err := ioutil.ReadFile(specpath) - if err != nil { - d.err = err - return - } - var info yaml.MapSlice - err = yaml.Unmarshal(spec, &info) - if err != nil { - d.err = err - return - } - d.data, d.err = openapi_v2.NewDocument(info, compiler.NewContext("$root", nil)) - }) - return d.data, d.err -} - -type fakeOpenAPIClient struct { - calls int - err error -} - -func (f *fakeOpenAPIClient) OpenAPISchema() (*openapi_v2.Document, error) { - f.calls = f.calls + 1 - - if f.err != nil { - return nil, f.err - } - - return data.OpenAPISchema() -} - var _ = Describe("Getting the Resources", func() { var client *fakeOpenAPIClient var expectedData openapi.Resources @@ -108,7 +38,7 @@ var _ = Describe("Getting the Resources", func() { expectedData, err = openapi.NewOpenAPIData(d) Expect(err).To(BeNil()) - instance = openapi.NewOpenAPIGetter(client) + instance = openapi.NewOpenAPIGetter("", "", client) }) Context("when the server returns a successful result", func() { diff --git a/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json b/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json index 7170e656def..d55a95c8eaf 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/apiextensions-apiserver/Godeps/Godeps.json @@ -162,10 +162,6 @@ "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" }, - { - "ImportPath": "github.com/google/btree", - "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" - }, { "ImportPath": "github.com/google/gofuzz", "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" @@ -182,14 +178,6 @@ "ImportPath": "github.com/googleapis/gnostic/extensions", "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/grpc-ecosystem/go-grpc-prometheus", "Rev": "2500245aa6110c562d17020fb31a2c133d737799" @@ -254,10 +242,6 @@ "ImportPath": "github.com/pborman/uuid", "Rev": "ca53cad383cad2479bbba7f7a1a05797ec1386e4" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/pkg/errors", "Rev": "a22138067af1c4942683050411a841ade67fe1eb" diff --git a/staging/src/k8s.io/apiserver/Godeps/Godeps.json b/staging/src/k8s.io/apiserver/Godeps/Godeps.json index f4579bc859e..a526d8d83dc 100644 --- a/staging/src/k8s.io/apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/apiserver/Godeps/Godeps.json @@ -430,14 +430,6 @@ "ImportPath": "github.com/gophercloud/gophercloud/pagination", "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/grpc-ecosystem/go-grpc-prometheus", "Rev": "2500245aa6110c562d17020fb31a2c133d737799" @@ -506,10 +498,6 @@ "ImportPath": "github.com/pborman/uuid", "Rev": "ca53cad383cad2479bbba7f7a1a05797ec1386e4" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/pkg/errors", "Rev": "a22138067af1c4942683050411a841ade67fe1eb" diff --git a/staging/src/k8s.io/client-go/Godeps/Godeps.json b/staging/src/k8s.io/client-go/Godeps/Godeps.json index 328e0a168e2..c72a9d07672 100644 --- a/staging/src/k8s.io/client-go/Godeps/Godeps.json +++ b/staging/src/k8s.io/client-go/Godeps/Godeps.json @@ -154,10 +154,6 @@ "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" }, - { - "ImportPath": "github.com/google/btree", - "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" - }, { "ImportPath": "github.com/google/gofuzz", "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" @@ -202,14 +198,6 @@ "ImportPath": "github.com/gophercloud/gophercloud/pagination", "Rev": "ed590d9afe113c6107cd60717b196155e6579e78" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/hashicorp/golang-lru", "Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" @@ -246,10 +234,6 @@ "ImportPath": "github.com/mailru/easyjson/jwriter", "Rev": "d5b7844b561a7bc640052f1b935f7b800330d7e0" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/pmezard/go-difflib/difflib", "Rev": "d8ed2627bdf02c080bf22230dbb337003b7aba2d" diff --git a/staging/src/k8s.io/client-go/rest/config.go b/staging/src/k8s.io/client-go/rest/config.go index 627a9cc9672..dca7333dd00 100644 --- a/staging/src/k8s.io/client-go/rest/config.go +++ b/staging/src/k8s.io/client-go/rest/config.go @@ -71,10 +71,6 @@ type Config struct { // TODO: demonstrate an OAuth2 compatible client. BearerToken string - // CacheDir is the directory where we'll store HTTP cached responses. - // If set to empty string, no caching mechanism will be used. - CacheDir string - // Impersonate is the configuration that RESTClient will use for impersonation. Impersonate ImpersonationConfig diff --git a/staging/src/k8s.io/client-go/rest/config_test.go b/staging/src/k8s.io/client-go/rest/config_test.go index f20ed722dd6..f04135a4288 100644 --- a/staging/src/k8s.io/client-go/rest/config_test.go +++ b/staging/src/k8s.io/client-go/rest/config_test.go @@ -249,7 +249,6 @@ func TestAnonymousConfig(t *testing.T) { expected.BearerToken = "" expected.Username = "" expected.Password = "" - expected.CacheDir = "" expected.AuthProvider = nil expected.AuthConfigPersister = nil expected.TLSClientConfig.CertData = nil diff --git a/staging/src/k8s.io/client-go/rest/transport.go b/staging/src/k8s.io/client-go/rest/transport.go index 4c5b1648e96..ba43752bc93 100644 --- a/staging/src/k8s.io/client-go/rest/transport.go +++ b/staging/src/k8s.io/client-go/rest/transport.go @@ -89,7 +89,6 @@ func (c *Config) TransportConfig() (*transport.Config, error) { }, Username: c.Username, Password: c.Password, - CacheDir: c.CacheDir, BearerToken: c.BearerToken, Impersonate: transport.ImpersonationConfig{ UserName: c.Impersonate.UserName, diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go b/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go index 9646c6b7c24..a8698af2432 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/client_config.go @@ -22,7 +22,6 @@ import ( "io/ioutil" "net/url" "os" - "path/filepath" "strings" "github.com/golang/glog" @@ -32,19 +31,16 @@ import ( restclient "k8s.io/client-go/rest" clientauth "k8s.io/client-go/tools/auth" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - "k8s.io/client-go/util/homedir" ) var ( // ClusterDefaults has the same behavior as the old EnvVar and DefaultCluster fields // DEPRECATED will be replaced ClusterDefaults = clientcmdapi.Cluster{Server: getDefaultServer()} - cacheDirDefault = filepath.Join(homedir.HomeDir(), ".kube", "http-cache") // DefaultClientConfig represents the legacy behavior of this package for defaulting // DEPRECATED will be replace DefaultClientConfig = DirectClientConfig{*clientcmdapi.NewConfig(), "", &ConfigOverrides{ ClusterDefaults: ClusterDefaults, - CacheDir: cacheDirDefault, }, nil, NewDefaultClientConfigLoadingRules(), promptedCredentials{}} ) @@ -135,7 +131,6 @@ func (config *DirectClientConfig) ClientConfig() (*restclient.Config, error) { clientConfig := &restclient.Config{} clientConfig.Host = configClusterInfo.Server - clientConfig.CacheDir = config.overrides.CacheDir if len(config.overrides.Timeout) > 0 { timeout, err := ParseTimeout(config.overrides.Timeout) diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/overrides.go b/staging/src/k8s.io/client-go/tools/clientcmd/overrides.go index 25ab1ea1aa6..963ac8fae9b 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/overrides.go +++ b/staging/src/k8s.io/client-go/tools/clientcmd/overrides.go @@ -17,13 +17,11 @@ limitations under the License. package clientcmd import ( - "path/filepath" "strconv" "github.com/spf13/pflag" clientcmdapi "k8s.io/client-go/tools/clientcmd/api" - "k8s.io/client-go/util/homedir" ) // ConfigOverrides holds values that should override whatever information is pulled from the actual Config object. You can't @@ -36,7 +34,6 @@ type ConfigOverrides struct { Context clientcmdapi.Context CurrentContext string Timeout string - CacheDir string } // ConfigOverrideFlags holds the flag names to be used for binding command line flags. Notice that this structure tightly @@ -47,7 +44,6 @@ type ConfigOverrideFlags struct { ContextOverrideFlags ContextOverrideFlags CurrentContext FlagInfo Timeout FlagInfo - CacheDir FlagInfo } // AuthOverrideFlags holds the flag names to be used for binding command line flags for AuthInfo objects @@ -150,12 +146,10 @@ const ( FlagUsername = "username" FlagPassword = "password" FlagTimeout = "request-timeout" - FlagCacheDir = "cachedir" ) // RecommendedConfigOverrideFlags is a convenience method to return recommended flag names prefixed with a string of your choosing func RecommendedConfigOverrideFlags(prefix string) ConfigOverrideFlags { - defaultCacheDir := filepath.Join(homedir.HomeDir(), ".kube", "http-cache") return ConfigOverrideFlags{ AuthOverrideFlags: RecommendedAuthOverrideFlags(prefix), ClusterOverrideFlags: RecommendedClusterOverrideFlags(prefix), @@ -163,7 +157,6 @@ func RecommendedConfigOverrideFlags(prefix string) ConfigOverrideFlags { CurrentContext: FlagInfo{prefix + FlagContext, "", "", "The name of the kubeconfig context to use"}, Timeout: FlagInfo{prefix + FlagTimeout, "", "0", "The length of time to wait before giving up on a single server request. Non-zero values should contain a corresponding time unit (e.g. 1s, 2m, 3h). A value of zero means don't timeout requests."}, - CacheDir: FlagInfo{prefix + FlagCacheDir, "", defaultCacheDir, "Path to http-cache directory"}, } } @@ -205,7 +198,6 @@ func BindOverrideFlags(overrides *ConfigOverrides, flags *pflag.FlagSet, flagNam BindContextFlags(&overrides.Context, flags, flagNames.ContextOverrideFlags) flagNames.CurrentContext.BindStringFlag(flags, &overrides.CurrentContext) flagNames.Timeout.BindStringFlag(flags, &overrides.Timeout) - flagNames.CacheDir.BindStringFlag(flags, &overrides.CacheDir) } // BindAuthInfoFlags is a convenience method to bind the specified flags to their associated variables diff --git a/staging/src/k8s.io/client-go/transport/BUILD b/staging/src/k8s.io/client-go/transport/BUILD index c17299d5355..1a54f4835e9 100644 --- a/staging/src/k8s.io/client-go/transport/BUILD +++ b/staging/src/k8s.io/client-go/transport/BUILD @@ -30,9 +30,6 @@ go_library( tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/gregjones/httpcache:go_default_library", - "//vendor/github.com/gregjones/httpcache/diskcache:go_default_library", - "//vendor/github.com/peterbourgon/diskv:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", ], ) diff --git a/staging/src/k8s.io/client-go/transport/config.go b/staging/src/k8s.io/client-go/transport/config.go index e34d6e8c774..820594ba354 100644 --- a/staging/src/k8s.io/client-go/transport/config.go +++ b/staging/src/k8s.io/client-go/transport/config.go @@ -34,10 +34,6 @@ type Config struct { // Bearer token for authentication BearerToken string - // CacheDir is the directory where we'll store HTTP cached responses. - // If set to empty string, no caching mechanism will be used. - CacheDir string - // Impersonate is the config that this Config will impersonate using Impersonate ImpersonationConfig diff --git a/staging/src/k8s.io/client-go/transport/round_trippers.go b/staging/src/k8s.io/client-go/transport/round_trippers.go index 2394c42c9b0..c728b18775f 100644 --- a/staging/src/k8s.io/client-go/transport/round_trippers.go +++ b/staging/src/k8s.io/client-go/transport/round_trippers.go @@ -23,9 +23,6 @@ import ( "time" "github.com/golang/glog" - "github.com/gregjones/httpcache" - "github.com/gregjones/httpcache/diskcache" - "github.com/peterbourgon/diskv" utilnet "k8s.io/apimachinery/pkg/util/net" ) @@ -59,9 +56,6 @@ func HTTPWrappersForConfig(config *Config, rt http.RoundTripper) (http.RoundTrip len(config.Impersonate.Extra) > 0 { rt = NewImpersonatingRoundTripper(config.Impersonate, rt) } - if len(config.CacheDir) > 0 { - rt = NewCacheRoundTripper(config.CacheDir, rt) - } return rt, nil } @@ -93,17 +87,6 @@ type authProxyRoundTripper struct { rt http.RoundTripper } -// NewCacheRoundTripper creates a roundtripper that reads the ETag on -// response headers and send the If-None-Match header on subsequent -// corresponding requests. -func NewCacheRoundTripper(cacheDir string, rt http.RoundTripper) http.RoundTripper { - d := diskv.New(diskv.Options{BasePath: cacheDir}) - t := httpcache.NewTransport(diskcache.NewWithDiskv(d)) - t.Transport = rt - - return t -} - // NewAuthProxyRoundTripper provides a roundtripper which will add auth proxy fields to requests for // authentication terminating proxy cases // assuming you pull the user from the context: diff --git a/staging/src/k8s.io/client-go/transport/round_trippers_test.go b/staging/src/k8s.io/client-go/transport/round_trippers_test.go index c1e30c3f208..d5ffc6bde30 100644 --- a/staging/src/k8s.io/client-go/transport/round_trippers_test.go +++ b/staging/src/k8s.io/client-go/transport/round_trippers_test.go @@ -17,11 +17,7 @@ limitations under the License. package transport import ( - "bytes" - "io/ioutil" "net/http" - "net/url" - "os" "reflect" "strings" "testing" @@ -220,60 +216,3 @@ func TestAuthProxyRoundTripper(t *testing.T) { } } } - -func TestCacheRoundTripper(t *testing.T) { - rt := &testRoundTripper{} - cacheDir, err := ioutil.TempDir("", "cache-rt") - defer os.RemoveAll(cacheDir) - if err != nil { - t.Fatal(err) - } - cache := NewCacheRoundTripper(cacheDir, rt) - - // First call, caches the response - req := &http.Request{ - Method: http.MethodGet, - URL: &url.URL{Host: "localhost"}, - } - rt.Response = &http.Response{ - Header: http.Header{"ETag": []string{`"123456"`}}, - Body: ioutil.NopCloser(bytes.NewReader([]byte("Content"))), - StatusCode: http.StatusOK, - } - resp, err := cache.RoundTrip(req) - if err != nil { - t.Fatal(err) - } - content, err := ioutil.ReadAll(resp.Body) - if err != nil { - t.Fatal(err) - } - if string(content) != "Content" { - t.Errorf(`Expected Body to be "Content", got %q`, string(content)) - } - - // Second call, returns cached response - req = &http.Request{ - Method: http.MethodGet, - URL: &url.URL{Host: "localhost"}, - } - rt.Response = &http.Response{ - StatusCode: http.StatusNotModified, - Body: ioutil.NopCloser(bytes.NewReader([]byte("Other Content"))), - } - - resp, err = cache.RoundTrip(req) - if err != nil { - t.Fatal(err) - } - - // Read body and make sure we have the initial content - content, err = ioutil.ReadAll(resp.Body) - resp.Body.Close() - if err != nil { - t.Fatal(err) - } - if string(content) != "Content" { - t.Errorf("Invalid content read from cache %q", string(content)) - } -} diff --git a/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json b/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json index dbd7ff6b25c..46cff8e267b 100644 --- a/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json +++ b/staging/src/k8s.io/kube-aggregator/Godeps/Godeps.json @@ -170,10 +170,6 @@ "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" }, - { - "ImportPath": "github.com/google/btree", - "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" - }, { "ImportPath": "github.com/google/gofuzz", "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" @@ -190,14 +186,6 @@ "ImportPath": "github.com/googleapis/gnostic/extensions", "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/grpc-ecosystem/go-grpc-prometheus", "Rev": "2500245aa6110c562d17020fb31a2c133d737799" @@ -262,10 +250,6 @@ "ImportPath": "github.com/pborman/uuid", "Rev": "ca53cad383cad2479bbba7f7a1a05797ec1386e4" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/pkg/errors", "Rev": "a22138067af1c4942683050411a841ade67fe1eb" diff --git a/staging/src/k8s.io/kube-gen/Godeps/Godeps.json b/staging/src/k8s.io/kube-gen/Godeps/Godeps.json index acb30da54fa..3e5428dd33f 100644 --- a/staging/src/k8s.io/kube-gen/Godeps/Godeps.json +++ b/staging/src/k8s.io/kube-gen/Godeps/Godeps.json @@ -174,10 +174,6 @@ "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" }, - { - "ImportPath": "github.com/google/btree", - "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" - }, { "ImportPath": "github.com/google/gofuzz", "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" @@ -194,14 +190,6 @@ "ImportPath": "github.com/googleapis/gnostic/extensions", "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/hashicorp/golang-lru", "Rev": "a0d98a5f288019575c6d1f4bb1573fef2d1fcdc4" @@ -226,10 +214,6 @@ "ImportPath": "github.com/mailru/easyjson/jwriter", "Rev": "d5b7844b561a7bc640052f1b935f7b800330d7e0" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/spf13/pflag", "Rev": "9ff6c6923cfffbcd502984b8e0c80539a94968b7" diff --git a/staging/src/k8s.io/metrics/Godeps/Godeps.json b/staging/src/k8s.io/metrics/Godeps/Godeps.json index 06f902d2542..84161570f62 100644 --- a/staging/src/k8s.io/metrics/Godeps/Godeps.json +++ b/staging/src/k8s.io/metrics/Godeps/Godeps.json @@ -82,10 +82,6 @@ "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" }, - { - "ImportPath": "github.com/google/btree", - "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" - }, { "ImportPath": "github.com/google/gofuzz", "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" @@ -102,14 +98,6 @@ "ImportPath": "github.com/googleapis/gnostic/extensions", "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/juju/ratelimit", "Rev": "5b9ff866471762aa2ab2dced63c9fb6f53921342" @@ -126,10 +114,6 @@ "ImportPath": "github.com/mailru/easyjson/jwriter", "Rev": "d5b7844b561a7bc640052f1b935f7b800330d7e0" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/spf13/pflag", "Rev": "9ff6c6923cfffbcd502984b8e0c80539a94968b7" diff --git a/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json b/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json index da0397c8228..85d28883145 100644 --- a/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json +++ b/staging/src/k8s.io/sample-apiserver/Godeps/Godeps.json @@ -162,10 +162,6 @@ "ImportPath": "github.com/golang/protobuf/ptypes/timestamp", "Rev": "4bd1920723d7b7c925de087aa32e2187708897f7" }, - { - "ImportPath": "github.com/google/btree", - "Rev": "7d79101e329e5a3adf994758c578dab82b90c017" - }, { "ImportPath": "github.com/google/gofuzz", "Rev": "44d81051d367757e1c7c6a5a86423ece9afcf63c" @@ -182,14 +178,6 @@ "ImportPath": "github.com/googleapis/gnostic/extensions", "Rev": "0c5108395e2debce0d731cf0287ddf7242066aba" }, - { - "ImportPath": "github.com/gregjones/httpcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, - { - "ImportPath": "github.com/gregjones/httpcache/diskcache", - "Rev": "787624de3eb7bd915c329cba748687a3b22666a6" - }, { "ImportPath": "github.com/grpc-ecosystem/go-grpc-prometheus", "Rev": "2500245aa6110c562d17020fb31a2c133d737799" @@ -254,10 +242,6 @@ "ImportPath": "github.com/pborman/uuid", "Rev": "ca53cad383cad2479bbba7f7a1a05797ec1386e4" }, - { - "ImportPath": "github.com/peterbourgon/diskv", - "Rev": "5dfcb07a075adbaaa4094cddfd160b1e1c77a043" - }, { "ImportPath": "github.com/pkg/errors", "Rev": "a22138067af1c4942683050411a841ade67fe1eb" diff --git a/vendor/BUILD b/vendor/BUILD index 91e67487faa..9ca062889c5 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -230,7 +230,6 @@ filegroup( "//vendor/github.com/gorilla/context:all-srcs", "//vendor/github.com/gorilla/mux:all-srcs", "//vendor/github.com/gorilla/websocket:all-srcs", - "//vendor/github.com/gregjones/httpcache:all-srcs", "//vendor/github.com/grpc-ecosystem/go-grpc-prometheus:all-srcs", "//vendor/github.com/grpc-ecosystem/grpc-gateway/runtime:all-srcs", "//vendor/github.com/grpc-ecosystem/grpc-gateway/utilities:all-srcs", @@ -277,7 +276,6 @@ filegroup( "//vendor/github.com/pborman/uuid:all-srcs", "//vendor/github.com/pelletier/go-buffruneio:all-srcs", "//vendor/github.com/pelletier/go-toml:all-srcs", - "//vendor/github.com/peterbourgon/diskv:all-srcs", "//vendor/github.com/pkg/errors:all-srcs", "//vendor/github.com/pkg/sftp:all-srcs", "//vendor/github.com/pmezard/go-difflib/difflib:all-srcs", diff --git a/vendor/github.com/gregjones/httpcache/.travis.yml b/vendor/github.com/gregjones/httpcache/.travis.yml deleted file mode 100644 index 2bca4c599fd..00000000000 --- a/vendor/github.com/gregjones/httpcache/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -sudo: false -language: go -go: - - 1.6.x - - 1.7.x - - 1.8.x - - master -matrix: - allow_failures: - - go: master - fast_finish: true -install: - - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step). -script: - - go get -t -v ./... - - diff -u <(echo -n) <(gofmt -d .) - - go tool vet . - - go test -v -race ./... diff --git a/vendor/github.com/gregjones/httpcache/BUILD b/vendor/github.com/gregjones/httpcache/BUILD deleted file mode 100644 index a1aa088b72e..00000000000 --- a/vendor/github.com/gregjones/httpcache/BUILD +++ /dev/null @@ -1,30 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["httpcache.go"], - tags = ["automanaged"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//vendor/github.com/gregjones/httpcache/diskcache:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/vendor/github.com/gregjones/httpcache/LICENSE.txt b/vendor/github.com/gregjones/httpcache/LICENSE.txt deleted file mode 100644 index 81316beb0cb..00000000000 --- a/vendor/github.com/gregjones/httpcache/LICENSE.txt +++ /dev/null @@ -1,7 +0,0 @@ -Copyright © 2012 Greg Jones (greg.jones@gmail.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/vendor/github.com/gregjones/httpcache/README.md b/vendor/github.com/gregjones/httpcache/README.md deleted file mode 100644 index 61bd830e57c..00000000000 --- a/vendor/github.com/gregjones/httpcache/README.md +++ /dev/null @@ -1,24 +0,0 @@ -httpcache -========= - -[![Build Status](https://travis-ci.org/gregjones/httpcache.svg?branch=master)](https://travis-ci.org/gregjones/httpcache) [![GoDoc](https://godoc.org/github.com/gregjones/httpcache?status.svg)](https://godoc.org/github.com/gregjones/httpcache) - -Package httpcache provides a http.RoundTripper implementation that works as a mostly RFC-compliant cache for http responses. - -It is only suitable for use as a 'private' cache (i.e. for a web-browser or an API-client and not for a shared proxy). - -Cache Backends --------------- - -- The built-in 'memory' cache stores responses in an in-memory map. -- [`github.com/gregjones/httpcache/diskcache`](https://github.com/gregjones/httpcache/tree/master/diskcache) provides a filesystem-backed cache using the [diskv](https://github.com/peterbourgon/diskv) library. -- [`github.com/gregjones/httpcache/memcache`](https://github.com/gregjones/httpcache/tree/master/memcache) provides memcache implementations, for both App Engine and 'normal' memcache servers. -- [`sourcegraph.com/sourcegraph/s3cache`](https://sourcegraph.com/github.com/sourcegraph/s3cache) uses Amazon S3 for storage. -- [`github.com/gregjones/httpcache/leveldbcache`](https://github.com/gregjones/httpcache/tree/master/leveldbcache) provides a filesystem-backed cache using [leveldb](https://github.com/syndtr/goleveldb/leveldb). -- [`github.com/die-net/lrucache`](https://github.com/die-net/lrucache) provides an in-memory cache that will evict least-recently used entries. -- [`github.com/die-net/lrucache/twotier`](https://github.com/die-net/lrucache/tree/master/twotier) allows caches to be combined, for example to use lrucache above with a persistent disk-cache. - -License -------- - -- [MIT License](LICENSE.txt) diff --git a/vendor/github.com/gregjones/httpcache/diskcache/BUILD b/vendor/github.com/gregjones/httpcache/diskcache/BUILD deleted file mode 100644 index e7580ec7077..00000000000 --- a/vendor/github.com/gregjones/httpcache/diskcache/BUILD +++ /dev/null @@ -1,28 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["diskcache.go"], - tags = ["automanaged"], - deps = ["//vendor/github.com/peterbourgon/diskv:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/github.com/gregjones/httpcache/diskcache/diskcache.go b/vendor/github.com/gregjones/httpcache/diskcache/diskcache.go deleted file mode 100644 index 42e3129d823..00000000000 --- a/vendor/github.com/gregjones/httpcache/diskcache/diskcache.go +++ /dev/null @@ -1,61 +0,0 @@ -// Package diskcache provides an implementation of httpcache.Cache that uses the diskv package -// to supplement an in-memory map with persistent storage -// -package diskcache - -import ( - "bytes" - "crypto/md5" - "encoding/hex" - "github.com/peterbourgon/diskv" - "io" -) - -// Cache is an implementation of httpcache.Cache that supplements the in-memory map with persistent storage -type Cache struct { - d *diskv.Diskv -} - -// Get returns the response corresponding to key if present -func (c *Cache) Get(key string) (resp []byte, ok bool) { - key = keyToFilename(key) - resp, err := c.d.Read(key) - if err != nil { - return []byte{}, false - } - return resp, true -} - -// Set saves a response to the cache as key -func (c *Cache) Set(key string, resp []byte) { - key = keyToFilename(key) - c.d.WriteStream(key, bytes.NewReader(resp), true) -} - -// Delete removes the response with key from the cache -func (c *Cache) Delete(key string) { - key = keyToFilename(key) - c.d.Erase(key) -} - -func keyToFilename(key string) string { - h := md5.New() - io.WriteString(h, key) - return hex.EncodeToString(h.Sum(nil)) -} - -// New returns a new Cache that will store files in basePath -func New(basePath string) *Cache { - return &Cache{ - d: diskv.New(diskv.Options{ - BasePath: basePath, - CacheSizeMax: 100 * 1024 * 1024, // 100MB - }), - } -} - -// NewWithDiskv returns a new Cache using the provided Diskv as underlying -// storage. -func NewWithDiskv(d *diskv.Diskv) *Cache { - return &Cache{d} -} diff --git a/vendor/github.com/gregjones/httpcache/httpcache.go b/vendor/github.com/gregjones/httpcache/httpcache.go deleted file mode 100644 index 8239edc2cb2..00000000000 --- a/vendor/github.com/gregjones/httpcache/httpcache.go +++ /dev/null @@ -1,553 +0,0 @@ -// Package httpcache provides a http.RoundTripper implementation that works as a -// mostly RFC-compliant cache for http responses. -// -// It is only suitable for use as a 'private' cache (i.e. for a web-browser or an API-client -// and not for a shared proxy). -// -package httpcache - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "io/ioutil" - "net/http" - "net/http/httputil" - "strings" - "sync" - "time" -) - -const ( - stale = iota - fresh - transparent - // XFromCache is the header added to responses that are returned from the cache - XFromCache = "X-From-Cache" -) - -// A Cache interface is used by the Transport to store and retrieve responses. -type Cache interface { - // Get returns the []byte representation of a cached response and a bool - // set to true if the value isn't empty - Get(key string) (responseBytes []byte, ok bool) - // Set stores the []byte representation of a response against a key - Set(key string, responseBytes []byte) - // Delete removes the value associated with the key - Delete(key string) -} - -// cacheKey returns the cache key for req. -func cacheKey(req *http.Request) string { - return req.URL.String() -} - -// CachedResponse returns the cached http.Response for req if present, and nil -// otherwise. -func CachedResponse(c Cache, req *http.Request) (resp *http.Response, err error) { - cachedVal, ok := c.Get(cacheKey(req)) - if !ok { - return - } - - b := bytes.NewBuffer(cachedVal) - return http.ReadResponse(bufio.NewReader(b), req) -} - -// MemoryCache is an implemtation of Cache that stores responses in an in-memory map. -type MemoryCache struct { - mu sync.RWMutex - items map[string][]byte -} - -// Get returns the []byte representation of the response and true if present, false if not -func (c *MemoryCache) Get(key string) (resp []byte, ok bool) { - c.mu.RLock() - resp, ok = c.items[key] - c.mu.RUnlock() - return resp, ok -} - -// Set saves response resp to the cache with key -func (c *MemoryCache) Set(key string, resp []byte) { - c.mu.Lock() - c.items[key] = resp - c.mu.Unlock() -} - -// Delete removes key from the cache -func (c *MemoryCache) Delete(key string) { - c.mu.Lock() - delete(c.items, key) - c.mu.Unlock() -} - -// NewMemoryCache returns a new Cache that will store items in an in-memory map -func NewMemoryCache() *MemoryCache { - c := &MemoryCache{items: map[string][]byte{}} - return c -} - -// Transport is an implementation of http.RoundTripper that will return values from a cache -// where possible (avoiding a network request) and will additionally add validators (etag/if-modified-since) -// to repeated requests allowing servers to return 304 / Not Modified -type Transport struct { - // The RoundTripper interface actually used to make requests - // If nil, http.DefaultTransport is used - Transport http.RoundTripper - Cache Cache - // If true, responses returned from the cache will be given an extra header, X-From-Cache - MarkCachedResponses bool -} - -// NewTransport returns a new Transport with the -// provided Cache implementation and MarkCachedResponses set to true -func NewTransport(c Cache) *Transport { - return &Transport{Cache: c, MarkCachedResponses: true} -} - -// Client returns an *http.Client that caches responses. -func (t *Transport) Client() *http.Client { - return &http.Client{Transport: t} -} - -// varyMatches will return false unless all of the cached values for the headers listed in Vary -// match the new request -func varyMatches(cachedResp *http.Response, req *http.Request) bool { - for _, header := range headerAllCommaSepValues(cachedResp.Header, "vary") { - header = http.CanonicalHeaderKey(header) - if header != "" && req.Header.Get(header) != cachedResp.Header.Get("X-Varied-"+header) { - return false - } - } - return true -} - -// RoundTrip takes a Request and returns a Response -// -// If there is a fresh Response already in cache, then it will be returned without connecting to -// the server. -// -// If there is a stale Response, then any validators it contains will be set on the new request -// to give the server a chance to respond with NotModified. If this happens, then the cached Response -// will be returned. -func (t *Transport) RoundTrip(req *http.Request) (resp *http.Response, err error) { - cacheKey := cacheKey(req) - cacheable := (req.Method == "GET" || req.Method == "HEAD") && req.Header.Get("range") == "" - var cachedResp *http.Response - if cacheable { - cachedResp, err = CachedResponse(t.Cache, req) - } else { - // Need to invalidate an existing value - t.Cache.Delete(cacheKey) - } - - transport := t.Transport - if transport == nil { - transport = http.DefaultTransport - } - - if cacheable && cachedResp != nil && err == nil { - if t.MarkCachedResponses { - cachedResp.Header.Set(XFromCache, "1") - } - - if varyMatches(cachedResp, req) { - // Can only use cached value if the new request doesn't Vary significantly - freshness := getFreshness(cachedResp.Header, req.Header) - if freshness == fresh { - return cachedResp, nil - } - - if freshness == stale { - var req2 *http.Request - // Add validators if caller hasn't already done so - etag := cachedResp.Header.Get("etag") - if etag != "" && req.Header.Get("etag") == "" { - req2 = cloneRequest(req) - req2.Header.Set("if-none-match", etag) - } - lastModified := cachedResp.Header.Get("last-modified") - if lastModified != "" && req.Header.Get("last-modified") == "" { - if req2 == nil { - req2 = cloneRequest(req) - } - req2.Header.Set("if-modified-since", lastModified) - } - if req2 != nil { - req = req2 - } - } - } - - resp, err = transport.RoundTrip(req) - if err == nil && req.Method == "GET" && resp.StatusCode == http.StatusNotModified { - // Replace the 304 response with the one from cache, but update with some new headers - endToEndHeaders := getEndToEndHeaders(resp.Header) - for _, header := range endToEndHeaders { - cachedResp.Header[header] = resp.Header[header] - } - cachedResp.Status = fmt.Sprintf("%d %s", http.StatusOK, http.StatusText(http.StatusOK)) - cachedResp.StatusCode = http.StatusOK - - resp = cachedResp - } else if (err != nil || (cachedResp != nil && resp.StatusCode >= 500)) && - req.Method == "GET" && canStaleOnError(cachedResp.Header, req.Header) { - // In case of transport failure and stale-if-error activated, returns cached content - // when available - cachedResp.Status = fmt.Sprintf("%d %s", http.StatusOK, http.StatusText(http.StatusOK)) - cachedResp.StatusCode = http.StatusOK - return cachedResp, nil - } else { - if err != nil || resp.StatusCode != http.StatusOK { - t.Cache.Delete(cacheKey) - } - if err != nil { - return nil, err - } - } - } else { - reqCacheControl := parseCacheControl(req.Header) - if _, ok := reqCacheControl["only-if-cached"]; ok { - resp = newGatewayTimeoutResponse(req) - } else { - resp, err = transport.RoundTrip(req) - if err != nil { - return nil, err - } - } - } - - if cacheable && canStore(parseCacheControl(req.Header), parseCacheControl(resp.Header)) { - for _, varyKey := range headerAllCommaSepValues(resp.Header, "vary") { - varyKey = http.CanonicalHeaderKey(varyKey) - fakeHeader := "X-Varied-" + varyKey - reqValue := req.Header.Get(varyKey) - if reqValue != "" { - resp.Header.Set(fakeHeader, reqValue) - } - } - switch req.Method { - case "GET": - // Delay caching until EOF is reached. - resp.Body = &cachingReadCloser{ - R: resp.Body, - OnEOF: func(r io.Reader) { - resp := *resp - resp.Body = ioutil.NopCloser(r) - respBytes, err := httputil.DumpResponse(&resp, true) - if err == nil { - t.Cache.Set(cacheKey, respBytes) - } - }, - } - default: - respBytes, err := httputil.DumpResponse(resp, true) - if err == nil { - t.Cache.Set(cacheKey, respBytes) - } - } - } else { - t.Cache.Delete(cacheKey) - } - return resp, nil -} - -// ErrNoDateHeader indicates that the HTTP headers contained no Date header. -var ErrNoDateHeader = errors.New("no Date header") - -// Date parses and returns the value of the Date header. -func Date(respHeaders http.Header) (date time.Time, err error) { - dateHeader := respHeaders.Get("date") - if dateHeader == "" { - err = ErrNoDateHeader - return - } - - return time.Parse(time.RFC1123, dateHeader) -} - -type realClock struct{} - -func (c *realClock) since(d time.Time) time.Duration { - return time.Since(d) -} - -type timer interface { - since(d time.Time) time.Duration -} - -var clock timer = &realClock{} - -// getFreshness will return one of fresh/stale/transparent based on the cache-control -// values of the request and the response -// -// fresh indicates the response can be returned -// stale indicates that the response needs validating before it is returned -// transparent indicates the response should not be used to fulfil the request -// -// Because this is only a private cache, 'public' and 'private' in cache-control aren't -// signficant. Similarly, smax-age isn't used. -func getFreshness(respHeaders, reqHeaders http.Header) (freshness int) { - respCacheControl := parseCacheControl(respHeaders) - reqCacheControl := parseCacheControl(reqHeaders) - if _, ok := reqCacheControl["no-cache"]; ok { - return transparent - } - if _, ok := respCacheControl["no-cache"]; ok { - return stale - } - if _, ok := reqCacheControl["only-if-cached"]; ok { - return fresh - } - - date, err := Date(respHeaders) - if err != nil { - return stale - } - currentAge := clock.since(date) - - var lifetime time.Duration - var zeroDuration time.Duration - - // If a response includes both an Expires header and a max-age directive, - // the max-age directive overrides the Expires header, even if the Expires header is more restrictive. - if maxAge, ok := respCacheControl["max-age"]; ok { - lifetime, err = time.ParseDuration(maxAge + "s") - if err != nil { - lifetime = zeroDuration - } - } else { - expiresHeader := respHeaders.Get("Expires") - if expiresHeader != "" { - expires, err := time.Parse(time.RFC1123, expiresHeader) - if err != nil { - lifetime = zeroDuration - } else { - lifetime = expires.Sub(date) - } - } - } - - if maxAge, ok := reqCacheControl["max-age"]; ok { - // the client is willing to accept a response whose age is no greater than the specified time in seconds - lifetime, err = time.ParseDuration(maxAge + "s") - if err != nil { - lifetime = zeroDuration - } - } - if minfresh, ok := reqCacheControl["min-fresh"]; ok { - // the client wants a response that will still be fresh for at least the specified number of seconds. - minfreshDuration, err := time.ParseDuration(minfresh + "s") - if err == nil { - currentAge = time.Duration(currentAge + minfreshDuration) - } - } - - if maxstale, ok := reqCacheControl["max-stale"]; ok { - // Indicates that the client is willing to accept a response that has exceeded its expiration time. - // If max-stale is assigned a value, then the client is willing to accept a response that has exceeded - // its expiration time by no more than the specified number of seconds. - // If no value is assigned to max-stale, then the client is willing to accept a stale response of any age. - // - // Responses served only because of a max-stale value are supposed to have a Warning header added to them, - // but that seems like a hassle, and is it actually useful? If so, then there needs to be a different - // return-value available here. - if maxstale == "" { - return fresh - } - maxstaleDuration, err := time.ParseDuration(maxstale + "s") - if err == nil { - currentAge = time.Duration(currentAge - maxstaleDuration) - } - } - - if lifetime > currentAge { - return fresh - } - - return stale -} - -// Returns true if either the request or the response includes the stale-if-error -// cache control extension: https://tools.ietf.org/html/rfc5861 -func canStaleOnError(respHeaders, reqHeaders http.Header) bool { - respCacheControl := parseCacheControl(respHeaders) - reqCacheControl := parseCacheControl(reqHeaders) - - var err error - lifetime := time.Duration(-1) - - if staleMaxAge, ok := respCacheControl["stale-if-error"]; ok { - if staleMaxAge != "" { - lifetime, err = time.ParseDuration(staleMaxAge + "s") - if err != nil { - return false - } - } else { - return true - } - } - if staleMaxAge, ok := reqCacheControl["stale-if-error"]; ok { - if staleMaxAge != "" { - lifetime, err = time.ParseDuration(staleMaxAge + "s") - if err != nil { - return false - } - } else { - return true - } - } - - if lifetime >= 0 { - date, err := Date(respHeaders) - if err != nil { - return false - } - currentAge := clock.since(date) - if lifetime > currentAge { - return true - } - } - - return false -} - -func getEndToEndHeaders(respHeaders http.Header) []string { - // These headers are always hop-by-hop - hopByHopHeaders := map[string]struct{}{ - "Connection": struct{}{}, - "Keep-Alive": struct{}{}, - "Proxy-Authenticate": struct{}{}, - "Proxy-Authorization": struct{}{}, - "Te": struct{}{}, - "Trailers": struct{}{}, - "Transfer-Encoding": struct{}{}, - "Upgrade": struct{}{}, - } - - for _, extra := range strings.Split(respHeaders.Get("connection"), ",") { - // any header listed in connection, if present, is also considered hop-by-hop - if strings.Trim(extra, " ") != "" { - hopByHopHeaders[http.CanonicalHeaderKey(extra)] = struct{}{} - } - } - endToEndHeaders := []string{} - for respHeader, _ := range respHeaders { - if _, ok := hopByHopHeaders[respHeader]; !ok { - endToEndHeaders = append(endToEndHeaders, respHeader) - } - } - return endToEndHeaders -} - -func canStore(reqCacheControl, respCacheControl cacheControl) (canStore bool) { - if _, ok := respCacheControl["no-store"]; ok { - return false - } - if _, ok := reqCacheControl["no-store"]; ok { - return false - } - return true -} - -func newGatewayTimeoutResponse(req *http.Request) *http.Response { - var braw bytes.Buffer - braw.WriteString("HTTP/1.1 504 Gateway Timeout\r\n\r\n") - resp, err := http.ReadResponse(bufio.NewReader(&braw), req) - if err != nil { - panic(err) - } - return resp -} - -// cloneRequest returns a clone of the provided *http.Request. -// The clone is a shallow copy of the struct and its Header map. -// (This function copyright goauth2 authors: https://code.google.com/p/goauth2) -func cloneRequest(r *http.Request) *http.Request { - // shallow copy of the struct - r2 := new(http.Request) - *r2 = *r - // deep copy of the Header - r2.Header = make(http.Header) - for k, s := range r.Header { - r2.Header[k] = s - } - return r2 -} - -type cacheControl map[string]string - -func parseCacheControl(headers http.Header) cacheControl { - cc := cacheControl{} - ccHeader := headers.Get("Cache-Control") - for _, part := range strings.Split(ccHeader, ",") { - part = strings.Trim(part, " ") - if part == "" { - continue - } - if strings.ContainsRune(part, '=') { - keyval := strings.Split(part, "=") - cc[strings.Trim(keyval[0], " ")] = strings.Trim(keyval[1], ",") - } else { - cc[part] = "" - } - } - return cc -} - -// headerAllCommaSepValues returns all comma-separated values (each -// with whitespace trimmed) for header name in headers. According to -// Section 4.2 of the HTTP/1.1 spec -// (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2), -// values from multiple occurrences of a header should be concatenated, if -// the header's value is a comma-separated list. -func headerAllCommaSepValues(headers http.Header, name string) []string { - var vals []string - for _, val := range headers[http.CanonicalHeaderKey(name)] { - fields := strings.Split(val, ",") - for i, f := range fields { - fields[i] = strings.TrimSpace(f) - } - vals = append(vals, fields...) - } - return vals -} - -// cachingReadCloser is a wrapper around ReadCloser R that calls OnEOF -// handler with a full copy of the content read from R when EOF is -// reached. -type cachingReadCloser struct { - // Underlying ReadCloser. - R io.ReadCloser - // OnEOF is called with a copy of the content of R when EOF is reached. - OnEOF func(io.Reader) - - buf bytes.Buffer // buf stores a copy of the content of R. -} - -// Read reads the next len(p) bytes from R or until R is drained. The -// return value n is the number of bytes read. If R has no data to -// return, err is io.EOF and OnEOF is called with a full copy of what -// has been read so far. -func (r *cachingReadCloser) Read(p []byte) (n int, err error) { - n, err = r.R.Read(p) - r.buf.Write(p[:n]) - if err == io.EOF { - r.OnEOF(bytes.NewReader(r.buf.Bytes())) - } - return n, err -} - -func (r *cachingReadCloser) Close() error { - return r.R.Close() -} - -// NewMemoryCacheTransport returns a new Transport using the in-memory cache implementation -func NewMemoryCacheTransport() *Transport { - c := NewMemoryCache() - t := NewTransport(c) - return t -} diff --git a/vendor/github.com/peterbourgon/diskv/BUILD b/vendor/github.com/peterbourgon/diskv/BUILD deleted file mode 100644 index fcda66010b7..00000000000 --- a/vendor/github.com/peterbourgon/diskv/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -licenses(["notice"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "compression.go", - "diskv.go", - "index.go", - ], - tags = ["automanaged"], - deps = ["//vendor/github.com/google/btree:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/vendor/github.com/peterbourgon/diskv/LICENSE b/vendor/github.com/peterbourgon/diskv/LICENSE deleted file mode 100644 index 41ce7f16e1d..00000000000 --- a/vendor/github.com/peterbourgon/diskv/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011-2012 Peter Bourgon - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/vendor/github.com/peterbourgon/diskv/README.md b/vendor/github.com/peterbourgon/diskv/README.md deleted file mode 100644 index 3474739edc7..00000000000 --- a/vendor/github.com/peterbourgon/diskv/README.md +++ /dev/null @@ -1,141 +0,0 @@ -# What is diskv? - -Diskv (disk-vee) is a simple, persistent key-value store written in the Go -language. It starts with an incredibly simple API for storing arbitrary data on -a filesystem by key, and builds several layers of performance-enhancing -abstraction on top. The end result is a conceptually simple, but highly -performant, disk-backed storage system. - -[![Build Status][1]][2] - -[1]: https://drone.io/github.com/peterbourgon/diskv/status.png -[2]: https://drone.io/github.com/peterbourgon/diskv/latest - - -# Installing - -Install [Go 1][3], either [from source][4] or [with a prepackaged binary][5]. -Then, - -```bash -$ go get github.com/peterbourgon/diskv -``` - -[3]: http://golang.org -[4]: http://golang.org/doc/install/source -[5]: http://golang.org/doc/install - - -# Usage - -```go -package main - -import ( - "fmt" - "github.com/peterbourgon/diskv" -) - -func main() { - // Simplest transform function: put all the data files into the base dir. - flatTransform := func(s string) []string { return []string{} } - - // Initialize a new diskv store, rooted at "my-data-dir", with a 1MB cache. - d := diskv.New(diskv.Options{ - BasePath: "my-data-dir", - Transform: flatTransform, - CacheSizeMax: 1024 * 1024, - }) - - // Write three bytes to the key "alpha". - key := "alpha" - d.Write(key, []byte{'1', '2', '3'}) - - // Read the value back out of the store. - value, _ := d.Read(key) - fmt.Printf("%v\n", value) - - // Erase the key+value from the store (and the disk). - d.Erase(key) -} -``` - -More complex examples can be found in the "examples" subdirectory. - - -# Theory - -## Basic idea - -At its core, diskv is a map of a key (`string`) to arbitrary data (`[]byte`). -The data is written to a single file on disk, with the same name as the key. -The key determines where that file will be stored, via a user-provided -`TransformFunc`, which takes a key and returns a slice (`[]string`) -corresponding to a path list where the key file will be stored. The simplest -TransformFunc, - -```go -func SimpleTransform (key string) []string { - return []string{} -} -``` - -will place all keys in the same, base directory. The design is inspired by -[Redis diskstore][6]; a TransformFunc which emulates the default diskstore -behavior is available in the content-addressable-storage example. - -[6]: http://groups.google.com/group/redis-db/browse_thread/thread/d444bc786689bde9?pli=1 - -**Note** that your TransformFunc should ensure that one valid key doesn't -transform to a subset of another valid key. That is, it shouldn't be possible -to construct valid keys that resolve to directory names. As a concrete example, -if your TransformFunc splits on every 3 characters, then - -```go -d.Write("abcabc", val) // OK: written to /abc/abc/abcabc -d.Write("abc", val) // Error: attempted write to /abc/abc, but it's a directory -``` - -This will be addressed in an upcoming version of diskv. - -Probably the most important design principle behind diskv is that your data is -always flatly available on the disk. diskv will never do anything that would -prevent you from accessing, copying, backing up, or otherwise interacting with -your data via common UNIX commandline tools. - -## Adding a cache - -An in-memory caching layer is provided by combining the BasicStore -functionality with a simple map structure, and keeping it up-to-date as -appropriate. Since the map structure in Go is not threadsafe, it's combined -with a RWMutex to provide safe concurrent access. - -## Adding order - -diskv is a key-value store and therefore inherently unordered. An ordering -system can be injected into the store by passing something which satisfies the -diskv.Index interface. (A default implementation, using Google's -[btree][7] package, is provided.) Basically, diskv keeps an ordered (by a -user-provided Less function) index of the keys, which can be queried. - -[7]: https://github.com/google/btree - -## Adding compression - -Something which implements the diskv.Compression interface may be passed -during store creation, so that all Writes and Reads are filtered through -a compression/decompression pipeline. Several default implementations, -using stdlib compression algorithms, are provided. Note that data is cached -compressed; the cost of decompression is borne with each Read. - -## Streaming - -diskv also now provides ReadStream and WriteStream methods, to allow very large -data to be handled efficiently. - - -# Future plans - - * Needs plenty of robust testing: huge datasets, etc... - * More thorough benchmarking - * Your suggestions for use-cases I haven't thought of diff --git a/vendor/github.com/peterbourgon/diskv/compression.go b/vendor/github.com/peterbourgon/diskv/compression.go deleted file mode 100644 index 5192b027330..00000000000 --- a/vendor/github.com/peterbourgon/diskv/compression.go +++ /dev/null @@ -1,64 +0,0 @@ -package diskv - -import ( - "compress/flate" - "compress/gzip" - "compress/zlib" - "io" -) - -// Compression is an interface that Diskv uses to implement compression of -// data. Writer takes a destination io.Writer and returns a WriteCloser that -// compresses all data written through it. Reader takes a source io.Reader and -// returns a ReadCloser that decompresses all data read through it. You may -// define these methods on your own type, or use one of the NewCompression -// helpers. -type Compression interface { - Writer(dst io.Writer) (io.WriteCloser, error) - Reader(src io.Reader) (io.ReadCloser, error) -} - -// NewGzipCompression returns a Gzip-based Compression. -func NewGzipCompression() Compression { - return NewGzipCompressionLevel(flate.DefaultCompression) -} - -// NewGzipCompressionLevel returns a Gzip-based Compression with the given level. -func NewGzipCompressionLevel(level int) Compression { - return &genericCompression{ - wf: func(w io.Writer) (io.WriteCloser, error) { return gzip.NewWriterLevel(w, level) }, - rf: func(r io.Reader) (io.ReadCloser, error) { return gzip.NewReader(r) }, - } -} - -// NewZlibCompression returns a Zlib-based Compression. -func NewZlibCompression() Compression { - return NewZlibCompressionLevel(flate.DefaultCompression) -} - -// NewZlibCompressionLevel returns a Zlib-based Compression with the given level. -func NewZlibCompressionLevel(level int) Compression { - return NewZlibCompressionLevelDict(level, nil) -} - -// NewZlibCompressionLevelDict returns a Zlib-based Compression with the given -// level, based on the given dictionary. -func NewZlibCompressionLevelDict(level int, dict []byte) Compression { - return &genericCompression{ - func(w io.Writer) (io.WriteCloser, error) { return zlib.NewWriterLevelDict(w, level, dict) }, - func(r io.Reader) (io.ReadCloser, error) { return zlib.NewReaderDict(r, dict) }, - } -} - -type genericCompression struct { - wf func(w io.Writer) (io.WriteCloser, error) - rf func(r io.Reader) (io.ReadCloser, error) -} - -func (g *genericCompression) Writer(dst io.Writer) (io.WriteCloser, error) { - return g.wf(dst) -} - -func (g *genericCompression) Reader(src io.Reader) (io.ReadCloser, error) { - return g.rf(src) -} diff --git a/vendor/github.com/peterbourgon/diskv/diskv.go b/vendor/github.com/peterbourgon/diskv/diskv.go deleted file mode 100644 index ea05842cbd1..00000000000 --- a/vendor/github.com/peterbourgon/diskv/diskv.go +++ /dev/null @@ -1,578 +0,0 @@ -// Diskv (disk-vee) is a simple, persistent, key-value store. -// It stores all data flatly on the filesystem. - -package diskv - -import ( - "bytes" - "errors" - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - "strings" - "sync" - "syscall" -) - -const ( - defaultBasePath = "diskv" - defaultFilePerm os.FileMode = 0666 - defaultPathPerm os.FileMode = 0777 -) - -var ( - defaultTransform = func(s string) []string { return []string{} } - errCanceled = errors.New("canceled") - errEmptyKey = errors.New("empty key") - errBadKey = errors.New("bad key") - errImportDirectory = errors.New("can't import a directory") -) - -// TransformFunction transforms a key into a slice of strings, with each -// element in the slice representing a directory in the file path where the -// key's entry will eventually be stored. -// -// For example, if TransformFunc transforms "abcdef" to ["ab", "cde", "f"], -// the final location of the data file will be /ab/cde/f/abcdef -type TransformFunction func(s string) []string - -// Options define a set of properties that dictate Diskv behavior. -// All values are optional. -type Options struct { - BasePath string - Transform TransformFunction - CacheSizeMax uint64 // bytes - PathPerm os.FileMode - FilePerm os.FileMode - - Index Index - IndexLess LessFunction - - Compression Compression -} - -// Diskv implements the Diskv interface. You shouldn't construct Diskv -// structures directly; instead, use the New constructor. -type Diskv struct { - Options - mu sync.RWMutex - cache map[string][]byte - cacheSize uint64 -} - -// New returns an initialized Diskv structure, ready to use. -// If the path identified by baseDir already contains data, -// it will be accessible, but not yet cached. -func New(o Options) *Diskv { - if o.BasePath == "" { - o.BasePath = defaultBasePath - } - if o.Transform == nil { - o.Transform = defaultTransform - } - if o.PathPerm == 0 { - o.PathPerm = defaultPathPerm - } - if o.FilePerm == 0 { - o.FilePerm = defaultFilePerm - } - - d := &Diskv{ - Options: o, - cache: map[string][]byte{}, - cacheSize: 0, - } - - if d.Index != nil && d.IndexLess != nil { - d.Index.Initialize(d.IndexLess, d.Keys(nil)) - } - - return d -} - -// Write synchronously writes the key-value pair to disk, making it immediately -// available for reads. Write relies on the filesystem to perform an eventual -// sync to physical media. If you need stronger guarantees, see WriteStream. -func (d *Diskv) Write(key string, val []byte) error { - return d.WriteStream(key, bytes.NewBuffer(val), false) -} - -// WriteStream writes the data represented by the io.Reader to the disk, under -// the provided key. If sync is true, WriteStream performs an explicit sync on -// the file as soon as it's written. -// -// bytes.Buffer provides io.Reader semantics for basic data types. -func (d *Diskv) WriteStream(key string, r io.Reader, sync bool) error { - if len(key) <= 0 { - return errEmptyKey - } - - d.mu.Lock() - defer d.mu.Unlock() - - return d.writeStreamWithLock(key, r, sync) -} - -// writeStream does no input validation checking. -// TODO: use atomic FS ops. -func (d *Diskv) writeStreamWithLock(key string, r io.Reader, sync bool) error { - if err := d.ensurePathWithLock(key); err != nil { - return fmt.Errorf("ensure path: %s", err) - } - - mode := os.O_WRONLY | os.O_CREATE | os.O_TRUNC // overwrite if exists - f, err := os.OpenFile(d.completeFilename(key), mode, d.FilePerm) - if err != nil { - return fmt.Errorf("open file: %s", err) - } - - wc := io.WriteCloser(&nopWriteCloser{f}) - if d.Compression != nil { - wc, err = d.Compression.Writer(f) - if err != nil { - f.Close() // error deliberately ignored - return fmt.Errorf("compression writer: %s", err) - } - } - - if _, err := io.Copy(wc, r); err != nil { - f.Close() // error deliberately ignored - return fmt.Errorf("i/o copy: %s", err) - } - - if err := wc.Close(); err != nil { - f.Close() // error deliberately ignored - return fmt.Errorf("compression close: %s", err) - } - - if sync { - if err := f.Sync(); err != nil { - f.Close() // error deliberately ignored - return fmt.Errorf("file sync: %s", err) - } - } - - if err := f.Close(); err != nil { - return fmt.Errorf("file close: %s", err) - } - - if d.Index != nil { - d.Index.Insert(key) - } - - d.bustCacheWithLock(key) // cache only on read - - return nil -} - -// Import imports the source file into diskv under the destination key. If the -// destination key already exists, it's overwritten. If move is true, the -// source file is removed after a successful import. -func (d *Diskv) Import(srcFilename, dstKey string, move bool) (err error) { - if dstKey == "" { - return errEmptyKey - } - - if fi, err := os.Stat(srcFilename); err != nil { - return err - } else if fi.IsDir() { - return errImportDirectory - } - - d.mu.Lock() - defer d.mu.Unlock() - - if err := d.ensurePathWithLock(dstKey); err != nil { - return fmt.Errorf("ensure path: %s", err) - } - - if move { - if err := syscall.Rename(srcFilename, d.completeFilename(dstKey)); err == nil { - d.bustCacheWithLock(dstKey) - return nil - } else if err != syscall.EXDEV { - // If it failed due to being on a different device, fall back to copying - return err - } - } - - f, err := os.Open(srcFilename) - if err != nil { - return err - } - defer f.Close() - err = d.writeStreamWithLock(dstKey, f, false) - if err == nil && move { - err = os.Remove(srcFilename) - } - return err -} - -// Read reads the key and returns the value. -// If the key is available in the cache, Read won't touch the disk. -// If the key is not in the cache, Read will have the side-effect of -// lazily caching the value. -func (d *Diskv) Read(key string) ([]byte, error) { - rc, err := d.ReadStream(key, false) - if err != nil { - return []byte{}, err - } - defer rc.Close() - return ioutil.ReadAll(rc) -} - -// ReadStream reads the key and returns the value (data) as an io.ReadCloser. -// If the value is cached from a previous read, and direct is false, -// ReadStream will use the cached value. Otherwise, it will return a handle to -// the file on disk, and cache the data on read. -// -// If direct is true, ReadStream will lazily delete any cached value for the -// key, and return a direct handle to the file on disk. -// -// If compression is enabled, ReadStream taps into the io.Reader stream prior -// to decompression, and caches the compressed data. -func (d *Diskv) ReadStream(key string, direct bool) (io.ReadCloser, error) { - d.mu.RLock() - defer d.mu.RUnlock() - - if val, ok := d.cache[key]; ok { - if !direct { - buf := bytes.NewBuffer(val) - if d.Compression != nil { - return d.Compression.Reader(buf) - } - return ioutil.NopCloser(buf), nil - } - - go func() { - d.mu.Lock() - defer d.mu.Unlock() - d.uncacheWithLock(key, uint64(len(val))) - }() - } - - return d.readWithRLock(key) -} - -// read ignores the cache, and returns an io.ReadCloser representing the -// decompressed data for the given key, streamed from the disk. Clients should -// acquire a read lock on the Diskv and check the cache themselves before -// calling read. -func (d *Diskv) readWithRLock(key string) (io.ReadCloser, error) { - filename := d.completeFilename(key) - - fi, err := os.Stat(filename) - if err != nil { - return nil, err - } - if fi.IsDir() { - return nil, os.ErrNotExist - } - - f, err := os.Open(filename) - if err != nil { - return nil, err - } - - var r io.Reader - if d.CacheSizeMax > 0 { - r = newSiphon(f, d, key) - } else { - r = &closingReader{f} - } - - var rc = io.ReadCloser(ioutil.NopCloser(r)) - if d.Compression != nil { - rc, err = d.Compression.Reader(r) - if err != nil { - return nil, err - } - } - - return rc, nil -} - -// closingReader provides a Reader that automatically closes the -// embedded ReadCloser when it reaches EOF -type closingReader struct { - rc io.ReadCloser -} - -func (cr closingReader) Read(p []byte) (int, error) { - n, err := cr.rc.Read(p) - if err == io.EOF { - if closeErr := cr.rc.Close(); closeErr != nil { - return n, closeErr // close must succeed for Read to succeed - } - } - return n, err -} - -// siphon is like a TeeReader: it copies all data read through it to an -// internal buffer, and moves that buffer to the cache at EOF. -type siphon struct { - f *os.File - d *Diskv - key string - buf *bytes.Buffer -} - -// newSiphon constructs a siphoning reader that represents the passed file. -// When a successful series of reads ends in an EOF, the siphon will write -// the buffered data to Diskv's cache under the given key. -func newSiphon(f *os.File, d *Diskv, key string) io.Reader { - return &siphon{ - f: f, - d: d, - key: key, - buf: &bytes.Buffer{}, - } -} - -// Read implements the io.Reader interface for siphon. -func (s *siphon) Read(p []byte) (int, error) { - n, err := s.f.Read(p) - - if err == nil { - return s.buf.Write(p[0:n]) // Write must succeed for Read to succeed - } - - if err == io.EOF { - s.d.cacheWithoutLock(s.key, s.buf.Bytes()) // cache may fail - if closeErr := s.f.Close(); closeErr != nil { - return n, closeErr // close must succeed for Read to succeed - } - return n, err - } - - return n, err -} - -// Erase synchronously erases the given key from the disk and the cache. -func (d *Diskv) Erase(key string) error { - d.mu.Lock() - defer d.mu.Unlock() - - d.bustCacheWithLock(key) - - // erase from index - if d.Index != nil { - d.Index.Delete(key) - } - - // erase from disk - filename := d.completeFilename(key) - if s, err := os.Stat(filename); err == nil { - if s.IsDir() { - return errBadKey - } - if err = os.Remove(filename); err != nil { - return err - } - } else { - // Return err as-is so caller can do os.IsNotExist(err). - return err - } - - // clean up and return - d.pruneDirsWithLock(key) - return nil -} - -// EraseAll will delete all of the data from the store, both in the cache and on -// the disk. Note that EraseAll doesn't distinguish diskv-related data from non- -// diskv-related data. Care should be taken to always specify a diskv base -// directory that is exclusively for diskv data. -func (d *Diskv) EraseAll() error { - d.mu.Lock() - defer d.mu.Unlock() - d.cache = make(map[string][]byte) - d.cacheSize = 0 - return os.RemoveAll(d.BasePath) -} - -// Has returns true if the given key exists. -func (d *Diskv) Has(key string) bool { - d.mu.Lock() - defer d.mu.Unlock() - - if _, ok := d.cache[key]; ok { - return true - } - - filename := d.completeFilename(key) - s, err := os.Stat(filename) - if err != nil { - return false - } - if s.IsDir() { - return false - } - - return true -} - -// Keys returns a channel that will yield every key accessible by the store, -// in undefined order. If a cancel channel is provided, closing it will -// terminate and close the keys channel. -func (d *Diskv) Keys(cancel <-chan struct{}) <-chan string { - return d.KeysPrefix("", cancel) -} - -// KeysPrefix returns a channel that will yield every key accessible by the -// store with the given prefix, in undefined order. If a cancel channel is -// provided, closing it will terminate and close the keys channel. If the -// provided prefix is the empty string, all keys will be yielded. -func (d *Diskv) KeysPrefix(prefix string, cancel <-chan struct{}) <-chan string { - var prepath string - if prefix == "" { - prepath = d.BasePath - } else { - prepath = d.pathFor(prefix) - } - c := make(chan string) - go func() { - filepath.Walk(prepath, walker(c, prefix, cancel)) - close(c) - }() - return c -} - -// walker returns a function which satisfies the filepath.WalkFunc interface. -// It sends every non-directory file entry down the channel c. -func walker(c chan<- string, prefix string, cancel <-chan struct{}) filepath.WalkFunc { - return func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - - if info.IsDir() || !strings.HasPrefix(info.Name(), prefix) { - return nil // "pass" - } - - select { - case c <- info.Name(): - case <-cancel: - return errCanceled - } - - return nil - } -} - -// pathFor returns the absolute path for location on the filesystem where the -// data for the given key will be stored. -func (d *Diskv) pathFor(key string) string { - return filepath.Join(d.BasePath, filepath.Join(d.Transform(key)...)) -} - -// ensurePathWithLock is a helper function that generates all necessary -// directories on the filesystem for the given key. -func (d *Diskv) ensurePathWithLock(key string) error { - return os.MkdirAll(d.pathFor(key), d.PathPerm) -} - -// completeFilename returns the absolute path to the file for the given key. -func (d *Diskv) completeFilename(key string) string { - return filepath.Join(d.pathFor(key), key) -} - -// cacheWithLock attempts to cache the given key-value pair in the store's -// cache. It can fail if the value is larger than the cache's maximum size. -func (d *Diskv) cacheWithLock(key string, val []byte) error { - valueSize := uint64(len(val)) - if err := d.ensureCacheSpaceWithLock(valueSize); err != nil { - return fmt.Errorf("%s; not caching", err) - } - - // be very strict about memory guarantees - if (d.cacheSize + valueSize) > d.CacheSizeMax { - panic(fmt.Sprintf("failed to make room for value (%d/%d)", valueSize, d.CacheSizeMax)) - } - - d.cache[key] = val - d.cacheSize += valueSize - return nil -} - -// cacheWithoutLock acquires the store's (write) mutex and calls cacheWithLock. -func (d *Diskv) cacheWithoutLock(key string, val []byte) error { - d.mu.Lock() - defer d.mu.Unlock() - return d.cacheWithLock(key, val) -} - -func (d *Diskv) bustCacheWithLock(key string) { - if val, ok := d.cache[key]; ok { - d.uncacheWithLock(key, uint64(len(val))) - } -} - -func (d *Diskv) uncacheWithLock(key string, sz uint64) { - d.cacheSize -= sz - delete(d.cache, key) -} - -// pruneDirsWithLock deletes empty directories in the path walk leading to the -// key k. Typically this function is called after an Erase is made. -func (d *Diskv) pruneDirsWithLock(key string) error { - pathlist := d.Transform(key) - for i := range pathlist { - dir := filepath.Join(d.BasePath, filepath.Join(pathlist[:len(pathlist)-i]...)) - - // thanks to Steven Blenkinsop for this snippet - switch fi, err := os.Stat(dir); true { - case err != nil: - return err - case !fi.IsDir(): - panic(fmt.Sprintf("corrupt dirstate at %s", dir)) - } - - nlinks, err := filepath.Glob(filepath.Join(dir, "*")) - if err != nil { - return err - } else if len(nlinks) > 0 { - return nil // has subdirs -- do not prune - } - if err = os.Remove(dir); err != nil { - return err - } - } - - return nil -} - -// ensureCacheSpaceWithLock deletes entries from the cache in arbitrary order -// until the cache has at least valueSize bytes available. -func (d *Diskv) ensureCacheSpaceWithLock(valueSize uint64) error { - if valueSize > d.CacheSizeMax { - return fmt.Errorf("value size (%d bytes) too large for cache (%d bytes)", valueSize, d.CacheSizeMax) - } - - safe := func() bool { return (d.cacheSize + valueSize) <= d.CacheSizeMax } - - for key, val := range d.cache { - if safe() { - break - } - - d.uncacheWithLock(key, uint64(len(val))) - } - - if !safe() { - panic(fmt.Sprintf("%d bytes still won't fit in the cache! (max %d bytes)", valueSize, d.CacheSizeMax)) - } - - return nil -} - -// nopWriteCloser wraps an io.Writer and provides a no-op Close method to -// satisfy the io.WriteCloser interface. -type nopWriteCloser struct { - io.Writer -} - -func (wc *nopWriteCloser) Write(p []byte) (int, error) { return wc.Writer.Write(p) } -func (wc *nopWriteCloser) Close() error { return nil } diff --git a/vendor/github.com/peterbourgon/diskv/index.go b/vendor/github.com/peterbourgon/diskv/index.go deleted file mode 100644 index 96fee5152b1..00000000000 --- a/vendor/github.com/peterbourgon/diskv/index.go +++ /dev/null @@ -1,115 +0,0 @@ -package diskv - -import ( - "sync" - - "github.com/google/btree" -) - -// Index is a generic interface for things that can -// provide an ordered list of keys. -type Index interface { - Initialize(less LessFunction, keys <-chan string) - Insert(key string) - Delete(key string) - Keys(from string, n int) []string -} - -// LessFunction is used to initialize an Index of keys in a specific order. -type LessFunction func(string, string) bool - -// btreeString is a custom data type that satisfies the BTree Less interface, -// making the strings it wraps sortable by the BTree package. -type btreeString struct { - s string - l LessFunction -} - -// Less satisfies the BTree.Less interface using the btreeString's LessFunction. -func (s btreeString) Less(i btree.Item) bool { - return s.l(s.s, i.(btreeString).s) -} - -// BTreeIndex is an implementation of the Index interface using google/btree. -type BTreeIndex struct { - sync.RWMutex - LessFunction - *btree.BTree -} - -// Initialize populates the BTree tree with data from the keys channel, -// according to the passed less function. It's destructive to the BTreeIndex. -func (i *BTreeIndex) Initialize(less LessFunction, keys <-chan string) { - i.Lock() - defer i.Unlock() - i.LessFunction = less - i.BTree = rebuild(less, keys) -} - -// Insert inserts the given key (only) into the BTree tree. -func (i *BTreeIndex) Insert(key string) { - i.Lock() - defer i.Unlock() - if i.BTree == nil || i.LessFunction == nil { - panic("uninitialized index") - } - i.BTree.ReplaceOrInsert(btreeString{s: key, l: i.LessFunction}) -} - -// Delete removes the given key (only) from the BTree tree. -func (i *BTreeIndex) Delete(key string) { - i.Lock() - defer i.Unlock() - if i.BTree == nil || i.LessFunction == nil { - panic("uninitialized index") - } - i.BTree.Delete(btreeString{s: key, l: i.LessFunction}) -} - -// Keys yields a maximum of n keys in order. If the passed 'from' key is empty, -// Keys will return the first n keys. If the passed 'from' key is non-empty, the -// first key in the returned slice will be the key that immediately follows the -// passed key, in key order. -func (i *BTreeIndex) Keys(from string, n int) []string { - i.RLock() - defer i.RUnlock() - - if i.BTree == nil || i.LessFunction == nil { - panic("uninitialized index") - } - - if i.BTree.Len() <= 0 { - return []string{} - } - - btreeFrom := btreeString{s: from, l: i.LessFunction} - skipFirst := true - if len(from) <= 0 || !i.BTree.Has(btreeFrom) { - // no such key, so fabricate an always-smallest item - btreeFrom = btreeString{s: "", l: func(string, string) bool { return true }} - skipFirst = false - } - - keys := []string{} - iterator := func(i btree.Item) bool { - keys = append(keys, i.(btreeString).s) - return len(keys) < n - } - i.BTree.AscendGreaterOrEqual(btreeFrom, iterator) - - if skipFirst && len(keys) > 0 { - keys = keys[1:] - } - - return keys -} - -// rebuildIndex does the work of regenerating the index -// with the given keys. -func rebuild(less LessFunction, keys <-chan string) *btree.BTree { - tree := btree.New(2) - for key := range keys { - tree.ReplaceOrInsert(btreeString{s: key, l: less}) - } - return tree -} From 6cfc3d163c8fd020c66cb1bb93b819edcaed0e8f Mon Sep 17 00:00:00 2001 From: Phillip Wittrock Date: Mon, 7 Aug 2017 13:48:13 -0700 Subject: [PATCH 086/183] Move ownership of proxy test to sig-network directory --- test/e2e/kubectl/BUILD | 3 --- test/e2e/network/BUILD | 3 +++ test/e2e/{kubectl => network}/proxy.go | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) rename test/e2e/{kubectl => network}/proxy.go (99%) diff --git a/test/e2e/kubectl/BUILD b/test/e2e/kubectl/BUILD index 8a76fe4aa5a..6636907a542 100644 --- a/test/e2e/kubectl/BUILD +++ b/test/e2e/kubectl/BUILD @@ -13,11 +13,9 @@ go_library( "framework.go", "kubectl.go", "portforward.go", - "proxy.go", ], tags = ["automanaged"], deps = [ - "//pkg/api/testapi:go_default_library", "//pkg/apis/batch/v2alpha1:go_default_library", "//pkg/controller:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", @@ -38,7 +36,6 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", diff --git a/test/e2e/network/BUILD b/test/e2e/network/BUILD index 4d33ef3873b..c82d8ae7b43 100644 --- a/test/e2e/network/BUILD +++ b/test/e2e/network/BUILD @@ -22,6 +22,7 @@ go_library( "networking.go", "networking_perf.go", "no_snat.go", + "proxy.go", "service.go", "service_latency.go", "serviceloadbalancers.go", @@ -47,12 +48,14 @@ go_library( "//vendor/github.com/onsi/gomega:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", diff --git a/test/e2e/kubectl/proxy.go b/test/e2e/network/proxy.go similarity index 99% rename from test/e2e/kubectl/proxy.go rename to test/e2e/network/proxy.go index 5fb16bbdbab..dd6ae3b4f26 100644 --- a/test/e2e/kubectl/proxy.go +++ b/test/e2e/network/proxy.go @@ -14,9 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. */ -// OWNER = sig/cli +// OWNER = sig/network -package kubectl +package network import ( "fmt" @@ -51,7 +51,7 @@ const ( proxyHTTPCallTimeout = 30 * time.Second ) -var _ = SIGDescribe("Kubectl Proxy", func() { +var _ = SIGDescribe("Proxy", func() { version := testapi.Groups[v1.GroupName].GroupVersion().Version Context("version "+version, func() { options := framework.FrameworkOptions{ From 89fd3b0ebd1ad6025c85fa52a2eb748429542c29 Mon Sep 17 00:00:00 2001 From: Yinan Li Date: Mon, 7 Aug 2017 11:15:09 -0700 Subject: [PATCH 087/183] Copy annotations from StatefulSet to ControllerRevisions it owns --- pkg/controller/statefulset/stateful_set_utils.go | 12 +++++++++++- .../statefulset/stateful_set_utils_test.go | 13 +++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/pkg/controller/statefulset/stateful_set_utils.go b/pkg/controller/statefulset/stateful_set_utils.go index 3c4fcb9a2c8..4aba8a8ca73 100644 --- a/pkg/controller/statefulset/stateful_set_utils.go +++ b/pkg/controller/statefulset/stateful_set_utils.go @@ -311,11 +311,21 @@ func newRevision(set *apps.StatefulSet, revision int64) (*apps.ControllerRevisio if err != nil { return nil, err } - return history.NewControllerRevision(set, + cr, err := history.NewControllerRevision(set, controllerKind, selector, runtime.RawExtension{Raw: patch}, revision) + if err != nil { + return nil, err + } + if cr.ObjectMeta.Annotations == nil { + cr.ObjectMeta.Annotations = make(map[string]string) + } + for key, value := range set.Annotations { + cr.ObjectMeta.Annotations[key] = value + } + return cr, nil } // applyRevision returns a new StatefulSet constructed by restoring the state in revision to set. If the returned error diff --git a/pkg/controller/statefulset/stateful_set_utils_test.go b/pkg/controller/statefulset/stateful_set_utils_test.go index 58dfe05ecf6..192d4e75218 100644 --- a/pkg/controller/statefulset/stateful_set_utils_test.go +++ b/pkg/controller/statefulset/stateful_set_utils_test.go @@ -280,6 +280,12 @@ func TestCreateApplyRevision(t *testing.T) { t.Fatal(err) } set.Spec.Template.Spec.Containers[0].Name = "foo" + if set.Annotations == nil { + set.Annotations = make(map[string]string) + } + key := "foo" + expectedValue := "bar" + set.Annotations[key] = expectedValue restoredSet, err := applyRevision(set, revision) if err != nil { t.Fatal(err) @@ -291,6 +297,13 @@ func TestCreateApplyRevision(t *testing.T) { if !history.EqualRevision(revision, restoredRevision) { t.Errorf("wanted %v got %v", string(revision.Data.Raw), string(restoredRevision.Data.Raw)) } + value, ok := restoredRevision.Annotations[key] + if !ok { + t.Errorf("missing annotation %s", key) + } + if value != expectedValue { + t.Errorf("for annotation %s wanted %s got %s", key, expectedValue, value) + } } func newPVC(name string) v1.PersistentVolumeClaim { From 1cad829b6eb287c5c4d0296a59dfb34dea03cac5 Mon Sep 17 00:00:00 2001 From: Minhan Xia Date: Mon, 31 Jul 2017 17:39:13 -0700 Subject: [PATCH 088/183] add LocalZone into gce.conf and refactor gce cloud provider configuration to allow avoiding external communication --- pkg/cloudprovider/providers/gce/BUILD | 1 + pkg/cloudprovider/providers/gce/gce.go | 225 ++++++++++++-------- pkg/cloudprovider/providers/gce/gce_test.go | 182 ++++++++++++++++ test/e2e/e2e.go | 17 +- 4 files changed, 331 insertions(+), 94 deletions(-) diff --git a/pkg/cloudprovider/providers/gce/BUILD b/pkg/cloudprovider/providers/gce/BUILD index 62576d352a2..1c6717d3d84 100644 --- a/pkg/cloudprovider/providers/gce/BUILD +++ b/pkg/cloudprovider/providers/gce/BUILD @@ -91,6 +91,7 @@ go_test( deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/kubelet/apis:go_default_library", + "//vendor/golang.org/x/oauth2/google:go_default_library", "//vendor/google.golang.org/api/compute/v1:go_default_library", "//vendor/google.golang.org/api/googleapi:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/cloudprovider/providers/gce/gce.go b/pkg/cloudprovider/providers/gce/gce.go index 9652fd4d65a..a6d5dccaedb 100644 --- a/pkg/cloudprovider/providers/gce/gce.go +++ b/pkg/cloudprovider/providers/gce/gce.go @@ -133,7 +133,7 @@ type GCEServiceManager struct { gce *GCECloud } -type Config struct { +type ConfigFile struct { Global struct { TokenURL string `gcfg:"token-url"` TokenBody string `gcfg:"token-body"` @@ -145,9 +145,25 @@ type Config struct { Multizone bool `gcfg:"multizone"` // Specifying ApiEndpoint will override the default GCE compute API endpoint. ApiEndpoint string `gcfg:"api-endpoint"` + LocalZone string `gcfg:"local-zone"` } } +// CloudConfig includes all the necessary configuration for creating GCECloud +type CloudConfig struct { + ApiEndpoint string + ProjectID string + Region string + Zone string + ManagedZones []string + NetworkURL string + SubnetworkURL string + NodeTags []string + NodeInstancePrefix string + TokenSource oauth2.TokenSource + UseMetadataServer bool +} + func init() { cloudprovider.RegisterCloudProvider( ProviderName, @@ -172,77 +188,28 @@ func (g *GCECloud) GetProjectID() string { } // newGCECloud creates a new instance of GCECloud. -func newGCECloud(config io.Reader) (*GCECloud, error) { - apiEndpoint := "" - projectID, zone, err := getProjectAndZone() - if err != nil { - return nil, err - } +func newGCECloud(config io.Reader) (gceCloud *GCECloud, err error) { + var cloudConfig *CloudConfig + var configFile *ConfigFile - region, err := GetGCERegion(zone) - if err != nil { - return nil, err - } - - networkName, err := getNetworkNameViaMetadata() - if err != nil { - return nil, err - } - networkURL := gceNetworkURL("", projectID, networkName) - subnetworkURL := "" - - // By default, Kubernetes clusters only run against one zone - managedZones := []string{zone} - - tokenSource := google.ComputeTokenSource("") - var nodeTags []string - var nodeInstancePrefix string if config != nil { - cfg, err := readConfig(config) + configFile, err = readConfig(config) if err != nil { return nil, err } - - glog.Infof("Using GCE provider config %+v", cfg) - if cfg.Global.ApiEndpoint != "" { - apiEndpoint = cfg.Global.ApiEndpoint - } - if cfg.Global.ProjectID != "" { - projectID = cfg.Global.ProjectID - } - - if cfg.Global.NetworkName != "" { - if strings.Contains(cfg.Global.NetworkName, "/") { - networkURL = cfg.Global.NetworkName - } else { - networkURL = gceNetworkURL(apiEndpoint, projectID, cfg.Global.NetworkName) - } - } - - if cfg.Global.SubnetworkName != "" { - if strings.Contains(cfg.Global.SubnetworkName, "/") { - subnetworkURL = cfg.Global.SubnetworkName - } else { - subnetworkURL = gceSubnetworkURL(apiEndpoint, projectID, region, cfg.Global.SubnetworkName) - } - } - - if cfg.Global.TokenURL != "" { - tokenSource = NewAltTokenSource(cfg.Global.TokenURL, cfg.Global.TokenBody) - } - nodeTags = cfg.Global.NodeTags - nodeInstancePrefix = cfg.Global.NodeInstancePrefix - if cfg.Global.Multizone { - managedZones = nil // Use all zones in region - } + glog.Infof("Using GCE provider config %+v", configFile) } - return CreateGCECloud(apiEndpoint, projectID, region, zone, managedZones, networkURL, subnetworkURL, - nodeTags, nodeInstancePrefix, tokenSource, true /* useMetadataServer */) + cloudConfig, err = generateCloudConfig(configFile) + if err != nil { + return nil, err + } + return CreateGCECloud(cloudConfig) + } -func readConfig(reader io.Reader) (*Config, error) { - cfg := &Config{} +func readConfig(reader io.Reader) (*ConfigFile, error) { + cfg := &ConfigFile{} if err := gcfg.FatalOnly(gcfg.ReadInto(cfg, reader)); err != nil { glog.Errorf("Couldn't read config: %v", err) return nil, err @@ -250,14 +217,92 @@ func readConfig(reader io.Reader) (*Config, error) { return cfg, nil } +func generateCloudConfig(configFile *ConfigFile) (cloudConfig *CloudConfig, err error) { + cloudConfig = &CloudConfig{} + // By default, fetch token from GCE metadata server + cloudConfig.TokenSource = google.ComputeTokenSource("") + cloudConfig.UseMetadataServer = true + + if configFile != nil { + if configFile.Global.ApiEndpoint != "" { + cloudConfig.ApiEndpoint = configFile.Global.ApiEndpoint + } + + if configFile.Global.TokenURL != "" { + // if tokenURL is nil, set tokenSource to nil. This will force the OAuth client to fall + // back to use DefaultTokenSource. This allows running gceCloud remotely. + if configFile.Global.TokenURL == "nil" { + cloudConfig.TokenSource = nil + } else { + cloudConfig.TokenSource = NewAltTokenSource(configFile.Global.TokenURL, configFile.Global.TokenBody) + } + } + + cloudConfig.NodeTags = configFile.Global.NodeTags + cloudConfig.NodeInstancePrefix = configFile.Global.NodeInstancePrefix + } + + // retrieve projectID and zone + if configFile == nil || configFile.Global.ProjectID == "" || configFile.Global.LocalZone == "" { + cloudConfig.ProjectID, cloudConfig.Zone, err = getProjectAndZone() + if err != nil { + return nil, err + } + } + if configFile != nil { + if configFile.Global.ProjectID != "" { + cloudConfig.ProjectID = configFile.Global.ProjectID + } + if configFile.Global.LocalZone != "" { + cloudConfig.Zone = configFile.Global.LocalZone + } + } + + // retrieve region + cloudConfig.Region, err = GetGCERegion(cloudConfig.Zone) + if err != nil { + return nil, err + } + + // generate managedZones + cloudConfig.ManagedZones = []string{cloudConfig.Zone} + if configFile != nil && configFile.Global.Multizone { + cloudConfig.ManagedZones = nil // Use all zones in region + } + + // generate networkURL + if configFile != nil && configFile.Global.NetworkName != "" { + if strings.Contains(configFile.Global.NetworkName, "/") { + cloudConfig.NetworkURL = configFile.Global.NetworkName + } else { + cloudConfig.NetworkURL = gceNetworkURL(cloudConfig.ApiEndpoint, cloudConfig.ProjectID, configFile.Global.NetworkName) + } + } else { + networkName, err := getNetworkNameViaMetadata() + if err != nil { + return nil, err + } + cloudConfig.NetworkURL = gceNetworkURL("", cloudConfig.ProjectID, networkName) + } + + // generate subnetworkURL + if configFile != nil && configFile.Global.SubnetworkName != "" { + if strings.Contains(configFile.Global.SubnetworkName, "/") { + cloudConfig.SubnetworkURL = configFile.Global.SubnetworkName + } else { + cloudConfig.SubnetworkURL = gceSubnetworkURL(cloudConfig.ApiEndpoint, cloudConfig.ProjectID, cloudConfig.Region, configFile.Global.SubnetworkName) + } + } + return cloudConfig, err +} + // Creates a GCECloud object using the specified parameters. // If no networkUrl is specified, loads networkName via rest call. // If no tokenSource is specified, uses oauth2.DefaultTokenSource. // If managedZones is nil / empty all zones in the region will be managed. -func CreateGCECloud(apiEndpoint, projectID, region, zone string, managedZones []string, networkURL, subnetworkURL string, nodeTags []string, - nodeInstancePrefix string, tokenSource oauth2.TokenSource, useMetadataServer bool) (*GCECloud, error) { +func CreateGCECloud(config *CloudConfig) (*GCECloud, error) { - client, err := newOauthClient(tokenSource) + client, err := newOauthClient(config.TokenSource) if err != nil { return nil, err } @@ -266,7 +311,7 @@ func CreateGCECloud(apiEndpoint, projectID, region, zone string, managedZones [] return nil, err } - client, err = newOauthClient(tokenSource) + client, err = newOauthClient(config.TokenSource) if err != nil { return nil, err } @@ -275,7 +320,7 @@ func CreateGCECloud(apiEndpoint, projectID, region, zone string, managedZones [] return nil, err } - client, err = newOauthClient(tokenSource) + client, err = newOauthClient(config.TokenSource) if err != nil { return nil, err } @@ -288,10 +333,10 @@ func CreateGCECloud(apiEndpoint, projectID, region, zone string, managedZones [] // Generate alpha and beta api endpoints based on override v1 api endpoint. // For example, // staging API endpoint: https://www.googleapis.com/compute/staging_v1/ - if apiEndpoint != "" { - service.BasePath = fmt.Sprintf("%sprojects/", apiEndpoint) - serviceBeta.BasePath = fmt.Sprintf("%sprojects/", strings.Replace(apiEndpoint, "v1", "beta", -1)) - serviceAlpha.BasePath = fmt.Sprintf("%sprojects/", strings.Replace(apiEndpoint, "v1", "alpha", -1)) + if config.ApiEndpoint != "" { + service.BasePath = fmt.Sprintf("%sprojects/", config.ApiEndpoint) + serviceBeta.BasePath = fmt.Sprintf("%sprojects/", strings.Replace(config.ApiEndpoint, "v1", "beta", -1)) + serviceAlpha.BasePath = fmt.Sprintf("%sprojects/", strings.Replace(config.ApiEndpoint, "v1", "alpha", -1)) } containerService, err := container.New(client) @@ -304,28 +349,28 @@ func CreateGCECloud(apiEndpoint, projectID, region, zone string, managedZones [] return nil, err } - if networkURL == "" { - networkName, err := getNetworkNameViaAPICall(service, projectID) + if config.NetworkURL == "" { + networkName, err := getNetworkNameViaAPICall(service, config.ProjectID) if err != nil { return nil, err } - networkURL = gceNetworkURL(apiEndpoint, projectID, networkName) + config.NetworkURL = gceNetworkURL(config.ApiEndpoint, config.ProjectID, networkName) } - networkProjectID, err := getProjectIDInURL(networkURL) + networkProjectID, err := getProjectIDInURL(config.NetworkURL) if err != nil { return nil, err } - onXPN := networkProjectID != projectID + onXPN := networkProjectID != config.ProjectID - if len(managedZones) == 0 { - managedZones, err = getZonesForRegion(service, projectID, region) + if len(config.ManagedZones) == 0 { + config.ManagedZones, err = getZonesForRegion(service, config.ProjectID, config.Region) if err != nil { return nil, err } } - if len(managedZones) != 1 { - glog.Infof("managing multiple zones: %v", managedZones) + if len(config.ManagedZones) != 1 { + glog.Infof("managing multiple zones: %v", config.ManagedZones) } operationPollRateLimiter := flowcontrol.NewTokenBucketRateLimiter(10, 100) // 10 qps, 100 bucket size. @@ -336,17 +381,17 @@ func CreateGCECloud(apiEndpoint, projectID, region, zone string, managedZones [] serviceBeta: serviceBeta, containerService: containerService, cloudkmsService: cloudkmsService, - projectID: projectID, + projectID: config.ProjectID, networkProjectID: networkProjectID, onXPN: onXPN, - region: region, - localZone: zone, - managedZones: managedZones, - networkURL: networkURL, - subnetworkURL: subnetworkURL, - nodeTags: nodeTags, - nodeInstancePrefix: nodeInstancePrefix, - useMetadataServer: useMetadataServer, + region: config.Region, + localZone: config.Zone, + managedZones: config.ManagedZones, + networkURL: config.NetworkURL, + subnetworkURL: config.SubnetworkURL, + nodeTags: config.NodeTags, + nodeInstancePrefix: config.NodeInstancePrefix, + useMetadataServer: config.UseMetadataServer, operationPollRateLimiter: operationPollRateLimiter, } diff --git a/pkg/cloudprovider/providers/gce/gce_test.go b/pkg/cloudprovider/providers/gce/gce_test.go index 0eff53dbdf7..a4ac14734b4 100644 --- a/pkg/cloudprovider/providers/gce/gce_test.go +++ b/pkg/cloudprovider/providers/gce/gce_test.go @@ -17,6 +17,7 @@ limitations under the License. package gce import ( + "golang.org/x/oauth2/google" "reflect" "strings" "testing" @@ -255,3 +256,184 @@ func TestSplitProviderID(t *testing.T) { } } } + +func TestGenerateCloudConfigs(t *testing.T) { + testCases := []struct { + TokenURL string + TokenBody string + ProjectID string + NetworkName string + SubnetworkName string + NodeTags []string + NodeInstancePrefix string + Multizone bool + ApiEndpoint string + LocalZone string + cloudConfig *CloudConfig + }{ + { + TokenURL: "", + TokenBody: "", + ProjectID: "project-id", + NetworkName: "network-name", + SubnetworkName: "subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + Multizone: false, + ApiEndpoint: "", + LocalZone: "us-central1-a", + cloudConfig: &CloudConfig{ + ApiEndpoint: "", + ProjectID: "project-id", + Region: "us-central1", + Zone: "us-central1-a", + ManagedZones: []string{"us-central1-a"}, + NetworkURL: "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-name", + SubnetworkURL: "https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/subnetworks/subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + TokenSource: google.ComputeTokenSource(""), + UseMetadataServer: true, + }, + }, + // nil token source + { + TokenURL: "nil", + TokenBody: "", + ProjectID: "project-id", + NetworkName: "network-name", + SubnetworkName: "subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + Multizone: false, + ApiEndpoint: "", + LocalZone: "us-central1-a", + cloudConfig: &CloudConfig{ + ApiEndpoint: "", + ProjectID: "project-id", + Region: "us-central1", + Zone: "us-central1-a", + ManagedZones: []string{"us-central1-a"}, + NetworkURL: "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-name", + SubnetworkURL: "https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/subnetworks/subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + TokenSource: nil, + UseMetadataServer: true, + }, + }, + // specified api endpoint + { + TokenURL: "", + TokenBody: "", + ProjectID: "project-id", + NetworkName: "network-name", + SubnetworkName: "subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + Multizone: false, + ApiEndpoint: "https://www.googleapis.com/compute/staging_v1/", + LocalZone: "us-central1-a", + cloudConfig: &CloudConfig{ + ApiEndpoint: "https://www.googleapis.com/compute/staging_v1/", + ProjectID: "project-id", + Region: "us-central1", + Zone: "us-central1-a", + ManagedZones: []string{"us-central1-a"}, + NetworkURL: "https://www.googleapis.com/compute/staging_v1/projects/project-id/global/networks/network-name", + SubnetworkURL: "https://www.googleapis.com/compute/staging_v1/projects/project-id/regions/us-central1/subnetworks/subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + TokenSource: google.ComputeTokenSource(""), + UseMetadataServer: true, + }, + }, + // empty subnet-name + { + TokenURL: "", + TokenBody: "", + ProjectID: "project-id", + NetworkName: "network-name", + SubnetworkName: "", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + Multizone: false, + ApiEndpoint: "", + LocalZone: "us-central1-a", + cloudConfig: &CloudConfig{ + ApiEndpoint: "", + ProjectID: "project-id", + Region: "us-central1", + Zone: "us-central1-a", + ManagedZones: []string{"us-central1-a"}, + NetworkURL: "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-name", + SubnetworkURL: "", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + TokenSource: google.ComputeTokenSource(""), + UseMetadataServer: true, + }, + }, + // multi zone + { + TokenURL: "", + TokenBody: "", + ProjectID: "project-id", + NetworkName: "network-name", + SubnetworkName: "subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + Multizone: true, + ApiEndpoint: "", + LocalZone: "us-central1-a", + cloudConfig: &CloudConfig{ + ApiEndpoint: "", + ProjectID: "project-id", + Region: "us-central1", + Zone: "us-central1-a", + ManagedZones: nil, + NetworkURL: "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-name", + SubnetworkURL: "https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/subnetworks/subnetwork-name", + NodeTags: []string{"node-tag"}, + NodeInstancePrefix: "node-prefix", + TokenSource: google.ComputeTokenSource(""), + UseMetadataServer: true, + }, + }, + } + + for _, tc := range testCases { + cloudConfig, err := generateCloudConfig(&ConfigFile{ + Global: struct { + TokenURL string `gcfg:"token-url"` + TokenBody string `gcfg:"token-body"` + ProjectID string `gcfg:"project-id"` + NetworkName string `gcfg:"network-name"` + SubnetworkName string `gcfg:"subnetwork-name"` + NodeTags []string `gcfg:"node-tags"` + NodeInstancePrefix string `gcfg:"node-instance-prefix"` + Multizone bool `gcfg:"multizone"` + ApiEndpoint string `gcfg:"api-endpoint"` + LocalZone string `gcfg:"local-zone"` + }{ + TokenURL: tc.TokenURL, + TokenBody: tc.TokenBody, + ProjectID: tc.ProjectID, + NetworkName: tc.NetworkName, + SubnetworkName: tc.SubnetworkName, + NodeTags: tc.NodeTags, + NodeInstancePrefix: tc.NodeInstancePrefix, + Multizone: tc.Multizone, + ApiEndpoint: tc.ApiEndpoint, + LocalZone: tc.LocalZone, + }, + }) + if err != nil { + t.Fatalf("Unexpect error: %v", err) + } + + if !reflect.DeepEqual(cloudConfig, tc.cloudConfig) { + t.Errorf("Expecting cloud config: %v, but got %v", tc.cloudConfig, cloudConfig) + } + } +} diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index a990213fd9a..5e5008db27c 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -78,10 +78,19 @@ func setupProviderConfig() error { managedZones = []string{zone} } - gceCloud, err := gcecloud.CreateGCECloud(framework.TestContext.CloudConfig.ApiEndpoint, - framework.TestContext.CloudConfig.ProjectID, - region, zone, managedZones, "" /* networkUrl */, "" /* subnetworkUrl */, nil, /* nodeTags */ - "" /* nodeInstancePerfix */, nil /* tokenSource */, false /* useMetadataServer */) + gceCloud, err := gcecloud.CreateGCECloud(&gcecloud.CloudConfig{ + ApiEndpoint: framework.TestContext.CloudConfig.ApiEndpoint, + ProjectID: framework.TestContext.CloudConfig.ProjectID, + Region: region, + Zone: zone, + ManagedZones: managedZones, + NetworkURL: "", + SubnetworkURL: "", + NodeTags: nil, + NodeInstancePrefix: "", + TokenSource: nil, + UseMetadataServer: false}) + if err != nil { return fmt.Errorf("Error building GCE/GKE provider: %v", err) } From e7930520e4426bc331c0d5d74c3a1d7926771d93 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Thu, 20 Jul 2017 14:56:48 -0700 Subject: [PATCH 089/183] Deprecate Deployment rollbackTo field and remove rollback endpoint 1. Deprecate `.spec.rollbackTo` field in extensions/v1beta1 and apps/v1beta1 Deployments 2. Remove the same field from apps/v1beta2 Deployment, and remove its rollback subresource and endpoint --- pkg/apis/extensions/types.go | 3 +++ pkg/registry/apps/rest/storage_apps.go | 1 - staging/src/k8s.io/api/apps/v1beta1/types.go | 3 +++ .../src/k8s.io/api/apps/v1beta2/register.go | 1 - staging/src/k8s.io/api/apps/v1beta2/types.go | 26 ------------------- .../k8s.io/api/extensions/v1beta1/types.go | 3 +++ .../etcd/etcd_storage_path_test.go | 3 +-- 7 files changed, 10 insertions(+), 30 deletions(-) diff --git a/pkg/apis/extensions/types.go b/pkg/apis/extensions/types.go index 6009be69816..50f3f9522d9 100644 --- a/pkg/apis/extensions/types.go +++ b/pkg/apis/extensions/types.go @@ -216,6 +216,7 @@ type DeploymentSpec struct { // +optional Paused bool + // DEPRECATED. // The config this deployment is rolling back to. Will be cleared after rollback is done. // +optional RollbackTo *RollbackConfig @@ -232,6 +233,7 @@ type DeploymentSpec struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// DEPRECATED. // DeploymentRollback stores the information required to rollback a deployment. type DeploymentRollback struct { metav1.TypeMeta @@ -244,6 +246,7 @@ type DeploymentRollback struct { RollbackTo RollbackConfig } +// DEPRECATED. type RollbackConfig struct { // The revision to rollback to. If set to 0, rollback to the last revision. // +optional diff --git a/pkg/registry/apps/rest/storage_apps.go b/pkg/registry/apps/rest/storage_apps.go index 545d46405df..9b1b96dcbe0 100644 --- a/pkg/registry/apps/rest/storage_apps.go +++ b/pkg/registry/apps/rest/storage_apps.go @@ -83,7 +83,6 @@ func (p RESTStorageProvider) v1beta2Storage(apiResourceConfigSource serverstorag deploymentStorage := deploymentstore.NewStorage(restOptionsGetter) storage["deployments"] = deploymentStorage.Deployment storage["deployments/status"] = deploymentStorage.Status - storage["deployments/rollback"] = deploymentStorage.Rollback storage["deployments/scale"] = deploymentStorage.Scale } if apiResourceConfigSource.ResourceEnabled(version.WithResource("statefulsets")) { diff --git a/staging/src/k8s.io/api/apps/v1beta1/types.go b/staging/src/k8s.io/api/apps/v1beta1/types.go index dbdadaed93b..f447c71be5a 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types.go @@ -305,6 +305,7 @@ type DeploymentSpec struct { // +optional Paused bool `json:"paused,omitempty" protobuf:"varint,7,opt,name=paused"` + // DEPRECATED. // The config this deployment is rolling back to. Will be cleared after rollback is done. // +optional RollbackTo *RollbackConfig `json:"rollbackTo,omitempty" protobuf:"bytes,8,opt,name=rollbackTo"` @@ -321,6 +322,7 @@ type DeploymentSpec struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// DEPRECATED. // DeploymentRollback stores the information required to rollback a deployment. type DeploymentRollback struct { metav1.TypeMeta `json:",inline"` @@ -333,6 +335,7 @@ type DeploymentRollback struct { RollbackTo RollbackConfig `json:"rollbackTo" protobuf:"bytes,3,opt,name=rollbackTo"` } +// DEPRECATED. type RollbackConfig struct { // The revision to rollback to. If set to 0, rollback to the last revision. // +optional diff --git a/staging/src/k8s.io/api/apps/v1beta2/register.go b/staging/src/k8s.io/api/apps/v1beta2/register.go index 6643bea625f..d5f7816ffe7 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/register.go +++ b/staging/src/k8s.io/api/apps/v1beta2/register.go @@ -46,7 +46,6 @@ func addKnownTypes(scheme *runtime.Scheme) error { scheme.AddKnownTypes(SchemeGroupVersion, &Deployment{}, &DeploymentList{}, - &DeploymentRollback{}, &Scale{}, &StatefulSet{}, &StatefulSetList{}, diff --git a/staging/src/k8s.io/api/apps/v1beta2/types.go b/staging/src/k8s.io/api/apps/v1beta2/types.go index 84244b46408..74b9449b580 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types.go @@ -315,10 +315,6 @@ type DeploymentSpec struct { // +optional Paused bool `json:"paused,omitempty" protobuf:"varint,7,opt,name=paused"` - // The config this deployment is rolling back to. Will be cleared after rollback is done. - // +optional - RollbackTo *RollbackConfig `json:"rollbackTo,omitempty" protobuf:"bytes,8,opt,name=rollbackTo"` - // The maximum time in seconds for a deployment to make progress before it // is considered to be failed. The deployment controller will continue to // process failed deployments and a condition with a ProgressDeadlineExceeded @@ -329,28 +325,6 @@ type DeploymentSpec struct { ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" protobuf:"varint,9,opt,name=progressDeadlineSeconds"` } -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DeploymentRollback stores the information required to rollback a deployment. -type DeploymentRollback struct { - metav1.TypeMeta `json:",inline"` - // Required: This must match the Name of a deployment. - Name string `json:"name" protobuf:"bytes,1,opt,name=name"` - // The annotations to be updated to a deployment - // +optional - UpdatedAnnotations map[string]string `json:"updatedAnnotations,omitempty" protobuf:"bytes,2,rep,name=updatedAnnotations"` - // The config of this deployment rollback. - RollbackTo RollbackConfig `json:"rollbackTo" protobuf:"bytes,3,opt,name=rollbackTo"` -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -type RollbackConfig struct { - // The revision to rollback to. If set to 0, rollback to the last revision. - // +optional - Revision int64 `json:"revision,omitempty" protobuf:"varint,1,opt,name=revision"` -} - const ( // DefaultDeploymentUniqueLabelKey is the default key of the selector that is added // to existing RCs (and label key that is added to its pods) to prevent the existing RCs diff --git a/staging/src/k8s.io/api/extensions/v1beta1/types.go b/staging/src/k8s.io/api/extensions/v1beta1/types.go index d30a63121d9..98bd22488c5 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/types.go +++ b/staging/src/k8s.io/api/extensions/v1beta1/types.go @@ -211,6 +211,7 @@ type DeploymentSpec struct { // +optional Paused bool `json:"paused,omitempty" protobuf:"varint,7,opt,name=paused"` + // DEPRECATED. // The config this deployment is rolling back to. Will be cleared after rollback is done. // +optional RollbackTo *RollbackConfig `json:"rollbackTo,omitempty" protobuf:"bytes,8,opt,name=rollbackTo"` @@ -227,6 +228,7 @@ type DeploymentSpec struct { // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object +// DEPRECATED. // DeploymentRollback stores the information required to rollback a deployment. type DeploymentRollback struct { metav1.TypeMeta `json:",inline"` @@ -239,6 +241,7 @@ type DeploymentRollback struct { RollbackTo RollbackConfig `json:"rollbackTo" protobuf:"bytes,3,opt,name=rollbackTo"` } +// DEPRECATED. type RollbackConfig struct { // The revision to rollback to. If set to 0, rollback to the last revision. // +optional diff --git a/test/integration/etcd/etcd_storage_path_test.go b/test/integration/etcd/etcd_storage_path_test.go index 8ccfa5bdc62..61c87c83b2d 100644 --- a/test/integration/etcd/etcd_storage_path_test.go +++ b/test/integration/etcd/etcd_storage_path_test.go @@ -385,8 +385,7 @@ var ephemeralWhiteList = createEphemeralWhiteList( // -- // k8s.io/kubernetes/pkg/apis/apps/v1beta2 - gvr("apps", "v1beta2", "scales"), // not stored in etcd, part of kapiv1.ReplicationController - gvr("apps", "v1beta2", "deploymentrollbacks"), // used to rollback deployment, not stored in etcd + gvr("apps", "v1beta2", "scales"), // not stored in etcd, part of kapiv1.ReplicationController // -- // k8s.io/kubernetes/pkg/apis/batch/v2alpha1 From 0d239605a989eb0d2c1adec57dfa0a8b5ea716f9 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Tue, 25 Jul 2017 15:31:26 -0700 Subject: [PATCH 090/183] Conversion code for apps/v1beta2 Deployment Need to convert deprecated .spec.rollbackTo field into an annotation in apps/v1beta2 Deployment for roundTrip --- pkg/apis/apps/v1beta2/conversion.go | 64 ++++++++++++++++---- staging/src/k8s.io/api/apps/v1beta2/types.go | 1 + 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/pkg/apis/apps/v1beta2/conversion.go b/pkg/apis/apps/v1beta2/conversion.go index 7fc32b3ccb4..a864decaeb9 100644 --- a/pkg/apis/apps/v1beta2/conversion.go +++ b/pkg/apis/apps/v1beta2/conversion.go @@ -18,6 +18,7 @@ package v1beta2 import ( "fmt" + "strconv" appsv1beta2 "k8s.io/api/apps/v1beta2" "k8s.io/api/core/v1" @@ -45,6 +46,8 @@ func addConversionFuncs(scheme *runtime.Scheme) error { Convert_v1beta2_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet, Convert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus, Convert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus, + Convert_v1beta2_Deployment_To_extensions_Deployment, + Convert_extensions_Deployment_To_v1beta2_Deployment, // extensions // TODO: below conversions should be dropped in favor of auto-generated // ones, see https://github.com/kubernetes/kubernetes/issues/39865 @@ -310,12 +313,6 @@ func Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *appsv1beta2 out.RevisionHistoryLimit = in.RevisionHistoryLimit out.MinReadySeconds = in.MinReadySeconds out.Paused = in.Paused - if in.RollbackTo != nil { - out.RollbackTo = new(extensions.RollbackConfig) - out.RollbackTo.Revision = in.RollbackTo.Revision - } else { - out.RollbackTo = nil - } if in.ProgressDeadlineSeconds != nil { out.ProgressDeadlineSeconds = new(int32) *out.ProgressDeadlineSeconds = *in.ProgressDeadlineSeconds @@ -338,12 +335,6 @@ func Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(in *extensions. } out.MinReadySeconds = int32(in.MinReadySeconds) out.Paused = in.Paused - if in.RollbackTo != nil { - out.RollbackTo = new(appsv1beta2.RollbackConfig) - out.RollbackTo.Revision = int64(in.RollbackTo.Revision) - } else { - out.RollbackTo = nil - } if in.ProgressDeadlineSeconds != nil { out.ProgressDeadlineSeconds = new(int32) *out.ProgressDeadlineSeconds = *in.ProgressDeadlineSeconds @@ -414,6 +405,32 @@ func Convert_extensions_ReplicaSetSpec_To_v1beta2_ReplicaSetSpec(in *extensions. return nil } +func Convert_v1beta2_Deployment_To_extensions_Deployment(in *appsv1beta2.Deployment, out *extensions.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + + // Copy annotation to deprecated rollbackTo field for roundtrip + // TODO: remove this conversion after we delete extensions/v1beta1 and apps/v1beta1 Deployment + if revision, _ := in.Annotations[appsv1beta2.DeprecatedRollbackTo]; revision != "" { + if revision64, err := strconv.ParseInt(revision, 10, 64); err != nil { + return fmt.Errorf("failed to parse annotation[%s]=%s as int64: %v", appsv1beta2.DeprecatedRollbackTo, revision, err) + } else { + out.Spec.RollbackTo = new(extensions.RollbackConfig) + out.Spec.RollbackTo.Revision = revision64 + } + delete(out.Annotations, appsv1beta2.DeprecatedRollbackTo) + } else { + out.Spec.RollbackTo = nil + } + + if err := Convert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} + func Convert_v1beta2_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *appsv1beta2.ReplicaSetSpec, out *extensions.ReplicaSetSpec, s conversion.Scope) error { if in.Replicas != nil { out.Replicas = *in.Replicas @@ -425,3 +442,26 @@ func Convert_v1beta2_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *appsv1beta2 } return nil } + +func Convert_extensions_Deployment_To_v1beta2_Deployment(in *extensions.Deployment, out *appsv1beta2.Deployment, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if err := Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { + return err + } + + // Copy deprecated rollbackTo field to annotation for roundtrip + // TODO: remove this conversion after we delete extensions/v1beta1 and apps/v1beta1 Deployment + if in.Spec.RollbackTo != nil { + if out.Annotations == nil { + out.Annotations = make(map[string]string) + } + out.Annotations[appsv1beta2.DeprecatedRollbackTo] = strconv.FormatInt(in.Spec.RollbackTo.Revision, 10) + } else { + delete(out.Annotations, appsv1beta2.DeprecatedRollbackTo) + } + + if err := Convert_extensions_DeploymentStatus_To_v1beta2_DeploymentStatus(&in.Status, &out.Status, s); err != nil { + return err + } + return nil +} diff --git a/staging/src/k8s.io/api/apps/v1beta2/types.go b/staging/src/k8s.io/api/apps/v1beta2/types.go index 74b9449b580..6230df3b04b 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types.go @@ -25,6 +25,7 @@ import ( const ( ControllerRevisionHashLabelKey = "controller-revision-hash" StatefulSetRevisionLabel = ControllerRevisionHashLabelKey + DeprecatedRollbackTo = "deprecated.deployment.rollback.to" ) // WIP: This is not ready to be used and we plan to make breaking changes to it. From 5473d56373d75c07723e4933cd0211285d9c4f77 Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Wed, 26 Jul 2017 15:40:40 -0700 Subject: [PATCH 091/183] Remove some apps/v1beta2 generated files so that codegen works --- .../apps/v1beta2/definitions.html | 7373 ----------------- .../apps/v1beta2/zz_generated.defaults.go | 613 -- .../k8s.io/api/apps/v1beta2/generated.pb.go | 7042 ---------------- .../k8s.io/api/apps/v1beta2/generated.proto | 706 -- .../v1beta2/types_swagger_doc_generated.go | 368 - .../api/apps/v1beta2/zz_generated.deepcopy.go | 1005 --- 6 files changed, 17107 deletions(-) delete mode 100755 docs/api-reference/apps/v1beta2/definitions.html delete mode 100644 pkg/apis/apps/v1beta2/zz_generated.defaults.go delete mode 100644 staging/src/k8s.io/api/apps/v1beta2/generated.pb.go delete mode 100644 staging/src/k8s.io/api/apps/v1beta2/generated.proto delete mode 100644 staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go delete mode 100644 staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html deleted file mode 100755 index e358e64569d..00000000000 --- a/docs/api-reference/apps/v1beta2/definitions.html +++ /dev/null @@ -1,7373 +0,0 @@ - - - - - - -Top Level API Objects - - - - -
    - -
    -

    Definitions

    -
    -
    -

    v1.APIResourceList

    -
    -

    APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.

    -
    -
------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

groupVersion

groupVersion is the group and version this APIResourceList is for.

true

string

resources

resources contains the name of the resources and if they are namespaced.

true

v1.APIResource array

- -
-
-

v1.Affinity

-
-

Affinity is a group of affinity scheduling rules.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

nodeAffinity

Describes node affinity scheduling rules for the pod.

false

v1.NodeAffinity

podAffinity

Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).

false

v1.PodAffinity

podAntiAffinity

Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).

false

v1.PodAntiAffinity

- -
-
-

v1.NodeSelectorTerm

-
-

A null or empty node selector term matches no objects.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

matchExpressions

Required. A list of node selector requirements. The requirements are ANDed.

true

v1.NodeSelectorRequirement array

- -
-
-

v1.Preconditions

-
-

Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

uid

Specifies the target UID.

false

types.UID

- -
-
-

v1.ObjectFieldSelector

-
-

ObjectFieldSelector selects an APIVersioned field of an object.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

apiVersion

Version of the schema the FieldPath is written in terms of, defaults to "v1".

false

string

fieldPath

Path of the field to select in the specified API version.

true

string

- -
-
-

v1beta2.DaemonSetList

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetList is a collection of daemon sets.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ListMeta

items

A list of daemon sets.

true

v1beta2.DaemonSet array

- -
-
-

v1.SELinuxOptions

-
-

SELinuxOptions are the labels to be applied to the container

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

user

User is a SELinux user label that applies to the container.

false

string

role

Role is a SELinux role label that applies to the container.

false

string

type

Type is a SELinux type label that applies to the container.

false

string

level

Level is SELinux level label that applies to the container.

false

string

- -
-
-

v1.VolumeMount

-
-

VolumeMount describes a mounting of a Volume within a container.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

This must match the Name of a Volume.

true

string

readOnly

Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.

false

boolean

false

mountPath

Path within the container at which the volume should be mounted. Must not contain :.

true

string

subPath

Path within the volume from which the container’s volume should be mounted. Defaults to "" (volume’s root).

false

string

- -
-
-

v1.DownwardAPIProjection

-
-

Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

items

Items is a list of DownwardAPIVolume file

false

v1.DownwardAPIVolumeFile array

- -
-
-

v1.LabelSelector

-
-

A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

matchLabels

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

false

object

matchExpressions

matchExpressions is a list of label selector requirements. The requirements are ANDed.

false

v1.LabelSelectorRequirement array

- -
-
-

v1.PersistentVolumeClaimSpec

-
-

PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

accessModes

AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

false

v1.PersistentVolumeAccessMode array

selector

A label query over volumes to consider for binding.

false

v1.LabelSelector

resources

Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

false

v1.ResourceRequirements

volumeName

VolumeName is the binding reference to the PersistentVolume backing this claim.

false

string

storageClassName

Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

false

string

- -
-
-

v1.CephFSVolumeSource

-
-

Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

monitors

Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

true

string array

path

Optional: Used as the mounted root, rather than the full Ceph tree, default is /

false

string

user

Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

string

secretFile

Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

string

secretRef

Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

v1.LocalObjectReference

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

boolean

false

- -
-
-

v1.DownwardAPIVolumeSource

-
-

DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

items

Items is a list of downward API volume file

false

v1.DownwardAPIVolumeFile array

defaultMode

Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

- -
-
-

v1.GCEPersistentDiskVolumeSource

-
-

Represents a Persistent Disk resource in Google Compute Engine.

-
-
-

A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

pdName

Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

true

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

string

partition

The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

integer (int32)

readOnly

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

boolean

false

- -
-
-

v1beta2.StatefulSetList

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetList is a collection of StatefulSets.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

false

v1.ListMeta

items

true

v1beta2.StatefulSet array

- -
-
-

v1.ConfigMapVolumeSource

-
-

Adapts a ConfigMap into a volume.

-
-
-

The contents of the target ConfigMap’s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

items

If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

defaultMode

Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

optional

Specify whether the ConfigMap or it’s keys must be defined

false

boolean

false

- -
-
-

v1beta2.Scale

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. Scale represents a scaling request for a resource.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.

false

v1.ObjectMeta

spec

defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.

false

v1beta2.ScaleSpec

status

current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.

false

v1beta2.ScaleStatus

- -
-
-

v1beta2.RollingUpdateDaemonSet

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of daemon set rolling update.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

maxUnavailable

The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.

false

string

- -
-
-

v1.GitRepoVolumeSource

-
-

Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

repository

Repository URL

true

string

revision

Commit hash for the specified revision.

false

string

directory

Target directory name. Must not contain or start with ... If . is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.

false

string

- -
-
-

v1.SecretEnvSource

-
-

SecretEnvSource selects a Secret to populate the environment variables with.

-
-
-

The contents of the target Secret’s Data field will represent the key-value pairs as environment variables.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

optional

Specify whether the Secret must be defined

false

boolean

false

- -
-
-

v1.PortworxVolumeSource

-
-

PortworxVolumeSource represents a Portworx volume resource.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

volumeID

VolumeID uniquely identifies a Portworx volume

true

string

fsType

FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

- -
-
-

v1.Capabilities

-
-

Adds and removes POSIX capabilities from running containers.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

add

Added capabilities

false

v1.Capability array

drop

Removed capabilities

false

v1.Capability array

- -
-
-

v1.Initializer

-
-

Initializer is information about an initializer that has not yet completed.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

name of the process that is responsible for initializing this object.

true

string

- -
-
-

v1beta2.StatefulSetStatus

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetStatus represents the current state of a StatefulSet.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

observedGeneration

observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet’s generation, which is updated on mutation by the API Server.

false

integer (int64)

replicas

replicas is the number of Pods created by the StatefulSet controller.

true

integer (int32)

readyReplicas

readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.

false

integer (int32)

currentReplicas

currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.

false

integer (int32)

updatedReplicas

updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.

false

integer (int32)

currentRevision

currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).

false

string

updateRevision

updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)

false

string

- -
-
-

v1.LocalObjectReference

-
-

LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

- -
-
-

v1.ProjectedVolumeSource

-
-

Represents a projected volume source

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

sources

list of volume projections

true

v1.VolumeProjection array

defaultMode

Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

- -
-
-

v1.ExecAction

-
-

ExecAction describes a "run in container" action.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

command

Command is the command line to execute inside the container, the working directory for the command is root (/) in the container’s filesystem. The command is simply exec’d, it is not run inside a shell, so traditional shell instructions ('

', etc) won’t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

false

string array

- -
-
-

v1.ObjectMeta

-
-

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names

false

string

generateName

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.
-
-If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).
-
-Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

false

string

namespace

Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.
-
-Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

false

string

selfLink

SelfLink is a URL representing this object. Populated by the system. Read-only.

false

string

uid

UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
-
-Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

false

string

resourceVersion

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.
-
-Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

generation

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

false

integer (int64)

creationTimestamp

CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
-
-Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

deletionTimestamp

DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
-
-Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

deletionGracePeriodSeconds

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

false

integer (int64)

labels

Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

false

object

annotations

Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

false

object

ownerReferences

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

false

v1.OwnerReference array

initializers

An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
-
-When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

false

v1.Initializers

finalizers

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

false

string array

clusterName

The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.

false

string

- -
-
-

v1beta2.DeploymentStrategy

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStrategy describes how to replace existing pods with new ones.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

type

Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.

false

string

rollingUpdate

Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.

false

v1beta2.RollingUpdateDeployment

- -
-
-

types.UID

- -
-
-

v1.AzureFileVolumeSource

-
-

AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

secretName

the name of secret that contains Azure Storage Account Name and Key

true

string

shareName

Share Name

true

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

- -
-
-

v1.ISCSIVolumeSource

-
-

Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

targetPortal

iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

true

string

iqn

Target iSCSI Qualified Name.

true

string

lun

iSCSI target lun number.

true

integer (int32)

iscsiInterface

Optional: Defaults to default (tcp). iSCSI interface name that uses an iSCSI transport.

false

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi

false

string

readOnly

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.

false

boolean

false

portals

iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

false

string array

chapAuthDiscovery

whether support iSCSI Discovery CHAP authentication

false

boolean

false

chapAuthSession

whether support iSCSI Session CHAP authentication

false

boolean

false

secretRef

CHAP secret for iSCSI target and initiator authentication

false

v1.LocalObjectReference

- -
-
-

v1beta2.DeploymentStatus

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStatus is the most recently observed status of the Deployment.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

observedGeneration

The generation observed by the deployment controller.

false

integer (int64)

replicas

Total number of non-terminated pods targeted by this deployment (their labels match the selector).

false

integer (int32)

updatedReplicas

Total number of non-terminated pods targeted by this deployment that have the desired template spec.

false

integer (int32)

readyReplicas

Total number of ready pods targeted by this deployment.

false

integer (int32)

availableReplicas

Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.

false

integer (int32)

unavailableReplicas

Total number of unavailable pods targeted by this deployment.

false

integer (int32)

conditions

Represents the latest available observations of a deployment’s current state.

false

v1beta2.DeploymentCondition array

collisionCount

Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.

false

integer (int64)

- -
-
-

v1.EmptyDirVolumeSource

-
-

Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

medium

What type of storage medium should back this directory. The default is "" which means to use the node’s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

false

string

sizeLimit

Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

false

string

- -
-
-

v1beta2.RollingUpdateStatefulSetStrategy

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

partition

Partition indicates the ordinal at which the StatefulSet should be partitioned.

false

integer (int32)

- -
-
-

v1.PodAffinityTerm

-
-

Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

labelSelector

A label query over a set of resources, in this case pods.

false

v1.LabelSelector

namespaces

namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace"

false

string array

topologyKey

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

false

string

- -
-
-

v1beta2.DaemonSetStatus

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetStatus represents the current status of a daemon set.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

currentNumberScheduled

The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

true

integer (int32)

numberMisscheduled

The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

true

integer (int32)

desiredNumberScheduled

The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

true

integer (int32)

numberReady

The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.

true

integer (int32)

observedGeneration

The most recent generation observed by the daemon set controller.

false

integer (int64)

updatedNumberScheduled

The total number of nodes that are running updated daemon pod

false

integer (int32)

numberAvailable

The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)

false

integer (int32)

numberUnavailable

The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)

false

integer (int32)

collisionCount

Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

false

integer (int64)

- -
-
-

v1.EnvFromSource

-
-

EnvFromSource represents the source of a set of ConfigMaps

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

prefix

An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.

false

string

configMapRef

The ConfigMap to select from

false

v1.ConfigMapEnvSource

secretRef

The Secret to select from

false

v1.SecretEnvSource

- -
-
-

v1.PersistentVolumeClaim

-
-

PersistentVolumeClaim is a user’s request for and claim to a persistent volume

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

false

v1.PersistentVolumeClaimSpec

status

Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

false

v1.PersistentVolumeClaimStatus

- -
-
-

v1.PodAffinity

-
-

Pod affinity is a group of inter pod affinity scheduling rules.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

requiredDuringSchedulingIgnoredDuringExecution

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

preferredDuringSchedulingIgnoredDuringExecution

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

false

v1.WeightedPodAffinityTerm array

- -
-
-

v1.FlockerVolumeSource

-
-

Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

datasetName

Name of the dataset stored as metadata → name on the dataset for Flocker should be considered as deprecated

false

string

datasetUUID

UUID of the dataset. This is unique identifier of a Flocker dataset

false

string

- -
-
-

v1.PersistentVolumeClaimVolumeSource

-
-

PersistentVolumeClaimVolumeSource references the user’s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

claimName

ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

true

string

readOnly

Will force the ReadOnly setting in VolumeMounts. Default false.

false

boolean

false

- -
-
-

v1.ListMeta

-
-

ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

selfLink

SelfLink is a URL representing this object. Populated by the system. Read-only.

false

string

resourceVersion

String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

- -
-
-

v1.PersistentVolumeClaimStatus

-
-

PersistentVolumeClaimStatus is the current status of a persistent volume claim.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

phase

Phase represents the current phase of PersistentVolumeClaim.

false

string

accessModes

AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

false

v1.PersistentVolumeAccessMode array

capacity

Represents the actual resources of the underlying volume.

false

object

- -
-
-

v1beta2.DeploymentCondition

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentCondition describes the state of a deployment at a certain point.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

type

Type of deployment condition.

true

string

status

Status of the condition, one of True, False, Unknown.

true

string

lastUpdateTime

The last time this condition was updated.

false

string

lastTransitionTime

Last time the condition transitioned from one status to another.

false

string

reason

The reason for the condition’s last transition.

false

string

message

A human readable message indicating details about the transition.

false

string

- -
-
-

v1beta2.StatefulSetSpec

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. A StatefulSetSpec is the specification of a StatefulSet.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

replicas

replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.

false

integer (int32)

selector

selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

v1.LabelSelector

template

template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.

true

v1.PodTemplateSpec

volumeClaimTemplates

volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.

false

v1.PersistentVolumeClaim array

serviceName

serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller.

true

string

podManagementPolicy

podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is OrderedReady, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is Parallel which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.

false

string

updateStrategy

updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.

false

v1beta2.StatefulSetUpdateStrategy

revisionHistoryLimit

revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet’s revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.

false

integer (int32)

- -
-
-

v1beta2.ReplicaSetStatus

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetStatus represents the current status of a ReplicaSet.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

replicas

Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

true

integer (int32)

fullyLabeledReplicas

The number of pods that have labels matching the labels of the pod template of the replicaset.

false

integer (int32)

readyReplicas

The number of ready replicas for this replica set.

false

integer (int32)

availableReplicas

The number of available replicas (ready for at least minReadySeconds) for this replica set.

false

integer (int32)

observedGeneration

ObservedGeneration reflects the generation of the most recently observed ReplicaSet.

false

integer (int64)

conditions

Represents the latest available observations of a replica set’s current state.

false

v1beta2.ReplicaSetCondition array

- -
-
-

v1beta2.DeploymentRollback

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentRollback stores the information required to rollback a deployment.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

name

Required: This must match the Name of a deployment.

true

string

updatedAnnotations

The annotations to be updated to a deployment

false

object

rollbackTo

The config of this deployment rollback.

true

v1beta2.RollbackConfig

- -
-
-

v1beta2.DaemonSet

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSet represents the configuration of a daemon set.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.DaemonSetSpec

status

The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.DaemonSetStatus

- -
-
-

v1.SecretVolumeSource

-
-

Adapts a Secret into a volume.

-
-
-

The contents of the target Secret’s Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

secretName

Name of the secret in the pod’s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

false

string

items

If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

defaultMode

Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

optional

Specify whether the Secret or it’s keys must be defined

false

boolean

false

- -
-
-

v1.FlexVolumeSource

-
-

FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

driver

Driver is the name of the driver to use for this volume.

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.

false

string

secretRef

Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.

false

v1.LocalObjectReference

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

options

Optional: Extra command options if any.

false

object

- -
-
-

v1.EnvVarSource

-
-

EnvVarSource represents a source for the value of an EnvVar.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

fieldRef

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.

false

v1.ObjectFieldSelector

resourceFieldRef

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

false

v1.ResourceFieldSelector

configMapKeyRef

Selects a key of a ConfigMap.

false

v1.ConfigMapKeySelector

secretKeyRef

Selects a key of a secret in the pod’s namespace

false

v1.SecretKeySelector

- -
-
-

v1beta2.ReplicaSetList

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetList is a collection of ReplicaSets.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

items

List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller

true

v1beta2.ReplicaSet array

- -
-
-

v1.AzureDiskVolumeSource

-
-

AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

diskName

The Name of the data disk in the blob storage

true

string

diskURI

The URI the data disk in the blob storage

true

string

cachingMode

Host Caching mode: None, Read Only, Read Write.

false

v1.AzureDataDiskCachingMode

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

kind

Expected values Shared: mulitple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

false

v1.AzureDataDiskKind

- -
-
-

v1.KeyToPath

-
-

Maps a string key to a path within a volume.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

key

The key to project.

true

string

path

The relative path of the file to map the key to. May not be an absolute path. May not contain the path element ... May not start with the string ...

true

string

mode

Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

- -
-
-

v1.VsphereVirtualDiskVolumeSource

-
-

Represents a vSphere volume resource.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

volumePath

Path that identifies vSphere volume vmdk

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

storagePolicyName

Storage Policy Based Management (SPBM) profile name.

false

string

storagePolicyID

Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.

false

string

- -
-
-

v1beta2.StatefulSet

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSet represents a set of pods with consistent identities. Identities are defined as:
- - Network: A single stable DNS and hostname.
- - Storage: As many VolumeClaims as requested.
-The StatefulSet guarantees that a given network identity will always map to the same storage identity.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

false

v1.ObjectMeta

spec

Spec defines the desired identities of pods in this set.

false

v1beta2.StatefulSetSpec

status

Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.

false

v1beta2.StatefulSetStatus

- -
-
-

v1.DeleteOptions

-
-

DeleteOptions may be provided when deleting an API object.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

gracePeriodSeconds

The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

false

integer (int64)

preconditions

Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

false

v1.Preconditions

orphanDependents

Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

false

boolean

false

propagationPolicy

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

v1.DeletionPropagation

- -
-
-

v1.Volume

-
-

Volume represents a named volume in a pod that may be accessed by any container in the pod.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Volume’s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

true

string

hostPath

HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

false

v1.HostPathVolumeSource

emptyDir

EmptyDir represents a temporary directory that shares a pod’s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

false

v1.EmptyDirVolumeSource

gcePersistentDisk

GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

v1.GCEPersistentDiskVolumeSource

awsElasticBlockStore

AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

v1.AWSElasticBlockStoreVolumeSource

gitRepo

GitRepo represents a git repository at a particular revision.

false

v1.GitRepoVolumeSource

secret

Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

false

v1.SecretVolumeSource

nfs

NFS represents an NFS mount on the host that shares a pod’s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

false

v1.NFSVolumeSource

iscsi

ISCSI represents an ISCSI Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md

false

v1.ISCSIVolumeSource

glusterfs

Glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md

false

v1.GlusterfsVolumeSource

persistentVolumeClaim

PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

false

v1.PersistentVolumeClaimVolumeSource

rbd

RBD represents a Rados Block Device mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

false

v1.RBDVolumeSource

flexVolume

FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.

false

v1.FlexVolumeSource

cinder

Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

v1.CinderVolumeSource

cephfs

CephFS represents a Ceph FS mount on the host that shares a pod’s lifetime

false

v1.CephFSVolumeSource

flocker

Flocker represents a Flocker volume attached to a kubelet’s host machine. This depends on the Flocker control service being running

false

v1.FlockerVolumeSource

downwardAPI

DownwardAPI represents downward API about the pod that should populate this volume

false

v1.DownwardAPIVolumeSource

fc

FC represents a Fibre Channel resource that is attached to a kubelet’s host machine and then exposed to the pod.

false

v1.FCVolumeSource

azureFile

AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

false

v1.AzureFileVolumeSource

configMap

ConfigMap represents a configMap that should populate this volume

false

v1.ConfigMapVolumeSource

vsphereVolume

VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine

false

v1.VsphereVirtualDiskVolumeSource

quobyte

Quobyte represents a Quobyte mount on the host that shares a pod’s lifetime

false

v1.QuobyteVolumeSource

azureDisk

AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

false

v1.AzureDiskVolumeSource

photonPersistentDisk

PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine

false

v1.PhotonPersistentDiskVolumeSource

projected

Items for all in one resources secrets, configmaps, and downward API

false

v1.ProjectedVolumeSource

portworxVolume

PortworxVolume represents a portworx volume attached and mounted on kubelets host machine

false

v1.PortworxVolumeSource

scaleIO

ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

false

v1.ScaleIOVolumeSource

storageos

StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

false

v1.StorageOSVolumeSource

- -
-
-

v1.ResourceFieldSelector

-
-

ResourceFieldSelector represents container resources (cpu, memory) and their output format

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

containerName

Container name: required for volumes, optional for env vars

false

string

resource

Required: resource to select

true

string

divisor

Specifies the output format of the exposed resources, defaults to "1"

false

string

- -
-
-

v1.VolumeProjection

-
-

Projection that may be projected along with other supported volume types

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

secret

information about the secret data to project

false

v1.SecretProjection

downwardAPI

information about the downwardAPI data to project

false

v1.DownwardAPIProjection

configMap

information about the configMap data to project

false

v1.ConfigMapProjection

- -
-
-

v1.Probe

-
-

Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

exec

One and only one of the following should be specified. Exec specifies the action to take.

false

v1.ExecAction

httpGet

HTTPGet specifies the http request to perform.

false

v1.HTTPGetAction

tcpSocket

TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported

false

v1.TCPSocketAction

initialDelaySeconds

Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

integer (int32)

timeoutSeconds

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

integer (int32)

periodSeconds

How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.

false

integer (int32)

successThreshold

Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.

false

integer (int32)

failureThreshold

Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.

false

integer (int32)

- -
-
-

v1.WeightedPodAffinityTerm

-
-

The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

weight

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

true

integer (int32)

podAffinityTerm

Required. A pod affinity term, associated with the corresponding weight.

true

v1.PodAffinityTerm

- -
-
-

v1.SecretKeySelector

-
-

SecretKeySelector selects a key of a Secret.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

key

The key of the secret to select from. Must be a valid secret key.

true

string

optional

Specify whether the Secret or it’s key must be defined

false

boolean

false

- -
-
-

v1.Capability

- -
-
-

v1.DownwardAPIVolumeFile

-
-

DownwardAPIVolumeFile represents information to create the file containing the pod field

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

path

Required: Path is the relative path name of the file to be created. Must not be absolute or contain the .. path. Must be utf-8 encoded. The first item of the relative path must not start with ..

true

string

fieldRef

Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.

false

v1.ObjectFieldSelector

resourceFieldRef

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

false

v1.ResourceFieldSelector

mode

Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

- -
-
-

v1.PodSpec

-
-

PodSpec is a description of a pod.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

volumes

List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes

false

v1.Volume array

initContainers

List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

false

v1.Container array

containers

List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.

true

v1.Container array

restartPolicy

Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

false

string

terminationGracePeriodSeconds

Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.

false

integer (int64)

activeDeadlineSeconds

Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.

false

integer (int64)

dnsPolicy

Set DNS policy for containers within the pod. One of ClusterFirstWithHostNet, ClusterFirst or Default. Defaults to "ClusterFirst". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to ClusterFirstWithHostNet.

false

string

nodeSelector

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node’s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

false

object

serviceAccountName

ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

false

string

serviceAccount

DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.

false

string

automountServiceAccountToken

AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.

false

boolean

false

nodeName

NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.

false

string

hostNetwork

Host networking requested for this pod. Use the host’s network namespace. If this option is set, the ports that will be used must be specified. Default to false.

false

boolean

false

hostPID

Use the host’s pid namespace. Optional: Default to false.

false

boolean

false

hostIPC

Use the host’s ipc namespace. Optional: Default to false.

false

boolean

false

securityContext

SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.

false

v1.PodSecurityContext

imagePullSecrets

ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

false

v1.LocalObjectReference array

hostname

Specifies the hostname of the Pod If not specified, the pod’s hostname will be set to a system-defined value.

false

string

subdomain

If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the pod will not have a domainname at all.

false

string

affinity

If specified, the pod’s scheduling constraints

false

v1.Affinity

schedulerName

If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.

false

string

tolerations

If specified, the pod’s tolerations.

false

v1.Toleration array

hostAliases

HostAliases is an optional list of hosts and IPs that will be injected into the pod’s hosts file if specified. This is only valid for non-hostNetwork pods.

false

v1.HostAlias array

priorityClassName

If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.

false

string

priority

The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.

false

integer (int32)

- -
-
-

v1.ContainerPort

-
-

ContainerPort represents a network port in a single container.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.

false

string

hostPort

Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.

false

integer (int32)

containerPort

Number of port to expose on the pod’s IP address. This must be a valid port number, 0 < x < 65536.

true

integer (int32)

protocol

Protocol for port. Must be UDP or TCP. Defaults to "TCP".

false

string

hostIP

What host IP to bind the external port to.

false

string

- -
-
-

v1.Lifecycle

-
-

Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

postStart

PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

false

v1.Handler

preStop

PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

false

v1.Handler

- -
-
-

v1.GlusterfsVolumeSource

-
-

Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

endpoints

EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

true

string

path

Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

true

string

readOnly

ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

false

boolean

false

- -
-
-

v1.Handler

-
-

Handler defines a specific action that should be taken

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

exec

One and only one of the following should be specified. Exec specifies the action to take.

false

v1.ExecAction

httpGet

HTTPGet specifies the http request to perform.

false

v1.HTTPGetAction

tcpSocket

TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported

false

v1.TCPSocketAction

- -
-
-

v1.Toleration

-
-

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

key

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

false

string

operator

Operator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

false

string

value

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

false

string

effect

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

false

string

tolerationSeconds

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

false

integer (int64)

- -
-
-

v1.StatusCause

-
-

StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

reason

A machine-readable description of the cause of the error. If this value is empty there is no information available.

false

string

message

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

false

string

field

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.
-
-Examples:
- "name" - the field "name" on the current resource
- "items[0].name" - the field "name" on the first array entry in "items"

false

string

- -
-
-

v1.RBDVolumeSource

-
-

Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

monitors

A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string array

image

The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

false

string

pool

The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

user

The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

keyring

Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

secretRef

SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

v1.LocalObjectReference

readOnly

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

boolean

false

- -
-
-

v1.ConfigMapProjection

-
-

Adapts a ConfigMap into a projected volume.

-
-
-

The contents of the target ConfigMap’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

items

If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

optional

Specify whether the ConfigMap or it’s keys must be defined

false

boolean

false

- -
-
-

v1.PhotonPersistentDiskVolumeSource

-
-

Represents a Photon Controller persistent disk resource.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

pdID

ID that identifies Photon Controller persistent disk

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

- -
-
-

v1.ScaleIOVolumeSource

-
-

ScaleIOVolumeSource represents a persistent ScaleIO volume

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

gateway

The host address of the ScaleIO API Gateway.

true

string

system

The name of the storage system as configured in ScaleIO.

true

string

secretRef

SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.

true

v1.LocalObjectReference

sslEnabled

Flag to enable/disable SSL communication with Gateway, default false

false

boolean

false

protectionDomain

The name of the Protection Domain for the configured storage (defaults to "default").

false

string

storagePool

The Storage Pool associated with the protection domain (defaults to "default").

false

string

storageMode

Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

false

string

volumeName

The name of a volume already created in the ScaleIO system that is associated with this volume source.

false

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

- -
-
-

v1beta2.RollbackConfig

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

revision

The revision to rollback to. If set to 0, rollback to the last revision.

false

integer (int64)

- -
-
-

v1beta2.ReplicaSet

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSet represents the configuration of a ReplicaSet.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.ReplicaSetSpec

status

Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.ReplicaSetStatus

- -
-
-

v1.Initializers

-
-

Initializers tracks the progress of initialization.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

pending

Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

true

v1.Initializer array

result

If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

false

v1.Status

- -
-
-

v1beta2.ScaleStatus

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleStatus represents the current status of a scale subresource.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

replicas

actual number of observed instances of the scaled object.

true

integer (int32)

selector

label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors

false

object

targetSelector

label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

string

- -
-
-

v1.Status

-
-

Status is a return value for calls that don’t return other objects.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

status

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

string

message

A human-readable description of the status of this operation.

false

string

reason

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

false

string

details

Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

false

v1.StatusDetails

code

Suggested HTTP return code for this status, 0 if not set.

false

integer (int32)

- -
-
-

v1.NFSVolumeSource

-
-

Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

server

Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

true

string

path

Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

true

string

readOnly

ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

false

boolean

false

- -
-
-

v1beta2.DeploymentSpec

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentSpec is the specification of the desired behavior of the Deployment.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

replicas

Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.

false

integer (int32)

selector

Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.

false

v1.LabelSelector

template

Template describes the pods that will be created.

true

v1.PodTemplateSpec

strategy

The deployment strategy to use to replace existing pods with new ones.

false

v1beta2.DeploymentStrategy

minReadySeconds

Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)

false

integer (int32)

revisionHistoryLimit

The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.

false

integer (int32)

paused

Indicates that the deployment is paused.

false

boolean

false

rollbackTo

The config this deployment is rolling back to. Will be cleared after rollback is done.

false

v1beta2.RollbackConfig

progressDeadlineSeconds

The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.

false

integer (int32)

- -
-
-

v1.HTTPHeader

-
-

HTTPHeader describes a custom header to be used in HTTP probes

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

The header field name

true

string

value

The header field value

true

string

- -
-
-

v1.FCVolumeSource

-
-

Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

targetWWNs

Required: FC target worldwide names (WWNs)

true

string array

lun

Required: FC target lun number

true

integer (int32)

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

- -
-
-

v1.PodAntiAffinity

-
-

Pod anti affinity is a group of inter pod anti affinity scheduling rules.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

requiredDuringSchedulingIgnoredDuringExecution

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

preferredDuringSchedulingIgnoredDuringExecution

The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

false

v1.WeightedPodAffinityTerm array

- -
-
-

v1.DeletionPropagation

- -
-
-

v1.TCPSocketAction

-
-

TCPSocketAction describes an action based on opening a socket

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

true

string

host

Optional: Host name to connect to, defaults to the pod IP.

false

string

- -
-
-

v1.HTTPGetAction

-
-

HTTPGetAction describes an action based on HTTP Get requests.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

path

Path to access on the HTTP server.

false

string

port

Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

true

string

host

Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

false

string

scheme

Scheme to use for connecting to the host. Defaults to HTTP.

false

string

httpHeaders

Custom headers to set in the request. HTTP allows repeated headers.

false

v1.HTTPHeader array

- -
-
-

v1.StatusDetails

-
-

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

false

string

group

The group attribute of the resource associated with the status StatusReason.

false

string

kind

The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

uid

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

false

string

causes

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

false

v1.StatusCause array

retryAfterSeconds

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

false

integer (int32)

- -
-
-

v1.Container

-
-

A single application container that you want to run within a pod.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.

true

string

image

Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images

true

string

command

Entrypoint array. Not executed within a shell. The docker image’s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

false

string array

args

Arguments to the entrypoint. The docker image’s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

false

string array

workingDir

Container’s working directory. If not specified, the container runtime’s default will be used, which might be configured in the container image. Cannot be updated.

false

string

ports

List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Cannot be updated.

false

v1.ContainerPort array

envFrom

List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.

false

v1.EnvFromSource array

env

List of environment variables to set in the container. Cannot be updated.

false

v1.EnvVar array

resources

Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

false

v1.ResourceRequirements

volumeMounts

Pod volumes to mount into the container’s filesystem. Cannot be updated.

false

v1.VolumeMount array

livenessProbe

Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

v1.Probe

readinessProbe

Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

v1.Probe

lifecycle

Actions that the management system should take in response to container lifecycle events. Cannot be updated.

false

v1.Lifecycle

terminationMessagePath

Optional: Path at which the file to which the container’s termination message will be written is mounted into the container’s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.

false

string

terminationMessagePolicy

Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.

false

string

imagePullPolicy

Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

false

string

securityContext

Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

false

v1.SecurityContext

stdin

Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.

false

boolean

false

stdinOnce

Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false

false

boolean

false

tty

Whether this container should allocate a TTY for itself, also requires stdin to be true. Default is false.

false

boolean

false

- -
-
-

v1.PodSecurityContext

-
-

PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

seLinuxOptions

The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.

false

v1.SELinuxOptions

runAsUser

The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.

false

integer (int64)

runAsNonRoot

Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

boolean

false

supplementalGroups

A list of groups applied to the first process run in each container, in addition to the container’s primary GID. If unspecified, no groups will be added to any container.

false

integer (int32) array

fsGroup

A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:
-
-1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR’d with rw-rw

false

integer (int64)

- -
-
-

v1.OwnerReference

-
-

OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

apiVersion

API version of the referent.

true

string

kind

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

true

string

name

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

true

string

uid

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

true

string

controller

If true, this reference points to the managing controller.

false

boolean

false

blockOwnerDeletion

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

false

boolean

false

- -
-
-

v1.APIResource

-
-

APIResource specifies the name of a resource and whether it is namespaced.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

name is the plural name of the resource.

true

string

singularName

singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

true

string

namespaced

namespaced indicates if a resource is namespaced or not.

true

boolean

false

kind

kind is the kind for the resource (e.g. Foo is the kind for a resource foo)

true

string

verbs

verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)

true

string array

shortNames

shortNames is a list of suggested short names of the resource.

false

string array

categories

categories is a list of the grouped resources this resource belongs to (e.g. all)

false

string array

- -
-
-

v1.NodeSelectorRequirement

-
-

A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

key

The label key that the selector applies to.

true

string

operator

Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

true

string

values

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

false

string array

- -
-
-

v1.HostPathVolumeSource

-
-

Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

path

Path of the directory on the host. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

true

string

- -
-
-

v1.SecretProjection

-
-

Adapts a secret into a projected volume.

-
-
-

The contents of the target Secret’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

items

If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

optional

Specify whether the Secret or its key must be defined

false

boolean

false

- -
-
-

v1.CinderVolumeSource

-
-

Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

volumeID

volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

string

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

boolean

false

- -
-
-

v1.SecurityContext

-
-

SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

capabilities

The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.

false

v1.Capabilities

privileged

Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.

false

boolean

false

seLinuxOptions

The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

v1.SELinuxOptions

runAsUser

The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

integer (int64)

runAsNonRoot

Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

boolean

false

readOnlyRootFilesystem

Whether this container has a read-only root filesystem. Default is false.

false

boolean

false

allowPrivilegeEscalation

AllowPrivilegeEscalation controls whether a process can gain more privileges than it’s parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN

false

boolean

false

- -
-
-

v1beta2.Deployment

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. Deployment enables declarative updates for Pods and ReplicaSets.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object metadata.

false

v1.ObjectMeta

spec

Specification of the desired behavior of the Deployment.

false

v1beta2.DeploymentSpec

status

Most recently observed status of the Deployment.

false

v1beta2.DeploymentStatus

- -
-
-

v1beta2.DeploymentList

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentList is a list of Deployments.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata.

false

v1.ListMeta

items

Items is the list of Deployments.

true

v1beta2.Deployment array

- -
-
-

v1.AWSElasticBlockStoreVolumeSource

-
-

Represents a Persistent Disk resource in AWS.

-
-
-

An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

volumeID

Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

true

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

string

partition

The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

false

integer (int32)

readOnly

Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

boolean

false

- -
-
-

v1.QuobyteVolumeSource

-
-

Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

registry

Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes

true

string

volume

Volume is a string that references an already created Quobyte volume by name.

true

string

readOnly

ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.

false

boolean

false

user

User to map volume access to Defaults to serivceaccount user

false

string

group

Group to map volume access to Default is no group

false

string

- -
-
-

v1.WatchEvent

- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

type

true

string

object

true

string

- -
-
-

v1.LabelSelectorRequirement

-
-

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

key

key is the label key that the selector applies to.

true

string

operator

operator represents a key’s relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.

true

string

values

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

false

string array

- -
-
-

v1.EnvVar

-
-

EnvVar represents an environment variable present in a Container.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the environment variable. Must be a C_IDENTIFIER.

true

string

value

Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".

false

string

valueFrom

Source for the environment variable’s value. Cannot be used if value is not empty.

false

v1.EnvVarSource

- -
-
-

v1.PersistentVolumeAccessMode

- -
-
-

v1.ResourceRequirements

-
-

ResourceRequirements describes the compute resource requirements.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

limits

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

false

object

requests

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

false

object

- -
-
-

v1.HostAlias

-
-

HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod’s hosts file.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

ip

IP address of the host file entry.

false

string

hostnames

Hostnames for the above IP address.

false

string array

- -
-
-

v1beta2.RollingUpdateDeployment

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of rolling update.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

maxUnavailable

The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.

false

string

maxSurge

The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.

false

string

- -
-
-

v1.PodTemplateSpec

-
-

PodTemplateSpec describes the data a pod should have when created from a template

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

metadata

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1.PodSpec

- -
-
-

v1beta2.ScaleSpec

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleSpec describes the attributes of a scale subresource

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

replicas

desired number of instances for the scaled object.

false

integer (int32)

- -
-
-

v1.NodeSelector

-
-

A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.

-
- ------- - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

nodeSelectorTerms

Required. A list of node selector terms. The terms are ORed.

true

v1.NodeSelectorTerm array

- -
-
-

v1beta2.DaemonSetSpec

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetSpec is the specification of a daemon set.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

selector

A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

v1.LabelSelector

template

An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template’s node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

true

v1.PodTemplateSpec

updateStrategy

An update strategy to replace existing DaemonSet pods with new pods.

false

v1beta2.DaemonSetUpdateStrategy

minReadySeconds

The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).

false

integer (int32)

templateGeneration

DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.

false

integer (int64)

revisionHistoryLimit

The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.

false

integer (int32)

- -
-
-

v1.Patch

-
-

Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

-
-
-
-

v1.ConfigMapEnvSource

-
-

ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.

-
-
-

The contents of the target ConfigMap’s Data field will represent the key-value pairs as environment variables.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

optional

Specify whether the ConfigMap must be defined

false

boolean

false

- -
-
-

v1beta2.ReplicaSetCondition

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetCondition describes the state of a replica set at a certain point.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

type

Type of replica set condition.

true

string

status

Status of the condition, one of True, False, Unknown.

true

string

lastTransitionTime

The last time the condition transitioned from one status to another.

false

string

reason

The reason for the condition’s last transition.

false

string

message

A human readable message indicating details about the transition.

false

string

- -
-
-

v1.StorageOSVolumeSource

-
-

Represents a StorageOS persistent volume resource.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

volumeName

VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.

false

string

volumeNamespace

VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod’s namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.

false

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

secretRef

SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.

false

v1.LocalObjectReference

- -
-
-

v1beta2.DaemonSetUpdateStrategy

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

type

Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is OnDelete.

false

string

rollingUpdate

Rolling update config params. Present only if type = "RollingUpdate".

false

v1beta2.RollingUpdateDaemonSet

- -
-
-

v1beta2.ReplicaSetSpec

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetSpec is the specification of a ReplicaSet.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

replicas

Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

false

integer (int32)

minReadySeconds

Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)

false

integer (int32)

selector

Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

v1.LabelSelector

template

Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

false

v1.PodTemplateSpec

- -
-
-

v1.NodeAffinity

-
-

Node affinity is a group of node affinity scheduling rules.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

requiredDuringSchedulingIgnoredDuringExecution

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.

false

v1.NodeSelector

preferredDuringSchedulingIgnoredDuringExecution

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.

false

v1.PreferredSchedulingTerm array

- -
-
-

v1.AzureDataDiskKind

- -
-
-

v1.PreferredSchedulingTerm

-
-

An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

weight

Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.

true

integer (int32)

preference

A node selector term, associated with the corresponding weight.

true

v1.NodeSelectorTerm

- -
-
-

v1.ConfigMapKeySelector

-
-

Selects a key from a ConfigMap.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

key

The key to select.

true

string

optional

Specify whether the ConfigMap or it’s key must be defined

false

boolean

false

- -
-
-

v1beta2.StatefulSetUpdateStrategy

-
-

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

type

Type indicates the type of the StatefulSetUpdateStrategy.

false

string

rollingUpdate

RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.

false

v1beta2.RollingUpdateStatefulSetStrategy

- -
-
-

v1.AzureDataDiskCachingMode

- -
-
-

any

-
-

Represents an untyped JSON map - see the description of the field for more info about the structure of this object.

-
-
-
- - - - - \ No newline at end of file diff --git a/pkg/apis/apps/v1beta2/zz_generated.defaults.go b/pkg/apis/apps/v1beta2/zz_generated.defaults.go deleted file mode 100644 index 02ced2d8e39..00000000000 --- a/pkg/apis/apps/v1beta2/zz_generated.defaults.go +++ /dev/null @@ -1,613 +0,0 @@ -// +build !ignore_autogenerated - -/* -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. -*/ - -// This file was autogenerated by defaulter-gen. Do not edit it manually! - -package v1beta2 - -import ( - v1beta2 "k8s.io/api/apps/v1beta2" - runtime "k8s.io/apimachinery/pkg/runtime" - v1 "k8s.io/kubernetes/pkg/api/v1" -) - -// RegisterDefaults adds defaulters functions to the given scheme. -// Public to allow building arbitrary schemes. -// All generated defaulters are covering - they call all nested defaulters. -func RegisterDefaults(scheme *runtime.Scheme) error { - scheme.AddTypeDefaultingFunc(&v1beta2.DaemonSet{}, func(obj interface{}) { SetObjectDefaults_DaemonSet(obj.(*v1beta2.DaemonSet)) }) - scheme.AddTypeDefaultingFunc(&v1beta2.DaemonSetList{}, func(obj interface{}) { SetObjectDefaults_DaemonSetList(obj.(*v1beta2.DaemonSetList)) }) - scheme.AddTypeDefaultingFunc(&v1beta2.Deployment{}, func(obj interface{}) { SetObjectDefaults_Deployment(obj.(*v1beta2.Deployment)) }) - scheme.AddTypeDefaultingFunc(&v1beta2.DeploymentList{}, func(obj interface{}) { SetObjectDefaults_DeploymentList(obj.(*v1beta2.DeploymentList)) }) - scheme.AddTypeDefaultingFunc(&v1beta2.ReplicaSet{}, func(obj interface{}) { SetObjectDefaults_ReplicaSet(obj.(*v1beta2.ReplicaSet)) }) - scheme.AddTypeDefaultingFunc(&v1beta2.ReplicaSetList{}, func(obj interface{}) { SetObjectDefaults_ReplicaSetList(obj.(*v1beta2.ReplicaSetList)) }) - scheme.AddTypeDefaultingFunc(&v1beta2.StatefulSet{}, func(obj interface{}) { SetObjectDefaults_StatefulSet(obj.(*v1beta2.StatefulSet)) }) - scheme.AddTypeDefaultingFunc(&v1beta2.StatefulSetList{}, func(obj interface{}) { SetObjectDefaults_StatefulSetList(obj.(*v1beta2.StatefulSetList)) }) - return nil -} - -func SetObjectDefaults_DaemonSet(in *v1beta2.DaemonSet) { - SetDefaults_DaemonSet(in) - v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) - for i := range in.Spec.Template.Spec.Volumes { - a := &in.Spec.Template.Spec.Volumes[i] - v1.SetDefaults_Volume(a) - if a.VolumeSource.Secret != nil { - v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) - } - if a.VolumeSource.ISCSI != nil { - v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) - } - if a.VolumeSource.RBD != nil { - v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) - } - if a.VolumeSource.DownwardAPI != nil { - v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) - for j := range a.VolumeSource.DownwardAPI.Items { - b := &a.VolumeSource.DownwardAPI.Items[j] - if b.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.FieldRef) - } - } - } - if a.VolumeSource.ConfigMap != nil { - v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) - } - if a.VolumeSource.AzureDisk != nil { - v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) - } - if a.VolumeSource.Projected != nil { - v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) - for j := range a.VolumeSource.Projected.Sources { - b := &a.VolumeSource.Projected.Sources[j] - if b.DownwardAPI != nil { - for k := range b.DownwardAPI.Items { - c := &b.DownwardAPI.Items[k] - if c.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(c.FieldRef) - } - } - } - } - } - if a.VolumeSource.ScaleIO != nil { - v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) - } - } - for i := range in.Spec.Template.Spec.InitContainers { - a := &in.Spec.Template.Spec.InitContainers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } - for i := range in.Spec.Template.Spec.Containers { - a := &in.Spec.Template.Spec.Containers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } -} - -func SetObjectDefaults_DaemonSetList(in *v1beta2.DaemonSetList) { - for i := range in.Items { - a := &in.Items[i] - SetObjectDefaults_DaemonSet(a) - } -} - -func SetObjectDefaults_Deployment(in *v1beta2.Deployment) { - SetDefaults_Deployment(in) - v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) - for i := range in.Spec.Template.Spec.Volumes { - a := &in.Spec.Template.Spec.Volumes[i] - v1.SetDefaults_Volume(a) - if a.VolumeSource.Secret != nil { - v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) - } - if a.VolumeSource.ISCSI != nil { - v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) - } - if a.VolumeSource.RBD != nil { - v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) - } - if a.VolumeSource.DownwardAPI != nil { - v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) - for j := range a.VolumeSource.DownwardAPI.Items { - b := &a.VolumeSource.DownwardAPI.Items[j] - if b.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.FieldRef) - } - } - } - if a.VolumeSource.ConfigMap != nil { - v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) - } - if a.VolumeSource.AzureDisk != nil { - v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) - } - if a.VolumeSource.Projected != nil { - v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) - for j := range a.VolumeSource.Projected.Sources { - b := &a.VolumeSource.Projected.Sources[j] - if b.DownwardAPI != nil { - for k := range b.DownwardAPI.Items { - c := &b.DownwardAPI.Items[k] - if c.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(c.FieldRef) - } - } - } - } - } - if a.VolumeSource.ScaleIO != nil { - v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) - } - } - for i := range in.Spec.Template.Spec.InitContainers { - a := &in.Spec.Template.Spec.InitContainers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } - for i := range in.Spec.Template.Spec.Containers { - a := &in.Spec.Template.Spec.Containers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } -} - -func SetObjectDefaults_DeploymentList(in *v1beta2.DeploymentList) { - for i := range in.Items { - a := &in.Items[i] - SetObjectDefaults_Deployment(a) - } -} - -func SetObjectDefaults_ReplicaSet(in *v1beta2.ReplicaSet) { - SetDefaults_ReplicaSet(in) - v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) - for i := range in.Spec.Template.Spec.Volumes { - a := &in.Spec.Template.Spec.Volumes[i] - v1.SetDefaults_Volume(a) - if a.VolumeSource.Secret != nil { - v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) - } - if a.VolumeSource.ISCSI != nil { - v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) - } - if a.VolumeSource.RBD != nil { - v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) - } - if a.VolumeSource.DownwardAPI != nil { - v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) - for j := range a.VolumeSource.DownwardAPI.Items { - b := &a.VolumeSource.DownwardAPI.Items[j] - if b.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.FieldRef) - } - } - } - if a.VolumeSource.ConfigMap != nil { - v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) - } - if a.VolumeSource.AzureDisk != nil { - v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) - } - if a.VolumeSource.Projected != nil { - v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) - for j := range a.VolumeSource.Projected.Sources { - b := &a.VolumeSource.Projected.Sources[j] - if b.DownwardAPI != nil { - for k := range b.DownwardAPI.Items { - c := &b.DownwardAPI.Items[k] - if c.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(c.FieldRef) - } - } - } - } - } - if a.VolumeSource.ScaleIO != nil { - v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) - } - } - for i := range in.Spec.Template.Spec.InitContainers { - a := &in.Spec.Template.Spec.InitContainers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } - for i := range in.Spec.Template.Spec.Containers { - a := &in.Spec.Template.Spec.Containers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } -} - -func SetObjectDefaults_ReplicaSetList(in *v1beta2.ReplicaSetList) { - for i := range in.Items { - a := &in.Items[i] - SetObjectDefaults_ReplicaSet(a) - } -} - -func SetObjectDefaults_StatefulSet(in *v1beta2.StatefulSet) { - SetDefaults_StatefulSet(in) - v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) - for i := range in.Spec.Template.Spec.Volumes { - a := &in.Spec.Template.Spec.Volumes[i] - v1.SetDefaults_Volume(a) - if a.VolumeSource.Secret != nil { - v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) - } - if a.VolumeSource.ISCSI != nil { - v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) - } - if a.VolumeSource.RBD != nil { - v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) - } - if a.VolumeSource.DownwardAPI != nil { - v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) - for j := range a.VolumeSource.DownwardAPI.Items { - b := &a.VolumeSource.DownwardAPI.Items[j] - if b.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.FieldRef) - } - } - } - if a.VolumeSource.ConfigMap != nil { - v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) - } - if a.VolumeSource.AzureDisk != nil { - v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) - } - if a.VolumeSource.Projected != nil { - v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) - for j := range a.VolumeSource.Projected.Sources { - b := &a.VolumeSource.Projected.Sources[j] - if b.DownwardAPI != nil { - for k := range b.DownwardAPI.Items { - c := &b.DownwardAPI.Items[k] - if c.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(c.FieldRef) - } - } - } - } - } - if a.VolumeSource.ScaleIO != nil { - v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) - } - } - for i := range in.Spec.Template.Spec.InitContainers { - a := &in.Spec.Template.Spec.InitContainers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } - for i := range in.Spec.Template.Spec.Containers { - a := &in.Spec.Template.Spec.Containers[i] - v1.SetDefaults_Container(a) - for j := range a.Ports { - b := &a.Ports[j] - v1.SetDefaults_ContainerPort(b) - } - for j := range a.Env { - b := &a.Env[j] - if b.ValueFrom != nil { - if b.ValueFrom.FieldRef != nil { - v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) - } - } - } - v1.SetDefaults_ResourceList(&a.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Resources.Requests) - if a.LivenessProbe != nil { - v1.SetDefaults_Probe(a.LivenessProbe) - if a.LivenessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) - } - } - if a.ReadinessProbe != nil { - v1.SetDefaults_Probe(a.ReadinessProbe) - if a.ReadinessProbe.Handler.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) - } - } - if a.Lifecycle != nil { - if a.Lifecycle.PostStart != nil { - if a.Lifecycle.PostStart.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) - } - } - if a.Lifecycle.PreStop != nil { - if a.Lifecycle.PreStop.HTTPGet != nil { - v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) - } - } - } - } - for i := range in.Spec.VolumeClaimTemplates { - a := &in.Spec.VolumeClaimTemplates[i] - v1.SetDefaults_PersistentVolumeClaim(a) - v1.SetDefaults_ResourceList(&a.Spec.Resources.Limits) - v1.SetDefaults_ResourceList(&a.Spec.Resources.Requests) - v1.SetDefaults_ResourceList(&a.Status.Capacity) - } -} - -func SetObjectDefaults_StatefulSetList(in *v1beta2.StatefulSetList) { - for i := range in.Items { - a := &in.Items[i] - SetObjectDefaults_StatefulSet(a) - } -} diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go deleted file mode 100644 index a6550b091a5..00000000000 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go +++ /dev/null @@ -1,7042 +0,0 @@ -/* -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. -*/ - -// Code generated by protoc-gen-gogo. -// source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto -// DO NOT EDIT! - -/* - Package v1beta2 is a generated protocol buffer package. - - It is generated from these files: - k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto - - It has these top-level messages: - DaemonSet - DaemonSetList - DaemonSetSpec - DaemonSetStatus - DaemonSetUpdateStrategy - Deployment - DeploymentCondition - DeploymentList - DeploymentRollback - DeploymentSpec - DeploymentStatus - DeploymentStrategy - ReplicaSet - ReplicaSetCondition - ReplicaSetList - ReplicaSetSpec - ReplicaSetStatus - RollbackConfig - RollingUpdateDaemonSet - RollingUpdateDeployment - RollingUpdateStatefulSetStrategy - Scale - ScaleSpec - ScaleStatus - StatefulSet - StatefulSetList - StatefulSetSpec - StatefulSetStatus - StatefulSetUpdateStrategy -*/ -package v1beta2 - -import proto "github.com/gogo/protobuf/proto" -import fmt "fmt" -import math "math" - -import k8s_io_api_core_v1 "k8s.io/api/core/v1" - -import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - -import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" - -import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" - -import strings "strings" -import reflect "reflect" - -import io "io" - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package - -func (m *DaemonSet) Reset() { *m = DaemonSet{} } -func (*DaemonSet) ProtoMessage() {} -func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } - -func (m *DaemonSetList) Reset() { *m = DaemonSetList{} } -func (*DaemonSetList) ProtoMessage() {} -func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } - -func (m *DaemonSetSpec) Reset() { *m = DaemonSetSpec{} } -func (*DaemonSetSpec) ProtoMessage() {} -func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } - -func (m *DaemonSetStatus) Reset() { *m = DaemonSetStatus{} } -func (*DaemonSetStatus) ProtoMessage() {} -func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } - -func (m *DaemonSetUpdateStrategy) Reset() { *m = DaemonSetUpdateStrategy{} } -func (*DaemonSetUpdateStrategy) ProtoMessage() {} -func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } - -func (m *Deployment) Reset() { *m = Deployment{} } -func (*Deployment) ProtoMessage() {} -func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } - -func (m *DeploymentCondition) Reset() { *m = DeploymentCondition{} } -func (*DeploymentCondition) ProtoMessage() {} -func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } - -func (m *DeploymentList) Reset() { *m = DeploymentList{} } -func (*DeploymentList) ProtoMessage() {} -func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } - -func (m *DeploymentRollback) Reset() { *m = DeploymentRollback{} } -func (*DeploymentRollback) ProtoMessage() {} -func (*DeploymentRollback) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } - -func (m *DeploymentSpec) Reset() { *m = DeploymentSpec{} } -func (*DeploymentSpec) ProtoMessage() {} -func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } - -func (m *DeploymentStatus) Reset() { *m = DeploymentStatus{} } -func (*DeploymentStatus) ProtoMessage() {} -func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } - -func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } -func (*DeploymentStrategy) ProtoMessage() {} -func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } - -func (m *ReplicaSet) Reset() { *m = ReplicaSet{} } -func (*ReplicaSet) ProtoMessage() {} -func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } - -func (m *ReplicaSetCondition) Reset() { *m = ReplicaSetCondition{} } -func (*ReplicaSetCondition) ProtoMessage() {} -func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } - -func (m *ReplicaSetList) Reset() { *m = ReplicaSetList{} } -func (*ReplicaSetList) ProtoMessage() {} -func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } - -func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} } -func (*ReplicaSetSpec) ProtoMessage() {} -func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } - -func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} } -func (*ReplicaSetStatus) ProtoMessage() {} -func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } - -func (m *RollbackConfig) Reset() { *m = RollbackConfig{} } -func (*RollbackConfig) ProtoMessage() {} -func (*RollbackConfig) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } - -func (m *RollingUpdateDaemonSet) Reset() { *m = RollingUpdateDaemonSet{} } -func (*RollingUpdateDaemonSet) ProtoMessage() {} -func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } - -func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} } -func (*RollingUpdateDeployment) ProtoMessage() {} -func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{19} -} - -func (m *RollingUpdateStatefulSetStrategy) Reset() { *m = RollingUpdateStatefulSetStrategy{} } -func (*RollingUpdateStatefulSetStrategy) ProtoMessage() {} -func (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{20} -} - -func (m *Scale) Reset() { *m = Scale{} } -func (*Scale) ProtoMessage() {} -func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } - -func (m *ScaleSpec) Reset() { *m = ScaleSpec{} } -func (*ScaleSpec) ProtoMessage() {} -func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } - -func (m *ScaleStatus) Reset() { *m = ScaleStatus{} } -func (*ScaleStatus) ProtoMessage() {} -func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } - -func (m *StatefulSet) Reset() { *m = StatefulSet{} } -func (*StatefulSet) ProtoMessage() {} -func (*StatefulSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } - -func (m *StatefulSetList) Reset() { *m = StatefulSetList{} } -func (*StatefulSetList) ProtoMessage() {} -func (*StatefulSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } - -func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} } -func (*StatefulSetSpec) ProtoMessage() {} -func (*StatefulSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } - -func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} } -func (*StatefulSetStatus) ProtoMessage() {} -func (*StatefulSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } - -func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} } -func (*StatefulSetUpdateStrategy) ProtoMessage() {} -func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{28} -} - -func init() { - proto.RegisterType((*DaemonSet)(nil), "k8s.io.api.apps.v1beta2.DaemonSet") - proto.RegisterType((*DaemonSetList)(nil), "k8s.io.api.apps.v1beta2.DaemonSetList") - proto.RegisterType((*DaemonSetSpec)(nil), "k8s.io.api.apps.v1beta2.DaemonSetSpec") - proto.RegisterType((*DaemonSetStatus)(nil), "k8s.io.api.apps.v1beta2.DaemonSetStatus") - proto.RegisterType((*DaemonSetUpdateStrategy)(nil), "k8s.io.api.apps.v1beta2.DaemonSetUpdateStrategy") - proto.RegisterType((*Deployment)(nil), "k8s.io.api.apps.v1beta2.Deployment") - proto.RegisterType((*DeploymentCondition)(nil), "k8s.io.api.apps.v1beta2.DeploymentCondition") - proto.RegisterType((*DeploymentList)(nil), "k8s.io.api.apps.v1beta2.DeploymentList") - proto.RegisterType((*DeploymentRollback)(nil), "k8s.io.api.apps.v1beta2.DeploymentRollback") - proto.RegisterType((*DeploymentSpec)(nil), "k8s.io.api.apps.v1beta2.DeploymentSpec") - proto.RegisterType((*DeploymentStatus)(nil), "k8s.io.api.apps.v1beta2.DeploymentStatus") - proto.RegisterType((*DeploymentStrategy)(nil), "k8s.io.api.apps.v1beta2.DeploymentStrategy") - proto.RegisterType((*ReplicaSet)(nil), "k8s.io.api.apps.v1beta2.ReplicaSet") - proto.RegisterType((*ReplicaSetCondition)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetCondition") - proto.RegisterType((*ReplicaSetList)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetList") - proto.RegisterType((*ReplicaSetSpec)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetSpec") - proto.RegisterType((*ReplicaSetStatus)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetStatus") - proto.RegisterType((*RollbackConfig)(nil), "k8s.io.api.apps.v1beta2.RollbackConfig") - proto.RegisterType((*RollingUpdateDaemonSet)(nil), "k8s.io.api.apps.v1beta2.RollingUpdateDaemonSet") - proto.RegisterType((*RollingUpdateDeployment)(nil), "k8s.io.api.apps.v1beta2.RollingUpdateDeployment") - proto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), "k8s.io.api.apps.v1beta2.RollingUpdateStatefulSetStrategy") - proto.RegisterType((*Scale)(nil), "k8s.io.api.apps.v1beta2.Scale") - proto.RegisterType((*ScaleSpec)(nil), "k8s.io.api.apps.v1beta2.ScaleSpec") - proto.RegisterType((*ScaleStatus)(nil), "k8s.io.api.apps.v1beta2.ScaleStatus") - proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1beta2.StatefulSet") - proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1beta2.StatefulSetList") - proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1beta2.StatefulSetSpec") - proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1beta2.StatefulSetStatus") - proto.RegisterType((*StatefulSetUpdateStrategy)(nil), "k8s.io.api.apps.v1beta2.StatefulSetUpdateStrategy") -} -func (m *DaemonSet) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n1 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n2, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n2 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n3, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n3 - return i, nil -} - -func (m *DaemonSetList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n4, err := m.ListMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n4 - if len(m.Items) > 0 { - for _, msg := range m.Items { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Selector != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n5, err := m.Selector.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n5 - } - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n6, err := m.Template.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n6 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n7, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n7 - dAtA[i] = 0x20 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) - dAtA[i] = 0x28 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.TemplateGeneration)) - if m.RevisionHistoryLimit != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) - } - return i, nil -} - -func (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled)) - dAtA[i] = 0x10 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled)) - dAtA[i] = 0x18 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled)) - dAtA[i] = 0x20 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady)) - dAtA[i] = 0x28 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) - dAtA[i] = 0x30 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled)) - dAtA[i] = 0x38 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable)) - dAtA[i] = 0x40 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable)) - if m.CollisionCount != nil { - dAtA[i] = 0x48 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) - } - return i, nil -} - -func (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - if m.RollingUpdate != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n8, err := m.RollingUpdate.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n8 - } - return i, nil -} - -func (m *Deployment) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Deployment) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n9, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n9 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n10, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n10 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n11, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n11 - return i, nil -} - -func (m *DeploymentCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i += copy(dAtA[i:], m.Status) - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i += copy(dAtA[i:], m.Reason) - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i += copy(dAtA[i:], m.Message) - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastUpdateTime.Size())) - n12, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n12 - dAtA[i] = 0x3a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n13, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n13 - return i, nil -} - -func (m *DeploymentList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n14, err := m.ListMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n14 - if len(m.Items) > 0 { - for _, msg := range m.Items { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *DeploymentRollback) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentRollback) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) - i += copy(dAtA[i:], m.Name) - if len(m.UpdatedAnnotations) > 0 { - keysForUpdatedAnnotations := make([]string, 0, len(m.UpdatedAnnotations)) - for k := range m.UpdatedAnnotations { - keysForUpdatedAnnotations = append(keysForUpdatedAnnotations, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations) - for _, k := range keysForUpdatedAnnotations { - dAtA[i] = 0x12 - i++ - v := m.UpdatedAnnotations[string(k)] - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RollbackTo.Size())) - n15, err := m.RollbackTo.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n15 - return i, nil -} - -func (m *DeploymentSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Replicas != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) - } - if m.Selector != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n16, err := m.Selector.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n16 - } - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n17, err := m.Template.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n17 - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Strategy.Size())) - n18, err := m.Strategy.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n18 - dAtA[i] = 0x28 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) - if m.RevisionHistoryLimit != nil { - dAtA[i] = 0x30 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) - } - dAtA[i] = 0x38 - i++ - if m.Paused { - dAtA[i] = 1 - } else { - dAtA[i] = 0 - } - i++ - if m.RollbackTo != nil { - dAtA[i] = 0x42 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RollbackTo.Size())) - n19, err := m.RollbackTo.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n19 - } - if m.ProgressDeadlineSeconds != nil { - dAtA[i] = 0x48 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds)) - } - return i, nil -} - -func (m *DeploymentStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) - dAtA[i] = 0x10 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) - dAtA[i] = 0x18 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) - dAtA[i] = 0x20 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) - dAtA[i] = 0x28 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas)) - if len(m.Conditions) > 0 { - for _, msg := range m.Conditions { - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - dAtA[i] = 0x38 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) - if m.CollisionCount != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) - } - return i, nil -} - -func (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - if m.RollingUpdate != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n20, err := m.RollingUpdate.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n20 - } - return i, nil -} - -func (m *ReplicaSet) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n21, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n21 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n22, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n22 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n23, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n23 - return i, nil -} - -func (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) - i += copy(dAtA[i:], m.Status) - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n24, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n24 - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) - i += copy(dAtA[i:], m.Reason) - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) - i += copy(dAtA[i:], m.Message) - return i, nil -} - -func (m *ReplicaSetList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n25, err := m.ListMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n25 - if len(m.Items) > 0 { - for _, msg := range m.Items { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Replicas != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) - } - if m.Selector != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n26, err := m.Selector.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n26 - } - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n27, err := m.Template.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n27 - dAtA[i] = 0x20 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) - return i, nil -} - -func (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) - dAtA[i] = 0x10 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas)) - dAtA[i] = 0x18 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) - dAtA[i] = 0x20 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) - dAtA[i] = 0x28 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) - if len(m.Conditions) > 0 { - for _, msg := range m.Conditions { - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *RollbackConfig) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RollbackConfig) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Revision)) - return i, nil -} - -func (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.MaxUnavailable != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n28, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n28 - } - return i, nil -} - -func (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.MaxUnavailable != nil { - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) - n29, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n29 - } - if m.MaxSurge != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.MaxSurge.Size())) - n30, err := m.MaxSurge.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n30 - } - return i, nil -} - -func (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Partition != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.Partition)) - } - return i, nil -} - -func (m *Scale) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *Scale) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n31, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n31 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n32, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n32 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n33, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n33 - return i, nil -} - -func (m *ScaleSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) - return i, nil -} - -func (m *ScaleStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) - if len(m.Selector) > 0 { - keysForSelector := make([]string, 0, len(m.Selector)) - for k := range m.Selector { - keysForSelector = append(keysForSelector, string(k)) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForSelector) - for _, k := range keysForSelector { - dAtA[i] = 0x12 - i++ - v := m.Selector[string(k)] - mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(k))) - i += copy(dAtA[i:], k) - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(v))) - i += copy(dAtA[i:], v) - } - } - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector))) - i += copy(dAtA[i:], m.TargetSelector) - return i, nil -} - -func (m *StatefulSet) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n34, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n34 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n35, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n35 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n36, err := m.Status.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n36 - return i, nil -} - -func (m *StatefulSetList) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n37, err := m.ListMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n37 - if len(m.Items) > 0 { - for _, msg := range m.Items { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - return i, nil -} - -func (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - if m.Replicas != nil { - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) - } - if m.Selector != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n38, err := m.Selector.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n38 - } - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n39, err := m.Template.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n39 - if len(m.VolumeClaimTemplates) > 0 { - for _, msg := range m.VolumeClaimTemplates { - dAtA[i] = 0x22 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) - n, err := msg.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n - } - } - dAtA[i] = 0x2a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName))) - i += copy(dAtA[i:], m.ServiceName) - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy))) - i += copy(dAtA[i:], m.PodManagementPolicy) - dAtA[i] = 0x3a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) - n40, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n40 - if m.RevisionHistoryLimit != nil { - dAtA[i] = 0x40 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) - } - return i, nil -} - -func (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0x8 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) - dAtA[i] = 0x10 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) - dAtA[i] = 0x18 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) - dAtA[i] = 0x20 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas)) - dAtA[i] = 0x28 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) - dAtA[i] = 0x32 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision))) - i += copy(dAtA[i:], m.CurrentRevision) - dAtA[i] = 0x3a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) - i += copy(dAtA[i:], m.UpdateRevision) - return i, nil -} - -func (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) { - size := m.Size() - dAtA = make([]byte, size) - n, err := m.MarshalTo(dAtA) - if err != nil { - return nil, err - } - return dAtA[:n], nil -} - -func (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { - var i int - _ = i - var l int - _ = l - dAtA[i] = 0xa - i++ - i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) - i += copy(dAtA[i:], m.Type) - if m.RollingUpdate != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) - n41, err := m.RollingUpdate.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n41 - } - return i, nil -} - -func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - dAtA[offset+4] = uint8(v >> 32) - dAtA[offset+5] = uint8(v >> 40) - dAtA[offset+6] = uint8(v >> 48) - dAtA[offset+7] = uint8(v >> 56) - return offset + 8 -} -func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { - dAtA[offset] = uint8(v) - dAtA[offset+1] = uint8(v >> 8) - dAtA[offset+2] = uint8(v >> 16) - dAtA[offset+3] = uint8(v >> 24) - return offset + 4 -} -func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { - for v >= 1<<7 { - dAtA[offset] = uint8(v&0x7f | 0x80) - v >>= 7 - offset++ - } - dAtA[offset] = uint8(v) - return offset + 1 -} -func (m *DaemonSet) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DaemonSetList) Size() (n int) { - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *DaemonSetSpec) Size() (n int) { - var l int - _ = l - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.UpdateStrategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.MinReadySeconds)) - n += 1 + sovGenerated(uint64(m.TemplateGeneration)) - if m.RevisionHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) - } - return n -} - -func (m *DaemonSetStatus) Size() (n int) { - var l int - _ = l - n += 1 + sovGenerated(uint64(m.CurrentNumberScheduled)) - n += 1 + sovGenerated(uint64(m.NumberMisscheduled)) - n += 1 + sovGenerated(uint64(m.DesiredNumberScheduled)) - n += 1 + sovGenerated(uint64(m.NumberReady)) - n += 1 + sovGenerated(uint64(m.ObservedGeneration)) - n += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled)) - n += 1 + sovGenerated(uint64(m.NumberAvailable)) - n += 1 + sovGenerated(uint64(m.NumberUnavailable)) - if m.CollisionCount != nil { - n += 1 + sovGenerated(uint64(*m.CollisionCount)) - } - return n -} - -func (m *DaemonSetUpdateStrategy) Size() (n int) { - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.RollingUpdate != nil { - l = m.RollingUpdate.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *Deployment) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DeploymentCondition) Size() (n int) { - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastUpdateTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DeploymentList) Size() (n int) { - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *DeploymentRollback) Size() (n int) { - var l int - _ = l - l = len(m.Name) - n += 1 + l + sovGenerated(uint64(l)) - if len(m.UpdatedAnnotations) > 0 { - for k, v := range m.UpdatedAnnotations { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - l = m.RollbackTo.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *DeploymentSpec) Size() (n int) { - var l int - _ = l - if m.Replicas != nil { - n += 1 + sovGenerated(uint64(*m.Replicas)) - } - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Strategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.MinReadySeconds)) - if m.RevisionHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) - } - n += 2 - if m.RollbackTo != nil { - l = m.RollbackTo.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.ProgressDeadlineSeconds != nil { - n += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds)) - } - return n -} - -func (m *DeploymentStatus) Size() (n int) { - var l int - _ = l - n += 1 + sovGenerated(uint64(m.ObservedGeneration)) - n += 1 + sovGenerated(uint64(m.Replicas)) - n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) - n += 1 + sovGenerated(uint64(m.AvailableReplicas)) - n += 1 + sovGenerated(uint64(m.UnavailableReplicas)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - n += 1 + sovGenerated(uint64(m.ReadyReplicas)) - if m.CollisionCount != nil { - n += 1 + sovGenerated(uint64(*m.CollisionCount)) - } - return n -} - -func (m *DeploymentStrategy) Size() (n int) { - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.RollingUpdate != nil { - l = m.RollingUpdate.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *ReplicaSet) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ReplicaSetCondition) Size() (n int) { - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Status) - n += 1 + l + sovGenerated(uint64(l)) - l = m.LastTransitionTime.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Reason) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.Message) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ReplicaSetList) Size() (n int) { - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *ReplicaSetSpec) Size() (n int) { - var l int - _ = l - if m.Replicas != nil { - n += 1 + sovGenerated(uint64(*m.Replicas)) - } - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - n += 1 + sovGenerated(uint64(m.MinReadySeconds)) - return n -} - -func (m *ReplicaSetStatus) Size() (n int) { - var l int - _ = l - n += 1 + sovGenerated(uint64(m.Replicas)) - n += 1 + sovGenerated(uint64(m.FullyLabeledReplicas)) - n += 1 + sovGenerated(uint64(m.ObservedGeneration)) - n += 1 + sovGenerated(uint64(m.ReadyReplicas)) - n += 1 + sovGenerated(uint64(m.AvailableReplicas)) - if len(m.Conditions) > 0 { - for _, e := range m.Conditions { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *RollbackConfig) Size() (n int) { - var l int - _ = l - n += 1 + sovGenerated(uint64(m.Revision)) - return n -} - -func (m *RollingUpdateDaemonSet) Size() (n int) { - var l int - _ = l - if m.MaxUnavailable != nil { - l = m.MaxUnavailable.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *RollingUpdateDeployment) Size() (n int) { - var l int - _ = l - if m.MaxUnavailable != nil { - l = m.MaxUnavailable.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - if m.MaxSurge != nil { - l = m.MaxSurge.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func (m *RollingUpdateStatefulSetStrategy) Size() (n int) { - var l int - _ = l - if m.Partition != nil { - n += 1 + sovGenerated(uint64(*m.Partition)) - } - return n -} - -func (m *Scale) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *ScaleSpec) Size() (n int) { - var l int - _ = l - n += 1 + sovGenerated(uint64(m.Replicas)) - return n -} - -func (m *ScaleStatus) Size() (n int) { - var l int - _ = l - n += 1 + sovGenerated(uint64(m.Replicas)) - if len(m.Selector) > 0 { - for k, v := range m.Selector { - _ = k - _ = v - mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) - n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) - } - } - l = len(m.TargetSelector) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *StatefulSet) Size() (n int) { - var l int - _ = l - l = m.ObjectMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Spec.Size() - n += 1 + l + sovGenerated(uint64(l)) - l = m.Status.Size() - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *StatefulSetList) Size() (n int) { - var l int - _ = l - l = m.ListMeta.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.Items) > 0 { - for _, e := range m.Items { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - return n -} - -func (m *StatefulSetSpec) Size() (n int) { - var l int - _ = l - if m.Replicas != nil { - n += 1 + sovGenerated(uint64(*m.Replicas)) - } - if m.Selector != nil { - l = m.Selector.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - l = m.Template.Size() - n += 1 + l + sovGenerated(uint64(l)) - if len(m.VolumeClaimTemplates) > 0 { - for _, e := range m.VolumeClaimTemplates { - l = e.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - } - l = len(m.ServiceName) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.PodManagementPolicy) - n += 1 + l + sovGenerated(uint64(l)) - l = m.UpdateStrategy.Size() - n += 1 + l + sovGenerated(uint64(l)) - if m.RevisionHistoryLimit != nil { - n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) - } - return n -} - -func (m *StatefulSetStatus) Size() (n int) { - var l int - _ = l - n += 1 + sovGenerated(uint64(m.ObservedGeneration)) - n += 1 + sovGenerated(uint64(m.Replicas)) - n += 1 + sovGenerated(uint64(m.ReadyReplicas)) - n += 1 + sovGenerated(uint64(m.CurrentReplicas)) - n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) - l = len(m.CurrentRevision) - n += 1 + l + sovGenerated(uint64(l)) - l = len(m.UpdateRevision) - n += 1 + l + sovGenerated(uint64(l)) - return n -} - -func (m *StatefulSetUpdateStrategy) Size() (n int) { - var l int - _ = l - l = len(m.Type) - n += 1 + l + sovGenerated(uint64(l)) - if m.RollingUpdate != nil { - l = m.RollingUpdate.Size() - n += 1 + l + sovGenerated(uint64(l)) - } - return n -} - -func sovGenerated(x uint64) (n int) { - for { - n++ - x >>= 7 - if x == 0 { - break - } - } - return n -} -func sozGenerated(x uint64) (n int) { - return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) -} -func (this *DaemonSet) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DaemonSet{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DaemonSetSpec", "DaemonSetSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DaemonSetStatus", "DaemonSetStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DaemonSetList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DaemonSetList{`, - `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "DaemonSet", "DaemonSet", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DaemonSetSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DaemonSetSpec{`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "DaemonSetUpdateStrategy", "DaemonSetUpdateStrategy", 1), `&`, ``, 1) + `,`, - `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, - `TemplateGeneration:` + fmt.Sprintf("%v", this.TemplateGeneration) + `,`, - `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, - `}`, - }, "") - return s -} -func (this *DaemonSetStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DaemonSetStatus{`, - `CurrentNumberScheduled:` + fmt.Sprintf("%v", this.CurrentNumberScheduled) + `,`, - `NumberMisscheduled:` + fmt.Sprintf("%v", this.NumberMisscheduled) + `,`, - `DesiredNumberScheduled:` + fmt.Sprintf("%v", this.DesiredNumberScheduled) + `,`, - `NumberReady:` + fmt.Sprintf("%v", this.NumberReady) + `,`, - `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, - `UpdatedNumberScheduled:` + fmt.Sprintf("%v", this.UpdatedNumberScheduled) + `,`, - `NumberAvailable:` + fmt.Sprintf("%v", this.NumberAvailable) + `,`, - `NumberUnavailable:` + fmt.Sprintf("%v", this.NumberUnavailable) + `,`, - `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, - `}`, - }, "") - return s -} -func (this *DaemonSetUpdateStrategy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DaemonSetUpdateStrategy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateDaemonSet", "RollingUpdateDaemonSet", 1) + `,`, - `}`, - }, "") - return s -} -func (this *Deployment) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Deployment{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DeploymentSpec", "DeploymentSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DeploymentStatus", "DeploymentStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `LastUpdateTime:` + strings.Replace(strings.Replace(this.LastUpdateTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentList{`, - `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "Deployment", "Deployment", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentRollback) String() string { - if this == nil { - return "nil" - } - keysForUpdatedAnnotations := make([]string, 0, len(this.UpdatedAnnotations)) - for k := range this.UpdatedAnnotations { - keysForUpdatedAnnotations = append(keysForUpdatedAnnotations, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForUpdatedAnnotations) - mapStringForUpdatedAnnotations := "map[string]string{" - for _, k := range keysForUpdatedAnnotations { - mapStringForUpdatedAnnotations += fmt.Sprintf("%v: %v,", k, this.UpdatedAnnotations[k]) - } - mapStringForUpdatedAnnotations += "}" - s := strings.Join([]string{`&DeploymentRollback{`, - `Name:` + fmt.Sprintf("%v", this.Name) + `,`, - `UpdatedAnnotations:` + mapStringForUpdatedAnnotations + `,`, - `RollbackTo:` + strings.Replace(strings.Replace(this.RollbackTo.String(), "RollbackConfig", "RollbackConfig", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentSpec{`, - `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), "DeploymentStrategy", "DeploymentStrategy", 1), `&`, ``, 1) + `,`, - `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, - `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, - `Paused:` + fmt.Sprintf("%v", this.Paused) + `,`, - `RollbackTo:` + strings.Replace(fmt.Sprintf("%v", this.RollbackTo), "RollbackConfig", "RollbackConfig", 1) + `,`, - `ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentStatus{`, - `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, - `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, - `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, - `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, - `UnavailableReplicas:` + fmt.Sprintf("%v", this.UnavailableReplicas) + `,`, - `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "DeploymentCondition", "DeploymentCondition", 1), `&`, ``, 1) + `,`, - `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, - `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, - `}`, - }, "") - return s -} -func (this *DeploymentStrategy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&DeploymentStrategy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateDeployment", "RollingUpdateDeployment", 1) + `,`, - `}`, - }, "") - return s -} -func (this *ReplicaSet) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ReplicaSet{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ReplicaSetSpec", "ReplicaSetSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ReplicaSetStatus", "ReplicaSetStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ReplicaSetCondition) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ReplicaSetCondition{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `Status:` + fmt.Sprintf("%v", this.Status) + `,`, - `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, - `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, - `Message:` + fmt.Sprintf("%v", this.Message) + `,`, - `}`, - }, "") - return s -} -func (this *ReplicaSetList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ReplicaSetList{`, - `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "ReplicaSet", "ReplicaSet", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ReplicaSetSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ReplicaSetSpec{`, - `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, - `}`, - }, "") - return s -} -func (this *ReplicaSetStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ReplicaSetStatus{`, - `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, - `FullyLabeledReplicas:` + fmt.Sprintf("%v", this.FullyLabeledReplicas) + `,`, - `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, - `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, - `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, - `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "ReplicaSetCondition", "ReplicaSetCondition", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *RollbackConfig) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RollbackConfig{`, - `Revision:` + fmt.Sprintf("%v", this.Revision) + `,`, - `}`, - }, "") - return s -} -func (this *RollingUpdateDaemonSet) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RollingUpdateDaemonSet{`, - `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, - `}`, - }, "") - return s -} -func (this *RollingUpdateDeployment) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RollingUpdateDeployment{`, - `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, - `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, - `}`, - }, "") - return s -} -func (this *RollingUpdateStatefulSetStrategy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`, - `Partition:` + valueToStringGenerated(this.Partition) + `,`, - `}`, - }, "") - return s -} -func (this *Scale) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&Scale{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ScaleSpec", "ScaleSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ScaleStatus", "ScaleStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *ScaleSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&ScaleSpec{`, - `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, - `}`, - }, "") - return s -} -func (this *ScaleStatus) String() string { - if this == nil { - return "nil" - } - keysForSelector := make([]string, 0, len(this.Selector)) - for k := range this.Selector { - keysForSelector = append(keysForSelector, k) - } - github_com_gogo_protobuf_sortkeys.Strings(keysForSelector) - mapStringForSelector := "map[string]string{" - for _, k := range keysForSelector { - mapStringForSelector += fmt.Sprintf("%v: %v,", k, this.Selector[k]) - } - mapStringForSelector += "}" - s := strings.Join([]string{`&ScaleStatus{`, - `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, - `Selector:` + mapStringForSelector + `,`, - `TargetSelector:` + fmt.Sprintf("%v", this.TargetSelector) + `,`, - `}`, - }, "") - return s -} -func (this *StatefulSet) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&StatefulSet{`, - `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, - `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "StatefulSetSpec", "StatefulSetSpec", 1), `&`, ``, 1) + `,`, - `Status:` + strings.Replace(strings.Replace(this.Status.String(), "StatefulSetStatus", "StatefulSetStatus", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *StatefulSetList) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&StatefulSetList{`, - `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, - `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "StatefulSet", "StatefulSet", 1), `&`, ``, 1) + `,`, - `}`, - }, "") - return s -} -func (this *StatefulSetSpec) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&StatefulSetSpec{`, - `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, - `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, - `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, - `VolumeClaimTemplates:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.VolumeClaimTemplates), "PersistentVolumeClaim", "k8s_io_api_core_v1.PersistentVolumeClaim", 1), `&`, ``, 1) + `,`, - `ServiceName:` + fmt.Sprintf("%v", this.ServiceName) + `,`, - `PodManagementPolicy:` + fmt.Sprintf("%v", this.PodManagementPolicy) + `,`, - `UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "StatefulSetUpdateStrategy", "StatefulSetUpdateStrategy", 1), `&`, ``, 1) + `,`, - `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, - `}`, - }, "") - return s -} -func (this *StatefulSetStatus) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&StatefulSetStatus{`, - `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, - `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, - `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, - `CurrentReplicas:` + fmt.Sprintf("%v", this.CurrentReplicas) + `,`, - `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, - `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, - `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, - `}`, - }, "") - return s -} -func (this *StatefulSetUpdateStrategy) String() string { - if this == nil { - return "nil" - } - s := strings.Join([]string{`&StatefulSetUpdateStrategy{`, - `Type:` + fmt.Sprintf("%v", this.Type) + `,`, - `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateStatefulSetStrategy", "RollingUpdateStatefulSetStrategy", 1) + `,`, - `}`, - }, "") - return s -} -func valueToStringGenerated(v interface{}) string { - rv := reflect.ValueOf(v) - if rv.IsNil() { - return "nil" - } - pv := reflect.Indirect(rv).Interface() - return fmt.Sprintf("*%v", pv) -} -func (m *DaemonSet) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DaemonSet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DaemonSetList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DaemonSetList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, DaemonSet{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DaemonSetSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Selector == nil { - m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) - } - m.MinReadySeconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MinReadySeconds |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field TemplateGeneration", wireType) - } - m.TemplateGeneration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.TemplateGeneration |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.RevisionHistoryLimit = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DaemonSetStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentNumberScheduled", wireType) - } - m.CurrentNumberScheduled = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CurrentNumberScheduled |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberMisscheduled", wireType) - } - m.NumberMisscheduled = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.NumberMisscheduled |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field DesiredNumberScheduled", wireType) - } - m.DesiredNumberScheduled = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.DesiredNumberScheduled |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberReady", wireType) - } - m.NumberReady = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.NumberReady |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) - } - m.ObservedGeneration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ObservedGeneration |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatedNumberScheduled", wireType) - } - m.UpdatedNumberScheduled = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.UpdatedNumberScheduled |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberAvailable", wireType) - } - m.NumberAvailable = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.NumberAvailable |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field NumberUnavailable", wireType) - } - m.NumberUnavailable = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.NumberUnavailable |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.CollisionCount = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DaemonSetUpdateStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RollingUpdate == nil { - m.RollingUpdate = &RollingUpdateDaemonSet{} - } - if err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Deployment) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Deployment: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Deployment: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = DeploymentConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, Deployment{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentRollback) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentRollback: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentRollback: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Name = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatedAnnotations", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.UpdatedAnnotations == nil { - m.UpdatedAnnotations = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.UpdatedAnnotations[mapkey] = mapvalue - } else { - var mapvalue string - m.UpdatedAnnotations[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RollbackTo", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Replicas = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Selector == nil { - m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Strategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) - } - m.MinReadySeconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MinReadySeconds |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.RevisionHistoryLimit = &v - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Paused", wireType) - } - var v int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Paused = bool(v != 0) - case 8: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RollbackTo", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RollbackTo == nil { - m.RollbackTo = &RollbackConfig{} - } - if err := m.RollbackTo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 9: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ProgressDeadlineSeconds", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.ProgressDeadlineSeconds = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) - } - m.ObservedGeneration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ObservedGeneration |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - m.Replicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Replicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) - } - m.UpdatedReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.UpdatedReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) - } - m.AvailableReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AvailableReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UnavailableReplicas", wireType) - } - m.UnavailableReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.UnavailableReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, DeploymentCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 7: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) - } - m.ReadyReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ReadyReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) - } - var v int64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.CollisionCount = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: DeploymentStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: DeploymentStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RollingUpdate == nil { - m.RollingUpdate = &RollingUpdateDeployment{} - } - if err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReplicaSet) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReplicaSet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReplicaSet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReplicaSetCondition: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReplicaSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Reason = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Message = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReplicaSetList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReplicaSetList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, ReplicaSet{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReplicaSetSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReplicaSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Replicas = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Selector == nil { - m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) - } - m.MinReadySeconds = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.MinReadySeconds |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ReplicaSetStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ReplicaSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - m.Replicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Replicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field FullyLabeledReplicas", wireType) - } - m.FullyLabeledReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.FullyLabeledReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) - } - m.ObservedGeneration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ObservedGeneration |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) - } - m.ReadyReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ReadyReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) - } - m.AvailableReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.AvailableReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Conditions = append(m.Conditions, ReplicaSetCondition{}) - if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RollbackConfig) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RollbackConfig: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RollbackConfig: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Revision", wireType) - } - m.Revision = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Revision |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RollingUpdateDaemonSet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MaxUnavailable == nil { - m.MaxUnavailable = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} - } - if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RollingUpdateDeployment: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RollingUpdateDeployment: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MaxUnavailable == nil { - m.MaxUnavailable = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} - } - if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.MaxSurge == nil { - m.MaxSurge = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} - } - if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Partition", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Partition = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *Scale) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: Scale: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: Scale: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ScaleSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ScaleSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ScaleSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - m.Replicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Replicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *ScaleStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: ScaleStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: ScaleStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - m.Replicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Replicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - var keykey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - keykey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapkey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapkey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapkey := int(stringLenmapkey) - if intStringLenmapkey < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapkey := iNdEx + intStringLenmapkey - if postStringIndexmapkey > l { - return io.ErrUnexpectedEOF - } - mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) - iNdEx = postStringIndexmapkey - if m.Selector == nil { - m.Selector = make(map[string]string) - } - if iNdEx < postIndex { - var valuekey uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - valuekey |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - var stringLenmapvalue uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLenmapvalue |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLenmapvalue := int(stringLenmapvalue) - if intStringLenmapvalue < 0 { - return ErrInvalidLengthGenerated - } - postStringIndexmapvalue := iNdEx + intStringLenmapvalue - if postStringIndexmapvalue > l { - return io.ErrUnexpectedEOF - } - mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) - iNdEx = postStringIndexmapvalue - m.Selector[mapkey] = mapvalue - } else { - var mapvalue string - m.Selector[mapkey] = mapvalue - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field TargetSelector", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.TargetSelector = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StatefulSet) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StatefulSet: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StatefulSet: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StatefulSetList) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StatefulSetList: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StatefulSetList: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Items = append(m.Items, StatefulSet{}) - if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StatefulSetSpec: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StatefulSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.Replicas = &v - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.Selector == nil { - m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} - } - if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 3: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 4: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field VolumeClaimTemplates", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.VolumeClaimTemplates = append(m.VolumeClaimTemplates, k8s_io_api_core_v1.PersistentVolumeClaim{}) - if err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 5: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field ServiceName", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.ServiceName = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field PodManagementPolicy", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - case 8: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) - } - var v int32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - m.RevisionHistoryLimit = &v - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StatefulSetStatus: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StatefulSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) - } - m.ObservedGeneration = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ObservedGeneration |= (int64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 2: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) - } - m.Replicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Replicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) - } - m.ReadyReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.ReadyReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 4: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentReplicas", wireType) - } - m.CurrentReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.CurrentReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 5: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) - } - m.UpdatedReplicas = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.UpdatedReplicas |= (int32(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - case 6: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field CurrentRevision", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.CurrentRevision = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 7: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field UpdateRevision", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.UpdateRevision = string(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - preIndex := iNdEx - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - fieldNum := int32(wire >> 3) - wireType := int(wire & 0x7) - if wireType == 4 { - return fmt.Errorf("proto: StatefulSetUpdateStrategy: wiretype end group for non-group") - } - if fieldNum <= 0 { - return fmt.Errorf("proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)", fieldNum, wire) - } - switch fieldNum { - case 1: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) - } - var stringLen uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - stringLen |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - intStringLen := int(stringLen) - if intStringLen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + intStringLen - if postIndex > l { - return io.ErrUnexpectedEOF - } - m.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex]) - iNdEx = postIndex - case 2: - if wireType != 2 { - return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowGenerated - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthGenerated - } - postIndex := iNdEx + msglen - if postIndex > l { - return io.ErrUnexpectedEOF - } - if m.RollingUpdate == nil { - m.RollingUpdate = &RollingUpdateStatefulSetStrategy{} - } - if err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex - default: - iNdEx = preIndex - skippy, err := skipGenerated(dAtA[iNdEx:]) - if err != nil { - return err - } - if skippy < 0 { - return ErrInvalidLengthGenerated - } - if (iNdEx + skippy) > l { - return io.ErrUnexpectedEOF - } - iNdEx += skippy - } - } - - if iNdEx > l { - return io.ErrUnexpectedEOF - } - return nil -} -func skipGenerated(dAtA []byte) (n int, err error) { - l := len(dAtA) - iNdEx := 0 - for iNdEx < l { - var wire uint64 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - wire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - wireType := int(wire & 0x7) - switch wireType { - case 0: - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - iNdEx++ - if dAtA[iNdEx-1] < 0x80 { - break - } - } - return iNdEx, nil - case 1: - iNdEx += 8 - return iNdEx, nil - case 2: - var length int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - length |= (int(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - iNdEx += length - if length < 0 { - return 0, ErrInvalidLengthGenerated - } - return iNdEx, nil - case 3: - for { - var innerWire uint64 - var start int = iNdEx - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return 0, ErrIntOverflowGenerated - } - if iNdEx >= l { - return 0, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - innerWire |= (uint64(b) & 0x7F) << shift - if b < 0x80 { - break - } - } - innerWireType := int(innerWire & 0x7) - if innerWireType == 4 { - break - } - next, err := skipGenerated(dAtA[start:]) - if err != nil { - return 0, err - } - iNdEx = start + next - } - return iNdEx, nil - case 4: - return iNdEx, nil - case 5: - iNdEx += 4 - return iNdEx, nil - default: - return 0, fmt.Errorf("proto: illegal wireType %d", wireType) - } - } - panic("unreachable") -} - -var ( - ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") - ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") -) - -func init() { - proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto", fileDescriptorGenerated) -} - -var fileDescriptorGenerated = []byte{ - // 2178 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x5b, 0x6f, 0x1b, 0xc7, - 0x15, 0xd6, 0xf2, 0x22, 0x91, 0xa3, 0x88, 0xb2, 0x47, 0xaa, 0xc4, 0xc8, 0x2d, 0x25, 0x30, 0x81, - 0x2d, 0xc7, 0xf1, 0xd2, 0x56, 0x2e, 0x48, 0x6c, 0x20, 0xad, 0x28, 0xa5, 0xb6, 0x03, 0x49, 0x56, - 0x86, 0x92, 0x8b, 0xa6, 0x2d, 0xe0, 0x21, 0x39, 0xa6, 0x36, 0xda, 0x1b, 0xf6, 0x42, 0x84, 0xe8, - 0x4b, 0x9f, 0x0a, 0x14, 0x28, 0x90, 0x3c, 0xf7, 0x4f, 0xb4, 0x4f, 0x45, 0xd1, 0xbe, 0x15, 0x45, - 0xe1, 0x97, 0x02, 0x41, 0xfb, 0xd0, 0x3c, 0x09, 0x35, 0xf3, 0xd8, 0xfe, 0x82, 0x00, 0x05, 0x8a, - 0x99, 0x9d, 0xbd, 0xcc, 0x5e, 0xa4, 0xa5, 0x6a, 0xab, 0x85, 0xdf, 0xc4, 0x39, 0xdf, 0xf9, 0xe6, - 0xec, 0xcc, 0x99, 0x73, 0xbe, 0x9d, 0x15, 0xf8, 0xde, 0xf1, 0x7b, 0xb6, 0xac, 0x18, 0xad, 0x63, - 0xb7, 0x4b, 0x2c, 0x9d, 0x38, 0xc4, 0x6e, 0x0d, 0x89, 0xde, 0x37, 0xac, 0x16, 0x37, 0x60, 0x53, - 0x69, 0x61, 0xd3, 0xb4, 0x5b, 0xc3, 0xdb, 0x5d, 0xe2, 0xe0, 0x8d, 0xd6, 0x80, 0xe8, 0xc4, 0xc2, - 0x0e, 0xe9, 0xcb, 0xa6, 0x65, 0x38, 0x06, 0x5c, 0xf6, 0x80, 0x32, 0x36, 0x15, 0x99, 0x02, 0x65, - 0x0e, 0x5c, 0xb9, 0x39, 0x50, 0x9c, 0x23, 0xb7, 0x2b, 0xf7, 0x0c, 0xad, 0x35, 0x30, 0x06, 0x46, - 0x8b, 0xe1, 0xbb, 0xee, 0x13, 0xf6, 0x8b, 0xfd, 0x60, 0x7f, 0x79, 0x3c, 0x2b, 0xcd, 0xc8, 0x84, - 0x3d, 0xc3, 0x22, 0xad, 0xe1, 0xed, 0xf8, 0x5c, 0x2b, 0xd7, 0x23, 0x18, 0xd3, 0x50, 0x95, 0xde, - 0x88, 0x87, 0x95, 0x84, 0xbe, 0x1d, 0x42, 0x35, 0xdc, 0x3b, 0x52, 0x74, 0x62, 0x8d, 0x5a, 0xe6, - 0xf1, 0x80, 0x0e, 0xd8, 0x2d, 0x8d, 0x38, 0x38, 0x6d, 0x82, 0x56, 0x96, 0x97, 0xe5, 0xea, 0x8e, - 0xa2, 0x91, 0x84, 0xc3, 0xbb, 0x67, 0x39, 0xd8, 0xbd, 0x23, 0xa2, 0xe1, 0x84, 0xdf, 0x5b, 0x59, - 0x7e, 0xae, 0xa3, 0xa8, 0x2d, 0x45, 0x77, 0x6c, 0xc7, 0x8a, 0x3b, 0x35, 0x7f, 0x51, 0x00, 0xd5, - 0x6d, 0x4c, 0x34, 0x43, 0xef, 0x10, 0x07, 0x3e, 0x06, 0x15, 0xfa, 0x18, 0x7d, 0xec, 0xe0, 0xba, - 0xb4, 0x26, 0xad, 0xcf, 0x6e, 0xdc, 0x92, 0xc3, 0xbd, 0x08, 0x58, 0x65, 0xf3, 0x78, 0x40, 0x07, - 0x6c, 0x99, 0xa2, 0xe5, 0xe1, 0x6d, 0xf9, 0x61, 0xf7, 0x53, 0xd2, 0x73, 0x76, 0x89, 0x83, 0xdb, - 0xf0, 0xe9, 0xc9, 0xea, 0xd4, 0xf8, 0x64, 0x15, 0x84, 0x63, 0x28, 0x60, 0x85, 0xf7, 0x41, 0xc9, - 0x36, 0x49, 0xaf, 0x5e, 0x60, 0xec, 0x57, 0xe5, 0x8c, 0x9d, 0x96, 0x83, 0x98, 0x3a, 0x26, 0xe9, - 0xb5, 0x5f, 0xe1, 0x9c, 0x25, 0xfa, 0x0b, 0x31, 0x06, 0xb8, 0x0f, 0xa6, 0x6d, 0x07, 0x3b, 0xae, - 0x5d, 0x2f, 0x32, 0xae, 0xf5, 0x1c, 0x5c, 0x0c, 0xdf, 0xae, 0x71, 0xb6, 0x69, 0xef, 0x37, 0xe2, - 0x3c, 0xcd, 0xdf, 0x4a, 0x60, 0x2e, 0xc0, 0xee, 0x28, 0xb6, 0x03, 0x7f, 0x9c, 0x58, 0x0f, 0x39, - 0xdf, 0x7a, 0x50, 0x6f, 0xb6, 0x1a, 0x97, 0xf8, 0x5c, 0x15, 0x7f, 0x24, 0xb2, 0x16, 0xf7, 0x40, - 0x59, 0x71, 0x88, 0x66, 0xd7, 0x0b, 0x6b, 0xc5, 0xf5, 0xd9, 0x8d, 0xe6, 0xd9, 0x0f, 0xd0, 0x9e, - 0xe3, 0x74, 0xe5, 0x07, 0xd4, 0x11, 0x79, 0xfe, 0xcd, 0x2f, 0x4a, 0x91, 0xc0, 0xe9, 0x12, 0xc1, - 0x9f, 0x80, 0x8a, 0x4d, 0x54, 0xd2, 0x73, 0x0c, 0x8b, 0x07, 0xfe, 0x56, 0xce, 0xc0, 0x71, 0x97, - 0xa8, 0x1d, 0xee, 0xda, 0x7e, 0x85, 0x46, 0xee, 0xff, 0x42, 0x01, 0x25, 0xfc, 0x18, 0x54, 0x1c, - 0xa2, 0x99, 0x2a, 0x76, 0x08, 0xdf, 0xc9, 0xd7, 0xa2, 0xc1, 0xd3, 0xb3, 0x46, 0xc9, 0xf6, 0x8d, - 0xfe, 0x01, 0x87, 0xb1, 0x6d, 0x0c, 0x16, 0xc3, 0x1f, 0x45, 0x01, 0x0d, 0x34, 0x41, 0xcd, 0x35, - 0xfb, 0x14, 0xe9, 0xd0, 0xfc, 0x1c, 0x8c, 0xf8, 0xb6, 0xde, 0x3a, 0x7b, 0x55, 0x0e, 0x05, 0xbf, - 0xf6, 0x12, 0x9f, 0xa5, 0x26, 0x8e, 0xa3, 0x18, 0x3f, 0xdc, 0x04, 0xf3, 0x9a, 0xa2, 0x23, 0x82, - 0xfb, 0xa3, 0x0e, 0xe9, 0x19, 0x7a, 0xdf, 0xae, 0x97, 0xd6, 0xa4, 0xf5, 0x72, 0x7b, 0x99, 0x13, - 0xcc, 0xef, 0x8a, 0x66, 0x14, 0xc7, 0xc3, 0x8f, 0x00, 0xf4, 0x1f, 0xe0, 0x9e, 0x77, 0xb0, 0x14, - 0x43, 0xaf, 0x97, 0xd7, 0xa4, 0xf5, 0x62, 0x7b, 0x85, 0xb3, 0xc0, 0x83, 0x04, 0x02, 0xa5, 0x78, - 0xc1, 0x1d, 0xb0, 0x68, 0x91, 0xa1, 0x62, 0x2b, 0x86, 0x7e, 0x5f, 0xb1, 0x1d, 0xc3, 0x1a, 0xed, - 0x28, 0x9a, 0xe2, 0xd4, 0xa7, 0x59, 0x4c, 0xf5, 0xf1, 0xc9, 0xea, 0x22, 0x4a, 0xb1, 0xa3, 0x54, - 0xaf, 0xe6, 0x6f, 0xca, 0x60, 0x3e, 0x96, 0xf7, 0xf0, 0x11, 0x58, 0xea, 0xb9, 0x96, 0x45, 0x74, - 0x67, 0xcf, 0xd5, 0xba, 0xc4, 0xea, 0xf4, 0x8e, 0x48, 0xdf, 0x55, 0x49, 0x9f, 0xa5, 0x48, 0xb9, - 0xdd, 0xe0, 0x11, 0x2f, 0x6d, 0xa5, 0xa2, 0x50, 0x86, 0x37, 0x5d, 0x05, 0x9d, 0x0d, 0xed, 0x2a, - 0xb6, 0x1d, 0x70, 0x16, 0x18, 0x67, 0xb0, 0x0a, 0x7b, 0x09, 0x04, 0x4a, 0xf1, 0xa2, 0x31, 0xf6, - 0x89, 0xad, 0x58, 0xa4, 0x1f, 0x8f, 0xb1, 0x28, 0xc6, 0xb8, 0x9d, 0x8a, 0x42, 0x19, 0xde, 0xf0, - 0x1d, 0x30, 0xeb, 0xcd, 0xc6, 0xf6, 0x8f, 0x6f, 0xf4, 0x02, 0x27, 0x9b, 0xdd, 0x0b, 0x4d, 0x28, - 0x8a, 0xa3, 0x8f, 0x66, 0x74, 0x6d, 0x62, 0x0d, 0x49, 0x3f, 0x7b, 0x83, 0x1f, 0x26, 0x10, 0x28, - 0xc5, 0x8b, 0x3e, 0x9a, 0x97, 0x81, 0x89, 0x47, 0x9b, 0x16, 0x1f, 0xed, 0x30, 0x15, 0x85, 0x32, - 0xbc, 0x69, 0x1e, 0x7b, 0x21, 0x6f, 0x0e, 0xb1, 0xa2, 0xe2, 0xae, 0x4a, 0xea, 0x33, 0x62, 0x1e, - 0xef, 0x89, 0x66, 0x14, 0xc7, 0xc3, 0x7b, 0xe0, 0xb2, 0x37, 0x74, 0xa8, 0xe3, 0x80, 0xa4, 0xc2, - 0x48, 0x5e, 0xe5, 0x24, 0x97, 0xf7, 0xe2, 0x00, 0x94, 0xf4, 0x81, 0x77, 0x40, 0xad, 0x67, 0xa8, - 0x2a, 0xcb, 0xc7, 0x2d, 0xc3, 0xd5, 0x9d, 0x7a, 0x95, 0xad, 0x15, 0xa4, 0xe7, 0x71, 0x4b, 0xb0, - 0xa0, 0x18, 0xb2, 0xf9, 0x27, 0x09, 0x2c, 0x67, 0x9c, 0x69, 0xf8, 0x5d, 0x50, 0x72, 0x46, 0x26, - 0x61, 0x89, 0x5a, 0x6d, 0xdf, 0xf0, 0xdb, 0xc1, 0xc1, 0xc8, 0x24, 0xdf, 0x9c, 0xac, 0x5e, 0xc9, - 0x70, 0xa3, 0x66, 0xc4, 0x1c, 0xe1, 0x11, 0x98, 0xb3, 0xe8, 0x74, 0xfa, 0xc0, 0x83, 0xf0, 0xb2, - 0xd5, 0xca, 0xac, 0x2e, 0x28, 0x8a, 0x0e, 0x0b, 0xf0, 0xe5, 0xf1, 0xc9, 0xea, 0x9c, 0x60, 0x43, - 0x22, 0x71, 0xf3, 0x97, 0x05, 0x00, 0xb6, 0x89, 0xa9, 0x1a, 0x23, 0x8d, 0xe8, 0x17, 0xd1, 0x52, - 0x1f, 0x08, 0x2d, 0xf5, 0x5a, 0x76, 0xbd, 0x0c, 0x82, 0xca, 0xec, 0xa9, 0x1f, 0xc7, 0x7a, 0xea, - 0xf5, 0x3c, 0x64, 0xa7, 0x37, 0xd5, 0xbf, 0x17, 0xc1, 0x42, 0x08, 0xde, 0x32, 0xf4, 0xbe, 0xc2, - 0x4e, 0xc3, 0x5d, 0x61, 0x47, 0xaf, 0xc5, 0x76, 0x74, 0x39, 0xc5, 0x25, 0xb2, 0x9b, 0x3b, 0x41, - 0x9c, 0x05, 0xe6, 0xfe, 0xb6, 0x38, 0xf9, 0x37, 0x27, 0xab, 0x29, 0xd2, 0x4f, 0x0e, 0x98, 0xc4, - 0x10, 0xe1, 0x55, 0x30, 0x6d, 0x11, 0x6c, 0x1b, 0x3a, 0x2b, 0x0b, 0xd5, 0xf0, 0x51, 0x10, 0x1b, - 0x45, 0xdc, 0x0a, 0xaf, 0x83, 0x19, 0x8d, 0xd8, 0x36, 0x1e, 0x10, 0x56, 0x01, 0xaa, 0xed, 0x79, - 0x0e, 0x9c, 0xd9, 0xf5, 0x86, 0x91, 0x6f, 0x87, 0x9f, 0x82, 0x9a, 0x8a, 0x6d, 0x9e, 0x8e, 0x07, - 0x8a, 0x46, 0xd8, 0x19, 0x9f, 0xdd, 0x78, 0x23, 0xdf, 0xde, 0x53, 0x8f, 0xb0, 0x8f, 0xed, 0x08, - 0x4c, 0x28, 0xc6, 0x0c, 0x87, 0x00, 0xd2, 0x91, 0x03, 0x0b, 0xeb, 0xb6, 0xb7, 0x50, 0x74, 0xbe, - 0x99, 0x89, 0xe7, 0x0b, 0xea, 0xd9, 0x4e, 0x82, 0x0d, 0xa5, 0xcc, 0xd0, 0xfc, 0x9d, 0x04, 0x6a, - 0xe1, 0x36, 0x5d, 0x80, 0x5e, 0xba, 0x2f, 0xea, 0xa5, 0xd7, 0x72, 0x24, 0x67, 0x86, 0x60, 0xfa, - 0x57, 0x01, 0xc0, 0x10, 0x44, 0x8f, 0x73, 0x17, 0xf7, 0x8e, 0xe1, 0x1a, 0x28, 0xe9, 0x58, 0xf3, - 0x73, 0x32, 0x38, 0x20, 0x7b, 0x58, 0x23, 0x88, 0x59, 0xe0, 0xe7, 0x12, 0x80, 0xbc, 0x0c, 0x6f, - 0xea, 0xba, 0xe1, 0xb0, 0xca, 0xee, 0x07, 0xb4, 0x95, 0x23, 0x20, 0x7f, 0x2e, 0xf9, 0x30, 0xc1, - 0xf2, 0xa1, 0xee, 0x58, 0xa3, 0x70, 0x17, 0x92, 0x00, 0x94, 0x32, 0x35, 0xfc, 0x11, 0x00, 0x16, - 0xe7, 0x3c, 0x30, 0xf8, 0xb1, 0xbd, 0x76, 0x6a, 0x55, 0xa3, 0xd0, 0x2d, 0x43, 0x7f, 0xa2, 0x0c, - 0xc2, 0xc2, 0x82, 0x02, 0x0a, 0x14, 0xa1, 0x5b, 0xf9, 0x10, 0x2c, 0x67, 0xc4, 0x09, 0x2f, 0x81, - 0xe2, 0x31, 0x19, 0x79, 0x4b, 0x85, 0xe8, 0x9f, 0x70, 0x11, 0x94, 0x87, 0x58, 0x75, 0xbd, 0xd2, - 0x5a, 0x45, 0xde, 0x8f, 0x3b, 0x85, 0xf7, 0x24, 0x2a, 0x46, 0x6a, 0x62, 0xf5, 0x81, 0xeb, 0xa0, - 0x62, 0x11, 0x53, 0x55, 0x7a, 0xd8, 0xe6, 0xea, 0x83, 0x69, 0x4d, 0xc4, 0xc7, 0x50, 0x60, 0x15, - 0xa4, 0x6c, 0xe1, 0xc5, 0x4a, 0xd9, 0xe2, 0xf3, 0x91, 0xb2, 0x3f, 0x04, 0x15, 0xdb, 0x17, 0xb1, - 0x25, 0x46, 0x79, 0x23, 0x57, 0x1d, 0xe5, 0xfa, 0x35, 0xa0, 0x0e, 0x94, 0x6b, 0x40, 0x97, 0xa6, - 0x59, 0xcb, 0x13, 0x6a, 0xd6, 0xe7, 0xaa, 0x33, 0x69, 0xed, 0x34, 0xb1, 0x6b, 0x93, 0x3e, 0x2b, - 0x38, 0x95, 0xb0, 0x76, 0xee, 0xb3, 0x51, 0xc4, 0xad, 0xf0, 0x07, 0x42, 0x9a, 0x56, 0x26, 0x4b, - 0xd3, 0x5a, 0x76, 0x8a, 0xc2, 0x43, 0xb0, 0x6c, 0x5a, 0xc6, 0xc0, 0x22, 0xb6, 0xbd, 0x4d, 0x70, - 0x5f, 0x55, 0x74, 0xe2, 0xaf, 0x4c, 0x95, 0x3d, 0xd1, 0x95, 0xf1, 0xc9, 0xea, 0xf2, 0x7e, 0x3a, - 0x04, 0x65, 0xf9, 0x36, 0xff, 0x58, 0x02, 0x97, 0xe2, 0x3d, 0x2e, 0x43, 0x0d, 0x4a, 0xe7, 0x52, - 0x83, 0x6f, 0x46, 0x0e, 0x80, 0x27, 0x95, 0x83, 0x7d, 0x4f, 0x39, 0x04, 0x9b, 0x60, 0x9e, 0x9f, - 0x7d, 0xdf, 0xc8, 0xf5, 0x70, 0xb0, 0xef, 0x87, 0xa2, 0x19, 0xc5, 0xf1, 0x54, 0xe3, 0x85, 0xd2, - 0xcd, 0x27, 0x29, 0x89, 0x1a, 0x6f, 0x33, 0x0e, 0x40, 0x49, 0x1f, 0xb8, 0x0b, 0x16, 0x5c, 0x3d, - 0x49, 0xe5, 0xe5, 0xe1, 0x15, 0x4e, 0xb5, 0x70, 0x98, 0x84, 0xa0, 0x34, 0x3f, 0xf8, 0x18, 0x80, - 0x9e, 0xdf, 0x98, 0xed, 0xfa, 0x34, 0xab, 0xa4, 0x6f, 0xe6, 0x38, 0x2f, 0x41, 0x37, 0x0f, 0xab, - 0x58, 0x30, 0x64, 0xa3, 0x08, 0x27, 0xbc, 0x0b, 0xe6, 0x2c, 0x26, 0xed, 0xfd, 0x50, 0x3d, 0x79, - 0xfc, 0x2d, 0xee, 0x36, 0x87, 0xa2, 0x46, 0x24, 0x62, 0x53, 0x14, 0x6d, 0x25, 0xb7, 0xa2, 0xfd, - 0x83, 0x14, 0x6d, 0x33, 0x81, 0x98, 0xbd, 0x23, 0x48, 0x9f, 0xab, 0x31, 0xe9, 0xb3, 0x94, 0xf4, - 0x88, 0x28, 0x1f, 0x25, 0x5d, 0xc7, 0xde, 0xca, 0xa9, 0x63, 0xc3, 0xc6, 0x98, 0x4f, 0xc8, 0xf2, - 0x65, 0xb8, 0x98, 0xbb, 0xa1, 0xbc, 0x42, 0x36, 0x0c, 0xea, 0x39, 0x08, 0xd9, 0x08, 0xd9, 0xe9, - 0x42, 0xf6, 0x9f, 0x05, 0xb0, 0x10, 0x82, 0x73, 0x0b, 0xd9, 0x14, 0x97, 0x17, 0x26, 0x64, 0xd3, - 0x95, 0x60, 0xf1, 0x45, 0x2b, 0xc1, 0x17, 0x20, 0xa0, 0x99, 0xb8, 0x0c, 0x97, 0xee, 0xff, 0x49, - 0x5c, 0x86, 0x51, 0x65, 0x88, 0xcb, 0x5f, 0x17, 0xa2, 0xa1, 0xbf, 0xf4, 0x6a, 0xe7, 0xbf, 0xbf, - 0x46, 0x6b, 0xfe, 0xb9, 0x08, 0x2e, 0xc5, 0xcf, 0xa1, 0xd0, 0x20, 0xa5, 0x33, 0x1b, 0xe4, 0x3e, - 0x58, 0x7c, 0xe2, 0xaa, 0xea, 0x88, 0x2d, 0x43, 0xa4, 0x4b, 0x7a, 0xad, 0xf5, 0xdb, 0xdc, 0x73, - 0xf1, 0xfb, 0x29, 0x18, 0x94, 0xea, 0x99, 0xd1, 0xec, 0x8b, 0xe7, 0x6a, 0xf6, 0x89, 0x0e, 0x54, - 0x9a, 0xa0, 0x03, 0xa5, 0x36, 0xee, 0xf2, 0x39, 0x1a, 0xf7, 0x64, 0x9d, 0x36, 0xa5, 0x70, 0x9d, - 0xd5, 0x69, 0x9b, 0x1f, 0x80, 0x9a, 0x28, 0xdd, 0xbc, 0x5d, 0xf4, 0x74, 0x23, 0x17, 0x4a, 0x91, - 0x5d, 0xf4, 0xc6, 0x51, 0x80, 0x68, 0xfe, 0x5c, 0x02, 0x4b, 0xe9, 0x17, 0x2f, 0x50, 0x05, 0x35, - 0x0d, 0x7f, 0x16, 0xbd, 0x9f, 0x3a, 0xab, 0x09, 0xb9, 0x8e, 0xa2, 0xca, 0xde, 0x67, 0x0f, 0xf9, - 0x81, 0xee, 0x3c, 0xb4, 0x3a, 0x8e, 0xa5, 0xe8, 0x03, 0xaf, 0x73, 0xef, 0x0a, 0x5c, 0x28, 0xc6, - 0xdd, 0xfc, 0x5a, 0x02, 0xcb, 0x19, 0x9d, 0xf3, 0x62, 0x23, 0x81, 0x9f, 0x80, 0x8a, 0x86, 0x3f, - 0xeb, 0xb8, 0xd6, 0x20, 0xad, 0xd7, 0xe7, 0x9b, 0x87, 0x55, 0x83, 0x5d, 0xce, 0x82, 0x02, 0xbe, - 0xe6, 0x43, 0xb0, 0x26, 0x3c, 0x24, 0x3d, 0x79, 0xe4, 0x89, 0xab, 0xb2, 0x43, 0xc8, 0xc5, 0xca, - 0x0d, 0x50, 0x35, 0xb1, 0xe5, 0x28, 0x81, 0xd4, 0x2d, 0xb7, 0xe7, 0xc6, 0x27, 0xab, 0xd5, 0x7d, - 0x7f, 0x10, 0x85, 0xf6, 0xe6, 0xbf, 0x25, 0x50, 0xee, 0xf4, 0xb0, 0x4a, 0x2e, 0x40, 0x2d, 0x6c, - 0x0b, 0x6a, 0x21, 0xfb, 0xe3, 0x09, 0x8b, 0x27, 0x53, 0x28, 0xec, 0xc4, 0x84, 0xc2, 0xeb, 0x67, - 0xf0, 0x9c, 0xae, 0x11, 0xde, 0x07, 0xd5, 0x60, 0xba, 0xc9, 0x0a, 0x58, 0xf3, 0x57, 0x05, 0x30, - 0x1b, 0x99, 0x62, 0xc2, 0xf2, 0xf7, 0x58, 0x68, 0x1b, 0xf4, 0x60, 0x6f, 0xe4, 0x79, 0x10, 0xd9, - 0x6f, 0x11, 0xde, 0xdd, 0x43, 0xf8, 0xe6, 0x99, 0xec, 0x1c, 0x1f, 0x80, 0x9a, 0x83, 0xad, 0x01, - 0x71, 0x7c, 0x1b, 0x5b, 0xb0, 0x6a, 0x78, 0x4b, 0x75, 0x20, 0x58, 0x51, 0x0c, 0xbd, 0x72, 0x17, - 0xcc, 0x09, 0x93, 0x4d, 0x74, 0x81, 0xf0, 0x39, 0x5d, 0x9c, 0x30, 0x39, 0x2f, 0x20, 0xbb, 0x3e, - 0x12, 0xb2, 0x2b, 0xfb, 0xdb, 0x62, 0xf4, 0xc8, 0x64, 0xe5, 0x18, 0x8a, 0xe5, 0xd8, 0x1b, 0xb9, - 0xd8, 0x4e, 0xcf, 0xb4, 0xdf, 0x4b, 0x60, 0x3e, 0x82, 0xbe, 0x00, 0x81, 0xf4, 0x40, 0x14, 0x48, - 0xaf, 0xe7, 0x79, 0x88, 0x0c, 0x85, 0xf4, 0x97, 0xb2, 0x10, 0xfc, 0x4b, 0x2f, 0x91, 0x7e, 0x0a, - 0x16, 0x87, 0x86, 0xea, 0x6a, 0x64, 0x4b, 0xc5, 0x8a, 0xe6, 0x03, 0xa8, 0x0a, 0x28, 0xc6, 0xdf, - 0x4d, 0x02, 0x7a, 0x62, 0xd9, 0x8a, 0xed, 0x10, 0xdd, 0x79, 0x14, 0x7a, 0x86, 0x3a, 0xe6, 0x51, - 0x0a, 0x1d, 0x4a, 0x9d, 0x04, 0xbe, 0x03, 0x66, 0xa9, 0x1e, 0x51, 0x7a, 0x64, 0x0f, 0x6b, 0xbe, - 0xf0, 0x0e, 0xbe, 0x7c, 0x75, 0x42, 0x13, 0x8a, 0xe2, 0xe0, 0x11, 0x58, 0x30, 0x8d, 0xfe, 0x2e, - 0xd6, 0xf1, 0x80, 0xd0, 0xb6, 0xb7, 0xcf, 0xfe, 0x37, 0x82, 0xdd, 0x12, 0x55, 0xdb, 0xef, 0xfa, - 0x6f, 0xf9, 0xfb, 0x49, 0x08, 0x7d, 0xe9, 0x49, 0x19, 0x66, 0x2f, 0x3d, 0x69, 0x94, 0xd0, 0x4a, - 0x7c, 0xf9, 0xf5, 0xee, 0xae, 0x37, 0xf2, 0x64, 0xd8, 0x39, 0xbf, 0xfd, 0x66, 0x5d, 0x82, 0x55, - 0xce, 0xf5, 0xb1, 0xf5, 0x6f, 0x45, 0x70, 0x39, 0x71, 0x74, 0xff, 0x87, 0xb7, 0x45, 0x09, 0xb9, - 0x59, 0x9c, 0x40, 0x6e, 0x6e, 0x82, 0x79, 0xfe, 0x9d, 0x37, 0xa6, 0x56, 0x03, 0x3d, 0xbf, 0x25, - 0x9a, 0x51, 0x1c, 0x9f, 0x76, 0x5b, 0x55, 0x9e, 0xf0, 0xb6, 0x2a, 0x1a, 0x05, 0x97, 0x8f, 0x5e, - 0xea, 0x25, 0xa3, 0xe0, 0x2a, 0x32, 0x8e, 0xa7, 0x1d, 0xcb, 0x63, 0x0d, 0x18, 0x66, 0xc4, 0x8e, - 0x75, 0x28, 0x58, 0x51, 0x0c, 0xdd, 0xfc, 0xab, 0x04, 0x5e, 0xcd, 0xcc, 0x34, 0xb8, 0x29, 0xbc, - 0xf6, 0xdf, 0x8c, 0xbd, 0xf6, 0x7f, 0x27, 0xd3, 0x31, 0xf2, 0xf2, 0x6f, 0xa5, 0xdf, 0xe5, 0xbc, - 0x9f, 0xef, 0x2e, 0x27, 0x45, 0xac, 0x9d, 0x7d, 0xa9, 0xd3, 0xbe, 0xf9, 0xf4, 0x59, 0x63, 0xea, - 0xcb, 0x67, 0x8d, 0xa9, 0xaf, 0x9e, 0x35, 0xa6, 0x7e, 0x36, 0x6e, 0x48, 0x4f, 0xc7, 0x0d, 0xe9, - 0xcb, 0x71, 0x43, 0xfa, 0x6a, 0xdc, 0x90, 0xfe, 0x31, 0x6e, 0x48, 0x5f, 0x7c, 0xdd, 0x98, 0xfa, - 0x64, 0x86, 0xcf, 0xf8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8a, 0xc7, 0xc0, 0x83, 0xcc, 0x25, - 0x00, 0x00, -} diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.proto b/staging/src/k8s.io/api/apps/v1beta2/generated.proto deleted file mode 100644 index 1bc58370a3a..00000000000 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.proto +++ /dev/null @@ -1,706 +0,0 @@ -/* -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. -*/ - - -// This file was autogenerated by go-to-protobuf. Do not edit it manually! - -syntax = 'proto2'; - -package k8s.io.api.apps.v1beta2; - -import "k8s.io/api/core/v1/generated.proto"; -import "k8s.io/api/policy/v1beta1/generated.proto"; -import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/generated.proto"; -import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; -import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; - -// Package-wide variables from generator "generated". -option go_package = "v1beta2"; - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DaemonSet represents the configuration of a daemon set. -message DaemonSet { - // Standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // The desired behavior of this daemon set. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status - // +optional - optional DaemonSetSpec spec = 2; - - // The current status of this daemon set. This data may be - // out of date by some window of time. - // Populated by the system. - // Read-only. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status - // +optional - optional DaemonSetStatus status = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DaemonSetList is a collection of daemon sets. -message DaemonSetList { - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // A list of daemon sets. - repeated DaemonSet items = 2; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DaemonSetSpec is the specification of a daemon set. -message DaemonSetSpec { - // A label query over pods that are managed by the daemon set. - // Must match in order to be controlled. - // If empty, defaulted to labels on Pod template. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1; - - // An object that describes the pod that will be created. - // The DaemonSet will create exactly one copy of this pod on every node - // that matches the template's node selector (or on every node if no node - // selector is specified). - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template - optional k8s.io.api.core.v1.PodTemplateSpec template = 2; - - // An update strategy to replace existing DaemonSet pods with new pods. - // +optional - optional DaemonSetUpdateStrategy updateStrategy = 3; - - // The minimum number of seconds for which a newly created DaemonSet pod should - // be ready without any of its container crashing, for it to be considered - // available. Defaults to 0 (pod will be considered available as soon as it - // is ready). - // +optional - optional int32 minReadySeconds = 4; - - // DEPRECATED. - // A sequence number representing a specific generation of the template. - // Populated by the system. It can be set only during the creation. - // +optional - optional int64 templateGeneration = 5; - - // The number of old history to retain to allow rollback. - // This is a pointer to distinguish between explicit zero and not specified. - // Defaults to 10. - // +optional - optional int32 revisionHistoryLimit = 6; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DaemonSetStatus represents the current status of a daemon set. -message DaemonSetStatus { - // The number of nodes that are running at least 1 - // daemon pod and are supposed to run the daemon pod. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ - optional int32 currentNumberScheduled = 1; - - // The number of nodes that are running the daemon pod, but are - // not supposed to run the daemon pod. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ - optional int32 numberMisscheduled = 2; - - // The total number of nodes that should be running the daemon - // pod (including nodes correctly running the daemon pod). - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ - optional int32 desiredNumberScheduled = 3; - - // The number of nodes that should be running the daemon pod and have one - // or more of the daemon pod running and ready. - optional int32 numberReady = 4; - - // The most recent generation observed by the daemon set controller. - // +optional - optional int64 observedGeneration = 5; - - // The total number of nodes that are running updated daemon pod - // +optional - optional int32 updatedNumberScheduled = 6; - - // The number of nodes that should be running the - // daemon pod and have one or more of the daemon pod running and - // available (ready for at least spec.minReadySeconds) - // +optional - optional int32 numberAvailable = 7; - - // The number of nodes that should be running the - // daemon pod and have none of the daemon pod running and available - // (ready for at least spec.minReadySeconds) - // +optional - optional int32 numberUnavailable = 8; - - // Count of hash collisions for the DaemonSet. The DaemonSet controller - // uses this field as a collision avoidance mechanism when it needs to - // create the name for the newest ControllerRevision. - // +optional - optional int64 collisionCount = 9; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -message DaemonSetUpdateStrategy { - // Type of daemon set update. Can be "RollingUpdate" or "OnDelete". - // Default is OnDelete. - // +optional - optional string type = 1; - - // Rolling update config params. Present only if type = "RollingUpdate". - // --- - // TODO: Update this to follow our convention for oneOf, whatever we decide it - // to be. Same as Deployment `strategy.rollingUpdate`. - // See https://github.com/kubernetes/kubernetes/issues/35345 - // +optional - optional RollingUpdateDaemonSet rollingUpdate = 2; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// Deployment enables declarative updates for Pods and ReplicaSets. -message Deployment { - // Standard object metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Specification of the desired behavior of the Deployment. - // +optional - optional DeploymentSpec spec = 2; - - // Most recently observed status of the Deployment. - // +optional - optional DeploymentStatus status = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DeploymentCondition describes the state of a deployment at a certain point. -message DeploymentCondition { - // Type of deployment condition. - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - optional string status = 2; - - // The last time this condition was updated. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6; - - // Last time the condition transitioned from one status to another. - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7; - - // The reason for the condition's last transition. - optional string reason = 4; - - // A human readable message indicating details about the transition. - optional string message = 5; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DeploymentList is a list of Deployments. -message DeploymentList { - // Standard list metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // Items is the list of Deployments. - repeated Deployment items = 2; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DeploymentRollback stores the information required to rollback a deployment. -message DeploymentRollback { - // Required: This must match the Name of a deployment. - optional string name = 1; - - // The annotations to be updated to a deployment - // +optional - map updatedAnnotations = 2; - - // The config of this deployment rollback. - optional RollbackConfig rollbackTo = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DeploymentSpec is the specification of the desired behavior of the Deployment. -message DeploymentSpec { - // Number of desired pods. This is a pointer to distinguish between explicit - // zero and not specified. Defaults to 1. - // +optional - optional int32 replicas = 1; - - // Label selector for pods. Existing ReplicaSets whose pods are - // selected by this will be the ones affected by this deployment. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; - - // Template describes the pods that will be created. - optional k8s.io.api.core.v1.PodTemplateSpec template = 3; - - // The deployment strategy to use to replace existing pods with new ones. - // +optional - optional DeploymentStrategy strategy = 4; - - // Minimum number of seconds for which a newly created pod should be ready - // without any of its container crashing, for it to be considered available. - // Defaults to 0 (pod will be considered available as soon as it is ready) - // +optional - optional int32 minReadySeconds = 5; - - // The number of old ReplicaSets to retain to allow rollback. - // This is a pointer to distinguish between explicit zero and not specified. - // Defaults to 10. - // +optional - optional int32 revisionHistoryLimit = 6; - - // Indicates that the deployment is paused. - // +optional - optional bool paused = 7; - - // The config this deployment is rolling back to. Will be cleared after rollback is done. - // +optional - optional RollbackConfig rollbackTo = 8; - - // The maximum time in seconds for a deployment to make progress before it - // is considered to be failed. The deployment controller will continue to - // process failed deployments and a condition with a ProgressDeadlineExceeded - // reason will be surfaced in the deployment status. Once autoRollback is - // implemented, the deployment controller will automatically rollback failed - // deployments. Note that progress will not be estimated during the time a - // deployment is paused. Defaults to 600s. - optional int32 progressDeadlineSeconds = 9; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DeploymentStatus is the most recently observed status of the Deployment. -message DeploymentStatus { - // The generation observed by the deployment controller. - // +optional - optional int64 observedGeneration = 1; - - // Total number of non-terminated pods targeted by this deployment (their labels match the selector). - // +optional - optional int32 replicas = 2; - - // Total number of non-terminated pods targeted by this deployment that have the desired template spec. - // +optional - optional int32 updatedReplicas = 3; - - // Total number of ready pods targeted by this deployment. - // +optional - optional int32 readyReplicas = 7; - - // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. - // +optional - optional int32 availableReplicas = 4; - - // Total number of unavailable pods targeted by this deployment. - // +optional - optional int32 unavailableReplicas = 5; - - // Represents the latest available observations of a deployment's current state. - // +patchMergeKey=type - // +patchStrategy=merge - repeated DeploymentCondition conditions = 6; - - // Count of hash collisions for the Deployment. The Deployment controller uses this - // field as a collision avoidance mechanism when it needs to create the name for the - // newest ReplicaSet. - // +optional - optional int64 collisionCount = 8; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// DeploymentStrategy describes how to replace existing pods with new ones. -message DeploymentStrategy { - // Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. - // +optional - optional string type = 1; - - // Rolling update config params. Present only if DeploymentStrategyType = - // RollingUpdate. - // --- - // TODO: Update this to follow our convention for oneOf, whatever we decide it - // to be. - // +optional - optional RollingUpdateDeployment rollingUpdate = 2; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// ReplicaSet represents the configuration of a ReplicaSet. -message ReplicaSet { - // If the Labels of a ReplicaSet are empty, they are defaulted to - // be the same as the Pod(s) that the ReplicaSet manages. - // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec defines the specification of the desired behavior of the ReplicaSet. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status - // +optional - optional ReplicaSetSpec spec = 2; - - // Status is the most recently observed status of the ReplicaSet. - // This data may be out of date by some window of time. - // Populated by the system. - // Read-only. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status - // +optional - optional ReplicaSetStatus status = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// ReplicaSetCondition describes the state of a replica set at a certain point. -message ReplicaSetCondition { - // Type of replica set condition. - optional string type = 1; - - // Status of the condition, one of True, False, Unknown. - optional string status = 2; - - // The last time the condition transitioned from one status to another. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; - - // The reason for the condition's last transition. - // +optional - optional string reason = 4; - - // A human readable message indicating details about the transition. - // +optional - optional string message = 5; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// ReplicaSetList is a collection of ReplicaSets. -message ReplicaSetList { - // Standard list metadata. - // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - // List of ReplicaSets. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller - repeated ReplicaSet items = 2; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// ReplicaSetSpec is the specification of a ReplicaSet. -message ReplicaSetSpec { - // Replicas is the number of desired replicas. - // This is a pointer to distinguish between explicit zero and unspecified. - // Defaults to 1. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller - // +optional - optional int32 replicas = 1; - - // Minimum number of seconds for which a newly created pod should be ready - // without any of its container crashing, for it to be considered available. - // Defaults to 0 (pod will be considered available as soon as it is ready) - // +optional - optional int32 minReadySeconds = 4; - - // Selector is a label query over pods that should match the replica count. - // If the selector is empty, it is defaulted to the labels present on the pod template. - // Label keys and values that must match in order to be controlled by this replica set. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; - - // Template is the object that describes the pod that will be created if - // insufficient replicas are detected. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template - // +optional - optional k8s.io.api.core.v1.PodTemplateSpec template = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// ReplicaSetStatus represents the current status of a ReplicaSet. -message ReplicaSetStatus { - // Replicas is the most recently oberved number of replicas. - // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller - optional int32 replicas = 1; - - // The number of pods that have labels matching the labels of the pod template of the replicaset. - // +optional - optional int32 fullyLabeledReplicas = 2; - - // The number of ready replicas for this replica set. - // +optional - optional int32 readyReplicas = 4; - - // The number of available replicas (ready for at least minReadySeconds) for this replica set. - // +optional - optional int32 availableReplicas = 5; - - // ObservedGeneration reflects the generation of the most recently observed ReplicaSet. - // +optional - optional int64 observedGeneration = 3; - - // Represents the latest available observations of a replica set's current state. - // +optional - // +patchMergeKey=type - // +patchStrategy=merge - repeated ReplicaSetCondition conditions = 6; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -message RollbackConfig { - // The revision to rollback to. If set to 0, rollback to the last revision. - // +optional - optional int64 revision = 1; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// Spec to control the desired behavior of daemon set rolling update. -message RollingUpdateDaemonSet { - // The maximum number of DaemonSet pods that can be unavailable during the - // update. Value can be an absolute number (ex: 5) or a percentage of total - // number of DaemonSet pods at the start of the update (ex: 10%). Absolute - // number is calculated from percentage by rounding up. - // This cannot be 0. - // Default value is 1. - // Example: when this is set to 30%, at most 30% of the total number of nodes - // that should be running the daemon pod (i.e. status.desiredNumberScheduled) - // can have their pods stopped for an update at any given - // time. The update starts by stopping at most 30% of those DaemonSet pods - // and then brings up new DaemonSet pods in their place. Once the new pods - // are available, it then proceeds onto other DaemonSet pods, thus ensuring - // that at least 70% of original number of DaemonSet pods are available at - // all times during the update. - // +optional - optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// Spec to control the desired behavior of rolling update. -message RollingUpdateDeployment { - // The maximum number of pods that can be unavailable during the update. - // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). - // Absolute number is calculated from percentage by rounding down. - // This can not be 0 if MaxSurge is 0. - // Defaults to 25%. - // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods - // immediately when the rolling update starts. Once new pods are ready, old RC - // can be scaled down further, followed by scaling up the new RC, ensuring - // that the total number of pods available at all times during the update is at - // least 70% of desired pods. - // +optional - optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; - - // The maximum number of pods that can be scheduled above the desired number of - // pods. - // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). - // This can not be 0 if MaxUnavailable is 0. - // Absolute number is calculated from percentage by rounding up. - // Defaults to 25%. - // Example: when this is set to 30%, the new RC can be scaled up immediately when - // the rolling update starts, such that the total number of old and new pods do not exceed - // 130% of desired pods. Once old pods have been killed, - // new RC can be scaled up further, ensuring that total number of pods running - // at any time during the update is atmost 130% of desired pods. - // +optional - optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. -message RollingUpdateStatefulSetStrategy { - // Partition indicates the ordinal at which the StatefulSet should be - // partitioned. - optional int32 partition = 1; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// Scale represents a scaling request for a resource. -message Scale { - // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. - // +optional - optional ScaleSpec spec = 2; - - // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only. - // +optional - optional ScaleStatus status = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// ScaleSpec describes the attributes of a scale subresource -message ScaleSpec { - // desired number of instances for the scaled object. - // +optional - optional int32 replicas = 1; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// ScaleStatus represents the current status of a scale subresource. -message ScaleStatus { - // actual number of observed instances of the scaled object. - optional int32 replicas = 1; - - // label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors - // +optional - map selector = 2; - - // label selector for pods that should match the replicas count. This is a serializated - // version of both map-based and more expressive set-based selectors. This is done to - // avoid introspection in the clients. The string will be in the same format as the - // query-param syntax. If the target type only supports map-based selectors, both this - // field and map-based selector field are populated. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - optional string targetSelector = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// StatefulSet represents a set of pods with consistent identities. -// Identities are defined as: -// - Network: A single stable DNS and hostname. -// - Storage: As many VolumeClaims as requested. -// The StatefulSet guarantees that a given network identity will always -// map to the same storage identity. -message StatefulSet { - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; - - // Spec defines the desired identities of pods in this set. - // +optional - optional StatefulSetSpec spec = 2; - - // Status is the current status of Pods in this StatefulSet. This data - // may be out of date by some window of time. - // +optional - optional StatefulSetStatus status = 3; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// StatefulSetList is a collection of StatefulSets. -message StatefulSetList { - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; - - repeated StatefulSet items = 2; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// A StatefulSetSpec is the specification of a StatefulSet. -message StatefulSetSpec { - // replicas is the desired number of replicas of the given Template. - // These are replicas in the sense that they are instantiations of the - // same Template, but individual replicas also have a consistent identity. - // If unspecified, defaults to 1. - // TODO: Consider a rename of this field. - // +optional - optional int32 replicas = 1; - - // selector is a label query over pods that should match the replica count. - // If empty, defaulted to labels on the pod template. - // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors - // +optional - optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; - - // template is the object that describes the pod that will be created if - // insufficient replicas are detected. Each pod stamped out by the StatefulSet - // will fulfill this Template, but have a unique identity from the rest - // of the StatefulSet. - optional k8s.io.api.core.v1.PodTemplateSpec template = 3; - - // volumeClaimTemplates is a list of claims that pods are allowed to reference. - // The StatefulSet controller is responsible for mapping network identities to - // claims in a way that maintains the identity of a pod. Every claim in - // this list must have at least one matching (by name) volumeMount in one - // container in the template. A claim in this list takes precedence over - // any volumes in the template, with the same name. - // TODO: Define the behavior if a claim already exists with the same name. - // +optional - repeated k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4; - - // serviceName is the name of the service that governs this StatefulSet. - // This service must exist before the StatefulSet, and is responsible for - // the network identity of the set. Pods get DNS/hostnames that follow the - // pattern: pod-specific-string.serviceName.default.svc.cluster.local - // where "pod-specific-string" is managed by the StatefulSet controller. - optional string serviceName = 5; - - // podManagementPolicy controls how pods are created during initial scale up, - // when replacing pods on nodes, or when scaling down. The default policy is - // `OrderedReady`, where pods are created in increasing order (pod-0, then - // pod-1, etc) and the controller will wait until each pod is ready before - // continuing. When scaling down, the pods are removed in the opposite order. - // The alternative policy is `Parallel` which will create pods in parallel - // to match the desired scale without waiting, and on scale down will delete - // all pods at once. - // +optional - optional string podManagementPolicy = 6; - - // updateStrategy indicates the StatefulSetUpdateStrategy that will be - // employed to update Pods in the StatefulSet when a revision is made to - // Template. - optional StatefulSetUpdateStrategy updateStrategy = 7; - - // revisionHistoryLimit is the maximum number of revisions that will - // be maintained in the StatefulSet's revision history. The revision history - // consists of all revisions not represented by a currently applied - // StatefulSetSpec version. The default value is 10. - optional int32 revisionHistoryLimit = 8; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// StatefulSetStatus represents the current state of a StatefulSet. -message StatefulSetStatus { - // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the - // StatefulSet's generation, which is updated on mutation by the API Server. - // +optional - optional int64 observedGeneration = 1; - - // replicas is the number of Pods created by the StatefulSet controller. - optional int32 replicas = 2; - - // readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. - optional int32 readyReplicas = 3; - - // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version - // indicated by currentRevision. - optional int32 currentReplicas = 4; - - // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version - // indicated by updateRevision. - optional int32 updatedReplicas = 5; - - // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the - // sequence [0,currentReplicas). - optional string currentRevision = 6; - - // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence - // [replicas-updatedReplicas,replicas) - optional string updateRevision = 7; -} - -// WIP: This is not ready to be used and we plan to make breaking changes to it. -// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet -// controller will use to perform updates. It includes any additional parameters -// necessary to perform the update for the indicated strategy. -message StatefulSetUpdateStrategy { - // Type indicates the type of the StatefulSetUpdateStrategy. - optional string type = 1; - - // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. - optional RollingUpdateStatefulSetStrategy rollingUpdate = 2; -} - diff --git a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go deleted file mode 100644 index c6f97f6c719..00000000000 --- a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ /dev/null @@ -1,368 +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 v1beta2 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-generated-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_DaemonSet = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSet represents the configuration of a daemon set.", - "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "spec": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "status": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", -} - -func (DaemonSet) SwaggerDoc() map[string]string { - return map_DaemonSet -} - -var map_DaemonSetList = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetList is a collection of daemon sets.", - "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "items": "A list of daemon sets.", -} - -func (DaemonSetList) SwaggerDoc() map[string]string { - return map_DaemonSetList -} - -var map_DaemonSetSpec = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetSpec is the specification of a daemon set.", - "selector": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "template": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", - "updateStrategy": "An update strategy to replace existing DaemonSet pods with new pods.", - "minReadySeconds": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", - "templateGeneration": "DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.", - "revisionHistoryLimit": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", -} - -func (DaemonSetSpec) SwaggerDoc() map[string]string { - return map_DaemonSetSpec -} - -var map_DaemonSetStatus = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetStatus represents the current status of a daemon set.", - "currentNumberScheduled": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "numberMisscheduled": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "desiredNumberScheduled": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", - "numberReady": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", - "observedGeneration": "The most recent generation observed by the daemon set controller.", - "updatedNumberScheduled": "The total number of nodes that are running updated daemon pod", - "numberAvailable": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "numberUnavailable": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", - "collisionCount": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", -} - -func (DaemonSetStatus) SwaggerDoc() map[string]string { - return map_DaemonSetStatus -} - -var map_DaemonSetUpdateStrategy = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it.", - "type": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.", - "rollingUpdate": "Rolling update config params. Present only if type = \"RollingUpdate\".", -} - -func (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string { - return map_DaemonSetUpdateStrategy -} - -var map_Deployment = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Deployment enables declarative updates for Pods and ReplicaSets.", - "metadata": "Standard object metadata.", - "spec": "Specification of the desired behavior of the Deployment.", - "status": "Most recently observed status of the Deployment.", -} - -func (Deployment) SwaggerDoc() map[string]string { - return map_Deployment -} - -var map_DeploymentCondition = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentCondition describes the state of a deployment at a certain point.", - "type": "Type of deployment condition.", - "status": "Status of the condition, one of True, False, Unknown.", - "lastUpdateTime": "The last time this condition was updated.", - "lastTransitionTime": "Last time the condition transitioned from one status to another.", - "reason": "The reason for the condition's last transition.", - "message": "A human readable message indicating details about the transition.", -} - -func (DeploymentCondition) SwaggerDoc() map[string]string { - return map_DeploymentCondition -} - -var map_DeploymentList = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentList is a list of Deployments.", - "metadata": "Standard list metadata.", - "items": "Items is the list of Deployments.", -} - -func (DeploymentList) SwaggerDoc() map[string]string { - return map_DeploymentList -} - -var map_DeploymentRollback = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentRollback stores the information required to rollback a deployment.", - "name": "Required: This must match the Name of a deployment.", - "updatedAnnotations": "The annotations to be updated to a deployment", - "rollbackTo": "The config of this deployment rollback.", -} - -func (DeploymentRollback) SwaggerDoc() map[string]string { - return map_DeploymentRollback -} - -var map_DeploymentSpec = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentSpec is the specification of the desired behavior of the Deployment.", - "replicas": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", - "selector": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", - "template": "Template describes the pods that will be created.", - "strategy": "The deployment strategy to use to replace existing pods with new ones.", - "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "revisionHistoryLimit": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", - "paused": "Indicates that the deployment is paused.", - "rollbackTo": "The config this deployment is rolling back to. Will be cleared after rollback is done.", - "progressDeadlineSeconds": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", -} - -func (DeploymentSpec) SwaggerDoc() map[string]string { - return map_DeploymentSpec -} - -var map_DeploymentStatus = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStatus is the most recently observed status of the Deployment.", - "observedGeneration": "The generation observed by the deployment controller.", - "replicas": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", - "updatedReplicas": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", - "readyReplicas": "Total number of ready pods targeted by this deployment.", - "availableReplicas": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", - "unavailableReplicas": "Total number of unavailable pods targeted by this deployment.", - "conditions": "Represents the latest available observations of a deployment's current state.", - "collisionCount": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", -} - -func (DeploymentStatus) SwaggerDoc() map[string]string { - return map_DeploymentStatus -} - -var map_DeploymentStrategy = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStrategy describes how to replace existing pods with new ones.", - "type": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", - "rollingUpdate": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", -} - -func (DeploymentStrategy) SwaggerDoc() map[string]string { - return map_DeploymentStrategy -} - -var map_ReplicaSet = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSet represents the configuration of a ReplicaSet.", - "metadata": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", - "spec": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", - "status": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", -} - -func (ReplicaSet) SwaggerDoc() map[string]string { - return map_ReplicaSet -} - -var map_ReplicaSetCondition = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetCondition describes the state of a replica set at a certain point.", - "type": "Type of replica set condition.", - "status": "Status of the condition, one of True, False, Unknown.", - "lastTransitionTime": "The last time the condition transitioned from one status to another.", - "reason": "The reason for the condition's last transition.", - "message": "A human readable message indicating details about the transition.", -} - -func (ReplicaSetCondition) SwaggerDoc() map[string]string { - return map_ReplicaSetCondition -} - -var map_ReplicaSetList = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetList is a collection of ReplicaSets.", - "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "items": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", -} - -func (ReplicaSetList) SwaggerDoc() map[string]string { - return map_ReplicaSetList -} - -var map_ReplicaSetSpec = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetSpec is the specification of a ReplicaSet.", - "replicas": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", - "selector": "Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "template": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", -} - -func (ReplicaSetSpec) SwaggerDoc() map[string]string { - return map_ReplicaSetSpec -} - -var map_ReplicaSetStatus = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetStatus represents the current status of a ReplicaSet.", - "replicas": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", - "fullyLabeledReplicas": "The number of pods that have labels matching the labels of the pod template of the replicaset.", - "readyReplicas": "The number of ready replicas for this replica set.", - "availableReplicas": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", - "observedGeneration": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", - "conditions": "Represents the latest available observations of a replica set's current state.", -} - -func (ReplicaSetStatus) SwaggerDoc() map[string]string { - return map_ReplicaSetStatus -} - -var map_RollbackConfig = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it.", - "revision": "The revision to rollback to. If set to 0, rollback to the last revision.", -} - -func (RollbackConfig) SwaggerDoc() map[string]string { - return map_RollbackConfig -} - -var map_RollingUpdateDaemonSet = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of daemon set rolling update.", - "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", -} - -func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { - return map_RollingUpdateDaemonSet -} - -var map_RollingUpdateDeployment = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of rolling update.", - "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", - "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", -} - -func (RollingUpdateDeployment) SwaggerDoc() map[string]string { - return map_RollingUpdateDeployment -} - -var map_RollingUpdateStatefulSetStrategy = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "partition": "Partition indicates the ordinal at which the StatefulSet should be partitioned.", -} - -func (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string { - return map_RollingUpdateStatefulSetStrategy -} - -var map_Scale = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Scale represents a scaling request for a resource.", - "metadata": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", - "spec": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", - "status": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", -} - -func (Scale) SwaggerDoc() map[string]string { - return map_Scale -} - -var map_ScaleSpec = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleSpec describes the attributes of a scale subresource", - "replicas": "desired number of instances for the scaled object.", -} - -func (ScaleSpec) SwaggerDoc() map[string]string { - return map_ScaleSpec -} - -var map_ScaleStatus = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleStatus represents the current status of a scale subresource.", - "replicas": "actual number of observed instances of the scaled object.", - "selector": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", - "targetSelector": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", -} - -func (ScaleStatus) SwaggerDoc() map[string]string { - return map_ScaleStatus -} - -var map_StatefulSet = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", - "spec": "Spec defines the desired identities of pods in this set.", - "status": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", -} - -func (StatefulSet) SwaggerDoc() map[string]string { - return map_StatefulSet -} - -var map_StatefulSetList = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetList is a collection of StatefulSets.", -} - -func (StatefulSetList) SwaggerDoc() map[string]string { - return map_StatefulSetList -} - -var map_StatefulSetSpec = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. A StatefulSetSpec is the specification of a StatefulSet.", - "replicas": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", - "selector": "selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", - "template": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", - "volumeClaimTemplates": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", - "serviceName": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", - "podManagementPolicy": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", - "updateStrategy": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", - "revisionHistoryLimit": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", -} - -func (StatefulSetSpec) SwaggerDoc() map[string]string { - return map_StatefulSetSpec -} - -var map_StatefulSetStatus = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetStatus represents the current state of a StatefulSet.", - "observedGeneration": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", - "replicas": "replicas is the number of Pods created by the StatefulSet controller.", - "readyReplicas": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", - "currentReplicas": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", - "updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", - "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", - "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", -} - -func (StatefulSetStatus) SwaggerDoc() map[string]string { - return map_StatefulSetStatus -} - -var map_StatefulSetUpdateStrategy = map[string]string{ - "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "type": "Type indicates the type of the StatefulSetUpdateStrategy.", - "rollingUpdate": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", -} - -func (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string { - return map_StatefulSetUpdateStrategy -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go deleted file mode 100644 index bc2b9cd8167..00000000000 --- a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go +++ /dev/null @@ -1,1005 +0,0 @@ -// +build !ignore_autogenerated - -/* -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. -*/ - -// This file was autogenerated by deepcopy-gen. Do not edit it manually! - -package v1beta2 - -import ( - core_v1 "k8s.io/api/core/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - conversion "k8s.io/apimachinery/pkg/conversion" - runtime "k8s.io/apimachinery/pkg/runtime" - intstr "k8s.io/apimachinery/pkg/util/intstr" - reflect "reflect" -) - -func init() { - SchemeBuilder.Register(RegisterDeepCopies) -} - -// RegisterDeepCopies adds deep-copy functions to the given scheme. Public -// to allow building arbitrary schemes. -// -// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. -func RegisterDeepCopies(scheme *runtime.Scheme) error { - return scheme.AddGeneratedDeepCopyFuncs( - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSet).DeepCopyInto(out.(*DaemonSet)) - return nil - }, InType: reflect.TypeOf(&DaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetList).DeepCopyInto(out.(*DaemonSetList)) - return nil - }, InType: reflect.TypeOf(&DaemonSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetSpec).DeepCopyInto(out.(*DaemonSetSpec)) - return nil - }, InType: reflect.TypeOf(&DaemonSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetStatus).DeepCopyInto(out.(*DaemonSetStatus)) - return nil - }, InType: reflect.TypeOf(&DaemonSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DaemonSetUpdateStrategy).DeepCopyInto(out.(*DaemonSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&DaemonSetUpdateStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Deployment).DeepCopyInto(out.(*Deployment)) - return nil - }, InType: reflect.TypeOf(&Deployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentCondition).DeepCopyInto(out.(*DeploymentCondition)) - return nil - }, InType: reflect.TypeOf(&DeploymentCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentList).DeepCopyInto(out.(*DeploymentList)) - return nil - }, InType: reflect.TypeOf(&DeploymentList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentRollback).DeepCopyInto(out.(*DeploymentRollback)) - return nil - }, InType: reflect.TypeOf(&DeploymentRollback{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentSpec).DeepCopyInto(out.(*DeploymentSpec)) - return nil - }, InType: reflect.TypeOf(&DeploymentSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStatus).DeepCopyInto(out.(*DeploymentStatus)) - return nil - }, InType: reflect.TypeOf(&DeploymentStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*DeploymentStrategy).DeepCopyInto(out.(*DeploymentStrategy)) - return nil - }, InType: reflect.TypeOf(&DeploymentStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSet).DeepCopyInto(out.(*ReplicaSet)) - return nil - }, InType: reflect.TypeOf(&ReplicaSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetCondition).DeepCopyInto(out.(*ReplicaSetCondition)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetCondition{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetList).DeepCopyInto(out.(*ReplicaSetList)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetSpec).DeepCopyInto(out.(*ReplicaSetSpec)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ReplicaSetStatus).DeepCopyInto(out.(*ReplicaSetStatus)) - return nil - }, InType: reflect.TypeOf(&ReplicaSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollbackConfig).DeepCopyInto(out.(*RollbackConfig)) - return nil - }, InType: reflect.TypeOf(&RollbackConfig{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDaemonSet).DeepCopyInto(out.(*RollingUpdateDaemonSet)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDaemonSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateDeployment).DeepCopyInto(out.(*RollingUpdateDeployment)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateDeployment{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*RollingUpdateStatefulSetStrategy).DeepCopyInto(out.(*RollingUpdateStatefulSetStrategy)) - return nil - }, InType: reflect.TypeOf(&RollingUpdateStatefulSetStrategy{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*Scale).DeepCopyInto(out.(*Scale)) - return nil - }, InType: reflect.TypeOf(&Scale{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) - return nil - }, InType: reflect.TypeOf(&ScaleSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) - return nil - }, InType: reflect.TypeOf(&ScaleStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSet).DeepCopyInto(out.(*StatefulSet)) - return nil - }, InType: reflect.TypeOf(&StatefulSet{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetList).DeepCopyInto(out.(*StatefulSetList)) - return nil - }, InType: reflect.TypeOf(&StatefulSetList{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetSpec).DeepCopyInto(out.(*StatefulSetSpec)) - return nil - }, InType: reflect.TypeOf(&StatefulSetSpec{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetStatus).DeepCopyInto(out.(*StatefulSetStatus)) - return nil - }, InType: reflect.TypeOf(&StatefulSetStatus{})}, - conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { - in.(*StatefulSetUpdateStrategy).DeepCopyInto(out.(*StatefulSetUpdateStrategy)) - return nil - }, InType: reflect.TypeOf(&StatefulSetUpdateStrategy{})}, - ) -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DaemonSet) DeepCopyInto(out *DaemonSet) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet. -func (in *DaemonSet) DeepCopy() *DaemonSet { - if in == nil { - return nil - } - out := new(DaemonSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DaemonSet) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]DaemonSet, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList. -func (in *DaemonSetList) DeepCopy() *DaemonSetList { - if in == nil { - return nil - } - out := new(DaemonSetList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DaemonSetList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) { - *out = *in - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - } - in.Template.DeepCopyInto(&out.Template) - in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) - if in.RevisionHistoryLimit != nil { - in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec. -func (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec { - if in == nil { - return nil - } - out := new(DaemonSetSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { - *out = *in - if in.CollisionCount != nil { - in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus. -func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus { - if in == nil { - return nil - } - out := new(DaemonSetStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) { - *out = *in - if in.RollingUpdate != nil { - in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDaemonSet) - (*in).DeepCopyInto(*out) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy. -func (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy { - if in == nil { - return nil - } - out := new(DaemonSetUpdateStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Deployment) DeepCopyInto(out *Deployment) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment. -func (in *Deployment) DeepCopy() *Deployment { - if in == nil { - return nil - } - out := new(Deployment) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Deployment) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) { - *out = *in - in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition. -func (in *DeploymentCondition) DeepCopy() *DeploymentCondition { - if in == nil { - return nil - } - out := new(DeploymentCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentList) DeepCopyInto(out *DeploymentList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Deployment, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList. -func (in *DeploymentList) DeepCopy() *DeploymentList { - if in == nil { - return nil - } - out := new(DeploymentList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentRollback) DeepCopyInto(out *DeploymentRollback) { - *out = *in - out.TypeMeta = in.TypeMeta - if in.UpdatedAnnotations != nil { - in, out := &in.UpdatedAnnotations, &out.UpdatedAnnotations - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - out.RollbackTo = in.RollbackTo - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRollback. -func (in *DeploymentRollback) DeepCopy() *DeploymentRollback { - if in == nil { - return nil - } - out := new(DeploymentRollback) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *DeploymentRollback) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) { - *out = *in - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - } - in.Template.DeepCopyInto(&out.Template) - in.Strategy.DeepCopyInto(&out.Strategy) - if in.RevisionHistoryLimit != nil { - in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - if in.RollbackTo != nil { - in, out := &in.RollbackTo, &out.RollbackTo - if *in == nil { - *out = nil - } else { - *out = new(RollbackConfig) - **out = **in - } - } - if in.ProgressDeadlineSeconds != nil { - in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec. -func (in *DeploymentSpec) DeepCopy() *DeploymentSpec { - if in == nil { - return nil - } - out := new(DeploymentSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]DeploymentCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.CollisionCount != nil { - in, out := &in.CollisionCount, &out.CollisionCount - if *in == nil { - *out = nil - } else { - *out = new(int64) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus. -func (in *DeploymentStatus) DeepCopy() *DeploymentStatus { - if in == nil { - return nil - } - out := new(DeploymentStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { - *out = *in - if in.RollingUpdate != nil { - in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateDeployment) - (*in).DeepCopyInto(*out) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy. -func (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy { - if in == nil { - return nil - } - out := new(DeploymentStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet. -func (in *ReplicaSet) DeepCopy() *ReplicaSet { - if in == nil { - return nil - } - out := new(ReplicaSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ReplicaSet) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) { - *out = *in - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition. -func (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition { - if in == nil { - return nil - } - out := new(ReplicaSetCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]ReplicaSet, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList. -func (in *ReplicaSetList) DeepCopy() *ReplicaSetList { - if in == nil { - return nil - } - out := new(ReplicaSetList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ReplicaSetList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { - *out = *in - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - } - in.Template.DeepCopyInto(&out.Template) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec. -func (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec { - if in == nil { - return nil - } - out := new(ReplicaSetSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]ReplicaSetCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus. -func (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus { - if in == nil { - return nil - } - out := new(ReplicaSetStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RollbackConfig) DeepCopyInto(out *RollbackConfig) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollbackConfig. -func (in *RollbackConfig) DeepCopy() *RollbackConfig { - if in == nil { - return nil - } - out := new(RollbackConfig) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { - *out = *in - if in.MaxUnavailable != nil { - in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet. -func (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet { - if in == nil { - return nil - } - out := new(RollingUpdateDaemonSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) { - *out = *in - if in.MaxUnavailable != nil { - in, out := &in.MaxUnavailable, &out.MaxUnavailable - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } - } - if in.MaxSurge != nil { - in, out := &in.MaxSurge, &out.MaxSurge - if *in == nil { - *out = nil - } else { - *out = new(intstr.IntOrString) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment. -func (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment { - if in == nil { - return nil - } - out := new(RollingUpdateDeployment) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) { - *out = *in - if in.Partition != nil { - in, out := &in.Partition, &out.Partition - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy. -func (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy { - if in == nil { - return nil - } - out := new(RollingUpdateStatefulSetStrategy) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Scale) DeepCopyInto(out *Scale) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale. -func (in *Scale) DeepCopy() *Scale { - if in == nil { - return nil - } - out := new(Scale) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Scale) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec. -func (in *ScaleSpec) DeepCopy() *ScaleSpec { - if in == nil { - return nil - } - out := new(ScaleSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) { - *out = *in - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - *out = make(map[string]string, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus. -func (in *ScaleStatus) DeepCopy() *ScaleStatus { - if in == nil { - return nil - } - out := new(ScaleStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StatefulSet) DeepCopyInto(out *StatefulSet) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet. -func (in *StatefulSet) DeepCopy() *StatefulSet { - if in == nil { - return nil - } - out := new(StatefulSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *StatefulSet) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) { - *out = *in - out.TypeMeta = in.TypeMeta - out.ListMeta = in.ListMeta - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]StatefulSet, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList. -func (in *StatefulSetList) DeepCopy() *StatefulSetList { - if in == nil { - return nil - } - out := new(StatefulSetList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *StatefulSetList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } else { - return nil - } -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { - *out = *in - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - if in.Selector != nil { - in, out := &in.Selector, &out.Selector - if *in == nil { - *out = nil - } else { - *out = new(v1.LabelSelector) - (*in).DeepCopyInto(*out) - } - } - in.Template.DeepCopyInto(&out.Template) - if in.VolumeClaimTemplates != nil { - in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates - *out = make([]core_v1.PersistentVolumeClaim, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) - if in.RevisionHistoryLimit != nil { - in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit - if *in == nil { - *out = nil - } else { - *out = new(int32) - **out = **in - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec. -func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec { - if in == nil { - return nil - } - out := new(StatefulSetSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus. -func (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus { - if in == nil { - return nil - } - out := new(StatefulSetStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) { - *out = *in - if in.RollingUpdate != nil { - in, out := &in.RollingUpdate, &out.RollingUpdate - if *in == nil { - *out = nil - } else { - *out = new(RollingUpdateStatefulSetStrategy) - (*in).DeepCopyInto(*out) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy. -func (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy { - if in == nil { - return nil - } - out := new(StatefulSetUpdateStrategy) - in.DeepCopyInto(out) - return out -} From e245fbc2b2ff42d917b4c4f48cde3f9efee20bfd Mon Sep 17 00:00:00 2001 From: Janet Kuo Date: Mon, 7 Aug 2017 19:00:46 -0700 Subject: [PATCH 092/183] Autogen --- api/openapi-spec/swagger.json | 135 +- api/swagger-spec/apps_v1beta1.json | 5 +- api/swagger-spec/apps_v1beta2.json | 106 - api/swagger-spec/extensions_v1beta1.json | 5 +- .../apps/v1beta1/definitions.html | 7 +- .../apps/v1beta2/definitions.html | 7267 +++++++++++++++++ .../apps/v1beta2/operations.html | 4967 ++++++----- .../extensions/v1beta1/definitions.html | 7 +- federation/apis/openapi-spec/swagger.json | 5 +- .../apis/swagger-spec/extensions_v1beta1.json | 5 +- .../extensions/v1beta1/definitions.html | 7 +- .../apps/v1beta2/zz_generated.conversion.go | 65 +- .../apps/v1beta2/zz_generated.defaults.go | 613 ++ .../k8s.io/api/apps/v1beta1/generated.proto | 3 + .../v1beta1/types_swagger_doc_generated.go | 5 +- .../k8s.io/api/apps/v1beta2/generated.pb.go | 6549 +++++++++++++++ .../k8s.io/api/apps/v1beta2/generated.proto | 681 ++ .../v1beta2/types_swagger_doc_generated.go | 347 + .../api/apps/v1beta2/zz_generated.deepcopy.go | 938 +++ .../api/extensions/v1beta1/generated.proto | 3 + .../v1beta1/types_swagger_doc_generated.go | 5 +- 21 files changed, 18861 insertions(+), 2864 deletions(-) create mode 100755 docs/api-reference/apps/v1beta2/definitions.html create mode 100644 pkg/apis/apps/v1beta2/zz_generated.defaults.go create mode 100644 staging/src/k8s.io/api/apps/v1beta2/generated.pb.go create mode 100644 staging/src/k8s.io/api/apps/v1beta2/generated.proto create mode 100644 staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go create mode 100644 staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 9684eb25e16..4c712323f5a 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -23906,78 +23906,6 @@ } ] }, - "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/rollback": { - "post": { - "description": "create rollback of a Deployment", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "apps_v1beta2" - ], - "operationId": "createAppsV1beta2NamespacedDeploymentRollback", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentRollback" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.DeploymentRollback" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "apps", - "kind": "DeploymentRollback", - "version": "v1beta2" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the DeploymentRollback", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale": { "get": { "description": "read scale of the specified Deployment", @@ -51264,7 +51192,7 @@ ] }, "io.k8s.api.apps.v1beta1.DeploymentRollback": { - "description": "DeploymentRollback stores the information required to rollback a deployment.", + "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "required": [ "name", "rollbackTo" @@ -51333,7 +51261,7 @@ "format": "int32" }, "rollbackTo": { - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done.", + "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", "$ref": "#/definitions/io.k8s.api.apps.v1beta1.RollbackConfig" }, "selector": { @@ -51413,6 +51341,7 @@ } }, "io.k8s.api.apps.v1beta1.RollbackConfig": { + "description": "DEPRECATED.", "properties": { "revision": { "description": "The revision to rollback to. If set to 0, rollback to the last revision.", @@ -51942,45 +51871,6 @@ } ] }, - "io.k8s.api.apps.v1beta2.DeploymentRollback": { - "description": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", - "type": "string" - }, - "name": { - "description": "Required: This must match the Name of a deployment.", - "type": "string" - }, - "rollbackTo": { - "description": "The config of this deployment rollback.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollbackConfig" - }, - "updatedAnnotations": { - "description": "The annotations to be updated to a deployment", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - }, - "x-kubernetes-group-version-kind": [ - { - "group": "apps", - "kind": "DeploymentRollback", - "version": "v1beta2" - } - ] - }, "io.k8s.api.apps.v1beta2.DeploymentSpec": { "description": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentSpec is the specification of the desired behavior of the Deployment.", "required": [ @@ -52011,10 +51901,6 @@ "type": "integer", "format": "int32" }, - "rollbackTo": { - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done.", - "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollbackConfig" - }, "selector": { "description": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" @@ -52251,16 +52137,6 @@ } } }, - "io.k8s.api.apps.v1beta2.RollbackConfig": { - "description": "WIP: This is not ready to be used and we plan to make breaking changes to it.", - "properties": { - "revision": { - "description": "The revision to rollback to. If set to 0, rollback to the last revision.", - "type": "integer", - "format": "int64" - } - } - }, "io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet": { "description": "WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of daemon set rolling update.", "properties": { @@ -58688,7 +58564,7 @@ ] }, "io.k8s.api.extensions.v1beta1.DeploymentRollback": { - "description": "DeploymentRollback stores the information required to rollback a deployment.", + "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "required": [ "name", "rollbackTo" @@ -58757,7 +58633,7 @@ "format": "int32" }, "rollbackTo": { - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done.", + "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig" }, "selector": { @@ -59500,6 +59376,7 @@ } }, "io.k8s.api.extensions.v1beta1.RollbackConfig": { + "description": "DEPRECATED.", "properties": { "revision": { "description": "The revision to rollback to. If set to 0, rollback to the last revision.", diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json index 2f384bd93c8..4fc11e5b530 100644 --- a/api/swagger-spec/apps_v1beta1.json +++ b/api/swagger-spec/apps_v1beta1.json @@ -3810,7 +3810,7 @@ }, "rollbackTo": { "$ref": "v1beta1.RollbackConfig", - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done." + "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done." }, "progressDeadlineSeconds": { "type": "integer", @@ -5854,6 +5854,7 @@ }, "v1beta1.RollbackConfig": { "id": "v1beta1.RollbackConfig", + "description": "DEPRECATED.", "properties": { "revision": { "type": "integer", @@ -5946,7 +5947,7 @@ }, "v1beta1.DeploymentRollback": { "id": "v1beta1.DeploymentRollback", - "description": "DeploymentRollback stores the information required to rollback a deployment.", + "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "required": [ "name", "rollbackTo" diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json index 0dd7d9ae7e4..b41d7f721ee 100644 --- a/api/swagger-spec/apps_v1beta2.json +++ b/api/swagger-spec/apps_v1beta2.json @@ -1895,67 +1895,6 @@ } ] }, - { - "path": "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/rollback", - "description": "API at /apis/apps/v1beta2", - "operations": [ - { - "type": "v1beta2.DeploymentRollback", - "method": "POST", - "summary": "create rollback of a Deployment", - "nickname": "createNamespacedDeploymentRollback", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1beta2.DeploymentRollback", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the DeploymentRollback", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1beta2.DeploymentRollback" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, { "path": "/apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale", "description": "API at /apis/apps/v1beta2", @@ -7282,10 +7221,6 @@ "type": "boolean", "description": "Indicates that the deployment is paused." }, - "rollbackTo": { - "$ref": "v1beta2.RollbackConfig", - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done." - }, "progressDeadlineSeconds": { "type": "integer", "format": "int32", @@ -7321,17 +7256,6 @@ } } }, - "v1beta2.RollbackConfig": { - "id": "v1beta2.RollbackConfig", - "description": "WIP: This is not ready to be used and we plan to make breaking changes to it.", - "properties": { - "revision": { - "type": "integer", - "format": "int64", - "description": "The revision to rollback to. If set to 0, rollback to the last revision." - } - } - }, "v1beta2.DeploymentStatus": { "id": "v1beta2.DeploymentStatus", "description": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStatus is the most recently observed status of the Deployment.", @@ -7414,36 +7338,6 @@ } } }, - "v1beta2.DeploymentRollback": { - "id": "v1beta2.DeploymentRollback", - "description": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentRollback stores the information required to rollback a deployment.", - "required": [ - "name", - "rollbackTo" - ], - "properties": { - "kind": { - "type": "string", - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" - }, - "apiVersion": { - "type": "string", - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" - }, - "name": { - "type": "string", - "description": "Required: This must match the Name of a deployment." - }, - "updatedAnnotations": { - "type": "object", - "description": "The annotations to be updated to a deployment" - }, - "rollbackTo": { - "$ref": "v1beta2.RollbackConfig", - "description": "The config of this deployment rollback." - } - } - }, "v1beta2.Scale": { "id": "v1beta2.Scale", "description": "WIP: This is not ready to be used and we plan to make breaking changes to it. Scale represents a scaling request for a resource.", diff --git a/api/swagger-spec/extensions_v1beta1.json b/api/swagger-spec/extensions_v1beta1.json index 2c74fe32ae9..22c5a0ada73 100644 --- a/api/swagger-spec/extensions_v1beta1.json +++ b/api/swagger-spec/extensions_v1beta1.json @@ -8759,7 +8759,7 @@ }, "rollbackTo": { "$ref": "v1beta1.RollbackConfig", - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done." + "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done." }, "progressDeadlineSeconds": { "type": "integer", @@ -8798,6 +8798,7 @@ }, "v1beta1.RollbackConfig": { "id": "v1beta1.RollbackConfig", + "description": "DEPRECATED.", "properties": { "revision": { "type": "integer", @@ -8890,7 +8891,7 @@ }, "v1beta1.DeploymentRollback": { "id": "v1beta1.DeploymentRollback", - "description": "DeploymentRollback stores the information required to rollback a deployment.", + "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "required": [ "name", "rollbackTo" diff --git a/docs/api-reference/apps/v1beta1/definitions.html b/docs/api-reference/apps/v1beta1/definitions.html index e28807b9ddc..8f81db43766 100755 --- a/docs/api-reference/apps/v1beta1/definitions.html +++ b/docs/api-reference/apps/v1beta1/definitions.html @@ -2463,6 +2463,9 @@ When an object is created, the system will populate this list with the current s

v1beta1.RollbackConfig

+
+

DEPRECATED.

+
@@ -3490,7 +3493,7 @@ The StatefulSet guarantees that a given network identity will always map to the - + @@ -4857,7 +4860,7 @@ Examples:

v1beta1.DeploymentRollback

-

DeploymentRollback stores the information required to rollback a deployment.

+

DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.

rollbackTo

The config this deployment is rolling back to. Will be cleared after rollback is done.

DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.

false

v1beta1.RollbackConfig

diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html new file mode 100755 index 00000000000..46acbe132ce --- /dev/null +++ b/docs/api-reference/apps/v1beta2/definitions.html @@ -0,0 +1,7267 @@ + + + + + + +Top Level API Objects + + + + +
+ +
+

Definitions

+
+
+

v1.APIResourceList

+
+

APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.

+
+
+++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

groupVersion

groupVersion is the group and version this APIResourceList is for.

true

string

resources

resources contains the name of the resources and if they are namespaced.

true

v1.APIResource array

+ +
+
+

v1.Affinity

+
+

Affinity is a group of affinity scheduling rules.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

nodeAffinity

Describes node affinity scheduling rules for the pod.

false

v1.NodeAffinity

podAffinity

Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).

false

v1.PodAffinity

podAntiAffinity

Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).

false

v1.PodAntiAffinity

+ +
+
+

v1.NodeSelectorTerm

+
+

A null or empty node selector term matches no objects.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

matchExpressions

Required. A list of node selector requirements. The requirements are ANDed.

true

v1.NodeSelectorRequirement array

+ +
+
+

v1.Preconditions

+
+

Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

uid

Specifies the target UID.

false

types.UID

+ +
+
+

v1.ObjectFieldSelector

+
+

ObjectFieldSelector selects an APIVersioned field of an object.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

apiVersion

Version of the schema the FieldPath is written in terms of, defaults to "v1".

false

string

fieldPath

Path of the field to select in the specified API version.

true

string

+ +
+
+

v1beta2.DaemonSetList

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetList is a collection of daemon sets.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ListMeta

items

A list of daemon sets.

true

v1beta2.DaemonSet array

+ +
+
+

v1.SELinuxOptions

+
+

SELinuxOptions are the labels to be applied to the container

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

user

User is a SELinux user label that applies to the container.

false

string

role

Role is a SELinux role label that applies to the container.

false

string

type

Type is a SELinux type label that applies to the container.

false

string

level

Level is SELinux level label that applies to the container.

false

string

+ +
+
+

v1.VolumeMount

+
+

VolumeMount describes a mounting of a Volume within a container.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

This must match the Name of a Volume.

true

string

readOnly

Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.

false

boolean

false

mountPath

Path within the container at which the volume should be mounted. Must not contain :.

true

string

subPath

Path within the volume from which the container’s volume should be mounted. Defaults to "" (volume’s root).

false

string

+ +
+
+

v1.DownwardAPIProjection

+
+

Represents downward API info for projecting into a projected volume. Note that this is identical to a downwardAPI volume source without the default mode.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

items

Items is a list of DownwardAPIVolume file

false

v1.DownwardAPIVolumeFile array

+ +
+
+

v1.LabelSelector

+
+

A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

matchLabels

matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.

false

object

matchExpressions

matchExpressions is a list of label selector requirements. The requirements are ANDed.

false

v1.LabelSelectorRequirement array

+ +
+
+

v1.PersistentVolumeClaimSpec

+
+

PersistentVolumeClaimSpec describes the common attributes of storage devices and allows a Source for provider-specific attributes

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

accessModes

AccessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

false

v1.PersistentVolumeAccessMode array

selector

A label query over volumes to consider for binding.

false

v1.LabelSelector

resources

Resources represents the minimum resources the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

false

v1.ResourceRequirements

volumeName

VolumeName is the binding reference to the PersistentVolume backing this claim.

false

string

storageClassName

Name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1

false

string

+ +
+
+

v1.CephFSVolumeSource

+
+

Represents a Ceph Filesystem mount that lasts the lifetime of a pod Cephfs volumes do not support ownership management or SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

monitors

Required: Monitors is a collection of Ceph monitors More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

true

string array

path

Optional: Used as the mounted root, rather than the full Ceph tree, default is /

false

string

user

Optional: User is the rados user name, default is admin More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

string

secretFile

Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

string

secretRef

Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

v1.LocalObjectReference

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it

false

boolean

false

+ +
+
+

v1.DownwardAPIVolumeSource

+
+

DownwardAPIVolumeSource represents a volume containing downward API info. Downward API volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

items

Items is a list of downward API volume file

false

v1.DownwardAPIVolumeFile array

defaultMode

Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

+ +
+
+

v1.GCEPersistentDiskVolumeSource

+
+

Represents a Persistent Disk resource in Google Compute Engine.

+
+
+

A GCE PD must exist before mounting to a container. The disk must also be in the same GCE project and zone as the kubelet. A GCE PD can only be mounted as read/write once or read-only many times. GCE PDs support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

pdName

Unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

true

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

string

partition

The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

integer (int32)

readOnly

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

boolean

false

+ +
+
+

v1beta2.StatefulSetList

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetList is a collection of StatefulSets.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

false

v1.ListMeta

items

true

v1beta2.StatefulSet array

+ +
+
+

v1.ConfigMapVolumeSource

+
+

Adapts a ConfigMap into a volume.

+
+
+

The contents of the target ConfigMap’s Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

items

If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

defaultMode

Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

optional

Specify whether the ConfigMap or it’s keys must be defined

false

boolean

false

+ +
+
+

v1beta2.Scale

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. Scale represents a scaling request for a resource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.

false

v1.ObjectMeta

spec

defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.

false

v1beta2.ScaleSpec

status

current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.

false

v1beta2.ScaleStatus

+ +
+
+

v1beta2.RollingUpdateDaemonSet

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of daemon set rolling update.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

maxUnavailable

The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.

false

string

+ +
+
+

v1.GitRepoVolumeSource

+
+

Represents a volume that is populated with the contents of a git repository. Git repo volumes do not support ownership management. Git repo volumes support SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

repository

Repository URL

true

string

revision

Commit hash for the specified revision.

false

string

directory

Target directory name. Must not contain or start with ... If . is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name.

false

string

+ +
+
+

v1.SecretEnvSource

+
+

SecretEnvSource selects a Secret to populate the environment variables with.

+
+
+

The contents of the target Secret’s Data field will represent the key-value pairs as environment variables.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

optional

Specify whether the Secret must be defined

false

boolean

false

+ +
+
+

v1.PortworxVolumeSource

+
+

PortworxVolumeSource represents a Portworx volume resource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

volumeID

VolumeID uniquely identifies a Portworx volume

true

string

fsType

FSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

+ +
+
+

v1.Capabilities

+
+

Adds and removes POSIX capabilities from running containers.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

add

Added capabilities

false

v1.Capability array

drop

Removed capabilities

false

v1.Capability array

+ +
+
+

v1.Initializer

+
+

Initializer is information about an initializer that has not yet completed.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

name of the process that is responsible for initializing this object.

true

string

+ +
+
+

v1beta2.StatefulSetStatus

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetStatus represents the current state of a StatefulSet.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

observedGeneration

observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet’s generation, which is updated on mutation by the API Server.

false

integer (int64)

replicas

replicas is the number of Pods created by the StatefulSet controller.

true

integer (int32)

readyReplicas

readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.

false

integer (int32)

currentReplicas

currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.

false

integer (int32)

updatedReplicas

updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.

false

integer (int32)

currentRevision

currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).

false

string

updateRevision

updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)

false

string

+ +
+
+

v1.LocalObjectReference

+
+

LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

+ +
+
+

v1.ProjectedVolumeSource

+
+

Represents a projected volume source

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

sources

list of volume projections

true

v1.VolumeProjection array

defaultMode

Mode bits to use on created files by default. Must be a value between 0 and 0777. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

+ +
+
+

v1.ExecAction

+
+

ExecAction describes a "run in container" action.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

command

Command is the command line to execute inside the container, the working directory for the command is root (/) in the container’s filesystem. The command is simply exec’d, it is not run inside a shell, so traditional shell instructions ('

', etc) won’t work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.

false

string array

+ +
+
+

v1.ObjectMeta

+
+

ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names

false

string

generateName

GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.
+
+If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).
+
+Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

false

string

namespace

Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.
+
+Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

false

string

selfLink

SelfLink is a URL representing this object. Populated by the system. Read-only.

false

string

uid

UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
+
+Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

false

string

resourceVersion

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.
+
+Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

generation

A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

false

integer (int64)

creationTimestamp

CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
+
+Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

deletionTimestamp

DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
+
+Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

deletionGracePeriodSeconds

Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

false

integer (int64)

labels

Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

false

object

annotations

Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

false

object

ownerReferences

List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

false

v1.OwnerReference array

initializers

An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
+
+When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

false

v1.Initializers

finalizers

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

false

string array

clusterName

The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.

false

string

+ +
+
+

v1beta2.DeploymentStrategy

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStrategy describes how to replace existing pods with new ones.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

type

Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.

false

string

rollingUpdate

Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.

false

v1beta2.RollingUpdateDeployment

+ +
+
+

types.UID

+ +
+
+

v1.AzureFileVolumeSource

+
+

AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

secretName

the name of secret that contains Azure Storage Account Name and Key

true

string

shareName

Share Name

true

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

+ +
+
+

v1.ISCSIVolumeSource

+
+

Represents an ISCSI disk. ISCSI volumes can only be mounted as read/write once. ISCSI volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

targetPortal

iSCSI target portal. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

true

string

iqn

Target iSCSI Qualified Name.

true

string

lun

iSCSI target lun number.

true

integer (int32)

iscsiInterface

Optional: Defaults to default (tcp). iSCSI interface name that uses an iSCSI transport.

false

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi

false

string

readOnly

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.

false

boolean

false

portals

iSCSI target portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260).

false

string array

chapAuthDiscovery

whether support iSCSI Discovery CHAP authentication

false

boolean

false

chapAuthSession

whether support iSCSI Session CHAP authentication

false

boolean

false

secretRef

CHAP secret for iSCSI target and initiator authentication

false

v1.LocalObjectReference

+ +
+
+

v1beta2.DeploymentStatus

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStatus is the most recently observed status of the Deployment.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

observedGeneration

The generation observed by the deployment controller.

false

integer (int64)

replicas

Total number of non-terminated pods targeted by this deployment (their labels match the selector).

false

integer (int32)

updatedReplicas

Total number of non-terminated pods targeted by this deployment that have the desired template spec.

false

integer (int32)

readyReplicas

Total number of ready pods targeted by this deployment.

false

integer (int32)

availableReplicas

Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.

false

integer (int32)

unavailableReplicas

Total number of unavailable pods targeted by this deployment.

false

integer (int32)

conditions

Represents the latest available observations of a deployment’s current state.

false

v1beta2.DeploymentCondition array

collisionCount

Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.

false

integer (int64)

+ +
+
+

v1.EmptyDirVolumeSource

+
+

Represents an empty directory for a pod. Empty directory volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

medium

What type of storage medium should back this directory. The default is "" which means to use the node’s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

false

string

sizeLimit

Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

false

string

+ +
+
+

v1beta2.RollingUpdateStatefulSetStrategy

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

partition

Partition indicates the ordinal at which the StatefulSet should be partitioned.

false

integer (int32)

+ +
+
+

v1.PodAffinityTerm

+
+

Defines a set of pods (namely those matching the labelSelector relative to the given namespace(s)) that this pod should be co-located (affinity) or not co-located (anti-affinity) with, where co-located is defined as running on a node whose value of the label with key <topologyKey> tches that of any node on which a pod of the set of pods is running

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

labelSelector

A label query over a set of resources, in this case pods.

false

v1.LabelSelector

namespaces

namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace"

false

string array

topologyKey

This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. For PreferredDuringScheduling pod anti-affinity, empty topologyKey is interpreted as "all topologies" ("all topologies" here means all the topologyKeys indicated by scheduler command-line argument --failure-domains); for affinity and for RequiredDuringScheduling pod anti-affinity, empty topologyKey is not allowed.

false

string

+ +
+
+

v1beta2.DaemonSetStatus

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetStatus represents the current status of a daemon set.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

currentNumberScheduled

The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

true

integer (int32)

numberMisscheduled

The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

true

integer (int32)

desiredNumberScheduled

The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

true

integer (int32)

numberReady

The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.

true

integer (int32)

observedGeneration

The most recent generation observed by the daemon set controller.

false

integer (int64)

updatedNumberScheduled

The total number of nodes that are running updated daemon pod

false

integer (int32)

numberAvailable

The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)

false

integer (int32)

numberUnavailable

The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)

false

integer (int32)

collisionCount

Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

false

integer (int64)

+ +
+
+

v1.EnvFromSource

+
+

EnvFromSource represents the source of a set of ConfigMaps

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

prefix

An optional identifer to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.

false

string

configMapRef

The ConfigMap to select from

false

v1.ConfigMapEnvSource

secretRef

The Secret to select from

false

v1.SecretEnvSource

+ +
+
+

v1.PersistentVolumeClaim

+
+

PersistentVolumeClaim is a user’s request for and claim to a persistent volume

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

Spec defines the desired characteristics of a volume requested by a pod author. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

false

v1.PersistentVolumeClaimSpec

status

Status represents the current information/status of a persistent volume claim. Read-only. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

false

v1.PersistentVolumeClaimStatus

+ +
+
+

v1.PodAffinity

+
+

Pod affinity is a group of inter pod affinity scheduling rules.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

requiredDuringSchedulingIgnoredDuringExecution

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

preferredDuringSchedulingIgnoredDuringExecution

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

false

v1.WeightedPodAffinityTerm array

+ +
+
+

v1.FlockerVolumeSource

+
+

Represents a Flocker volume mounted by the Flocker agent. One and only one of datasetName and datasetUUID should be set. Flocker volumes do not support ownership management or SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

datasetName

Name of the dataset stored as metadata → name on the dataset for Flocker should be considered as deprecated

false

string

datasetUUID

UUID of the dataset. This is unique identifier of a Flocker dataset

false

string

+ +
+
+

v1.PersistentVolumeClaimVolumeSource

+
+

PersistentVolumeClaimVolumeSource references the user’s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

claimName

ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

true

string

readOnly

Will force the ReadOnly setting in VolumeMounts. Default false.

false

boolean

false

+ +
+
+

v1.ListMeta

+
+

ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

selfLink

SelfLink is a URL representing this object. Populated by the system. Read-only.

false

string

resourceVersion

String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

+ +
+
+

v1.PersistentVolumeClaimStatus

+
+

PersistentVolumeClaimStatus is the current status of a persistent volume claim.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

phase

Phase represents the current phase of PersistentVolumeClaim.

false

string

accessModes

AccessModes contains the actual access modes the volume backing the PVC has. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1

false

v1.PersistentVolumeAccessMode array

capacity

Represents the actual resources of the underlying volume.

false

object

+ +
+
+

v1beta2.DeploymentCondition

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentCondition describes the state of a deployment at a certain point.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

type

Type of deployment condition.

true

string

status

Status of the condition, one of True, False, Unknown.

true

string

lastUpdateTime

The last time this condition was updated.

false

string

lastTransitionTime

Last time the condition transitioned from one status to another.

false

string

reason

The reason for the condition’s last transition.

false

string

message

A human readable message indicating details about the transition.

false

string

+ +
+
+

v1beta2.StatefulSetSpec

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. A StatefulSetSpec is the specification of a StatefulSet.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

replicas

replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.

false

integer (int32)

selector

selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

v1.LabelSelector

template

template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.

true

v1.PodTemplateSpec

volumeClaimTemplates

volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.

false

v1.PersistentVolumeClaim array

serviceName

serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where "pod-specific-string" is managed by the StatefulSet controller.

true

string

podManagementPolicy

podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is OrderedReady, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is Parallel which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.

false

string

updateStrategy

updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.

false

v1beta2.StatefulSetUpdateStrategy

revisionHistoryLimit

revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet’s revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.

false

integer (int32)

+ +
+
+

v1beta2.ReplicaSetStatus

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetStatus represents the current status of a ReplicaSet.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

replicas

Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

true

integer (int32)

fullyLabeledReplicas

The number of pods that have labels matching the labels of the pod template of the replicaset.

false

integer (int32)

readyReplicas

The number of ready replicas for this replica set.

false

integer (int32)

availableReplicas

The number of available replicas (ready for at least minReadySeconds) for this replica set.

false

integer (int32)

observedGeneration

ObservedGeneration reflects the generation of the most recently observed ReplicaSet.

false

integer (int64)

conditions

Represents the latest available observations of a replica set’s current state.

false

v1beta2.ReplicaSetCondition array

+ +
+
+

v1beta2.DaemonSet

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSet represents the configuration of a daemon set.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.DaemonSetSpec

status

The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.DaemonSetStatus

+ +
+
+

v1.SecretVolumeSource

+
+

Adapts a Secret into a volume.

+
+
+

The contents of the target Secret’s Data field will be presented in a volume as files using the keys in the Data field as the file names. Secret volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

secretName

Name of the secret in the pod’s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

false

string

items

If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

defaultMode

Optional: mode bits to use on created files by default. Must be a value between 0 and 0777. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

optional

Specify whether the Secret or it’s keys must be defined

false

boolean

false

+ +
+
+

v1.FlexVolumeSource

+
+

FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

driver

Driver is the name of the driver to use for this volume.

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.

false

string

secretRef

Optional: SecretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.

false

v1.LocalObjectReference

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

options

Optional: Extra command options if any.

false

object

+ +
+
+

v1.EnvVarSource

+
+

EnvVarSource represents a source for the value of an EnvVar.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

fieldRef

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.

false

v1.ObjectFieldSelector

resourceFieldRef

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

false

v1.ResourceFieldSelector

configMapKeyRef

Selects a key of a ConfigMap.

false

v1.ConfigMapKeySelector

secretKeyRef

Selects a key of a secret in the pod’s namespace

false

v1.SecretKeySelector

+ +
+
+

v1beta2.ReplicaSetList

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetList is a collection of ReplicaSets.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

items

List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller

true

v1beta2.ReplicaSet array

+ +
+
+

v1.AzureDiskVolumeSource

+
+

AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

diskName

The Name of the data disk in the blob storage

true

string

diskURI

The URI the data disk in the blob storage

true

string

cachingMode

Host Caching mode: None, Read Only, Read Write.

false

v1.AzureDataDiskCachingMode

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

kind

Expected values Shared: mulitple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

false

v1.AzureDataDiskKind

+ +
+
+

v1.KeyToPath

+
+

Maps a string key to a path within a volume.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

key

The key to project.

true

string

path

The relative path of the file to map the key to. May not be an absolute path. May not contain the path element ... May not start with the string ...

true

string

mode

Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

+ +
+
+

v1.VsphereVirtualDiskVolumeSource

+
+

Represents a vSphere volume resource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

volumePath

Path that identifies vSphere volume vmdk

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

storagePolicyName

Storage Policy Based Management (SPBM) profile name.

false

string

storagePolicyID

Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.

false

string

+ +
+
+

v1beta2.StatefulSet

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSet represents a set of pods with consistent identities. Identities are defined as:
+ - Network: A single stable DNS and hostname.
+ - Storage: As many VolumeClaims as requested.
+The StatefulSet guarantees that a given network identity will always map to the same storage identity.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

false

v1.ObjectMeta

spec

Spec defines the desired identities of pods in this set.

false

v1beta2.StatefulSetSpec

status

Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.

false

v1beta2.StatefulSetStatus

+ +
+
+

v1.DeleteOptions

+
+

DeleteOptions may be provided when deleting an API object.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

gracePeriodSeconds

The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

false

integer (int64)

preconditions

Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

false

v1.Preconditions

orphanDependents

Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

false

boolean

false

propagationPolicy

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

v1.DeletionPropagation

+ +
+
+

v1.Volume

+
+

Volume represents a named volume in a pod that may be accessed by any container in the pod.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Volume’s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

true

string

hostPath

HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

false

v1.HostPathVolumeSource

emptyDir

EmptyDir represents a temporary directory that shares a pod’s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

false

v1.EmptyDirVolumeSource

gcePersistentDisk

GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

v1.GCEPersistentDiskVolumeSource

awsElasticBlockStore

AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

v1.AWSElasticBlockStoreVolumeSource

gitRepo

GitRepo represents a git repository at a particular revision.

false

v1.GitRepoVolumeSource

secret

Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

false

v1.SecretVolumeSource

nfs

NFS represents an NFS mount on the host that shares a pod’s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

false

v1.NFSVolumeSource

iscsi

ISCSI represents an ISCSI Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md

false

v1.ISCSIVolumeSource

glusterfs

Glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md

false

v1.GlusterfsVolumeSource

persistentVolumeClaim

PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

false

v1.PersistentVolumeClaimVolumeSource

rbd

RBD represents a Rados Block Device mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

false

v1.RBDVolumeSource

flexVolume

FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future.

false

v1.FlexVolumeSource

cinder

Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

v1.CinderVolumeSource

cephfs

CephFS represents a Ceph FS mount on the host that shares a pod’s lifetime

false

v1.CephFSVolumeSource

flocker

Flocker represents a Flocker volume attached to a kubelet’s host machine. This depends on the Flocker control service being running

false

v1.FlockerVolumeSource

downwardAPI

DownwardAPI represents downward API about the pod that should populate this volume

false

v1.DownwardAPIVolumeSource

fc

FC represents a Fibre Channel resource that is attached to a kubelet’s host machine and then exposed to the pod.

false

v1.FCVolumeSource

azureFile

AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

false

v1.AzureFileVolumeSource

configMap

ConfigMap represents a configMap that should populate this volume

false

v1.ConfigMapVolumeSource

vsphereVolume

VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine

false

v1.VsphereVirtualDiskVolumeSource

quobyte

Quobyte represents a Quobyte mount on the host that shares a pod’s lifetime

false

v1.QuobyteVolumeSource

azureDisk

AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.

false

v1.AzureDiskVolumeSource

photonPersistentDisk

PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine

false

v1.PhotonPersistentDiskVolumeSource

projected

Items for all in one resources secrets, configmaps, and downward API

false

v1.ProjectedVolumeSource

portworxVolume

PortworxVolume represents a portworx volume attached and mounted on kubelets host machine

false

v1.PortworxVolumeSource

scaleIO

ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

false

v1.ScaleIOVolumeSource

storageos

StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

false

v1.StorageOSVolumeSource

+ +
+
+

v1.ResourceFieldSelector

+
+

ResourceFieldSelector represents container resources (cpu, memory) and their output format

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

containerName

Container name: required for volumes, optional for env vars

false

string

resource

Required: resource to select

true

string

divisor

Specifies the output format of the exposed resources, defaults to "1"

false

string

+ +
+
+

v1.VolumeProjection

+
+

Projection that may be projected along with other supported volume types

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

secret

information about the secret data to project

false

v1.SecretProjection

downwardAPI

information about the downwardAPI data to project

false

v1.DownwardAPIProjection

configMap

information about the configMap data to project

false

v1.ConfigMapProjection

+ +
+
+

v1.Probe

+
+

Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

exec

One and only one of the following should be specified. Exec specifies the action to take.

false

v1.ExecAction

httpGet

HTTPGet specifies the http request to perform.

false

v1.HTTPGetAction

tcpSocket

TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported

false

v1.TCPSocketAction

initialDelaySeconds

Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

integer (int32)

timeoutSeconds

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

integer (int32)

periodSeconds

How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.

false

integer (int32)

successThreshold

Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness. Minimum value is 1.

false

integer (int32)

failureThreshold

Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.

false

integer (int32)

+ +
+
+

v1.WeightedPodAffinityTerm

+
+

The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

weight

weight associated with matching the corresponding podAffinityTerm, in the range 1-100.

true

integer (int32)

podAffinityTerm

Required. A pod affinity term, associated with the corresponding weight.

true

v1.PodAffinityTerm

+ +
+
+

v1.SecretKeySelector

+
+

SecretKeySelector selects a key of a Secret.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

key

The key of the secret to select from. Must be a valid secret key.

true

string

optional

Specify whether the Secret or it’s key must be defined

false

boolean

false

+ +
+
+

v1.Capability

+ +
+
+

v1.DownwardAPIVolumeFile

+
+

DownwardAPIVolumeFile represents information to create the file containing the pod field

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

path

Required: Path is the relative path name of the file to be created. Must not be absolute or contain the .. path. Must be utf-8 encoded. The first item of the relative path must not start with ..

true

string

fieldRef

Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.

false

v1.ObjectFieldSelector

resourceFieldRef

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.

false

v1.ResourceFieldSelector

mode

Optional: mode bits to use on this file, must be a value between 0 and 0777. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.

false

integer (int32)

+ +
+
+

v1.PodSpec

+
+

PodSpec is a description of a pod.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

volumes

List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes

false

v1.Volume array

initContainers

List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

false

v1.Container array

containers

List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.

true

v1.Container array

restartPolicy

Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

false

string

terminationGracePeriodSeconds

Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period will be used instead. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. Defaults to 30 seconds.

false

integer (int64)

activeDeadlineSeconds

Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer.

false

integer (int64)

dnsPolicy

Set DNS policy for containers within the pod. One of ClusterFirstWithHostNet, ClusterFirst or Default. Defaults to "ClusterFirst". To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to ClusterFirstWithHostNet.

false

string

nodeSelector

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node’s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

false

object

serviceAccountName

ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

false

string

serviceAccount

DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.

false

string

automountServiceAccountToken

AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.

false

boolean

false

nodeName

NodeName is a request to schedule this pod onto a specific node. If it is non-empty, the scheduler simply schedules this pod onto that node, assuming that it fits resource requirements.

false

string

hostNetwork

Host networking requested for this pod. Use the host’s network namespace. If this option is set, the ports that will be used must be specified. Default to false.

false

boolean

false

hostPID

Use the host’s pid namespace. Optional: Default to false.

false

boolean

false

hostIPC

Use the host’s ipc namespace. Optional: Default to false.

false

boolean

false

securityContext

SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field.

false

v1.PodSecurityContext

imagePullSecrets

ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

false

v1.LocalObjectReference array

hostname

Specifies the hostname of the Pod If not specified, the pod’s hostname will be set to a system-defined value.

false

string

subdomain

If specified, the fully qualified Pod hostname will be "<hostname>.<subdomain>.<pod namespace>.svc.<cluster domain>". If not specified, the pod will not have a domainname at all.

false

string

affinity

If specified, the pod’s scheduling constraints

false

v1.Affinity

schedulerName

If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler.

false

string

tolerations

If specified, the pod’s tolerations.

false

v1.Toleration array

hostAliases

HostAliases is an optional list of hosts and IPs that will be injected into the pod’s hosts file if specified. This is only valid for non-hostNetwork pods.

false

v1.HostAlias array

priorityClassName

If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.

false

string

priority

The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.

false

integer (int32)

+ +
+
+

v1.ContainerPort

+
+

ContainerPort represents a network port in a single container.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.

false

string

hostPort

Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.

false

integer (int32)

containerPort

Number of port to expose on the pod’s IP address. This must be a valid port number, 0 < x < 65536.

true

integer (int32)

protocol

Protocol for port. Must be UDP or TCP. Defaults to "TCP".

false

string

hostIP

What host IP to bind the external port to.

false

string

+ +
+
+

v1.Lifecycle

+
+

Lifecycle describes actions that the management system should take in response to container lifecycle events. For the PostStart and PreStop lifecycle handlers, management of the container blocks until the action is complete, unless the container process fails, in which case the handler is aborted.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

postStart

PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

false

v1.Handler

preStop

PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

false

v1.Handler

+ +
+
+

v1.GlusterfsVolumeSource

+
+

Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

endpoints

EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

true

string

path

Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

true

string

readOnly

ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

false

boolean

false

+ +
+
+

v1.Handler

+
+

Handler defines a specific action that should be taken

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

exec

One and only one of the following should be specified. Exec specifies the action to take.

false

v1.ExecAction

httpGet

HTTPGet specifies the http request to perform.

false

v1.HTTPGetAction

tcpSocket

TCPSocket specifies an action involving a TCP port. TCP hooks not yet supported

false

v1.TCPSocketAction

+ +
+
+

v1.Toleration

+
+

The pod this Toleration is attached to tolerates any taint that matches the triple <key,value,effect> using the matching operator <operator>.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

key

Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.

false

string

operator

Operator represents a key’s relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.

false

string

value

Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.

false

string

effect

Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.

false

string

tolerationSeconds

TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.

false

integer (int64)

+ +
+
+

v1.StatusCause

+
+

StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

reason

A machine-readable description of the cause of the error. If this value is empty there is no information available.

false

string

message

A human-readable description of the cause of the error. This field may be presented as-is to a reader.

false

string

field

The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.
+
+Examples:
+ "name" - the field "name" on the current resource
+ "items[0].name" - the field "name" on the first array entry in "items"

false

string

+ +
+
+

v1.RBDVolumeSource

+
+

Represents a Rados Block Device mount that lasts the lifetime of a pod. RBD volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

monitors

A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string array

image

The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

false

string

pool

The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

user

The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

keyring

Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

secretRef

SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

v1.LocalObjectReference

readOnly

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

boolean

false

+ +
+
+

v1.ConfigMapProjection

+
+

Adapts a ConfigMap into a projected volume.

+
+
+

The contents of the target ConfigMap’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

items

If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

optional

Specify whether the ConfigMap or it’s keys must be defined

false

boolean

false

+ +
+
+

v1.PhotonPersistentDiskVolumeSource

+
+

Represents a Photon Controller persistent disk resource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

pdID

ID that identifies Photon Controller persistent disk

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

+ +
+
+

v1.ScaleIOVolumeSource

+
+

ScaleIOVolumeSource represents a persistent ScaleIO volume

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

gateway

The host address of the ScaleIO API Gateway.

true

string

system

The name of the storage system as configured in ScaleIO.

true

string

secretRef

SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.

true

v1.LocalObjectReference

sslEnabled

Flag to enable/disable SSL communication with Gateway, default false

false

boolean

false

protectionDomain

The name of the Protection Domain for the configured storage (defaults to "default").

false

string

storagePool

The Storage Pool associated with the protection domain (defaults to "default").

false

string

storageMode

Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

false

string

volumeName

The name of a volume already created in the ScaleIO system that is associated with this volume source.

false

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

+ +
+
+

v1beta2.ReplicaSet

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSet represents the configuration of a ReplicaSet.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.ReplicaSetSpec

status

Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta2.ReplicaSetStatus

+ +
+
+

v1.Initializers

+
+

Initializers tracks the progress of initialization.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

pending

Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

true

v1.Initializer array

result

If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

false

v1.Status

+ +
+
+

v1beta2.ScaleStatus

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleStatus represents the current status of a scale subresource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

replicas

actual number of observed instances of the scaled object.

true

integer (int32)

selector

label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors

false

object

targetSelector

label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

string

+ +
+
+

v1.Status

+
+

Status is a return value for calls that don’t return other objects.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

status

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

string

message

A human-readable description of the status of this operation.

false

string

reason

A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

false

string

details

Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

false

v1.StatusDetails

code

Suggested HTTP return code for this status, 0 if not set.

false

integer (int32)

+ +
+
+

v1.NFSVolumeSource

+
+

Represents an NFS mount that lasts the lifetime of a pod. NFS volumes do not support ownership management or SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

server

Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

true

string

path

Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

true

string

readOnly

ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

false

boolean

false

+ +
+
+

v1beta2.DeploymentSpec

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentSpec is the specification of the desired behavior of the Deployment.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

replicas

Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.

false

integer (int32)

selector

Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.

false

v1.LabelSelector

template

Template describes the pods that will be created.

true

v1.PodTemplateSpec

strategy

The deployment strategy to use to replace existing pods with new ones.

false

v1beta2.DeploymentStrategy

minReadySeconds

Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)

false

integer (int32)

revisionHistoryLimit

The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.

false

integer (int32)

paused

Indicates that the deployment is paused.

false

boolean

false

progressDeadlineSeconds

The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.

false

integer (int32)

+ +
+
+

v1.HTTPHeader

+
+

HTTPHeader describes a custom header to be used in HTTP probes

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

The header field name

true

string

value

The header field value

true

string

+ +
+
+

v1.FCVolumeSource

+
+

Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

targetWWNs

Required: FC target worldwide names (WWNs)

true

string array

lun

Required: FC target lun number

true

integer (int32)

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

+ +
+
+

v1.PodAntiAffinity

+
+

Pod anti affinity is a group of inter pod anti affinity scheduling rules.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

requiredDuringSchedulingIgnoredDuringExecution

NOT YET IMPLEMENTED. TODO: Uncomment field once it is implemented. If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system will try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingRequiredDuringExecution []PodAffinityTerm json:"requiredDuringSchedulingRequiredDuringExecution,omitempty" If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.

false

v1.PodAffinityTerm array

preferredDuringSchedulingIgnoredDuringExecution

The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.

false

v1.WeightedPodAffinityTerm array

+ +
+
+

v1.DeletionPropagation

+ +
+
+

v1.TCPSocketAction

+
+

TCPSocketAction describes an action based on opening a socket

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

true

string

host

Optional: Host name to connect to, defaults to the pod IP.

false

string

+ +
+
+

v1.HTTPGetAction

+
+

HTTPGetAction describes an action based on HTTP Get requests.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

path

Path to access on the HTTP server.

false

string

port

Name or number of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

true

string

host

Host name to connect to, defaults to the pod IP. You probably want to set "Host" in httpHeaders instead.

false

string

scheme

Scheme to use for connecting to the host. Defaults to HTTP.

false

string

httpHeaders

Custom headers to set in the request. HTTP allows repeated headers.

false

v1.HTTPHeader array

+ +
+
+

v1.StatusDetails

+
+

StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

false

string

group

The group attribute of the resource associated with the status StatusReason.

false

string

kind

The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

uid

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

false

string

causes

The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

false

v1.StatusCause array

retryAfterSeconds

If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

false

integer (int32)

+ +
+
+

v1.Container

+
+

A single application container that you want to run within a pod.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the container specified as a DNS_LABEL. Each container in a pod must have a unique name (DNS_LABEL). Cannot be updated.

true

string

image

Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images

true

string

command

Entrypoint array. Not executed within a shell. The docker image’s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

false

string array

args

Arguments to the entrypoint. The docker image’s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

false

string array

workingDir

Container’s working directory. If not specified, the container runtime’s default will be used, which might be configured in the container image. Cannot be updated.

false

string

ports

List of ports to expose from the container. Exposing a port here gives the system additional information about the network connections a container uses, but is primarily informational. Not specifying a port here DOES NOT prevent that port from being exposed. Any port which is listening on the default "0.0.0.0" address inside a container will be accessible from the network. Cannot be updated.

false

v1.ContainerPort array

envFrom

List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.

false

v1.EnvFromSource array

env

List of environment variables to set in the container. Cannot be updated.

false

v1.EnvVar array

resources

Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

false

v1.ResourceRequirements

volumeMounts

Pod volumes to mount into the container’s filesystem. Cannot be updated.

false

v1.VolumeMount array

livenessProbe

Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

v1.Probe

readinessProbe

Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

v1.Probe

lifecycle

Actions that the management system should take in response to container lifecycle events. Cannot be updated.

false

v1.Lifecycle

terminationMessagePath

Optional: Path at which the file to which the container’s termination message will be written is mounted into the container’s filesystem. Message written is intended to be brief final status, such as an assertion failure message. Will be truncated by the node if greater than 4096 bytes. The total message length across all containers will be limited to 12kb. Defaults to /dev/termination-log. Cannot be updated.

false

string

terminationMessagePolicy

Indicate how the termination message should be populated. File will use the contents of terminationMessagePath to populate the container status message on both success and failure. FallbackToLogsOnError will use the last chunk of container log output if the termination message file is empty and the container exited with an error. The log output is limited to 2048 bytes or 80 lines, whichever is smaller. Defaults to File. Cannot be updated.

false

string

imagePullPolicy

Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

false

string

securityContext

Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

false

v1.SecurityContext

stdin

Whether this container should allocate a buffer for stdin in the container runtime. If this is not set, reads from stdin in the container will always result in EOF. Default is false.

false

boolean

false

stdinOnce

Whether the container runtime should close the stdin channel after it has been opened by a single attach. When stdin is true the stdin stream will remain open across multiple attach sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the first client attaches to stdin, and then remains open and accepts data until the client disconnects, at which time stdin is closed and remains closed until the container is restarted. If this flag is false, a container processes that reads from stdin will never receive an EOF. Default is false

false

boolean

false

tty

Whether this container should allocate a TTY for itself, also requires stdin to be true. Default is false.

false

boolean

false

+ +
+
+

v1.PodSecurityContext

+
+

PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

seLinuxOptions

The SELinux context to be applied to all containers. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.

false

v1.SELinuxOptions

runAsUser

The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container.

false

integer (int64)

runAsNonRoot

Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

boolean

false

supplementalGroups

A list of groups applied to the first process run in each container, in addition to the container’s primary GID. If unspecified, no groups will be added to any container.

false

integer (int32) array

fsGroup

A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:
+
+1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR’d with rw-rw

false

integer (int64)

+ +
+
+

v1.OwnerReference

+
+

OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

apiVersion

API version of the referent.

true

string

kind

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

true

string

name

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

true

string

uid

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

true

string

controller

If true, this reference points to the managing controller.

false

boolean

false

blockOwnerDeletion

If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

false

boolean

false

+ +
+
+

v1.APIResource

+
+

APIResource specifies the name of a resource and whether it is namespaced.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

name is the plural name of the resource.

true

string

singularName

singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

true

string

namespaced

namespaced indicates if a resource is namespaced or not.

true

boolean

false

kind

kind is the kind for the resource (e.g. Foo is the kind for a resource foo)

true

string

verbs

verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)

true

string array

shortNames

shortNames is a list of suggested short names of the resource.

false

string array

categories

categories is a list of the grouped resources this resource belongs to (e.g. all)

false

string array

+ +
+
+

v1.NodeSelectorRequirement

+
+

A node selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

key

The label key that the selector applies to.

true

string

operator

Represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.

true

string

values

An array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. If the operator is Gt or Lt, the values array must have a single element, which will be interpreted as an integer. This array is replaced during a strategic merge patch.

false

string array

+ +
+
+

v1.HostPathVolumeSource

+
+

Represents a host path mapped into a pod. Host path volumes do not support ownership management or SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

path

Path of the directory on the host. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

true

string

+ +
+
+

v1.SecretProjection

+
+

Adapts a secret into a projected volume.

+
+
+

The contents of the target Secret’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names. Note that this is identical to a secret volume source without the default mode.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

items

If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

optional

Specify whether the Secret or its key must be defined

false

boolean

false

+ +
+
+

v1.CinderVolumeSource

+
+

Represents a cinder volume resource in Openstack. A Cinder volume must exist before mounting to a container. The volume must also be in the same region as the kubelet. Cinder volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

volumeID

volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

string

readOnly

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

boolean

false

+ +
+
+

v1.SecurityContext

+
+

SecurityContext holds security configuration that will be applied to a container. Some fields are present in both SecurityContext and PodSecurityContext. When both are set, the values in SecurityContext take precedence.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

capabilities

The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime.

false

v1.Capabilities

privileged

Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false.

false

boolean

false

seLinuxOptions

The SELinux context to be applied to the container. If unspecified, the container runtime will allocate a random SELinux context for each container. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

v1.SELinuxOptions

runAsUser

The UID to run the entrypoint of the container process. Defaults to user specified in image metadata if unspecified. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

integer (int64)

runAsNonRoot

Indicates that the container must run as a non-root user. If true, the Kubelet will validate the image at runtime to ensure that it does not run as UID 0 (root) and fail to start the container if it does. If unset or false, no such validation will be performed. May also be set in PodSecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.

false

boolean

false

readOnlyRootFilesystem

Whether this container has a read-only root filesystem. Default is false.

false

boolean

false

allowPrivilegeEscalation

AllowPrivilegeEscalation controls whether a process can gain more privileges than it’s parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN

false

boolean

false

+ +
+
+

v1beta2.Deployment

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. Deployment enables declarative updates for Pods and ReplicaSets.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard object metadata.

false

v1.ObjectMeta

spec

Specification of the desired behavior of the Deployment.

false

v1beta2.DeploymentSpec

status

Most recently observed status of the Deployment.

false

v1beta2.DeploymentStatus

+ +
+
+

v1beta2.DeploymentList

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentList is a list of Deployments.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

apiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

false

string

metadata

Standard list metadata.

false

v1.ListMeta

items

Items is the list of Deployments.

true

v1beta2.Deployment array

+ +
+
+

v1.AWSElasticBlockStoreVolumeSource

+
+

Represents a Persistent Disk resource in AWS.

+
+
+

An AWS EBS disk must exist before mounting to a container. The disk must also be in the same AWS zone as the kubelet. An AWS EBS disk can only be mounted as read/write once. AWS EBS volumes support ownership management and SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

volumeID

Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

true

string

fsType

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

string

partition

The partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).

false

integer (int32)

readOnly

Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

boolean

false

+ +
+
+

v1.QuobyteVolumeSource

+
+

Represents a Quobyte mount that lasts the lifetime of a pod. Quobyte volumes do not support ownership management or SELinux relabeling.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

registry

Registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes

true

string

volume

Volume is a string that references an already created Quobyte volume by name.

true

string

readOnly

ReadOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false.

false

boolean

false

user

User to map volume access to Defaults to serivceaccount user

false

string

group

Group to map volume access to Default is no group

false

string

+ +
+
+

v1.WatchEvent

+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

type

true

string

object

true

string

+ +
+
+

v1.LabelSelectorRequirement

+
+

A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

key

key is the label key that the selector applies to.

true

string

operator

operator represents a key’s relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.

true

string

values

values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.

false

string array

+ +
+
+

v1.EnvVar

+
+

EnvVar represents an environment variable present in a Container.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the environment variable. Must be a C_IDENTIFIER.

true

string

value

Variable references $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".

false

string

valueFrom

Source for the environment variable’s value. Cannot be used if value is not empty.

false

v1.EnvVarSource

+ +
+
+

v1.PersistentVolumeAccessMode

+ +
+
+

v1.ResourceRequirements

+
+

ResourceRequirements describes the compute resource requirements.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

limits

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

false

object

requests

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

false

object

+ +
+
+

v1.HostAlias

+
+

HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod’s hosts file.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

ip

IP address of the host file entry.

false

string

hostnames

Hostnames for the above IP address.

false

string array

+ +
+
+

v1beta2.RollingUpdateDeployment

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of rolling update.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

maxUnavailable

The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.

false

string

maxSurge

The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.

false

string

+ +
+
+

v1.PodTemplateSpec

+
+

PodTemplateSpec describes the data a pod should have when created from a template

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

metadata

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1.PodSpec

+ +
+
+

v1beta2.ScaleSpec

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleSpec describes the attributes of a scale subresource

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

replicas

desired number of instances for the scaled object.

false

integer (int32)

+ +
+
+

v1.NodeSelector

+
+

A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

nodeSelectorTerms

Required. A list of node selector terms. The terms are ORed.

true

v1.NodeSelectorTerm array

+ +
+
+

v1beta2.DaemonSetSpec

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetSpec is the specification of a daemon set.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

selector

A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

v1.LabelSelector

template

An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template’s node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

true

v1.PodTemplateSpec

updateStrategy

An update strategy to replace existing DaemonSet pods with new pods.

false

v1beta2.DaemonSetUpdateStrategy

minReadySeconds

The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).

false

integer (int32)

templateGeneration

DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.

false

integer (int64)

revisionHistoryLimit

The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.

false

integer (int32)

+ +
+
+

v1.Patch

+
+

Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

+
+
+
+

v1.ConfigMapEnvSource

+
+

ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.

+
+
+

The contents of the target ConfigMap’s Data field will represent the key-value pairs as environment variables.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

optional

Specify whether the ConfigMap must be defined

false

boolean

false

+ +
+
+

v1beta2.ReplicaSetCondition

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetCondition describes the state of a replica set at a certain point.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

type

Type of replica set condition.

true

string

status

Status of the condition, one of True, False, Unknown.

true

string

lastTransitionTime

The last time the condition transitioned from one status to another.

false

string

reason

The reason for the condition’s last transition.

false

string

message

A human readable message indicating details about the transition.

false

string

+ +
+
+

v1.StorageOSVolumeSource

+
+

Represents a StorageOS persistent volume resource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

volumeName

VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.

false

string

volumeNamespace

VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod’s namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.

false

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

secretRef

SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.

false

v1.LocalObjectReference

+ +
+
+

v1beta2.DaemonSetUpdateStrategy

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

type

Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is OnDelete.

false

string

rollingUpdate

Rolling update config params. Present only if type = "RollingUpdate".

false

v1beta2.RollingUpdateDaemonSet

+ +
+
+

v1beta2.ReplicaSetSpec

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetSpec is the specification of a ReplicaSet.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

replicas

Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

false

integer (int32)

minReadySeconds

Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)

false

integer (int32)

selector

Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

v1.LabelSelector

template

Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

false

v1.PodTemplateSpec

+ +
+
+

v1.NodeAffinity

+
+

Node affinity is a group of node affinity scheduling rules.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

requiredDuringSchedulingIgnoredDuringExecution

If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to an update), the system may or may not try to eventually evict the pod from its node.

false

v1.NodeSelector

preferredDuringSchedulingIgnoredDuringExecution

The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node matches the corresponding matchExpressions; the node(s) with the highest sum are the most preferred.

false

v1.PreferredSchedulingTerm array

+ +
+
+

v1.AzureDataDiskKind

+ +
+
+

v1.PreferredSchedulingTerm

+
+

An empty preferred scheduling term matches all objects with implicit weight 0 (i.e. it’s a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

weight

Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.

true

integer (int32)

preference

A node selector term, associated with the corresponding weight.

true

v1.NodeSelectorTerm

+ +
+
+

v1.ConfigMapKeySelector

+
+

Selects a key from a ConfigMap.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

key

The key to select.

true

string

optional

Specify whether the ConfigMap or it’s key must be defined

false

boolean

false

+ +
+
+

v1beta2.StatefulSetUpdateStrategy

+
+

WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

type

Type indicates the type of the StatefulSetUpdateStrategy.

false

string

rollingUpdate

RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.

false

v1beta2.RollingUpdateStatefulSetStrategy

+ +
+
+

v1.AzureDataDiskCachingMode

+ +
+
+

any

+
+

Represents an untyped JSON map - see the description of the field for more info about the structure of this object.

+
+
+ + + + + + \ No newline at end of file diff --git a/docs/api-reference/apps/v1beta2/operations.html b/docs/api-reference/apps/v1beta2/operations.html index c7f4095ff51..72c3a90c1d6 100755 --- a/docs/api-reference/apps/v1beta2/operations.html +++ b/docs/api-reference/apps/v1beta2/operations.html @@ -3114,10 +3114,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

create rollback of a Deployment

+

read scale of the specified Deployment

-
POST /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/rollback
+
GET /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale
@@ -3151,14 +3151,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } -

BodyParameter

-

body

- -

true

-

v1beta2.DeploymentRollback

- - -

PathParameter

namespace

object name and auth scope, such as for teams and projects

@@ -3169,7 +3161,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

PathParameter

name

-

name of the DeploymentRollback

+

name of the Scale

true

string

@@ -3197,7 +3189,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

200

success

-

v1beta2.DeploymentRollback

+

v1beta2.Scale

@@ -3241,10 +3233,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

read scale of the specified Deployment

+

replace scale of the specified Deployment

-
GET /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale
+
PUT /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale
@@ -3278,6 +3270,14 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } +

BodyParameter

+

body

+ +

true

+

v1beta2.Scale

+ + +

PathParameter

namespace

object name and auth scope, such as for teams and projects

@@ -3360,133 +3360,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

replace scale of the specified Deployment

-
-
-
PUT /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/scale
-
-
-
-

Parameters

- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

BodyParameter

body

true

v1beta2.Scale

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Scale

true

string

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1beta2.Scale

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta2

    -
  • -
-
-
-
-

partially update scale of the specified Deployment

@@ -3494,7 +3367,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -3552,7 +3425,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -3577,7 +3450,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -3593,6 +3466,125 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+ +
+

read status of the specified Deployment

+
+
+
GET /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status
+
+
+
+

Parameters

+
++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Deployment

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta2.Deployment

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+

Produces

    @@ -3620,10 +3612,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

read status of the specified Deployment

+

replace status of the specified Deployment

-
GET /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status
+
PUT /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status
@@ -3657,6 +3649,14 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } +

BodyParameter

+

body

+ +

true

+

v1beta2.Deployment

+ + +

PathParameter

namespace

object name and auth scope, such as for teams and projects

@@ -3739,133 +3739,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

replace status of the specified Deployment

-
-
-
PUT /apis/apps/v1beta2/namespaces/{namespace}/deployments/{name}/status
-
-
-
-

Parameters

- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

BodyParameter

body

true

v1beta2.Deployment

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

PathParameter

name

name of the Deployment

true

string

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1beta2.Deployment

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apisappsv1beta2

    -
  • -
-
-
-
-

partially update status of the specified Deployment

@@ -3873,7 +3746,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Parameters

+

Parameters

@@ -3931,7 +3804,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Responses

+

Responses

@@ -3956,7 +3829,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

Consumes

+

Consumes

  • @@ -3972,6 +3845,165 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
+

Produces

+
+
    +
  • +

    application/json

    +
  • +
  • +

    application/yaml

    +
  • +
  • +

    application/vnd.kubernetes.protobuf

    +
  • +
+
+
+
+

Tags

+
+
    +
  • +

    apisappsv1beta2

    +
  • +
+
+
+ +
+

list or watch objects of kind ReplicaSet

+
+
+
GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets
+
+
+
+

Parameters

+
++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

PathParameter

namespace

object name and auth scope, such as for teams and projects

true

string

+ +
+
+

Responses

+ +++++ + + + + + + + + + + + + + + +
HTTP CodeDescriptionSchema

200

success

v1beta2.ReplicaSetList

+ +
+
+

Consumes

+
+
    +
  • +

    /

    +
  • +
+
+
+

Produces

    @@ -3984,6 +4016,12 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
  • application/vnd.kubernetes.protobuf

  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
@@ -3999,10 +4037,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
-

list or watch objects of kind ReplicaSet

+

delete collection of ReplicaSet

-
GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets
+
DELETE /apis/apps/v1beta2/namespaces/{namespace}/replicasets
@@ -4114,7 +4152,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

200

success

-

v1beta2.ReplicaSetList

+

v1.Status

@@ -4143,12 +4181,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
  • application/vnd.kubernetes.protobuf

  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • @@ -4164,10 +4196,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    delete collection of ReplicaSet

    +

    create a ReplicaSet

    -
    DELETE /apis/apps/v1beta2/namespaces/{namespace}/replicasets
    +
    POST /apis/apps/v1beta2/namespaces/{namespace}/replicasets
    @@ -4201,6 +4233,1429 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } +

    BodyParameter

    +

    body

    + +

    true

    +

    v1beta2.ReplicaSet

    + + + +

    PathParameter

    +

    namespace

    +

    object name and auth scope, such as for teams and projects

    +

    true

    +

    string

    + + + + + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    read the specified ReplicaSet

    +
    +
    +
    GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    replace the specified ReplicaSet

    +
    +
    +
    PUT /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    delete a ReplicaSet

    +
    +
    +
    DELETE /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified ReplicaSet

    +
    +
    +
    PATCH /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    read scale of the specified ReplicaSet

    +
    +
    +
    GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    replace scale of the specified ReplicaSet

    +
    +
    +
    PUT /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    partially update scale of the specified ReplicaSet

    +
    +
    +
    PATCH /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    read status of the specified ReplicaSet

    +
    +
    +
    GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    replace status of the specified ReplicaSet

    +
    +
    +
    PUT /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    partially update status of the specified ReplicaSet

    +
    +
    +
    PATCH /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind StatefulSet

    +
    +
    +
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + @@ -4259,1423 +5714,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    create a ReplicaSet

    -
    -
    -
    POST /apis/apps/v1beta2/namespaces/{namespace}/replicasets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    read the specified ReplicaSet

    -
    -
    -
    GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    replace the specified ReplicaSet

    -
    -
    -
    PUT /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    delete a ReplicaSet

    -
    -
    -
    DELETE /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified ReplicaSet

    -
    -
    -
    PATCH /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    read scale of the specified ReplicaSet

    -
    -
    -
    GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    replace scale of the specified ReplicaSet

    -
    -
    -
    PUT /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    partially update scale of the specified ReplicaSet

    -
    -
    -
    PATCH /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified ReplicaSet

    -
    -
    -
    GET /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified ReplicaSet

    -
    -
    -
    PUT /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.ReplicaSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified ReplicaSet

    -
    -
    -
    PATCH /apis/apps/v1beta2/namespaces/{namespace}/replicasets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ReplicaSet

    true

    string

    -

    Responses

    @@ -5696,7 +5734,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    200

    success

    -

    v1beta2.ReplicaSet

    +

    v1beta2.StatefulSetList

    @@ -5707,13 +5745,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      +

      /

    @@ -5731,6 +5763,12 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
  • application/vnd.kubernetes.protobuf

  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • @@ -5746,10 +5784,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    list or watch objects of kind StatefulSet

    +

    delete collection of StatefulSet

    -
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets
    +
    DELETE /apis/apps/v1beta2/namespaces/{namespace}/statefulsets
    @@ -5861,7 +5899,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    200

    success

    -

    v1beta2.StatefulSetList

    +

    v1.Status

    @@ -5890,12 +5928,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
  • application/vnd.kubernetes.protobuf

  • -
  • -

    application/json;stream=watch

    -
  • -
  • -

    application/vnd.kubernetes.protobuf;stream=watch

    -
  • @@ -5911,10 +5943,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    delete collection of StatefulSet

    +

    create a StatefulSet

    -
    DELETE /apis/apps/v1beta2/namespaces/{namespace}/statefulsets
    +
    POST /apis/apps/v1beta2/namespaces/{namespace}/statefulsets
    @@ -5948,51 +5980,11 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } -

    QueryParameter

    -

    labelSelector

    -

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    -

    false

    -

    string

    +

    BodyParameter

    +

    body

    - - -

    QueryParameter

    -

    fieldSelector

    -

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    includeUninitialized

    -

    If true, partially initialized resources are included in the response.

    -

    false

    -

    boolean

    - - - -

    QueryParameter

    -

    watch

    -

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    -

    false

    -

    boolean

    - - - -

    QueryParameter

    -

    resourceVersion

    -

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    -

    false

    -

    string

    - - - -

    QueryParameter

    -

    timeoutSeconds

    -

    Timeout for the list/watch call.

    -

    false

    -

    integer (int32)

    +

    true

    +

    v1beta2.StatefulSet

    @@ -6026,7 +6018,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    200

    success

    -

    v1.Status

    +

    v1beta2.StatefulSet

    @@ -6070,10 +6062,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    create a StatefulSet

    +

    read the specified StatefulSet

    -
    POST /apis/apps/v1beta2/namespaces/{namespace}/statefulsets
    +
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}
    @@ -6107,11 +6099,19 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } -

    BodyParameter

    -

    body

    +

    QueryParameter

    +

    export

    +

    Should this value be exported. Export strips fields that a user can not specify.

    +

    false

    +

    boolean

    -

    true

    -

    v1beta2.StatefulSet

    + + +

    QueryParameter

    +

    exact

    +

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    +

    false

    +

    boolean

    @@ -6122,6 +6122,14 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    string

    + +

    PathParameter

    +

    name

    +

    name of the StatefulSet

    +

    true

    +

    string

    + + @@ -6189,10 +6197,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    read the specified StatefulSet

    +

    replace the specified StatefulSet

    -
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}
    +
    PUT /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}
    @@ -6226,19 +6234,11 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } -

    QueryParameter

    -

    export

    -

    Should this value be exported. Export strips fields that a user can not specify.

    -

    false

    -

    boolean

    +

    BodyParameter

    +

    body

    - - -

    QueryParameter

    -

    exact

    -

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    -

    false

    -

    boolean

    +

    true

    +

    v1beta2.StatefulSet

    @@ -6324,133 +6324,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    replace the specified StatefulSet

    -
    -
    -
    PUT /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.StatefulSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.StatefulSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -

    delete a StatefulSet

    @@ -6458,7 +6331,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -6540,7 +6413,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -6565,7 +6438,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -6575,7 +6448,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -6591,7 +6464,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -6609,7 +6482,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -6667,7 +6540,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -6692,7 +6565,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -6708,6 +6581,125 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    + +
    +

    read scale of the specified StatefulSet

    +
    +
    +
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale
    +
    +
    +
    +

    Parameters

    +
    ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +

    Produces

      @@ -6735,10 +6727,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    read scale of the specified StatefulSet

    +

    replace scale of the specified StatefulSet

    -
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale
    +
    PUT /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale
    @@ -6772,6 +6764,14 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } +

    BodyParameter

    +

    body

    + +

    true

    +

    v1beta2.Scale

    + + +

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    @@ -6854,133 +6854,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    replace scale of the specified StatefulSet

    -
    -
    -
    PUT /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/scale
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.Scale

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Scale

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.Scale

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -

    partially update scale of the specified StatefulSet

    @@ -6988,7 +6861,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -7046,7 +6919,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -7071,7 +6944,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -7087,6 +6960,125 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    + +
    +

    read status of the specified StatefulSet

    +
    +
    +
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status
    +
    +
    +
    +

    Parameters

    +
    ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.StatefulSet

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +

    Produces

      @@ -7114,10 +7106,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    read status of the specified StatefulSet

    +

    replace status of the specified StatefulSet

    -
    GET /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status
    +
    PUT /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status
    @@ -7151,6 +7143,14 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; } +

    BodyParameter

    +

    body

    + +

    true

    +

    v1beta2.StatefulSet

    + + +

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    @@ -7233,133 +7233,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    replace status of the specified StatefulSet

    -
    -
    -
    PUT /apis/apps/v1beta2/namespaces/{namespace}/statefulsets/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1beta2.StatefulSet

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the StatefulSet

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.StatefulSet

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -

    partially update status of the specified StatefulSet

    @@ -7367,7 +7240,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -7425,7 +7298,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -7450,7 +7323,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -7466,6 +7339,157 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    + +
    +

    list or watch objects of kind ReplicaSet

    +
    +
    +
    GET /apis/apps/v1beta2/replicasets
    +
    +
    +
    +

    Parameters

    +
    ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1beta2.ReplicaSetList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +

    Produces

      @@ -7478,6 +7502,12 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    • application/vnd.kubernetes.protobuf

    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    @@ -7493,10 +7523,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    list or watch objects of kind ReplicaSet

    +

    list or watch objects of kind StatefulSet

    -
    GET /apis/apps/v1beta2/replicasets
    +
    GET /apis/apps/v1beta2/statefulsets
    @@ -7600,7 +7630,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    200

    success

    -

    v1beta2.ReplicaSetList

    +

    v1beta2.StatefulSetList

    @@ -7650,10 +7680,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    list or watch objects of kind StatefulSet

    +

    watch individual changes to a list of DaemonSet

    -
    GET /apis/apps/v1beta2/statefulsets
    +
    GET /apis/apps/v1beta2/watch/daemonsets
    @@ -7757,7 +7787,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    200

    success

    -

    v1beta2.StatefulSetList

    +

    v1.WatchEvent

    @@ -7807,10 +7837,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    watch individual changes to a list of DaemonSet

    +

    watch individual changes to a list of Deployment

    -
    GET /apis/apps/v1beta2/watch/daemonsets
    +
    GET /apis/apps/v1beta2/watch/deployments
    @@ -7964,163 +7994,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    watch individual changes to a list of Deployment

    -
    -
    -
    GET /apis/apps/v1beta2/watch/deployments
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    -

    watch individual changes to a list of DaemonSet

    @@ -8128,7 +8001,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -8218,7 +8091,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -8243,7 +8116,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -8253,7 +8126,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -8275,7 +8148,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -8293,7 +8166,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -8391,7 +8264,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -8416,7 +8289,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -8426,7 +8299,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -8448,7 +8321,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -8466,7 +8339,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -8556,7 +8429,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -8581,7 +8454,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -8591,7 +8464,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -8613,7 +8486,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -8631,7 +8504,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -8729,7 +8602,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -8754,7 +8627,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -8764,7 +8637,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -8786,7 +8659,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -8804,7 +8677,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -8894,7 +8767,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -8919,7 +8792,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -8929,7 +8802,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -8951,7 +8824,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -8969,7 +8842,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -9067,7 +8940,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -9092,7 +8965,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -9102,7 +8975,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -9124,7 +8997,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -9142,7 +9015,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -9232,7 +9105,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -9257,7 +9130,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -9267,7 +9140,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -9289,7 +9162,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    +

    Tags

    • @@ -9307,7 +9180,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -9403,6 +9276,163 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisappsv1beta2

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of ReplicaSet

    +
    +
    +
    GET /apis/apps/v1beta2/watch/replicasets
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    +

    Responses

    @@ -9473,10 +9503,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    watch individual changes to a list of ReplicaSet

    +

    watch individual changes to a list of StatefulSet

    -
    GET /apis/apps/v1beta2/watch/replicasets
    +
    GET /apis/apps/v1beta2/watch/statefulsets
    @@ -9629,163 +9659,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -
    -

    watch individual changes to a list of StatefulSet

    -
    -
    -
    GET /apis/apps/v1beta2/watch/statefulsets
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisappsv1beta2

      -
    • -
    -
    -
    -
    diff --git a/docs/api-reference/extensions/v1beta1/definitions.html b/docs/api-reference/extensions/v1beta1/definitions.html index 40a6afd78f3..0242c5f4433 100755 --- a/docs/api-reference/extensions/v1beta1/definitions.html +++ b/docs/api-reference/extensions/v1beta1/definitions.html @@ -3002,6 +3002,9 @@ When an object is created, the system will populate this list with the current s

    v1beta1.RollbackConfig

    +
    +

    DEPRECATED.

    +
    @@ -4139,7 +4142,7 @@ When an object is created, the system will populate this list with the current s - + @@ -5582,7 +5585,7 @@ Examples:

    v1beta1.DeploymentRollback

    -

    DeploymentRollback stores the information required to rollback a deployment.

    +

    DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.

    rollbackTo

    The config this deployment is rolling back to. Will be cleared after rollback is done.

    DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.

    false

    v1beta1.RollbackConfig

    diff --git a/federation/apis/openapi-spec/swagger.json b/federation/apis/openapi-spec/swagger.json index 3348e64685e..ec66398aa0d 100644 --- a/federation/apis/openapi-spec/swagger.json +++ b/federation/apis/openapi-spec/swagger.json @@ -12418,7 +12418,7 @@ ] }, "io.k8s.api.extensions.v1beta1.DeploymentRollback": { - "description": "DeploymentRollback stores the information required to rollback a deployment.", + "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "required": [ "name", "rollbackTo" @@ -12487,7 +12487,7 @@ "format": "int32" }, "rollbackTo": { - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done.", + "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", "$ref": "#/definitions/io.k8s.api.extensions.v1beta1.RollbackConfig" }, "selector": { @@ -12901,6 +12901,7 @@ } }, "io.k8s.api.extensions.v1beta1.RollbackConfig": { + "description": "DEPRECATED.", "properties": { "revision": { "description": "The revision to rollback to. If set to 0, rollback to the last revision.", diff --git a/federation/apis/swagger-spec/extensions_v1beta1.json b/federation/apis/swagger-spec/extensions_v1beta1.json index 6eac8ab38f1..796fc2d4388 100644 --- a/federation/apis/swagger-spec/extensions_v1beta1.json +++ b/federation/apis/swagger-spec/extensions_v1beta1.json @@ -7118,7 +7118,7 @@ }, "rollbackTo": { "$ref": "v1beta1.RollbackConfig", - "description": "The config this deployment is rolling back to. Will be cleared after rollback is done." + "description": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done." }, "progressDeadlineSeconds": { "type": "integer", @@ -7157,6 +7157,7 @@ }, "v1beta1.RollbackConfig": { "id": "v1beta1.RollbackConfig", + "description": "DEPRECATED.", "properties": { "revision": { "type": "integer", @@ -7249,7 +7250,7 @@ }, "v1beta1.DeploymentRollback": { "id": "v1beta1.DeploymentRollback", - "description": "DeploymentRollback stores the information required to rollback a deployment.", + "description": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "required": [ "name", "rollbackTo" diff --git a/federation/docs/api-reference/extensions/v1beta1/definitions.html b/federation/docs/api-reference/extensions/v1beta1/definitions.html index 371167b51e8..c8834375e69 100755 --- a/federation/docs/api-reference/extensions/v1beta1/definitions.html +++ b/federation/docs/api-reference/extensions/v1beta1/definitions.html @@ -2757,6 +2757,9 @@ When an object is created, the system will populate this list with the current s

    v1beta1.RollbackConfig

    +
    +

    DEPRECATED.

    +
    @@ -3853,7 +3856,7 @@ When an object is created, the system will populate this list with the current s - + @@ -5144,7 +5147,7 @@ Examples:

    v1beta1.DeploymentRollback

    -

    DeploymentRollback stores the information required to rollback a deployment.

    +

    DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.

    rollbackTo

    The config this deployment is rolling back to. Will be cleared after rollback is done.

    DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.

    false

    v1beta1.RollbackConfig

    diff --git a/pkg/apis/apps/v1beta2/zz_generated.conversion.go b/pkg/apis/apps/v1beta2/zz_generated.conversion.go index caf130e614d..edc7371240a 100644 --- a/pkg/apis/apps/v1beta2/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta2/zz_generated.conversion.go @@ -57,8 +57,6 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_extensions_DeploymentCondition_To_v1beta2_DeploymentCondition, Convert_v1beta2_DeploymentList_To_extensions_DeploymentList, Convert_extensions_DeploymentList_To_v1beta2_DeploymentList, - Convert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback, - Convert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback, Convert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec, Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec, Convert_v1beta2_DeploymentStatus_To_extensions_DeploymentStatus, @@ -75,8 +73,6 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_extensions_ReplicaSetSpec_To_v1beta2_ReplicaSetSpec, Convert_v1beta2_ReplicaSetStatus_To_extensions_ReplicaSetStatus, Convert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus, - Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig, - Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig, Convert_v1beta2_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet, Convert_extensions_RollingUpdateDaemonSet_To_v1beta2_RollingUpdateDaemonSet, Convert_v1beta2_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment, @@ -299,11 +295,6 @@ func autoConvert_v1beta2_Deployment_To_extensions_Deployment(in *v1beta2.Deploym return nil } -// Convert_v1beta2_Deployment_To_extensions_Deployment is an autogenerated conversion function. -func Convert_v1beta2_Deployment_To_extensions_Deployment(in *v1beta2.Deployment, out *extensions.Deployment, s conversion.Scope) error { - return autoConvert_v1beta2_Deployment_To_extensions_Deployment(in, out, s) -} - func autoConvert_extensions_Deployment_To_v1beta2_Deployment(in *extensions.Deployment, out *v1beta2.Deployment, s conversion.Scope) error { out.ObjectMeta = in.ObjectMeta if err := Convert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(&in.Spec, &out.Spec, s); err != nil { @@ -315,11 +306,6 @@ func autoConvert_extensions_Deployment_To_v1beta2_Deployment(in *extensions.Depl return nil } -// Convert_extensions_Deployment_To_v1beta2_Deployment is an autogenerated conversion function. -func Convert_extensions_Deployment_To_v1beta2_Deployment(in *extensions.Deployment, out *v1beta2.Deployment, s conversion.Scope) error { - return autoConvert_extensions_Deployment_To_v1beta2_Deployment(in, out, s) -} - func autoConvert_v1beta2_DeploymentCondition_To_extensions_DeploymentCondition(in *v1beta2.DeploymentCondition, out *extensions.DeploymentCondition, s conversion.Scope) error { out.Type = extensions.DeploymentConditionType(in.Type) out.Status = api.ConditionStatus(in.Status) @@ -392,34 +378,6 @@ func Convert_extensions_DeploymentList_To_v1beta2_DeploymentList(in *extensions. return autoConvert_extensions_DeploymentList_To_v1beta2_DeploymentList(in, out, s) } -func autoConvert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback(in *v1beta2.DeploymentRollback, out *extensions.DeploymentRollback, s conversion.Scope) error { - out.Name = in.Name - out.UpdatedAnnotations = *(*map[string]string)(unsafe.Pointer(&in.UpdatedAnnotations)) - if err := Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(&in.RollbackTo, &out.RollbackTo, s); err != nil { - return err - } - return nil -} - -// Convert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback is an autogenerated conversion function. -func Convert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback(in *v1beta2.DeploymentRollback, out *extensions.DeploymentRollback, s conversion.Scope) error { - return autoConvert_v1beta2_DeploymentRollback_To_extensions_DeploymentRollback(in, out, s) -} - -func autoConvert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback(in *extensions.DeploymentRollback, out *v1beta2.DeploymentRollback, s conversion.Scope) error { - out.Name = in.Name - out.UpdatedAnnotations = *(*map[string]string)(unsafe.Pointer(&in.UpdatedAnnotations)) - if err := Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(&in.RollbackTo, &out.RollbackTo, s); err != nil { - return err - } - return nil -} - -// Convert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback is an autogenerated conversion function. -func Convert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback(in *extensions.DeploymentRollback, out *v1beta2.DeploymentRollback, s conversion.Scope) error { - return autoConvert_extensions_DeploymentRollback_To_v1beta2_DeploymentRollback(in, out, s) -} - func autoConvert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta2.DeploymentSpec, out *extensions.DeploymentSpec, s conversion.Scope) error { if err := v1.Convert_Pointer_int32_To_int32(&in.Replicas, &out.Replicas, s); err != nil { return err @@ -434,7 +392,6 @@ func autoConvert_v1beta2_DeploymentSpec_To_extensions_DeploymentSpec(in *v1beta2 out.MinReadySeconds = in.MinReadySeconds out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) out.Paused = in.Paused - out.RollbackTo = (*extensions.RollbackConfig)(unsafe.Pointer(in.RollbackTo)) out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) return nil } @@ -453,7 +410,7 @@ func autoConvert_extensions_DeploymentSpec_To_v1beta2_DeploymentSpec(in *extensi out.MinReadySeconds = in.MinReadySeconds out.RevisionHistoryLimit = (*int32)(unsafe.Pointer(in.RevisionHistoryLimit)) out.Paused = in.Paused - out.RollbackTo = (*v1beta2.RollbackConfig)(unsafe.Pointer(in.RollbackTo)) + // WARNING: in.RollbackTo requires manual conversion: does not exist in peer-type out.ProgressDeadlineSeconds = (*int32)(unsafe.Pointer(in.ProgressDeadlineSeconds)) return nil } @@ -676,26 +633,6 @@ func Convert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus(in *extensi return autoConvert_extensions_ReplicaSetStatus_To_v1beta2_ReplicaSetStatus(in, out, s) } -func autoConvert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(in *v1beta2.RollbackConfig, out *extensions.RollbackConfig, s conversion.Scope) error { - out.Revision = in.Revision - return nil -} - -// Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig is an autogenerated conversion function. -func Convert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(in *v1beta2.RollbackConfig, out *extensions.RollbackConfig, s conversion.Scope) error { - return autoConvert_v1beta2_RollbackConfig_To_extensions_RollbackConfig(in, out, s) -} - -func autoConvert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(in *extensions.RollbackConfig, out *v1beta2.RollbackConfig, s conversion.Scope) error { - out.Revision = in.Revision - return nil -} - -// Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig is an autogenerated conversion function. -func Convert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(in *extensions.RollbackConfig, out *v1beta2.RollbackConfig, s conversion.Scope) error { - return autoConvert_extensions_RollbackConfig_To_v1beta2_RollbackConfig(in, out, s) -} - func autoConvert_v1beta2_RollingUpdateDaemonSet_To_extensions_RollingUpdateDaemonSet(in *v1beta2.RollingUpdateDaemonSet, out *extensions.RollingUpdateDaemonSet, s conversion.Scope) error { // WARNING: in.MaxUnavailable requires manual conversion: inconvertible types (*k8s.io/apimachinery/pkg/util/intstr.IntOrString vs k8s.io/apimachinery/pkg/util/intstr.IntOrString) return nil diff --git a/pkg/apis/apps/v1beta2/zz_generated.defaults.go b/pkg/apis/apps/v1beta2/zz_generated.defaults.go new file mode 100644 index 00000000000..02ced2d8e39 --- /dev/null +++ b/pkg/apis/apps/v1beta2/zz_generated.defaults.go @@ -0,0 +1,613 @@ +// +build !ignore_autogenerated + +/* +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. +*/ + +// This file was autogenerated by defaulter-gen. Do not edit it manually! + +package v1beta2 + +import ( + v1beta2 "k8s.io/api/apps/v1beta2" + runtime "k8s.io/apimachinery/pkg/runtime" + v1 "k8s.io/kubernetes/pkg/api/v1" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + scheme.AddTypeDefaultingFunc(&v1beta2.DaemonSet{}, func(obj interface{}) { SetObjectDefaults_DaemonSet(obj.(*v1beta2.DaemonSet)) }) + scheme.AddTypeDefaultingFunc(&v1beta2.DaemonSetList{}, func(obj interface{}) { SetObjectDefaults_DaemonSetList(obj.(*v1beta2.DaemonSetList)) }) + scheme.AddTypeDefaultingFunc(&v1beta2.Deployment{}, func(obj interface{}) { SetObjectDefaults_Deployment(obj.(*v1beta2.Deployment)) }) + scheme.AddTypeDefaultingFunc(&v1beta2.DeploymentList{}, func(obj interface{}) { SetObjectDefaults_DeploymentList(obj.(*v1beta2.DeploymentList)) }) + scheme.AddTypeDefaultingFunc(&v1beta2.ReplicaSet{}, func(obj interface{}) { SetObjectDefaults_ReplicaSet(obj.(*v1beta2.ReplicaSet)) }) + scheme.AddTypeDefaultingFunc(&v1beta2.ReplicaSetList{}, func(obj interface{}) { SetObjectDefaults_ReplicaSetList(obj.(*v1beta2.ReplicaSetList)) }) + scheme.AddTypeDefaultingFunc(&v1beta2.StatefulSet{}, func(obj interface{}) { SetObjectDefaults_StatefulSet(obj.(*v1beta2.StatefulSet)) }) + scheme.AddTypeDefaultingFunc(&v1beta2.StatefulSetList{}, func(obj interface{}) { SetObjectDefaults_StatefulSetList(obj.(*v1beta2.StatefulSetList)) }) + return nil +} + +func SetObjectDefaults_DaemonSet(in *v1beta2.DaemonSet) { + SetDefaults_DaemonSet(in) + v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + for i := range in.Spec.Template.Spec.Volumes { + a := &in.Spec.Template.Spec.Volumes[i] + v1.SetDefaults_Volume(a) + if a.VolumeSource.Secret != nil { + v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + } + if a.VolumeSource.ISCSI != nil { + v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + } + if a.VolumeSource.RBD != nil { + v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + } + if a.VolumeSource.DownwardAPI != nil { + v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + for j := range a.VolumeSource.DownwardAPI.Items { + b := &a.VolumeSource.DownwardAPI.Items[j] + if b.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + } + } + } + if a.VolumeSource.ConfigMap != nil { + v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + } + if a.VolumeSource.AzureDisk != nil { + v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + } + if a.VolumeSource.Projected != nil { + v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + for j := range a.VolumeSource.Projected.Sources { + b := &a.VolumeSource.Projected.Sources[j] + if b.DownwardAPI != nil { + for k := range b.DownwardAPI.Items { + c := &b.DownwardAPI.Items[k] + if c.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + } + } + } + } + } + if a.VolumeSource.ScaleIO != nil { + v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + } + } + for i := range in.Spec.Template.Spec.InitContainers { + a := &in.Spec.Template.Spec.InitContainers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.Template.Spec.Containers { + a := &in.Spec.Template.Spec.Containers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } +} + +func SetObjectDefaults_DaemonSetList(in *v1beta2.DaemonSetList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_DaemonSet(a) + } +} + +func SetObjectDefaults_Deployment(in *v1beta2.Deployment) { + SetDefaults_Deployment(in) + v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + for i := range in.Spec.Template.Spec.Volumes { + a := &in.Spec.Template.Spec.Volumes[i] + v1.SetDefaults_Volume(a) + if a.VolumeSource.Secret != nil { + v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + } + if a.VolumeSource.ISCSI != nil { + v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + } + if a.VolumeSource.RBD != nil { + v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + } + if a.VolumeSource.DownwardAPI != nil { + v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + for j := range a.VolumeSource.DownwardAPI.Items { + b := &a.VolumeSource.DownwardAPI.Items[j] + if b.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + } + } + } + if a.VolumeSource.ConfigMap != nil { + v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + } + if a.VolumeSource.AzureDisk != nil { + v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + } + if a.VolumeSource.Projected != nil { + v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + for j := range a.VolumeSource.Projected.Sources { + b := &a.VolumeSource.Projected.Sources[j] + if b.DownwardAPI != nil { + for k := range b.DownwardAPI.Items { + c := &b.DownwardAPI.Items[k] + if c.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + } + } + } + } + } + if a.VolumeSource.ScaleIO != nil { + v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + } + } + for i := range in.Spec.Template.Spec.InitContainers { + a := &in.Spec.Template.Spec.InitContainers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.Template.Spec.Containers { + a := &in.Spec.Template.Spec.Containers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } +} + +func SetObjectDefaults_DeploymentList(in *v1beta2.DeploymentList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_Deployment(a) + } +} + +func SetObjectDefaults_ReplicaSet(in *v1beta2.ReplicaSet) { + SetDefaults_ReplicaSet(in) + v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + for i := range in.Spec.Template.Spec.Volumes { + a := &in.Spec.Template.Spec.Volumes[i] + v1.SetDefaults_Volume(a) + if a.VolumeSource.Secret != nil { + v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + } + if a.VolumeSource.ISCSI != nil { + v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + } + if a.VolumeSource.RBD != nil { + v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + } + if a.VolumeSource.DownwardAPI != nil { + v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + for j := range a.VolumeSource.DownwardAPI.Items { + b := &a.VolumeSource.DownwardAPI.Items[j] + if b.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + } + } + } + if a.VolumeSource.ConfigMap != nil { + v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + } + if a.VolumeSource.AzureDisk != nil { + v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + } + if a.VolumeSource.Projected != nil { + v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + for j := range a.VolumeSource.Projected.Sources { + b := &a.VolumeSource.Projected.Sources[j] + if b.DownwardAPI != nil { + for k := range b.DownwardAPI.Items { + c := &b.DownwardAPI.Items[k] + if c.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + } + } + } + } + } + if a.VolumeSource.ScaleIO != nil { + v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + } + } + for i := range in.Spec.Template.Spec.InitContainers { + a := &in.Spec.Template.Spec.InitContainers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.Template.Spec.Containers { + a := &in.Spec.Template.Spec.Containers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } +} + +func SetObjectDefaults_ReplicaSetList(in *v1beta2.ReplicaSetList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_ReplicaSet(a) + } +} + +func SetObjectDefaults_StatefulSet(in *v1beta2.StatefulSet) { + SetDefaults_StatefulSet(in) + v1.SetDefaults_PodSpec(&in.Spec.Template.Spec) + for i := range in.Spec.Template.Spec.Volumes { + a := &in.Spec.Template.Spec.Volumes[i] + v1.SetDefaults_Volume(a) + if a.VolumeSource.Secret != nil { + v1.SetDefaults_SecretVolumeSource(a.VolumeSource.Secret) + } + if a.VolumeSource.ISCSI != nil { + v1.SetDefaults_ISCSIVolumeSource(a.VolumeSource.ISCSI) + } + if a.VolumeSource.RBD != nil { + v1.SetDefaults_RBDVolumeSource(a.VolumeSource.RBD) + } + if a.VolumeSource.DownwardAPI != nil { + v1.SetDefaults_DownwardAPIVolumeSource(a.VolumeSource.DownwardAPI) + for j := range a.VolumeSource.DownwardAPI.Items { + b := &a.VolumeSource.DownwardAPI.Items[j] + if b.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.FieldRef) + } + } + } + if a.VolumeSource.ConfigMap != nil { + v1.SetDefaults_ConfigMapVolumeSource(a.VolumeSource.ConfigMap) + } + if a.VolumeSource.AzureDisk != nil { + v1.SetDefaults_AzureDiskVolumeSource(a.VolumeSource.AzureDisk) + } + if a.VolumeSource.Projected != nil { + v1.SetDefaults_ProjectedVolumeSource(a.VolumeSource.Projected) + for j := range a.VolumeSource.Projected.Sources { + b := &a.VolumeSource.Projected.Sources[j] + if b.DownwardAPI != nil { + for k := range b.DownwardAPI.Items { + c := &b.DownwardAPI.Items[k] + if c.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(c.FieldRef) + } + } + } + } + } + if a.VolumeSource.ScaleIO != nil { + v1.SetDefaults_ScaleIOVolumeSource(a.VolumeSource.ScaleIO) + } + } + for i := range in.Spec.Template.Spec.InitContainers { + a := &in.Spec.Template.Spec.InitContainers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.Template.Spec.Containers { + a := &in.Spec.Template.Spec.Containers[i] + v1.SetDefaults_Container(a) + for j := range a.Ports { + b := &a.Ports[j] + v1.SetDefaults_ContainerPort(b) + } + for j := range a.Env { + b := &a.Env[j] + if b.ValueFrom != nil { + if b.ValueFrom.FieldRef != nil { + v1.SetDefaults_ObjectFieldSelector(b.ValueFrom.FieldRef) + } + } + } + v1.SetDefaults_ResourceList(&a.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Resources.Requests) + if a.LivenessProbe != nil { + v1.SetDefaults_Probe(a.LivenessProbe) + if a.LivenessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.LivenessProbe.Handler.HTTPGet) + } + } + if a.ReadinessProbe != nil { + v1.SetDefaults_Probe(a.ReadinessProbe) + if a.ReadinessProbe.Handler.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.ReadinessProbe.Handler.HTTPGet) + } + } + if a.Lifecycle != nil { + if a.Lifecycle.PostStart != nil { + if a.Lifecycle.PostStart.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PostStart.HTTPGet) + } + } + if a.Lifecycle.PreStop != nil { + if a.Lifecycle.PreStop.HTTPGet != nil { + v1.SetDefaults_HTTPGetAction(a.Lifecycle.PreStop.HTTPGet) + } + } + } + } + for i := range in.Spec.VolumeClaimTemplates { + a := &in.Spec.VolumeClaimTemplates[i] + v1.SetDefaults_PersistentVolumeClaim(a) + v1.SetDefaults_ResourceList(&a.Spec.Resources.Limits) + v1.SetDefaults_ResourceList(&a.Spec.Resources.Requests) + v1.SetDefaults_ResourceList(&a.Status.Capacity) + } +} + +func SetObjectDefaults_StatefulSetList(in *v1beta2.StatefulSetList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_StatefulSet(a) + } +} diff --git a/staging/src/k8s.io/api/apps/v1beta1/generated.proto b/staging/src/k8s.io/api/apps/v1beta1/generated.proto index 476571e389a..0a81339d227 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/generated.proto +++ b/staging/src/k8s.io/api/apps/v1beta1/generated.proto @@ -109,6 +109,7 @@ message DeploymentList { repeated Deployment items = 2; } +// DEPRECATED. // DeploymentRollback stores the information required to rollback a deployment. message DeploymentRollback { // Required: This must match the Name of a deployment. @@ -157,6 +158,7 @@ message DeploymentSpec { // +optional optional bool paused = 7; + // DEPRECATED. // The config this deployment is rolling back to. Will be cleared after rollback is done. // +optional optional RollbackConfig rollbackTo = 8; @@ -224,6 +226,7 @@ message DeploymentStrategy { optional RollingUpdateDeployment rollingUpdate = 2; } +// DEPRECATED. message RollbackConfig { // The revision to rollback to. If set to 0, rollback to the last revision. // +optional diff --git a/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go index 00d1a617fcc..a4ea771081d 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go @@ -84,7 +84,7 @@ func (DeploymentList) SwaggerDoc() map[string]string { } var map_DeploymentRollback = map[string]string{ - "": "DeploymentRollback stores the information required to rollback a deployment.", + "": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "name": "Required: This must match the Name of a deployment.", "updatedAnnotations": "The annotations to be updated to a deployment", "rollbackTo": "The config of this deployment rollback.", @@ -103,7 +103,7 @@ var map_DeploymentSpec = map[string]string{ "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", "revisionHistoryLimit": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 2.", "paused": "Indicates that the deployment is paused.", - "rollbackTo": "The config this deployment is rolling back to. Will be cleared after rollback is done.", + "rollbackTo": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", "progressDeadlineSeconds": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", } @@ -138,6 +138,7 @@ func (DeploymentStrategy) SwaggerDoc() map[string]string { } var map_RollbackConfig = map[string]string{ + "": "DEPRECATED.", "revision": "The revision to rollback to. If set to 0, rollback to the last revision.", } diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go new file mode 100644 index 00000000000..95ca19bac2a --- /dev/null +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go @@ -0,0 +1,6549 @@ +/* +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. +*/ + +// Code generated by protoc-gen-gogo. +// source: k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto +// DO NOT EDIT! + +/* + Package v1beta2 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto + + It has these top-level messages: + DaemonSet + DaemonSetList + DaemonSetSpec + DaemonSetStatus + DaemonSetUpdateStrategy + Deployment + DeploymentCondition + DeploymentList + DeploymentSpec + DeploymentStatus + DeploymentStrategy + ReplicaSet + ReplicaSetCondition + ReplicaSetList + ReplicaSetSpec + ReplicaSetStatus + RollingUpdateDaemonSet + RollingUpdateDeployment + RollingUpdateStatefulSetStrategy + Scale + ScaleSpec + ScaleStatus + StatefulSet + StatefulSetList + StatefulSetSpec + StatefulSetStatus + StatefulSetUpdateStrategy +*/ +package v1beta2 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import k8s_io_api_core_v1 "k8s.io/api/core/v1" + +import k8s_io_apimachinery_pkg_apis_meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + +import k8s_io_apimachinery_pkg_util_intstr "k8s.io/apimachinery/pkg/util/intstr" + +import github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *DaemonSet) Reset() { *m = DaemonSet{} } +func (*DaemonSet) ProtoMessage() {} +func (*DaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *DaemonSetList) Reset() { *m = DaemonSetList{} } +func (*DaemonSetList) ProtoMessage() {} +func (*DaemonSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *DaemonSetSpec) Reset() { *m = DaemonSetSpec{} } +func (*DaemonSetSpec) ProtoMessage() {} +func (*DaemonSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *DaemonSetStatus) Reset() { *m = DaemonSetStatus{} } +func (*DaemonSetStatus) ProtoMessage() {} +func (*DaemonSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + +func (m *DaemonSetUpdateStrategy) Reset() { *m = DaemonSetUpdateStrategy{} } +func (*DaemonSetUpdateStrategy) ProtoMessage() {} +func (*DaemonSetUpdateStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } + +func (m *Deployment) Reset() { *m = Deployment{} } +func (*Deployment) ProtoMessage() {} +func (*Deployment) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } + +func (m *DeploymentCondition) Reset() { *m = DeploymentCondition{} } +func (*DeploymentCondition) ProtoMessage() {} +func (*DeploymentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } + +func (m *DeploymentList) Reset() { *m = DeploymentList{} } +func (*DeploymentList) ProtoMessage() {} +func (*DeploymentList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } + +func (m *DeploymentSpec) Reset() { *m = DeploymentSpec{} } +func (*DeploymentSpec) ProtoMessage() {} +func (*DeploymentSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } + +func (m *DeploymentStatus) Reset() { *m = DeploymentStatus{} } +func (*DeploymentStatus) ProtoMessage() {} +func (*DeploymentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } + +func (m *DeploymentStrategy) Reset() { *m = DeploymentStrategy{} } +func (*DeploymentStrategy) ProtoMessage() {} +func (*DeploymentStrategy) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } + +func (m *ReplicaSet) Reset() { *m = ReplicaSet{} } +func (*ReplicaSet) ProtoMessage() {} +func (*ReplicaSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } + +func (m *ReplicaSetCondition) Reset() { *m = ReplicaSetCondition{} } +func (*ReplicaSetCondition) ProtoMessage() {} +func (*ReplicaSetCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } + +func (m *ReplicaSetList) Reset() { *m = ReplicaSetList{} } +func (*ReplicaSetList) ProtoMessage() {} +func (*ReplicaSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } + +func (m *ReplicaSetSpec) Reset() { *m = ReplicaSetSpec{} } +func (*ReplicaSetSpec) ProtoMessage() {} +func (*ReplicaSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } + +func (m *ReplicaSetStatus) Reset() { *m = ReplicaSetStatus{} } +func (*ReplicaSetStatus) ProtoMessage() {} +func (*ReplicaSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } + +func (m *RollingUpdateDaemonSet) Reset() { *m = RollingUpdateDaemonSet{} } +func (*RollingUpdateDaemonSet) ProtoMessage() {} +func (*RollingUpdateDaemonSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } + +func (m *RollingUpdateDeployment) Reset() { *m = RollingUpdateDeployment{} } +func (*RollingUpdateDeployment) ProtoMessage() {} +func (*RollingUpdateDeployment) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{17} +} + +func (m *RollingUpdateStatefulSetStrategy) Reset() { *m = RollingUpdateStatefulSetStrategy{} } +func (*RollingUpdateStatefulSetStrategy) ProtoMessage() {} +func (*RollingUpdateStatefulSetStrategy) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{18} +} + +func (m *Scale) Reset() { *m = Scale{} } +func (*Scale) ProtoMessage() {} +func (*Scale) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } + +func (m *ScaleSpec) Reset() { *m = ScaleSpec{} } +func (*ScaleSpec) ProtoMessage() {} +func (*ScaleSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } + +func (m *ScaleStatus) Reset() { *m = ScaleStatus{} } +func (*ScaleStatus) ProtoMessage() {} +func (*ScaleStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } + +func (m *StatefulSet) Reset() { *m = StatefulSet{} } +func (*StatefulSet) ProtoMessage() {} +func (*StatefulSet) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } + +func (m *StatefulSetList) Reset() { *m = StatefulSetList{} } +func (*StatefulSetList) ProtoMessage() {} +func (*StatefulSetList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } + +func (m *StatefulSetSpec) Reset() { *m = StatefulSetSpec{} } +func (*StatefulSetSpec) ProtoMessage() {} +func (*StatefulSetSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } + +func (m *StatefulSetStatus) Reset() { *m = StatefulSetStatus{} } +func (*StatefulSetStatus) ProtoMessage() {} +func (*StatefulSetStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } + +func (m *StatefulSetUpdateStrategy) Reset() { *m = StatefulSetUpdateStrategy{} } +func (*StatefulSetUpdateStrategy) ProtoMessage() {} +func (*StatefulSetUpdateStrategy) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{26} +} + +func init() { + proto.RegisterType((*DaemonSet)(nil), "k8s.io.api.apps.v1beta2.DaemonSet") + proto.RegisterType((*DaemonSetList)(nil), "k8s.io.api.apps.v1beta2.DaemonSetList") + proto.RegisterType((*DaemonSetSpec)(nil), "k8s.io.api.apps.v1beta2.DaemonSetSpec") + proto.RegisterType((*DaemonSetStatus)(nil), "k8s.io.api.apps.v1beta2.DaemonSetStatus") + proto.RegisterType((*DaemonSetUpdateStrategy)(nil), "k8s.io.api.apps.v1beta2.DaemonSetUpdateStrategy") + proto.RegisterType((*Deployment)(nil), "k8s.io.api.apps.v1beta2.Deployment") + proto.RegisterType((*DeploymentCondition)(nil), "k8s.io.api.apps.v1beta2.DeploymentCondition") + proto.RegisterType((*DeploymentList)(nil), "k8s.io.api.apps.v1beta2.DeploymentList") + proto.RegisterType((*DeploymentSpec)(nil), "k8s.io.api.apps.v1beta2.DeploymentSpec") + proto.RegisterType((*DeploymentStatus)(nil), "k8s.io.api.apps.v1beta2.DeploymentStatus") + proto.RegisterType((*DeploymentStrategy)(nil), "k8s.io.api.apps.v1beta2.DeploymentStrategy") + proto.RegisterType((*ReplicaSet)(nil), "k8s.io.api.apps.v1beta2.ReplicaSet") + proto.RegisterType((*ReplicaSetCondition)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetCondition") + proto.RegisterType((*ReplicaSetList)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetList") + proto.RegisterType((*ReplicaSetSpec)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetSpec") + proto.RegisterType((*ReplicaSetStatus)(nil), "k8s.io.api.apps.v1beta2.ReplicaSetStatus") + proto.RegisterType((*RollingUpdateDaemonSet)(nil), "k8s.io.api.apps.v1beta2.RollingUpdateDaemonSet") + proto.RegisterType((*RollingUpdateDeployment)(nil), "k8s.io.api.apps.v1beta2.RollingUpdateDeployment") + proto.RegisterType((*RollingUpdateStatefulSetStrategy)(nil), "k8s.io.api.apps.v1beta2.RollingUpdateStatefulSetStrategy") + proto.RegisterType((*Scale)(nil), "k8s.io.api.apps.v1beta2.Scale") + proto.RegisterType((*ScaleSpec)(nil), "k8s.io.api.apps.v1beta2.ScaleSpec") + proto.RegisterType((*ScaleStatus)(nil), "k8s.io.api.apps.v1beta2.ScaleStatus") + proto.RegisterType((*StatefulSet)(nil), "k8s.io.api.apps.v1beta2.StatefulSet") + proto.RegisterType((*StatefulSetList)(nil), "k8s.io.api.apps.v1beta2.StatefulSetList") + proto.RegisterType((*StatefulSetSpec)(nil), "k8s.io.api.apps.v1beta2.StatefulSetSpec") + proto.RegisterType((*StatefulSetStatus)(nil), "k8s.io.api.apps.v1beta2.StatefulSetStatus") + proto.RegisterType((*StatefulSetUpdateStrategy)(nil), "k8s.io.api.apps.v1beta2.StatefulSetUpdateStrategy") +} +func (m *DaemonSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaemonSet) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n2, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n3, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + return i, nil +} + +func (m *DaemonSetList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaemonSetList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *DaemonSetSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaemonSetSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Selector != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n5, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + } + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n6, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) + n7, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.TemplateGeneration)) + if m.RevisionHistoryLimit != nil { + dAtA[i] = 0x30 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) + } + return i, nil +} + +func (m *DaemonSetStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaemonSetStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentNumberScheduled)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.NumberMisscheduled)) + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.DesiredNumberScheduled)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.NumberReady)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + dAtA[i] = 0x30 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedNumberScheduled)) + dAtA[i] = 0x38 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.NumberAvailable)) + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.NumberUnavailable)) + if m.CollisionCount != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + } + return i, nil +} + +func (m *DaemonSetUpdateStrategy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DaemonSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + if m.RollingUpdate != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) + n8, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + } + return i, nil +} + +func (m *Deployment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Deployment) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n9, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n10, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n11, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n11 + return i, nil +} + +func (m *DeploymentCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeploymentCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastUpdateTime.Size())) + n12, err := m.LastUpdateTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n12 + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n13, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n13 + return i, nil +} + +func (m *DeploymentList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeploymentList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n14, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n14 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *DeploymentSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeploymentSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Replicas != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + } + if m.Selector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n15, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n15 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n16, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n16 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Strategy.Size())) + n17, err := m.Strategy.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n17 + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) + if m.RevisionHistoryLimit != nil { + dAtA[i] = 0x30 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) + } + dAtA[i] = 0x38 + i++ + if m.Paused { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if m.ProgressDeadlineSeconds != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.ProgressDeadlineSeconds)) + } + return i, nil +} + +func (m *DeploymentStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeploymentStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UnavailableReplicas)) + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + dAtA[i] = 0x38 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) + if m.CollisionCount != nil { + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + } + return i, nil +} + +func (m *DeploymentStrategy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DeploymentStrategy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + if m.RollingUpdate != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) + n18, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n18 + } + return i, nil +} + +func (m *ReplicaSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ReplicaSet) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n19, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n19 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n20, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n20 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n21, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n21 + return i, nil +} + +func (m *ReplicaSetCondition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ReplicaSetCondition) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i += copy(dAtA[i:], m.Status) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) + n22, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n22 + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i += copy(dAtA[i:], m.Reason) + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i += copy(dAtA[i:], m.Message) + return i, nil +} + +func (m *ReplicaSetList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ReplicaSetList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n23, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n23 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *ReplicaSetSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ReplicaSetSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Replicas != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + } + if m.Selector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n24, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n24 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n25, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n25 + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MinReadySeconds)) + return i, nil +} + +func (m *ReplicaSetStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ReplicaSetStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.FullyLabeledReplicas)) + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.AvailableReplicas)) + if len(m.Conditions) > 0 { + for _, msg := range m.Conditions { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RollingUpdateDaemonSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RollingUpdateDaemonSet) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MaxUnavailable != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) + n26, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n26 + } + return i, nil +} + +func (m *RollingUpdateDeployment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RollingUpdateDeployment) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.MaxUnavailable != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MaxUnavailable.Size())) + n27, err := m.MaxUnavailable.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n27 + } + if m.MaxSurge != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.MaxSurge.Size())) + n28, err := m.MaxSurge.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n28 + } + return i, nil +} + +func (m *RollingUpdateStatefulSetStrategy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RollingUpdateStatefulSetStrategy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Partition != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Partition)) + } + return i, nil +} + +func (m *Scale) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Scale) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n29, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n29 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n30, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n30 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n31, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n31 + return i, nil +} + +func (m *ScaleSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ScaleSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + return i, nil +} + +func (m *ScaleStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ScaleStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + if len(m.Selector) > 0 { + keysForSelector := make([]string, 0, len(m.Selector)) + for k := range m.Selector { + keysForSelector = append(keysForSelector, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForSelector) + for _, k := range keysForSelector { + dAtA[i] = 0x12 + i++ + v := m.Selector[string(k)] + mapSize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + i = encodeVarintGenerated(dAtA, i, uint64(mapSize)) + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(k))) + i += copy(dAtA[i:], k) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i += copy(dAtA[i:], v) + } + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TargetSelector))) + i += copy(dAtA[i:], m.TargetSelector) + return i, nil +} + +func (m *StatefulSet) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatefulSet) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n32, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n32 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n33, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n33 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n34, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n34 + return i, nil +} + +func (m *StatefulSetList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatefulSetList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n35, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n35 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *StatefulSetSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatefulSetSpec) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.Replicas != nil { + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.Replicas)) + } + if m.Selector != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) + n36, err := m.Selector.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n36 + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) + n37, err := m.Template.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n37 + if len(m.VolumeClaimTemplates) > 0 { + for _, msg := range m.VolumeClaimTemplates { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + dAtA[i] = 0x2a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ServiceName))) + i += copy(dAtA[i:], m.ServiceName) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.PodManagementPolicy))) + i += copy(dAtA[i:], m.PodManagementPolicy) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdateStrategy.Size())) + n38, err := m.UpdateStrategy.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n38 + if m.RevisionHistoryLimit != nil { + dAtA[i] = 0x40 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.RevisionHistoryLimit)) + } + return i, nil +} + +func (m *StatefulSetStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0x8 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + dAtA[i] = 0x10 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Replicas)) + dAtA[i] = 0x18 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ReadyReplicas)) + dAtA[i] = 0x20 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CurrentReplicas)) + dAtA[i] = 0x28 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.UpdatedReplicas)) + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CurrentRevision))) + i += copy(dAtA[i:], m.CurrentRevision) + dAtA[i] = 0x3a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) + i += copy(dAtA[i:], m.UpdateRevision) + return i, nil +} + +func (m *StatefulSetUpdateStrategy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *StatefulSetUpdateStrategy) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i += copy(dAtA[i:], m.Type) + if m.RollingUpdate != nil { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RollingUpdate.Size())) + n39, err := m.RollingUpdate.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n39 + } + return i, nil +} + +func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *DaemonSet) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *DaemonSetList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DaemonSetSpec) Size() (n int) { + var l int + _ = l + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.UpdateStrategy.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + n += 1 + sovGenerated(uint64(m.TemplateGeneration)) + if m.RevisionHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + } + return n +} + +func (m *DaemonSetStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.CurrentNumberScheduled)) + n += 1 + sovGenerated(uint64(m.NumberMisscheduled)) + n += 1 + sovGenerated(uint64(m.DesiredNumberScheduled)) + n += 1 + sovGenerated(uint64(m.NumberReady)) + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.UpdatedNumberScheduled)) + n += 1 + sovGenerated(uint64(m.NumberAvailable)) + n += 1 + sovGenerated(uint64(m.NumberUnavailable)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } + return n +} + +func (m *DaemonSetUpdateStrategy) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.RollingUpdate != nil { + l = m.RollingUpdate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Deployment) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *DeploymentCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *DeploymentList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DeploymentSpec) Size() (n int) { + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Strategy.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + if m.RevisionHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + } + n += 2 + if m.ProgressDeadlineSeconds != nil { + n += 1 + sovGenerated(uint64(*m.ProgressDeadlineSeconds)) + } + return n +} + +func (m *DeploymentStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) + n += 1 + sovGenerated(uint64(m.AvailableReplicas)) + n += 1 + sovGenerated(uint64(m.UnavailableReplicas)) + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } + return n +} + +func (m *DeploymentStrategy) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.RollingUpdate != nil { + l = m.RollingUpdate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ReplicaSet) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ReplicaSetCondition) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ReplicaSetList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ReplicaSetSpec) Size() (n int) { + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.MinReadySeconds)) + return n +} + +func (m *ReplicaSetStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.FullyLabeledReplicas)) + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + n += 1 + sovGenerated(uint64(m.AvailableReplicas)) + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RollingUpdateDaemonSet) Size() (n int) { + var l int + _ = l + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RollingUpdateDeployment) Size() (n int) { + var l int + _ = l + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *RollingUpdateStatefulSetStrategy) Size() (n int) { + var l int + _ = l + if m.Partition != nil { + n += 1 + sovGenerated(uint64(*m.Partition)) + } + return n +} + +func (m *Scale) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ScaleSpec) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Replicas)) + return n +} + +func (m *ScaleStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.Replicas)) + if len(m.Selector) > 0 { + for k, v := range m.Selector { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + l = len(m.TargetSelector) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *StatefulSet) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *StatefulSetList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *StatefulSetSpec) Size() (n int) { + var l int + _ = l + if m.Replicas != nil { + n += 1 + sovGenerated(uint64(*m.Replicas)) + } + if m.Selector != nil { + l = m.Selector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Template.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.VolumeClaimTemplates) > 0 { + for _, e := range m.VolumeClaimTemplates { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = len(m.ServiceName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.PodManagementPolicy) + n += 1 + l + sovGenerated(uint64(l)) + l = m.UpdateStrategy.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.RevisionHistoryLimit != nil { + n += 1 + sovGenerated(uint64(*m.RevisionHistoryLimit)) + } + return n +} + +func (m *StatefulSetStatus) Size() (n int) { + var l int + _ = l + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + n += 1 + sovGenerated(uint64(m.Replicas)) + n += 1 + sovGenerated(uint64(m.ReadyReplicas)) + n += 1 + sovGenerated(uint64(m.CurrentReplicas)) + n += 1 + sovGenerated(uint64(m.UpdatedReplicas)) + l = len(m.CurrentRevision) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.UpdateRevision) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *StatefulSetUpdateStrategy) Size() (n int) { + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.RollingUpdate != nil { + l = m.RollingUpdate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *DaemonSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSet{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DaemonSetSpec", "DaemonSetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DaemonSetStatus", "DaemonSetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "DaemonSet", "DaemonSet", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetSpec{`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "DaemonSetUpdateStrategy", "DaemonSetUpdateStrategy", 1), `&`, ``, 1) + `,`, + `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `TemplateGeneration:` + fmt.Sprintf("%v", this.TemplateGeneration) + `,`, + `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetStatus{`, + `CurrentNumberScheduled:` + fmt.Sprintf("%v", this.CurrentNumberScheduled) + `,`, + `NumberMisscheduled:` + fmt.Sprintf("%v", this.NumberMisscheduled) + `,`, + `DesiredNumberScheduled:` + fmt.Sprintf("%v", this.DesiredNumberScheduled) + `,`, + `NumberReady:` + fmt.Sprintf("%v", this.NumberReady) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `UpdatedNumberScheduled:` + fmt.Sprintf("%v", this.UpdatedNumberScheduled) + `,`, + `NumberAvailable:` + fmt.Sprintf("%v", this.NumberAvailable) + `,`, + `NumberUnavailable:` + fmt.Sprintf("%v", this.NumberUnavailable) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `}`, + }, "") + return s +} +func (this *DaemonSetUpdateStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DaemonSetUpdateStrategy{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateDaemonSet", "RollingUpdateDaemonSet", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Deployment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Deployment{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "DeploymentSpec", "DeploymentSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "DeploymentStatus", "DeploymentStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(this.LastUpdateTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "Deployment", "Deployment", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `Strategy:` + strings.Replace(strings.Replace(this.Strategy.String(), "DeploymentStrategy", "DeploymentStrategy", 1), `&`, ``, 1) + `,`, + `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, + `Paused:` + fmt.Sprintf("%v", this.Paused) + `,`, + `ProgressDeadlineSeconds:` + valueToStringGenerated(this.ProgressDeadlineSeconds) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentStatus{`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, + `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, + `UnavailableReplicas:` + fmt.Sprintf("%v", this.UnavailableReplicas) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "DeploymentCondition", "DeploymentCondition", 1), `&`, ``, 1) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, + `}`, + }, "") + return s +} +func (this *DeploymentStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DeploymentStrategy{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateDeployment", "RollingUpdateDeployment", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSet{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ReplicaSetSpec", "ReplicaSetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ReplicaSetStatus", "ReplicaSetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetCondition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetCondition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(this.LastTransitionTime.String(), "Time", "k8s_io_apimachinery_pkg_apis_meta_v1.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "ReplicaSet", "ReplicaSet", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `MinReadySeconds:` + fmt.Sprintf("%v", this.MinReadySeconds) + `,`, + `}`, + }, "") + return s +} +func (this *ReplicaSetStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ReplicaSetStatus{`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `FullyLabeledReplicas:` + fmt.Sprintf("%v", this.FullyLabeledReplicas) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `AvailableReplicas:` + fmt.Sprintf("%v", this.AvailableReplicas) + `,`, + `Conditions:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Conditions), "ReplicaSetCondition", "ReplicaSetCondition", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RollingUpdateDaemonSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RollingUpdateDaemonSet{`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RollingUpdateDeployment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RollingUpdateDeployment{`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "k8s_io_apimachinery_pkg_util_intstr.IntOrString", 1) + `,`, + `}`, + }, "") + return s +} +func (this *RollingUpdateStatefulSetStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RollingUpdateStatefulSetStrategy{`, + `Partition:` + valueToStringGenerated(this.Partition) + `,`, + `}`, + }, "") + return s +} +func (this *Scale) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Scale{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ScaleSpec", "ScaleSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ScaleStatus", "ScaleStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ScaleSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ScaleSpec{`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `}`, + }, "") + return s +} +func (this *ScaleStatus) String() string { + if this == nil { + return "nil" + } + keysForSelector := make([]string, 0, len(this.Selector)) + for k := range this.Selector { + keysForSelector = append(keysForSelector, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForSelector) + mapStringForSelector := "map[string]string{" + for _, k := range keysForSelector { + mapStringForSelector += fmt.Sprintf("%v: %v,", k, this.Selector[k]) + } + mapStringForSelector += "}" + s := strings.Join([]string{`&ScaleStatus{`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `Selector:` + mapStringForSelector + `,`, + `TargetSelector:` + fmt.Sprintf("%v", this.TargetSelector) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSet) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSet{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "StatefulSetSpec", "StatefulSetSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "StatefulSetStatus", "StatefulSetStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "StatefulSet", "StatefulSet", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetSpec{`, + `Replicas:` + valueToStringGenerated(this.Replicas) + `,`, + `Selector:` + strings.Replace(fmt.Sprintf("%v", this.Selector), "LabelSelector", "k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector", 1) + `,`, + `Template:` + strings.Replace(strings.Replace(this.Template.String(), "PodTemplateSpec", "k8s_io_api_core_v1.PodTemplateSpec", 1), `&`, ``, 1) + `,`, + `VolumeClaimTemplates:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.VolumeClaimTemplates), "PersistentVolumeClaim", "k8s_io_api_core_v1.PersistentVolumeClaim", 1), `&`, ``, 1) + `,`, + `ServiceName:` + fmt.Sprintf("%v", this.ServiceName) + `,`, + `PodManagementPolicy:` + fmt.Sprintf("%v", this.PodManagementPolicy) + `,`, + `UpdateStrategy:` + strings.Replace(strings.Replace(this.UpdateStrategy.String(), "StatefulSetUpdateStrategy", "StatefulSetUpdateStrategy", 1), `&`, ``, 1) + `,`, + `RevisionHistoryLimit:` + valueToStringGenerated(this.RevisionHistoryLimit) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetStatus{`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `Replicas:` + fmt.Sprintf("%v", this.Replicas) + `,`, + `ReadyReplicas:` + fmt.Sprintf("%v", this.ReadyReplicas) + `,`, + `CurrentReplicas:` + fmt.Sprintf("%v", this.CurrentReplicas) + `,`, + `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, + `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, + `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, + `}`, + }, "") + return s +} +func (this *StatefulSetUpdateStrategy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&StatefulSetUpdateStrategy{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `RollingUpdate:` + strings.Replace(fmt.Sprintf("%v", this.RollingUpdate), "RollingUpdateStatefulSetStrategy", "RollingUpdateStatefulSetStrategy", 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *DaemonSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaemonSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaemonSetList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaemonSetList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, DaemonSet{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaemonSetSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaemonSetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TemplateGeneration", wireType) + } + m.TemplateGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TemplateGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.RevisionHistoryLimit = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaemonSetStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaemonSetStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentNumberScheduled", wireType) + } + m.CurrentNumberScheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CurrentNumberScheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberMisscheduled", wireType) + } + m.NumberMisscheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberMisscheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DesiredNumberScheduled", wireType) + } + m.DesiredNumberScheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DesiredNumberScheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberReady", wireType) + } + m.NumberReady = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberReady |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedNumberScheduled", wireType) + } + m.UpdatedNumberScheduled = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpdatedNumberScheduled |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberAvailable", wireType) + } + m.NumberAvailable = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberAvailable |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NumberUnavailable", wireType) + } + m.NumberUnavailable = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.NumberUnavailable |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DaemonSetUpdateStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DaemonSetUpdateStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DaemonSetUpdateStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = DaemonSetUpdateStrategyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RollingUpdate == nil { + m.RollingUpdate = &RollingUpdateDaemonSet{} + } + if err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Deployment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Deployment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Deployment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeploymentCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeploymentCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = DeploymentConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeploymentList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeploymentList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Deployment{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeploymentSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeploymentSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Strategy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Strategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.RevisionHistoryLimit = &v + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Paused", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Paused = bool(v != 0) + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ProgressDeadlineSeconds", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.ProgressDeadlineSeconds = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeploymentStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeploymentStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) + } + m.UpdatedReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpdatedReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) + } + m.AvailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AvailableReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UnavailableReplicas", wireType) + } + m.UnavailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UnavailableReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, DeploymentCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) + } + m.ReadyReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReadyReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DeploymentStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DeploymentStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DeploymentStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = DeploymentStrategyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RollingUpdate == nil { + m.RollingUpdate = &RollingUpdateDeployment{} + } + if err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReplicaSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReplicaSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReplicaSetCondition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReplicaSetCondition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetCondition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = ReplicaSetConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = k8s_io_api_core_v1.ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReplicaSetList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReplicaSetList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ReplicaSet{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReplicaSetSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReplicaSetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MinReadySeconds", wireType) + } + m.MinReadySeconds = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.MinReadySeconds |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ReplicaSetStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ReplicaSetStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ReplicaSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field FullyLabeledReplicas", wireType) + } + m.FullyLabeledReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.FullyLabeledReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) + } + m.ReadyReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReadyReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AvailableReplicas", wireType) + } + m.AvailableReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.AvailableReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, ReplicaSetCondition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RollingUpdateDaemonSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RollingUpdateDaemonSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RollingUpdateDaemonSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxUnavailable == nil { + m.MaxUnavailable = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RollingUpdateDeployment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RollingUpdateDeployment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RollingUpdateDeployment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxUnavailable == nil { + m.MaxUnavailable = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxSurge == nil { + m.MaxSurge = &k8s_io_apimachinery_pkg_util_intstr.IntOrString{} + } + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RollingUpdateStatefulSetStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RollingUpdateStatefulSetStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RollingUpdateStatefulSetStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Partition", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Partition = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Scale) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Scale: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Scale: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ScaleSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ScaleSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScaleSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ScaleStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ScaleStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ScaleStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + var keykey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + keykey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey := string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + if m.Selector == nil { + m.Selector = make(map[string]string) + } + if iNdEx < postIndex { + var valuekey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + valuekey |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue := string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + m.Selector[mapkey] = mapvalue + } else { + var mapvalue string + m.Selector[mapkey] = mapvalue + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetSelector", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TargetSelector = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatefulSet) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatefulSet: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSet: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatefulSetList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatefulSetList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSetList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, StatefulSet{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatefulSetSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatefulSetSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSetSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.Replicas = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Selector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Selector == nil { + m.Selector = &k8s_io_apimachinery_pkg_apis_meta_v1.LabelSelector{} + } + if err := m.Selector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Template", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Template.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeClaimTemplates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VolumeClaimTemplates = append(m.VolumeClaimTemplates, k8s_io_api_core_v1.PersistentVolumeClaim{}) + if err := m.VolumeClaimTemplates[len(m.VolumeClaimTemplates)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ServiceName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PodManagementPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.PodManagementPolicy = PodManagementPolicyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateStrategy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.UpdateStrategy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field RevisionHistoryLimit", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.RevisionHistoryLimit = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatefulSetStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSetStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Replicas", wireType) + } + m.Replicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Replicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadyReplicas", wireType) + } + m.ReadyReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ReadyReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentReplicas", wireType) + } + m.CurrentReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CurrentReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdatedReplicas", wireType) + } + m.UpdatedReplicas = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.UpdatedReplicas |= (int32(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CurrentRevision", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CurrentRevision = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpdateRevision", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UpdateRevision = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *StatefulSetUpdateStrategy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: StatefulSetUpdateStrategy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: StatefulSetUpdateStrategy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = StatefulSetUpdateStrategyType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RollingUpdate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RollingUpdate == nil { + m.RollingUpdate = &RollingUpdateStatefulSetStrategy{} + } + if err := m.RollingUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/apps/v1beta2/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 2048 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcb, 0x6f, 0x1c, 0xb7, + 0x19, 0xf7, 0xec, 0x43, 0xda, 0xa5, 0x22, 0xc9, 0xa6, 0x54, 0x69, 0x23, 0xb7, 0x2b, 0x61, 0x12, + 0x38, 0x72, 0x1c, 0xcf, 0xda, 0xca, 0x03, 0x89, 0x0d, 0xb4, 0xd5, 0x4a, 0xad, 0xed, 0x40, 0x92, + 0x15, 0x4a, 0x32, 0xd0, 0xa0, 0x05, 0x4c, 0xed, 0xd2, 0xab, 0x89, 0xe6, 0x85, 0x19, 0xce, 0x22, + 0x8b, 0x5e, 0x7a, 0x2a, 0x50, 0xa0, 0x40, 0x73, 0xee, 0x3f, 0xd1, 0x9e, 0x8a, 0xa2, 0xbd, 0x15, + 0x45, 0xe1, 0x4b, 0x81, 0xa0, 0x3d, 0x24, 0x27, 0xa1, 0xde, 0x1c, 0xfb, 0x1f, 0x04, 0x28, 0x50, + 0x90, 0xc3, 0x79, 0x70, 0x1e, 0xd6, 0x48, 0xb5, 0xd5, 0x20, 0xb7, 0x5d, 0x7e, 0xbf, 0xef, 0xc7, + 0x8f, 0xe4, 0x47, 0x7e, 0x3f, 0x72, 0xc0, 0x0f, 0x8f, 0xdf, 0xf7, 0x34, 0xdd, 0xee, 0x1c, 0xfb, + 0x87, 0xc4, 0xb5, 0x08, 0x25, 0x5e, 0x67, 0x48, 0xac, 0xbe, 0xed, 0x76, 0x84, 0x01, 0x3b, 0x7a, + 0x07, 0x3b, 0x8e, 0xd7, 0x19, 0xde, 0x3e, 0x24, 0x14, 0xaf, 0x75, 0x06, 0xc4, 0x22, 0x2e, 0xa6, + 0xa4, 0xaf, 0x39, 0xae, 0x4d, 0x6d, 0xb8, 0x18, 0x00, 0x35, 0xec, 0xe8, 0x1a, 0x03, 0x6a, 0x02, + 0xb8, 0x74, 0x73, 0xa0, 0xd3, 0x23, 0xff, 0x50, 0xeb, 0xd9, 0x66, 0x67, 0x60, 0x0f, 0xec, 0x0e, + 0xc7, 0x1f, 0xfa, 0x4f, 0xf8, 0x3f, 0xfe, 0x87, 0xff, 0x0a, 0x78, 0x96, 0xd4, 0x44, 0x87, 0x3d, + 0xdb, 0x25, 0x9d, 0xe1, 0xed, 0x74, 0x5f, 0x4b, 0xd7, 0x13, 0x18, 0xc7, 0x36, 0xf4, 0xde, 0x48, + 0x84, 0x95, 0x85, 0xbe, 0x13, 0x43, 0x4d, 0xdc, 0x3b, 0xd2, 0x2d, 0xe2, 0x8e, 0x3a, 0xce, 0xf1, + 0x80, 0x35, 0x78, 0x1d, 0x93, 0x50, 0x9c, 0xd7, 0x41, 0xa7, 0xc8, 0xcb, 0xf5, 0x2d, 0xaa, 0x9b, + 0x24, 0xe3, 0xf0, 0xde, 0x69, 0x0e, 0x5e, 0xef, 0x88, 0x98, 0x38, 0xe3, 0xf7, 0x76, 0x91, 0x9f, + 0x4f, 0x75, 0xa3, 0xa3, 0x5b, 0xd4, 0xa3, 0x6e, 0xda, 0x49, 0xfd, 0x55, 0x05, 0x34, 0x37, 0x31, + 0x31, 0x6d, 0x6b, 0x8f, 0x50, 0xf8, 0x18, 0x34, 0xd8, 0x30, 0xfa, 0x98, 0xe2, 0x96, 0xb2, 0xa2, + 0xac, 0x4e, 0xad, 0xdd, 0xd2, 0xe2, 0xb5, 0x88, 0x58, 0x35, 0xe7, 0x78, 0xc0, 0x1a, 0x3c, 0x8d, + 0xa1, 0xb5, 0xe1, 0x6d, 0xed, 0xe1, 0xe1, 0x27, 0xa4, 0x47, 0xb7, 0x09, 0xc5, 0x5d, 0xf8, 0xf4, + 0x64, 0xf9, 0xd2, 0xf8, 0x64, 0x19, 0xc4, 0x6d, 0x28, 0x62, 0x85, 0xf7, 0x41, 0xcd, 0x73, 0x48, + 0xaf, 0x55, 0xe1, 0xec, 0xd7, 0xb4, 0x82, 0x95, 0xd6, 0xa2, 0x98, 0xf6, 0x1c, 0xd2, 0xeb, 0xbe, + 0x22, 0x38, 0x6b, 0xec, 0x1f, 0xe2, 0x0c, 0x70, 0x17, 0x4c, 0x78, 0x14, 0x53, 0xdf, 0x6b, 0x55, + 0x39, 0xd7, 0x6a, 0x09, 0x2e, 0x8e, 0xef, 0xce, 0x08, 0xb6, 0x89, 0xe0, 0x3f, 0x12, 0x3c, 0xea, + 0x1f, 0x14, 0x30, 0x1d, 0x61, 0xb7, 0x74, 0x8f, 0xc2, 0x9f, 0x66, 0xe6, 0x43, 0x2b, 0x37, 0x1f, + 0xcc, 0x9b, 0xcf, 0xc6, 0x65, 0xd1, 0x57, 0x23, 0x6c, 0x49, 0xcc, 0xc5, 0x3d, 0x50, 0xd7, 0x29, + 0x31, 0xbd, 0x56, 0x65, 0xa5, 0xba, 0x3a, 0xb5, 0xa6, 0x9e, 0x3e, 0x80, 0xee, 0xb4, 0xa0, 0xab, + 0x3f, 0x60, 0x8e, 0x28, 0xf0, 0x57, 0x3f, 0xab, 0x25, 0x02, 0x67, 0x53, 0x04, 0x7f, 0x06, 0x1a, + 0x1e, 0x31, 0x48, 0x8f, 0xda, 0xae, 0x08, 0xfc, 0xed, 0x92, 0x81, 0xe3, 0x43, 0x62, 0xec, 0x09, + 0xd7, 0xee, 0x2b, 0x2c, 0xf2, 0xf0, 0x1f, 0x8a, 0x28, 0xe1, 0x47, 0xa0, 0x41, 0x89, 0xe9, 0x18, + 0x98, 0x12, 0xb1, 0x92, 0xaf, 0x25, 0x83, 0x67, 0x7b, 0x8d, 0x91, 0xed, 0xda, 0xfd, 0x7d, 0x01, + 0xe3, 0xcb, 0x18, 0x4d, 0x46, 0xd8, 0x8a, 0x22, 0x1a, 0xe8, 0x80, 0x19, 0xdf, 0xe9, 0x33, 0x24, + 0x65, 0xf9, 0x39, 0x18, 0x89, 0x65, 0xbd, 0x75, 0xfa, 0xac, 0x1c, 0x48, 0x7e, 0xdd, 0x05, 0xd1, + 0xcb, 0x8c, 0xdc, 0x8e, 0x52, 0xfc, 0x70, 0x1d, 0xcc, 0x9a, 0xba, 0x85, 0x08, 0xee, 0x8f, 0xf6, + 0x48, 0xcf, 0xb6, 0xfa, 0x5e, 0xab, 0xb6, 0xa2, 0xac, 0xd6, 0xbb, 0x8b, 0x82, 0x60, 0x76, 0x5b, + 0x36, 0xa3, 0x34, 0x1e, 0x7e, 0x08, 0x60, 0x38, 0x80, 0x7b, 0xc1, 0xc6, 0xd2, 0x6d, 0xab, 0x55, + 0x5f, 0x51, 0x56, 0xab, 0xdd, 0x25, 0xc1, 0x02, 0xf7, 0x33, 0x08, 0x94, 0xe3, 0x05, 0xb7, 0xc0, + 0xbc, 0x4b, 0x86, 0xba, 0xa7, 0xdb, 0xd6, 0x7d, 0xdd, 0xa3, 0xb6, 0x3b, 0xda, 0xd2, 0x4d, 0x9d, + 0xb6, 0x26, 0x78, 0x4c, 0xad, 0xf1, 0xc9, 0xf2, 0x3c, 0xca, 0xb1, 0xa3, 0x5c, 0x2f, 0xf5, 0xf7, + 0x75, 0x30, 0x9b, 0xca, 0x7b, 0xf8, 0x08, 0x2c, 0xf4, 0x7c, 0xd7, 0x25, 0x16, 0xdd, 0xf1, 0xcd, + 0x43, 0xe2, 0xee, 0xf5, 0x8e, 0x48, 0xdf, 0x37, 0x48, 0x9f, 0xa7, 0x48, 0xbd, 0xdb, 0x16, 0x11, + 0x2f, 0x6c, 0xe4, 0xa2, 0x50, 0x81, 0x37, 0x9b, 0x05, 0x8b, 0x37, 0x6d, 0xeb, 0x9e, 0x17, 0x71, + 0x56, 0x38, 0x67, 0x34, 0x0b, 0x3b, 0x19, 0x04, 0xca, 0xf1, 0x62, 0x31, 0xf6, 0x89, 0xa7, 0xbb, + 0xa4, 0x9f, 0x8e, 0xb1, 0x2a, 0xc7, 0xb8, 0x99, 0x8b, 0x42, 0x05, 0xde, 0xf0, 0x5d, 0x30, 0x15, + 0xf4, 0xc6, 0xd7, 0x4f, 0x2c, 0xf4, 0x9c, 0x20, 0x9b, 0xda, 0x89, 0x4d, 0x28, 0x89, 0x63, 0x43, + 0xb3, 0x0f, 0x3d, 0xe2, 0x0e, 0x49, 0xbf, 0x78, 0x81, 0x1f, 0x66, 0x10, 0x28, 0xc7, 0x8b, 0x0d, + 0x2d, 0xc8, 0xc0, 0xcc, 0xd0, 0x26, 0xe4, 0xa1, 0x1d, 0xe4, 0xa2, 0x50, 0x81, 0x37, 0xcb, 0xe3, + 0x20, 0xe4, 0xf5, 0x21, 0xd6, 0x0d, 0x7c, 0x68, 0x90, 0xd6, 0xa4, 0x9c, 0xc7, 0x3b, 0xb2, 0x19, + 0xa5, 0xf1, 0xf0, 0x1e, 0xb8, 0x12, 0x34, 0x1d, 0x58, 0x38, 0x22, 0x69, 0x70, 0x92, 0x57, 0x05, + 0xc9, 0x95, 0x9d, 0x34, 0x00, 0x65, 0x7d, 0xe0, 0x1d, 0x30, 0xd3, 0xb3, 0x0d, 0x83, 0xe7, 0xe3, + 0x86, 0xed, 0x5b, 0xb4, 0xd5, 0xe4, 0x73, 0x05, 0xd9, 0x7e, 0xdc, 0x90, 0x2c, 0x28, 0x85, 0x54, + 0xff, 0xaa, 0x80, 0xc5, 0x82, 0x3d, 0x0d, 0x7f, 0x00, 0x6a, 0x74, 0xe4, 0x10, 0x9e, 0xa8, 0xcd, + 0xee, 0x8d, 0xb0, 0x1c, 0xec, 0x8f, 0x1c, 0xf2, 0xf5, 0xc9, 0xf2, 0xd5, 0x02, 0x37, 0x66, 0x46, + 0xdc, 0x11, 0x1e, 0x81, 0x69, 0x97, 0x75, 0x67, 0x0d, 0x02, 0x88, 0x38, 0xb6, 0x3a, 0x85, 0xa7, + 0x0b, 0x4a, 0xa2, 0xe3, 0x03, 0xf8, 0xca, 0xf8, 0x64, 0x79, 0x5a, 0xb2, 0x21, 0x99, 0x58, 0xfd, + 0x75, 0x05, 0x80, 0x4d, 0xe2, 0x18, 0xf6, 0xc8, 0x24, 0xd6, 0x45, 0x94, 0xd4, 0x07, 0x52, 0x49, + 0x7d, 0xa3, 0xf8, 0xbc, 0x8c, 0x82, 0x2a, 0xac, 0xa9, 0x1f, 0xa5, 0x6a, 0xea, 0xf5, 0x32, 0x64, + 0xcf, 0x2f, 0xaa, 0x5f, 0x54, 0xc1, 0x5c, 0x0c, 0xde, 0xb0, 0xad, 0xbe, 0xce, 0x77, 0xc3, 0x5d, + 0x69, 0x45, 0xdf, 0x48, 0xad, 0xe8, 0x62, 0x8e, 0x4b, 0x62, 0x35, 0xb7, 0xa2, 0x38, 0x2b, 0xdc, + 0xfd, 0x1d, 0xb9, 0xf3, 0xaf, 0x4f, 0x96, 0x73, 0xa4, 0x9f, 0x16, 0x31, 0xc9, 0x21, 0xc2, 0x6b, + 0x60, 0xc2, 0x25, 0xd8, 0xb3, 0x2d, 0x7e, 0x2c, 0x34, 0xe3, 0xa1, 0x20, 0xde, 0x8a, 0x84, 0x15, + 0x5e, 0x07, 0x93, 0x26, 0xf1, 0x3c, 0x3c, 0x20, 0xfc, 0x04, 0x68, 0x76, 0x67, 0x05, 0x70, 0x72, + 0x3b, 0x68, 0x46, 0xa1, 0x1d, 0x7e, 0x02, 0x66, 0x0c, 0xec, 0x89, 0x74, 0xdc, 0xd7, 0x4d, 0xc2, + 0xf7, 0xf8, 0xd4, 0xda, 0x9b, 0xe5, 0xd6, 0x9e, 0x79, 0xc4, 0x75, 0x6c, 0x4b, 0x62, 0x42, 0x29, + 0x66, 0x38, 0x04, 0x90, 0xb5, 0xec, 0xbb, 0xd8, 0xf2, 0x82, 0x89, 0x62, 0xfd, 0x4d, 0x9e, 0xb9, + 0xbf, 0xe8, 0x3c, 0xdb, 0xca, 0xb0, 0xa1, 0x9c, 0x1e, 0xd4, 0x3f, 0x2a, 0x60, 0x26, 0x5e, 0xa6, + 0x0b, 0xd0, 0x4b, 0xf7, 0x65, 0xbd, 0xf4, 0x5a, 0x89, 0xe4, 0x2c, 0x10, 0x4c, 0x5f, 0xd4, 0x92, + 0xa1, 0x73, 0xc5, 0xb4, 0x0a, 0x1a, 0x2e, 0x71, 0x0c, 0xbd, 0x87, 0x3d, 0x51, 0x0e, 0xb9, 0xf8, + 0x41, 0xa2, 0x0d, 0x45, 0x56, 0x49, 0x5b, 0x55, 0x5e, 0xae, 0xb6, 0xaa, 0xbe, 0x18, 0x6d, 0xf5, + 0x13, 0xd0, 0xf0, 0x42, 0x55, 0x55, 0xe3, 0x94, 0x37, 0x4a, 0x6d, 0x6c, 0x21, 0xa8, 0x22, 0xea, + 0x48, 0x4a, 0x45, 0x74, 0x79, 0x22, 0xaa, 0x7e, 0x46, 0x11, 0xf5, 0x42, 0x85, 0x0f, 0xdb, 0xcc, + 0x0e, 0xf6, 0x3d, 0xd2, 0xe7, 0x3b, 0xa0, 0x11, 0x6f, 0xe6, 0x5d, 0xde, 0x8a, 0x84, 0x15, 0x1e, + 0x80, 0x45, 0xc7, 0xb5, 0x07, 0x2e, 0xf1, 0xbc, 0x4d, 0x82, 0xfb, 0x86, 0x6e, 0x91, 0x70, 0x00, + 0x4d, 0xde, 0xf1, 0xd5, 0xf1, 0xc9, 0xf2, 0xe2, 0x6e, 0x3e, 0x04, 0x15, 0xf9, 0xaa, 0x7f, 0xa9, + 0x81, 0xcb, 0xe9, 0xb3, 0xb1, 0x40, 0x45, 0x28, 0xe7, 0x52, 0x11, 0x6f, 0x25, 0xf2, 0x34, 0x90, + 0x58, 0xd1, 0xf2, 0xe4, 0xe4, 0xea, 0x3a, 0x98, 0x15, 0xaa, 0x21, 0x34, 0x0a, 0x1d, 0x15, 0x2d, + 0xcf, 0x81, 0x6c, 0x46, 0x69, 0x3c, 0xd3, 0x06, 0x71, 0xc9, 0x0f, 0x49, 0x6a, 0xb2, 0x36, 0x58, + 0x4f, 0x03, 0x50, 0xd6, 0x07, 0x6e, 0x83, 0x39, 0xdf, 0xca, 0x52, 0x05, 0xe9, 0x72, 0x55, 0x50, + 0xcd, 0x1d, 0x64, 0x21, 0x28, 0xcf, 0x0f, 0x3e, 0x06, 0xa0, 0x17, 0x1e, 0xe8, 0x5e, 0x6b, 0x82, + 0x1f, 0x09, 0x6f, 0x95, 0x48, 0xeb, 0xa8, 0x0a, 0xc4, 0x65, 0x35, 0x6a, 0xf2, 0x50, 0x82, 0x13, + 0xde, 0x05, 0xd3, 0x2e, 0x97, 0x84, 0x61, 0xa8, 0x81, 0xac, 0xfa, 0x8e, 0x70, 0x9b, 0x46, 0x49, + 0x23, 0x92, 0xb1, 0x39, 0x4a, 0xa8, 0x51, 0x5a, 0x09, 0xfd, 0x59, 0x01, 0x30, 0xbb, 0x0f, 0xe1, + 0x1d, 0xa9, 0x64, 0x5e, 0x4b, 0x95, 0xcc, 0x85, 0xac, 0x47, 0xa2, 0x62, 0xea, 0xf9, 0xfa, 0xe7, + 0x56, 0x49, 0xfd, 0x13, 0x1f, 0xa8, 0xe5, 0x04, 0x90, 0x98, 0x86, 0x8b, 0x79, 0x53, 0x28, 0x2b, + 0x80, 0xe2, 0xa0, 0x5e, 0x80, 0x00, 0x4a, 0x90, 0x3d, 0x5f, 0x00, 0xfd, 0xbb, 0x02, 0xe6, 0x62, + 0x70, 0x69, 0x01, 0x94, 0xe3, 0xf2, 0xd2, 0x04, 0x50, 0xbe, 0x82, 0xa8, 0xbe, 0x6c, 0x05, 0xf1, + 0x12, 0x84, 0x17, 0x17, 0x25, 0xf1, 0xd4, 0x7d, 0x93, 0x44, 0x49, 0x1c, 0x55, 0x81, 0x28, 0xf9, + 0x5d, 0x25, 0x19, 0xfa, 0xb7, 0x5e, 0x94, 0xfc, 0xef, 0xcf, 0x2f, 0xea, 0xdf, 0xaa, 0xe0, 0x72, + 0x7a, 0x1f, 0x4a, 0x05, 0x52, 0x39, 0xb5, 0x40, 0xee, 0x82, 0xf9, 0x27, 0xbe, 0x61, 0x8c, 0xf8, + 0x34, 0x24, 0xaa, 0x64, 0x50, 0x5a, 0xbf, 0x2b, 0x3c, 0xe7, 0x7f, 0x9c, 0x83, 0x41, 0xb9, 0x9e, + 0x05, 0xc5, 0xbe, 0x7a, 0xae, 0x62, 0x9f, 0xa9, 0x40, 0xb5, 0x33, 0x54, 0xa0, 0xdc, 0xc2, 0x5d, + 0x3f, 0x47, 0xe1, 0x3e, 0x5b, 0xa5, 0xcd, 0x39, 0xb8, 0x4e, 0xab, 0xb4, 0xea, 0x2f, 0x15, 0xb0, + 0x90, 0x7f, 0xe1, 0x86, 0x06, 0x98, 0x31, 0xf1, 0xa7, 0xc9, 0x77, 0x89, 0xd3, 0x8a, 0x88, 0x4f, + 0x75, 0x43, 0x0b, 0x9e, 0xbb, 0xb5, 0x07, 0x16, 0x7d, 0xe8, 0xee, 0x51, 0x57, 0xb7, 0x06, 0x41, + 0xe5, 0xdd, 0x96, 0xb8, 0x50, 0x8a, 0x5b, 0xfd, 0x4a, 0x01, 0x8b, 0x05, 0x95, 0xef, 0x62, 0x23, + 0x81, 0x1f, 0x83, 0x86, 0x89, 0x3f, 0xdd, 0xf3, 0xdd, 0x41, 0x5e, 0xad, 0x2e, 0xd7, 0x0f, 0xdf, + 0xcd, 0xdb, 0x82, 0x05, 0x45, 0x7c, 0xea, 0x43, 0xb0, 0x22, 0x0d, 0x92, 0xed, 0x1c, 0xf2, 0xc4, + 0x37, 0xf8, 0x26, 0x12, 0x62, 0xe3, 0x06, 0x68, 0x3a, 0xd8, 0xa5, 0x7a, 0x24, 0x55, 0xeb, 0xdd, + 0xe9, 0xf1, 0xc9, 0x72, 0x73, 0x37, 0x6c, 0x44, 0xb1, 0x5d, 0xfd, 0x8f, 0x02, 0xea, 0x7b, 0x3d, + 0x6c, 0x90, 0x0b, 0xa8, 0xf6, 0x9b, 0x52, 0xb5, 0x2f, 0x7e, 0x34, 0xe7, 0xf1, 0x14, 0x16, 0xfa, + 0xad, 0x54, 0xa1, 0x7f, 0xfd, 0x14, 0x9e, 0xe7, 0xd7, 0xf8, 0x0f, 0x40, 0x33, 0xea, 0xee, 0x6c, + 0x07, 0x90, 0xfa, 0xdb, 0x0a, 0x98, 0x4a, 0x74, 0x71, 0xc6, 0xe3, 0xeb, 0xb1, 0x74, 0xec, 0xb3, + 0x8d, 0xb9, 0x56, 0x66, 0x20, 0x5a, 0x78, 0xc4, 0xff, 0xc8, 0xa2, 0x6e, 0xf2, 0x82, 0x97, 0x3d, + 0xf9, 0xbf, 0x0f, 0x66, 0x28, 0x76, 0x07, 0x84, 0x86, 0x36, 0x3e, 0x61, 0xcd, 0xf8, 0x75, 0x62, + 0x5f, 0xb2, 0xa2, 0x14, 0x7a, 0xe9, 0x2e, 0x98, 0x96, 0x3a, 0x83, 0x97, 0x41, 0xf5, 0x98, 0x8c, + 0x02, 0xd9, 0x83, 0xd8, 0x4f, 0x38, 0x0f, 0xea, 0x43, 0x6c, 0xf8, 0x41, 0x9e, 0x37, 0x51, 0xf0, + 0xe7, 0x4e, 0xe5, 0x7d, 0x45, 0xfd, 0x0d, 0x9b, 0x9c, 0x38, 0x39, 0x2f, 0x20, 0xbb, 0x3e, 0x94, + 0xb2, 0xab, 0xf8, 0x9b, 0x52, 0x72, 0xcb, 0x14, 0xe5, 0x18, 0x4a, 0xe5, 0xd8, 0x9b, 0xa5, 0xd8, + 0x9e, 0x9f, 0x69, 0x7f, 0x52, 0xc0, 0x6c, 0x02, 0x7d, 0x01, 0x02, 0xe7, 0x81, 0x2c, 0x70, 0x5e, + 0x2f, 0x33, 0x88, 0x02, 0x85, 0xf3, 0xf7, 0xba, 0x14, 0xfc, 0xb7, 0x5e, 0xe2, 0xfc, 0x1c, 0xcc, + 0x0f, 0x6d, 0xc3, 0x37, 0xc9, 0x86, 0x81, 0x75, 0x33, 0x04, 0xb0, 0x2a, 0x5e, 0x4d, 0xdf, 0x2d, + 0x22, 0x7a, 0xe2, 0x7a, 0xba, 0x47, 0x89, 0x45, 0x1f, 0xc5, 0x9e, 0xb1, 0x0e, 0x79, 0x94, 0x43, + 0x87, 0x72, 0x3b, 0x81, 0xef, 0x82, 0x29, 0xa6, 0x27, 0xf4, 0x1e, 0xd9, 0xc1, 0x66, 0x28, 0x9c, + 0xa3, 0x2f, 0x1e, 0x7b, 0xb1, 0x09, 0x25, 0x71, 0xf0, 0x08, 0xcc, 0x39, 0x76, 0x7f, 0x1b, 0x5b, + 0x78, 0x40, 0x58, 0xd9, 0xdb, 0xe5, 0xdf, 0xc4, 0xf9, 0x63, 0x4c, 0xb3, 0xfb, 0x5e, 0x78, 0x4b, + 0xdf, 0xcd, 0x42, 0xd8, 0xa5, 0x25, 0xa7, 0x99, 0x5f, 0x5a, 0xf2, 0x28, 0xa1, 0x9b, 0xf9, 0xe2, + 0x17, 0xbc, 0x59, 0xae, 0x95, 0xc9, 0xb0, 0x73, 0x7e, 0xf3, 0x2b, 0x7a, 0x6b, 0x6a, 0x9c, 0xeb, + 0x23, 0xdb, 0x3f, 0xab, 0xe0, 0x4a, 0x66, 0xeb, 0xfe, 0x1f, 0x5f, 0x7b, 0x32, 0x72, 0xb1, 0x7a, + 0x06, 0xb9, 0xb8, 0x0e, 0x66, 0xc5, 0xf7, 0xbd, 0x94, 0xda, 0x8c, 0xf4, 0xf8, 0x86, 0x6c, 0x46, + 0x69, 0x7c, 0xde, 0x6b, 0x53, 0xfd, 0x8c, 0xaf, 0x4d, 0xc9, 0x28, 0x82, 0x19, 0x17, 0xa9, 0x97, + 0x8d, 0x22, 0x30, 0xa3, 0x34, 0x9e, 0x55, 0xac, 0x80, 0x35, 0x62, 0x98, 0x94, 0x2b, 0xd6, 0x81, + 0x64, 0x45, 0x29, 0xb4, 0xfa, 0x0f, 0x05, 0xbc, 0x5a, 0x98, 0x69, 0x70, 0x5d, 0xba, 0xb6, 0xdf, + 0x4c, 0x5d, 0xdb, 0xbf, 0x57, 0xe8, 0x98, 0xb8, 0xbc, 0xbb, 0xf9, 0x6f, 0x31, 0x1f, 0x94, 0x7b, + 0x8b, 0xc9, 0x11, 0x6b, 0xa7, 0x3f, 0xca, 0x74, 0x6f, 0x3e, 0x7d, 0xd6, 0xbe, 0xf4, 0xf9, 0xb3, + 0xf6, 0xa5, 0x2f, 0x9f, 0xb5, 0x2f, 0xfd, 0x62, 0xdc, 0x56, 0x9e, 0x8e, 0xdb, 0xca, 0xe7, 0xe3, + 0xb6, 0xf2, 0xe5, 0xb8, 0xad, 0xfc, 0x6b, 0xdc, 0x56, 0x3e, 0xfb, 0xaa, 0x7d, 0xe9, 0xe3, 0x49, + 0xd1, 0xe3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x86, 0x7b, 0x61, 0x7b, 0xc4, 0x23, 0x00, 0x00, +} diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.proto b/staging/src/k8s.io/api/apps/v1beta2/generated.proto new file mode 100644 index 00000000000..79c1f7589d7 --- /dev/null +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.proto @@ -0,0 +1,681 @@ +/* +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. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.api.apps.v1beta2; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/api/policy/v1beta1/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1beta2"; + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DaemonSet represents the configuration of a daemon set. +message DaemonSet { + // Standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // The desired behavior of this daemon set. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional DaemonSetSpec spec = 2; + + // The current status of this daemon set. This data may be + // out of date by some window of time. + // Populated by the system. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional DaemonSetStatus status = 3; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DaemonSetList is a collection of daemon sets. +message DaemonSetList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // A list of daemon sets. + repeated DaemonSet items = 2; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DaemonSetSpec is the specification of a daemon set. +message DaemonSetSpec { + // A label query over pods that are managed by the daemon set. + // Must match in order to be controlled. + // If empty, defaulted to labels on Pod template. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 1; + + // An object that describes the pod that will be created. + // The DaemonSet will create exactly one copy of this pod on every node + // that matches the template's node selector (or on every node if no node + // selector is specified). + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template + optional k8s.io.api.core.v1.PodTemplateSpec template = 2; + + // An update strategy to replace existing DaemonSet pods with new pods. + // +optional + optional DaemonSetUpdateStrategy updateStrategy = 3; + + // The minimum number of seconds for which a newly created DaemonSet pod should + // be ready without any of its container crashing, for it to be considered + // available. Defaults to 0 (pod will be considered available as soon as it + // is ready). + // +optional + optional int32 minReadySeconds = 4; + + // DEPRECATED. + // A sequence number representing a specific generation of the template. + // Populated by the system. It can be set only during the creation. + // +optional + optional int64 templateGeneration = 5; + + // The number of old history to retain to allow rollback. + // This is a pointer to distinguish between explicit zero and not specified. + // Defaults to 10. + // +optional + optional int32 revisionHistoryLimit = 6; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DaemonSetStatus represents the current status of a daemon set. +message DaemonSetStatus { + // The number of nodes that are running at least 1 + // daemon pod and are supposed to run the daemon pod. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ + optional int32 currentNumberScheduled = 1; + + // The number of nodes that are running the daemon pod, but are + // not supposed to run the daemon pod. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ + optional int32 numberMisscheduled = 2; + + // The total number of nodes that should be running the daemon + // pod (including nodes correctly running the daemon pod). + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/ + optional int32 desiredNumberScheduled = 3; + + // The number of nodes that should be running the daemon pod and have one + // or more of the daemon pod running and ready. + optional int32 numberReady = 4; + + // The most recent generation observed by the daemon set controller. + // +optional + optional int64 observedGeneration = 5; + + // The total number of nodes that are running updated daemon pod + // +optional + optional int32 updatedNumberScheduled = 6; + + // The number of nodes that should be running the + // daemon pod and have one or more of the daemon pod running and + // available (ready for at least spec.minReadySeconds) + // +optional + optional int32 numberAvailable = 7; + + // The number of nodes that should be running the + // daemon pod and have none of the daemon pod running and available + // (ready for at least spec.minReadySeconds) + // +optional + optional int32 numberUnavailable = 8; + + // Count of hash collisions for the DaemonSet. The DaemonSet controller + // uses this field as a collision avoidance mechanism when it needs to + // create the name for the newest ControllerRevision. + // +optional + optional int64 collisionCount = 9; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +message DaemonSetUpdateStrategy { + // Type of daemon set update. Can be "RollingUpdate" or "OnDelete". + // Default is OnDelete. + // +optional + optional string type = 1; + + // Rolling update config params. Present only if type = "RollingUpdate". + // --- + // TODO: Update this to follow our convention for oneOf, whatever we decide it + // to be. Same as Deployment `strategy.rollingUpdate`. + // See https://github.com/kubernetes/kubernetes/issues/35345 + // +optional + optional RollingUpdateDaemonSet rollingUpdate = 2; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// Deployment enables declarative updates for Pods and ReplicaSets. +message Deployment { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the desired behavior of the Deployment. + // +optional + optional DeploymentSpec spec = 2; + + // Most recently observed status of the Deployment. + // +optional + optional DeploymentStatus status = 3; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DeploymentCondition describes the state of a deployment at a certain point. +message DeploymentCondition { + // Type of deployment condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // The last time this condition was updated. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 6; + + // Last time the condition transitioned from one status to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 7; + + // The reason for the condition's last transition. + optional string reason = 4; + + // A human readable message indicating details about the transition. + optional string message = 5; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DeploymentList is a list of Deployments. +message DeploymentList { + // Standard list metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Deployments. + repeated Deployment items = 2; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DeploymentSpec is the specification of the desired behavior of the Deployment. +message DeploymentSpec { + // Number of desired pods. This is a pointer to distinguish between explicit + // zero and not specified. Defaults to 1. + // +optional + optional int32 replicas = 1; + + // Label selector for pods. Existing ReplicaSets whose pods are + // selected by this will be the ones affected by this deployment. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // Template describes the pods that will be created. + optional k8s.io.api.core.v1.PodTemplateSpec template = 3; + + // The deployment strategy to use to replace existing pods with new ones. + // +optional + optional DeploymentStrategy strategy = 4; + + // Minimum number of seconds for which a newly created pod should be ready + // without any of its container crashing, for it to be considered available. + // Defaults to 0 (pod will be considered available as soon as it is ready) + // +optional + optional int32 minReadySeconds = 5; + + // The number of old ReplicaSets to retain to allow rollback. + // This is a pointer to distinguish between explicit zero and not specified. + // Defaults to 10. + // +optional + optional int32 revisionHistoryLimit = 6; + + // Indicates that the deployment is paused. + // +optional + optional bool paused = 7; + + // The maximum time in seconds for a deployment to make progress before it + // is considered to be failed. The deployment controller will continue to + // process failed deployments and a condition with a ProgressDeadlineExceeded + // reason will be surfaced in the deployment status. Once autoRollback is + // implemented, the deployment controller will automatically rollback failed + // deployments. Note that progress will not be estimated during the time a + // deployment is paused. Defaults to 600s. + optional int32 progressDeadlineSeconds = 9; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DeploymentStatus is the most recently observed status of the Deployment. +message DeploymentStatus { + // The generation observed by the deployment controller. + // +optional + optional int64 observedGeneration = 1; + + // Total number of non-terminated pods targeted by this deployment (their labels match the selector). + // +optional + optional int32 replicas = 2; + + // Total number of non-terminated pods targeted by this deployment that have the desired template spec. + // +optional + optional int32 updatedReplicas = 3; + + // Total number of ready pods targeted by this deployment. + // +optional + optional int32 readyReplicas = 7; + + // Total number of available pods (ready for at least minReadySeconds) targeted by this deployment. + // +optional + optional int32 availableReplicas = 4; + + // Total number of unavailable pods targeted by this deployment. + // +optional + optional int32 unavailableReplicas = 5; + + // Represents the latest available observations of a deployment's current state. + // +patchMergeKey=type + // +patchStrategy=merge + repeated DeploymentCondition conditions = 6; + + // Count of hash collisions for the Deployment. The Deployment controller uses this + // field as a collision avoidance mechanism when it needs to create the name for the + // newest ReplicaSet. + // +optional + optional int64 collisionCount = 8; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// DeploymentStrategy describes how to replace existing pods with new ones. +message DeploymentStrategy { + // Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate. + // +optional + optional string type = 1; + + // Rolling update config params. Present only if DeploymentStrategyType = + // RollingUpdate. + // --- + // TODO: Update this to follow our convention for oneOf, whatever we decide it + // to be. + // +optional + optional RollingUpdateDeployment rollingUpdate = 2; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// ReplicaSet represents the configuration of a ReplicaSet. +message ReplicaSet { + // If the Labels of a ReplicaSet are empty, they are defaulted to + // be the same as the Pod(s) that the ReplicaSet manages. + // Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the specification of the desired behavior of the ReplicaSet. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional ReplicaSetSpec spec = 2; + + // Status is the most recently observed status of the ReplicaSet. + // This data may be out of date by some window of time. + // Populated by the system. + // Read-only. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status + // +optional + optional ReplicaSetStatus status = 3; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// ReplicaSetCondition describes the state of a replica set at a certain point. +message ReplicaSetCondition { + // Type of replica set condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // The last time the condition transitioned from one status to another. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // The reason for the condition's last transition. + // +optional + optional string reason = 4; + + // A human readable message indicating details about the transition. + // +optional + optional string message = 5; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// ReplicaSetList is a collection of ReplicaSets. +message ReplicaSetList { + // Standard list metadata. + // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // List of ReplicaSets. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller + repeated ReplicaSet items = 2; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// ReplicaSetSpec is the specification of a ReplicaSet. +message ReplicaSetSpec { + // Replicas is the number of desired replicas. + // This is a pointer to distinguish between explicit zero and unspecified. + // Defaults to 1. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller + // +optional + optional int32 replicas = 1; + + // Minimum number of seconds for which a newly created pod should be ready + // without any of its container crashing, for it to be considered available. + // Defaults to 0 (pod will be considered available as soon as it is ready) + // +optional + optional int32 minReadySeconds = 4; + + // Selector is a label query over pods that should match the replica count. + // If the selector is empty, it is defaulted to the labels present on the pod template. + // Label keys and values that must match in order to be controlled by this replica set. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // Template is the object that describes the pod that will be created if + // insufficient replicas are detected. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template + // +optional + optional k8s.io.api.core.v1.PodTemplateSpec template = 3; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// ReplicaSetStatus represents the current status of a ReplicaSet. +message ReplicaSetStatus { + // Replicas is the most recently oberved number of replicas. + // More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller + optional int32 replicas = 1; + + // The number of pods that have labels matching the labels of the pod template of the replicaset. + // +optional + optional int32 fullyLabeledReplicas = 2; + + // The number of ready replicas for this replica set. + // +optional + optional int32 readyReplicas = 4; + + // The number of available replicas (ready for at least minReadySeconds) for this replica set. + // +optional + optional int32 availableReplicas = 5; + + // ObservedGeneration reflects the generation of the most recently observed ReplicaSet. + // +optional + optional int64 observedGeneration = 3; + + // Represents the latest available observations of a replica set's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated ReplicaSetCondition conditions = 6; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// Spec to control the desired behavior of daemon set rolling update. +message RollingUpdateDaemonSet { + // The maximum number of DaemonSet pods that can be unavailable during the + // update. Value can be an absolute number (ex: 5) or a percentage of total + // number of DaemonSet pods at the start of the update (ex: 10%). Absolute + // number is calculated from percentage by rounding up. + // This cannot be 0. + // Default value is 1. + // Example: when this is set to 30%, at most 30% of the total number of nodes + // that should be running the daemon pod (i.e. status.desiredNumberScheduled) + // can have their pods stopped for an update at any given + // time. The update starts by stopping at most 30% of those DaemonSet pods + // and then brings up new DaemonSet pods in their place. Once the new pods + // are available, it then proceeds onto other DaemonSet pods, thus ensuring + // that at least 70% of original number of DaemonSet pods are available at + // all times during the update. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// Spec to control the desired behavior of rolling update. +message RollingUpdateDeployment { + // The maximum number of pods that can be unavailable during the update. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // Absolute number is calculated from percentage by rounding down. + // This can not be 0 if MaxSurge is 0. + // Defaults to 25%. + // Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods + // immediately when the rolling update starts. Once new pods are ready, old RC + // can be scaled down further, followed by scaling up the new RC, ensuring + // that the total number of pods available at all times during the update is at + // least 70% of desired pods. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 1; + + // The maximum number of pods that can be scheduled above the desired number of + // pods. + // Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). + // This can not be 0 if MaxUnavailable is 0. + // Absolute number is calculated from percentage by rounding up. + // Defaults to 25%. + // Example: when this is set to 30%, the new RC can be scaled up immediately when + // the rolling update starts, such that the total number of old and new pods do not exceed + // 130% of desired pods. Once old pods have been killed, + // new RC can be scaled up further, ensuring that total number of pods running + // at any time during the update is atmost 130% of desired pods. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 2; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. +message RollingUpdateStatefulSetStrategy { + // Partition indicates the ordinal at which the StatefulSet should be + // partitioned. + optional int32 partition = 1; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// Scale represents a scaling request for a resource. +message Scale { + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. + // +optional + optional ScaleSpec spec = 2; + + // current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only. + // +optional + optional ScaleStatus status = 3; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// ScaleSpec describes the attributes of a scale subresource +message ScaleSpec { + // desired number of instances for the scaled object. + // +optional + optional int32 replicas = 1; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// ScaleStatus represents the current status of a scale subresource. +message ScaleStatus { + // actual number of observed instances of the scaled object. + optional int32 replicas = 1; + + // label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors + // +optional + map selector = 2; + + // label selector for pods that should match the replicas count. This is a serializated + // version of both map-based and more expressive set-based selectors. This is done to + // avoid introspection in the clients. The string will be in the same format as the + // query-param syntax. If the target type only supports map-based selectors, both this + // field and map-based selector field are populated. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + // +optional + optional string targetSelector = 3; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// StatefulSet represents a set of pods with consistent identities. +// Identities are defined as: +// - Network: A single stable DNS and hostname. +// - Storage: As many VolumeClaims as requested. +// The StatefulSet guarantees that a given network identity will always +// map to the same storage identity. +message StatefulSet { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the desired identities of pods in this set. + // +optional + optional StatefulSetSpec spec = 2; + + // Status is the current status of Pods in this StatefulSet. This data + // may be out of date by some window of time. + // +optional + optional StatefulSetStatus status = 3; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// StatefulSetList is a collection of StatefulSets. +message StatefulSetList { + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + repeated StatefulSet items = 2; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// A StatefulSetSpec is the specification of a StatefulSet. +message StatefulSetSpec { + // replicas is the desired number of replicas of the given Template. + // These are replicas in the sense that they are instantiations of the + // same Template, but individual replicas also have a consistent identity. + // If unspecified, defaults to 1. + // TODO: Consider a rename of this field. + // +optional + optional int32 replicas = 1; + + // selector is a label query over pods that should match the replica count. + // If empty, defaulted to labels on the pod template. + // More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 2; + + // template is the object that describes the pod that will be created if + // insufficient replicas are detected. Each pod stamped out by the StatefulSet + // will fulfill this Template, but have a unique identity from the rest + // of the StatefulSet. + optional k8s.io.api.core.v1.PodTemplateSpec template = 3; + + // volumeClaimTemplates is a list of claims that pods are allowed to reference. + // The StatefulSet controller is responsible for mapping network identities to + // claims in a way that maintains the identity of a pod. Every claim in + // this list must have at least one matching (by name) volumeMount in one + // container in the template. A claim in this list takes precedence over + // any volumes in the template, with the same name. + // TODO: Define the behavior if a claim already exists with the same name. + // +optional + repeated k8s.io.api.core.v1.PersistentVolumeClaim volumeClaimTemplates = 4; + + // serviceName is the name of the service that governs this StatefulSet. + // This service must exist before the StatefulSet, and is responsible for + // the network identity of the set. Pods get DNS/hostnames that follow the + // pattern: pod-specific-string.serviceName.default.svc.cluster.local + // where "pod-specific-string" is managed by the StatefulSet controller. + optional string serviceName = 5; + + // podManagementPolicy controls how pods are created during initial scale up, + // when replacing pods on nodes, or when scaling down. The default policy is + // `OrderedReady`, where pods are created in increasing order (pod-0, then + // pod-1, etc) and the controller will wait until each pod is ready before + // continuing. When scaling down, the pods are removed in the opposite order. + // The alternative policy is `Parallel` which will create pods in parallel + // to match the desired scale without waiting, and on scale down will delete + // all pods at once. + // +optional + optional string podManagementPolicy = 6; + + // updateStrategy indicates the StatefulSetUpdateStrategy that will be + // employed to update Pods in the StatefulSet when a revision is made to + // Template. + optional StatefulSetUpdateStrategy updateStrategy = 7; + + // revisionHistoryLimit is the maximum number of revisions that will + // be maintained in the StatefulSet's revision history. The revision history + // consists of all revisions not represented by a currently applied + // StatefulSetSpec version. The default value is 10. + optional int32 revisionHistoryLimit = 8; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// StatefulSetStatus represents the current state of a StatefulSet. +message StatefulSetStatus { + // observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the + // StatefulSet's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 1; + + // replicas is the number of Pods created by the StatefulSet controller. + optional int32 replicas = 2; + + // readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition. + optional int32 readyReplicas = 3; + + // currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version + // indicated by currentRevision. + optional int32 currentReplicas = 4; + + // updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version + // indicated by updateRevision. + optional int32 updatedReplicas = 5; + + // currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the + // sequence [0,currentReplicas). + optional string currentRevision = 6; + + // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence + // [replicas-updatedReplicas,replicas) + optional string updateRevision = 7; +} + +// WIP: This is not ready to be used and we plan to make breaking changes to it. +// StatefulSetUpdateStrategy indicates the strategy that the StatefulSet +// controller will use to perform updates. It includes any additional parameters +// necessary to perform the update for the indicated strategy. +message StatefulSetUpdateStrategy { + // Type indicates the type of the StatefulSetUpdateStrategy. + optional string type = 1; + + // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. + optional RollingUpdateStatefulSetStrategy rollingUpdate = 2; +} + diff --git a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go new file mode 100644 index 00000000000..fc29ef341c9 --- /dev/null +++ b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -0,0 +1,347 @@ +/* +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 v1beta2 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE +var map_DaemonSet = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSet represents the configuration of a daemon set.", + "metadata": "Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "status": "The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", +} + +func (DaemonSet) SwaggerDoc() map[string]string { + return map_DaemonSet +} + +var map_DaemonSetList = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetList is a collection of daemon sets.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "items": "A list of daemon sets.", +} + +func (DaemonSetList) SwaggerDoc() map[string]string { + return map_DaemonSetList +} + +var map_DaemonSetSpec = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetSpec is the specification of a daemon set.", + "selector": "A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "template": "An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template's node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", + "updateStrategy": "An update strategy to replace existing DaemonSet pods with new pods.", + "minReadySeconds": "The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).", + "templateGeneration": "DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.", + "revisionHistoryLimit": "The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", +} + +func (DaemonSetSpec) SwaggerDoc() map[string]string { + return map_DaemonSetSpec +} + +var map_DaemonSetStatus = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DaemonSetStatus represents the current status of a daemon set.", + "currentNumberScheduled": "The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "numberMisscheduled": "The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod. More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "desiredNumberScheduled": "The total number of nodes that should be running the daemon pod (including nodes correctly running the daemon pod). More info: https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/", + "numberReady": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready.", + "observedGeneration": "The most recent generation observed by the daemon set controller.", + "updatedNumberScheduled": "The total number of nodes that are running updated daemon pod", + "numberAvailable": "The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "numberUnavailable": "The number of nodes that should be running the daemon pod and have none of the daemon pod running and available (ready for at least spec.minReadySeconds)", + "collisionCount": "Count of hash collisions for the DaemonSet. The DaemonSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", +} + +func (DaemonSetStatus) SwaggerDoc() map[string]string { + return map_DaemonSetStatus +} + +var map_DaemonSetUpdateStrategy = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it.", + "type": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.", + "rollingUpdate": "Rolling update config params. Present only if type = \"RollingUpdate\".", +} + +func (DaemonSetUpdateStrategy) SwaggerDoc() map[string]string { + return map_DaemonSetUpdateStrategy +} + +var map_Deployment = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Deployment enables declarative updates for Pods and ReplicaSets.", + "metadata": "Standard object metadata.", + "spec": "Specification of the desired behavior of the Deployment.", + "status": "Most recently observed status of the Deployment.", +} + +func (Deployment) SwaggerDoc() map[string]string { + return map_Deployment +} + +var map_DeploymentCondition = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentCondition describes the state of a deployment at a certain point.", + "type": "Type of deployment condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastUpdateTime": "The last time this condition was updated.", + "lastTransitionTime": "Last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (DeploymentCondition) SwaggerDoc() map[string]string { + return map_DeploymentCondition +} + +var map_DeploymentList = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentList is a list of Deployments.", + "metadata": "Standard list metadata.", + "items": "Items is the list of Deployments.", +} + +func (DeploymentList) SwaggerDoc() map[string]string { + return map_DeploymentList +} + +var map_DeploymentSpec = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentSpec is the specification of the desired behavior of the Deployment.", + "replicas": "Number of desired pods. This is a pointer to distinguish between explicit zero and not specified. Defaults to 1.", + "selector": "Label selector for pods. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment.", + "template": "Template describes the pods that will be created.", + "strategy": "The deployment strategy to use to replace existing pods with new ones.", + "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "revisionHistoryLimit": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.", + "paused": "Indicates that the deployment is paused.", + "progressDeadlineSeconds": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. Defaults to 600s.", +} + +func (DeploymentSpec) SwaggerDoc() map[string]string { + return map_DeploymentSpec +} + +var map_DeploymentStatus = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStatus is the most recently observed status of the Deployment.", + "observedGeneration": "The generation observed by the deployment controller.", + "replicas": "Total number of non-terminated pods targeted by this deployment (their labels match the selector).", + "updatedReplicas": "Total number of non-terminated pods targeted by this deployment that have the desired template spec.", + "readyReplicas": "Total number of ready pods targeted by this deployment.", + "availableReplicas": "Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.", + "unavailableReplicas": "Total number of unavailable pods targeted by this deployment.", + "conditions": "Represents the latest available observations of a deployment's current state.", + "collisionCount": "Count of hash collisions for the Deployment. The Deployment controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ReplicaSet.", +} + +func (DeploymentStatus) SwaggerDoc() map[string]string { + return map_DeploymentStatus +} + +var map_DeploymentStrategy = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. DeploymentStrategy describes how to replace existing pods with new ones.", + "type": "Type of deployment. Can be \"Recreate\" or \"RollingUpdate\". Default is RollingUpdate.", + "rollingUpdate": "Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.", +} + +func (DeploymentStrategy) SwaggerDoc() map[string]string { + return map_DeploymentStrategy +} + +var map_ReplicaSet = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSet represents the configuration of a ReplicaSet.", + "metadata": "If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata", + "spec": "Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", + "status": "Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status", +} + +func (ReplicaSet) SwaggerDoc() map[string]string { + return map_ReplicaSet +} + +var map_ReplicaSetCondition = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetCondition describes the state of a replica set at a certain point.", + "type": "Type of replica set condition.", + "status": "Status of the condition, one of True, False, Unknown.", + "lastTransitionTime": "The last time the condition transitioned from one status to another.", + "reason": "The reason for the condition's last transition.", + "message": "A human readable message indicating details about the transition.", +} + +func (ReplicaSetCondition) SwaggerDoc() map[string]string { + return map_ReplicaSetCondition +} + +var map_ReplicaSetList = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetList is a collection of ReplicaSets.", + "metadata": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "items": "List of ReplicaSets. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller", +} + +func (ReplicaSetList) SwaggerDoc() map[string]string { + return map_ReplicaSetList +} + +var map_ReplicaSetSpec = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetSpec is the specification of a ReplicaSet.", + "replicas": "Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", + "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", + "selector": "Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "template": "Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template", +} + +func (ReplicaSetSpec) SwaggerDoc() map[string]string { + return map_ReplicaSetSpec +} + +var map_ReplicaSetStatus = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ReplicaSetStatus represents the current status of a ReplicaSet.", + "replicas": "Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller", + "fullyLabeledReplicas": "The number of pods that have labels matching the labels of the pod template of the replicaset.", + "readyReplicas": "The number of ready replicas for this replica set.", + "availableReplicas": "The number of available replicas (ready for at least minReadySeconds) for this replica set.", + "observedGeneration": "ObservedGeneration reflects the generation of the most recently observed ReplicaSet.", + "conditions": "Represents the latest available observations of a replica set's current state.", +} + +func (ReplicaSetStatus) SwaggerDoc() map[string]string { + return map_ReplicaSetStatus +} + +var map_RollingUpdateDaemonSet = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of daemon set rolling update.", + "maxUnavailable": "The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.", +} + +func (RollingUpdateDaemonSet) SwaggerDoc() map[string]string { + return map_RollingUpdateDaemonSet +} + +var map_RollingUpdateDeployment = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Spec to control the desired behavior of rolling update.", + "maxUnavailable": "The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. Example: when this is set to 30%, the old RC can be scaled down to 70% of desired pods immediately when the rolling update starts. Once new pods are ready, old RC can be scaled down further, followed by scaling up the new RC, ensuring that the total number of pods available at all times during the update is at least 70% of desired pods.", + "maxSurge": "The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. Example: when this is set to 30%, the new RC can be scaled up immediately when the rolling update starts, such that the total number of old and new pods do not exceed 130% of desired pods. Once old pods have been killed, new RC can be scaled up further, ensuring that total number of pods running at any time during the update is atmost 130% of desired pods.", +} + +func (RollingUpdateDeployment) SwaggerDoc() map[string]string { + return map_RollingUpdateDeployment +} + +var map_RollingUpdateStatefulSetStrategy = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", + "partition": "Partition indicates the ordinal at which the StatefulSet should be partitioned.", +} + +func (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string { + return map_RollingUpdateStatefulSetStrategy +} + +var map_Scale = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. Scale represents a scaling request for a resource.", + "metadata": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.", + "spec": "defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.", + "status": "current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.", +} + +func (Scale) SwaggerDoc() map[string]string { + return map_Scale +} + +var map_ScaleSpec = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleSpec describes the attributes of a scale subresource", + "replicas": "desired number of instances for the scaled object.", +} + +func (ScaleSpec) SwaggerDoc() map[string]string { + return map_ScaleSpec +} + +var map_ScaleStatus = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. ScaleStatus represents the current status of a scale subresource.", + "replicas": "actual number of observed instances of the scaled object.", + "selector": "label query over pods that should match the replicas count. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors", + "targetSelector": "label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", +} + +func (ScaleStatus) SwaggerDoc() map[string]string { + return map_ScaleStatus +} + +var map_StatefulSet = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSet represents a set of pods with consistent identities. Identities are defined as:\n - Network: A single stable DNS and hostname.\n - Storage: As many VolumeClaims as requested.\nThe StatefulSet guarantees that a given network identity will always map to the same storage identity.", + "spec": "Spec defines the desired identities of pods in this set.", + "status": "Status is the current status of Pods in this StatefulSet. This data may be out of date by some window of time.", +} + +func (StatefulSet) SwaggerDoc() map[string]string { + return map_StatefulSet +} + +var map_StatefulSetList = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetList is a collection of StatefulSets.", +} + +func (StatefulSetList) SwaggerDoc() map[string]string { + return map_StatefulSetList +} + +var map_StatefulSetSpec = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. A StatefulSetSpec is the specification of a StatefulSet.", + "replicas": "replicas is the desired number of replicas of the given Template. These are replicas in the sense that they are instantiations of the same Template, but individual replicas also have a consistent identity. If unspecified, defaults to 1.", + "selector": "selector is a label query over pods that should match the replica count. If empty, defaulted to labels on the pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors", + "template": "template is the object that describes the pod that will be created if insufficient replicas are detected. Each pod stamped out by the StatefulSet will fulfill this Template, but have a unique identity from the rest of the StatefulSet.", + "volumeClaimTemplates": "volumeClaimTemplates is a list of claims that pods are allowed to reference. The StatefulSet controller is responsible for mapping network identities to claims in a way that maintains the identity of a pod. Every claim in this list must have at least one matching (by name) volumeMount in one container in the template. A claim in this list takes precedence over any volumes in the template, with the same name.", + "serviceName": "serviceName is the name of the service that governs this StatefulSet. This service must exist before the StatefulSet, and is responsible for the network identity of the set. Pods get DNS/hostnames that follow the pattern: pod-specific-string.serviceName.default.svc.cluster.local where \"pod-specific-string\" is managed by the StatefulSet controller.", + "podManagementPolicy": "podManagementPolicy controls how pods are created during initial scale up, when replacing pods on nodes, or when scaling down. The default policy is `OrderedReady`, where pods are created in increasing order (pod-0, then pod-1, etc) and the controller will wait until each pod is ready before continuing. When scaling down, the pods are removed in the opposite order. The alternative policy is `Parallel` which will create pods in parallel to match the desired scale without waiting, and on scale down will delete all pods at once.", + "updateStrategy": "updateStrategy indicates the StatefulSetUpdateStrategy that will be employed to update Pods in the StatefulSet when a revision is made to Template.", + "revisionHistoryLimit": "revisionHistoryLimit is the maximum number of revisions that will be maintained in the StatefulSet's revision history. The revision history consists of all revisions not represented by a currently applied StatefulSetSpec version. The default value is 10.", +} + +func (StatefulSetSpec) SwaggerDoc() map[string]string { + return map_StatefulSetSpec +} + +var map_StatefulSetStatus = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetStatus represents the current state of a StatefulSet.", + "observedGeneration": "observedGeneration is the most recent generation observed for this StatefulSet. It corresponds to the StatefulSet's generation, which is updated on mutation by the API Server.", + "replicas": "replicas is the number of Pods created by the StatefulSet controller.", + "readyReplicas": "readyReplicas is the number of Pods created by the StatefulSet controller that have a Ready Condition.", + "currentReplicas": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", + "updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", + "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", + "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", +} + +func (StatefulSetStatus) SwaggerDoc() map[string]string { + return map_StatefulSetStatus +} + +var map_StatefulSetUpdateStrategy = map[string]string{ + "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", + "type": "Type indicates the type of the StatefulSetUpdateStrategy.", + "rollingUpdate": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", +} + +func (StatefulSetUpdateStrategy) SwaggerDoc() map[string]string { + return map_StatefulSetUpdateStrategy +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go new file mode 100644 index 00000000000..bd8a1c08635 --- /dev/null +++ b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go @@ -0,0 +1,938 @@ +// +build !ignore_autogenerated + +/* +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. +*/ + +// This file was autogenerated by deepcopy-gen. Do not edit it manually! + +package v1beta2 + +import ( + core_v1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + intstr "k8s.io/apimachinery/pkg/util/intstr" + reflect "reflect" +) + +func init() { + SchemeBuilder.Register(RegisterDeepCopies) +} + +// RegisterDeepCopies adds deep-copy functions to the given scheme. Public +// to allow building arbitrary schemes. +// +// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. +func RegisterDeepCopies(scheme *runtime.Scheme) error { + return scheme.AddGeneratedDeepCopyFuncs( + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DaemonSet).DeepCopyInto(out.(*DaemonSet)) + return nil + }, InType: reflect.TypeOf(&DaemonSet{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DaemonSetList).DeepCopyInto(out.(*DaemonSetList)) + return nil + }, InType: reflect.TypeOf(&DaemonSetList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DaemonSetSpec).DeepCopyInto(out.(*DaemonSetSpec)) + return nil + }, InType: reflect.TypeOf(&DaemonSetSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DaemonSetStatus).DeepCopyInto(out.(*DaemonSetStatus)) + return nil + }, InType: reflect.TypeOf(&DaemonSetStatus{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DaemonSetUpdateStrategy).DeepCopyInto(out.(*DaemonSetUpdateStrategy)) + return nil + }, InType: reflect.TypeOf(&DaemonSetUpdateStrategy{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Deployment).DeepCopyInto(out.(*Deployment)) + return nil + }, InType: reflect.TypeOf(&Deployment{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DeploymentCondition).DeepCopyInto(out.(*DeploymentCondition)) + return nil + }, InType: reflect.TypeOf(&DeploymentCondition{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DeploymentList).DeepCopyInto(out.(*DeploymentList)) + return nil + }, InType: reflect.TypeOf(&DeploymentList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DeploymentSpec).DeepCopyInto(out.(*DeploymentSpec)) + return nil + }, InType: reflect.TypeOf(&DeploymentSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DeploymentStatus).DeepCopyInto(out.(*DeploymentStatus)) + return nil + }, InType: reflect.TypeOf(&DeploymentStatus{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*DeploymentStrategy).DeepCopyInto(out.(*DeploymentStrategy)) + return nil + }, InType: reflect.TypeOf(&DeploymentStrategy{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ReplicaSet).DeepCopyInto(out.(*ReplicaSet)) + return nil + }, InType: reflect.TypeOf(&ReplicaSet{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ReplicaSetCondition).DeepCopyInto(out.(*ReplicaSetCondition)) + return nil + }, InType: reflect.TypeOf(&ReplicaSetCondition{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ReplicaSetList).DeepCopyInto(out.(*ReplicaSetList)) + return nil + }, InType: reflect.TypeOf(&ReplicaSetList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ReplicaSetSpec).DeepCopyInto(out.(*ReplicaSetSpec)) + return nil + }, InType: reflect.TypeOf(&ReplicaSetSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ReplicaSetStatus).DeepCopyInto(out.(*ReplicaSetStatus)) + return nil + }, InType: reflect.TypeOf(&ReplicaSetStatus{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RollingUpdateDaemonSet).DeepCopyInto(out.(*RollingUpdateDaemonSet)) + return nil + }, InType: reflect.TypeOf(&RollingUpdateDaemonSet{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RollingUpdateDeployment).DeepCopyInto(out.(*RollingUpdateDeployment)) + return nil + }, InType: reflect.TypeOf(&RollingUpdateDeployment{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RollingUpdateStatefulSetStrategy).DeepCopyInto(out.(*RollingUpdateStatefulSetStrategy)) + return nil + }, InType: reflect.TypeOf(&RollingUpdateStatefulSetStrategy{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Scale).DeepCopyInto(out.(*Scale)) + return nil + }, InType: reflect.TypeOf(&Scale{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ScaleSpec).DeepCopyInto(out.(*ScaleSpec)) + return nil + }, InType: reflect.TypeOf(&ScaleSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ScaleStatus).DeepCopyInto(out.(*ScaleStatus)) + return nil + }, InType: reflect.TypeOf(&ScaleStatus{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*StatefulSet).DeepCopyInto(out.(*StatefulSet)) + return nil + }, InType: reflect.TypeOf(&StatefulSet{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*StatefulSetList).DeepCopyInto(out.(*StatefulSetList)) + return nil + }, InType: reflect.TypeOf(&StatefulSetList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*StatefulSetSpec).DeepCopyInto(out.(*StatefulSetSpec)) + return nil + }, InType: reflect.TypeOf(&StatefulSetSpec{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*StatefulSetStatus).DeepCopyInto(out.(*StatefulSetStatus)) + return nil + }, InType: reflect.TypeOf(&StatefulSetStatus{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*StatefulSetUpdateStrategy).DeepCopyInto(out.(*StatefulSetUpdateStrategy)) + return nil + }, InType: reflect.TypeOf(&StatefulSetUpdateStrategy{})}, + ) +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSet) DeepCopyInto(out *DaemonSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSet. +func (in *DaemonSet) DeepCopy() *DaemonSet { + if in == nil { + return nil + } + out := new(DaemonSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DaemonSet) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetList) DeepCopyInto(out *DaemonSetList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DaemonSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetList. +func (in *DaemonSetList) DeepCopy() *DaemonSetList { + if in == nil { + return nil + } + out := new(DaemonSetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DaemonSetList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetSpec) DeepCopyInto(out *DaemonSetSpec) { + *out = *in + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + in.Template.DeepCopyInto(&out.Template) + in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) + if in.RevisionHistoryLimit != nil { + in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetSpec. +func (in *DaemonSetSpec) DeepCopy() *DaemonSetSpec { + if in == nil { + return nil + } + out := new(DaemonSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetStatus) DeepCopyInto(out *DaemonSetStatus) { + *out = *in + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetStatus. +func (in *DaemonSetStatus) DeepCopy() *DaemonSetStatus { + if in == nil { + return nil + } + out := new(DaemonSetStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DaemonSetUpdateStrategy) DeepCopyInto(out *DaemonSetUpdateStrategy) { + *out = *in + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + if *in == nil { + *out = nil + } else { + *out = new(RollingUpdateDaemonSet) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DaemonSetUpdateStrategy. +func (in *DaemonSetUpdateStrategy) DeepCopy() *DaemonSetUpdateStrategy { + if in == nil { + return nil + } + out := new(DaemonSetUpdateStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Deployment) DeepCopyInto(out *Deployment) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Deployment. +func (in *Deployment) DeepCopy() *Deployment { + if in == nil { + return nil + } + out := new(Deployment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Deployment) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentCondition) DeepCopyInto(out *DeploymentCondition) { + *out = *in + in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentCondition. +func (in *DeploymentCondition) DeepCopy() *DeploymentCondition { + if in == nil { + return nil + } + out := new(DeploymentCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentList) DeepCopyInto(out *DeploymentList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Deployment, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentList. +func (in *DeploymentList) DeepCopy() *DeploymentList { + if in == nil { + return nil + } + out := new(DeploymentList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DeploymentList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + in.Template.DeepCopyInto(&out.Template) + in.Strategy.DeepCopyInto(&out.Strategy) + if in.RevisionHistoryLimit != nil { + in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.ProgressDeadlineSeconds != nil { + in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec. +func (in *DeploymentSpec) DeepCopy() *DeploymentSpec { + if in == nil { + return nil + } + out := new(DeploymentSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DeploymentCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus. +func (in *DeploymentStatus) DeepCopy() *DeploymentStatus { + if in == nil { + return nil + } + out := new(DeploymentStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy) { + *out = *in + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + if *in == nil { + *out = nil + } else { + *out = new(RollingUpdateDeployment) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStrategy. +func (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy { + if in == nil { + return nil + } + out := new(DeploymentStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSet) DeepCopyInto(out *ReplicaSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSet. +func (in *ReplicaSet) DeepCopy() *ReplicaSet { + if in == nil { + return nil + } + out := new(ReplicaSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReplicaSet) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetCondition) DeepCopyInto(out *ReplicaSetCondition) { + *out = *in + in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetCondition. +func (in *ReplicaSetCondition) DeepCopy() *ReplicaSetCondition { + if in == nil { + return nil + } + out := new(ReplicaSetCondition) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetList) DeepCopyInto(out *ReplicaSetList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ReplicaSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetList. +func (in *ReplicaSetList) DeepCopy() *ReplicaSetList { + if in == nil { + return nil + } + out := new(ReplicaSetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReplicaSetList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetSpec) DeepCopyInto(out *ReplicaSetSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + in.Template.DeepCopyInto(&out.Template) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetSpec. +func (in *ReplicaSetSpec) DeepCopy() *ReplicaSetSpec { + if in == nil { + return nil + } + out := new(ReplicaSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReplicaSetStatus) DeepCopyInto(out *ReplicaSetStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ReplicaSetCondition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReplicaSetStatus. +func (in *ReplicaSetStatus) DeepCopy() *ReplicaSetStatus { + if in == nil { + return nil + } + out := new(ReplicaSetStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollingUpdateDaemonSet) DeepCopyInto(out *RollingUpdateDaemonSet) { + *out = *in + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + if *in == nil { + *out = nil + } else { + *out = new(intstr.IntOrString) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDaemonSet. +func (in *RollingUpdateDaemonSet) DeepCopy() *RollingUpdateDaemonSet { + if in == nil { + return nil + } + out := new(RollingUpdateDaemonSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollingUpdateDeployment) DeepCopyInto(out *RollingUpdateDeployment) { + *out = *in + if in.MaxUnavailable != nil { + in, out := &in.MaxUnavailable, &out.MaxUnavailable + if *in == nil { + *out = nil + } else { + *out = new(intstr.IntOrString) + **out = **in + } + } + if in.MaxSurge != nil { + in, out := &in.MaxSurge, &out.MaxSurge + if *in == nil { + *out = nil + } else { + *out = new(intstr.IntOrString) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateDeployment. +func (in *RollingUpdateDeployment) DeepCopy() *RollingUpdateDeployment { + if in == nil { + return nil + } + out := new(RollingUpdateDeployment) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RollingUpdateStatefulSetStrategy) DeepCopyInto(out *RollingUpdateStatefulSetStrategy) { + *out = *in + if in.Partition != nil { + in, out := &in.Partition, &out.Partition + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RollingUpdateStatefulSetStrategy. +func (in *RollingUpdateStatefulSetStrategy) DeepCopy() *RollingUpdateStatefulSetStrategy { + if in == nil { + return nil + } + out := new(RollingUpdateStatefulSetStrategy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Scale) DeepCopyInto(out *Scale) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Scale. +func (in *Scale) DeepCopy() *Scale { + if in == nil { + return nil + } + out := new(Scale) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Scale) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScaleSpec) DeepCopyInto(out *ScaleSpec) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleSpec. +func (in *ScaleSpec) DeepCopy() *ScaleSpec { + if in == nil { + return nil + } + out := new(ScaleSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ScaleStatus) DeepCopyInto(out *ScaleStatus) { + *out = *in + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ScaleStatus. +func (in *ScaleStatus) DeepCopy() *ScaleStatus { + if in == nil { + return nil + } + out := new(ScaleStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSet) DeepCopyInto(out *StatefulSet) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + out.Status = in.Status + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSet. +func (in *StatefulSet) DeepCopy() *StatefulSet { + if in == nil { + return nil + } + out := new(StatefulSet) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *StatefulSet) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetList) DeepCopyInto(out *StatefulSetList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]StatefulSet, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetList. +func (in *StatefulSetList) DeepCopy() *StatefulSetList { + if in == nil { + return nil + } + out := new(StatefulSetList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *StatefulSetList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetSpec) DeepCopyInto(out *StatefulSetSpec) { + *out = *in + if in.Replicas != nil { + in, out := &in.Replicas, &out.Replicas + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + if in.Selector != nil { + in, out := &in.Selector, &out.Selector + if *in == nil { + *out = nil + } else { + *out = new(v1.LabelSelector) + (*in).DeepCopyInto(*out) + } + } + in.Template.DeepCopyInto(&out.Template) + if in.VolumeClaimTemplates != nil { + in, out := &in.VolumeClaimTemplates, &out.VolumeClaimTemplates + *out = make([]core_v1.PersistentVolumeClaim, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + in.UpdateStrategy.DeepCopyInto(&out.UpdateStrategy) + if in.RevisionHistoryLimit != nil { + in, out := &in.RevisionHistoryLimit, &out.RevisionHistoryLimit + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetSpec. +func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec { + if in == nil { + return nil + } + out := new(StatefulSetSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetStatus. +func (in *StatefulSetStatus) DeepCopy() *StatefulSetStatus { + if in == nil { + return nil + } + out := new(StatefulSetStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatefulSetUpdateStrategy) DeepCopyInto(out *StatefulSetUpdateStrategy) { + *out = *in + if in.RollingUpdate != nil { + in, out := &in.RollingUpdate, &out.RollingUpdate + if *in == nil { + *out = nil + } else { + *out = new(RollingUpdateStatefulSetStrategy) + (*in).DeepCopyInto(*out) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatefulSetUpdateStrategy. +func (in *StatefulSetUpdateStrategy) DeepCopy() *StatefulSetUpdateStrategy { + if in == nil { + return nil + } + out := new(StatefulSetUpdateStrategy) + in.DeepCopyInto(out) + return out +} diff --git a/staging/src/k8s.io/api/extensions/v1beta1/generated.proto b/staging/src/k8s.io/api/extensions/v1beta1/generated.proto index 2f386667557..91510a4a33e 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/generated.proto +++ b/staging/src/k8s.io/api/extensions/v1beta1/generated.proto @@ -245,6 +245,7 @@ message DeploymentList { repeated Deployment items = 2; } +// DEPRECATED. // DeploymentRollback stores the information required to rollback a deployment. message DeploymentRollback { // Required: This must match the Name of a deployment. @@ -293,6 +294,7 @@ message DeploymentSpec { // +optional optional bool paused = 7; + // DEPRECATED. // The config this deployment is rolling back to. Will be cleared after rollback is done. // +optional optional RollbackConfig rollbackTo = 8; @@ -852,6 +854,7 @@ message ReplicaSetStatus { message ReplicationControllerDummy { } +// DEPRECATED. message RollbackConfig { // The revision to rollback to. If set to 0, rollback to the last revision. // +optional diff --git a/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go index 7c5a8c56bf6..2a0259548c8 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/extensions/v1beta1/types_swagger_doc_generated.go @@ -152,7 +152,7 @@ func (DeploymentList) SwaggerDoc() map[string]string { } var map_DeploymentRollback = map[string]string{ - "": "DeploymentRollback stores the information required to rollback a deployment.", + "": "DEPRECATED. DeploymentRollback stores the information required to rollback a deployment.", "name": "Required: This must match the Name of a deployment.", "updatedAnnotations": "The annotations to be updated to a deployment", "rollbackTo": "The config of this deployment rollback.", @@ -171,7 +171,7 @@ var map_DeploymentSpec = map[string]string{ "minReadySeconds": "Minimum number of seconds for which a newly created pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready)", "revisionHistoryLimit": "The number of old ReplicaSets to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified.", "paused": "Indicates that the deployment is paused and will not be processed by the deployment controller.", - "rollbackTo": "The config this deployment is rolling back to. Will be cleared after rollback is done.", + "rollbackTo": "DEPRECATED. The config this deployment is rolling back to. Will be cleared after rollback is done.", "progressDeadlineSeconds": "The maximum time in seconds for a deployment to make progress before it is considered to be failed. The deployment controller will continue to process failed deployments and a condition with a ProgressDeadlineExceeded reason will be surfaced in the deployment status. Once autoRollback is implemented, the deployment controller will automatically rollback failed deployments. Note that progress will not be estimated during the time a deployment is paused. This is not set by default.", } @@ -502,6 +502,7 @@ func (ReplicationControllerDummy) SwaggerDoc() map[string]string { } var map_RollbackConfig = map[string]string{ + "": "DEPRECATED.", "revision": "The revision to rollback to. If set to 0, rollback to the last revision.", } From 4fdb701e3cc6e4907baeec0397fbbff465e42ede Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Sat, 5 Aug 2017 07:34:28 +0800 Subject: [PATCH 093/183] Moved node/testutil to upper dir. --- hack/.golint_failures | 1 - pkg/controller/BUILD | 3 ++- pkg/controller/cloud/BUILD | 2 +- pkg/controller/cloud/node_controller_test.go | 2 +- pkg/controller/controller_utils_test.go | 2 +- pkg/controller/node/BUILD | 7 ++---- pkg/controller/node/cidr_allocator_test.go | 2 +- pkg/controller/node/nodecontroller_test.go | 2 +- pkg/controller/node/taint_controller_test.go | 2 +- pkg/controller/podgc/BUILD | 2 +- pkg/controller/podgc/gc_controller_test.go | 2 +- pkg/controller/{node => }/testutil/BUILD | 0 .../{node => }/testutil/test_utils.go | 22 +++++++++---------- 13 files changed, 23 insertions(+), 26 deletions(-) rename pkg/controller/{node => }/testutil/BUILD (100%) rename pkg/controller/{node => }/testutil/test_utils.go (95%) diff --git a/hack/.golint_failures b/hack/.golint_failures index 136282523b0..57d2bc2b388 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -182,7 +182,6 @@ pkg/controller/job pkg/controller/namespace pkg/controller/namespace/deletion pkg/controller/node -pkg/controller/node/testutil pkg/controller/podautoscaler pkg/controller/podautoscaler/metrics pkg/controller/podgc diff --git a/pkg/controller/BUILD b/pkg/controller/BUILD index dc6dbfbac2b..1cdc7f61fc8 100644 --- a/pkg/controller/BUILD +++ b/pkg/controller/BUILD @@ -20,7 +20,7 @@ go_test( "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/controller/node/testutil:go_default_library", + "//pkg/controller/testutil:go_default_library", "//pkg/securitycontext:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", @@ -128,6 +128,7 @@ filegroup( "//pkg/controller/service:all-srcs", "//pkg/controller/serviceaccount:all-srcs", "//pkg/controller/statefulset:all-srcs", + "//pkg/controller/testutil:all-srcs", "//pkg/controller/ttl:all-srcs", "//pkg/controller/volume/attachdetach:all-srcs", "//pkg/controller/volume/events:all-srcs", diff --git a/pkg/controller/cloud/BUILD b/pkg/controller/cloud/BUILD index dd5392b721b..d6f3e7d40f3 100644 --- a/pkg/controller/cloud/BUILD +++ b/pkg/controller/cloud/BUILD @@ -43,7 +43,7 @@ go_test( "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", "//pkg/controller:go_default_library", - "//pkg/controller/node/testutil:go_default_library", + "//pkg/controller/testutil:go_default_library", "//pkg/kubelet/apis:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/controller/cloud/node_controller_test.go b/pkg/controller/cloud/node_controller_test.go index 333081af2f6..033dbe90889 100644 --- a/pkg/controller/cloud/node_controller_test.go +++ b/pkg/controller/cloud/node_controller_test.go @@ -34,7 +34,7 @@ import ( "k8s.io/kubernetes/pkg/cloudprovider" fakecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/fake" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/controller/node/testutil" + "k8s.io/kubernetes/pkg/controller/testutil" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" ) diff --git a/pkg/controller/controller_utils_test.go b/pkg/controller/controller_utils_test.go index 7abc0af277e..bd82e48e703 100644 --- a/pkg/controller/controller_utils_test.go +++ b/pkg/controller/controller_utils_test.go @@ -45,7 +45,7 @@ import ( "k8s.io/kubernetes/pkg/api" _ "k8s.io/kubernetes/pkg/api/install" "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/controller/node/testutil" + "k8s.io/kubernetes/pkg/controller/testutil" "k8s.io/kubernetes/pkg/securitycontext" ) diff --git a/pkg/controller/node/BUILD b/pkg/controller/node/BUILD index a48ebc072c7..d580fdf4cd1 100644 --- a/pkg/controller/node/BUILD +++ b/pkg/controller/node/BUILD @@ -24,7 +24,7 @@ go_test( "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", "//pkg/controller:go_default_library", - "//pkg/controller/node/testutil:go_default_library", + "//pkg/controller/testutil:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/util/node:go_default_library", "//pkg/util/taints:go_default_library", @@ -115,9 +115,6 @@ filegroup( filegroup( name = "all-srcs", - srcs = [ - ":package-srcs", - "//pkg/controller/node/testutil:all-srcs", - ], + srcs = [":package-srcs"], tags = ["automanaged"], ) diff --git a/pkg/controller/node/cidr_allocator_test.go b/pkg/controller/node/cidr_allocator_test.go index 3fc5d4d8ef9..7d2ffb69d1d 100644 --- a/pkg/controller/node/cidr_allocator_test.go +++ b/pkg/controller/node/cidr_allocator_test.go @@ -25,7 +25,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubernetes/pkg/controller/node/testutil" + "k8s.io/kubernetes/pkg/controller/testutil" ) const ( diff --git a/pkg/controller/node/nodecontroller_test.go b/pkg/controller/node/nodecontroller_test.go index 34d78faaed1..e3782631786 100644 --- a/pkg/controller/node/nodecontroller_test.go +++ b/pkg/controller/node/nodecontroller_test.go @@ -39,7 +39,7 @@ import ( "k8s.io/kubernetes/pkg/cloudprovider" fakecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/fake" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/controller/node/testutil" + "k8s.io/kubernetes/pkg/controller/testutil" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/pkg/util/node" taintutils "k8s.io/kubernetes/pkg/util/taints" diff --git a/pkg/controller/node/taint_controller_test.go b/pkg/controller/node/taint_controller_test.go index f6da5ddd5d1..6ce5eee4705 100644 --- a/pkg/controller/node/taint_controller_test.go +++ b/pkg/controller/node/taint_controller_test.go @@ -24,7 +24,7 @@ import ( "k8s.io/api/core/v1" "k8s.io/client-go/kubernetes/fake" - "k8s.io/kubernetes/pkg/controller/node/testutil" + "k8s.io/kubernetes/pkg/controller/testutil" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clienttesting "k8s.io/client-go/testing" diff --git a/pkg/controller/podgc/BUILD b/pkg/controller/podgc/BUILD index 315bab74cd0..b288636778c 100644 --- a/pkg/controller/podgc/BUILD +++ b/pkg/controller/podgc/BUILD @@ -39,7 +39,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", - "//pkg/controller/node/testutil:go_default_library", + "//pkg/controller/testutil:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/pkg/controller/podgc/gc_controller_test.go b/pkg/controller/podgc/gc_controller_test.go index 8ffce2aae47..73ecd7a8ccf 100644 --- a/pkg/controller/podgc/gc_controller_test.go +++ b/pkg/controller/podgc/gc_controller_test.go @@ -30,7 +30,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/fake" "k8s.io/kubernetes/pkg/controller" - "k8s.io/kubernetes/pkg/controller/node/testutil" + "k8s.io/kubernetes/pkg/controller/testutil" ) type FakeController struct{} diff --git a/pkg/controller/node/testutil/BUILD b/pkg/controller/testutil/BUILD similarity index 100% rename from pkg/controller/node/testutil/BUILD rename to pkg/controller/testutil/BUILD diff --git a/pkg/controller/node/testutil/test_utils.go b/pkg/controller/testutil/test_utils.go similarity index 95% rename from pkg/controller/node/testutil/test_utils.go rename to pkg/controller/testutil/test_utils.go index 3309e05cf38..3801c4a93d6 100644 --- a/pkg/controller/node/testutil/test_utils.go +++ b/pkg/controller/testutil/test_utils.go @@ -68,30 +68,31 @@ type FakeNodeHandler struct { DeleteWaitChan chan struct{} } +// FakeLegacyHandler is a fake implemtation of CoreV1Interface. type FakeLegacyHandler struct { v1core.CoreV1Interface n *FakeNodeHandler } // GetUpdatedNodesCopy returns a slice of Nodes with updates applied. -func (c *FakeNodeHandler) GetUpdatedNodesCopy() []*v1.Node { - c.lock.Lock() - defer c.lock.Unlock() - updatedNodesCopy := make([]*v1.Node, len(c.UpdatedNodes), len(c.UpdatedNodes)) - for i, ptr := range c.UpdatedNodes { +func (m *FakeNodeHandler) GetUpdatedNodesCopy() []*v1.Node { + m.lock.Lock() + defer m.lock.Unlock() + updatedNodesCopy := make([]*v1.Node, len(m.UpdatedNodes), len(m.UpdatedNodes)) + for i, ptr := range m.UpdatedNodes { updatedNodesCopy[i] = ptr } return updatedNodesCopy } // Core returns fake CoreInterface. -func (c *FakeNodeHandler) Core() v1core.CoreV1Interface { - return &FakeLegacyHandler{c.Clientset.Core(), c} +func (m *FakeNodeHandler) Core() v1core.CoreV1Interface { + return &FakeLegacyHandler{m.Clientset.Core(), m} } // CoreV1 returns fake CoreV1Interface -func (c *FakeNodeHandler) CoreV1() v1core.CoreV1Interface { - return &FakeLegacyHandler{c.Clientset.CoreV1(), c} +func (m *FakeNodeHandler) CoreV1() v1core.CoreV1Interface { + return &FakeLegacyHandler{m.Clientset.CoreV1(), m} } // Nodes return fake NodeInterfaces. @@ -115,9 +116,8 @@ func (m *FakeNodeHandler) Create(node *v1.Node) (*v1.Node, error) { nodeCopy := *node m.CreatedNodes = append(m.CreatedNodes, &nodeCopy) return node, nil - } else { - return nil, errors.New("Create error.") } + return nil, errors.New("create error") } // Get returns a Node from the fake store. From 172ab88ce848d2c2e6c344535d3011d4ac558a37 Mon Sep 17 00:00:00 2001 From: m1093782566 Date: Fri, 4 Aug 2017 15:07:43 +0800 Subject: [PATCH 094/183] add some checks for fedration-apiserver options --- .../app/options/validation.go | 23 +++++++++++++++++++ .../apiserver/pkg/server/options/admission.go | 5 ++++ .../apiserver/pkg/server/options/feature.go | 5 ++++ 3 files changed, 33 insertions(+) diff --git a/federation/cmd/federation-apiserver/app/options/validation.go b/federation/cmd/federation-apiserver/app/options/validation.go index a2044377e61..453372346ea 100644 --- a/federation/cmd/federation-apiserver/app/options/validation.go +++ b/federation/cmd/federation-apiserver/app/options/validation.go @@ -16,6 +16,8 @@ limitations under the License. package options +import "fmt" + func (options *ServerRunOptions) Validate() []error { var errors []error if errs := options.Etcd.Validate(); len(errs) > 0 { @@ -27,6 +29,27 @@ func (options *ServerRunOptions) Validate() []error { if errs := options.InsecureServing.Validate("insecure-port"); len(errs) > 0 { errors = append(errors, errs...) } + if errs := options.Audit.Validate(); len(errs) > 0 { + errors = append(errors, errs...) + } + if errs := options.Features.Validate(); len(errs) > 0 { + errors = append(errors, errs...) + } + if errs := options.Admission.Validate(); len(errs) > 0 { + errors = append(errors, errs...) + } + if errs := options.Authentication.Validate(); len(errs) > 0 { + errors = append(errors, errs...) + } + if errs := options.Authorization.Validate(); len(errs) > 0 { + errors = append(errors, errs...) + } + if errs := options.CloudProvider.Validate(); len(errs) > 0 { + errors = append(errors, errs...) + } + if options.EventTTL <= 0 { + errors = append(errors, fmt.Errorf("--event-ttl must be greater than 0")) + } // TODO: add more checks return errors } diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/admission.go b/staging/src/k8s.io/apiserver/pkg/server/options/admission.go index 760f4fc3da7..5604681825f 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/admission.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/admission.go @@ -89,3 +89,8 @@ func (a *AdmissionOptions) ApplyTo(serverCfg *server.Config, pluginInitializers serverCfg.AdmissionControl = admissionChain return nil } + +func (a *AdmissionOptions) Validate() []error { + errs := []error{} + return errs +} diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/feature.go b/staging/src/k8s.io/apiserver/pkg/server/options/feature.go index d99a73495ff..cd62c7c67f7 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/feature.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/feature.go @@ -55,3 +55,8 @@ func (o *FeatureOptions) ApplyTo(c *server.Config) error { return nil } + +func (o *FeatureOptions) Validate() []error { + errs := []error{} + return errs +} From ce627f55be38c085740a88166e42d4c75667641d Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Tue, 8 Aug 2017 11:52:53 +0800 Subject: [PATCH 095/183] Update mrubin to matchstick in OWNERS --- pkg/controller/endpoint/OWNERS | 2 +- pkg/controller/service/OWNERS | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/controller/endpoint/OWNERS b/pkg/controller/endpoint/OWNERS index 3bb8ef23f46..d830b4e1b29 100755 --- a/pkg/controller/endpoint/OWNERS +++ b/pkg/controller/endpoint/OWNERS @@ -2,4 +2,4 @@ reviewers: - bowei - MrHohn - thockin -- mrubin +- matchstick diff --git a/pkg/controller/service/OWNERS b/pkg/controller/service/OWNERS index 5e99c8ba0f8..fcaf2646616 100644 --- a/pkg/controller/service/OWNERS +++ b/pkg/controller/service/OWNERS @@ -2,4 +2,4 @@ reviewers: - bowei - MrHohn - thockin -- mrubin +- matchstick From dffee9c06f9728bd107f6cd250cee1ceac08d89f Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Tue, 8 Aug 2017 00:48:17 -0400 Subject: [PATCH 096/183] Honor --use-service-account-credentials and warn when missing private key --- cmd/kube-controller-manager/app/controllermanager.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmd/kube-controller-manager/app/controllermanager.go b/cmd/kube-controller-manager/app/controllermanager.go index 7fed1789165..c161d3a7c63 100644 --- a/cmd/kube-controller-manager/app/controllermanager.go +++ b/cmd/kube-controller-manager/app/controllermanager.go @@ -163,7 +163,12 @@ func Run(s *options.CMServer) error { ClientConfig: kubeconfig, } var clientBuilder controller.ControllerClientBuilder - if len(s.ServiceAccountKeyFile) > 0 && s.UseServiceAccountCredentials { + if s.UseServiceAccountCredentials { + if len(s.ServiceAccountKeyFile) > 0 { + // It's possible another controller process is creating the tokens for us. + // If one isn't, we'll timeout and exit when our client builder is unable to create the tokens. + glog.Warningf("--use-service-account-credentials was specified without providing a --service-account-private-key-file") + } clientBuilder = controller.SAControllerClientBuilder{ ClientConfig: restclient.AnonymousClientConfig(kubeconfig), CoreClient: kubeClient.CoreV1(), From b10df4e2216bf4137e51173d9c431495bc92aa4d Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Tue, 8 Aug 2017 01:20:30 -0400 Subject: [PATCH 097/183] Change test to work around restmapper pluralization bug --- .../test/integration/testserver/resources.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go b/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go index 2a5583a155b..a0efcb43da7 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/resources.go @@ -35,7 +35,8 @@ import ( //NewRandomNameCustomResourceDefinition generates a CRD with random name to avoid name conflict in e2e tests func NewRandomNameCustomResourceDefinition(scope apiextensionsv1beta1.ResourceScope) *apiextensionsv1beta1.CustomResourceDefinition { - gName := names.SimpleNameGenerator.GenerateName("foo") + // ensure the singular doesn't end in an s for now + gName := names.SimpleNameGenerator.GenerateName("foo") + "a" return &apiextensionsv1beta1.CustomResourceDefinition{ ObjectMeta: metav1.ObjectMeta{Name: gName + "s.mygroup.example.com"}, Spec: apiextensionsv1beta1.CustomResourceDefinitionSpec{ From 65c28eb64f05ebdff1a5ee659f8b9ec24b682f62 Mon Sep 17 00:00:00 2001 From: Xing Zhou Date: Tue, 8 Aug 2017 13:38:31 +0800 Subject: [PATCH 098/183] Add error return for the Marshal object invocation. Add error return for the Marshal object invocation. --- pkg/kubectl/cmd/drain.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/kubectl/cmd/drain.go b/pkg/kubectl/cmd/drain.go index 8f6d511bc03..7e2d8fd5e00 100644 --- a/pkg/kubectl/cmd/drain.go +++ b/pkg/kubectl/cmd/drain.go @@ -631,6 +631,9 @@ func (o *DrainOptions) RunCordonOrUncordon(desired bool) error { return err } oldData, err := json.Marshal(obj) + if err != nil { + return err + } node, ok := obj.(*corev1.Node) if !ok { return fmt.Errorf("unexpected Type%T, expected Node", obj) @@ -642,6 +645,9 @@ func (o *DrainOptions) RunCordonOrUncordon(desired bool) error { helper := resource.NewHelper(o.restClient, o.nodeInfo.Mapping) node.Spec.Unschedulable = desired newData, err := json.Marshal(obj) + if err != nil { + return err + } patchBytes, err := strategicpatch.CreateTwoWayMergePatch(oldData, newData, obj) if err != nil { return err From a532784189b85035fac5c1bb762daae9fedc4494 Mon Sep 17 00:00:00 2001 From: Yassine TIJANI Date: Tue, 8 Aug 2017 12:51:45 +0200 Subject: [PATCH 099/183] simplify logic around LB deletion --- pkg/controller/service/service_controller.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pkg/controller/service/service_controller.go b/pkg/controller/service/service_controller.go index 0a3417474ea..52f3c64998a 100644 --- a/pkg/controller/service/service_controller.go +++ b/pkg/controller/service/service_controller.go @@ -261,16 +261,11 @@ func (s *ServiceController) createLoadBalancerIfNeeded(key string, service *v1.S var err error if !wantsLoadBalancer(service) { - needDelete := true _, exists, err := s.balancer.GetLoadBalancer(s.clusterName, service) if err != nil { return fmt.Errorf("Error getting LB for service %s: %v", key, err), retryable } - if !exists { - needDelete = false - } - - if needDelete { + if exists { glog.Infof("Deleting existing load balancer for service %s that no longer needs a load balancer.", key) s.eventRecorder.Event(service, v1.EventTypeNormal, "DeletingLoadBalancer", "Deleting load balancer") if err := s.balancer.EnsureLoadBalancerDeleted(s.clusterName, service); err != nil { From bad549d72508535019ccd11f280278d2f8f02c64 Mon Sep 17 00:00:00 2001 From: Piotr Szczesniak Date: Tue, 8 Aug 2017 07:05:39 +0200 Subject: [PATCH 100/183] Added monitoring sidecar for Heapster --- .../stackdriver/heapster-controller.yaml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml b/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml index c34f5ef1afa..502976fc8ae 100644 --- a/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml +++ b/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml @@ -64,6 +64,26 @@ spec: - name: usr-ca-certs mountPath: /usr/share/ca-certificates readOnly: true + - name: prom-to-sd + image: gcr.io/google-containers/prometheus-to-sd:v0.2.1 + command: + - /monitor + - --source=heapster:http://localhost:8082?whitelisted=stackdriver_requests_count,stackdriver_timeseries_count + - --stackdriver-prefix=container.googleapis.com/internal/addons + - --pod-id=$(POD_NAME) + - --namespace-id=$(POD_NAMESPACE) + volumeMounts: + - name: ssl-certs + mountPath: /etc/ssl/certs + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace - image: gcr.io/google_containers/addon-resizer:2.0 name: heapster-nanny resources: From 9a6ef9677a533b6c5dbe2fe8151ffc18dcb8857c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Tue, 8 Aug 2017 15:07:21 +0300 Subject: [PATCH 101/183] kubeadm: Centralize commonly used paths/constants to the constants pkg --- cmd/kubeadm/app/cmd/init.go | 29 ++--- cmd/kubeadm/app/constants/BUILD | 8 ++ cmd/kubeadm/app/constants/constants.go | 37 +++++- cmd/kubeadm/app/constants/constants_test.go | 112 ++++++++++++++++++ cmd/kubeadm/app/images/BUILD | 4 +- cmd/kubeadm/app/images/images.go | 24 ++-- cmd/kubeadm/app/images/images_test.go | 61 +++++----- .../app/phases/controlplane/manifests.go | 56 ++++----- .../app/phases/controlplane/manifests_test.go | 12 +- .../app/phases/controlplane/volumes.go | 18 +-- .../app/phases/controlplane/volumes_test.go | 25 ++-- .../phases/selfhosting/podspec_mutation.go | 6 +- .../selfhosting/podspec_mutation_test.go | 6 +- .../app/phases/selfhosting/selfhosting.go | 34 +----- .../phases/selfhosting/selfhosting_test.go | 7 +- 15 files changed, 273 insertions(+), 166 deletions(-) create mode 100644 cmd/kubeadm/app/constants/constants_test.go diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index e08ec4dab4e..63b972e4b0d 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -221,25 +221,27 @@ func (i *Init) Validate(cmd *cobra.Command) error { // Run executes master node provisioning, including certificates, needed static pod manifests, etc. func (i *Init) Run(out io.Writer) error { - // PHASE 1: Generate certificates - err := cmdphases.CreatePKIAssets(i.cfg) + k8sVersion, err := version.ParseSemantic(i.cfg.KubernetesVersion) if err != nil { + return fmt.Errorf("couldn't parse kubernetes version %q: %v", i.cfg.KubernetesVersion, err) + } + + // PHASE 1: Generate certificates + if err := cmdphases.CreatePKIAssets(i.cfg); err != nil { return err } // PHASE 2: Generate kubeconfig files for the admin and the kubelet - err = kubeconfigphase.CreateInitKubeConfigFiles(kubeadmconstants.KubernetesDir, i.cfg) - if err != nil { + if err := kubeconfigphase.CreateInitKubeConfigFiles(kubeadmconstants.KubernetesDir, i.cfg); err != nil { return err } // PHASE 3: Bootstrap the control plane - if err := controlplanephase.WriteStaticPodManifests(i.cfg); err != nil { + if err := controlplanephase.WriteStaticPodManifests(i.cfg, k8sVersion, kubeadmconstants.GetStaticPodDirectory()); err != nil { return err } - adminKubeConfigPath := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName) - client, err := kubeadmutil.CreateClientAndWaitForAPI(adminKubeConfigPath) + client, err := kubeadmutil.CreateClientAndWaitForAPI(kubeadmconstants.GetAdminKubeConfigPath()) if err != nil { return err } @@ -258,25 +260,18 @@ func (i *Init) Run(out io.Writer) error { return err } - if err := tokenphase.CreateBootstrapConfigMapIfNotExists(client, adminKubeConfigPath); err != nil { + if err := tokenphase.CreateBootstrapConfigMapIfNotExists(client, kubeadmconstants.GetAdminKubeConfigPath()); err != nil { return err } // PHASE 5: Install and deploy all addons, and configure things as necessary - k8sVersion, err := version.ParseSemantic(i.cfg.KubernetesVersion) - if err != nil { - return fmt.Errorf("couldn't parse kubernetes version %q: %v", i.cfg.KubernetesVersion, err) - } - // Create the necessary ServiceAccounts - err = apiconfigphase.CreateServiceAccounts(client) - if err != nil { + if err := apiconfigphase.CreateServiceAccounts(client); err != nil { return err } - err = apiconfigphase.CreateRBACRules(client, k8sVersion) - if err != nil { + if err := apiconfigphase.CreateRBACRules(client, k8sVersion); err != nil { return err } diff --git a/cmd/kubeadm/app/constants/BUILD b/cmd/kubeadm/app/constants/BUILD index 735d973a56e..e166329e927 100644 --- a/cmd/kubeadm/app/constants/BUILD +++ b/cmd/kubeadm/app/constants/BUILD @@ -5,6 +5,7 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", "go_library", + "go_test", ) go_library( @@ -29,3 +30,10 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +go_test( + name = "go_default_test", + srcs = ["constants_test.go"], + library = ":go_default_library", + tags = ["automanaged"], +) diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index 51d8134c44b..fccc3ef92af 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -17,6 +17,7 @@ limitations under the License. package constants import ( + "fmt" "path/filepath" "time" @@ -97,6 +98,18 @@ const ( // MinExternalEtcdVersion indicates minimum external etcd version which kubeadm supports MinExternalEtcdVersion = "3.0.14" + + // DefaultEtcdVersion indicates the default etcd version that kubeadm uses + DefaultEtcdVersion = "3.0.17" + + Etcd = "etcd" + KubeAPIServer = "kube-apiserver" + KubeControllerManager = "kube-controller-manager" + KubeScheduler = "kube-scheduler" + KubeProxy = "kube-proxy" + + // SelfHostingPrefix describes the prefix workloads that are self-hosted by kubeadm has + SelfHostingPrefix = "self-hosted-" ) var ( @@ -119,11 +132,29 @@ var ( // DefaultTokenUsages specifies the default functions a token will get DefaultTokenUsages = []string{"signing", "authentication"} + // MasterComponents defines the master component names + MasterComponents = []string{KubeAPIServer, KubeControllerManager, KubeScheduler} + // MinimumControlPlaneVersion specifies the minimum control plane version kubeadm can deploy MinimumControlPlaneVersion = version.MustParseSemantic("v1.7.0") ) -// BuildStaticManifestFilepath returns the location on the disk where the Static Pod should be present -func BuildStaticManifestFilepath(componentName string) string { - return filepath.Join(KubernetesDir, ManifestsSubDirName, componentName+".yaml") +// GetStaticPodDirectory returns the location on the disk where the Static Pod should be present +func GetStaticPodDirectory() string { + return filepath.Join(KubernetesDir, ManifestsSubDirName) +} + +// GetStaticPodFilepath returns the location on the disk where the Static Pod should be present +func GetStaticPodFilepath(componentName, manifestsDir string) string { + return filepath.Join(manifestsDir, componentName+".yaml") +} + +// GetAdminKubeConfigPath returns the location on the disk where admin kubeconfig is located by default +func GetAdminKubeConfigPath() string { + return filepath.Join(KubernetesDir, AdminKubeConfigFileName) +} + +// AddSelfHostedPrefix adds the self-hosted- prefix to the component name +func AddSelfHostedPrefix(componentName string) string { + return fmt.Sprintf("%s%s", SelfHostingPrefix, componentName) } diff --git a/cmd/kubeadm/app/constants/constants_test.go b/cmd/kubeadm/app/constants/constants_test.go new file mode 100644 index 00000000000..29cffa2abbd --- /dev/null +++ b/cmd/kubeadm/app/constants/constants_test.go @@ -0,0 +1,112 @@ +/* +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. +*/ + +package constants + +import ( + "testing" +) + +func TestGetStaticPodDirectory(t *testing.T) { + expected := "/etc/kubernetes/manifests" + actual := GetStaticPodDirectory() + + if actual != expected { + t.Errorf( + "failed GetStaticPodDirectory:\n\texpected: %s\n\t actual: %s", + expected, + actual, + ) + } +} + +func TestGetAdminKubeConfigPath(t *testing.T) { + expected := "/etc/kubernetes/admin.conf" + actual := GetAdminKubeConfigPath() + + if actual != expected { + t.Errorf( + "failed GetAdminKubeConfigPath:\n\texpected: %s\n\t actual: %s", + expected, + actual, + ) + } +} + +func TestGetStaticPodFilepath(t *testing.T) { + var tests = []struct { + componentName, manifestsDir, expected string + }{ + { + componentName: "kube-apiserver", + manifestsDir: "/etc/kubernetes/manifests", + expected: "/etc/kubernetes/manifests/kube-apiserver.yaml", + }, + { + componentName: "kube-controller-manager", + manifestsDir: "/etc/kubernetes/manifests/", + expected: "/etc/kubernetes/manifests/kube-controller-manager.yaml", + }, + { + componentName: "foo", + manifestsDir: "/etc/bar/", + expected: "/etc/bar/foo.yaml", + }, + } + for _, rt := range tests { + actual := GetStaticPodFilepath(rt.componentName, rt.manifestsDir) + if actual != rt.expected { + t.Errorf( + "failed GetStaticPodFilepath:\n\texpected: %s\n\t actual: %s", + rt.expected, + actual, + ) + } + } +} + +func TestAddSelfHostedPrefix(t *testing.T) { + var tests = []struct { + componentName, expected string + }{ + { + componentName: "kube-apiserver", + expected: "self-hosted-kube-apiserver", + }, + { + componentName: "kube-controller-manager", + expected: "self-hosted-kube-controller-manager", + }, + { + componentName: "kube-scheduler", + expected: "self-hosted-kube-scheduler", + }, + { + componentName: "foo", + expected: "self-hosted-foo", + }, + } + for _, rt := range tests { + actual := AddSelfHostedPrefix(rt.componentName) + if actual != rt.expected { + t.Errorf( + "failed AddSelfHostedPrefix:\n\texpected: %s\n\t actual: %s", + rt.expected, + actual, + ) + } + } +} diff --git a/cmd/kubeadm/app/images/BUILD b/cmd/kubeadm/app/images/BUILD index 6209daaf175..b2e3dd7c011 100644 --- a/cmd/kubeadm/app/images/BUILD +++ b/cmd/kubeadm/app/images/BUILD @@ -13,7 +13,7 @@ go_library( srcs = ["images.go"], tags = ["automanaged"], deps = [ - "//cmd/kubeadm/app/apis/kubeadm:go_default_library", + "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", ], ) @@ -23,7 +23,7 @@ go_test( srcs = ["images_test.go"], library = ":go_default_library", tags = ["automanaged"], - deps = ["//cmd/kubeadm/app/apis/kubeadm:go_default_library"], + deps = ["//cmd/kubeadm/app/constants:go_default_library"], ) filegroup( diff --git a/cmd/kubeadm/app/images/images.go b/cmd/kubeadm/app/images/images.go index d0a6922de54..2ac3fefa71b 100644 --- a/cmd/kubeadm/app/images/images.go +++ b/cmd/kubeadm/app/images/images.go @@ -20,29 +20,19 @@ import ( "fmt" "runtime" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" ) -const ( - KubeEtcdImage = "etcd" - KubeAPIServerImage = "apiserver" - KubeControllerManagerImage = "controller-manager" - KubeSchedulerImage = "scheduler" - - etcdVersion = "3.0.17" -) - -func GetCoreImage(image string, cfg *kubeadmapi.MasterConfiguration, overrideImage string) string { +func GetCoreImage(image, repoPrefix, k8sVersion, overrideImage string) string { if overrideImage != "" { return overrideImage } - repoPrefix := cfg.ImageRepository - kubernetesImageTag := kubeadmutil.KubernetesVersionToImageTag(cfg.KubernetesVersion) + kubernetesImageTag := kubeadmutil.KubernetesVersionToImageTag(k8sVersion) return map[string]string{ - KubeEtcdImage: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "etcd", runtime.GOARCH, etcdVersion), - KubeAPIServerImage: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "kube-apiserver", runtime.GOARCH, kubernetesImageTag), - KubeControllerManagerImage: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "kube-controller-manager", runtime.GOARCH, kubernetesImageTag), - KubeSchedulerImage: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "kube-scheduler", runtime.GOARCH, kubernetesImageTag), + constants.Etcd: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "etcd", runtime.GOARCH, constants.DefaultEtcdVersion), + constants.KubeAPIServer: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "kube-apiserver", runtime.GOARCH, kubernetesImageTag), + constants.KubeControllerManager: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "kube-controller-manager", runtime.GOARCH, kubernetesImageTag), + constants.KubeScheduler: fmt.Sprintf("%s/%s-%s:%s", repoPrefix, "kube-scheduler", runtime.GOARCH, kubernetesImageTag), }[image] } diff --git a/cmd/kubeadm/app/images/images_test.go b/cmd/kubeadm/app/images/images_test.go index 10a37f0703f..6c1173e6c25 100644 --- a/cmd/kubeadm/app/images/images_test.go +++ b/cmd/kubeadm/app/images/images_test.go @@ -21,15 +21,9 @@ import ( "runtime" "testing" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) -type getCoreImageTest struct { - i string - c *kubeadmapi.MasterConfiguration - o string -} - const ( testversion = "v10.1.2-alpha.1.100+0123456789abcdef+SOMETHING" expected = "v10.1.2-alpha.1.100_0123456789abcdef_SOMETHING" @@ -37,38 +31,43 @@ const ( ) func TestGetCoreImage(t *testing.T) { - var imageTest = []struct { - t getCoreImageTest - expected string + var tests = []struct { + image, repo, version, override, expected string }{ - {getCoreImageTest{o: "override"}, "override"}, - {getCoreImageTest{ - i: KubeEtcdImage, - c: &kubeadmapi.MasterConfiguration{ImageRepository: gcrPrefix}}, - fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "etcd", runtime.GOARCH, etcdVersion), + { + override: "override", + expected: "override", }, - {getCoreImageTest{ - i: KubeAPIServerImage, - c: &kubeadmapi.MasterConfiguration{ImageRepository: gcrPrefix, KubernetesVersion: testversion}}, - fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "kube-apiserver", runtime.GOARCH, expected), + { + image: constants.Etcd, + repo: gcrPrefix, + expected: fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "etcd", runtime.GOARCH, constants.DefaultEtcdVersion), }, - {getCoreImageTest{ - i: KubeControllerManagerImage, - c: &kubeadmapi.MasterConfiguration{ImageRepository: gcrPrefix, KubernetesVersion: testversion}}, - fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "kube-controller-manager", runtime.GOARCH, expected), + { + image: constants.KubeAPIServer, + repo: gcrPrefix, + version: testversion, + expected: fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "kube-apiserver", runtime.GOARCH, expected), }, - {getCoreImageTest{ - i: KubeSchedulerImage, - c: &kubeadmapi.MasterConfiguration{ImageRepository: gcrPrefix, KubernetesVersion: testversion}}, - fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "kube-scheduler", runtime.GOARCH, expected), + { + image: constants.KubeControllerManager, + repo: gcrPrefix, + version: testversion, + expected: fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "kube-controller-manager", runtime.GOARCH, expected), + }, + { + image: constants.KubeScheduler, + repo: gcrPrefix, + version: testversion, + expected: fmt.Sprintf("%s/%s-%s:%s", gcrPrefix, "kube-scheduler", runtime.GOARCH, expected), }, } - for _, it := range imageTest { - actual := GetCoreImage(it.t.i, it.t.c, it.t.o) - if actual != it.expected { + for _, rt := range tests { + actual := GetCoreImage(rt.image, rt.repo, rt.version, rt.override) + if actual != rt.expected { t.Errorf( "failed GetCoreImage:\n\texpected: %s\n\t actual: %s", - it.expected, + rt.expected, actual, ) } diff --git a/cmd/kubeadm/app/phases/controlplane/manifests.go b/cmd/kubeadm/app/phases/controlplane/manifests.go index 17e92ce64e5..50fad128452 100644 --- a/cmd/kubeadm/app/phases/controlplane/manifests.go +++ b/cmd/kubeadm/app/phases/controlplane/manifests.go @@ -45,78 +45,66 @@ const ( DefaultCloudConfigPath = "/etc/kubernetes/cloud-config" defaultv17AdmissionControl = "Initializers,NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota" - - etcd = "etcd" - kubeAPIServer = "kube-apiserver" - kubeControllerManager = "kube-controller-manager" - kubeScheduler = "kube-scheduler" ) // WriteStaticPodManifests builds manifest objects based on user provided configuration and then dumps it to disk // where kubelet will pick and schedule them. -func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration) error { - - // TODO: Move the "pkg/util/version".Version object into the internal API instead of always parsing the string - k8sVersion, err := version.ParseSemantic(cfg.KubernetesVersion) - if err != nil { - return err - } +func WriteStaticPodManifests(cfg *kubeadmapi.MasterConfiguration, k8sVersion *version.Version, manifestsDir string) error { // Get the required hostpath mounts mounts := getHostPathVolumesForTheControlPlane(cfg) // Prepare static pod specs staticPodSpecs := map[string]v1.Pod{ - kubeAPIServer: componentPod(v1.Container{ - Name: kubeAPIServer, - Image: images.GetCoreImage(images.KubeAPIServerImage, cfg, cfg.UnifiedControlPlaneImage), + kubeadmconstants.KubeAPIServer: componentPod(v1.Container{ + Name: kubeadmconstants.KubeAPIServer, + Image: images.GetCoreImage(kubeadmconstants.KubeAPIServer, cfg.ImageRepository, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage), Command: getAPIServerCommand(cfg, k8sVersion), - VolumeMounts: mounts.GetVolumeMounts(kubeAPIServer), + VolumeMounts: mounts.GetVolumeMounts(kubeadmconstants.KubeAPIServer), LivenessProbe: componentProbe(int(cfg.API.BindPort), "/healthz", v1.URISchemeHTTPS), Resources: componentResources("250m"), Env: getProxyEnvVars(), - }, mounts.GetVolumes(kubeAPIServer)), - kubeControllerManager: componentPod(v1.Container{ - Name: kubeControllerManager, - Image: images.GetCoreImage(images.KubeControllerManagerImage, cfg, cfg.UnifiedControlPlaneImage), + }, mounts.GetVolumes(kubeadmconstants.KubeAPIServer)), + kubeadmconstants.KubeControllerManager: componentPod(v1.Container{ + Name: kubeadmconstants.KubeControllerManager, + Image: images.GetCoreImage(kubeadmconstants.KubeControllerManager, cfg.ImageRepository, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage), Command: getControllerManagerCommand(cfg, k8sVersion), - VolumeMounts: mounts.GetVolumeMounts(kubeControllerManager), + VolumeMounts: mounts.GetVolumeMounts(kubeadmconstants.KubeControllerManager), LivenessProbe: componentProbe(10252, "/healthz", v1.URISchemeHTTP), Resources: componentResources("200m"), Env: getProxyEnvVars(), - }, mounts.GetVolumes(kubeControllerManager)), - kubeScheduler: componentPod(v1.Container{ - Name: kubeScheduler, - Image: images.GetCoreImage(images.KubeSchedulerImage, cfg, cfg.UnifiedControlPlaneImage), + }, mounts.GetVolumes(kubeadmconstants.KubeControllerManager)), + kubeadmconstants.KubeScheduler: componentPod(v1.Container{ + Name: kubeadmconstants.KubeScheduler, + Image: images.GetCoreImage(kubeadmconstants.KubeScheduler, cfg.ImageRepository, cfg.KubernetesVersion, cfg.UnifiedControlPlaneImage), Command: getSchedulerCommand(cfg), - VolumeMounts: mounts.GetVolumeMounts(kubeScheduler), + VolumeMounts: mounts.GetVolumeMounts(kubeadmconstants.KubeScheduler), LivenessProbe: componentProbe(10251, "/healthz", v1.URISchemeHTTP), Resources: componentResources("100m"), Env: getProxyEnvVars(), - }, mounts.GetVolumes(kubeScheduler)), + }, mounts.GetVolumes(kubeadmconstants.KubeScheduler)), } // Add etcd static pod spec only if external etcd is not configured if len(cfg.Etcd.Endpoints) == 0 { etcdPod := componentPod(v1.Container{ - Name: etcd, + Name: kubeadmconstants.Etcd, Command: getEtcdCommand(cfg), - Image: images.GetCoreImage(images.KubeEtcdImage, cfg, cfg.Etcd.Image), + Image: images.GetCoreImage(kubeadmconstants.Etcd, cfg.ImageRepository, "", cfg.Etcd.Image), // Mount the etcd datadir path read-write so etcd can store data in a more persistent manner VolumeMounts: []v1.VolumeMount{newVolumeMount(etcdVolumeName, cfg.Etcd.DataDir, false)}, LivenessProbe: componentProbe(2379, "/health", v1.URISchemeHTTP), }, []v1.Volume{newVolume(etcdVolumeName, cfg.Etcd.DataDir)}) - staticPodSpecs[etcd] = etcdPod + staticPodSpecs[kubeadmconstants.Etcd] = etcdPod } - manifestsPath := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName) - if err := os.MkdirAll(manifestsPath, 0700); err != nil { - return fmt.Errorf("failed to create directory %q [%v]", manifestsPath, err) + if err := os.MkdirAll(manifestsDir, 0700); err != nil { + return fmt.Errorf("failed to create directory %q [%v]", manifestsDir, err) } for name, spec := range staticPodSpecs { - filename := filepath.Join(manifestsPath, name+".yaml") + filename := kubeadmconstants.GetStaticPodFilepath(name, manifestsDir) serialized, err := yaml.Marshal(spec) if err != nil { return fmt.Errorf("failed to marshal manifest for %q to YAML [%v]", name, err) diff --git a/cmd/kubeadm/app/phases/controlplane/manifests_test.go b/cmd/kubeadm/app/phases/controlplane/manifests_test.go index 25780b00c87..7de0cd63b53 100644 --- a/cmd/kubeadm/app/phases/controlplane/manifests_test.go +++ b/cmd/kubeadm/app/phases/controlplane/manifests_test.go @@ -55,21 +55,25 @@ func TestWriteStaticPodManifests(t *testing.T) { expectedAPIProbePort int32 }{ { - cfg: &kubeadmapi.MasterConfiguration{}, - expectErr: true, + cfg: &kubeadmapi.MasterConfiguration{ + KubernetesVersion: "v1.7.0", + }, + expectErr: false, }, { cfg: &kubeadmapi.MasterConfiguration{ API: kubeadmapi.API{ BindPort: 443, }, + KubernetesVersion: "v1.7.0", }, - expectErr: true, + expectErr: false, expectedAPIProbePort: 443, }, } for _, rt := range tests { - actual := WriteStaticPodManifests(rt.cfg) + + actual := WriteStaticPodManifests(rt.cfg, version.MustParseSemantic(rt.cfg.KubernetesVersion), fmt.Sprintf("%s/etc/kubernetes/manifests", tmpdir)) if (actual == nil) && rt.expectErr { t.Error("expected an error from WriteStaticPodManifests but got none") continue diff --git a/cmd/kubeadm/app/phases/controlplane/volumes.go b/cmd/kubeadm/app/phases/controlplane/volumes.go index 4873595b365..14cf4c0bccb 100644 --- a/cmd/kubeadm/app/phases/controlplane/volumes.go +++ b/cmd/kubeadm/app/phases/controlplane/volumes.go @@ -49,36 +49,36 @@ func getHostPathVolumesForTheControlPlane(cfg *kubeadmapi.MasterConfiguration) c // HostPath volumes for the API Server // Read-only mount for the certificates directory // TODO: Always mount the K8s Certificates directory to a static path inside of the container - mounts.NewHostPathMount(kubeAPIServer, k8sCertsVolumeName, cfg.CertificatesDir, cfg.CertificatesDir, true) + mounts.NewHostPathMount(kubeadmconstants.KubeAPIServer, k8sCertsVolumeName, cfg.CertificatesDir, cfg.CertificatesDir, true) // Read-only mount for the ca certs (/etc/ssl/certs) directory - mounts.NewHostPathMount(kubeAPIServer, caCertsVolumeName, caCertsVolumePath, caCertsVolumePath, true) + mounts.NewHostPathMount(kubeadmconstants.KubeAPIServer, caCertsVolumeName, caCertsVolumePath, caCertsVolumePath, true) // If external etcd is specified, mount the directories needed for accessing the CA/serving certs and the private key if len(cfg.Etcd.Endpoints) != 0 { etcdVols, etcdVolMounts := getEtcdCertVolumes(cfg.Etcd) - mounts.AddHostPathMounts(kubeAPIServer, etcdVols, etcdVolMounts) + mounts.AddHostPathMounts(kubeadmconstants.KubeAPIServer, etcdVols, etcdVolMounts) } // HostPath volumes for the controller manager // Read-only mount for the certificates directory // TODO: Always mount the K8s Certificates directory to a static path inside of the container - mounts.NewHostPathMount(kubeControllerManager, k8sCertsVolumeName, cfg.CertificatesDir, cfg.CertificatesDir, true) + mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, k8sCertsVolumeName, cfg.CertificatesDir, cfg.CertificatesDir, true) // Read-only mount for the ca certs (/etc/ssl/certs) directory - mounts.NewHostPathMount(kubeControllerManager, caCertsVolumeName, caCertsVolumePath, caCertsVolumePath, true) + mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, caCertsVolumeName, caCertsVolumePath, caCertsVolumePath, true) // Read-only mount for the controller manager kubeconfig file controllerManagerKubeConfigFile := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ControllerManagerKubeConfigFileName) - mounts.NewHostPathMount(kubeControllerManager, kubeConfigVolumeName, controllerManagerKubeConfigFile, controllerManagerKubeConfigFile, true) + mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, kubeConfigVolumeName, controllerManagerKubeConfigFile, controllerManagerKubeConfigFile, true) // HostPath volumes for the scheduler // Read-only mount for the scheduler kubeconfig file schedulerKubeConfigFile := filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.SchedulerKubeConfigFileName) - mounts.NewHostPathMount(kubeScheduler, kubeConfigVolumeName, schedulerKubeConfigFile, schedulerKubeConfigFile, true) + mounts.NewHostPathMount(kubeadmconstants.KubeScheduler, kubeConfigVolumeName, schedulerKubeConfigFile, schedulerKubeConfigFile, true) // On some systems were we host-mount /etc/ssl/certs, it is also required to mount /etc/pki. This is needed // due to symlinks pointing from files in /etc/ssl/certs into /etc/pki/ if isPkiVolumeMountNeeded() { - mounts.NewHostPathMount(kubeAPIServer, caCertsPkiVolumeName, caCertsPkiVolumePath, caCertsPkiVolumePath, true) - mounts.NewHostPathMount(kubeControllerManager, caCertsPkiVolumeName, caCertsPkiVolumePath, caCertsPkiVolumePath, true) + mounts.NewHostPathMount(kubeadmconstants.KubeAPIServer, caCertsPkiVolumeName, caCertsPkiVolumePath, caCertsPkiVolumePath, true) + mounts.NewHostPathMount(kubeadmconstants.KubeControllerManager, caCertsPkiVolumeName, caCertsPkiVolumePath, caCertsPkiVolumePath, true) } return mounts diff --git a/cmd/kubeadm/app/phases/controlplane/volumes_test.go b/cmd/kubeadm/app/phases/controlplane/volumes_test.go index 9a9d521dfd5..81f58a28d16 100644 --- a/cmd/kubeadm/app/phases/controlplane/volumes_test.go +++ b/cmd/kubeadm/app/phases/controlplane/volumes_test.go @@ -25,6 +25,7 @@ import ( "k8s.io/api/core/v1" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) func TestNewVolume(t *testing.T) { @@ -304,7 +305,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { Etcd: kubeadmapi.Etcd{}, }, vol: map[string][]v1.Volume{ - kubeAPIServer: { + kubeadmconstants.KubeAPIServer: { { Name: "k8s-certs", VolumeSource: v1.VolumeSource{ @@ -318,7 +319,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { }, }, }, - kubeControllerManager: { + kubeadmconstants.KubeControllerManager: { { Name: "k8s-certs", VolumeSource: v1.VolumeSource{ @@ -338,7 +339,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { }, }, }, - kubeScheduler: { + kubeadmconstants.KubeScheduler: { { Name: "kubeconfig", VolumeSource: v1.VolumeSource{ @@ -348,7 +349,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { }, }, volMount: map[string][]v1.VolumeMount{ - kubeAPIServer: { + kubeadmconstants.KubeAPIServer: { { Name: "k8s-certs", MountPath: testCertsDir, @@ -360,7 +361,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { ReadOnly: true, }, }, - kubeControllerManager: { + kubeadmconstants.KubeControllerManager: { { Name: "k8s-certs", MountPath: testCertsDir, @@ -377,7 +378,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { ReadOnly: true, }, }, - kubeScheduler: { + kubeadmconstants.KubeScheduler: { { Name: "kubeconfig", MountPath: "/etc/kubernetes/scheduler.conf", @@ -398,7 +399,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { }, }, vol: map[string][]v1.Volume{ - kubeAPIServer: { + kubeadmconstants.KubeAPIServer: { { Name: "k8s-certs", VolumeSource: v1.VolumeSource{ @@ -424,7 +425,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { }, }, }, - kubeControllerManager: { + kubeadmconstants.KubeControllerManager: { { Name: "k8s-certs", VolumeSource: v1.VolumeSource{ @@ -444,7 +445,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { }, }, }, - kubeScheduler: { + kubeadmconstants.KubeScheduler: { { Name: "kubeconfig", VolumeSource: v1.VolumeSource{ @@ -454,7 +455,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { }, }, volMount: map[string][]v1.VolumeMount{ - kubeAPIServer: { + kubeadmconstants.KubeAPIServer: { { Name: "k8s-certs", MountPath: testCertsDir, @@ -476,7 +477,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { ReadOnly: true, }, }, - kubeControllerManager: { + kubeadmconstants.KubeControllerManager: { { Name: "k8s-certs", MountPath: testCertsDir, @@ -493,7 +494,7 @@ func TestGetHostPathVolumesForTheControlPlane(t *testing.T) { ReadOnly: true, }, }, - kubeScheduler: { + kubeadmconstants.KubeScheduler: { { Name: "kubeconfig", MountPath: "/etc/kubernetes/scheduler.conf", diff --git a/cmd/kubeadm/app/phases/selfhosting/podspec_mutation.go b/cmd/kubeadm/app/phases/selfhosting/podspec_mutation.go index cf7b2edae7a..bcddca3d74b 100644 --- a/cmd/kubeadm/app/phases/selfhosting/podspec_mutation.go +++ b/cmd/kubeadm/app/phases/selfhosting/podspec_mutation.go @@ -25,19 +25,19 @@ import ( // mutatePodSpec makes a Static Pod-hosted PodSpec suitable for self-hosting func mutatePodSpec(cfg *kubeadmapi.MasterConfiguration, name string, podSpec *v1.PodSpec) { mutators := map[string][]func(*kubeadmapi.MasterConfiguration, *v1.PodSpec){ - kubeAPIServer: { + kubeadmconstants.KubeAPIServer: { addNodeSelectorToPodSpec, setMasterTolerationOnPodSpec, setRightDNSPolicyOnPodSpec, setVolumesOnKubeAPIServerPodSpec, }, - kubeControllerManager: { + kubeadmconstants.KubeControllerManager: { addNodeSelectorToPodSpec, setMasterTolerationOnPodSpec, setRightDNSPolicyOnPodSpec, setVolumesOnKubeControllerManagerPodSpec, }, - kubeScheduler: { + kubeadmconstants.KubeScheduler: { addNodeSelectorToPodSpec, setMasterTolerationOnPodSpec, setRightDNSPolicyOnPodSpec, diff --git a/cmd/kubeadm/app/phases/selfhosting/podspec_mutation_test.go b/cmd/kubeadm/app/phases/selfhosting/podspec_mutation_test.go index e84214bf8b8..9b2ce07b38b 100644 --- a/cmd/kubeadm/app/phases/selfhosting/podspec_mutation_test.go +++ b/cmd/kubeadm/app/phases/selfhosting/podspec_mutation_test.go @@ -32,7 +32,7 @@ func TestMutatePodSpec(t *testing.T) { expected v1.PodSpec }{ { - component: kubeAPIServer, + component: kubeadmconstants.KubeAPIServer, podSpec: &v1.PodSpec{}, expected: v1.PodSpec{ NodeSelector: map[string]string{ @@ -45,7 +45,7 @@ func TestMutatePodSpec(t *testing.T) { }, }, { - component: kubeControllerManager, + component: kubeadmconstants.KubeControllerManager, podSpec: &v1.PodSpec{}, expected: v1.PodSpec{ NodeSelector: map[string]string{ @@ -58,7 +58,7 @@ func TestMutatePodSpec(t *testing.T) { }, }, { - component: kubeScheduler, + component: kubeadmconstants.KubeScheduler, podSpec: &v1.PodSpec{}, expected: v1.PodSpec{ NodeSelector: map[string]string{ diff --git a/cmd/kubeadm/app/phases/selfhosting/selfhosting.go b/cmd/kubeadm/app/phases/selfhosting/selfhosting.go index 66762dc0493..c6ad27eff7c 100644 --- a/cmd/kubeadm/app/phases/selfhosting/selfhosting.go +++ b/cmd/kubeadm/app/phases/selfhosting/selfhosting.go @@ -20,7 +20,6 @@ import ( "fmt" "io/ioutil" "os" - "path/filepath" "time" "k8s.io/api/core/v1" @@ -35,14 +34,6 @@ import ( "k8s.io/kubernetes/pkg/api" ) -const ( - kubeAPIServer = "kube-apiserver" - kubeControllerManager = "kube-controller-manager" - kubeScheduler = "kube-scheduler" - - selfHostingPrefix = "self-hosted-" -) - // CreateSelfHostedControlPlane is responsible for turning a Static Pod-hosted control plane to a self-hosted one // It achieves that task this way: // 1. Load the Static Pod specification from disk (from /etc/kubernetes/manifests) @@ -64,12 +55,9 @@ func CreateSelfHostedControlPlane(cfg *kubeadmapi.MasterConfiguration, client cl return err } - // The sequence here isn't set in stone, but seems to work well to start with the API server - components := []string{kubeAPIServer, kubeControllerManager, kubeScheduler} - - for _, componentName := range components { + for _, componentName := range kubeadmconstants.MasterComponents { start := time.Now() - manifestPath := buildStaticManifestFilepath(componentName) + manifestPath := kubeadmconstants.GetStaticPodFilepath(componentName, kubeadmconstants.GetStaticPodDirectory()) // Load the Static Pod file in order to be able to create a self-hosted variant of that file podSpec, err := loadPodSpecFromFile(manifestPath) @@ -116,17 +104,17 @@ func buildDaemonSet(cfg *kubeadmapi.MasterConfiguration, name string, podSpec *v // Return a DaemonSet based on that Spec return &extensions.DaemonSet{ ObjectMeta: metav1.ObjectMeta{ - Name: addSelfHostedPrefix(name), + Name: kubeadmconstants.AddSelfHostedPrefix(name), Namespace: metav1.NamespaceSystem, Labels: map[string]string{ - "k8s-app": addSelfHostedPrefix(name), + "k8s-app": kubeadmconstants.AddSelfHostedPrefix(name), }, }, Spec: extensions.DaemonSetSpec{ Template: v1.PodTemplateSpec{ ObjectMeta: metav1.ObjectMeta{ Labels: map[string]string{ - "k8s-app": addSelfHostedPrefix(name), + "k8s-app": kubeadmconstants.AddSelfHostedPrefix(name), }, }, Spec: *podSpec, @@ -151,17 +139,7 @@ func loadPodSpecFromFile(manifestPath string) (*v1.PodSpec, error) { return &staticPod.Spec, nil } -// buildStaticManifestFilepath returns the location on the disk where the Static Pod should be present -func buildStaticManifestFilepath(componentName string) string { - return filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.ManifestsSubDirName, componentName+".yaml") -} - // buildSelfHostedWorkloadLabelQuery creates the right query for matching a self-hosted Pod func buildSelfHostedWorkloadLabelQuery(componentName string) string { - return fmt.Sprintf("k8s-app=%s", addSelfHostedPrefix(componentName)) -} - -// addSelfHostedPrefix adds the self-hosted- prefix to the component name -func addSelfHostedPrefix(componentName string) string { - return fmt.Sprintf("%s%s", selfHostingPrefix, componentName) + return fmt.Sprintf("k8s-app=%s", kubeadmconstants.AddSelfHostedPrefix(componentName)) } diff --git a/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go b/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go index 558276b5c29..f8d17589ee5 100644 --- a/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go +++ b/cmd/kubeadm/app/phases/selfhosting/selfhosting_test.go @@ -25,6 +25,7 @@ import ( "github.com/ghodss/yaml" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) const ( @@ -543,17 +544,17 @@ func TestBuildDaemonSet(t *testing.T) { dsBytes []byte }{ { - component: kubeAPIServer, + component: kubeadmconstants.KubeAPIServer, podBytes: []byte(testAPIServerPod), dsBytes: []byte(testAPIServerDaemonSet), }, { - component: kubeControllerManager, + component: kubeadmconstants.KubeControllerManager, podBytes: []byte(testControllerManagerPod), dsBytes: []byte(testControllerManagerDaemonSet), }, { - component: kubeScheduler, + component: kubeadmconstants.KubeScheduler, podBytes: []byte(testSchedulerPod), dsBytes: []byte(testSchedulerDaemonSet), }, From 2eafc562fa7abe707dc33a567c80692be9d6a0d0 Mon Sep 17 00:00:00 2001 From: Shyam Jeedigunta Date: Tue, 8 Aug 2017 14:09:15 +0200 Subject: [PATCH 102/183] Block on master-creation step for large clusters (>50 nodes) in kube-up --- cluster/gce/util.sh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cluster/gce/util.sh b/cluster/gce/util.sh index c430cb6d2a1..4ff33a801aa 100755 --- a/cluster/gce/util.sh +++ b/cluster/gce/util.sh @@ -953,6 +953,7 @@ function delete-subnetworks() { # # Assumed vars: # KUBE_TEMP: temporary directory +# NUM_NODES: #nodes in the cluster # # Args: # $1: host name @@ -1044,7 +1045,13 @@ function create-master() { create-certs "${MASTER_RESERVED_IP}" create-etcd-certs ${MASTER_NAME} - create-master-instance "${MASTER_RESERVED_IP}" & + if [[ "${NUM_NODES}" -ge "50" ]]; then + # We block on master creation for large clusters to avoid doing too much + # unnecessary work in case master start-up fails (like creation of nodes). + create-master-instance "${MASTER_RESERVED_IP}" + else + create-master-instance "${MASTER_RESERVED_IP}" & + fi } # Adds master replica to etcd cluster. From e465962bf74a87f36f17c967ef1d4eefc98f6470 Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Mon, 31 Jul 2017 15:37:32 +0200 Subject: [PATCH 103/183] Remove ScheduledJobs support --- pkg/api/defaulting_test.go | 2 - pkg/apis/batch/register.go | 2 - pkg/kubectl/cmd/util/factory_client_access.go | 2 - pkg/registry/batch/rest/storage_batch.go | 15 ++----- .../authorizer/rbac/bootstrappolicy/policy.go | 6 +-- .../src/k8s.io/api/batch/v2alpha1/register.go | 2 - test/e2e/apps/types.go | 3 +- test/e2e/kubectl/kubectl.go | 40 ------------------- .../etcd/etcd_storage_path_test.go | 5 --- 9 files changed, 8 insertions(+), 69 deletions(-) diff --git a/pkg/api/defaulting_test.go b/pkg/api/defaulting_test.go index 562f1fda8b5..1e9823a97f3 100644 --- a/pkg/api/defaulting_test.go +++ b/pkg/api/defaulting_test.go @@ -95,8 +95,6 @@ func TestDefaulting(t *testing.T) { {Group: "batch", Version: "v2alpha1", Kind: "Job"}: {}, {Group: "batch", Version: "v2alpha1", Kind: "JobList"}: {}, {Group: "batch", Version: "v2alpha1", Kind: "JobTemplate"}: {}, - {Group: "batch", Version: "v2alpha1", Kind: "ScheduledJob"}: {}, - {Group: "batch", Version: "v2alpha1", Kind: "ScheduledJobList"}: {}, {Group: "certificates.k8s.io", Version: "v1beta1", Kind: "CertificateSigningRequest"}: {}, {Group: "certificates.k8s.io", Version: "v1beta1", Kind: "CertificateSigningRequestList"}: {}, {Group: "componentconfig", Version: "v1alpha1", Kind: "KubeProxyConfiguration"}: {}, diff --git a/pkg/apis/batch/register.go b/pkg/apis/batch/register.go index 4601ca4ec14..49414bd3fce 100644 --- a/pkg/apis/batch/register.go +++ b/pkg/apis/batch/register.go @@ -51,7 +51,5 @@ func addKnownTypes(scheme *runtime.Scheme) error { &CronJob{}, &CronJobList{}, ) - scheme.AddKnownTypeWithName(SchemeGroupVersion.WithKind("ScheduledJob"), &CronJob{}) - scheme.AddKnownTypeWithName(SchemeGroupVersion.WithKind("ScheduledJobList"), &CronJobList{}) return nil } diff --git a/pkg/kubectl/cmd/util/factory_client_access.go b/pkg/kubectl/cmd/util/factory_client_access.go index 7e04fb8e80a..ebcc2a8e16f 100644 --- a/pkg/kubectl/cmd/util/factory_client_access.go +++ b/pkg/kubectl/cmd/util/factory_client_access.go @@ -474,7 +474,6 @@ const ( DeploymentBasicAppsV1Beta1GeneratorName = "deployment-basic/apps.v1beta1" JobV1GeneratorName = "job/v1" CronJobV2Alpha1GeneratorName = "cronjob/v2alpha1" - ScheduledJobV2Alpha1GeneratorName = "scheduledjob/v2alpha1" NamespaceV1GeneratorName = "namespace/v1" ResourceQuotaV1GeneratorName = "resourcequotas/v1" SecretV1GeneratorName = "secret/v1" @@ -521,7 +520,6 @@ func DefaultGenerators(cmdName string) map[string]kubectl.Generator { DeploymentV1Beta1GeneratorName: kubectl.DeploymentV1Beta1{}, DeploymentAppsV1Beta1GeneratorName: kubectl.DeploymentAppsV1Beta1{}, JobV1GeneratorName: kubectl.JobV1{}, - ScheduledJobV2Alpha1GeneratorName: kubectl.CronJobV2Alpha1{}, CronJobV2Alpha1GeneratorName: kubectl.CronJobV2Alpha1{}, } case "autoscale": diff --git a/pkg/registry/batch/rest/storage_batch.go b/pkg/registry/batch/rest/storage_batch.go index bc16427c305..c11d1ddc155 100644 --- a/pkg/registry/batch/rest/storage_batch.go +++ b/pkg/registry/batch/rest/storage_batch.go @@ -19,7 +19,6 @@ package rest import ( batchapiv1 "k8s.io/api/batch/v1" batchapiv2alpha1 "k8s.io/api/batch/v2alpha1" - "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/rest" genericapiserver "k8s.io/apiserver/pkg/server" @@ -37,18 +36,14 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorag // If you add a version here, be sure to add an entry in `k8s.io/kubernetes/cmd/kube-apiserver/app/aggregator.go with specific priorities. // TODO refactor the plumbing to provide the information in the APIGroupInfo - if apiResourceConfigSource.AnyResourcesForVersionEnabled(batchapiv2alpha1.SchemeGroupVersion) { - apiGroupInfo.VersionedResourcesStorageMap[batchapiv2alpha1.SchemeGroupVersion.Version] = p.v2alpha1Storage(apiResourceConfigSource, restOptionsGetter) - apiGroupInfo.GroupMeta.GroupVersion = batchapiv2alpha1.SchemeGroupVersion - apiGroupInfo.SubresourceGroupVersionKind = map[string]schema.GroupVersionKind{ - "scheduledjobs": batchapiv2alpha1.SchemeGroupVersion.WithKind("ScheduledJob"), - "scheduledjobs/status": batchapiv2alpha1.SchemeGroupVersion.WithKind("ScheduledJob"), - } - } if apiResourceConfigSource.AnyResourcesForVersionEnabled(batchapiv1.SchemeGroupVersion) { apiGroupInfo.VersionedResourcesStorageMap[batchapiv1.SchemeGroupVersion.Version] = p.v1Storage(apiResourceConfigSource, restOptionsGetter) apiGroupInfo.GroupMeta.GroupVersion = batchapiv1.SchemeGroupVersion } + if apiResourceConfigSource.AnyResourcesForVersionEnabled(batchapiv2alpha1.SchemeGroupVersion) { + apiGroupInfo.VersionedResourcesStorageMap[batchapiv2alpha1.SchemeGroupVersion.Version] = p.v2alpha1Storage(apiResourceConfigSource, restOptionsGetter) + apiGroupInfo.GroupMeta.GroupVersion = batchapiv2alpha1.SchemeGroupVersion + } return apiGroupInfo, true } @@ -73,8 +68,6 @@ func (p RESTStorageProvider) v2alpha1Storage(apiResourceConfigSource serverstora cronJobsStorage, cronJobsStatusStorage := cronjobstore.NewREST(restOptionsGetter) storage["cronjobs"] = cronJobsStorage storage["cronjobs/status"] = cronJobsStatusStorage - storage["scheduledjobs"] = cronJobsStorage - storage["scheduledjobs/status"] = cronJobsStatusStorage } return storage } diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go index 9ae96202416..f69dfabd6ea 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/policy.go @@ -181,7 +181,7 @@ func ClusterRoles() []rbac.ClusterRole { rbac.NewRule(ReadWrite...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(), - rbac.NewRule(ReadWrite...).Groups(batchGroup).Resources("jobs", "cronjobs", "scheduledjobs").RuleOrDie(), + rbac.NewRule(ReadWrite...).Groups(batchGroup).Resources("jobs", "cronjobs").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(extensionsGroup).Resources("daemonsets", "deployments", "deployments/scale", "deployments/rollback", "ingresses", @@ -213,7 +213,7 @@ func ClusterRoles() []rbac.ClusterRole { rbac.NewRule(ReadWrite...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(), - rbac.NewRule(ReadWrite...).Groups(batchGroup).Resources("jobs", "cronjobs", "scheduledjobs").RuleOrDie(), + rbac.NewRule(ReadWrite...).Groups(batchGroup).Resources("jobs", "cronjobs").RuleOrDie(), rbac.NewRule(ReadWrite...).Groups(extensionsGroup).Resources("daemonsets", "deployments", "deployments/scale", "deployments/rollback", "ingresses", @@ -237,7 +237,7 @@ func ClusterRoles() []rbac.ClusterRole { rbac.NewRule(Read...).Groups(autoscalingGroup).Resources("horizontalpodautoscalers").RuleOrDie(), - rbac.NewRule(Read...).Groups(batchGroup).Resources("jobs", "cronjobs", "scheduledjobs").RuleOrDie(), + rbac.NewRule(Read...).Groups(batchGroup).Resources("jobs", "cronjobs").RuleOrDie(), rbac.NewRule(Read...).Groups(extensionsGroup).Resources("daemonsets", "deployments", "deployments/scale", "ingresses", "replicasets", "replicasets/scale", "replicationcontrollers/scale").RuleOrDie(), diff --git a/staging/src/k8s.io/api/batch/v2alpha1/register.go b/staging/src/k8s.io/api/batch/v2alpha1/register.go index b1c512f3ae5..4b02c0f481c 100644 --- a/staging/src/k8s.io/api/batch/v2alpha1/register.go +++ b/staging/src/k8s.io/api/batch/v2alpha1/register.go @@ -48,8 +48,6 @@ func addKnownTypes(scheme *runtime.Scheme) error { &CronJob{}, &CronJobList{}, ) - scheme.AddKnownTypeWithName(SchemeGroupVersion.WithKind("ScheduledJob"), &CronJob{}) - scheme.AddKnownTypeWithName(SchemeGroupVersion.WithKind("ScheduledJobList"), &CronJobList{}) metav1.AddToGroupVersion(scheme, SchemeGroupVersion) return nil } diff --git a/test/e2e/apps/types.go b/test/e2e/apps/types.go index 6e54767e6bb..2f875e947ab 100644 --- a/test/e2e/apps/types.go +++ b/test/e2e/apps/types.go @@ -32,6 +32,5 @@ const ( ) var ( - CronJobGroupVersionResource = schema.GroupVersionResource{Group: batchv2alpha1.GroupName, Version: "v2alpha1", Resource: "cronjobs"} - ScheduledJobGroupVersionResource = schema.GroupVersionResource{Group: batchv2alpha1.GroupName, Version: "v2alpha1", Resource: "scheduledjobs"} + CronJobGroupVersionResource = schema.GroupVersionResource{Group: batchv2alpha1.GroupName, Version: "v2alpha1", Resource: "cronjobs"} ) diff --git a/test/e2e/kubectl/kubectl.go b/test/e2e/kubectl/kubectl.go index 8f15cfdf7b6..9910c97ea6b 100644 --- a/test/e2e/kubectl/kubectl.go +++ b/test/e2e/kubectl/kubectl.go @@ -146,8 +146,6 @@ var ( kubectlContainerExitCodeVersion = utilversion.MustParseSemantic("v1.4.0-alpha.3") CronJobGroupVersionResource = schema.GroupVersionResource{Group: batchv2alpha1.GroupName, Version: "v2alpha1", Resource: "cronjobs"} - - ScheduledJobGroupVersionResource = schema.GroupVersionResource{Group: batchv2alpha1.GroupName, Version: "v2alpha1", Resource: "scheduledjobs"} ) // Stops everything from filePath from namespace ns and checks if everything matching selectors from the given namespace is correctly stopped. @@ -199,44 +197,6 @@ var _ = SIGDescribe("Kubectl alpha client", func() { // Customized Wait / ForEach wrapper for this test. These demonstrate the - framework.KubeDescribe("Kubectl run ScheduledJob", func() { - var nsFlag string - var sjName string - - BeforeEach(func() { - nsFlag = fmt.Sprintf("--namespace=%v", ns) - sjName = "e2e-test-echo-scheduledjob" - }) - - AfterEach(func() { - framework.RunKubectlOrDie("delete", "cronjobs", sjName, nsFlag) - }) - - It("should create a ScheduledJob", func() { - framework.SkipIfMissingResource(f.ClientPool, ScheduledJobGroupVersionResource, f.Namespace.Name) - - schedule := "*/5 * * * ?" - framework.RunKubectlOrDie("run", sjName, "--restart=OnFailure", "--generator=scheduledjob/v2alpha1", - "--schedule="+schedule, "--image="+busyboxImage, nsFlag) - By("verifying the ScheduledJob " + sjName + " was created") - sj, err := c.BatchV2alpha1().CronJobs(ns).Get(sjName, metav1.GetOptions{}) - if err != nil { - framework.Failf("Failed getting ScheduledJob %s: %v", sjName, err) - } - if sj.Spec.Schedule != schedule { - framework.Failf("Failed creating a ScheduledJob with correct schedule %s, but got %s", schedule, sj.Spec.Schedule) - } - containers := sj.Spec.JobTemplate.Spec.Template.Spec.Containers - if containers == nil || len(containers) != 1 || containers[0].Image != busyboxImage { - framework.Failf("Failed creating ScheduledJob %s for 1 pod with expected image %s: %#v", sjName, busyboxImage, containers) - } - restartPolicy := sj.Spec.JobTemplate.Spec.Template.Spec.RestartPolicy - if sj.Spec.JobTemplate.Spec.Template.Spec.RestartPolicy != v1.RestartPolicyOnFailure { - framework.Failf("Failed creating a ScheduledJob with correct restart policy %s, but got %s", v1.RestartPolicyOnFailure, restartPolicy) - } - }) - }) - framework.KubeDescribe("Kubectl run CronJob", func() { var nsFlag string var cjName string diff --git a/test/integration/etcd/etcd_storage_path_test.go b/test/integration/etcd/etcd_storage_path_test.go index 8ccfa5bdc62..a05d4694b61 100644 --- a/test/integration/etcd/etcd_storage_path_test.go +++ b/test/integration/etcd/etcd_storage_path_test.go @@ -197,11 +197,6 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { stub: `{"metadata": {"name": "cj1"}, "spec": {"jobTemplate": {"spec": {"template": {"metadata": {"labels": {"controller-uid": "uid0"}}, "spec": {"containers": [{"image": "fedora:latest", "name": "container0"}], "dnsPolicy": "ClusterFirst", "restartPolicy": "Never"}}}}, "schedule": "* * * * *"}}`, expectedEtcdPath: "/registry/cronjobs/etcdstoragepathtestnamespace/cj1", }, - gvr("batch", "v2alpha1", "scheduledjobs"): { - stub: `{"metadata": {"name": "cj2"}, "spec": {"jobTemplate": {"spec": {"template": {"metadata": {"labels": {"controller-uid": "uid0"}}, "spec": {"containers": [{"image": "fedora:latest", "name": "container0"}], "dnsPolicy": "ClusterFirst", "restartPolicy": "Never"}}}}, "schedule": "* * * * *"}}`, - expectedEtcdPath: "/registry/cronjobs/etcdstoragepathtestnamespace/cj2", - expectedGVK: gvkP("batch", "v2alpha1", "CronJob"), // scheduledjobs were deprecated by cronjobs - }, // -- // k8s.io/kubernetes/pkg/apis/certificates/v1beta1 From dd0338474725d1f7ab8e04b1bf6474313b3dd3a7 Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Tue, 8 Aug 2017 15:40:27 +0200 Subject: [PATCH 104/183] Detect systemd on mounter startup --- pkg/util/mount/mount.go | 9 ------ pkg/util/mount/mount_linux.go | 48 +++++++++++++++++++++++++---- pkg/util/mount/mount_unsupported.go | 9 ++++++ 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/pkg/util/mount/mount.go b/pkg/util/mount/mount.go index 44058042d50..8315f7ea377 100644 --- a/pkg/util/mount/mount.go +++ b/pkg/util/mount/mount.go @@ -94,15 +94,6 @@ func (mounter *SafeFormatAndMount) FormatAndMount(source string, target string, return mounter.formatAndMount(source, target, fstype, options) } -// New returns a mount.Interface for the current system. -// It provides options to override the default mounter behavior. -// mounterPath allows using an alternative to `/bin/mount` for mounting. -func New(mounterPath string) Interface { - return &Mounter{ - mounterPath: mounterPath, - } -} - // GetMountRefs finds all other references to the device referenced // by mountPath; returns a list of paths. func GetMountRefs(mounter Interface, mountPath string) ([]string, error) { diff --git a/pkg/util/mount/mount_linux.go b/pkg/util/mount/mount_linux.go index ae8a96cba3b..e9167facfc5 100644 --- a/pkg/util/mount/mount_linux.go +++ b/pkg/util/mount/mount_linux.go @@ -55,6 +55,17 @@ const ( // kubelet is running in the host's root mount namespace. type Mounter struct { mounterPath string + withSystemd bool +} + +// New returns a mount.Interface for the current system. +// It provides options to override the default mounter behavior. +// mounterPath allows using an alternative to `/bin/mount` for mounting. +func New(mounterPath string) Interface { + return &Mounter{ + mounterPath: mounterPath, + withSystemd: detectSystemd(), + } } // Mount mounts source to target as fstype with given options. 'source' and 'fstype' must @@ -68,18 +79,18 @@ func (mounter *Mounter) Mount(source string, target string, fstype string, optio mounterPath := "" bind, bindRemountOpts := isBind(options) if bind { - err := doMount(mounterPath, defaultMountCommand, source, target, fstype, []string{"bind"}) + err := mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, []string{"bind"}) if err != nil { return err } - return doMount(mounterPath, defaultMountCommand, source, target, fstype, bindRemountOpts) + return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindRemountOpts) } // The list of filesystems that require containerized mounter on GCI image cluster fsTypesNeedMounter := sets.NewString("nfs", "glusterfs", "ceph", "cifs") if fsTypesNeedMounter.Has(fstype) { mounterPath = mounter.mounterPath } - return doMount(mounterPath, defaultMountCommand, source, target, fstype, options) + return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options) } // isBind detects whether a bind mount is being requested and makes the remount options to @@ -108,14 +119,14 @@ func isBind(options []string) (bool, []string) { } // doMount runs the mount command. mounterPath is the path to mounter binary if containerized mounter is used. -func doMount(mounterPath string, mountCmd string, source string, target string, fstype string, options []string) error { +func (m *Mounter) doMount(mounterPath string, mountCmd string, source string, target string, fstype string, options []string) error { mountArgs := makeMountArgs(source, target, fstype, options) if len(mounterPath) > 0 { mountArgs = append([]string{mountCmd}, mountArgs...) mountCmd = mounterPath } - if systemdRunPath, err := exec.LookPath("systemd-run"); err == nil { + if m.withSystemd { // Try to run mount via systemd-run --scope. This will escape the // service where kubelet runs and any fuse daemons will be started in a // specific scope. kubelet service than can be restarted without killing @@ -138,7 +149,7 @@ func doMount(mounterPath string, mountCmd string, source string, target string, // // systemd-mount is not used because it's too new for older distros // (CentOS 7, Debian Jessie). - mountCmd, mountArgs = addSystemdScope(systemdRunPath, target, mountCmd, mountArgs) + mountCmd, mountArgs = addSystemdScope("systemd-run", target, mountCmd, mountArgs) } else { // No systemd-run on the host (or we failed to check it), assume kubelet // does not run as a systemd service. @@ -157,6 +168,31 @@ func doMount(mounterPath string, mountCmd string, source string, target string, return err } +// detectSystemd returns true if OS runs with systemd as init. When not sure +// (permission errors, ...), it returns false. +// There may be different ways how to detect systemd, this one makes sure that +// systemd-runs (needed by Mount()) works. +func detectSystemd() bool { + if _, err := exec.LookPath("systemd-run"); err != nil { + glog.V(2).Infof("Detected OS without systemd") + return false + } + // Try to run systemd-run --scope /bin/true, that should be enough + // to make sure that systemd is really running and not just installed, + // which happens when running in a container with a systemd-based image + // but with different pid 1. + cmd := exec.Command("systemd-run", "--description=Kubernetes systemd probe", "--scope", "true") + output, err := cmd.CombinedOutput() + if err != nil { + glog.V(2).Infof("Cannot run systemd-run, assuming non-systemd OS") + glog.V(4).Infof("systemd-run failed with: %v", err) + glog.V(4).Infof("systemd-run output: %s", string(output)) + return false + } + glog.V(2).Infof("Detected OS with systemd") + return true +} + // makeMountArgs makes the arguments to the mount(8) command. func makeMountArgs(source, target, fstype string, options []string) []string { // Build mount command as follows: diff --git a/pkg/util/mount/mount_unsupported.go b/pkg/util/mount/mount_unsupported.go index f9abab813dc..2119b1a0ad6 100644 --- a/pkg/util/mount/mount_unsupported.go +++ b/pkg/util/mount/mount_unsupported.go @@ -22,6 +22,15 @@ type Mounter struct { mounterPath string } +// New returns a mount.Interface for the current system. +// It provides options to override the default mounter behavior. +// mounterPath allows using an alternative to `/bin/mount` for mounting. +func New(mounterPath string) Interface { + return &Mounter{ + mounterPath: mounterPath, + } +} + func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error { return nil } From 0cb8bae6ac6cc1d331052194e3e290d001e45dab Mon Sep 17 00:00:00 2001 From: Maciej Szulik Date: Mon, 31 Jul 2017 15:37:51 +0200 Subject: [PATCH 105/183] Generated changes after removing ScheduledJobs --- api/openapi-spec/swagger.json | 1008 -------- api/swagger-spec/batch_v2alpha1.json | 1026 -------- .../batch/v2alpha1/operations.html | 2054 +---------------- pkg/registry/batch/rest/BUILD | 1 - .../testdata/cluster-roles.yaml | 3 - 5 files changed, 17 insertions(+), 4075 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 02b632f57de..e0d9b512794 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -31428,710 +31428,6 @@ } ] }, - "/apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs": { - "get": { - "description": "list or watch objects of kind ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "listBatchV2alpha1NamespacedScheduledJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "post": { - "description": "create a ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "createBatchV2alpha1NamespacedScheduledJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "post", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "delete": { - "description": "delete collection of ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "deleteBatchV2alpha1CollectionNamespacedScheduledJob", - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "deletecollection", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}": { - "get": { - "description": "read the specified ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "readBatchV2alpha1NamespacedScheduledJob", - "parameters": [ - { - "uniqueItems": true, - "type": "boolean", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "name": "exact", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "name": "export", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "put": { - "description": "replace the specified ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "replaceBatchV2alpha1NamespacedScheduledJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "delete": { - "description": "delete a ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "deleteBatchV2alpha1NamespacedScheduledJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" - } - }, - { - "uniqueItems": true, - "type": "integer", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "name": "gracePeriodSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "name": "orphanDependents", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "name": "propagationPolicy", - "in": "query" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "delete", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "patch": { - "description": "partially update the specified ScheduledJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "patchBatchV2alpha1NamespacedScheduledJob", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ScheduledJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}/status": { - "get": { - "description": "read status of the specified ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "readBatchV2alpha1NamespacedScheduledJobStatus", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "get", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "put": { - "description": "replace status of the specified ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "replaceBatchV2alpha1NamespacedScheduledJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "put", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "patch": { - "description": "partially update status of the specified ScheduledJob", - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "patchBatchV2alpha1NamespacedScheduledJobStatus", - "parameters": [ - { - "name": "body", - "in": "body", - "required": true, - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" - } - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJob" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "patch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "name of the ScheduledJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/scheduledjobs": { - "get": { - "description": "list or watch objects of kind ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "listBatchV2alpha1ScheduledJobForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.api.batch.v2alpha1.CronJobList" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "list", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, "/apis/batch/v2alpha1/watch/cronjobs": { "get": { "description": "watch individual changes to a list of CronJob", @@ -32426,300 +31722,6 @@ } ] }, - "/apis/batch/v2alpha1/watch/namespaces/{namespace}/scheduledjobs": { - "get": { - "description": "watch individual changes to a list of ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "watchBatchV2alpha1NamespacedScheduledJobList", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/watch/namespaces/{namespace}/scheduledjobs/{name}": { - "get": { - "description": "watch changes to an object of kind ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "watchBatchV2alpha1NamespacedScheduledJob", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watch", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "name of the ScheduledJob", - "name": "name", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "object name and auth scope, such as for teams and projects", - "name": "namespace", - "in": "path", - "required": true - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, - "/apis/batch/v2alpha1/watch/scheduledjobs": { - "get": { - "description": "watch individual changes to a list of ScheduledJob", - "consumes": [ - "*/*" - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "schemes": [ - "https" - ], - "tags": [ - "batch_v2alpha1" - ], - "operationId": "watchBatchV2alpha1ScheduledJobListForAllNamespaces", - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" - } - }, - "401": { - "description": "Unauthorized" - } - }, - "x-kubernetes-action": "watchlist", - "x-kubernetes-group-version-kind": { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" - } - }, - "parameters": [ - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "name": "fieldSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "If true, partially initialized resources are included in the response.", - "name": "includeUninitialized", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "name": "labelSelector", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "If 'true', then the output is pretty printed.", - "name": "pretty", - "in": "query" - }, - { - "uniqueItems": true, - "type": "string", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "name": "resourceVersion", - "in": "query" - }, - { - "uniqueItems": true, - "type": "integer", - "description": "Timeout for the list/watch call.", - "name": "timeoutSeconds", - "in": "query" - }, - { - "uniqueItems": true, - "type": "boolean", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "name": "watch", - "in": "query" - } - ] - }, "/apis/certificates.k8s.io/": { "get": { "description": "get information of a group", @@ -53598,11 +52600,6 @@ "group": "batch", "kind": "CronJob", "version": "v2alpha1" - }, - { - "group": "batch", - "kind": "ScheduledJob", - "version": "v2alpha1" } ] }, @@ -53637,11 +52634,6 @@ "group": "batch", "kind": "CronJobList", "version": "v2alpha1" - }, - { - "group": "batch", - "kind": "ScheduledJobList", - "version": "v2alpha1" } ] }, diff --git a/api/swagger-spec/batch_v2alpha1.json b/api/swagger-spec/batch_v2alpha1.json index 3a9c6a88db8..a04e6d0ce24 100644 --- a/api/swagger-spec/batch_v2alpha1.json +++ b/api/swagger-spec/batch_v2alpha1.json @@ -1034,1032 +1034,6 @@ } ] }, - { - "path": "/apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs", - "description": "API at /apis/batch/v2alpha1", - "operations": [ - { - "type": "v2alpha1.CronJobList", - "method": "GET", - "summary": "list or watch objects of kind ScheduledJob", - "nickname": "listNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJobList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v2alpha1.CronJob", - "method": "POST", - "summary": "create a ScheduledJob", - "nickname": "createNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v2alpha1.CronJob", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJob" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete collection of ScheduledJob", - "nickname": "deletecollectionNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/batch/v2alpha1/watch/namespaces/{namespace}/scheduledjobs", - "description": "API at /apis/batch/v2alpha1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ScheduledJob", - "nickname": "watchNamespacedScheduledJobList", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}", - "description": "API at /apis/batch/v2alpha1", - "operations": [ - { - "type": "v2alpha1.CronJob", - "method": "GET", - "summary": "read the specified ScheduledJob", - "nickname": "readNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "export", - "description": "Should this value be exported. Export strips fields that a user can not specify.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "exact", - "description": "Should the export be exact. Exact export maintains cluster-specific fields like 'Namespace'.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJob" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v2alpha1.CronJob", - "method": "PUT", - "summary": "replace the specified ScheduledJob", - "nickname": "replaceNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v2alpha1.CronJob", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJob" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v2alpha1.CronJob", - "method": "PATCH", - "summary": "partially update the specified ScheduledJob", - "nickname": "patchNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJob" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - }, - { - "type": "v1.Status", - "method": "DELETE", - "summary": "delete a ScheduledJob", - "nickname": "deleteNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.DeleteOptions", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "gracePeriodSeconds", - "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "orphanDependents", - "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "propagationPolicy", - "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.Status" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/batch/v2alpha1/watch/namespaces/{namespace}/scheduledjobs/{name}", - "description": "API at /apis/batch/v2alpha1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch changes to an object of kind ScheduledJob", - "nickname": "watchNamespacedScheduledJob", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/batch/v2alpha1/scheduledjobs", - "description": "API at /apis/batch/v2alpha1", - "operations": [ - { - "type": "v2alpha1.CronJobList", - "method": "GET", - "summary": "list or watch objects of kind ScheduledJob", - "nickname": "listScheduledJobForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJobList" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/batch/v2alpha1/watch/scheduledjobs", - "description": "API at /apis/batch/v2alpha1", - "operations": [ - { - "type": "v1.WatchEvent", - "method": "GET", - "summary": "watch individual changes to a list of ScheduledJob", - "nickname": "watchScheduledJobListForAllNamespaces", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "labelSelector", - "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "fieldSelector", - "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "includeUninitialized", - "description": "If true, partially initialized resources are included in the response.", - "required": false, - "allowMultiple": false - }, - { - "type": "boolean", - "paramType": "query", - "name": "watch", - "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "query", - "name": "resourceVersion", - "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", - "required": false, - "allowMultiple": false - }, - { - "type": "integer", - "paramType": "query", - "name": "timeoutSeconds", - "description": "Timeout for the list/watch call.", - "required": false, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v1.WatchEvent" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf", - "application/json;stream=watch", - "application/vnd.kubernetes.protobuf;stream=watch" - ], - "consumes": [ - "*/*" - ] - } - ] - }, - { - "path": "/apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}/status", - "description": "API at /apis/batch/v2alpha1", - "operations": [ - { - "type": "v2alpha1.CronJob", - "method": "GET", - "summary": "read status of the specified ScheduledJob", - "nickname": "readNamespacedScheduledJobStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJob" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v2alpha1.CronJob", - "method": "PUT", - "summary": "replace status of the specified ScheduledJob", - "nickname": "replaceNamespacedScheduledJobStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v2alpha1.CronJob", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJob" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "*/*" - ] - }, - { - "type": "v2alpha1.CronJob", - "method": "PATCH", - "summary": "partially update status of the specified ScheduledJob", - "nickname": "patchNamespacedScheduledJobStatus", - "parameters": [ - { - "type": "string", - "paramType": "query", - "name": "pretty", - "description": "If 'true', then the output is pretty printed.", - "required": false, - "allowMultiple": false - }, - { - "type": "v1.Patch", - "paramType": "body", - "name": "body", - "description": "", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "namespace", - "description": "object name and auth scope, such as for teams and projects", - "required": true, - "allowMultiple": false - }, - { - "type": "string", - "paramType": "path", - "name": "name", - "description": "name of the ScheduledJob", - "required": true, - "allowMultiple": false - } - ], - "responseMessages": [ - { - "code": 200, - "message": "OK", - "responseModel": "v2alpha1.CronJob" - } - ], - "produces": [ - "application/json", - "application/yaml", - "application/vnd.kubernetes.protobuf" - ], - "consumes": [ - "application/json-patch+json", - "application/merge-patch+json", - "application/strategic-merge-patch+json" - ] - } - ] - }, { "path": "/apis/batch/v2alpha1", "description": "API at /apis/batch/v2alpha1", diff --git a/docs/api-reference/batch/v2alpha1/operations.html b/docs/api-reference/batch/v2alpha1/operations.html index 686480d8174..9d569a8c5c9 100755 --- a/docs/api-reference/batch/v2alpha1/operations.html +++ b/docs/api-reference/batch/v2alpha1/operations.html @@ -1968,10 +1968,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    list or watch objects of kind ScheduledJob

    +

    watch individual changes to a list of CronJob

    -
    GET /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs
    +
    GET /apis/batch/v2alpha1/watch/cronjobs
    @@ -2052,14 +2052,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    - - - - - - - -

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    @@ -2083,7 +2075,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    200

    success

    -

    v2alpha1.CronJobList

    +

    v1.WatchEvent

    @@ -2133,10 +2125,10 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    delete collection of ScheduledJob

    +

    watch individual changes to a list of CronJob

    -
    DELETE /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs
    +
    GET /apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs
    @@ -2248,7 +2240,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    200

    success

    -

    v1.Status

    +

    v1.WatchEvent

    @@ -2277,6 +2269,12 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
  • application/vnd.kubernetes.protobuf

  • +
  • +

    application/json;stream=watch

    +
  • +
  • +

    application/vnd.kubernetes.protobuf;stream=watch

    +
  • @@ -2292,1529 +2290,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    create a ScheduledJob

    -
    -
    -
    POST /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v2alpha1.CronJob

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJob

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    read the specified ScheduledJob

    -
    -
    -
    GET /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    export

    Should this value be exported. Export strips fields that a user can not specify.

    false

    boolean

    QueryParameter

    exact

    Should the export be exact. Exact export maintains cluster-specific fields like Namespace.

    false

    boolean

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJob

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    replace the specified ScheduledJob

    -
    -
    -
    PUT /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v2alpha1.CronJob

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJob

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    delete a ScheduledJob

    -
    -
    -
    DELETE /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    partially update the specified ScheduledJob

    -
    -
    -
    PATCH /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJob

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    read status of the specified ScheduledJob

    -
    -
    -
    GET /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJob

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    replace status of the specified ScheduledJob

    -
    -
    -
    PUT /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v2alpha1.CronJob

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJob

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    partially update status of the specified ScheduledJob

    -
    -
    -
    PATCH /apis/batch/v2alpha1/namespaces/{namespace}/scheduledjobs/{name}/status
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJob

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      application/json-patch+json

      -
    • -
    • -

      application/merge-patch+json

      -
    • -
    • -

      application/strategic-merge-patch+json

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    list or watch objects of kind ScheduledJob

    -
    -
    -
    GET /apis/batch/v2alpha1/scheduledjobs
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v2alpha1.CronJobList

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of CronJob

    -
    -
    -
    GET /apis/batch/v2alpha1/watch/cronjobs
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of CronJob

    -
    -
    -
    GET /apis/batch/v2alpha1/watch/namespaces/{namespace}/cronjobs
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -

    watch changes to an object of kind CronJob

    @@ -3822,7 +2297,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Parameters

    +

    Parameters

    @@ -3920,7 +2395,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Responses

    +

    Responses

    @@ -3945,7 +2420,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Consumes

    +

    Consumes

    • @@ -3955,7 +2430,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Produces

    +

    Produces

    • @@ -3977,502 +2452,7 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    - -
    -

    watch individual changes to a list of ScheduledJob

    -
    -
    -
    GET /apis/batch/v2alpha1/watch/namespaces/{namespace}/scheduledjobs
    -
    -
    -
    -

    Parameters

    -
    -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    watch changes to an object of kind ScheduledJob

    -
    -
    -
    GET /apis/batch/v2alpha1/watch/namespaces/{namespace}/scheduledjobs/{name}
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the ScheduledJob

    true

    string

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    -
    -
      -
    • -

      apisbatchv2alpha1

      -
    • -
    -
    -
    -
    -
    -

    watch individual changes to a list of ScheduledJob

    -
    -
    -
    GET /apis/batch/v2alpha1/watch/scheduledjobs
    -
    -
    -
    -

    Parameters

    - -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    - -
    -
    -

    Responses

    - ----- - - - - - - - - - - - - - - -
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    - -
    -
    -

    Consumes

    -
    -
      -
    • -

      /

      -
    • -
    -
    -
    -
    -

    Produces

    -
    -
      -
    • -

      application/json

      -
    • -
    • -

      application/yaml

      -
    • -
    • -

      application/vnd.kubernetes.protobuf

      -
    • -
    • -

      application/json;stream=watch

      -
    • -
    • -

      application/vnd.kubernetes.protobuf;stream=watch

      -
    • -
    -
    -
    -
    -

    Tags

    +

    Tags

    • diff --git a/pkg/registry/batch/rest/BUILD b/pkg/registry/batch/rest/BUILD index cbf3b217776..801217a37fa 100644 --- a/pkg/registry/batch/rest/BUILD +++ b/pkg/registry/batch/rest/BUILD @@ -18,7 +18,6 @@ go_library( "//pkg/registry/batch/job/storage:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml index f183249bb52..309fab58f27 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/testdata/cluster-roles.yaml @@ -112,7 +112,6 @@ items: resources: - cronjobs - jobs - - scheduledjobs verbs: - create - delete @@ -294,7 +293,6 @@ items: resources: - cronjobs - jobs - - scheduledjobs verbs: - create - delete @@ -957,7 +955,6 @@ items: resources: - cronjobs - jobs - - scheduledjobs verbs: - get - list From 20f68942d39d578a3dacd72abb488e0721981fe9 Mon Sep 17 00:00:00 2001 From: Michael Taufen Date: Tue, 8 Aug 2017 08:32:27 -0700 Subject: [PATCH 106/183] Add blank import for node tests --- test/e2e/BUILD | 2 ++ test/e2e/e2e_test.go | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/test/e2e/BUILD b/test/e2e/BUILD index 241fcc61ef2..ff80b72bbe1 100644 --- a/test/e2e/BUILD +++ b/test/e2e/BUILD @@ -20,12 +20,14 @@ go_test( "//test/e2e/apimachinery:go_default_library", "//test/e2e/apps:go_default_library", "//test/e2e/autoscaling:go_default_library", + "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e/instrumentation:go_default_library", "//test/e2e/kubectl:go_default_library", "//test/e2e/lifecycle:go_default_library", "//test/e2e/lifecycle/bootstrap:go_default_library", "//test/e2e/network:go_default_library", + "//test/e2e/node:go_default_library", "//test/e2e/scalability:go_default_library", "//test/e2e/scheduling:go_default_library", "//test/e2e/storage:go_default_library", diff --git a/test/e2e/e2e_test.go b/test/e2e/e2e_test.go index eeb4889d961..0682dec3bac 100644 --- a/test/e2e/e2e_test.go +++ b/test/e2e/e2e_test.go @@ -19,15 +19,19 @@ package e2e import ( "testing" + "k8s.io/kubernetes/test/e2e/framework" + + // test sources _ "k8s.io/kubernetes/test/e2e/apimachinery" _ "k8s.io/kubernetes/test/e2e/apps" _ "k8s.io/kubernetes/test/e2e/autoscaling" - "k8s.io/kubernetes/test/e2e/framework" + _ "k8s.io/kubernetes/test/e2e/common" _ "k8s.io/kubernetes/test/e2e/instrumentation" _ "k8s.io/kubernetes/test/e2e/kubectl" _ "k8s.io/kubernetes/test/e2e/lifecycle" _ "k8s.io/kubernetes/test/e2e/lifecycle/bootstrap" _ "k8s.io/kubernetes/test/e2e/network" + _ "k8s.io/kubernetes/test/e2e/node" _ "k8s.io/kubernetes/test/e2e/scalability" _ "k8s.io/kubernetes/test/e2e/scheduling" _ "k8s.io/kubernetes/test/e2e/storage" From de406f83cfafc4033a935821a05cd8d8e5f50099 Mon Sep 17 00:00:00 2001 From: m1093782566 Date: Tue, 8 Aug 2017 18:36:46 +0800 Subject: [PATCH 107/183] validate kube-apiserver options --- pkg/registry/cachesize/cachesize.go | 4 ++++ .../apiextensions-apiserver/pkg/cmd/server/BUILD | 1 + .../apiextensions-apiserver/pkg/cmd/server/start.go | 5 ++++- .../k8s.io/apiserver/pkg/server/options/admission.go | 5 +++++ .../k8s.io/apiserver/pkg/server/options/feature.go | 5 +++++ .../apiserver/pkg/server/options/recommended.go | 12 ++++++++++++ .../src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD | 1 + .../k8s.io/kube-aggregator/pkg/cmd/server/start.go | 7 +++++-- .../src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD | 1 + .../k8s.io/sample-apiserver/pkg/cmd/server/start.go | 6 +++++- 10 files changed, 43 insertions(+), 4 deletions(-) diff --git a/pkg/registry/cachesize/cachesize.go b/pkg/registry/cachesize/cachesize.go index cea62fe5f4d..20a566fbd60 100644 --- a/pkg/registry/cachesize/cachesize.go +++ b/pkg/registry/cachesize/cachesize.go @@ -105,6 +105,10 @@ func SetWatchCacheSizes(cacheSizes []string) { glog.Errorf("invalid size of watch cache capabilities: %s", c) continue } + if size < 0 { + glog.Errorf("watch cache size cannot be negative: %s", c) + continue + } watchCacheSizes[Resource(strings.ToLower(tokens[0]))] = size } diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD index b9d59e5a425..0245c78abf5 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD @@ -16,6 +16,7 @@ go_library( "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apiserver:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/generic:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/options:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/start.go b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/start.go index a54bcd4c058..38c266e7073 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/start.go @@ -26,6 +26,7 @@ import ( "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" "k8s.io/apiextensions-apiserver/pkg/apiserver" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + utilerrors "k8s.io/apimachinery/pkg/util/errors" genericregistry "k8s.io/apiserver/pkg/registry/generic" genericapiserver "k8s.io/apiserver/pkg/server" genericoptions "k8s.io/apiserver/pkg/server/options" @@ -78,7 +79,9 @@ func NewCommandStartCustomResourceDefinitionsServer(out, errOut io.Writer, stopC } func (o CustomResourceDefinitionsServerOptions) Validate(args []string) error { - return nil + errors := []error{} + errors = append(errors, o.RecommendedOptions.Validate()...) + return utilerrors.NewAggregate(errors) } func (o *CustomResourceDefinitionsServerOptions) Complete() error { diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/admission.go b/staging/src/k8s.io/apiserver/pkg/server/options/admission.go index 760f4fc3da7..5604681825f 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/admission.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/admission.go @@ -89,3 +89,8 @@ func (a *AdmissionOptions) ApplyTo(serverCfg *server.Config, pluginInitializers serverCfg.AdmissionControl = admissionChain return nil } + +func (a *AdmissionOptions) Validate() []error { + errs := []error{} + return errs +} diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/feature.go b/staging/src/k8s.io/apiserver/pkg/server/options/feature.go index d99a73495ff..cd62c7c67f7 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/feature.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/feature.go @@ -55,3 +55,8 @@ func (o *FeatureOptions) ApplyTo(c *server.Config) error { return nil } + +func (o *FeatureOptions) Validate() []error { + errs := []error{} + return errs +} diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/recommended.go b/staging/src/k8s.io/apiserver/pkg/server/options/recommended.go index 92ec3e8e22f..a0efcb49a52 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/recommended.go +++ b/staging/src/k8s.io/apiserver/pkg/server/options/recommended.go @@ -77,3 +77,15 @@ func (o *RecommendedOptions) ApplyTo(config *server.Config) error { return nil } + +func (o *RecommendedOptions) Validate() []error { + errors := []error{} + errors = append(errors, o.Etcd.Validate()...) + errors = append(errors, o.SecureServing.Validate()...) + errors = append(errors, o.Authentication.Validate()...) + errors = append(errors, o.Authorization.Validate()...) + errors = append(errors, o.Audit.Validate()...) + errors = append(errors, o.Features.Validate()...) + + return errors +} diff --git a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD index bff6d123f80..aaf8be18f6b 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD @@ -14,6 +14,7 @@ go_library( deps = [ "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/filters:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go index c5f39f0a3c9..1db47144b33 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/start.go @@ -25,6 +25,7 @@ import ( "github.com/spf13/cobra" "github.com/spf13/pflag" + utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" genericapiserver "k8s.io/apiserver/pkg/server" "k8s.io/apiserver/pkg/server/filters" @@ -47,7 +48,7 @@ type AggregatorOptions struct { ProxyClientCertFile string ProxyClientKeyFile string - // CoreAPIKubeconfig is a filename for a kubeconfig file to contact the core API server wtih + // CoreAPIKubeconfig is a filename for a kubeconfig file to contact the core API server with // If it is not set, the in cluster config is used CoreAPIKubeconfig string @@ -102,7 +103,9 @@ func NewDefaultOptions(out, err io.Writer) *AggregatorOptions { } func (o AggregatorOptions) Validate(args []string) error { - return nil + errors := []error{} + errors = append(errors, o.RecommendedOptions.Validate()...) + return utilerrors.NewAggregate(errors) } func (o *AggregatorOptions) Complete() error { diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD index ae62e2206ea..4eda45b8ab8 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD @@ -13,6 +13,7 @@ go_library( tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/cobra:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/options:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go index 3ed49adb52c..2a313db160d 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/cobra" + utilerrors "k8s.io/apimachinery/pkg/util/errors" genericapiserver "k8s.io/apiserver/pkg/server" genericoptions "k8s.io/apiserver/pkg/server/options" "k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1" @@ -80,7 +81,10 @@ func NewCommandStartWardleServer(out, errOut io.Writer, stopCh <-chan struct{}) } func (o WardleServerOptions) Validate(args []string) error { - return nil + errors := []error{} + errors = append(errors, o.RecommendedOptions.Validate()...) + errors = append(errors, o.Admission.Validate()...) + return utilerrors.NewAggregate(errors) } func (o *WardleServerOptions) Complete() error { From a835d5bdd2747f3e799ab470bd2e2f14ee0fb52a Mon Sep 17 00:00:00 2001 From: Shiyang Wang Date: Tue, 8 Aug 2017 14:37:52 +0800 Subject: [PATCH 108/183] Add unittests for GenerateLink --- .../apiserver/pkg/endpoints/handlers/BUILD | 7 +- .../pkg/endpoints/handlers/namer_test.go | 116 ++++++++++++++++++ 2 files changed, 122 insertions(+), 1 deletion(-) create mode 100644 staging/src/k8s.io/apiserver/pkg/endpoints/handlers/namer_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD index d6d39bbe484..3b59060d097 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD @@ -10,13 +10,18 @@ load( go_test( name = "go_default_test", - srcs = ["rest_test.go"], + srcs = [ + "namer_test.go", + "rest_test.go", + ], library = ":go_default_library", tags = ["automanaged"], deps = [ "//vendor/github.com/evanphx/json-patch:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/namer_test.go b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/namer_test.go new file mode 100644 index 00000000000..15c88189313 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/namer_test.go @@ -0,0 +1,116 @@ +/* +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. +*/ + +package handlers + +import ( + "testing" + + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apiserver/pkg/endpoints/request" +) + +func TestGenerateLink(t *testing.T) { + testCases := []struct { + name string + requestInfo *request.RequestInfo + obj runtime.Object + expect string + expectErr bool + clusterScoped bool + }{ + { + name: "obj has more priority than requestInfo", + requestInfo: &request.RequestInfo{ + Name: "should-not-use", + Namespace: "should-not-use", + Resource: "pod", + }, + obj: &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "should-use", Namespace: "should-use"}}, + expect: "/api/v1/should-use/pod/should-use", + expectErr: false, + clusterScoped: false, + }, + { + name: "hit errEmptyName", + requestInfo: &request.RequestInfo{ + Name: "should-use", + Namespace: "should-use", + Resource: "pod", + }, + obj: &v1.Pod{ObjectMeta: metav1.ObjectMeta{Namespace: "should-not-use"}}, + expect: "/api/v1/should-use/pod/should-use", + expectErr: false, + clusterScoped: false, + }, + { + name: "use namespace of requestInfo if obj namespace is empty", + requestInfo: &request.RequestInfo{ + Name: "should-not-use", + Namespace: "should-use", + Resource: "pod", + }, + obj: &v1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "should-use"}}, + expect: "/api/v1/should-use/pod/should-use", + expectErr: false, + clusterScoped: false, + }, + { + name: "hit error", + requestInfo: &request.RequestInfo{ + Name: "", + Namespace: "", + Resource: "pod", + }, + obj: &v1.Pod{ObjectMeta: metav1.ObjectMeta{}}, + expect: "name must be provided", + expectErr: true, + clusterScoped: false, + }, + { + name: "cluster scoped", + requestInfo: &request.RequestInfo{ + Name: "only-name", + Namespace: "should-not-use", + Resource: "pod", + }, + obj: &v1.Pod{ObjectMeta: metav1.ObjectMeta{}}, + expect: "/api/v1/only-name", + expectErr: false, + clusterScoped: true, + }, + } + + for _, test := range testCases { + n := ContextBasedNaming{ + SelfLinker: meta.NewAccessor(), + SelfLinkPathPrefix: "/api/v1/", + ClusterScoped: test.clusterScoped, + } + uri, err := n.GenerateLink(test.requestInfo, test.obj) + + if uri != test.expect && err.Error() != test.expect { + if test.expectErr { + t.Fatalf("%s: unexpected non-error: %v", test.name, err) + } else { + t.Fatalf("%s: expected: %v, but got: %v", test.name, test.expect, uri) + } + } + } +} From d0bedba9e17b5bf6fe90ac597d8db8207d539596 Mon Sep 17 00:00:00 2001 From: Marcin Wielgus Date: Tue, 8 Aug 2017 20:52:07 +0200 Subject: [PATCH 109/183] Ensure that pricing expander is used by default in Cluster Autoscaler --- cluster/gce/container-linux/configure-helper.sh | 2 +- cluster/gce/gci/configure-helper.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cluster/gce/container-linux/configure-helper.sh b/cluster/gce/container-linux/configure-helper.sh index f8a1f8531e1..b2aaee20d92 100755 --- a/cluster/gce/container-linux/configure-helper.sh +++ b/cluster/gce/container-linux/configure-helper.sh @@ -1155,7 +1155,7 @@ function start-cluster-autoscaler { local -r src_file="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty/cluster-autoscaler.manifest" remove-salt-config-comments "${src_file}" - local params="${AUTOSCALER_MIG_CONFIG} ${CLOUD_CONFIG_OPT} ${AUTOSCALER_EXPANDER_CONFIG:-}" + local params="${AUTOSCALER_MIG_CONFIG} ${CLOUD_CONFIG_OPT} ${AUTOSCALER_EXPANDER_CONFIG:---expander=price}" sed -i -e "s@{{params}}@${params}@g" "${src_file}" sed -i -e "s@{{cloud_config_mount}}@${CLOUD_CONFIG_MOUNT}@g" "${src_file}" sed -i -e "s@{{cloud_config_volume}}@${CLOUD_CONFIG_VOLUME}@g" "${src_file}" diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index e6fbfa582ee..13e3c973b91 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -1558,7 +1558,7 @@ function start-cluster-autoscaler { local -r src_file="${KUBE_HOME}/kube-manifests/kubernetes/gci-trusty/cluster-autoscaler.manifest" remove-salt-config-comments "${src_file}" - local params="${AUTOSCALER_MIG_CONFIG} ${CLOUD_CONFIG_OPT} ${AUTOSCALER_EXPANDER_CONFIG:-}" + local params="${AUTOSCALER_MIG_CONFIG} ${CLOUD_CONFIG_OPT} ${AUTOSCALER_EXPANDER_CONFIG:---expander=price}" sed -i -e "s@{{params}}@${params}@g" "${src_file}" sed -i -e "s@{{cloud_config_mount}}@${CLOUD_CONFIG_MOUNT}@g" "${src_file}" sed -i -e "s@{{cloud_config_volume}}@${CLOUD_CONFIG_VOLUME}@g" "${src_file}" From 443d58e40a195d826b8f1fd91f8b5a54653c2f3d Mon Sep 17 00:00:00 2001 From: Michael Taufen Date: Fri, 28 Apr 2017 15:08:57 -0700 Subject: [PATCH 110/183] Dynamic Kubelet Configuration Alpha implementation of the Dynamic Kubelet Configuration feature. See the proposal doc in #29459. --- cmd/hyperkube/kubelet.go | 10 +- cmd/hyperkube/main.go | 8 +- cmd/kubelet/BUILD | 4 + cmd/kubelet/app/BUILD | 3 +- cmd/kubelet/app/options/BUILD | 2 + cmd/kubelet/app/options/options.go | 128 +++- cmd/kubelet/app/server.go | 266 +++----- cmd/kubelet/kubelet.go | 78 ++- hack/.golint_failures | 1 - hack/verify-flags/known-flags.txt | 3 + pkg/api/register.go | 1 + pkg/api/types.go | 13 + pkg/api/validation/validation.go | 15 +- pkg/apis/componentconfig/BUILD | 1 + pkg/apis/componentconfig/types.go | 25 +- pkg/apis/componentconfig/v1alpha1/defaults.go | 20 +- pkg/apis/componentconfig/v1alpha1/types.go | 23 +- pkg/apis/componentconfig/validation/BUILD | 31 + .../componentconfig/validation/validation.go | 56 ++ pkg/kubelet/BUILD | 2 + pkg/kubelet/certificate/kubelet.go | 6 +- pkg/kubelet/kubelet.go | 68 +- pkg/kubelet/kubeletconfig/BUILD | 69 ++ pkg/kubelet/kubeletconfig/OWNERS | 5 + pkg/kubelet/kubeletconfig/badconfig/BUILD | 51 ++ .../kubeletconfig/badconfig/badconfig.go | 83 +++ .../kubeletconfig/badconfig/badconfig_test.go | 157 +++++ .../kubeletconfig/badconfig/fstracker.go | 105 +++ .../kubeletconfig/badconfig/fstracker_test.go | 255 +++++++ pkg/kubelet/kubeletconfig/checkpoint/BUILD | 71 ++ .../kubeletconfig/checkpoint/checkpoint.go | 71 ++ .../checkpoint/checkpoint_test.go | 89 +++ .../kubeletconfig/checkpoint/configmap.go | 88 +++ .../checkpoint/configmap_test.go | 216 ++++++ .../kubeletconfig/checkpoint/download.go | 152 +++++ .../kubeletconfig/checkpoint/download_test.go | 134 ++++ .../kubeletconfig/checkpoint/store/BUILD | 58 ++ .../checkpoint/store/fakestore.go | 76 +++ .../kubeletconfig/checkpoint/store/fsstore.go | 163 +++++ .../checkpoint/store/fsstore_test.go | 628 ++++++++++++++++++ .../kubeletconfig/checkpoint/store/store.go | 84 +++ .../checkpoint/store/store_test.go | 96 +++ pkg/kubelet/kubeletconfig/configfiles/BUILD | 32 + .../kubeletconfig/configfiles/configfiles.go | 66 ++ pkg/kubelet/kubeletconfig/configsync.go | 208 ++++++ pkg/kubelet/kubeletconfig/controller.go | 350 ++++++++++ pkg/kubelet/kubeletconfig/rollback.go | 79 +++ pkg/kubelet/kubeletconfig/startups/BUILD | 52 ++ .../kubeletconfig/startups/fstracker.go | 127 ++++ .../kubeletconfig/startups/fstracker_test.go | 294 ++++++++ .../kubeletconfig/startups/startups.go | 69 ++ .../kubeletconfig/startups/startups_test.go | 157 +++++ pkg/kubelet/kubeletconfig/status/BUILD | 37 ++ pkg/kubelet/kubeletconfig/status/status.go | 306 +++++++++ pkg/kubelet/kubeletconfig/util/codec/BUILD | 35 + pkg/kubelet/kubeletconfig/util/codec/codec.go | 77 +++ pkg/kubelet/kubeletconfig/util/equal/BUILD | 28 + pkg/kubelet/kubeletconfig/util/equal/equal.go | 51 ++ pkg/kubelet/kubeletconfig/util/files/BUILD | 28 + pkg/kubelet/kubeletconfig/util/files/files.go | 124 ++++ .../kubeletconfig/util/filesystem/BUILD | 32 + .../util/filesystem/defaultfs.go | 89 +++ .../kubeletconfig/util/filesystem/fakefs.go | 97 +++ .../util/filesystem/filesystem.go | 45 ++ pkg/kubelet/kubeletconfig/util/log/BUILD | 28 + pkg/kubelet/kubeletconfig/util/log/log.go | 49 ++ pkg/kubelet/kubeletconfig/util/panic/BUILD | 28 + pkg/kubelet/kubeletconfig/util/panic/panic.go | 36 + pkg/kubelet/kubeletconfig/util/test/BUILD | 27 + pkg/kubelet/kubeletconfig/util/test/test.go | 40 ++ pkg/kubelet/kubeletconfig/watch.go | 125 ++++ pkg/kubemark/hollow_kubelet.go | 2 +- plugin/pkg/admission/noderestriction/BUILD | 1 + .../admission/noderestriction/admission.go | 37 +- .../noderestriction/admission_test.go | 37 +- staging/src/k8s.io/api/core/v1/register.go | 1 + staging/src/k8s.io/api/core/v1/types.go | 12 + .../pkg/apis/meta/v1/conversion.go | 18 + .../sample-apiserver/pkg/registry/registry.go | 2 +- test/e2e_node/BUILD | 1 + .../dynamic_kubelet_configuration_test.go | 2 +- test/e2e_node/services/BUILD | 1 + test/e2e_node/services/kubelet.go | 24 + test/e2e_node/util.go | 142 ++-- .../etcd/etcd_storage_path_test.go | 1 + 85 files changed, 6042 insertions(+), 370 deletions(-) create mode 100644 pkg/apis/componentconfig/validation/BUILD create mode 100644 pkg/apis/componentconfig/validation/validation.go create mode 100644 pkg/kubelet/kubeletconfig/BUILD create mode 100644 pkg/kubelet/kubeletconfig/OWNERS create mode 100644 pkg/kubelet/kubeletconfig/badconfig/BUILD create mode 100644 pkg/kubelet/kubeletconfig/badconfig/badconfig.go create mode 100644 pkg/kubelet/kubeletconfig/badconfig/badconfig_test.go create mode 100644 pkg/kubelet/kubeletconfig/badconfig/fstracker.go create mode 100644 pkg/kubelet/kubeletconfig/badconfig/fstracker_test.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/BUILD create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/checkpoint_test.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/configmap.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/download.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/download_test.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/store/BUILD create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/store/fakestore.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/store/fsstore_test.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/store/store.go create mode 100644 pkg/kubelet/kubeletconfig/checkpoint/store/store_test.go create mode 100644 pkg/kubelet/kubeletconfig/configfiles/BUILD create mode 100644 pkg/kubelet/kubeletconfig/configfiles/configfiles.go create mode 100644 pkg/kubelet/kubeletconfig/configsync.go create mode 100644 pkg/kubelet/kubeletconfig/controller.go create mode 100644 pkg/kubelet/kubeletconfig/rollback.go create mode 100644 pkg/kubelet/kubeletconfig/startups/BUILD create mode 100644 pkg/kubelet/kubeletconfig/startups/fstracker.go create mode 100644 pkg/kubelet/kubeletconfig/startups/fstracker_test.go create mode 100644 pkg/kubelet/kubeletconfig/startups/startups.go create mode 100644 pkg/kubelet/kubeletconfig/startups/startups_test.go create mode 100644 pkg/kubelet/kubeletconfig/status/BUILD create mode 100644 pkg/kubelet/kubeletconfig/status/status.go create mode 100644 pkg/kubelet/kubeletconfig/util/codec/BUILD create mode 100644 pkg/kubelet/kubeletconfig/util/codec/codec.go create mode 100644 pkg/kubelet/kubeletconfig/util/equal/BUILD create mode 100644 pkg/kubelet/kubeletconfig/util/equal/equal.go create mode 100644 pkg/kubelet/kubeletconfig/util/files/BUILD create mode 100644 pkg/kubelet/kubeletconfig/util/files/files.go create mode 100644 pkg/kubelet/kubeletconfig/util/filesystem/BUILD create mode 100644 pkg/kubelet/kubeletconfig/util/filesystem/defaultfs.go create mode 100644 pkg/kubelet/kubeletconfig/util/filesystem/fakefs.go create mode 100644 pkg/kubelet/kubeletconfig/util/filesystem/filesystem.go create mode 100644 pkg/kubelet/kubeletconfig/util/log/BUILD create mode 100644 pkg/kubelet/kubeletconfig/util/log/log.go create mode 100644 pkg/kubelet/kubeletconfig/util/panic/BUILD create mode 100644 pkg/kubelet/kubeletconfig/util/panic/panic.go create mode 100644 pkg/kubelet/kubeletconfig/util/test/BUILD create mode 100644 pkg/kubelet/kubeletconfig/util/test/test.go create mode 100644 pkg/kubelet/kubeletconfig/watch.go diff --git a/cmd/hyperkube/kubelet.go b/cmd/hyperkube/kubelet.go index 518692ba4d1..1b2b65edebe 100644 --- a/cmd/hyperkube/kubelet.go +++ b/cmd/hyperkube/kubelet.go @@ -23,8 +23,12 @@ import ( // NewKubelet creates a new hyperkube Server object that includes the // description and flags. -func NewKubelet() *Server { - s := options.NewKubeletServer() +func NewKubelet() (*Server, error) { + s, err := options.NewKubeletServer() + if err != nil { + return nil, err + } + hks := Server{ name: "kubelet", SimpleUsage: "kubelet", @@ -39,5 +43,5 @@ func NewKubelet() *Server { }, } s.AddFlags(hks.Flags()) - return &hks + return &hks, nil } diff --git a/cmd/hyperkube/main.go b/cmd/hyperkube/main.go index e1e07b7d164..ef49d067508 100644 --- a/cmd/hyperkube/main.go +++ b/cmd/hyperkube/main.go @@ -20,6 +20,7 @@ limitations under the License. package main import ( + "fmt" "os" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration @@ -36,7 +37,12 @@ func main() { hk.AddServer(NewKubeAPIServer()) hk.AddServer(NewKubeControllerManager()) hk.AddServer(NewScheduler()) - hk.AddServer(NewKubelet()) + if kubelet, err := NewKubelet(); err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n", err) + os.Exit(1) + } else { + hk.AddServer(kubelet) + } hk.AddServer(NewKubeProxy()) hk.AddServer(NewKubeAggregator()) diff --git a/cmd/kubelet/BUILD b/cmd/kubelet/BUILD index 6995ac589d4..7f83f8fced6 100644 --- a/cmd/kubelet/BUILD +++ b/cmd/kubelet/BUILD @@ -23,10 +23,14 @@ go_library( deps = [ "//cmd/kubelet/app:go_default_library", "//cmd/kubelet/app/options:go_default_library", + "//pkg/apis/componentconfig:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", + "//pkg/features:go_default_library", + "//pkg/kubelet/kubeletconfig:go_default_library", "//pkg/version/prometheus:go_default_library", "//pkg/version/verflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", ], diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index 550d8cb7b43..77403348bc0 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -52,6 +52,7 @@ go_library( "//pkg/kubelet/dockershim/remote:go_default_library", "//pkg/kubelet/eviction:go_default_library", "//pkg/kubelet/eviction/api:go_default_library", + "//pkg/kubelet/kubeletconfig:go_default_library", "//pkg/kubelet/network:go_default_library", "//pkg/kubelet/network/cni:go_default_library", "//pkg/kubelet/network/kubenet:go_default_library", @@ -100,8 +101,6 @@ go_library( "//vendor/golang.org/x/exp/inotify:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/cmd/kubelet/app/options/BUILD b/cmd/kubelet/app/options/BUILD index 7a94cb918ce..215b5f0d42e 100644 --- a/cmd/kubelet/app/options/BUILD +++ b/cmd/kubelet/app/options/BUILD @@ -19,6 +19,8 @@ go_library( "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/componentconfig/install:go_default_library", "//pkg/apis/componentconfig/v1alpha1:go_default_library", + "//pkg/apis/componentconfig/validation:go_default_library", + "//pkg/features:go_default_library", "//pkg/util/taints:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/cmd/kubelet/app/options/options.go b/cmd/kubelet/app/options/options.go index e43f07147f7..f5e428a5296 100644 --- a/cmd/kubelet/app/options/options.go +++ b/cmd/kubelet/app/options/options.go @@ -18,6 +18,7 @@ limitations under the License. package options import ( + "fmt" _ "net/http/pprof" "strings" @@ -26,9 +27,10 @@ import ( utilflag "k8s.io/apiserver/pkg/util/flag" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/componentconfig" - // Need to make sure the componentconfig api is installed so defaulting funcs work - _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" + _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" // Need to make sure the componentconfig api is installed so defaulting funcs work "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" + componentconfigvalidation "k8s.io/kubernetes/pkg/apis/componentconfig/validation" + "k8s.io/kubernetes/pkg/features" utiltaints "k8s.io/kubernetes/pkg/util/taints" "github.com/spf13/pflag" @@ -79,6 +81,72 @@ type KubeletFlags struct { // Container-runtime-specific options. ContainerRuntimeOptions + + // certDirectory is the directory where the TLS certs are located (by + // default /var/run/kubernetes). If tlsCertFile and tlsPrivateKeyFile + // are provided, this flag will be ignored. + CertDirectory string + + // cloudProvider is the provider for cloud services. + // +optional + CloudProvider string + + // cloudConfigFile is the path to the cloud provider configuration file. + // +optional + CloudConfigFile string + + // rootDirectory is the directory path to place kubelet files (volume + // mounts,etc). + RootDirectory string + + // The Kubelet will use this directory for checkpointing downloaded configurations and tracking configuration health. + // The Kubelet will create this directory if it does not already exist. + // The path may be absolute or relative; relative paths are under the Kubelet's current working directory. + // Providing this flag enables dynamic kubelet configuration. + // To use this flag, the DynamicKubeletConfig feature gate must be enabled. + DynamicConfigDir flag.StringFlag + + // The Kubelet will look in this directory for an init configuration. + // The path may be absolute or relative; relative paths are under the Kubelet's current working directory. + // Omit this flag to use the combination of built-in default configuration values and flags. + // To use this flag, the DynamicKubeletConfig feature gate must be enabled. + InitConfigDir flag.StringFlag +} + +// NewKubeletFlags will create a new KubeletFlags with default values +func NewKubeletFlags() *KubeletFlags { + return &KubeletFlags{ + // TODO(#41161:v1.10.0): Remove the default kubeconfig path and --require-kubeconfig. + RequireKubeConfig: false, + KubeConfig: flag.NewStringFlag("/var/lib/kubelet/kubeconfig"), + ContainerRuntimeOptions: *NewContainerRuntimeOptions(), + CertDirectory: "/var/run/kubernetes", + CloudProvider: v1alpha1.AutoDetectCloudProvider, + RootDirectory: v1alpha1.DefaultRootDir, + } +} + +func ValidateKubeletFlags(f *KubeletFlags) error { + // ensure that nobody sets DynamicConfigDir if the dynamic config feature gate is turned off + if f.DynamicConfigDir.Provided() && !utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { + return fmt.Errorf("the DynamicKubeletConfig feature gate must be enabled in order to use the --dynamic-config-dir flag") + } + // ensure that nobody sets InitConfigDir if the dynamic config feature gate is turned off + if f.InitConfigDir.Provided() && !utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { + return fmt.Errorf("the DynamicKubeletConfig feature gate must be enabled in order to use the --init-config-dir flag") + } + return nil +} + +// NewKubeletConfiguration will create a new KubeletConfiguration with default values +func NewKubeletConfiguration() (*componentconfig.KubeletConfiguration, error) { + versioned := &v1alpha1.KubeletConfiguration{} + api.Scheme.Default(versioned) + config := &componentconfig.KubeletConfiguration{} + if err := api.Scheme.Convert(versioned, config, nil); err != nil { + return nil, err + } + return config, nil } // KubeletServer encapsulates all of the parameters necessary for starting up @@ -89,29 +157,33 @@ type KubeletServer struct { } // NewKubeletServer will create a new KubeletServer with default values. -func NewKubeletServer() *KubeletServer { - versioned := &v1alpha1.KubeletConfiguration{} - api.Scheme.Default(versioned) - config := componentconfig.KubeletConfiguration{} - api.Scheme.Convert(versioned, &config, nil) - return &KubeletServer{ - KubeletFlags: KubeletFlags{ - // TODO(#41161:v1.10.0): Remove the default kubeconfig path and --require-kubeconfig. - RequireKubeConfig: false, - KubeConfig: flag.NewStringFlag("/var/lib/kubelet/kubeconfig"), - ContainerRuntimeOptions: *NewContainerRuntimeOptions(), - }, - KubeletConfiguration: config, +func NewKubeletServer() (*KubeletServer, error) { + config, err := NewKubeletConfiguration() + if err != nil { + return nil, err } + return &KubeletServer{ + KubeletFlags: *NewKubeletFlags(), + KubeletConfiguration: *config, + }, nil } -type kubeletConfiguration componentconfig.KubeletConfiguration +// validateKubeletServer validates configuration of KubeletServer and returns an error if the input configuration is invalid +func ValidateKubeletServer(s *KubeletServer) error { + // please add any KubeletConfiguration validation to the componentconfigvalidation.ValidateKubeletConfiguration function + if err := componentconfigvalidation.ValidateKubeletConfiguration(&s.KubeletConfiguration); err != nil { + return err + } + if err := ValidateKubeletFlags(&s.KubeletFlags); err != nil { + return err + } + return nil +} // AddFlags adds flags for a specific KubeletServer to the specified FlagSet func (s *KubeletServer) AddFlags(fs *pflag.FlagSet) { - var kc *kubeletConfiguration = (*kubeletConfiguration)(&s.KubeletConfiguration) s.KubeletFlags.AddFlags(fs) - kc.addFlags(fs) + AddKubeletConfigFlags(fs, &s.KubeletConfiguration) } // AddFlags adds flags for a specific KubeletFlags to the specified FlagSet @@ -140,10 +212,21 @@ func (f *KubeletFlags) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&f.NodeIP, "node-ip", f.NodeIP, "IP address of the node. If set, kubelet will use this IP address for the node") fs.StringVar(&f.ProviderID, "provider-id", f.ProviderID, "Unique identifier for identifying the node in a machine database, i.e cloudprovider") + + fs.StringVar(&f.CertDirectory, "cert-dir", f.CertDirectory, "The directory where the TLS certs are located. "+ + "If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored.") + + fs.StringVar(&f.CloudProvider, "cloud-provider", f.CloudProvider, "The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider.") + fs.StringVar(&f.CloudConfigFile, "cloud-config", f.CloudConfigFile, "The path to the cloud provider configuration file. Empty string for no configuration file.") + + fs.StringVar(&f.RootDirectory, "root-dir", f.RootDirectory, "Directory path for managing kubelet files (volume mounts,etc).") + + fs.Var(&f.DynamicConfigDir, "dynamic-config-dir", "The Kubelet will use this directory for checkpointing downloaded configurations and tracking configuration health. The Kubelet will create this directory if it does not already exist. The path may be absolute or relative; relative paths start at the Kubelet's current working directory. Providing this flag enables dynamic Kubelet configuration. Presently, you must also enable the DynamicKubeletConfig feature gate to pass this flag.") + fs.Var(&f.InitConfigDir, "init-config-dir", "The Kubelet will look in this directory for the init configuration. The path may be absolute or relative; relative paths start at the Kubelet's current working directory. Omit this argument to use the built-in default configuration values. Presently, you must also enable the DynamicKubeletConfig feature gate to pass this flag.") } -// addFlags adds flags for a specific componentconfig.KubeletConfiguration to the specified FlagSet -func (c *kubeletConfiguration) addFlags(fs *pflag.FlagSet) { +// AddKubeletConfigFlags adds flags for a specific componentconfig.KubeletConfiguration to the specified FlagSet +func AddKubeletConfigFlags(fs *pflag.FlagSet, c *componentconfig.KubeletConfiguration) { fs.BoolVar(&c.FailSwapOn, "fail-swap-on", true, "Makes the Kubelet fail to start if swap is enabled on the node. ") fs.BoolVar(&c.FailSwapOn, "experimental-fail-swap-on", true, "DEPRECATED: please use --fail-swap-on instead.") fs.MarkDeprecated("experimental-fail-swap-on", "This flag is deprecated and will be removed in future releases. please use --fail-swap-on instead.") @@ -186,10 +269,7 @@ func (c *kubeletConfiguration) addFlags(fs *pflag.FlagSet) { "If --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key "+ "are generated for the public address and saved to the directory passed to --cert-dir.") fs.StringVar(&c.TLSPrivateKeyFile, "tls-private-key-file", c.TLSPrivateKeyFile, "File containing x509 private key matching --tls-cert-file.") - fs.StringVar(&c.CertDirectory, "cert-dir", c.CertDirectory, "The directory where the TLS certs are located. "+ - "If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored.") - fs.StringVar(&c.RootDirectory, "root-dir", c.RootDirectory, "Directory path for managing kubelet files (volume mounts,etc).") fs.StringVar(&c.SeccompProfileRoot, "seccomp-profile-root", c.SeccompProfileRoot, "Directory path for seccomp profiles.") fs.BoolVar(&c.AllowPrivileged, "allow-privileged", c.AllowPrivileged, "If true, allow containers to request privileged mode.") fs.StringSliceVar(&c.HostNetworkSources, "host-network-sources", c.HostNetworkSources, "Comma-separated list of sources from which the Kubelet allows pods to use of host network.") @@ -227,8 +307,6 @@ func (c *kubeletConfiguration) addFlags(fs *pflag.FlagSet) { fs.Int32Var(&c.ImageGCLowThresholdPercent, "image-gc-low-threshold", c.ImageGCLowThresholdPercent, "The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to.") fs.DurationVar(&c.VolumeStatsAggPeriod.Duration, "volume-stats-agg-period", c.VolumeStatsAggPeriod.Duration, "Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0.") fs.StringVar(&c.VolumePluginDir, "volume-plugin-dir", c.VolumePluginDir, " The full path of the directory in which to search for additional third party volume plugins") - fs.StringVar(&c.CloudProvider, "cloud-provider", c.CloudProvider, "The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider.") - fs.StringVar(&c.CloudConfigFile, "cloud-config", c.CloudConfigFile, "The path to the cloud provider configuration file. Empty string for no configuration file.") fs.StringVar(&c.FeatureGates, "feature-gates", c.FeatureGates, "A set of key=value pairs that describe feature gates for alpha/experimental features. "+ "Options are:\n"+strings.Join(utilfeature.DefaultFeatureGate.KnownFeatures(), "\n")) diff --git a/cmd/kubelet/app/server.go b/cmd/kubelet/app/server.go index 77cf0c37e7e..84f221346cb 100644 --- a/cmd/kubelet/app/server.go +++ b/cmd/kubelet/app/server.go @@ -28,6 +28,7 @@ import ( "net/url" "os" "path" + "path/filepath" "strconv" "time" @@ -37,8 +38,6 @@ import ( "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" utilruntime "k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/sets" @@ -73,6 +72,7 @@ import ( dockerremote "k8s.io/kubernetes/pkg/kubelet/dockershim/remote" "k8s.io/kubernetes/pkg/kubelet/eviction" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig" "k8s.io/kubernetes/pkg/kubelet/server" "k8s.io/kubernetes/pkg/kubelet/server/streaming" kubetypes "k8s.io/kubernetes/pkg/kubelet/types" @@ -93,7 +93,8 @@ const ( // NewKubeletCommand creates a *cobra.Command object with default parameters func NewKubeletCommand() *cobra.Command { - s := options.NewKubeletServer() + // ignore the error, as this is just for generating docs and the like + s, _ := options.NewKubeletServer() s.AddFlags(pflag.CommandLine) cmd := &cobra.Command{ Use: componentKubelet, @@ -167,119 +168,7 @@ func UnsecuredDependencies(s *options.KubeletServer) (*kubelet.Dependencies, err }, nil } -func getKubeClient(s *options.KubeletServer) (*clientset.Clientset, error) { - clientConfig, err := CreateAPIServerClientConfig(s) - if err == nil { - kubeClient, err := clientset.NewForConfig(clientConfig) - if err != nil { - return nil, err - } - return kubeClient, nil - } - return nil, err -} - -// Tries to download the kubelet- configmap from "kube-system" namespace via the API server and returns a JSON string or error -func getRemoteKubeletConfig(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (string, error) { - // TODO(mtaufen): should probably cache clientset and pass into this function rather than regenerate on every request - kubeClient, err := getKubeClient(s) - if err != nil { - return "", err - } - - configmap, err := func() (*v1.ConfigMap, error) { - var nodename types.NodeName - hostname := nodeutil.GetHostname(s.HostnameOverride) - - if kubeDeps != nil && kubeDeps.Cloud != nil { - instances, ok := kubeDeps.Cloud.Instances() - if !ok { - err = fmt.Errorf("failed to get instances from cloud provider, can't determine nodename") - return nil, err - } - nodename, err = instances.CurrentNodeName(hostname) - if err != nil { - err = fmt.Errorf("error fetching current instance name from cloud provider: %v", err) - return nil, err - } - // look for kubelet- configmap from "kube-system" - configmap, err := kubeClient.CoreV1().ConfigMaps("kube-system").Get(fmt.Sprintf("kubelet-%s", nodename), metav1.GetOptions{}) - if err != nil { - return nil, err - } - return configmap, nil - } - // No cloud provider yet, so can't get the nodename via Cloud.Instances().CurrentNodeName(hostname), try just using the hostname - configmap, err := kubeClient.CoreV1().ConfigMaps("kube-system").Get(fmt.Sprintf("kubelet-%s", hostname), metav1.GetOptions{}) - if err != nil { - return nil, fmt.Errorf("cloud provider was nil, and attempt to use hostname to find config resulted in: %v", err) - } - return configmap, nil - }() - if err != nil { - return "", err - } - - // When we create the KubeletConfiguration configmap, we put a json string - // representation of the config in a `kubelet.config` key. - jsonstr, ok := configmap.Data["kubelet.config"] - if !ok { - return "", fmt.Errorf("KubeletConfiguration configmap did not contain a value with key `kubelet.config`") - } - - return jsonstr, nil -} - -func startKubeletConfigSyncLoop(s *options.KubeletServer, currentKC string) { - glog.Infof("Starting Kubelet configuration sync loop") - go func() { - wait.PollInfinite(30*time.Second, func() (bool, error) { - glog.Infof("Checking API server for new Kubelet configuration.") - remoteKC, err := getRemoteKubeletConfig(s, nil) - if err == nil { - // Detect new config by comparing with the last JSON string we extracted. - if remoteKC != currentKC { - glog.Info("Found new Kubelet configuration via API server, restarting!") - os.Exit(0) - } - } else { - glog.Infof("Did not find a configuration for this Kubelet via API server: %v", err) - } - return false, nil // Always return (false, nil) so we poll forever. - }) - }() -} - -// Try to check for config on the API server, return that config if we get it, and start -// a background thread that checks for updates to configs. -func initKubeletConfigSync(s *options.KubeletServer) (*componentconfig.KubeletConfiguration, error) { - jsonstr, err := getRemoteKubeletConfig(s, nil) - if err == nil { - // We will compare future API server config against the config we just got (jsonstr): - startKubeletConfigSyncLoop(s, jsonstr) - - // Convert json from API server to external type struct, and convert that to internal type struct - extKC := componentconfigv1alpha1.KubeletConfiguration{} - err := runtime.DecodeInto(api.Codecs.UniversalDecoder(), []byte(jsonstr), &extKC) - if err != nil { - return nil, err - } - api.Scheme.Default(&extKC) - kc := componentconfig.KubeletConfiguration{} - err = api.Scheme.Convert(&extKC, &kc, nil) - if err != nil { - return nil, err - } - return &kc, nil - } else { - // Couldn't get a configuration from the API server yet. - // Restart as soon as anything comes back from the API server. - startKubeletConfigSyncLoop(s, "") - return nil, err - } -} - -// Run runs the specified KubeletServer with the given Dependencies. This should never exit. +// Run runs the specified KubeletServer with the given Dependencies. This should never exit. // The kubeDeps argument may be nil - if so, it is initialized from the settings on KubeletServer. // Otherwise, the caller is assumed to have set up the Dependencies object and a default one will // not be generated. @@ -315,27 +204,6 @@ func initConfigz(kc *componentconfig.KubeletConfiguration) (*configz.Config, err return cz, err } -// validateConfig validates configuration of Kubelet and returns an error if the input configuration is invalid. -func validateConfig(s *options.KubeletServer) error { - if !s.CgroupsPerQOS && len(s.EnforceNodeAllocatable) > 0 { - return fmt.Errorf("Node Allocatable enforcement is not supported unless Cgroups Per QOS feature is turned on") - } - if s.SystemCgroups != "" && s.CgroupRoot == "" { - return fmt.Errorf("invalid configuration: system container was specified and cgroup root was not specified") - } - for _, val := range s.EnforceNodeAllocatable { - switch val { - case cm.NodeAllocatableEnforcementKey: - case cm.SystemReservedEnforcementKey: - case cm.KubeReservedEnforcementKey: - continue - default: - return fmt.Errorf("invalid option %q specified for EnforceNodeAllocatable setting. Valid options are %q, %q or %q", val, cm.NodeAllocatableEnforcementKey, cm.SystemReservedEnforcementKey, cm.KubeReservedEnforcementKey) - } - } - return nil -} - // makeEventRecorder sets up kubeDeps.Recorder if its nil. Its a no-op otherwise. func makeEventRecorder(s *componentconfig.KubeletConfiguration, kubeDeps *kubelet.Dependencies, nodeName types.NodeName) { if kubeDeps.Recorder != nil { @@ -353,20 +221,20 @@ func makeEventRecorder(s *componentconfig.KubeletConfiguration, kubeDeps *kubele } func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (err error) { - - standaloneMode := true - switch { - case s.RequireKubeConfig == true: - standaloneMode = false - glog.Warningf("--require-kubeconfig is deprecated. Set --kubeconfig without using --require-kubeconfig.") - case s.KubeConfig.Provided(): - standaloneMode = false + // Set global feature gates based on the value on the initial KubeletServer + err = utilfeature.DefaultFeatureGate.Set(s.KubeletConfiguration.FeatureGates) + if err != nil { + return err + } + // validate the initial KubeletServer (we set feature gates first, because this validation depends on feature gates) + if err := options.ValidateKubeletServer(s); err != nil { + return err } + // Obtain Kubelet Lock File if s.ExitOnLockContention && s.LockFilePath == "" { return errors.New("cannot exit on lock file contention: no lock file specified") } - done := make(chan struct{}) if s.LockFilePath != "" { glog.Infof("acquiring file lock on %q", s.LockFilePath) @@ -381,44 +249,20 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (err error) { } } - // Set feature gates based on the value in KubeletConfiguration - err = utilfeature.DefaultFeatureGate.Set(s.KubeletConfiguration.FeatureGates) - if err != nil { - return err - } - // Register current configuration with /configz endpoint - cfgz, cfgzErr := initConfigz(&s.KubeletConfiguration) - if utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { - // Look for config on the API server. If it exists, replace s.KubeletConfiguration - // with it and continue. initKubeletConfigSync also starts the background thread that checks for new config. - - // Don't do dynamic Kubelet configuration in runonce mode - if s.RunOnce == false { - remoteKC, err := initKubeletConfigSync(s) - if err == nil { - // Update s (KubeletServer) with new config from API server - s.KubeletConfiguration = *remoteKC - // Ensure that /configz is up to date with the new config - if cfgzErr != nil { - glog.Errorf("was unable to register configz before due to %s, will not be able to set now", cfgzErr) - } else { - setConfigz(cfgz, &s.KubeletConfiguration) - } - // Update feature gates from the new config - err = utilfeature.DefaultFeatureGate.Set(s.KubeletConfiguration.FeatureGates) - if err != nil { - return err - } - } else { - glog.Errorf("failed to init dynamic Kubelet configuration sync: %v", err) - } - } + _, err = initConfigz(&s.KubeletConfiguration) + if err != nil { + glog.Errorf("unable to register KubeletConfiguration with configz, error: %v", err) } - // Validate configuration. - if err := validateConfig(s); err != nil { - return err + // About to get clients and such, detect standaloneMode + standaloneMode := true + switch { + case s.RequireKubeConfig == true: + standaloneMode = false + glog.Warningf("--require-kubeconfig is deprecated. Set --kubeconfig without using --require-kubeconfig.") + case s.KubeConfig.Provided(): + standaloneMode = false } if kubeDeps == nil { @@ -518,6 +362,12 @@ func run(s *options.KubeletServer, kubeDeps *kubelet.Dependencies) (err error) { } } + // Alpha Dynamic Configuration Implementation; + // if the kubelet config controller is available, inject the latest to start the config and status sync loops + if utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) && kubeDeps.KubeletConfigController != nil && !standaloneMode && !s.RunOnce { + kubeDeps.KubeletConfigController.StartSync(kubeDeps.KubeClient, string(nodeName)) + } + if kubeDeps.Auth == nil { auth, err := BuildAuth(nodeName, kubeDeps.ExternalKubeClient, s.KubeletConfiguration) if err != nil { @@ -653,8 +503,8 @@ func getNodeName(cloud cloudprovider.Interface, hostname string) (types.NodeName // certificate and key file are generated. Returns a configured server.TLSOptions object. func InitializeTLS(kf *options.KubeletFlags, kc *componentconfig.KubeletConfiguration) (*server.TLSOptions, error) { if !utilfeature.DefaultFeatureGate.Enabled(features.RotateKubeletServerCertificate) && kc.TLSCertFile == "" && kc.TLSPrivateKeyFile == "" { - kc.TLSCertFile = path.Join(kc.CertDirectory, "kubelet.crt") - kc.TLSPrivateKeyFile = path.Join(kc.CertDirectory, "kubelet.key") + kc.TLSCertFile = path.Join(kf.CertDirectory, "kubelet.crt") + kc.TLSPrivateKeyFile = path.Join(kf.CertDirectory, "kubelet.key") canReadCertAndKey, err := certutil.CanReadCertAndKey(kc.TLSCertFile, kc.TLSPrivateKeyFile) if err != nil { @@ -795,8 +645,8 @@ func RunKubelet(kubeFlags *options.KubeletFlags, kubeCfg *componentconfig.Kubele } capabilities.Setup(kubeCfg.AllowPrivileged, privilegedSources, 0) - credentialprovider.SetPreferredDockercfgPath(kubeCfg.RootDirectory) - glog.V(2).Infof("Using root directory: %v", kubeCfg.RootDirectory) + credentialprovider.SetPreferredDockercfgPath(kubeFlags.RootDirectory) + glog.V(2).Infof("Using root directory: %v", kubeFlags.RootDirectory) builder := kubeDeps.Builder if builder == nil { @@ -805,7 +655,8 @@ func RunKubelet(kubeFlags *options.KubeletFlags, kubeCfg *componentconfig.Kubele if kubeDeps.OSInterface == nil { kubeDeps.OSInterface = kubecontainer.RealOS{} } - k, err := builder(kubeCfg, kubeDeps, &kubeFlags.ContainerRuntimeOptions, kubeFlags.HostnameOverride, kubeFlags.NodeIP, kubeFlags.ProviderID) + + k, err := builder(kubeCfg, kubeDeps, &kubeFlags.ContainerRuntimeOptions, kubeFlags.HostnameOverride, kubeFlags.NodeIP, kubeFlags.ProviderID, kubeFlags.CloudProvider, kubeFlags.CertDirectory, kubeFlags.RootDirectory) if err != nil { return fmt.Errorf("failed to create kubelet: %v", err) } @@ -849,11 +700,20 @@ func startKubelet(k kubelet.Bootstrap, podCfg *config.PodConfig, kubeCfg *compon } } -func CreateAndInitKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *kubelet.Dependencies, crOptions *options.ContainerRuntimeOptions, hostnameOverride, nodeIP, providerID string) (k kubelet.Bootstrap, err error) { +func CreateAndInitKubelet(kubeCfg *componentconfig.KubeletConfiguration, + kubeDeps *kubelet.Dependencies, + crOptions *options.ContainerRuntimeOptions, + hostnameOverride, + nodeIP, + providerID, + cloudProvider, + certDirectory, + rootDirectory string) (k kubelet.Bootstrap, err error) { + // TODO: block until all sources have delivered at least one update to the channel, or break the sync loop // up into "per source" synchronizations - k, err = kubelet.NewMainKubelet(kubeCfg, kubeDeps, crOptions, hostnameOverride, nodeIP, providerID) + k, err = kubelet.NewMainKubelet(kubeCfg, kubeDeps, crOptions, hostnameOverride, nodeIP, providerID, cloudProvider, certDirectory, rootDirectory) if err != nil { return nil, err } @@ -896,6 +756,36 @@ func parseResourceList(m componentconfig.ConfigurationMap) (v1.ResourceList, err return rl, nil } +// BootstrapKubeletConfigController constructs and bootstrap a configuration controller +func BootstrapKubeletConfigController(flags *options.KubeletFlags, + defaultConfig *componentconfig.KubeletConfiguration) (*componentconfig.KubeletConfiguration, *kubeletconfig.Controller, error) { + var err error + // Alpha Dynamic Configuration Implementation; this section only loads config from disk, it does not contact the API server + // compute absolute paths based on current working dir + initConfigDir := "" + if flags.InitConfigDir.Provided() { + initConfigDir, err = filepath.Abs(flags.InitConfigDir.Value()) + if err != nil { + return nil, nil, fmt.Errorf("failed to get absolute path for --init-config-dir") + } + } + dynamicConfigDir := "" + if flags.DynamicConfigDir.Provided() { + dynamicConfigDir, err = filepath.Abs(flags.DynamicConfigDir.Value()) + if err != nil { + return nil, nil, fmt.Errorf("failed to get absolute path for --dynamic-config-dir") + } + } + + // get the latest KubeletConfiguration checkpoint from disk, or load the init or default config if no valid checkpoints exist + kubeletConfigController := kubeletconfig.NewController(initConfigDir, dynamicConfigDir, defaultConfig) + kubeletConfig, err := kubeletConfigController.Bootstrap() + if err != nil { + return nil, nil, fmt.Errorf("failed to determine a valid configuration, error: %v", err) + } + return kubeletConfig, kubeletConfigController, nil +} + // RunDockershim only starts the dockershim in current process. This is only used for cri validate testing purpose // TODO(random-liu): Move this to a separate binary. func RunDockershim(c *componentconfig.KubeletConfiguration, r *options.ContainerRuntimeOptions) error { diff --git a/cmd/kubelet/kubelet.go b/cmd/kubelet/kubelet.go index b9f1b5fc177..a55f9c68e22 100644 --- a/cmd/kubelet/kubelet.go +++ b/cmd/kubelet/kubelet.go @@ -24,36 +24,88 @@ import ( "fmt" "os" + "github.com/spf13/pflag" + + utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/apiserver/pkg/util/flag" "k8s.io/apiserver/pkg/util/logs" "k8s.io/kubernetes/cmd/kubelet/app" "k8s.io/kubernetes/cmd/kubelet/app/options" + "k8s.io/kubernetes/pkg/apis/componentconfig" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration - _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration + "k8s.io/kubernetes/pkg/features" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig" + _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration "k8s.io/kubernetes/pkg/version/verflag" - - "github.com/spf13/pflag" ) -func main() { - s := options.NewKubeletServer() - s.AddFlags(pflag.CommandLine) +func die(err error) { + fmt.Fprintf(os.Stderr, "error: %v\n", err) + os.Exit(1) +} +func main() { + // construct KubeletFlags object and register command line flags mapping + kubeletFlags := options.NewKubeletFlags() + kubeletFlags.AddFlags(pflag.CommandLine) + + // construct KubeletConfiguration object and register command line flags mapping + defaultConfig, err := options.NewKubeletConfiguration() + if err != nil { + die(err) + } + options.AddKubeletConfigFlags(pflag.CommandLine, defaultConfig) + + // parse the command line flags into the respective objects flag.InitFlags() + + // initialize logging and defer flush logs.InitLogs() defer logs.FlushLogs() + // short-circuit on verflag verflag.PrintAndExitIfRequested() - if s.ExperimentalDockershim { - if err := app.RunDockershim(&s.KubeletConfiguration, &s.ContainerRuntimeOptions); err != nil { - fmt.Fprintf(os.Stderr, "error: %v\n", err) - os.Exit(1) + // TODO(mtaufen): won't need this this once dynamic config is GA + // set feature gates so we can check if dynamic config is enabled + if err := utilfeature.DefaultFeatureGate.Set(defaultConfig.FeatureGates); err != nil { + die(err) + } + // validate the initial KubeletFlags, to make sure the dynamic-config-related flags aren't used unless the feature gate is on + if err := options.ValidateKubeletFlags(kubeletFlags); err != nil { + die(err) + } + // if dynamic kubelet config is enabled, bootstrap the kubelet config controller + var kubeletConfig *componentconfig.KubeletConfiguration + var kubeletConfigController *kubeletconfig.Controller + if utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { + var err error + kubeletConfig, kubeletConfigController, err = app.BootstrapKubeletConfigController(kubeletFlags, defaultConfig) + if err != nil { + die(err) + } + } else if kubeletConfig == nil { + kubeletConfig = defaultConfig + } + + // construct a KubeletServer from kubeletFlags and kubeletConfig + kubeletServer := &options.KubeletServer{KubeletFlags: *kubeletFlags, KubeletConfiguration: *kubeletConfig} + + // use kubeletServer to construct the default KubeletDeps + kubeletDeps, err := app.UnsecuredDependencies(kubeletServer) + + // add the kubelet config controller to kubeletDeps + kubeletDeps.KubeletConfigController = kubeletConfigController + + // start the experimental docker shim, if enabled + if kubeletFlags.ExperimentalDockershim { + if err := app.RunDockershim(kubeletConfig, &kubeletFlags.ContainerRuntimeOptions); err != nil { + die(err) } } - if err := app.Run(s, nil); err != nil { - fmt.Fprintf(os.Stderr, "error: %v\n", err) - os.Exit(1) + // run the kubelet + if err := app.Run(kubeletServer, kubeletDeps); err != nil { + die(err) } } diff --git a/hack/.golint_failures b/hack/.golint_failures index 136282523b0..3e3974d2624 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -793,7 +793,6 @@ staging/src/k8s.io/sample-apiserver/pkg/apiserver staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces staging/src/k8s.io/sample-apiserver/pkg/cmd/server -staging/src/k8s.io/sample-apiserver/pkg/registry staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder test/e2e diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index a3d243b78bd..66e0ea3551f 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -193,6 +193,7 @@ drop-embedded-fields dry-run dump-logs-on-failure duration-sec +dynamic-config-dir e2e-output-dir e2e-verify-service-account enable-aggregator-routing @@ -347,6 +348,7 @@ image-service-endpoint included-types-overrides include-extended-apis include-extended-apis +init-config-dir initial-sync-timeout input-base input-dirs @@ -490,6 +492,7 @@ network-plugin network-plugin-dir network-plugin-mtu node-cidr-mask-size +node-config-dir node-eviction-rate node-instance-group node-ip diff --git a/pkg/api/register.go b/pkg/api/register.go index 5f261bdfb5b..39562e5a566 100644 --- a/pkg/api/register.go +++ b/pkg/api/register.go @@ -85,6 +85,7 @@ func addKnownTypes(scheme *runtime.Scheme) error { &ServiceProxyOptions{}, &NodeList{}, &Node{}, + &NodeConfigSource{}, &NodeProxyOptions{}, &Endpoints{}, &EndpointsList{}, diff --git a/pkg/api/types.go b/pkg/api/types.go index ab9b7056d4f..33371228fd8 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -2913,6 +2913,19 @@ type NodeSpec struct { // If specified, the node's taints. // +optional Taints []Taint + + // If specified, the source to get node configuration from + // The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field + // +optional + ConfigSource *NodeConfigSource +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NodeConfigSource specifies a source of node configuration. Exactly one subfield must be non-nil. +type NodeConfigSource struct { + metav1.TypeMeta + ConfigMapRef *ObjectReference } // DaemonEndpoint contains information about a single Daemon endpoint. diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index a6b49774425..bcb9069614b 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -3338,6 +3338,11 @@ func ValidateNode(node *api.Node) field.ErrorList { allErrs = append(allErrs, field.Required(field.NewPath("spec", "externalID"), "")) } + // Only allow Node.Spec.ConfigSource to be set if the DynamicKubeletConfig feature gate is enabled + if node.Spec.ConfigSource != nil && !utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { + allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "configSource"), "configSource may only be set if the DynamicKubeletConfig feature gate is enabled)")) + } + // TODO(rjnagal): Ignore PodCIDR till its completely implemented. return allErrs } @@ -3365,7 +3370,7 @@ func ValidateNodeUpdate(node, oldNode *api.Node) field.ErrorList { allErrs = append(allErrs, ValidateResourceQuantityValue(string(k), v, resPath)...) } - // Validte no duplicate addresses in node status. + // Validate no duplicate addresses in node status. addresses := make(map[api.NodeAddress]bool) for i, address := range node.Status.Addresses { if _, ok := addresses[address]; ok { @@ -3398,10 +3403,16 @@ func ValidateNodeUpdate(node, oldNode *api.Node) field.ErrorList { } oldNode.Spec.Taints = node.Spec.Taints + // Allow updates to Node.Spec.ConfigSource if DynamicKubeletConfig feature gate is enabled + if utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { + oldNode.Spec.ConfigSource = node.Spec.ConfigSource + } + + // We made allowed changes to oldNode, and now we compare oldNode to node. Any remaining differences indicate changes to protected fields. // TODO: Add a 'real' error type for this error and provide print actual diffs. if !apiequality.Semantic.DeepEqual(oldNode, node) { glog.V(4).Infof("Update failed validation %#v vs %#v", oldNode, node) - allErrs = append(allErrs, field.Forbidden(field.NewPath(""), "node updates may only change labels, taints or capacity")) + allErrs = append(allErrs, field.Forbidden(field.NewPath(""), "node updates may only change labels, taints, or capacity (or configSource, if the DynamicKubeletConfig feature gate is enabled)")) } return allErrs diff --git a/pkg/apis/componentconfig/BUILD b/pkg/apis/componentconfig/BUILD index d651fa89495..f6d6ab2b2e3 100644 --- a/pkg/apis/componentconfig/BUILD +++ b/pkg/apis/componentconfig/BUILD @@ -50,6 +50,7 @@ filegroup( ":package-srcs", "//pkg/apis/componentconfig/install:all-srcs", "//pkg/apis/componentconfig/v1alpha1:all-srcs", + "//pkg/apis/componentconfig/validation:all-srcs", ], tags = ["automanaged"], ) diff --git a/pkg/apis/componentconfig/types.go b/pkg/apis/componentconfig/types.go index f3ff3497760..2c0a7b2fe4f 100644 --- a/pkg/apis/componentconfig/types.go +++ b/pkg/apis/componentconfig/types.go @@ -180,6 +180,18 @@ const ( type KubeletConfiguration struct { metav1.TypeMeta + // Only used for dynamic configuration. + // The length of the trial period for this configuration. If the Kubelet records CrashLoopThreshold or + // more startups during this period, the current configuration will be marked bad and the + // Kubelet will roll-back to the last-known-good. Default 10 minutes. + ConfigTrialDuration metav1.Duration + // Only used for dynamic configuration. + // If this number of Kubelet "crashes" during ConfigTrialDuration meets this threshold, + // the configuration fails the trial and the Kubelet rolls back to its last-known-good config. + // Crash-loops are detected by counting Kubelet startups, so one startup is implicitly added + // to this threshold to always allow a single restart per config change. + // Default 10, mimimum allowed is 0, maximum allowed is 10. + CrashLoopThreshold int32 // podManifestPath is the path to the directory containing pod manifests to // run, or the path to a single manifest file PodManifestPath string @@ -215,17 +227,10 @@ type KubeletConfiguration struct { // tlsPrivateKeyFile is the ile containing x509 private key matching // tlsCertFile. TLSPrivateKeyFile string - // certDirectory is the directory where the TLS certs are located (by - // default /var/run/kubernetes). If tlsCertFile and tlsPrivateKeyFile - // are provided, this flag will be ignored. - CertDirectory string // authentication specifies how requests to the Kubelet's server are authenticated Authentication KubeletAuthentication // authorization specifies how requests to the Kubelet's server are authorized Authorization KubeletAuthorization - // rootDirectory is the directory path to place kubelet files (volume - // mounts,etc). - RootDirectory string // seccompProfileRoot is the directory path for seccomp profiles. SeccompProfileRoot string // allowPrivileged enables containers to request privileged mode. @@ -314,12 +319,6 @@ type KubeletConfiguration struct { // volumePluginDir is the full path of the directory in which to search // for additional third party volume plugins VolumePluginDir string - // cloudProvider is the provider for cloud services. - // +optional - CloudProvider string - // cloudConfigFile is the path to the cloud provider configuration file. - // +optional - CloudConfigFile string // KubeletCgroups is the absolute name of cgroups to isolate the kubelet in. // +optional KubeletCgroups string diff --git a/pkg/apis/componentconfig/v1alpha1/defaults.go b/pkg/apis/componentconfig/v1alpha1/defaults.go index 8b34965684d..bb501e17a2a 100644 --- a/pkg/apis/componentconfig/v1alpha1/defaults.go +++ b/pkg/apis/componentconfig/v1alpha1/defaults.go @@ -34,7 +34,7 @@ import ( ) const ( - defaultRootDir = "/var/lib/kubelet" + DefaultRootDir = "/var/lib/kubelet" AutoDetectCloudProvider = "auto-detect" @@ -192,6 +192,13 @@ func SetDefaults_LeaderElectionConfiguration(obj *LeaderElectionConfiguration) { } func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { + // pointer because the zeroDuration is valid - if you want to skip the trial period + if obj.ConfigTrialDuration == nil { + obj.ConfigTrialDuration = &metav1.Duration{Duration: 10 * time.Minute} + } + if obj.CrashLoopThreshold == nil { + obj.CrashLoopThreshold = utilpointer.Int32Ptr(10) + } if obj.Authentication.Anonymous.Enabled == nil { obj.Authentication.Anonymous.Enabled = boolVar(true) } @@ -214,18 +221,12 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { if obj.Address == "" { obj.Address = "0.0.0.0" } - if obj.CloudProvider == "" { - obj.CloudProvider = AutoDetectCloudProvider - } if obj.CAdvisorPort == nil { obj.CAdvisorPort = utilpointer.Int32Ptr(4194) } if obj.VolumeStatsAggPeriod == zeroDuration { obj.VolumeStatsAggPeriod = metav1.Duration{Duration: time.Minute} } - if obj.CertDirectory == "" { - obj.CertDirectory = "/var/run/kubernetes" - } if obj.ContainerRuntime == "" { obj.ContainerRuntime = "docker" } @@ -338,14 +339,11 @@ func SetDefaults_KubeletConfiguration(obj *KubeletConfiguration) { if obj.ResolverConfig == "" { obj.ResolverConfig = kubetypes.ResolvConfDefault } - if obj.RootDirectory == "" { - obj.RootDirectory = defaultRootDir - } if obj.SerializeImagePulls == nil { obj.SerializeImagePulls = boolVar(true) } if obj.SeccompProfileRoot == "" { - obj.SeccompProfileRoot = filepath.Join(defaultRootDir, "seccomp") + obj.SeccompProfileRoot = filepath.Join(DefaultRootDir, "seccomp") } if obj.StreamingConnectionIdleTimeout == zeroDuration { obj.StreamingConnectionIdleTimeout = metav1.Duration{Duration: 4 * time.Hour} diff --git a/pkg/apis/componentconfig/v1alpha1/types.go b/pkg/apis/componentconfig/v1alpha1/types.go index 77fd7d42518..12941dc610d 100644 --- a/pkg/apis/componentconfig/v1alpha1/types.go +++ b/pkg/apis/componentconfig/v1alpha1/types.go @@ -256,6 +256,18 @@ type LeaderElectionConfiguration struct { type KubeletConfiguration struct { metav1.TypeMeta `json:",inline"` + // Only used for dynamic configuration. + // The length of the trial period for this configuration. If the Kubelet records CrashLoopThreshold or + // more startups during this period, the current configuration will be marked bad and the + // Kubelet will roll-back to the last-known-good. Default 10 minutes. + ConfigTrialDuration *metav1.Duration `json:"configTrialDuration"` + // Only used for dynamic configuration. + // If this number of Kubelet "crashes" during ConfigTrialDuration meets this threshold, + // the configuration fails the trial and the Kubelet rolls back to its last-known-good config. + // Crash-loops are detected by counting Kubelet startups, so one startup is implicitly added + // to this threshold to always allow a single restart per config change. + // Default 10, mimimum allowed is 0, maximum allowed is 10. + CrashLoopThreshold *int32 `json:"crashLoopThreshold"` // podManifestPath is the path to the directory containing pod manifests to // run, or the path to a single manifest file PodManifestPath string `json:"podManifestPath"` @@ -291,17 +303,10 @@ type KubeletConfiguration struct { // tlsPrivateKeyFile is the ile containing x509 private key matching // tlsCertFile. TLSPrivateKeyFile string `json:"tlsPrivateKeyFile"` - // certDirectory is the directory where the TLS certs are located (by - // default /var/run/kubernetes). If tlsCertFile and tlsPrivateKeyFile - // are provided, this flag will be ignored. - CertDirectory string `json:"certDirectory"` // authentication specifies how requests to the Kubelet's server are authenticated Authentication KubeletAuthentication `json:"authentication"` // authorization specifies how requests to the Kubelet's server are authorized Authorization KubeletAuthorization `json:"authorization"` - // rootDirectory is the directory path to place kubelet files (volume - // mounts,etc). - RootDirectory string `json:"rootDirectory"` // seccompProfileRoot is the directory path for seccomp profiles. SeccompProfileRoot string `json:"seccompProfileRoot"` // allowPrivileged enables containers to request privileged mode. @@ -391,10 +396,6 @@ type KubeletConfiguration struct { // volumePluginDir is the full path of the directory in which to search // for additional third party volume plugins VolumePluginDir string `json:"volumePluginDir"` - // cloudProvider is the provider for cloud services. - CloudProvider string `json:"cloudProvider"` - // cloudConfigFile is the path to the cloud provider configuration file. - CloudConfigFile string `json:"cloudConfigFile"` // kubeletCgroups is the absolute name of cgroups to isolate the kubelet in. KubeletCgroups string `json:"kubeletCgroups"` // runtimeCgroups are cgroups that container runtime is expected to be isolated in. diff --git a/pkg/apis/componentconfig/validation/BUILD b/pkg/apis/componentconfig/validation/BUILD new file mode 100644 index 00000000000..77590859345 --- /dev/null +++ b/pkg/apis/componentconfig/validation/BUILD @@ -0,0 +1,31 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["validation.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/componentconfig:go_default_library", + "//pkg/kubelet/cm:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/componentconfig/validation/validation.go b/pkg/apis/componentconfig/validation/validation.go new file mode 100644 index 00000000000..3931672c721 --- /dev/null +++ b/pkg/apis/componentconfig/validation/validation.go @@ -0,0 +1,56 @@ +/* +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. +*/ + +package validation + +import ( + "fmt" + + "k8s.io/kubernetes/pkg/apis/componentconfig" + containermanager "k8s.io/kubernetes/pkg/kubelet/cm" +) + +// MaxCrashLoopThreshold is the maximum allowed KubeletConfiguraiton.CrashLoopThreshold +const MaxCrashLoopThreshold = 10 + +// ValidateKubeletConfiguration validates `kc` and returns an error if it is invalid +func ValidateKubeletConfiguration(kc *componentconfig.KubeletConfiguration) error { + // restrict crashloop threshold to between 0 and `maxCrashLoopThreshold`, inclusive + // more than `maxStartups=maxCrashLoopThreshold` adds unnecessary bloat to the .startups.json file, + // and negative values would be silly. + if kc.CrashLoopThreshold < 0 || kc.CrashLoopThreshold > MaxCrashLoopThreshold { + return fmt.Errorf("field `CrashLoopThreshold` must be between 0 and %d, inclusive", MaxCrashLoopThreshold) + } + + if !kc.CgroupsPerQOS && len(kc.EnforceNodeAllocatable) > 0 { + return fmt.Errorf("node allocatable enforcement is not supported unless Cgroups Per QOS feature is turned on") + } + if kc.SystemCgroups != "" && kc.CgroupRoot == "" { + return fmt.Errorf("invalid configuration: system container was specified and cgroup root was not specified") + } + for _, val := range kc.EnforceNodeAllocatable { + switch val { + case containermanager.NodeAllocatableEnforcementKey: + case containermanager.SystemReservedEnforcementKey: + case containermanager.KubeReservedEnforcementKey: + continue + default: + return fmt.Errorf("invalid option %q specified for EnforceNodeAllocatable setting. Valid options are %q, %q or %q", + val, containermanager.NodeAllocatableEnforcementKey, containermanager.SystemReservedEnforcementKey, containermanager.KubeReservedEnforcementKey) + } + } + return nil +} diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index 607eaafe7c1..495036c105a 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -64,6 +64,7 @@ go_library( "//pkg/kubelet/gpu:go_default_library", "//pkg/kubelet/gpu/nvidia:go_default_library", "//pkg/kubelet/images:go_default_library", + "//pkg/kubelet/kubeletconfig:go_default_library", "//pkg/kubelet/kuberuntime:go_default_library", "//pkg/kubelet/lifecycle:go_default_library", "//pkg/kubelet/metrics:go_default_library", @@ -256,6 +257,7 @@ filegroup( "//pkg/kubelet/eviction:all-srcs", "//pkg/kubelet/gpu:all-srcs", "//pkg/kubelet/images:all-srcs", + "//pkg/kubelet/kubeletconfig:all-srcs", "//pkg/kubelet/kuberuntime:all-srcs", "//pkg/kubelet/leaky:all-srcs", "//pkg/kubelet/lifecycle:all-srcs", diff --git a/pkg/kubelet/certificate/kubelet.go b/pkg/kubelet/certificate/kubelet.go index aed82739c15..5c85c66f225 100644 --- a/pkg/kubelet/certificate/kubelet.go +++ b/pkg/kubelet/certificate/kubelet.go @@ -31,15 +31,15 @@ import ( // NewKubeletServerCertificateManager creates a certificate manager for the kubelet when retrieving a server certificate // or returns an error. -func NewKubeletServerCertificateManager(kubeClient clientset.Interface, kubeCfg *componentconfig.KubeletConfiguration, nodeName types.NodeName, ips []net.IP, hostnames []string) (Manager, error) { +func NewKubeletServerCertificateManager(kubeClient clientset.Interface, kubeCfg *componentconfig.KubeletConfiguration, nodeName types.NodeName, ips []net.IP, hostnames []string, certDirectory string) (Manager, error) { var certSigningRequestClient clientcertificates.CertificateSigningRequestInterface if kubeClient != nil && kubeClient.Certificates() != nil { certSigningRequestClient = kubeClient.Certificates().CertificateSigningRequests() } certificateStore, err := NewFileStore( "kubelet-server", - kubeCfg.CertDirectory, - kubeCfg.CertDirectory, + certDirectory, + certDirectory, kubeCfg.TLSCertFile, kubeCfg.TLSPrivateKeyFile) if err != nil { diff --git a/pkg/kubelet/kubelet.go b/pkg/kubelet/kubelet.go index b562e5e9be3..03e43ed1d77 100644 --- a/pkg/kubelet/kubelet.go +++ b/pkg/kubelet/kubelet.go @@ -74,6 +74,7 @@ import ( "k8s.io/kubernetes/pkg/kubelet/gpu" "k8s.io/kubernetes/pkg/kubelet/gpu/nvidia" "k8s.io/kubernetes/pkg/kubelet/images" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig" "k8s.io/kubernetes/pkg/kubelet/kuberuntime" "k8s.io/kubernetes/pkg/kubelet/lifecycle" "k8s.io/kubernetes/pkg/kubelet/metrics" @@ -189,7 +190,15 @@ type Bootstrap interface { } // Builder creates and initializes a Kubelet instance -type Builder func(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Dependencies, crOptions *options.ContainerRuntimeOptions, hostnameOverride, nodeIP, providerID string) (Bootstrap, error) +type Builder func(kubeCfg *componentconfig.KubeletConfiguration, + kubeDeps *Dependencies, + crOptions *options.ContainerRuntimeOptions, + hostnameOverride, + nodeIP, + providerID, + cloudProvider, + certDirectory, + rootDirectory string) (Bootstrap, error) // Dependencies is a bin for things we might consider "injected dependencies" -- objects constructed // at runtime that are necessary for running the Kubelet. This is a temporary solution for grouping @@ -218,23 +227,24 @@ type Dependencies struct { Options []Option // Injected Dependencies - Auth server.AuthInterface - CAdvisorInterface cadvisor.Interface - Cloud cloudprovider.Interface - ContainerManager cm.ContainerManager - DockerClient libdocker.Interface - EventClient v1core.EventsGetter - KubeClient clientset.Interface - ExternalKubeClient clientgoclientset.Interface - Mounter mount.Interface - NetworkPlugins []network.NetworkPlugin - OOMAdjuster *oom.OOMAdjuster - OSInterface kubecontainer.OSInterface - PodConfig *config.PodConfig - Recorder record.EventRecorder - Writer kubeio.Writer - VolumePlugins []volume.VolumePlugin - TLSOptions *server.TLSOptions + Auth server.AuthInterface + CAdvisorInterface cadvisor.Interface + Cloud cloudprovider.Interface + ContainerManager cm.ContainerManager + DockerClient libdocker.Interface + EventClient v1core.EventsGetter + KubeClient clientset.Interface + ExternalKubeClient clientgoclientset.Interface + Mounter mount.Interface + NetworkPlugins []network.NetworkPlugin + OOMAdjuster *oom.OOMAdjuster + OSInterface kubecontainer.OSInterface + PodConfig *config.PodConfig + Recorder record.EventRecorder + Writer kubeio.Writer + VolumePlugins []volume.VolumePlugin + TLSOptions *server.TLSOptions + KubeletConfigController *kubeletconfig.Controller } // makePodSourceConfig creates a config.PodConfig from the given @@ -284,9 +294,17 @@ func getRuntimeAndImageServices(config *componentconfig.KubeletConfiguration) (i // NewMainKubelet instantiates a new Kubelet object along with all the required internal modules. // No initialization of Kubelet and its modules should happen here. -func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Dependencies, crOptions *options.ContainerRuntimeOptions, hostnameOverride, nodeIP, providerID string) (*Kubelet, error) { - if kubeCfg.RootDirectory == "" { - return nil, fmt.Errorf("invalid root directory %q", kubeCfg.RootDirectory) +func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, + kubeDeps *Dependencies, + crOptions *options.ContainerRuntimeOptions, + hostnameOverride, + nodeIP, + providerID, + cloudProvider, + certDirectory, + rootDirectory string) (*Kubelet, error) { + if rootDirectory == "" { + return nil, fmt.Errorf("invalid root directory %q", rootDirectory) } if kubeCfg.SyncFrequency.Duration <= 0 { return nil, fmt.Errorf("invalid sync frequency %d", kubeCfg.SyncFrequency.Duration) @@ -429,7 +447,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Dep hostname: hostname, nodeName: nodeName, kubeClient: kubeDeps.KubeClient, - rootDirectory: kubeCfg.RootDirectory, + rootDirectory: rootDirectory, resyncInterval: kubeCfg.SyncFrequency.Duration, sourcesReady: config.NewSourcesReady(kubeDeps.PodConfig.SeenAllSources), registerNode: kubeCfg.RegisterNode, @@ -443,8 +461,8 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Dep recorder: kubeDeps.Recorder, cadvisor: kubeDeps.CAdvisorInterface, cloud: kubeDeps.Cloud, - autoDetectCloudProvider: (componentconfigv1alpha1.AutoDetectCloudProvider == kubeCfg.CloudProvider), - externalCloudProvider: cloudprovider.IsExternal(kubeCfg.CloudProvider), + autoDetectCloudProvider: (componentconfigv1alpha1.AutoDetectCloudProvider == cloudProvider), + externalCloudProvider: cloudprovider.IsExternal(cloudProvider), providerID: providerID, nodeRef: nodeRef, nodeLabels: kubeCfg.NodeLabels, @@ -696,7 +714,7 @@ func NewMainKubelet(kubeCfg *componentconfig.KubeletConfiguration, kubeDeps *Dep ips = append(ips, cloudIPs...) names := append([]string{klet.GetHostname(), hostnameOverride}, cloudNames...) - klet.serverCertificateManager, err = certificate.NewKubeletServerCertificateManager(klet.kubeClient, kubeCfg, klet.nodeName, ips, names) + klet.serverCertificateManager, err = certificate.NewKubeletServerCertificateManager(klet.kubeClient, kubeCfg, klet.nodeName, ips, names, certDirectory) if err != nil { return nil, fmt.Errorf("failed to initialize certificate manager: %v", err) } diff --git a/pkg/kubelet/kubeletconfig/BUILD b/pkg/kubelet/kubeletconfig/BUILD new file mode 100644 index 00000000000..0742af769e6 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/BUILD @@ -0,0 +1,69 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "configsync.go", + "controller.go", + "rollback.go", + "watch.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/apis/componentconfig:go_default_library", + "//pkg/apis/componentconfig/validation:go_default_library", + "//pkg/kubelet/kubeletconfig/badconfig:go_default_library", + "//pkg/kubelet/kubeletconfig/checkpoint:go_default_library", + "//pkg/kubelet/kubeletconfig/checkpoint/store:go_default_library", + "//pkg/kubelet/kubeletconfig/configfiles:go_default_library", + "//pkg/kubelet/kubeletconfig/startups:go_default_library", + "//pkg/kubelet/kubeletconfig/status:go_default_library", + "//pkg/kubelet/kubeletconfig/util/equal:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + "//pkg/kubelet/kubeletconfig/util/log:go_default_library", + "//pkg/kubelet/kubeletconfig/util/panic:go_default_library", + "//pkg/version:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//pkg/kubelet/kubeletconfig/badconfig:all-srcs", + "//pkg/kubelet/kubeletconfig/checkpoint:all-srcs", + "//pkg/kubelet/kubeletconfig/configfiles:all-srcs", + "//pkg/kubelet/kubeletconfig/startups:all-srcs", + "//pkg/kubelet/kubeletconfig/status:all-srcs", + "//pkg/kubelet/kubeletconfig/util/codec:all-srcs", + "//pkg/kubelet/kubeletconfig/util/equal:all-srcs", + "//pkg/kubelet/kubeletconfig/util/files:all-srcs", + "//pkg/kubelet/kubeletconfig/util/filesystem:all-srcs", + "//pkg/kubelet/kubeletconfig/util/log:all-srcs", + "//pkg/kubelet/kubeletconfig/util/panic:all-srcs", + "//pkg/kubelet/kubeletconfig/util/test:all-srcs", + ], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/OWNERS b/pkg/kubelet/kubeletconfig/OWNERS new file mode 100644 index 00000000000..99d321aac10 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/OWNERS @@ -0,0 +1,5 @@ +approvers: +- mtaufen +- dchen1107 +reviewers: +- sig-node-reviewers diff --git a/pkg/kubelet/kubeletconfig/badconfig/BUILD b/pkg/kubelet/kubeletconfig/badconfig/BUILD new file mode 100644 index 00000000000..8feb477540b --- /dev/null +++ b/pkg/kubelet/kubeletconfig/badconfig/BUILD @@ -0,0 +1,51 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = [ + "badconfig_test.go", + "fstracker_test.go", + ], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/kubeletconfig/util/files:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + "//pkg/kubelet/kubeletconfig/util/test:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = [ + "badconfig.go", + "fstracker.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/kubeletconfig/util/files:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + "//pkg/kubelet/kubeletconfig/util/log:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/badconfig/badconfig.go b/pkg/kubelet/kubeletconfig/badconfig/badconfig.go new file mode 100644 index 00000000000..0374192695a --- /dev/null +++ b/pkg/kubelet/kubeletconfig/badconfig/badconfig.go @@ -0,0 +1,83 @@ +/* +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. +*/ + +package badconfig + +import ( + "encoding/json" + "fmt" + "time" +) + +// Tracker tracks "bad" configurations in a storage layer +type Tracker interface { + // Initialize sets up the storage layer + Initialize() error + // MarkBad marks `uid` as a bad config and records `reason` as the reason for marking it bad + MarkBad(uid, reason string) error + // Entry returns the Entry for `uid` if it exists in the tracker, otherise nil + Entry(uid string) (*Entry, error) +} + +// Entry describes when a configuration was marked bad and why +type Entry struct { + Time string `json:"time"` + Reason string `json:"reason"` +} + +// markBad makes an entry in `m` for the config with `uid` and reason `reason` +func markBad(m map[string]Entry, uid, reason string) { + now := time.Now() + entry := Entry{ + Time: now.Format(time.RFC3339), // use RFC3339 time format + Reason: reason, + } + m[uid] = entry +} + +// getEntry returns the Entry for `uid` in `m`, or nil if no such entry exists +func getEntry(m map[string]Entry, uid string) *Entry { + entry, ok := m[uid] + if ok { + return &entry + } + return nil +} + +// encode retuns a []byte representation of `m`, for saving `m` to a storage layer +func encode(m map[string]Entry) ([]byte, error) { + data, err := json.Marshal(m) + if err != nil { + return nil, err + } + return data, nil +} + +// decode transforms a []byte into a `map[string]Entry`, or returns an error if it can't produce said map +// if `data` is empty, returns an empty map +func decode(data []byte) (map[string]Entry, error) { + // create the map + m := map[string]Entry{} + // if the data is empty, just return the empty map + if len(data) == 0 { + return m, nil + } + // otherwise unmarshal the json + if err := json.Unmarshal(data, &m); err != nil { + return nil, fmt.Errorf("failed to unmarshal, error: %v", err) + } + return m, nil +} diff --git a/pkg/kubelet/kubeletconfig/badconfig/badconfig_test.go b/pkg/kubelet/kubeletconfig/badconfig/badconfig_test.go new file mode 100644 index 00000000000..617219eeb6c --- /dev/null +++ b/pkg/kubelet/kubeletconfig/badconfig/badconfig_test.go @@ -0,0 +1,157 @@ +/* +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. +*/ + +package badconfig + +import ( + "fmt" + "reflect" + "testing" + "time" +) + +func TestMarkBad(t *testing.T) { + // build a map with one entry + m := map[string]Entry{} + uid := "uid" + reason := "reason" + markBad(m, uid, reason) + + // the entry should exist for uid + entry, ok := m[uid] + if !ok { + t.Fatalf("expect entry for uid %q, but none exists", uid) + } + + // the entry's reason should match the reason it was marked bad with + if entry.Reason != reason { + t.Errorf("expect Entry.Reason %q, but got %q", reason, entry.Reason) + } + + // the entry's timestamp should be in RFC3339 format + if err := assertRFC3339(entry.Time); err != nil { + t.Errorf("expect Entry.Time to use RFC3339 format, but got %q, error: %v", entry.Time, err) + } + + // it should be the only entry in the map thus far + if n := len(m); n != 1 { + t.Errorf("expect one entry in the map, but got %d", n) + } + +} + +func TestGetEntry(t *testing.T) { + nowstamp := time.Now().Format(time.RFC3339) + uid := "uid" + expect := &Entry{ + Time: nowstamp, + Reason: "reason", + } + m := map[string]Entry{uid: *expect} + + // should return nil for entries that don't exist + bogus := "bogus-uid" + if e := getEntry(m, bogus); e != nil { + t.Errorf("expect nil for entries that don't exist (uid: %q), but got %#v", bogus, e) + } + + // should return non-nil for entries that exist + if e := getEntry(m, uid); e == nil { + t.Errorf("expect non-nil for entries that exist (uid: %q), but got nil", uid) + } else if !reflect.DeepEqual(expect, e) { + // entry should match what we inserted for the given UID + t.Errorf("expect entry for uid %q to match %#v, but got %#v", uid, expect, e) + } +} + +func TestEncode(t *testing.T) { + nowstamp := time.Now().Format(time.RFC3339) + uid := "uid" + expect := fmt.Sprintf(`{"%s":{"time":"%s","reason":"reason"}}`, uid, nowstamp) + m := map[string]Entry{uid: { + Time: nowstamp, + Reason: "reason", + }} + + data, err := encode(m) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + json := string(data) + + if json != expect { + t.Errorf("expect encoding of %#v to match %q, but got %q", m, expect, json) + } +} + +func TestDecode(t *testing.T) { + nowstamp := time.Now().Format(time.RFC3339) + uid := "uid" + valid := []byte(fmt.Sprintf(`{"%s":{"time":"%s","reason":"reason"}}`, uid, nowstamp)) + expect := map[string]Entry{uid: { + Time: nowstamp, + Reason: "reason", + }} + + // decoding valid json should result in an object with the correct values + if m, err := decode(valid); err != nil { + t.Errorf("expect decoding valid json %q to produce a map, but got error: %v", valid, err) + } else if !reflect.DeepEqual(expect, m) { + // m should equal expected decoded object + t.Errorf("expect decoding valid json %q to produce %#v, but got %#v", valid, expect, m) + } + + // decoding invalid json should return an error + invalid := []byte(`invalid`) + if m, err := decode(invalid); err == nil { + t.Errorf("expect decoding invalid json %q to return an error, but decoded to %#v", invalid, m) + } +} + +func TestRoundTrip(t *testing.T) { + nowstamp := time.Now().Format(time.RFC3339) + uid := "uid" + expect := map[string]Entry{uid: { + Time: nowstamp, + Reason: "reason", + }} + + // test that encoding and decoding an object results in the same value + data, err := encode(expect) + if err != nil { + t.Fatalf("failed to encode %#v, error: %v", expect, err) + } + after, err := decode(data) + if err != nil { + t.Fatalf("failed to decode %q, error: %v", string(data), err) + } + if !reflect.DeepEqual(expect, after) { + t.Errorf("expect round-tripping %#v to result in the same value, but got %#v", expect, after) + } +} + +func assertRFC3339(s string) error { + tm, err := time.Parse(time.RFC3339, s) + if err != nil { + return fmt.Errorf("expect RFC3339 format, but failed to parse, error: %v", err) + } + // parsing succeeded, now finish round-trip and compare + rt := tm.Format(time.RFC3339) + if rt != s { + return fmt.Errorf("expect RFC3339 format, but failed to round trip unchanged, original %q, round-trip %q", s, rt) + } + return nil +} diff --git a/pkg/kubelet/kubeletconfig/badconfig/fstracker.go b/pkg/kubelet/kubeletconfig/badconfig/fstracker.go new file mode 100644 index 00000000000..a90ec26dd5c --- /dev/null +++ b/pkg/kubelet/kubeletconfig/badconfig/fstracker.go @@ -0,0 +1,105 @@ +/* +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. +*/ + +package badconfig + +import ( + "path/filepath" + + utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +const ( + badConfigsFile = "bad-configs.json" +) + +// fsTracker tracks bad config in the local filesystem +type fsTracker struct { + // fs is the filesystem to use for storage operations; can be mocked for testing + fs utilfs.Filesystem + // trackingDir is the absolute path to the storage directory for fsTracker + trackingDir string +} + +// NewFsTracker returns a new Tracker that will store information in the `trackingDir` +func NewFsTracker(fs utilfs.Filesystem, trackingDir string) Tracker { + return &fsTracker{ + fs: fs, + trackingDir: trackingDir, + } +} + +func (tracker *fsTracker) Initialize() error { + utillog.Infof("initializing bad config tracking directory %q", tracker.trackingDir) + if err := utilfiles.EnsureDir(tracker.fs, tracker.trackingDir); err != nil { + return err + } + if err := utilfiles.EnsureFile(tracker.fs, filepath.Join(tracker.trackingDir, badConfigsFile)); err != nil { + return err + } + return nil +} + +func (tracker *fsTracker) MarkBad(uid, reason string) error { + m, err := tracker.load() + if err != nil { + return err + } + // create the bad config entry in the map + markBad(m, uid, reason) + // save the file + if err := tracker.save(m); err != nil { + return err + } + return nil +} + +func (tracker *fsTracker) Entry(uid string) (*Entry, error) { + m, err := tracker.load() + if err != nil { + return nil, err + } + // return the entry, or nil if it doesn't exist + return getEntry(m, uid), nil +} + +// load loads the bad-config-tracking file from disk and decodes the map encoding it contains +func (tracker *fsTracker) load() (map[string]Entry, error) { + path := filepath.Join(tracker.trackingDir, badConfigsFile) + // load the file + data, err := tracker.fs.ReadFile(path) + if err != nil { + return nil, err + } + return decode(data) +} + +// save replaces the contents of the bad-config-tracking file with the encoding of `m` +func (tracker *fsTracker) save(m map[string]Entry) error { + // encode the map + data, err := encode(m) + if err != nil { + return err + } + // save the file + path := filepath.Join(tracker.trackingDir, badConfigsFile) + if err := utilfiles.ReplaceFile(tracker.fs, path, data); err != nil { + return err + } + return nil +} diff --git a/pkg/kubelet/kubeletconfig/badconfig/fstracker_test.go b/pkg/kubelet/kubeletconfig/badconfig/fstracker_test.go new file mode 100644 index 00000000000..25b234b18b0 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/badconfig/fstracker_test.go @@ -0,0 +1,255 @@ +/* +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. +*/ + +package badconfig + +import ( + "fmt" + "path/filepath" + "reflect" + "testing" + "time" + + utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" + utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" +) + +const testTrackingDir = "/test-tracking-dir" + +// TODO(mtaufen): this file reuses a lot of test code from badconfig_test.go, should consolidate + +func newInitializedFakeFsTracker() (*fsTracker, error) { + fs := utilfs.NewFakeFs() + tracker := NewFsTracker(fs, testTrackingDir) + if err := tracker.Initialize(); err != nil { + return nil, err + } + return tracker.(*fsTracker), nil +} + +func TestFsTrackerInitialize(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("fsTracker.Initialize() failed with error: %v", err) + } + + // check that testTrackingDir exists + _, err = tracker.fs.Stat(testTrackingDir) + if err != nil { + t.Fatalf("expect %q to exist, but stat failed with error: %v", testTrackingDir, err) + } + + // check that testTrackingDir contains the badConfigsFile + path := filepath.Join(testTrackingDir, badConfigsFile) + _, err = tracker.fs.Stat(path) + if err != nil { + t.Fatalf("expect %q to exist, but stat failed with error: %v", path, err) + } +} + +func TestFsTrackerMarkBad(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + // create a bad config entry in the fs + uid := "uid" + reason := "reason" + tracker.MarkBad(uid, reason) + + // load the map from the fs + m, err := tracker.load() + if err != nil { + t.Fatalf("failed to load bad-config data, error: %v", err) + } + + // the entry should exist for uid + entry, ok := m[uid] + if !ok { + t.Fatalf("expect entry for uid %q, but none exists", uid) + } + + // the entry's reason should match the reason it was marked bad with + if entry.Reason != reason { + t.Errorf("expect Entry.Reason %q, but got %q", reason, entry.Reason) + } + + // the entry's timestamp should be in RFC3339 format + if err := assertRFC3339(entry.Time); err != nil { + t.Errorf("expect Entry.Time to use RFC3339 format, but got %q, error: %v", entry.Time, err) + } + + // it should be the only entry in the map thus far + if n := len(m); n != 1 { + t.Errorf("expect one entry in the map, but got %d", n) + } +} + +func TestFsTrackerEntry(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + // manually save a correct entry to fs + nowstamp := time.Now().Format(time.RFC3339) + uid := "uid" + expect := &Entry{ + Time: nowstamp, + Reason: "reason", + } + m := map[string]Entry{uid: *expect} + err = tracker.save(m) + if err != nil { + t.Fatalf("failed to save bad-config data, error: %v", err) + } + + // should return nil for entries that don't exist + bogus := "bogus-uid" + e, err := tracker.Entry(bogus) + if err != nil { + t.Errorf("expect nil for entries that don't exist (uid: %q), but got error: %v", bogus, err) + } else if e != nil { + t.Errorf("expect nil for entries that don't exist (uid: %q), but got %#v", bogus, e) + } + + // should return non-nil for entries that exist + e, err = tracker.Entry(uid) + if err != nil { + t.Errorf("expect non-nil for entries that exist (uid: %q), but got error: %v", uid, err) + } else if e == nil { + t.Errorf("expect non-nil for entries that exist (uid: %q), but got nil", uid) + } else if !reflect.DeepEqual(expect, e) { + // entry should match what we inserted for the given UID + t.Errorf("expect entry for uid %q to match %#v, but got %#v", uid, expect, e) + } +} + +// TODO(mtaufen): test loading invalid json (see startups/fstracker_test.go for example) +func TestFsTrackerLoad(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + uid := "uid" + nowstamp := time.Now().Format(time.RFC3339) + cases := []struct { + desc string + data []byte + expect map[string]Entry + err string + }{ + // empty file + {"empty file", []byte(""), map[string]Entry{}, ""}, + // empty map + {"empty map", []byte("{}"), map[string]Entry{}, ""}, + // valid json + {"valid json", []byte(fmt.Sprintf(`{"%s":{"time":"%s","reason":"reason"}}`, uid, nowstamp)), + map[string]Entry{uid: { + Time: nowstamp, + Reason: "reason", + }}, ""}, + // invalid json + {"invalid json", []byte(`*`), map[string]Entry{}, "failed to unmarshal"}, + } + + for _, c := range cases { + // save a file containing the correct serialization + utilfiles.ReplaceFile(tracker.fs, filepath.Join(testTrackingDir, badConfigsFile), c.data) + + // loading valid json should result in an object with the correct values + m, err := tracker.load() + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if !reflect.DeepEqual(c.expect, m) { + // m should equal expected decoded object + t.Errorf("case %q, expect %#v but got %#v", c.desc, c.expect, m) + } + } +} + +func TestFsTrackerSave(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + uid := "uid" + nowstamp := time.Now().Format(time.RFC3339) + cases := []struct { + desc string + m map[string]Entry + expect string + err string + }{ + // empty map + {"empty map", map[string]Entry{}, "{}", ""}, + // 1-entry map + {"1-entry map", + map[string]Entry{uid: { + Time: nowstamp, + Reason: "reason", + }}, + fmt.Sprintf(`{"%s":{"time":"%s","reason":"reason"}}`, uid, nowstamp), ""}, + } + + for _, c := range cases { + if err := tracker.save(c.m); utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + + data, err := tracker.fs.ReadFile(filepath.Join(testTrackingDir, badConfigsFile)) + if err != nil { + t.Fatalf("failed to read bad-config file, error: %v", err) + } + json := string(data) + + if json != c.expect { + t.Errorf("case %q, expect %q but got %q", c.desc, c.expect, json) + } + } +} + +func TestFsTrackerRoundTrip(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + nowstamp := time.Now().Format(time.RFC3339) + uid := "uid" + expect := map[string]Entry{uid: { + Time: nowstamp, + Reason: "reason", + }} + + // test that saving and loading an object results in the same value + err = tracker.save(expect) + if err != nil { + t.Fatalf("failed to save bad-config data, error: %v", err) + } + after, err := tracker.load() + if err != nil { + t.Fatalf("failed to load bad-config data, error: %v", err) + } + if !reflect.DeepEqual(expect, after) { + t.Errorf("expect round-tripping %#v to result in the same value, but got %#v", expect, after) + } +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/BUILD new file mode 100644 index 00000000000..fe4b1dc1cc5 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/BUILD @@ -0,0 +1,71 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = [ + "checkpoint_test.go", + "configmap_test.go", + "download_test.go", + ], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/apis/componentconfig:go_default_library", + "//pkg/apis/componentconfig/v1alpha1:go_default_library", + "//pkg/kubelet/kubeletconfig/util/codec:go_default_library", + "//pkg/kubelet/kubeletconfig/util/test:go_default_library", + "//vendor/github.com/davecgh/go-spew/spew:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = [ + "checkpoint.go", + "configmap.go", + "download.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/apis/componentconfig:go_default_library", + "//pkg/kubelet/kubeletconfig/util/codec:go_default_library", + "//pkg/kubelet/kubeletconfig/util/log:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//pkg/kubelet/kubeletconfig/checkpoint/store:all-srcs", + ], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go b/pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go new file mode 100644 index 00000000000..20a8a853e70 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/checkpoint.go @@ -0,0 +1,71 @@ +/* +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. +*/ + +package checkpoint + +import ( + "fmt" + + apiv1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/componentconfig" +) + +// Checkpoint represents a local copy of a config source (payload) object +type Checkpoint interface { + // UID returns the UID of the config source object behind the Checkpoint + UID() string + // Parse parses the checkpoint into the internal KubeletConfiguration type + Parse() (*componentconfig.KubeletConfiguration, error) + // Encode returns a []byte representation of the config source object behind the Checkpoint + Encode() ([]byte, error) + + // object returns the underlying checkpointed object. If you want to compare sources for equality, use EqualCheckpoints, + // which compares the underlying checkpointed objects for semantic API equality. + object() interface{} +} + +// DecodeCheckpoint is a helper for using the apimachinery to decode serialized checkpoints +func DecodeCheckpoint(data []byte) (Checkpoint, error) { + // decode the checkpoint + obj, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + if err != nil { + return nil, fmt.Errorf("failed to decode, error: %v", err) + } + + // TODO(mtaufen): for now we assume we are trying to load a ConfigMap checkpoint, may need to extend this if we allow other checkpoint types + + // convert it to the external ConfigMap type, so we're consistently working with the external type outside of the on-disk representation + cm := &apiv1.ConfigMap{} + err = api.Scheme.Convert(obj, cm, nil) + if err != nil { + return nil, fmt.Errorf("failed to convert decoded object into a v1 ConfigMap, error: %v", err) + } + return NewConfigMapCheckpoint(cm) +} + +// EqualCheckpoints compares two Checkpoints for equality, if their underlying objects are equal, so are the Checkpoints +func EqualCheckpoints(a, b Checkpoint) bool { + if a != nil && b != nil { + return apiequality.Semantic.DeepEqual(a.object(), b.object()) + } + if a == nil && b == nil { + return true + } + return false +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/checkpoint_test.go b/pkg/kubelet/kubeletconfig/checkpoint/checkpoint_test.go new file mode 100644 index 00000000000..d9cc2595249 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/checkpoint_test.go @@ -0,0 +1,89 @@ +/* +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. +*/ + +package checkpoint + +import ( + "testing" + + "github.com/davecgh/go-spew/spew" + + apiv1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" + utilcodec "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec" + utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" +) + +// newUnsupportedEncoded returns an encoding of an object that does not have a Checkpoint implementation +func newUnsupportedEncoded(t *testing.T) []byte { + encoder, err := utilcodec.NewJSONEncoder(apiv1.GroupName) + if err != nil { + t.Fatalf("could not create an encoder, error: %v", err) + } + unsupported := &apiv1.Node{} + data, err := runtime.Encode(encoder, unsupported) + if err != nil { + t.Fatalf("could not encode object, error: %v", err) + } + return data +} + +func TestDecodeCheckpoint(t *testing.T) { + // generate correct Checkpoint for v1/ConfigMap test case + cm, err := NewConfigMapCheckpoint(&apiv1.ConfigMap{ObjectMeta: metav1.ObjectMeta{UID: types.UID("uid")}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // generate unsupported object encoding for unsupported type test case + unsupported := newUnsupportedEncoded(t) + + // test cases + cases := []struct { + desc string + data []byte + expect Checkpoint // expect a deeply-equal Checkpoint to be returned from Decode + err string // expect error to contain this substring + }{ + // v1/ConfigMap + {"v1/ConfigMap", []byte(`{"apiVersion": "v1","kind": "ConfigMap","metadata": {"uid": "uid"}}`), cm, ""}, + // malformed + {"malformed", []byte("malformed"), nil, "failed to decode"}, + // no UID + {"no UID", []byte(`{"apiVersion": "v1","kind": "ConfigMap"}`), nil, "ConfigMap must have a UID"}, + // well-formed, but unsupported type + {"well-formed, but unsupported encoded type", unsupported, nil, "failed to convert"}, + } + + for _, c := range cases { + cpt, err := DecodeCheckpoint(c.data) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + // Unfortunately reflect.DeepEqual treats nil data structures as != empty data structures, so + // we have to settle for semantic equality of the underlying checkpointed API objects. + // If additional fields are added to the object that implements the Checkpoint interface, + // they should be added to a named sub-object to facilitate a DeepEquals comparison + // of the extra fields. + // decoded checkpoint should match expected checkpoint + if !apiequality.Semantic.DeepEqual(cpt.object(), c.expect.object()) { + t.Errorf("case %q, expect checkpoint %s but got %s", c.desc, spew.Sdump(c.expect), spew.Sdump(cpt)) + } + } +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/configmap.go b/pkg/kubelet/kubeletconfig/checkpoint/configmap.go new file mode 100644 index 00000000000..ff26005b211 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/configmap.go @@ -0,0 +1,88 @@ +/* +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. +*/ + +package checkpoint + +import ( + "fmt" + + apiv1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/kubernetes/pkg/apis/componentconfig" + utilcodec "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec" +) + +const configMapConfigKey = "kubelet" + +// configMapCheckpoint implements Checkpoint, backed by a v1/ConfigMap config source object +type configMapCheckpoint struct { + configMap *apiv1.ConfigMap +} + +// NewConfigMapCheckpoint returns a Checkpoint backed by `cm`. `cm` must be non-nil +// and have a non-empty ObjectMeta.UID, or an error will be returned. +func NewConfigMapCheckpoint(cm *apiv1.ConfigMap) (Checkpoint, error) { + if cm == nil { + return nil, fmt.Errorf("ConfigMap must be non-nil to be treated as a Checkpoint") + } else if len(cm.ObjectMeta.UID) == 0 { + return nil, fmt.Errorf("ConfigMap must have a UID to be treated as a Checkpoint") + } + return &configMapCheckpoint{cm}, nil +} + +// UID returns the UID of a configMapCheckpoint +func (c *configMapCheckpoint) UID() string { + return string(c.configMap.UID) +} + +// implements Parse for v1/ConfigMap checkpoints +func (c *configMapCheckpoint) Parse() (*componentconfig.KubeletConfiguration, error) { + const emptyCfgErr = "config was empty, but some parameters are required" + + cm := c.configMap + + if len(cm.Data) == 0 { + return nil, fmt.Errorf(emptyCfgErr) + } + + // TODO(mtaufen): Once the KubeletConfiguration type is decomposed, extend this to a key for each sub-object + config, ok := cm.Data[configMapConfigKey] + if !ok { + return nil, fmt.Errorf("key %q not found in ConfigMap", configMapConfigKey) + } else if len(config) == 0 { + return nil, fmt.Errorf(emptyCfgErr) + } + + return utilcodec.DecodeKubeletConfiguration([]byte(config)) +} + +// Encode encodes a configMapCheckpoint +func (c *configMapCheckpoint) Encode() ([]byte, error) { + cm := c.configMap + encoder, err := utilcodec.NewJSONEncoder(apiv1.GroupName) + if err != nil { + return nil, err + } + data, err := runtime.Encode(encoder, cm) + if err != nil { + return nil, err + } + return data, nil +} + +func (c *configMapCheckpoint) object() interface{} { + return c.configMap +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go b/pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go new file mode 100644 index 00000000000..398e7cf992a --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/configmap_test.go @@ -0,0 +1,216 @@ +/* +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. +*/ + +package checkpoint + +import ( + "fmt" + "testing" + + "github.com/davecgh/go-spew/spew" + + apiv1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/componentconfig" + ccv1a1 "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" + utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" +) + +func TestNewConfigMapCheckpoint(t *testing.T) { + cases := []struct { + desc string + cm *apiv1.ConfigMap + err string + }{ + {"nil v1/ConfigMap", nil, "must be non-nil"}, + {"empty v1/ConfigMap", &apiv1.ConfigMap{}, "must have a UID"}, + {"populated v1/ConfigMap", + &apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "name", + UID: types.UID("uid"), + }, + Data: map[string]string{ + "key1": "value1", + "key2": "value2", + }, + }, ""}, + } + + for _, c := range cases { + cpt, err := NewConfigMapCheckpoint(c.cm) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + // underlying object should match the object passed in + if !apiequality.Semantic.DeepEqual(cpt.object(), c.cm) { + t.Errorf("case %q, expect Checkpoint %s but got %s", c.desc, spew.Sdump(c.cm), spew.Sdump(cpt)) + } + } +} + +func TestConfigMapCheckpointUID(t *testing.T) { + cases := []string{"", "uid", "376dfb73-56db-11e7-a01e-42010a800002"} + for _, uidIn := range cases { + cpt := &configMapCheckpoint{ + &apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{UID: types.UID(uidIn)}, + }, + } + // UID method should return the correct value of the UID + uidOut := cpt.UID() + if uidIn != uidOut { + t.Errorf("expect UID() to return %q, but got %q", uidIn, uidOut) + } + } +} + +func TestConfigMapCheckpointParse(t *testing.T) { + // get the built-in default configuration + external := &ccv1a1.KubeletConfiguration{} + api.Scheme.Default(external) + defaultConfig := &componentconfig.KubeletConfiguration{} + err := api.Scheme.Convert(external, defaultConfig, nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cases := []struct { + desc string + cm *apiv1.ConfigMap + expect *componentconfig.KubeletConfiguration + err string + }{ + {"empty data", &apiv1.ConfigMap{}, nil, "config was empty"}, + // missing kubelet key + {"missing kubelet key", &apiv1.ConfigMap{Data: map[string]string{ + "bogus": "stuff"}}, nil, fmt.Sprintf("key %q not found", configMapConfigKey)}, + // invalid format + {"invalid yaml", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": "*"}}, nil, "failed to decode"}, + {"invalid json", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": "{*"}}, nil, "failed to decode"}, + // invalid object + {"missing kind", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": `{"apiVersion":"componentconfig/v1alpha1"}`}}, nil, "failed to decode"}, + {"missing version", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": `{"kind":"KubeletConfiguration"}`}}, nil, "failed to decode"}, + {"unregistered kind", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": `{"kind":"BogusKind","apiVersion":"componentconfig/v1alpha1"}`}}, nil, "failed to decode"}, + {"unregistered version", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": `{"kind":"KubeletConfiguration","apiVersion":"bogusversion"}`}}, nil, "failed to decode"}, + // empty object with correct kind and version should result in the defaults for that kind and version + {"default from yaml", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": `kind: KubeletConfiguration +apiVersion: componentconfig/v1alpha1`}}, defaultConfig, ""}, + {"default from json", &apiv1.ConfigMap{Data: map[string]string{ + "kubelet": `{"kind":"KubeletConfiguration","apiVersion":"componentconfig/v1alpha1"}`}}, defaultConfig, ""}, + } + for _, c := range cases { + cpt := &configMapCheckpoint{c.cm} + kc, err := cpt.Parse() + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + // we expect the parsed configuration to match what we described in the ConfigMap + if !apiequality.Semantic.DeepEqual(c.expect, kc) { + t.Errorf("case %q, expect config %s but got %s", c.desc, spew.Sdump(c.expect), spew.Sdump(kc)) + } + } +} + +func TestConfigMapCheckpointEncode(t *testing.T) { + // only one case, based on output from the existing encoder, and since + // this is hard to test (key order isn't guaranteed), we should probably + // just stick to this test case and mostly rely on the round-trip test. + cases := []struct { + desc string + cpt *configMapCheckpoint + expect string + }{ + // we expect Checkpoints to be encoded as a json representation of the underlying API object + {"one-key", + &configMapCheckpoint{&apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{Name: "one-key"}, + Data: map[string]string{"one": ""}}}, + `{"kind":"ConfigMap","apiVersion":"v1","metadata":{"name":"one-key","creationTimestamp":null},"data":{"one":""}} +`}, + } + + for _, c := range cases { + data, err := c.cpt.Encode() + // we don't expect any errors from encoding + if utiltest.SkipRest(t, c.desc, err, "") { + continue + } + if string(data) != c.expect { + t.Errorf("case %q, expect encoding %q but got %q", c.desc, c.expect, string(data)) + } + } +} + +func TestConfigMapCheckpointRoundTrip(t *testing.T) { + cases := []struct { + desc string + cpt *configMapCheckpoint + decodeErr string + }{ + // empty data + {"empty data", + &configMapCheckpoint{&apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "empty-data-sha256-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + UID: "uid", + }, + Data: map[string]string{}}}, + ""}, + // two keys + {"two keys", + &configMapCheckpoint{&apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "two-keys-sha256-2bff03d6249c8a9dc9a1436d087c124741361ccfac6615b81b67afcff5c42431", + UID: "uid", + }, + Data: map[string]string{"one": "", "two": "2"}}}, + ""}, + // missing uid + {"missing uid", + &configMapCheckpoint{&apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "two-keys-sha256-2bff03d6249c8a9dc9a1436d087c124741361ccfac6615b81b67afcff5c42431", + UID: "", + }, + Data: map[string]string{"one": "", "two": "2"}}}, + "must have a UID"}, + } + for _, c := range cases { + // we don't expect any errors from encoding + data, err := c.cpt.Encode() + if utiltest.SkipRest(t, c.desc, err, "") { + continue + } + after, err := DecodeCheckpoint(data) + if utiltest.SkipRest(t, c.desc, err, c.decodeErr) { + continue + } + if !apiequality.Semantic.DeepEqual(c.cpt.object(), after.object()) { + t.Errorf("case %q, expect round-trip result %s but got %s", c.desc, spew.Sdump(c.cpt), spew.Sdump(after)) + } + } +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/download.go b/pkg/kubelet/kubeletconfig/checkpoint/download.go new file mode 100644 index 00000000000..b61b394ab4b --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/download.go @@ -0,0 +1,152 @@ +/* +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. +*/ + +package checkpoint + +import ( + "fmt" + + apiv1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/api" + utilcodec "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +// RemoteConfigSource represents a remote config source object that can be downloaded as a Checkpoint +type RemoteConfigSource interface { + // UID returns the UID of the remote config source object + UID() string + // Download downloads the remote config source object returns a Checkpoint backed by the object, + // or a sanitized failure reason and error if the download fails + Download(client clientset.Interface) (Checkpoint, string, error) + // Encode returns a []byte representation of the object behind the RemoteConfigSource + Encode() ([]byte, error) + + // object returns the underlying source object. If you want to compare sources for equality, use EqualRemoteConfigSources, + // which compares the underlying source objects for semantic API equality. + object() interface{} +} + +// NewRemoteConfigSource constructs a RemoteConfigSource from a v1/NodeConfigSource object, or returns +// a sanitized failure reason and an error if the `source` is blatantly invalid. +// You should only call this with a non-nil config source. +func NewRemoteConfigSource(source *apiv1.NodeConfigSource) (RemoteConfigSource, string, error) { + // exactly one subfield of the config source must be non-nil, toady ConfigMapRef is the only reference + if source.ConfigMapRef == nil { + reason := "invalid NodeConfigSource, exactly one subfield must be non-nil, but all were nil" + return nil, reason, fmt.Errorf("%s, NodeConfigSource was: %#v", reason, source) + } + + // validate the NodeConfigSource: + + // at this point we know we're using the ConfigMapRef subfield + ref := source.ConfigMapRef + + // name, namespace, and UID must all be non-empty for ConfigMapRef + if ref.Name == "" || ref.Namespace == "" || string(ref.UID) == "" { + reason := "invalid ObjectReference, all of UID, Name, and Namespace must be specified" + return nil, reason, fmt.Errorf("%s, ObjectReference was: %#v", reason, ref) + } + + return &remoteConfigMap{source}, "", nil +} + +// DecodeRemoteConfigSource is a helper for using the apimachinery to decode serialized RemoteConfigSources; +// e.g. the objects stored in the .cur and .lkg files by checkpoint/store/fsstore.go +func DecodeRemoteConfigSource(data []byte) (RemoteConfigSource, error) { + // decode the remote config source + obj, err := runtime.Decode(api.Codecs.UniversalDecoder(), data) + if err != nil { + return nil, fmt.Errorf("failed to decode, error: %v", err) + } + + // for now we assume we are trying to load an apiv1.NodeConfigSource, + // this may need to be extended if e.g. a new version of the api is born + + // convert it to the external NodeConfigSource type, so we're consistently working with the external type outside of the on-disk representation + cs := &apiv1.NodeConfigSource{} + err = api.Scheme.Convert(obj, cs, nil) + if err != nil { + return nil, fmt.Errorf("failed to convert decoded object into a v1 NodeConfigSource, error: %v", err) + } + source, _, err := NewRemoteConfigSource(cs) + return source, err +} + +// EqualRemoteConfigSources is a helper for comparing remote config sources by +// comparing the underlying API objects for semantic equality. +func EqualRemoteConfigSources(a, b RemoteConfigSource) bool { + if a != nil && b != nil { + return apiequality.Semantic.DeepEqual(a.object(), b.object()) + } + if a == nil && b == nil { + return true + } + return false +} + +// remoteConfigMap implements RemoteConfigSource for v1/ConfigMap config sources +type remoteConfigMap struct { + source *apiv1.NodeConfigSource +} + +func (r *remoteConfigMap) UID() string { + return string(r.source.ConfigMapRef.UID) +} + +func (r *remoteConfigMap) Download(client clientset.Interface) (Checkpoint, string, error) { + var reason string + + uid := string(r.source.ConfigMapRef.UID) + + utillog.Infof("attempting to download ConfigMap with UID %q", uid) + + // get the ConfigMap via namespace/name, there doesn't seem to be a way to get it by UID + cm, err := client.CoreV1().ConfigMaps(r.source.ConfigMapRef.Namespace).Get(r.source.ConfigMapRef.Name, metav1.GetOptions{}) + if err != nil { + reason = fmt.Sprintf("could not download ConfigMap with name %q from namespace %q", r.source.ConfigMapRef.Name, r.source.ConfigMapRef.Namespace) + return nil, reason, fmt.Errorf("%s, error: %v", reason, err) + } + + // ensure that UID matches the UID on the reference, the ObjectReference must be unambiguous + if r.source.ConfigMapRef.UID != cm.UID { + reason = fmt.Sprintf("invalid ObjectReference, UID %q does not match UID of downloaded ConfigMap %q", r.source.ConfigMapRef.UID, cm.UID) + return nil, reason, fmt.Errorf(reason) + } + + utillog.Infof("successfully downloaded ConfigMap with UID %q", uid) + return &configMapCheckpoint{cm}, "", nil +} + +func (r *remoteConfigMap) Encode() ([]byte, error) { + encoder, err := utilcodec.NewJSONEncoder(apiv1.GroupName) + if err != nil { + return nil, err + } + data, err := runtime.Encode(encoder, r.source) + if err != nil { + return nil, err + } + return data, nil +} + +func (r *remoteConfigMap) object() interface{} { + return r.source +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/download_test.go b/pkg/kubelet/kubeletconfig/checkpoint/download_test.go new file mode 100644 index 00000000000..496353919f4 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/download_test.go @@ -0,0 +1,134 @@ +/* +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. +*/ + +package checkpoint + +import ( + "testing" + + "github.com/davecgh/go-spew/spew" + + apiv1 "k8s.io/api/core/v1" + apiequality "k8s.io/apimachinery/pkg/api/equality" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + fakeclient "k8s.io/client-go/kubernetes/fake" + utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" +) + +func TestNewRemoteConfigSource(t *testing.T) { + cases := []struct { + desc string + source *apiv1.NodeConfigSource + expect RemoteConfigSource + err string + }{ + // all NodeConfigSource subfields nil + {"all NodeConfigSource subfields nil", + &apiv1.NodeConfigSource{}, nil, "exactly one subfield must be non-nil"}, + {"ConfigMapRef: empty name, namespace, and UID", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{}}, nil, "invalid ObjectReference"}, + // ConfigMapRef: empty name and namespace + {"ConfigMapRef: empty name and namespace", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{UID: "uid"}}, nil, "invalid ObjectReference"}, + // ConfigMapRef: empty name and UID + {"ConfigMapRef: empty name and UID", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Namespace: "namespace"}}, nil, "invalid ObjectReference"}, + // ConfigMapRef: empty namespace and UID + {"ConfigMapRef: empty namespace and UID", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name"}}, nil, "invalid ObjectReference"}, + // ConfigMapRef: empty UID + {"ConfigMapRef: empty namespace and UID", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace"}}, nil, "invalid ObjectReference"}, + // ConfigMapRef: empty namespace + {"ConfigMapRef: empty namespace and UID", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", UID: "uid"}}, nil, "invalid ObjectReference"}, + // ConfigMapRef: empty name + {"ConfigMapRef: empty namespace and UID", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Namespace: "namespace", UID: "uid"}}, nil, "invalid ObjectReference"}, + // ConfigMapRef: valid reference + {"ConfigMapRef: valid reference", + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}, + &remoteConfigMap{&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}}, ""}, + } + + for _, c := range cases { + src, _, err := NewRemoteConfigSource(c.source) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + // underlying object should match the object passed in + if !apiequality.Semantic.DeepEqual(c.expect.object(), src.object()) { + t.Errorf("case %q, expect RemoteConfigSource %s but got %s", c.desc, spew.Sdump(c.expect), spew.Sdump(src)) + } + } +} + +func TestRemoteConfigMapUID(t *testing.T) { + cases := []string{"", "uid", "376dfb73-56db-11e7-a01e-42010a800002"} + for _, uidIn := range cases { + cpt := &remoteConfigMap{ + &apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: types.UID(uidIn)}}, + } + // UID method should return the correct value of the UID + uidOut := cpt.UID() + if uidIn != uidOut { + t.Errorf("expect UID() to return %q, but got %q", uidIn, uidOut) + } + } +} + +func TestRemoteConfigMapDownload(t *testing.T) { + cm := &apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: "name", + Namespace: "namespace", + UID: "uid", + }} + client := fakeclient.NewSimpleClientset(cm) + + cases := []struct { + desc string + source RemoteConfigSource + expect Checkpoint + err string + }{ + + // object doesn't exist + {"object doesn't exist", + &remoteConfigMap{&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "bogus", Namespace: "namespace", UID: "bogus"}}}, + nil, "could not download ConfigMap"}, + // UID of downloaded object doesn't match UID of referent found via namespace/name + {"UID is incorrect for namespace/name", + &remoteConfigMap{&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "bogus"}}}, + nil, "does not match UID"}, + // successful download + {"object exists and reference is correct", + &remoteConfigMap{&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}}, + &configMapCheckpoint{cm}, ""}, + } + + for _, c := range cases { + cpt, _, err := c.source.Download(client) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + // "downloaded" object should match the expected + if !apiequality.Semantic.DeepEqual(c.expect.object(), cpt.object()) { + t.Errorf("case %q, expect Checkpoint %s but got %s", c.desc, spew.Sdump(c.expect), spew.Sdump(cpt)) + } + } +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD new file mode 100644 index 00000000000..47f2c00a2f3 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD @@ -0,0 +1,58 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = [ + "fsstore_test.go", + "store_test.go", + ], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/kubeletconfig/checkpoint:go_default_library", + "//pkg/kubelet/kubeletconfig/util/files:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + "//pkg/kubelet/kubeletconfig/util/test:go_default_library", + "//vendor/github.com/davecgh/go-spew/spew:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = [ + "fakestore.go", + "fsstore.go", + "store.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/kubeletconfig/checkpoint:go_default_library", + "//pkg/kubelet/kubeletconfig/util/files:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + "//pkg/kubelet/kubeletconfig/util/log:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/fakestore.go b/pkg/kubelet/kubeletconfig/checkpoint/store/fakestore.go new file mode 100644 index 00000000000..cb5d2491b26 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/fakestore.go @@ -0,0 +1,76 @@ +/* +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. +*/ + +package store + +import ( + "fmt" + "time" + + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint" +) + +// so far only implements Current(), LastKnownGood(), SetCurrent(), and SetLastKnownGood() +type fakeStore struct { + current checkpoint.RemoteConfigSource + lastKnownGood checkpoint.RemoteConfigSource +} + +func (s *fakeStore) Initialize() error { + return fmt.Errorf("Initialize method not supported") +} + +func (s *fakeStore) Exists(uid string) (bool, error) { + return false, fmt.Errorf("Exists method not supported") +} + +func (s *fakeStore) Save(c checkpoint.Checkpoint) error { + return fmt.Errorf("Save method not supported") +} + +func (s *fakeStore) Load(uid string) (checkpoint.Checkpoint, error) { + return nil, fmt.Errorf("Load method not supported") +} + +func (s *fakeStore) CurrentModified() (time.Time, error) { + return time.Time{}, fmt.Errorf("CurrentModified method not supported") +} + +func (s *fakeStore) Current() (checkpoint.RemoteConfigSource, error) { + return s.current, nil +} + +func (s *fakeStore) LastKnownGood() (checkpoint.RemoteConfigSource, error) { + return s.lastKnownGood, nil +} + +func (s *fakeStore) SetCurrent(source checkpoint.RemoteConfigSource) error { + s.current = source + return nil +} + +func (s *fakeStore) SetCurrentUpdated(source checkpoint.RemoteConfigSource) (bool, error) { + return setCurrentUpdated(s, source) +} + +func (s *fakeStore) SetLastKnownGood(source checkpoint.RemoteConfigSource) error { + s.lastKnownGood = source + return nil +} + +func (s *fakeStore) Reset() (bool, error) { + return false, fmt.Errorf("Reset method not supported") +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go b/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go new file mode 100644 index 00000000000..710683fdf29 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore.go @@ -0,0 +1,163 @@ +/* +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. +*/ + +package store + +import ( + "fmt" + "path/filepath" + "time" + + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint" + utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +const ( + curFile = ".cur" + lkgFile = ".lkg" +) + +// fsStore is for tracking checkpoints in the local filesystem, implements Store +type fsStore struct { + // fs is the filesystem to use for storage operations; can be mocked for testing + fs utilfs.Filesystem + // checkpointsDir is the absolute path to the storage directory for fsStore + checkpointsDir string +} + +// NewFsStore returns a Store that saves its data in `checkpointsDir` +func NewFsStore(fs utilfs.Filesystem, checkpointsDir string) Store { + return &fsStore{ + fs: fs, + checkpointsDir: checkpointsDir, + } +} + +func (s *fsStore) Initialize() error { + utillog.Infof("initializing config checkpoints directory %q", s.checkpointsDir) + if err := utilfiles.EnsureDir(s.fs, s.checkpointsDir); err != nil { + return err + } + if err := utilfiles.EnsureFile(s.fs, filepath.Join(s.checkpointsDir, curFile)); err != nil { + return err + } + if err := utilfiles.EnsureFile(s.fs, filepath.Join(s.checkpointsDir, lkgFile)); err != nil { + return err + } + return nil +} + +func (s *fsStore) Exists(uid string) (bool, error) { + ok, err := utilfiles.FileExists(s.fs, filepath.Join(s.checkpointsDir, uid)) + if err != nil { + return false, fmt.Errorf("failed to determine whether checkpoint %q exists, error: %v", uid, err) + } + return ok, nil +} + +func (s *fsStore) Save(c checkpoint.Checkpoint) error { + // encode the checkpoint + data, err := c.Encode() + if err != nil { + return err + } + // save the file + if err := utilfiles.ReplaceFile(s.fs, filepath.Join(s.checkpointsDir, c.UID()), data); err != nil { + return err + } + return nil +} + +func (s *fsStore) Load(uid string) (checkpoint.Checkpoint, error) { + filePath := filepath.Join(s.checkpointsDir, uid) + utillog.Infof("loading configuration from %q", filePath) + + // load the file + data, err := s.fs.ReadFile(filePath) + if err != nil { + return nil, fmt.Errorf("failed to read checkpoint file %q, error: %v", filePath, err) + } + + // decode it + c, err := checkpoint.DecodeCheckpoint(data) + if err != nil { + return nil, fmt.Errorf("failed to decode checkpoint file %q, error: %v", filePath, err) + } + return c, nil +} + +func (s *fsStore) CurrentModified() (time.Time, error) { + path := filepath.Join(s.checkpointsDir, curFile) + info, err := s.fs.Stat(path) + if err != nil { + return time.Time{}, fmt.Errorf("failed to stat %q while checking modification time, error: %v", path, err) + } + return info.ModTime(), nil +} + +func (s *fsStore) Current() (checkpoint.RemoteConfigSource, error) { + return s.sourceFromFile(curFile) +} + +func (s *fsStore) LastKnownGood() (checkpoint.RemoteConfigSource, error) { + return s.sourceFromFile(lkgFile) +} + +func (s *fsStore) SetCurrent(source checkpoint.RemoteConfigSource) error { + return s.setSourceFile(curFile, source) +} + +func (s *fsStore) SetCurrentUpdated(source checkpoint.RemoteConfigSource) (bool, error) { + return setCurrentUpdated(s, source) +} + +func (s *fsStore) SetLastKnownGood(source checkpoint.RemoteConfigSource) error { + return s.setSourceFile(lkgFile, source) +} + +func (s *fsStore) Reset() (bool, error) { + return reset(s) +} + +// sourceFromFile returns the RemoteConfigSource stored in the file at `s.checkpointsDir/relPath`, +// or nil if the file is empty +func (s *fsStore) sourceFromFile(relPath string) (checkpoint.RemoteConfigSource, error) { + path := filepath.Join(s.checkpointsDir, relPath) + data, err := s.fs.ReadFile(path) + if err != nil { + return nil, err + } else if len(data) == 0 { + return nil, nil + } + return checkpoint.DecodeRemoteConfigSource(data) +} + +// set source file replaces the file at `s.checkpointsDir/relPath` with a file containing `source` +func (s *fsStore) setSourceFile(relPath string, source checkpoint.RemoteConfigSource) error { + path := filepath.Join(s.checkpointsDir, relPath) + // if nil, reset the file + if source == nil { + return utilfiles.ReplaceFile(s.fs, path, []byte{}) + } + // encode the source and save it to the file + data, err := source.Encode() + if err != nil { + return err + } + return utilfiles.ReplaceFile(s.fs, path, data) +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore_test.go b/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore_test.go new file mode 100644 index 00000000000..09c743dc37f --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/fsstore_test.go @@ -0,0 +1,628 @@ +/* +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. +*/ + +package store + +import ( + "fmt" + "path/filepath" + "testing" + "time" + + "github.com/davecgh/go-spew/spew" + + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint" + utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" + utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" +) + +const testCheckpointsDir = "/test-checkpoints-dir" + +func newInitializedFakeFsStore() (*fsStore, error) { + fs := utilfs.NewFakeFs() + store := NewFsStore(fs, testCheckpointsDir) + if err := store.Initialize(); err != nil { + return nil, err + } + return store.(*fsStore), nil +} + +func TestFsStoreInitialize(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("fsStore.Initialize() failed with error: %v", err) + } + + // check that testCheckpointsDir exists + _, err = store.fs.Stat(testCheckpointsDir) + if err != nil { + t.Fatalf("expect %q to exist, but stat failed with error: %v", testCheckpointsDir, err) + } + + // check that testCheckpointsDir contains the curFile + curPath := filepath.Join(testCheckpointsDir, curFile) + _, err = store.fs.Stat(curPath) + if err != nil { + t.Fatalf("expect %q to exist, but stat failed with error: %v", curPath, err) + } + + // check that testCheckpointsDir contains the lkgFile + lkgPath := filepath.Join(testCheckpointsDir, lkgFile) + _, err = store.fs.Stat(lkgPath) + if err != nil { + t.Fatalf("expect %q to exist, but stat failed with error: %v", lkgPath, err) + } +} + +func TestFsStoreExists(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + // create a checkpoint file; this is enough for an exists check + cpt, err := checkpoint.NewConfigMapCheckpoint(&apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{UID: "uid"}, + }) + if err != nil { + t.Fatalf("could not construct checkpoint, error: %v", err) + } + saveTestCheckpointFile(t, store.fs, cpt) + + cases := []struct { + desc string + uid string // the uid to test + expect bool + err string + }{ + {"exists", "uid", true, ""}, + {"does not exist", "bogus-uid", false, ""}, + } + + for _, c := range cases { + ok, err := store.Exists(c.uid) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if c.expect != ok { + t.Errorf("case %q, expect %t but got %t", c.desc, c.expect, ok) + } + } +} + +func TestFsStoreSave(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + cpt, err := checkpoint.NewConfigMapCheckpoint(&apiv1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{UID: "uid"}, + }) + if err != nil { + t.Fatalf("could not construct checkpoint, error: %v", err) + } + + // save the checkpoint + err = store.Save(cpt) + if err != nil { + t.Fatalf("unable to save checkpoint, error: %v", err) + } + + // expect the saved checkpoint file to match the encoding of the checkpoint + data, err := cpt.Encode() + if err != nil { + t.Fatalf("unable to encode the checkpoint, error: %v", err) + } + expect := string(data) + + data = readTestCheckpointFile(t, store.fs, cpt.UID()) + cptFile := string(data) + + if expect != cptFile { + t.Errorf("expect %q but got %q", expect, cptFile) + } +} + +func TestFsStoreLoad(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + const uid = "uid" + cpt, err := checkpoint.NewConfigMapCheckpoint(&apiv1.ConfigMap{ObjectMeta: metav1.ObjectMeta{UID: types.UID(uid)}}) + if err != nil { + t.Fatalf("unable to construct checkpoint, error: %v", err) + } + + cases := []struct { + desc string + loadUID string + cpt checkpoint.Checkpoint + err string + }{ + {"checkpoint exists", uid, cpt, ""}, + {"checkpoint does not exist", "bogus-uid", nil, "failed to read"}, + } + for _, c := range cases { + if c.cpt != nil { + saveTestCheckpointFile(t, store.fs, c.cpt) + } + cpt, err := store.Load(c.loadUID) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if !checkpoint.EqualCheckpoints(c.cpt, cpt) { + t.Errorf("case %q, expect %q but got %q", c.desc, spew.Sdump(c.cpt), spew.Sdump(cpt)) + } + } +} + +func TestFsStoreRoundTrip(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + const uid = "uid" + cpt, err := checkpoint.NewConfigMapCheckpoint(&apiv1.ConfigMap{ObjectMeta: metav1.ObjectMeta{UID: types.UID(uid)}}) + if err != nil { + t.Fatalf("unable to construct checkpoint, error: %v", err) + } + err = store.Save(cpt) + if err != nil { + t.Fatalf("unable to save checkpoint, error: %v", err) + } + cptAfter, err := store.Load(uid) + if err != nil { + t.Fatalf("unable to load checkpoint, error: %v", err) + } + if !checkpoint.EqualCheckpoints(cpt, cptAfter) { + t.Errorf("expect %q but got %q", spew.Sdump(cpt), spew.Sdump(cptAfter)) + } +} + +func TestFsStoreCurrentModified(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + // create an empty current file, this is good enough for testing + saveTestSourceFile(t, store.fs, curFile, nil) + + // set the timestamps to the current time, so we can compare to result of store.SetCurrentModified + now := time.Now() + err = store.fs.Chtimes(filepath.Join(testCheckpointsDir, curFile), now, now) + if err != nil { + t.Fatalf("could not change timestamps, error: %v", err) + } + + // for now we hope that the system won't truncate the time to a less precise unit, + // if this test fails on certain systems that may be the reason. + modTime, err := store.CurrentModified() + if err != nil { + t.Fatalf("unable to determine modification time of current config source, error: %v", err) + } + if !now.Equal(modTime) { + t.Errorf("expect %q but got %q", now.Format(time.RFC3339), modTime.Format(time.RFC3339)) + } +} + +func TestFsStoreCurrent(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ + ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cases := []struct { + desc string + expect checkpoint.RemoteConfigSource + err string + }{ + {"default source", nil, ""}, + {"non-default source", source, ""}, + } + for _, c := range cases { + // save the last known good source + saveTestSourceFile(t, store.fs, curFile, c.expect) + + // load last-known-good and compare to expected result + source, err := store.Current() + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if !checkpoint.EqualRemoteConfigSources(c.expect, source) { + t.Errorf("case %q, expect %q but got %q", spew.Sdump(c.expect), spew.Sdump(c.expect), spew.Sdump(source)) + } + } +} + +func TestFsStoreLastKnownGood(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ + ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cases := []struct { + desc string + expect checkpoint.RemoteConfigSource + err string + }{ + {"default source", nil, ""}, + {"non-default source", source, ""}, + } + for _, c := range cases { + // save the last known good source + saveTestSourceFile(t, store.fs, lkgFile, c.expect) + + // load last-known-good and compare to expected result + source, err := store.LastKnownGood() + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if !checkpoint.EqualRemoteConfigSources(c.expect, source) { + t.Errorf("case %q, expect %q but got %q", spew.Sdump(c.expect), spew.Sdump(c.expect), spew.Sdump(source)) + } + } +} + +func TestFsStoreSetCurrent(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + const uid = "uid" + expect := fmt.Sprintf(`{"kind":"NodeConfigSource","apiVersion":"v1","configMapRef":{"namespace":"namespace","name":"name","uid":"%s"}}%s`, uid, "\n") + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{ + Name: "name", Namespace: "namespace", UID: types.UID(uid)}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // save the current source + if err := store.SetCurrent(source); err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // check that the source saved as we would expect + data := readTestSourceFile(t, store.fs, curFile) + if expect != string(data) { + t.Errorf("expect current source file to contain %q, but got %q", expect, string(data)) + } +} + +func TestFsStoreSetCurrentUpdated(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + cases := []struct { + current string + newCurrent string + expectUpdated bool + err string + }{ + {"", "", false, ""}, + {"uid", "", true, ""}, + {"", "uid", true, ""}, + {"uid", "uid", false, ""}, + {"uid", "other-uid", true, ""}, + {"other-uid", "uid", true, ""}, + {"other-uid", "other-uid", false, ""}, + } + + for _, c := range cases { + // construct current source + var source checkpoint.RemoteConfigSource + expectSource := "" + if len(c.current) > 0 { + expectSource = fmt.Sprintf(`{"kind":"NodeConfigSource","apiVersion":"v1","configMapRef":{"namespace":"namespace","name":"name","uid":"%s"}}%s`, c.current, "\n") + source, _, err = checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{ + Name: "name", Namespace: "namespace", UID: types.UID(c.current)}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + } + + // construct new source + var newSource checkpoint.RemoteConfigSource + expectNewSource := "" + if len(c.newCurrent) > 0 { + expectNewSource = fmt.Sprintf(`{"kind":"NodeConfigSource","apiVersion":"v1","configMapRef":{"namespace":"namespace","name":"new-name","uid":"%s"}}%s`, c.newCurrent, "\n") + newSource, _, err = checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{ + Name: "new-name", Namespace: "namespace", UID: types.UID(c.newCurrent)}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + } + + // set the initial current + if err := store.SetCurrent(source); err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // update to the new current + updated, err := store.SetCurrentUpdated(newSource) + if utiltest.SkipRest(t, fmt.Sprintf("%q -> %q", c.current, c.newCurrent), err, c.err) { + continue + } + + // check that SetCurrentUpdated correctly reports whether the current checkpoint changed + if c.expectUpdated != updated { + t.Errorf("case %q -> %q, expect %v but got %v", c.current, c.newCurrent, c.expectUpdated, updated) + } + + // check that curFile is saved by SetCurrentUpdated as we expect + data := readTestSourceFile(t, store.fs, curFile) + if c.current == c.newCurrent { + // same UID should leave file unchanged + if expectSource != string(data) { + t.Errorf("case %q -> %q, expect current source file to contain %q, but got %q", c.current, c.newCurrent, expectSource, string(data)) + } + } else if expectNewSource != string(data) { + // otherwise expect the file to change + t.Errorf("case %q -> %q, expect current source file to contain %q, but got %q", c.current, c.newCurrent, expectNewSource, string(data)) + } + } + +} + +func TestFsStoreSetLastKnownGood(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + const uid = "uid" + expect := fmt.Sprintf(`{"kind":"NodeConfigSource","apiVersion":"v1","configMapRef":{"namespace":"namespace","name":"name","uid":"%s"}}%s`, uid, "\n") + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{ + Name: "name", Namespace: "namespace", UID: types.UID(uid)}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // save the last known good source + if err := store.SetLastKnownGood(source); err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // check that the source saved as we would expect + data := readTestSourceFile(t, store.fs, lkgFile) + if expect != string(data) { + t.Errorf("expect last-known-good source file to contain %q, but got %q", expect, string(data)) + } +} + +func TestFsStoreReset(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + otherSource, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "other-name", Namespace: "namespace", UID: "other-uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + cases := []struct { + desc string + current checkpoint.RemoteConfigSource + lastKnownGood checkpoint.RemoteConfigSource + updated bool + }{ + {"nil -> nil", nil, nil, false}, + {"source -> nil", source, nil, true}, + {"nil -> source", nil, source, false}, + {"source -> source", source, source, true}, + {"source -> otherSource", source, otherSource, true}, + {"otherSource -> source", otherSource, source, true}, + } + for _, c := range cases { + // manually save the sources to their respective files + saveTestSourceFile(t, store.fs, curFile, c.current) + saveTestSourceFile(t, store.fs, lkgFile, c.lastKnownGood) + + // reset + updated, err := store.Reset() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + // make sure the files were emptied + if size := testSourceFileSize(t, store.fs, curFile); size > 0 { + t.Errorf("case %q, expect source file %q to be empty but got %d bytes", c.desc, curFile, size) + } + if size := testSourceFileSize(t, store.fs, lkgFile); size > 0 { + t.Errorf("case %q, expect source file %q to be empty but got %d bytes", c.desc, lkgFile, size) + } + + // make sure Current() and LastKnownGood() both return nil + current, err := store.Current() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + lastKnownGood, err := store.LastKnownGood() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if current != nil || lastKnownGood != nil { + t.Errorf("case %q, expect nil for current and last-known-good checkpoints, but still have %q and %q, respectively", + c.desc, current, lastKnownGood) + } + if c.updated != updated { + t.Errorf("case %q, expect reset to return %t, but got %t", c.desc, c.updated, updated) + } + } +} + +func TestFsStoreSourceFromFile(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ + ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cases := []struct { + desc string + expect checkpoint.RemoteConfigSource + err string + }{ + {"default source", nil, ""}, + {"non-default source", source, ""}, + } + + const name = "some-source-file" + for _, c := range cases { + saveTestSourceFile(t, store.fs, name, c.expect) + source, err := store.sourceFromFile(name) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if !checkpoint.EqualRemoteConfigSources(c.expect, source) { + t.Errorf("case %q, expect %q but got %q", spew.Sdump(c.expect), spew.Sdump(c.expect), spew.Sdump(source)) + } + } +} + +func TestFsStoreSetSourceFile(t *testing.T) { + store, err := newInitializedFakeFsStore() + if err != nil { + t.Fatalf("failed to construct a store, error: %v", err) + } + + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cases := []struct { + source checkpoint.RemoteConfigSource + }{ + {nil}, + {source}, + } + + const name = "some-source-file" + for _, c := range cases { + // set the source file + err := store.setSourceFile(name, c.source) + if err != nil { + t.Fatalf("unable to set source file, error: %v", err) + } + // read back the file + data := readTestSourceFile(t, store.fs, name) + str := string(data) + + if c.source != nil { + // expect the contents to match the encoding of the source + data, err := c.source.Encode() + expect := string(data) + if err != nil { + t.Fatalf("couldn't encode source, error: %v", err) + } + if expect != str { + t.Errorf("case %q, expect %q but got %q", spew.Sdump(c.source), expect, str) + } + } else { + // expect empty file + expect := "" + if expect != str { + t.Errorf("case %q, expect %q but got %q", spew.Sdump(c.source), expect, str) + } + } + } +} + +func readTestCheckpointFile(t *testing.T, fs utilfs.Filesystem, uid string) []byte { + data, err := fs.ReadFile(filepath.Join(testCheckpointsDir, uid)) + if err != nil { + t.Fatalf("unable to read test checkpoint file, error: %v", err) + } + return data +} + +func saveTestCheckpointFile(t *testing.T, fs utilfs.Filesystem, cpt checkpoint.Checkpoint) { + data, err := cpt.Encode() + if err != nil { + t.Fatalf("unable to encode test checkpoint, error: %v", err) + } + fmt.Println(cpt.UID()) + err = utilfiles.ReplaceFile(fs, filepath.Join(testCheckpointsDir, cpt.UID()), data) + if err != nil { + t.Fatalf("unable to save test checkpoint file, error: %v", err) + } +} + +func readTestSourceFile(t *testing.T, fs utilfs.Filesystem, relPath string) []byte { + data, err := fs.ReadFile(filepath.Join(testCheckpointsDir, relPath)) + if err != nil { + t.Fatalf("unable to read test source file, error: %v", err) + } + return data +} + +func saveTestSourceFile(t *testing.T, fs utilfs.Filesystem, relPath string, source checkpoint.RemoteConfigSource) { + if source != nil { + data, err := source.Encode() + if err != nil { + t.Fatalf("unable to save test source file, error: %v", err) + } + err = utilfiles.ReplaceFile(fs, filepath.Join(testCheckpointsDir, relPath), data) + if err != nil { + t.Fatalf("unable to save test source file, error: %v", err) + } + } else { + err := utilfiles.ReplaceFile(fs, filepath.Join(testCheckpointsDir, relPath), []byte{}) + if err != nil { + t.Fatalf("unable to save test source file, error: %v", err) + } + } +} + +func testSourceFileSize(t *testing.T, fs utilfs.Filesystem, relPath string) int64 { + info, err := fs.Stat(filepath.Join(testCheckpointsDir, relPath)) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + return info.Size() +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/store.go b/pkg/kubelet/kubeletconfig/checkpoint/store/store.go new file mode 100644 index 00000000000..a6bdb736b26 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/store.go @@ -0,0 +1,84 @@ +/* +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. +*/ + +package store + +import ( + "fmt" + "time" + + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint" +) + +// Store saves checkpoints and information about which is the current and last-known-good checkpoint to a storage layer +type Store interface { + // Initialize sets up the storage layer + Initialize() error + // Exists returns true if a checkpoint with `uid` exists in the store, false otherwise + Exists(uid string) (bool, error) + // Save saves the checkpoint to the storage layer + Save(c checkpoint.Checkpoint) error + // Load loads the checkpoint with UID `uid` from the storage layer, or returns an error if the checkpoint does not exist + Load(uid string) (checkpoint.Checkpoint, error) + // CurrentModified returns the last time that the current UID was set + CurrentModified() (time.Time, error) + // Current returns the source that points to the current checkpoint, or nil if no current checkpoint is set + Current() (checkpoint.RemoteConfigSource, error) + // LastKnownGood returns the source that points to the last-known-good checkpoint, or nil if no last-known-good checkpoint is set + LastKnownGood() (checkpoint.RemoteConfigSource, error) + // SetCurrent saves the source that points to the current checkpoint, set to nil to unset + SetCurrent(source checkpoint.RemoteConfigSource) error + // SetCurrentUpdated is similar to SetCurrent, but also returns whether the current checkpoint changed as a result + SetCurrentUpdated(source checkpoint.RemoteConfigSource) (bool, error) + // SetLastKnownGood saves the source that points to the last-known-good checkpoint, set to nil to unset + SetLastKnownGood(source checkpoint.RemoteConfigSource) error + // Reset unsets the current and last-known-good UIDs and returns whether the current UID was unset as a result of the reset + Reset() (bool, error) +} + +// reset is a helper for implementing Reset, which can be implemented in terms of Store methods +func reset(s Store) (bool, error) { + if err := s.SetLastKnownGood(nil); err != nil { + return false, fmt.Errorf("failed to reset last-known-good UID in checkpoint store, error: %v", err) + } + updated, err := s.SetCurrentUpdated(nil) + if err != nil { + return false, fmt.Errorf("failed to reset current UID in checkpoint store, error: %v", err) + } + return updated, nil +} + +// setCurrentUpdated is a helper for implementing SetCurrentUpdated, which can be implemented in terms of Store methods +func setCurrentUpdated(s Store, source checkpoint.RemoteConfigSource) (bool, error) { + cur, err := s.Current() + if err != nil { + return false, err + } + + // if both are nil, no need to update + if cur == nil && source == nil { + return false, nil + } + // if UIDs match, no need to update + if (source != nil && cur != nil) && cur.UID() == source.UID() { + return false, nil + } + // update the source + if err := s.SetCurrent(source); err != nil { + return false, err + } + return true, nil +} diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/store_test.go b/pkg/kubelet/kubeletconfig/checkpoint/store/store_test.go new file mode 100644 index 00000000000..c269d785890 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/store_test.go @@ -0,0 +1,96 @@ +/* +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. +*/ + +package store + +import ( + "testing" + + "github.com/davecgh/go-spew/spew" + + apiv1 "k8s.io/api/core/v1" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint" +) + +func TestReset(t *testing.T) { + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + otherSource, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "other-name", Namespace: "namespace", UID: "other-uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + cases := []struct { + s *fakeStore + updated bool + }{ + {&fakeStore{current: nil, lastKnownGood: nil}, false}, + {&fakeStore{current: source, lastKnownGood: nil}, true}, + {&fakeStore{current: nil, lastKnownGood: source}, false}, + {&fakeStore{current: source, lastKnownGood: source}, true}, + {&fakeStore{current: source, lastKnownGood: otherSource}, true}, + {&fakeStore{current: otherSource, lastKnownGood: source}, true}, + } + for _, c := range cases { + updated, err := reset(c.s) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + if c.s.current != nil || c.s.lastKnownGood != nil { + t.Errorf("case %q, expect nil for current and last-known-good checkpoints, but still have %q and %q, respectively", + spew.Sdump(c.s), c.s.current, c.s.lastKnownGood) + } + if c.updated != updated { + t.Errorf("case %q, expect reset to return %t, but got %t", spew.Sdump(c.s), c.updated, updated) + } + } +} + +func TestSetCurrentUpdated(t *testing.T) { + source, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "name", Namespace: "namespace", UID: "uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + otherSource, _, err := checkpoint.NewRemoteConfigSource(&apiv1.NodeConfigSource{ConfigMapRef: &apiv1.ObjectReference{Name: "other-name", Namespace: "namespace", UID: "other-uid"}}) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + cases := []struct { + s *fakeStore + newCurrent checkpoint.RemoteConfigSource + updated bool + }{ + {&fakeStore{current: nil}, nil, false}, + {&fakeStore{current: nil}, source, true}, + {&fakeStore{current: source}, source, false}, + {&fakeStore{current: source}, nil, true}, + {&fakeStore{current: source}, otherSource, true}, + } + for _, c := range cases { + current := c.s.current + updated, err := setCurrentUpdated(c.s, c.newCurrent) + if err != nil { + t.Fatalf("case %q -> %q, unexpected error: %v", current, c.newCurrent, err) + } + if c.newCurrent != c.s.current { + t.Errorf("case %q -> %q, expect current UID to be %q, but got %q", current, c.newCurrent, c.newCurrent, c.s.current) + } + if c.updated != updated { + t.Errorf("case %q -> %q, expect setCurrentUpdated to return %t, but got %t", current, c.newCurrent, c.updated, updated) + } + } +} diff --git a/pkg/kubelet/kubeletconfig/configfiles/BUILD b/pkg/kubelet/kubeletconfig/configfiles/BUILD new file mode 100644 index 00000000000..483f4976b5b --- /dev/null +++ b/pkg/kubelet/kubeletconfig/configfiles/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["configfiles.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/componentconfig:go_default_library", + "//pkg/kubelet/kubeletconfig/util/codec:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/configfiles/configfiles.go b/pkg/kubelet/kubeletconfig/configfiles/configfiles.go new file mode 100644 index 00000000000..fad56a80f0f --- /dev/null +++ b/pkg/kubelet/kubeletconfig/configfiles/configfiles.go @@ -0,0 +1,66 @@ +/* +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. +*/ + +package configfiles + +import ( + "fmt" + "path/filepath" + + "k8s.io/kubernetes/pkg/apis/componentconfig" + utilcodec "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" +) + +// Loader loads configuration from a storage layer +type Loader interface { + // Load loads and returns the KubeletConfiguration from the storage layer, or an error if a configuration could not be loaded + Load() (*componentconfig.KubeletConfiguration, error) +} + +// fsLoader loads configuration from `configDir` +type fsLoader struct { + // fs is the filesystem where the config files exist; can be mocked for testing + fs utilfs.Filesystem + // configDir is the absolute path to the directory containing the configuration files + configDir string +} + +// NewFSLoader returns a Loader that loads a KubeletConfiguration from the files in `configDir` +func NewFSLoader(fs utilfs.Filesystem, configDir string) Loader { + return &fsLoader{ + fs: fs, + configDir: configDir, + } +} + +func (loader *fsLoader) Load() (*componentconfig.KubeletConfiguration, error) { + errfmt := fmt.Sprintf("failed to load Kubelet config files from %q, error: ", loader.configDir) + "%v" + + // require the config be in a file called "kubelet" + path := filepath.Join(loader.configDir, "kubelet") + data, err := loader.fs.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("failed to read init config file %q, error: %v", path, err) + } + + // no configuration is an error, some parameters are required + if len(data) == 0 { + return nil, fmt.Errorf(errfmt, fmt.Errorf("config file was empty, but some parameters are required")) + } + + return utilcodec.DecodeKubeletConfiguration(data) +} diff --git a/pkg/kubelet/kubeletconfig/configsync.go b/pkg/kubelet/kubeletconfig/configsync.go new file mode 100644 index 00000000000..6f2f74f28cc --- /dev/null +++ b/pkg/kubelet/kubeletconfig/configsync.go @@ -0,0 +1,208 @@ +/* +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. +*/ + +package kubeletconfig + +import ( + "fmt" + "os" + + apiv1 "k8s.io/api/core/v1" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/cache" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +// pokeConfiSourceWorker tells the worker thread that syncs config sources that work needs to be done +func (cc *Controller) pokeConfigSourceWorker() { + select { + case cc.pendingConfigSource <- true: + default: + } +} + +// syncConfigSource checks if work needs to be done to use a new configuration, and does that work if necessary +func (cc *Controller) syncConfigSource(client clientset.Interface, nodeName string) { + select { + case <-cc.pendingConfigSource: + default: + // no work to be done, return + return + } + + // if the sync fails, we want to retry + var syncerr error + defer func() { + if syncerr != nil { + utillog.Errorf(syncerr.Error()) + cc.pokeConfigSourceWorker() + } + }() + + node, err := latestNode(cc.informer.GetStore(), nodeName) + if err != nil { + reason := "unable to read Node from internal object cache" + cc.configOK.SetFailedSyncCondition(reason) + syncerr = fmt.Errorf("%s, error: %v", reason, err) + return + } + + // check the Node and download any new config + if updated, reason, err := cc.doSyncConfigSource(client, node.Spec.ConfigSource); err != nil { + cc.configOK.SetFailedSyncCondition(reason) + syncerr = fmt.Errorf("%s, error: %v", reason, err) + return + } else if updated { + // TODO(mtaufen): Consider adding a "currently restarting" node condition for this case + utillog.Infof("config updated, Kubelet will restart to begin using new config") + os.Exit(0) + } + + // If we get here: + // - there is no need to restart to update the current config + // - there was no error trying to sync configuration + // - if, previously, there was an error trying to sync configuration, we need to update to the correct condition + errfmt := `sync succeeded but unable to clear "failed to sync" message from ConfigOK, error: %v` + + currentUID := "" + if currentSource, err := cc.checkpointStore.Current(); err != nil { + utillog.Errorf(errfmt, err) + return + } else if currentSource != nil { + currentUID = currentSource.UID() + } + + lkgUID := "" + if lkgSource, err := cc.checkpointStore.LastKnownGood(); err != nil { + utillog.Errorf(errfmt, err) + return + } else if lkgSource != nil { + lkgUID = lkgSource.UID() + } + + currentBadReason := "" + if entry, err := cc.badConfigTracker.Entry(currentUID); err != nil { + utillog.Errorf(errfmt, err) + } else if entry != nil { + currentBadReason = entry.Reason + } + cc.configOK.ClearFailedSyncCondition(currentUID, lkgUID, currentBadReason, cc.initConfig != nil) +} + +// doSyncConfigSource checkpoints and sets the store's current config to the new config or resets config, +// depending on the `source`, and returns whether the current config in the checkpoint store was updated as a result +func (cc *Controller) doSyncConfigSource(client clientset.Interface, source *apiv1.NodeConfigSource) (bool, string, error) { + if source == nil { + utillog.Infof("Node.Spec.ConfigSource is empty, will reset current and last-known-good to defaults") + updated, reason, err := cc.resetConfig() + if err != nil { + return false, reason, err + } + return updated, "", nil + } + + // if the NodeConfigSource is non-nil, download the config + utillog.Infof("Node.Spec.ConfigSource is non-empty, will checkpoint source and update config if necessary") + remote, reason, err := checkpoint.NewRemoteConfigSource(source) + if err != nil { + return false, reason, err + } + reason, err = cc.checkpointConfigSource(client, remote) + if err != nil { + return false, reason, err + } + updated, reason, err := cc.setCurrentConfig(remote) + if err != nil { + return false, reason, err + } + return updated, "", nil +} + +// checkpointConfigSource downloads and checkpoints the object referred to by `source` if the checkpoint does not already exist, +// if a failure occurs, returns a sanitized failure reason and an error +func (cc *Controller) checkpointConfigSource(client clientset.Interface, source checkpoint.RemoteConfigSource) (string, error) { + uid := source.UID() + + // if the checkpoint already exists, skip downloading + if ok, err := cc.checkpointStore.Exists(uid); err != nil { + reason := fmt.Sprintf("unable to determine whether object with UID %q was already checkpointed", uid) + return reason, fmt.Errorf("%s, error: %v", reason, err) + } else if ok { + utillog.Infof("checkpoint already exists for object with UID %q, skipping download", uid) + return "", nil + } + + // download + checkpoint, reason, err := source.Download(client) + if err != nil { + return reason, fmt.Errorf("%s, error: %v", reason, err) + } + + // save + err = cc.checkpointStore.Save(checkpoint) + if err != nil { + reason := fmt.Sprintf("failed to save checkpoint for object with UID %q", checkpoint.UID()) + return reason, fmt.Errorf("%s, error: %v", reason, err) + } + + return "", nil +} + +// setCurrentConfig updates UID of the current checkpoint in the checkpoint store to `uid` and returns whether the +// current UID changed as a result, or a sanitized failure reason and an error. +func (cc *Controller) setCurrentConfig(source checkpoint.RemoteConfigSource) (bool, string, error) { + updated, err := cc.checkpointStore.SetCurrentUpdated(source) + if err != nil { + str := "default" + if source != nil { + str = fmt.Sprintf("object with UID %q", source.UID()) + } + return false, fmt.Sprintf("failed to set current checkpoint to %s", str), err + } + return updated, "", nil +} + +// resetConfig resets the current and last-known-good checkpoints in the checkpoint store to their default values and +// returns whether the current checkpoint changed as a result, or a sanitized failure reason and an error. +func (cc *Controller) resetConfig() (bool, string, error) { + updated, err := cc.checkpointStore.Reset() + if err != nil { + return false, "failed to reset to using local (default or init) config", err + } + return updated, "", nil +} + +// latestNode returns the most recent Node with `nodeName` from `store` +func latestNode(store cache.Store, nodeName string) (*apiv1.Node, error) { + obj, ok, err := store.GetByKey(nodeName) + if err != nil { + err := fmt.Errorf("failed to retrieve Node %q from informer's store, error: %v", nodeName, err) + utillog.Errorf(err.Error()) + return nil, err + } else if !ok { + err := fmt.Errorf("Node %q does not exist in the informer's store, can't sync config source", nodeName) + utillog.Errorf(err.Error()) + return nil, err + } + node, ok := obj.(*apiv1.Node) + if !ok { + err := fmt.Errorf("failed to cast object from informer's store to Node, can't sync config source for Node %q", nodeName) + utillog.Errorf(err.Error()) + return nil, err + } + return node, nil +} diff --git a/pkg/kubelet/kubeletconfig/controller.go b/pkg/kubelet/kubeletconfig/controller.go new file mode 100644 index 00000000000..cc7c36a2587 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/controller.go @@ -0,0 +1,350 @@ +/* +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. +*/ + +package kubeletconfig + +import ( + "fmt" + "path/filepath" + "time" + + apiv1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/util/wait" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/cache" + "k8s.io/kubernetes/pkg/apis/componentconfig" + "k8s.io/kubernetes/pkg/apis/componentconfig/validation" + "k8s.io/kubernetes/pkg/version" + + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/badconfig" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/checkpoint/store" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/configfiles" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/startups" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" + utilpanic "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/panic" +) + +const ( + badConfigTrackingDir = "bad-config-tracking" + startupTrackingDir = "startup-tracking" + checkpointsDir = "checkpoints" + initConfigDir = "init" +) + +// Controller is the controller which, among other things: +// - loads configuration from disk +// - checkpoints configuration to disk +// - downloads new configuration from the API server +// - validates configuration +// - monitors for potential crash-loops caused by new configurations +// - tracks the last-known-good configuration, and rolls-back to last-known-good when necessary +// For more information, see the proposal: https://github.com/kubernetes/kubernetes/pull/29459 +type Controller struct { + // dynamicConfig, if true, indicates that we should sync config from the API server + dynamicConfig bool + + // defaultConfig is the configuration to use if no initConfig is provided + defaultConfig *componentconfig.KubeletConfiguration + + // initConfig is the unmarshaled init config, this will be loaded by the Controller if an initConfigDir is provided + initConfig *componentconfig.KubeletConfiguration + + // initLoader is for loading the Kubelet's init configuration files from disk + initLoader configfiles.Loader + + // pendingConfigSource; write to this channel to indicate that the config source needs to be synced from the API server + pendingConfigSource chan bool + + // configOK manages the ConfigOK condition that is reported in Node.Status.Conditions + configOK status.ConfigOKCondition + + // informer is the informer that watches the Node object + informer cache.SharedInformer + + // checkpointStore persists config source checkpoints to a storage layer + checkpointStore store.Store + + // badConfigTracker persists bad-config records to a storage layer + badConfigTracker badconfig.Tracker + + // startupTracker persists Kubelet startup records, used for crash-loop detection, to a storage layer + startupTracker startups.Tracker +} + +// NewController constructs a new Controller object and returns it. Directory paths must be absolute. +// If the `initConfigDir` is an empty string, skips trying to load the init config. +// If the `dynamicConfigDir` is an empty string, skips trying to load checkpoints or download new config, +// but will still sync the ConfigOK condition if you call StartSync with a non-nil client. +func NewController(initConfigDir string, dynamicConfigDir string, defaultConfig *componentconfig.KubeletConfiguration) *Controller { + fs := utilfs.DefaultFs{} + + var initLoader configfiles.Loader + if len(initConfigDir) > 0 { + initLoader = configfiles.NewFSLoader(fs, initConfigDir) + } + dynamicConfig := false + if len(dynamicConfigDir) > 0 { + dynamicConfig = true + } + + // Get the current kubelet version; bad-config and startup-tracking information can be kubelet-version specific, + // e.g. a bug that crash loops an old Kubelet under a given config might be fixed in a new Kubelet or vice-versa, + // validation might be relaxed in a new Kubelet, etc. + // We also don't want a change in a file format to break Kubelet upgrades; this makes sure a new kubelet gets + // a fresh dir to put its config health data in. + // Note that config checkpoints use the api machinery to store ConfigMaps, and thus get file format versioning for free. + kubeletVersion := version.Get().String() + + return &Controller{ + dynamicConfig: dynamicConfig, + defaultConfig: defaultConfig, + // channels must have capacity at least 1, since we signal with non-blocking writes + pendingConfigSource: make(chan bool, 1), + configOK: status.NewConfigOKCondition(), + checkpointStore: store.NewFsStore(fs, filepath.Join(dynamicConfigDir, checkpointsDir)), + badConfigTracker: badconfig.NewFsTracker(fs, filepath.Join(dynamicConfigDir, badConfigTrackingDir, kubeletVersion)), + startupTracker: startups.NewFsTracker(fs, filepath.Join(dynamicConfigDir, startupTrackingDir, kubeletVersion)), + initLoader: initLoader, + } +} + +// Bootstrap attempts to return a valid KubeletConfiguration based on the configuration of the Controller, +// or returns an error if no valid configuration could be produced. Bootstrap should be called synchronously before StartSync. +func (cc *Controller) Bootstrap() (*componentconfig.KubeletConfiguration, error) { + utillog.Infof("starting controller") + + // ALWAYS validate the local (default and init) configs. This makes incorrectly provisioned nodes an error. + // These must be valid because they are the foundational last-known-good configs. + utillog.Infof("validating combination of defaults and flags") + if err := validation.ValidateKubeletConfiguration(cc.defaultConfig); err != nil { + return nil, fmt.Errorf("combination of defaults and flags failed validation, error: %v", err) + } + // only attempt to load and validate the init config if the user provided a path + if cc.initLoader != nil { + utillog.Infof("loading init config") + kc, err := cc.initLoader.Load() + if err != nil { + return nil, err + } + // validate the init config + utillog.Infof("validating init config") + if err := validation.ValidateKubeletConfiguration(kc); err != nil { + return nil, fmt.Errorf("failed to validate the init config, error: %v", err) + } + cc.initConfig = kc + } + // Assert: the default and init configs are both valid + + // if dynamic config is disabled, skip trying to load any checkpoints because they won't exist + if !cc.dynamicConfig { + return cc.localConfig(), nil + } + + // assert: now we know that a dynamicConfigDir was provided, and we can rely on that existing + + // make sure the filesystem is set up properly + // TODO(mtaufen): rename this to initializeDynamicConfigDir + if err := cc.initialize(); err != nil { + return nil, err + } + + // record the kubelet startup time, used for crashloop detection + if err := cc.startupTracker.RecordStartup(); err != nil { + return nil, err + } + + // determine UID of the current config source + curUID := "" + if curSource, err := cc.checkpointStore.Current(); err != nil { + return nil, err + } else if curSource != nil { + curUID = curSource.UID() + } + + // if curUID indicates the local config should be used, return the correct one of those + if len(curUID) == 0 { + return cc.localConfig(), nil + } // Assert: we will not use the local configurations, unless we roll back to lkg; curUID is non-empty + + // check whether the current config is marked bad + if entry, err := cc.badConfigTracker.Entry(curUID); err != nil { + return nil, err + } else if entry != nil { + utillog.Infof("current config %q was marked bad for reason %q at time %q", curUID, entry.Reason, entry.Time) + return cc.lkgRollback(entry.Reason) + } + + // TODO(mtaufen): consider re-verifying integrity and re-attempting download when a load/verify/parse/validate + // error happens outside trial period, we already made it past the trial so it's probably filesystem corruption + // or something else scary (unless someone is using a 0-length trial period) + + // load the current config + checkpoint, err := cc.checkpointStore.Load(curUID) + if err != nil { + // TODO(mtaufen): rollback and mark bad for now, but this could reasonably be handled by re-attempting a download, + // it probably indicates some sort of corruption + return cc.badRollback(curUID, fmt.Sprintf(status.CurFailLoadReasonFmt, curUID), fmt.Sprintf("error: %v", err)) + } + + // parse the checkpoint into a KubeletConfiguration + cur, err := checkpoint.Parse() + if err != nil { + return cc.badRollback(curUID, fmt.Sprintf(status.CurFailParseReasonFmt, curUID), fmt.Sprintf("error: %v", err)) + } + + // validate current config + if err := validation.ValidateKubeletConfiguration(cur); err != nil { + return cc.badRollback(curUID, fmt.Sprintf(status.CurFailValidateReasonFmt, curUID), fmt.Sprintf("error: %v", err)) + } + + // check for crash loops if we're still in the trial period + if trial, err := cc.inTrial(cur.ConfigTrialDuration.Duration); err != nil { + return nil, err + } else if trial { + if crashing, err := cc.crashLooping(cur.CrashLoopThreshold); err != nil { + return nil, err + } else if crashing { + return cc.badRollback(curUID, fmt.Sprintf(status.CurFailCrashLoopReasonFmt, curUID), "") + } + } else { + // when the trial period is over, the current config becomes the last-known-good + if err := cc.graduateCurrentToLastKnownGood(); err != nil { + return nil, err + } + } + + // update the status to note that we will use the current config + cc.configOK.Set(fmt.Sprintf(status.CurRemoteMessageFmt, curUID), status.CurRemoteOKReason, apiv1.ConditionTrue) + return cur, nil +} + +// StartSync launches the controller's sync loops if `client` is non-nil and `nodeName` is non-empty. +// It will always start the Node condition reporting loop, and will also start the dynamic conifg sync loops +// if dynamic config is enabled on the controller. If `nodeName` is empty but `client` is non-nil, an error is logged. +func (cc *Controller) StartSync(client clientset.Interface, nodeName string) { + if client == nil { + utillog.Infof("nil client, will not start sync loops") + return + } else if len(nodeName) == 0 { + utillog.Errorf("cannot start sync loops with empty nodeName") + return + } + + // start the ConfigOK condition sync loop + go utilpanic.HandlePanic(func() { + utillog.Infof("starting ConfigOK condition sync loop") + wait.JitterUntil(func() { + cc.configOK.Sync(client, nodeName) + }, 10*time.Second, 0.2, true, wait.NeverStop) + })() + + // only sync to new, remotely provided configurations if dynamic config was enabled + if cc.dynamicConfig { + cc.informer = newSharedNodeInformer(client, nodeName, + cc.onAddNodeEvent, cc.onUpdateNodeEvent, cc.onDeleteNodeEvent) + // start the informer loop + // Rather than use utilruntime.HandleCrash, which doesn't actually crash in the Kubelet, + // we use HandlePanic to manually call the panic handlers and then crash. + // We have a better chance of recovering normal operation if we just restart the Kubelet in the event + // of a Go runtime error. + go utilpanic.HandlePanic(func() { + utillog.Infof("starting Node informer sync loop") + cc.informer.Run(wait.NeverStop) + })() + + // start the config source sync loop + go utilpanic.HandlePanic(func() { + utillog.Infof("starting config source sync loop") + wait.JitterUntil(func() { + cc.syncConfigSource(client, nodeName) + }, 10*time.Second, 0.2, true, wait.NeverStop) + })() + } else { + utillog.Infof("dynamic config not enabled, will not sync to remote config") + } +} + +// initialize makes sure that the storage layers for various controller components are set up correctly +func (cc *Controller) initialize() error { + utillog.Infof("ensuring filesystem is set up correctly") + // initialize local checkpoint storage location + if err := cc.checkpointStore.Initialize(); err != nil { + return err + } + // initialize bad config tracker + if err := cc.badConfigTracker.Initialize(); err != nil { + return err + } + // initialize startup tracker + if err := cc.startupTracker.Initialize(); err != nil { + return err + } + return nil +} + +// localConfig returns the initConfig if it is loaded, otherwise returns the defaultConfig +func (cc *Controller) localConfig() *componentconfig.KubeletConfiguration { + if cc.initConfig != nil { + cc.configOK.Set(status.CurInitMessage, status.CurInitOKReason, apiv1.ConditionTrue) + return cc.initConfig + } + cc.configOK.Set(status.CurDefaultMessage, status.CurDefaultOKReason, apiv1.ConditionTrue) + return cc.defaultConfig +} + +// inTrial returns true if the time elapsed since the last modification of the current config exceeds `trialDur`, false otherwise +func (cc *Controller) inTrial(trialDur time.Duration) (bool, error) { + now := time.Now() + t, err := cc.checkpointStore.CurrentModified() + if err != nil { + return false, err + } + if now.Sub(t) > trialDur { + return true, nil + } + return false, nil +} + +// crashLooping returns true if the number of startups since the last modification of the current config exceeds `threshold`, false otherwise +func (cc *Controller) crashLooping(threshold int32) (bool, error) { + // determine the last time the current config changed + modTime, err := cc.checkpointStore.CurrentModified() + if err != nil { + return false, err + } + // get the number of startups since that modification time + num, err := cc.startupTracker.StartupsSince(modTime) + if err != nil { + return false, err + } + return num > threshold, nil +} + +// graduateCurrentToLastKnownGood sets the last-known-good UID on the checkpointStore +// to the same value as the current UID maintained by the checkpointStore +func (cc *Controller) graduateCurrentToLastKnownGood() error { + curUID, err := cc.checkpointStore.Current() + if err != nil { + return fmt.Errorf("could not graduate last-known-good config to current config, error: %v", err) + } + err = cc.checkpointStore.SetLastKnownGood(curUID) + if err != nil { + return fmt.Errorf("could not graduate last-known-good config to current config, error: %v", err) + } + return nil +} diff --git a/pkg/kubelet/kubeletconfig/rollback.go b/pkg/kubelet/kubeletconfig/rollback.go new file mode 100644 index 00000000000..2769fa9c493 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/rollback.go @@ -0,0 +1,79 @@ +/* +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. +*/ + +package kubeletconfig + +import ( + "fmt" + + apiv1 "k8s.io/api/core/v1" + "k8s.io/kubernetes/pkg/apis/componentconfig" + "k8s.io/kubernetes/pkg/apis/componentconfig/validation" + "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/status" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +// badRollback makes an entry in the bad-config-tracking file for `uid` with `reason`, and returns the result of rolling back to the last-known-good config +func (cc *Controller) badRollback(uid, reason, detail string) (*componentconfig.KubeletConfiguration, error) { + utillog.Errorf(fmt.Sprintf("%s, %s", reason, detail)) + if err := cc.badConfigTracker.MarkBad(uid, reason); err != nil { + return nil, err + } + return cc.lkgRollback(reason) +} + +// lkgRollback returns a valid last-known-good configuration, and updates the `cc.configOK` condition +// regarding the `reason` for the rollback, or returns an error if a valid last-known-good could not be produced +func (cc *Controller) lkgRollback(reason string) (*componentconfig.KubeletConfiguration, error) { + utillog.Infof("rolling back to last-known-good config") + + lkgUID := "" + if lkgSource, err := cc.checkpointStore.LastKnownGood(); err != nil { + return nil, fmt.Errorf("unable to determine last-known-good config, error: %v", err) + } else if lkgSource != nil { + lkgUID = lkgSource.UID() + } + + // if lkgUID indicates the default should be used, return initConfig or defaultConfig + if len(lkgUID) == 0 { + if cc.initConfig != nil { + cc.configOK.Set(status.LkgInitMessage, reason, apiv1.ConditionFalse) + return cc.initConfig, nil + } + cc.configOK.Set(status.LkgDefaultMessage, reason, apiv1.ConditionFalse) + return cc.defaultConfig, nil + } + + // load + checkpoint, err := cc.checkpointStore.Load(lkgUID) + if err != nil { + return nil, fmt.Errorf("%s, error: %v", fmt.Sprintf(status.LkgFailLoadReasonFmt, lkgUID), err) + } + + // parse + lkg, err := checkpoint.Parse() + if err != nil { + return nil, fmt.Errorf("%s, error: %v", fmt.Sprintf(status.LkgFailParseReasonFmt, lkgUID), err) + } + + // validate + if err := validation.ValidateKubeletConfiguration(lkg); err != nil { + return nil, fmt.Errorf("%s, error: %v", fmt.Sprintf(status.LkgFailValidateReasonFmt, lkgUID), err) + } + + cc.configOK.Set(fmt.Sprintf(status.LkgRemoteMessageFmt, lkgUID), reason, apiv1.ConditionFalse) + return lkg, nil +} diff --git a/pkg/kubelet/kubeletconfig/startups/BUILD b/pkg/kubelet/kubeletconfig/startups/BUILD new file mode 100644 index 00000000000..fbec095a86c --- /dev/null +++ b/pkg/kubelet/kubeletconfig/startups/BUILD @@ -0,0 +1,52 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_library( + name = "go_default_library", + srcs = [ + "fstracker.go", + "startups.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/apis/componentconfig/validation:go_default_library", + "//pkg/kubelet/kubeletconfig/util/files:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + "//pkg/kubelet/kubeletconfig/util/log:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) + +go_test( + name = "go_default_test", + srcs = [ + "fstracker_test.go", + "startups_test.go", + ], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/kubelet/kubeletconfig/util/files:go_default_library", + "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", + "//pkg/kubelet/kubeletconfig/util/test:go_default_library", + ], +) diff --git a/pkg/kubelet/kubeletconfig/startups/fstracker.go b/pkg/kubelet/kubeletconfig/startups/fstracker.go new file mode 100644 index 00000000000..1c1e5ce8e35 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/startups/fstracker.go @@ -0,0 +1,127 @@ +/* +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. +*/ + +package startups + +import ( + "encoding/json" + "fmt" + "path/filepath" + "time" + + utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +const ( + startupsFile = "startups.json" +) + +// fsTracker tracks startups in the local filesystem +type fsTracker struct { + // fs is the filesystem to use for storage operations; can be mocked for testing + fs utilfs.Filesystem + // trackingDir is the absolute path to the storage directory for fsTracker + trackingDir string +} + +// NewFsTracker returns a Tracker that will store information in the `trackingDir` +func NewFsTracker(fs utilfs.Filesystem, trackingDir string) Tracker { + return &fsTracker{ + fs: fs, + trackingDir: trackingDir, + } +} + +func (tracker *fsTracker) Initialize() error { + utillog.Infof("initializing startups tracking directory %q", tracker.trackingDir) + if err := utilfiles.EnsureDir(tracker.fs, tracker.trackingDir); err != nil { + return err + } + if err := utilfiles.EnsureFile(tracker.fs, filepath.Join(tracker.trackingDir, startupsFile)); err != nil { + return err + } + return nil +} + +func (tracker *fsTracker) RecordStartup() error { + // load the file + ls, err := tracker.load() + if err != nil { + return err + } + + ls = recordStartup(ls) + + // save the file + err = tracker.save(ls) + if err != nil { + return err + } + return nil +} + +func (tracker *fsTracker) StartupsSince(t time.Time) (int32, error) { + // load the startups-tracking file + ls, err := tracker.load() + if err != nil { + return 0, err + } + return startupsSince(ls, t) +} + +// TODO(mtaufen): refactor into encode/decode like in badconfig.go + +// load loads the startups-tracking file from disk +func (tracker *fsTracker) load() ([]string, error) { + path := filepath.Join(tracker.trackingDir, startupsFile) + + // load the file + b, err := tracker.fs.ReadFile(path) + if err != nil { + return nil, fmt.Errorf("failed to load startups-tracking file %q, error: %v", path, err) + } + + // parse json into the slice + ls := []string{} + + // if the file is empty, just return empty slice + if len(b) == 0 { + return ls, nil + } + + // otherwise unmarshal the json + if err := json.Unmarshal(b, &ls); err != nil { + return nil, fmt.Errorf("failed to unmarshal json from startups-tracking file %q, error: %v", path, err) + } + return ls, nil +} + +// save replaces the contents of the startups-tracking file with `ls` +func (tracker *fsTracker) save(ls []string) error { + // marshal the json + b, err := json.Marshal(ls) + if err != nil { + return err + } + // save the file + path := filepath.Join(tracker.trackingDir, startupsFile) + if err := utilfiles.ReplaceFile(tracker.fs, path, b); err != nil { + return err + } + return nil +} diff --git a/pkg/kubelet/kubeletconfig/startups/fstracker_test.go b/pkg/kubelet/kubeletconfig/startups/fstracker_test.go new file mode 100644 index 00000000000..0895c945982 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/startups/fstracker_test.go @@ -0,0 +1,294 @@ +/* +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. +*/ + +package startups + +import ( + "fmt" + "path/filepath" + "reflect" + "testing" + "time" + + utilfiles "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/files" + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" + utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" +) + +const testTrackingDir = "/test-tracking-dir" + +// TODO(mtaufen): this file reuses a lot of test code from startups_test.go, should consolidate + +func newInitializedFakeFsTracker() (*fsTracker, error) { + fs := utilfs.NewFakeFs() + tracker := NewFsTracker(fs, testTrackingDir) + if err := tracker.Initialize(); err != nil { + return nil, err + } + return tracker.(*fsTracker), nil +} + +func TestFsTrackerInitialize(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("tracker.Initialize() failed with error: %v", err) + } + + // check that testTrackingDir exists + _, err = tracker.fs.Stat(testTrackingDir) + if err != nil { + t.Fatalf("expect %q to exist, but stat failed with error: %v", testTrackingDir, err) + } + + // check that testTrackingDir contains the startupsFile + path := filepath.Join(testTrackingDir, startupsFile) + _, err = tracker.fs.Stat(path) + if err != nil { + t.Fatalf("expect %q to exist, but stat failed with error: %v", path, err) + } +} + +func TestFsTrackerRecordStartup(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + now := time.Now() + + fullList := func() []string { + ls := []string{} + for i := maxStartups; i > 0; i-- { + // subtract decreasing amounts so timestamps increase but remain in the past + ls = append(ls, now.Add(-time.Duration(i)*time.Second).Format(time.RFC3339)) + } + return ls + }() + cases := []struct { + desc string + ls []string + expectHead []string // what we expect the first length-1 elements to look like after recording a new timestamp + expectLen int // how long the list should be after recording + }{ + // start empty + { + "start empty", + []string{}, + []string{}, + 1, + }, + // start non-empty + { + "start non-empty", + // subtract 1 so stamps are in the past + []string{now.Add(-1 * time.Second).Format(time.RFC3339)}, + []string{now.Add(-1 * time.Second).Format(time.RFC3339)}, + 2, + }, + // rotate list + { + "rotate list", + // make a slice with len == maxStartups, containing monotonically-increasing timestamps + fullList, + fullList[1:], + maxStartups, + }, + } + + for _, c := range cases { + // save the starting point, record a "startup" time, then load list from fs + if err := tracker.save(c.ls); err != nil { + t.Fatalf("unexpected error: %v", err) + } + if err := tracker.RecordStartup(); err != nil { + t.Fatalf("unexpected error: %v", err) + } + ls, err := tracker.load() + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + if c.expectLen != len(ls) { + t.Errorf("case %q, expected list %q to have length %d", c.desc, ls, c.expectLen) + } + if !reflect.DeepEqual(c.expectHead, ls[:len(ls)-1]) { + t.Errorf("case %q, expected elements 0 through n-1 of list %q to equal %q", c.desc, ls, c.expectHead) + } + // timestamps should be monotonically increasing (assuming system clock isn't jumping around at least) + if sorted, err := timestampsSorted(ls); err != nil { + t.Fatalf("unexpected error: %v", err) + } else if !sorted { + t.Errorf("case %q, expected monotonically increasing timestamps, but got %q", c.desc, ls) + } + } +} + +func TestFsTrackerStartupsSince(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + now, err := time.Parse(time.RFC3339, "2017-01-02T15:04:05Z") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cases := []struct { + desc string + ls []string + expect int32 + err string + }{ + // empty list + {"empty list", []string{}, 0, ""}, + // no startups since + { + "no startups since", + []string{"2014-01-02T15:04:05Z", "2015-01-02T15:04:05Z", "2016-01-02T15:04:05Z"}, + 0, + "", + }, + // 2 startups since + { + "some startups since", + []string{"2016-01-02T15:04:05Z", "2018-01-02T15:04:05Z", "2019-01-02T15:04:05Z"}, + 2, + "", + }, + // all startups since + { + "all startups since", + []string{"2018-01-02T15:04:05Z", "2019-01-02T15:04:05Z", "2020-01-02T15:04:05Z"}, + 3, + "", + }, + // invalid timestamp + {"invalid timestamp", []string{"2018-01-02T15:04:05Z08:00"}, 0, "failed to parse"}, + } + + for _, c := range cases { + if err := tracker.save(c.ls); err != nil { + t.Fatalf("unexected error: %v", err) + } + num, err := tracker.StartupsSince(now) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if num != c.expect { + t.Errorf("case %q, expect %d startups but got %d", c.desc, c.expect, num) + } + } +} + +func TestFsTrackerLoad(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + nowstamp := time.Now().Format(time.RFC3339) + cases := []struct { + desc string + data []byte + expect []string + err string + }{ + // empty file + {"empty file", []byte(""), []string{}, ""}, + // empty list + {"empty list", []byte("[]"), []string{}, ""}, + // valid json + {"valid json", []byte(fmt.Sprintf(`["%s"]`, nowstamp)), []string{nowstamp}, ""}, + // invalid json + {"invalid json", []byte(`*`), []string{}, "failed to unmarshal"}, + } + + for _, c := range cases { + // save a file containing the correct serialization + utilfiles.ReplaceFile(tracker.fs, filepath.Join(testTrackingDir, startupsFile), c.data) + + // loading valid json should result in an object with the correct serialization + ls, err := tracker.load() + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if !reflect.DeepEqual(c.expect, ls) { + // ls should equal expected decoded object + t.Errorf("case %q, expect %#v but got %#v", c.desc, c.expect, ls) + } + } + +} + +func TestFsTrackerSave(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + nowstamp := time.Now().Format(time.RFC3339) + cases := []struct { + desc string + ls []string + expect string + err string + }{ + // empty list + {"empty list", []string{}, "[]", ""}, + // 1-entry list + {"valid json", []string{nowstamp}, fmt.Sprintf(`["%s"]`, nowstamp), ""}, + } + + for _, c := range cases { + if err := tracker.save(c.ls); utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + + data, err := tracker.fs.ReadFile(filepath.Join(testTrackingDir, startupsFile)) + if err != nil { + t.Fatalf("failed to read startups file, error: %v", err) + } + json := string(data) + + if json != c.expect { + t.Errorf("case %q, expect %q but got %q", c.desc, c.expect, json) + } + } +} + +func TestFsTrackerRoundTrip(t *testing.T) { + tracker, err := newInitializedFakeFsTracker() + if err != nil { + t.Fatalf("failed to construct a tracker, error: %v", err) + } + + nowstamp := time.Now().Format(time.RFC3339) + expect := []string{nowstamp} + + // test that saving and loading an object results in the same value + err = tracker.save(expect) + if err != nil { + t.Fatalf("failed to save startups data, error: %v", err) + } + after, err := tracker.load() + if err != nil { + t.Fatalf("failed to load startups data, error: %v", err) + } + if !reflect.DeepEqual(expect, after) { + t.Errorf("expect round-tripping %#v to result in the same value, but got %#v", expect, after) + } +} diff --git a/pkg/kubelet/kubeletconfig/startups/startups.go b/pkg/kubelet/kubeletconfig/startups/startups.go new file mode 100644 index 00000000000..10a69a1b700 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/startups/startups.go @@ -0,0 +1,69 @@ +/* +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. +*/ + +package startups + +import ( + "fmt" + "time" + + "k8s.io/kubernetes/pkg/apis/componentconfig/validation" +) + +const ( + // we allow one extra startup to account for the startup necessary to update configuration + maxStartups = validation.MaxCrashLoopThreshold + 1 +) + +// Tracker tracks Kubelet startups in a storage layer +type Tracker interface { + // Initialize sets up the storage layer + Initialize() error + // RecordStartup records the current time as a Kubelet startup + RecordStartup() error + // StartupsSince returns the number of Kubelet startus recorded since `t` + StartupsSince(t time.Time) (int32, error) +} + +func startupsSince(ls []string, start time.Time) (int32, error) { + // since the list is append-only we only need to count the number of timestamps since `t` + startups := int32(0) + for _, stamp := range ls { + t, err := time.Parse(time.RFC3339, stamp) + if err != nil { + return 0, fmt.Errorf("failed to parse timestamp while counting startups, error: %v", err) + } + if t.After(start) { + startups++ + } + } + return startups, nil +} + +func recordStartup(ls []string) []string { + // record current time + now := time.Now() + stamp := now.Format(time.RFC3339) // use RFC3339 time format + ls = append(ls, stamp) + + // rotate the slice if necessary + if len(ls) > maxStartups { + ls = ls[1:] + } + + // return the new slice + return ls +} diff --git a/pkg/kubelet/kubeletconfig/startups/startups_test.go b/pkg/kubelet/kubeletconfig/startups/startups_test.go new file mode 100644 index 00000000000..a0eafa68e3a --- /dev/null +++ b/pkg/kubelet/kubeletconfig/startups/startups_test.go @@ -0,0 +1,157 @@ +/* +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. +*/ + +package startups + +import ( + "reflect" + "testing" + "time" + + utiltest "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/test" +) + +func TestRecordStartup(t *testing.T) { + now := time.Now() + + fullList := func() []string { + ls := []string{} + for i := maxStartups; i > 0; i-- { + // subtract decreasing amounts so timestamps increase but remain in the past + ls = append(ls, now.Add(-time.Duration(i)*time.Second).Format(time.RFC3339)) + } + return ls + }() + cases := []struct { + desc string + ls []string + expectHead []string // what we expect the first length-1 elements to look like after recording a new timestamp + expectLen int // how long the list should be after recording + }{ + // start empty + { + "start empty", + []string{}, + []string{}, + 1, + }, + // start non-empty + { + "start non-empty", + // subtract 1 so stamps are in the past + []string{now.Add(-1 * time.Second).Format(time.RFC3339)}, + []string{now.Add(-1 * time.Second).Format(time.RFC3339)}, + 2, + }, + // rotate list + { + "rotate list", + // make a slice with len == maxStartups, containing monotonically-increasing timestamps + fullList, + fullList[1:], + maxStartups, + }, + } + + for _, c := range cases { + ls := recordStartup(c.ls) + if c.expectLen != len(ls) { + t.Errorf("case %q, expected list %q to have length %d", c.desc, ls, c.expectLen) + } + if !reflect.DeepEqual(c.expectHead, ls[:len(ls)-1]) { + t.Errorf("case %q, expected elements 0 through n-1 of list %q to equal %q", c.desc, ls, c.expectHead) + } + // timestamps should be monotonically increasing (assuming system clock isn't jumping around at least) + if sorted, err := timestampsSorted(ls); err != nil { + t.Fatalf("unexpected error: %v", err) + } else if !sorted { + t.Errorf("case %q, expected monotonically increasing timestamps, but got %q", c.desc, ls) + } + } +} + +func TestStartupsSince(t *testing.T) { + now, err := time.Parse(time.RFC3339, "2017-01-02T15:04:05Z") + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + + cases := []struct { + desc string + ls []string + expect int32 + err string + }{ + // empty list + {"empty list", []string{}, 0, ""}, + // no startups since + { + "no startups since", + []string{"2014-01-02T15:04:05Z", "2015-01-02T15:04:05Z", "2016-01-02T15:04:05Z"}, + 0, + "", + }, + // 2 startups since + { + "some startups since", + []string{"2016-01-02T15:04:05Z", "2018-01-02T15:04:05Z", "2019-01-02T15:04:05Z"}, + 2, + "", + }, + // all startups since + { + "all startups since", + []string{"2018-01-02T15:04:05Z", "2019-01-02T15:04:05Z", "2020-01-02T15:04:05Z"}, + 3, + "", + }, + // invalid timestamp + {"invalid timestamp", []string{"2018-01-02T15:04:05Z08:00"}, 0, "failed to parse"}, + } + + for _, c := range cases { + num, err := startupsSince(c.ls, now) + if utiltest.SkipRest(t, c.desc, err, c.err) { + continue + } + if num != c.expect { + t.Errorf("case %q, expect %d startups but got %d", c.desc, c.expect, num) + } + } + +} + +// returns true if the timestamps are monotically increasing, false otherwise +func timestampsSorted(ls []string) (bool, error) { + if len(ls) < 2 { + return true, nil + } + prev, err := time.Parse(time.RFC3339, ls[0]) + if err != nil { + return false, err + } + for _, stamp := range ls[1:] { + cur, err := time.Parse(time.RFC3339, stamp) + if err != nil { + return false, err + } + if !cur.After(prev) { + return false, nil + } + prev = cur + } + return true, nil +} diff --git a/pkg/kubelet/kubeletconfig/status/BUILD b/pkg/kubelet/kubeletconfig/status/BUILD new file mode 100644 index 00000000000..80e6d3daca0 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/status/BUILD @@ -0,0 +1,37 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["status.go"], + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/kubelet/kubeletconfig/util/equal:go_default_library", + "//pkg/kubelet/kubeletconfig/util/log:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/status/status.go b/pkg/kubelet/kubeletconfig/status/status.go new file mode 100644 index 00000000000..f1c351b3c58 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/status/status.go @@ -0,0 +1,306 @@ +/* +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. +*/ + +package status + +import ( + "fmt" + "strings" + "sync" + "time" + + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + kuberuntime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/strategicpatch" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/pkg/api" + utilequal "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/equal" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +const ( + configOKType = "ConfigOK" + + // CurDefaultMessage indicates the Kubelet is using it's current config, which is the default + CurDefaultMessage = "using current (default)" + // LkgDefaultMessage indicates the Kubelet is using it's last-known-good config, which is the default + LkgDefaultMessage = "using last-known-good (default)" + + // CurInitMessage indicates the Kubelet is using it's current config, which is from the init config files + CurInitMessage = "using current (init)" + // LkgInitMessage indicates the Kubelet is using it's last-known-good config, which is from the init config files + LkgInitMessage = "using last-known-good (init)" + + // CurRemoteMessageFmt indicates the Kubelet is usin it's current config, which is from an API source + CurRemoteMessageFmt = "using current (UID: %q)" + // LkgRemoteMessageFmt indicates the Kubelet is using it's last-known-good config, which is from an API source + LkgRemoteMessageFmt = "using last-known-good (UID: %q)" + + // CurDefaultOKReason indicates that no init config files were provided + CurDefaultOKReason = "current is set to the local default, and no init config was provided" + // CurInitOKReason indicates that init config files were provided + CurInitOKReason = "current is set to the local default, and an init config was provided" + // CurRemoteOKReason indicates that the config from an API source passed all checks + CurRemoteOKReason = "passed all checks" + + // CurFailLoadReasonFmt indicates that the Kubelet failed to load the current config checkpoint for an API source + CurFailLoadReasonFmt = "failed to load current (UID: %q)" + // CurFailParseReasonFmt indicates that the Kubelet failed to parse the current config checkpoint for an API source + CurFailParseReasonFmt = "failed to parse current (UID: %q)" + // CurFailValidateReasonFmt indicates that the Kubelet failed to validate the current config checkpoint for an API source + CurFailValidateReasonFmt = "failed to validate current (UID: %q)" + // CurFailCrashLoopReasonFmt indicates that the Kubelet experienced a crash loop while using the current config checkpoint for an API source + CurFailCrashLoopReasonFmt = "current failed trial period due to crash loop (UID %q)" + + // LkgFailLoadReasonFmt indicates that the Kubelet failed to load the last-known-good config checkpoint for an API source + LkgFailLoadReasonFmt = "failed to load last-known-good (UID: %q)" + // LkgFailParseReasonFmt indicates that the Kubelet failed to parse the last-known-good config checkpoint for an API source + LkgFailParseReasonFmt = "failed to parse last-known-good (UID: %q)" + // LkgFailValidateReasonFmt indicates that the Kubelet failed to validate the last-known-good config checkpoint for an API source + LkgFailValidateReasonFmt = "failed to validate last-known-good (UID: %q)" + + emptyMessage = "unknown - message not provided" + emptyReason = "unknown - reason not provided" +) + +// ConfigOKCondition represents a ConfigOK NodeCondition +type ConfigOKCondition interface { + // Set sets the Message, Reason, and Status of the condition + Set(message, reason string, status apiv1.ConditionStatus) + // SetFailedSyncCondition sets the condition for when syncing Kubelet config fails + SetFailedSyncCondition(reason string) + // ClearFailedSyncCondition resets ConfigOKCondition to the correct condition for successfully syncing the kubelet config + ClearFailedSyncCondition(current string, lastKnownGood string, currentBadReason string, initConfig bool) + // Sync patches the current condition into the Node identified by `nodeName` + Sync(client clientset.Interface, nodeName string) +} + +// configOKCondition implements ConfigOKCondition +type configOKCondition struct { + // conditionMux is a mutex on the condition, alternate between setting and syncing the condition + conditionMux sync.Mutex + // condition is the current ConfigOK node condition, which will be reported in the Node.status.conditions + condition *apiv1.NodeCondition + // pendingCondition; write to this channel to indicate that ConfigOK needs to be synced to the API server + pendingCondition chan bool +} + +// NewConfigOKCondition returns a new ConfigOKCondition +func NewConfigOKCondition() ConfigOKCondition { + return &configOKCondition{ + // channels must have capacity at least 1, since we signal with non-blocking writes + pendingCondition: make(chan bool, 1), + } +} + +// unsafeSet sets the current state of the condition +// it does not grab the conditionMux lock, so you should generally use setConfigOK unless you need to grab the lock +// at a higher level to synchronize additional operations +func (c *configOKCondition) unsafeSet(message, reason string, status apiv1.ConditionStatus) { + // We avoid an empty Message, Reason, or Status on the condition. Since we use Patch to update conditions, an empty + // field might cause a value from a previous condition to leak through, which can be very confusing. + if len(message) == 0 { + message = emptyMessage + } + if len(reason) == 0 { + reason = emptyReason + } + if len(string(status)) == 0 { + status = apiv1.ConditionUnknown + } + + c.condition = &apiv1.NodeCondition{ + Message: message, + Reason: reason, + Status: status, + Type: configOKType, + } + + c.pokeSyncWorker() +} + +func (c *configOKCondition) Set(message, reason string, status apiv1.ConditionStatus) { + c.conditionMux.Lock() + defer c.conditionMux.Unlock() + c.unsafeSet(message, reason, status) +} + +// SetFailedSyncCondition updates the ConfigOK status to reflect that we failed to sync to the latest config because we couldn't figure out what +// config to use (e.g. due to a malformed reference, a download failure, etc) +func (c *configOKCondition) SetFailedSyncCondition(reason string) { + c.Set(c.condition.Message, fmt.Sprintf("failed to sync, desired config unclear, reason: %s", reason), apiv1.ConditionUnknown) +} + +// ClearFailedSyncCondition resets ConfigOK to the correct condition for the config UIDs +// `current` and `lastKnownGood`, depending on whether current is bad (non-empty `currentBadReason`) +// and whether an init config exists (`initConfig` is true). +func (c *configOKCondition) ClearFailedSyncCondition(current string, + lastKnownGood string, + currentBadReason string, + initConfig bool) { + // since our reason-check relies on c.condition we must manually take the lock and use c.unsafeSet instead of c.Set + c.conditionMux.Lock() + defer c.conditionMux.Unlock() + if strings.Contains(c.condition.Reason, "failed to sync, desired config unclear") { + // if we should report a "current is bad, rolled back" state + if len(currentBadReason) > 0 { + if len(current) == 0 { + if initConfig { + c.unsafeSet(LkgInitMessage, currentBadReason, apiv1.ConditionFalse) + return + } + c.unsafeSet(LkgDefaultMessage, currentBadReason, apiv1.ConditionFalse) + return + } + c.unsafeSet(fmt.Sprintf(LkgRemoteMessageFmt, lastKnownGood), currentBadReason, apiv1.ConditionFalse) + return + } + // if we should report a "current is ok" state + if len(current) == 0 { + if initConfig { + c.unsafeSet(CurInitMessage, CurInitOKReason, apiv1.ConditionTrue) + return + } + c.unsafeSet(CurDefaultMessage, CurDefaultOKReason, apiv1.ConditionTrue) + return + } + c.unsafeSet(fmt.Sprintf(CurRemoteMessageFmt, current), CurRemoteOKReason, apiv1.ConditionTrue) + } +} + +// pokeSyncWorker notes that the ConfigOK condition needs to be synced to the API server +func (c *configOKCondition) pokeSyncWorker() { + select { + case c.pendingCondition <- true: + default: + } +} + +// Sync attempts to sync `c.condition` with the Node object for this Kubelet, +// if syncing fails, an error is logged, and work is queued for retry. +func (c *configOKCondition) Sync(client clientset.Interface, nodeName string) { + select { + case <-c.pendingCondition: + default: + // no work to be done, return + return + } + + // grab the lock + c.conditionMux.Lock() + defer c.conditionMux.Unlock() + + // if the sync fails, we want to retry + var err error + defer func() { + if err != nil { + utillog.Errorf(err.Error()) + c.pokeSyncWorker() + } + }() + + if c.condition == nil { + utillog.Infof("ConfigOK condition is nil, skipping ConfigOK sync") + return + } + + // get the Node so we can check the current condition + node, err := client.CoreV1().Nodes().Get(nodeName, metav1.GetOptions{}) + if err != nil { + err = fmt.Errorf("could not get Node %q, will not sync ConfigOK condition, error: %v", nodeName, err) + return + } + + // set timestamps + syncTime := metav1.NewTime(time.Now()) + c.condition.LastHeartbeatTime = syncTime + if remote := getConfigOK(node.Status.Conditions); remote == nil || !utilequal.ConfigOKEq(remote, c.condition) { + // update transition time the first time we create the condition, + // or if we are semantically changing the condition + c.condition.LastTransitionTime = syncTime + } else { + // since the conditions are semantically equal, use lastTransitionTime from the condition currently on the Node + // we need to do this because the field will always be represented in the patch generated below, and this copy + // prevents nullifying the field during the patch operation + c.condition.LastTransitionTime = remote.LastTransitionTime + } + + // generate the patch + mediaType := "application/json" + info, ok := kuberuntime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + if !ok { + err = fmt.Errorf("unsupported media type %q", mediaType) + return + } + versions := api.Registry.EnabledVersionsForGroup(api.GroupName) + if len(versions) == 0 { + err = fmt.Errorf("no enabled versions for group %q", api.GroupName) + return + } + // the "best" version supposedly comes first in the list returned from apiv1.Registry.EnabledVersionsForGroup + encoder := api.Codecs.EncoderForVersion(info.Serializer, versions[0]) + + before, err := kuberuntime.Encode(encoder, node) + if err != nil { + err = fmt.Errorf(`failed to encode "before" node while generating patch, error: %v`, err) + return + } + + patchConfigOK(node, c.condition) + after, err := kuberuntime.Encode(encoder, node) + if err != nil { + err = fmt.Errorf(`failed to encode "after" node while generating patch, error: %v`, err) + return + } + + patch, err := strategicpatch.CreateTwoWayMergePatch(before, after, apiv1.Node{}) + if err != nil { + err = fmt.Errorf("failed to generate patch for updating ConfigOK condition, error: %v", err) + return + } + + // patch the remote Node object + _, err = client.CoreV1().Nodes().PatchStatus(nodeName, patch) + if err != nil { + err = fmt.Errorf("could not update ConfigOK condition, error: %v", err) + return + } +} + +// patchConfigOK replaces or adds the ConfigOK condition to the node +func patchConfigOK(node *apiv1.Node, configOK *apiv1.NodeCondition) { + for i := range node.Status.Conditions { + if node.Status.Conditions[i].Type == configOKType { + // edit the condition + node.Status.Conditions[i] = *configOK + return + } + } + // append the condition + node.Status.Conditions = append(node.Status.Conditions, *configOK) +} + +// getConfigOK returns the first NodeCondition in `cs` with Type == configOKType, +// or if no such condition exists, returns nil. +func getConfigOK(cs []apiv1.NodeCondition) *apiv1.NodeCondition { + for i := range cs { + if cs[i].Type == configOKType { + return &cs[i] + } + } + return nil +} diff --git a/pkg/kubelet/kubeletconfig/util/codec/BUILD b/pkg/kubelet/kubeletconfig/util/codec/BUILD new file mode 100644 index 00000000000..44ef8e5039e --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/codec/BUILD @@ -0,0 +1,35 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["codec.go"], + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/api/install:go_default_library", + "//pkg/apis/componentconfig:go_default_library", + "//pkg/apis/componentconfig/install:go_default_library", + "//pkg/apis/componentconfig/v1alpha1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/util/codec/codec.go b/pkg/kubelet/kubeletconfig/util/codec/codec.go new file mode 100644 index 00000000000..3046af89c02 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/codec/codec.go @@ -0,0 +1,77 @@ +/* +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. +*/ + +package codec + +import ( + "fmt" + + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/kubernetes/pkg/api" + // ensure the core apis are installed + _ "k8s.io/kubernetes/pkg/api/install" + "k8s.io/kubernetes/pkg/apis/componentconfig" + // ensure the componentconfig api group is installed + _ "k8s.io/kubernetes/pkg/apis/componentconfig/install" + ccv1a1 "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1" +) + +// TODO(mtaufen): allow an encoder to be injected into checkpoint objects at creation time? (then we could ultimately instantiate only one encoder) + +// NewJSONEncoder generates a new runtime.Encoder that encodes objects to JSON +func NewJSONEncoder(groupName string) (runtime.Encoder, error) { + // encode to json + mediaType := "application/json" + info, ok := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + if !ok { + return nil, fmt.Errorf("unsupported media type %q", mediaType) + } + + versions := api.Registry.EnabledVersionsForGroup(groupName) + if len(versions) == 0 { + return nil, fmt.Errorf("no enabled versions for group %q", groupName) + } + + // the "best" version supposedly comes first in the list returned from api.Registry.EnabledVersionsForGroup + return api.Codecs.EncoderForVersion(info.Serializer, versions[0]), nil +} + +// DecodeKubeletConfiguration decodes an encoded (v1alpha1) KubeletConfiguration object to the internal type +func DecodeKubeletConfiguration(data []byte) (*componentconfig.KubeletConfiguration, error) { + // TODO(mtaufen): when KubeletConfiguration moves out of componentconfig, will the UniversalDecoder still work? + // decode the object, note we use the external version scheme to decode, because users provide the external version + obj, err := runtime.Decode(api.Codecs.UniversalDecoder(ccv1a1.SchemeGroupVersion), data) + if err != nil { + return nil, fmt.Errorf("failed to decode, error: %v", err) + } + + externalKC, ok := obj.(*ccv1a1.KubeletConfiguration) + if !ok { + return nil, fmt.Errorf("failed to cast object to KubeletConfiguration, object: %#v", obj) + } + + // TODO(mtaufen): confirm whether api.Codecs.UniversalDecoder runs the defaulting, which would make this redundant + // run the defaulter on the decoded configuration before converting to internal type + api.Scheme.Default(externalKC) + + // convert to internal type + internalKC := &componentconfig.KubeletConfiguration{} + err = api.Scheme.Convert(externalKC, internalKC, nil) + if err != nil { + return nil, err + } + return internalKC, nil +} diff --git a/pkg/kubelet/kubeletconfig/util/equal/BUILD b/pkg/kubelet/kubeletconfig/util/equal/BUILD new file mode 100644 index 00000000000..a39b4977158 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/equal/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["equal.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/util/equal/equal.go b/pkg/kubelet/kubeletconfig/util/equal/equal.go new file mode 100644 index 00000000000..ffd12cf6a49 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/equal/equal.go @@ -0,0 +1,51 @@ +/* +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. +*/ + +package equal + +import apiv1 "k8s.io/api/core/v1" + +// ConfigSourceEq returns true if the two config sources are semantically equivalent in the context of dynamic config +func ConfigSourceEq(a, b *apiv1.NodeConfigSource) bool { + if a == b { + return true + } else if a == nil || b == nil { + // not equal, and one is nil + return false + } + // check equality of config source subifelds + if a.ConfigMapRef != b.ConfigMapRef { + return ObjectRefEq(a.ConfigMapRef, b.ConfigMapRef) + } + // all internal subfields of the config soruce are equal + return true +} + +// ObjectRefEq returns true if the two object references are semantically equivalent in the context of dynamic config +func ObjectRefEq(a, b *apiv1.ObjectReference) bool { + if a == b { + return true + } else if a == nil || b == nil { + // not equal, and one is nil + return false + } + return a.UID == b.UID && a.Namespace == b.Namespace && a.Name == b.Name +} + +// ConfigOKEq returns true if the two conditions are semantically equivalent in the context of dynamic config +func ConfigOKEq(a, b *apiv1.NodeCondition) bool { + return a.Message == b.Message && a.Reason == b.Reason && a.Status == b.Status +} diff --git a/pkg/kubelet/kubeletconfig/util/files/BUILD b/pkg/kubelet/kubeletconfig/util/files/BUILD new file mode 100644 index 00000000000..6d0978e464d --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/files/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["files.go"], + tags = ["automanaged"], + deps = ["//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/util/files/files.go b/pkg/kubelet/kubeletconfig/util/files/files.go new file mode 100644 index 00000000000..99c7de851d3 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/files/files.go @@ -0,0 +1,124 @@ +/* +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. +*/ + +package files + +import ( + "fmt" + "os" + "path/filepath" + + utilfs "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/filesystem" +) + +const defaultPerm = 0666 + +// FileExists returns true if a regular file exists at `path`, false if `path` does not exist, otherwise an error +func FileExists(fs utilfs.Filesystem, path string) (bool, error) { + if info, err := fs.Stat(path); err == nil { + if info.Mode().IsRegular() { + return true, nil + } + return false, fmt.Errorf("expected regular file at %q, but mode is %q", path, info.Mode().String()) + } else if os.IsNotExist(err) { + return false, nil + } else { + return false, err + } +} + +// EnsureFile ensures that a regular file exists at `path`, and if it must create the file any +// necessary parent directories will also be created and the new file will be empty. +func EnsureFile(fs utilfs.Filesystem, path string) error { + // if file exists, don't change it, but do report any unexpected errors + if ok, err := FileExists(fs, path); ok || err != nil { + return err + } // Assert: file does not exist + + // create any necessary parents + err := fs.MkdirAll(filepath.Dir(path), defaultPerm) + if err != nil { + return err + } + + // create the file + file, err := fs.Create(path) + if err != nil { + return err + } + // close the file, since we don't intend to use it yet + return file.Close() +} + +// ReplaceFile replaces the contents of the file at `path` with `data` by writing to a tmp file in the same +// dir as `path` and renaming the tmp file over `path`. The file does not have to exist to use ReplaceFile. +func ReplaceFile(fs utilfs.Filesystem, path string, data []byte) error { + dir := filepath.Dir(path) + prefix := filepath.Base(path) + + // create the tmp file + tmpFile, err := fs.TempFile(dir, prefix) + if err != nil { + return err + } + + // Name() will be an absolute path when using utilfs.DefaultFS, because ioutil.TempFile passes + // an absolute path to os.Open, and we ensure similar behavior in utilfs.FakeFS for testing. + tmpPath := tmpFile.Name() + + // write data + if _, err := tmpFile.Write(data); err != nil { + return err + } + if err := tmpFile.Close(); err != nil { + return err + } + + // rename over existing file + if err := fs.Rename(tmpPath, path); err != nil { + return err + } + return nil +} + +// DirExists returns true if a directory exists at `path`, false if `path` does not exist, otherwise an error +func DirExists(fs utilfs.Filesystem, path string) (bool, error) { + if info, err := fs.Stat(path); err == nil { + if info.IsDir() { + return true, nil + } + return false, fmt.Errorf("expected dir at %q, but mode is is %q", path, info.Mode().String()) + } else if os.IsNotExist(err) { + return false, nil + } else { + return false, err + } +} + +// EnsureDir ensures that a directory exists at `path`, and if it must create the directory any +// necessary parent directories will also be created and the new directory will be empty. +func EnsureDir(fs utilfs.Filesystem, path string) error { + // if dir exists, don't change it, but do report any unexpected errors + if ok, err := DirExists(fs, path); ok || err != nil { + return err + } // Assert: dir does not exist + + // create the dir + if err := fs.MkdirAll(path, defaultPerm); err != nil { + return err + } + return nil +} diff --git a/pkg/kubelet/kubeletconfig/util/filesystem/BUILD b/pkg/kubelet/kubeletconfig/util/filesystem/BUILD new file mode 100644 index 00000000000..c85fb2ff22e --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/filesystem/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "defaultfs.go", + "fakefs.go", + "filesystem.go", + ], + tags = ["automanaged"], + deps = ["//vendor/github.com/spf13/afero:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/util/filesystem/defaultfs.go b/pkg/kubelet/kubeletconfig/util/filesystem/defaultfs.go new file mode 100644 index 00000000000..3840da0cde3 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/filesystem/defaultfs.go @@ -0,0 +1,89 @@ +/* +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. +*/ + +package filesystem + +import ( + "io/ioutil" + "os" + "time" +) + +// DefaultFs implements Filesystem using same-named functions from "os" and "io/ioutil" +type DefaultFs struct{} + +// Stat via os.Stat +func (DefaultFs) Stat(name string) (os.FileInfo, error) { + return os.Stat(name) +} + +// Create via os.Create +func (DefaultFs) Create(name string) (File, error) { + file, err := os.Create(name) + if err != nil { + return nil, err + } + return &defaultFile{file}, nil +} + +// Rename via os.Rename +func (DefaultFs) Rename(oldpath, newpath string) error { + return os.Rename(oldpath, newpath) +} + +// MkdirAll via os.MkdirAll +func (DefaultFs) MkdirAll(path string, perm os.FileMode) error { + return os.MkdirAll(path, perm) +} + +// Chtimes via os.Chtimes +func (DefaultFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + return os.Chtimes(name, atime, mtime) +} + +// ReadFile via os.ReadFile +func (DefaultFs) ReadFile(filename string) ([]byte, error) { + return ioutil.ReadFile(filename) +} + +// TempFile via os.TempFile +func (DefaultFs) TempFile(dir, prefix string) (File, error) { + file, err := ioutil.TempFile(dir, prefix) + if err != nil { + return nil, err + } + return &defaultFile{file}, nil +} + +// defaultFile implements File using same-named functions from "os" +type defaultFile struct { + file *os.File +} + +// Name via os.File.Name +func (file *defaultFile) Name() string { + return file.file.Name() +} + +// Write via os.File.Write +func (file *defaultFile) Write(b []byte) (n int, err error) { + return file.file.Write(b) +} + +// Close via os.File.Close +func (file *defaultFile) Close() error { + return file.file.Close() +} diff --git a/pkg/kubelet/kubeletconfig/util/filesystem/fakefs.go b/pkg/kubelet/kubeletconfig/util/filesystem/fakefs.go new file mode 100644 index 00000000000..7bbce8cc5a7 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/filesystem/fakefs.go @@ -0,0 +1,97 @@ +/* +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. +*/ + +package filesystem + +import ( + "os" + "time" + + "github.com/spf13/afero" +) + +// fakeFs is implemented in terms of afero +type fakeFs struct { + a afero.Afero +} + +// NewFakeFs returns a fake Filesystem that exists in-memory, useful for unit tests +func NewFakeFs() Filesystem { + return &fakeFs{a: afero.Afero{Fs: afero.NewMemMapFs()}} +} + +// Stat via afero.Fs.Stat +func (fs *fakeFs) Stat(name string) (os.FileInfo, error) { + return fs.a.Fs.Stat(name) +} + +// Create via afero.Fs.Create +func (fs *fakeFs) Create(name string) (File, error) { + file, err := fs.a.Fs.Create(name) + if err != nil { + return nil, err + } + return &fakeFile{file}, nil +} + +// Rename via afero.Fs.Rename +func (fs *fakeFs) Rename(oldpath, newpath string) error { + return fs.a.Fs.Rename(oldpath, newpath) +} + +// MkdirAll via afero.Fs.MkdirAll +func (fs *fakeFs) MkdirAll(path string, perm os.FileMode) error { + return fs.a.Fs.MkdirAll(path, perm) +} + +// Chtimes via afero.Fs.Chtimes +func (fs *fakeFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + return fs.a.Fs.Chtimes(name, atime, mtime) +} + +// ReadFile via afero.Fs.ReadFile +func (fs *fakeFs) ReadFile(filename string) ([]byte, error) { + return fs.a.ReadFile(filename) +} + +// TempFile via afero.Fs.TempFile +func (fs *fakeFs) TempFile(dir, prefix string) (File, error) { + file, err := fs.a.TempFile(dir, prefix) + if err != nil { + return nil, err + } + return &fakeFile{file}, nil +} + +// fakeFile implements File; for use with fakeFs +type fakeFile struct { + file afero.File +} + +// Name via afero.File.Name +func (file *fakeFile) Name() string { + return file.file.Name() +} + +// Write via afero.File.Write +func (file *fakeFile) Write(b []byte) (n int, err error) { + return file.file.Write(b) +} + +// Close via afero.File.Close +func (file *fakeFile) Close() error { + return file.file.Close() +} diff --git a/pkg/kubelet/kubeletconfig/util/filesystem/filesystem.go b/pkg/kubelet/kubeletconfig/util/filesystem/filesystem.go new file mode 100644 index 00000000000..2396681faf0 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/filesystem/filesystem.go @@ -0,0 +1,45 @@ +/* +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. +*/ + +package filesystem + +import ( + "os" + "time" +) + +// Filesystem is an interface that we can use to mock various filesystem operations +type Filesystem interface { + // from "os" + Stat(name string) (os.FileInfo, error) + Create(name string) (File, error) + Rename(oldpath, newpath string) error + MkdirAll(path string, perm os.FileMode) error + Chtimes(name string, atime time.Time, mtime time.Time) error + + // from "io/ioutil" + ReadFile(filename string) ([]byte, error) + TempFile(dir, prefix string) (File, error) +} + +// File is an interface that we can use to mock various filesystem operations typically +// accessed through the File object from the "os" package +type File interface { + // for now, the only os.File methods used are those below, add more as necessary + Name() string + Write(b []byte) (n int, err error) + Close() error +} diff --git a/pkg/kubelet/kubeletconfig/util/log/BUILD b/pkg/kubelet/kubeletconfig/util/log/BUILD new file mode 100644 index 00000000000..3003b84546c --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/log/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["log.go"], + tags = ["automanaged"], + deps = ["//vendor/github.com/golang/glog:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/util/log/log.go b/pkg/kubelet/kubeletconfig/util/log/log.go new file mode 100644 index 00000000000..b4ecfe4dc99 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/log/log.go @@ -0,0 +1,49 @@ +/* +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. +*/ + +package log + +import ( + "fmt" + + "github.com/golang/glog" +) + +const logFmt = "kubelet config controller: %s" + +// Errorf shim that inserts "kubelet config controller" at the beginning of the log message, +// while still reporting the call site of the logging function. +func Errorf(format string, args ...interface{}) { + var s string + if len(args) > 0 { + s = fmt.Sprintf(format, args...) + } else { + s = format + } + glog.ErrorDepth(1, fmt.Sprintf(logFmt, s)) +} + +// Infof shim that inserts "kubelet config controller" at the beginning of the log message, +// while still reporting the call site of the logging function. +func Infof(format string, args ...interface{}) { + var s string + if len(args) > 0 { + s = fmt.Sprintf(format, args...) + } else { + s = format + } + glog.InfoDepth(1, fmt.Sprintf(logFmt, s)) +} diff --git a/pkg/kubelet/kubeletconfig/util/panic/BUILD b/pkg/kubelet/kubeletconfig/util/panic/BUILD new file mode 100644 index 00000000000..c0089b4f34f --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/panic/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["panic.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/util/panic/panic.go b/pkg/kubelet/kubeletconfig/util/panic/panic.go new file mode 100644 index 00000000000..f1916ebf731 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/panic/panic.go @@ -0,0 +1,36 @@ +/* +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. +*/ + +package panic + +import utilruntime "k8s.io/apimachinery/pkg/util/runtime" + +// HandlePanic returns a function that wraps `fn` with the utilruntime.PanicHandlers, and continues +// to bubble the panic after the PanicHandlers are called +func HandlePanic(fn func()) func() { + return func() { + defer func() { + if r := recover(); r != nil { + for _, fn := range utilruntime.PanicHandlers { + fn(r) + } + panic(r) + } + }() + // call the function + fn() + } +} diff --git a/pkg/kubelet/kubeletconfig/util/test/BUILD b/pkg/kubelet/kubeletconfig/util/test/BUILD new file mode 100644 index 00000000000..64e10bbe765 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/test/BUILD @@ -0,0 +1,27 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["test.go"], + tags = ["automanaged"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/kubelet/kubeletconfig/util/test/test.go b/pkg/kubelet/kubeletconfig/util/test/test.go new file mode 100644 index 00000000000..1c18e8344e6 --- /dev/null +++ b/pkg/kubelet/kubeletconfig/util/test/test.go @@ -0,0 +1,40 @@ +/* +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. +*/ + +package test + +import ( + "strings" + "testing" +) + +// SkipRest returns true if there was a non-nil error or if we expected an error that didn't happen, +// and logs the appropriate error on the test object. +// The return value indicates whether we should skip the rest of the test case due to the error result. +func SkipRest(t *testing.T, desc string, err error, contains string) bool { + if err != nil { + if len(contains) == 0 { + t.Errorf("case %q, expect nil error but got %q", desc, err.Error()) + } else if !strings.Contains(err.Error(), contains) { + t.Errorf("case %q, expect error to contain %q but got %q", desc, contains, err.Error()) + } + return true + } else if len(contains) > 0 { + t.Errorf("case %q, expect error to contain %q but got nil error", desc, contains) + return true + } + return false +} diff --git a/pkg/kubelet/kubeletconfig/watch.go b/pkg/kubelet/kubeletconfig/watch.go new file mode 100644 index 00000000000..2c0363c7cab --- /dev/null +++ b/pkg/kubelet/kubeletconfig/watch.go @@ -0,0 +1,125 @@ +/* +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. +*/ + +package kubeletconfig + +import ( + "math/rand" + "time" + + apiv1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + kuberuntime "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/watch" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/cache" + utilequal "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/equal" + utillog "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/log" +) + +// newSharedNodeInformer returns a shared informer that uses `client` to watch the Node with +// `nodeName` for changes and respond with `addFunc`, `updateFunc`, and `deleteFunc`. +func newSharedNodeInformer(client clientset.Interface, nodeName string, + addFunc func(newObj interface{}), + updateFunc func(oldObj interface{}, newObj interface{}), + deleteFunc func(deletedObj interface{})) cache.SharedInformer { + // select nodes by name + fieldselector := fields.OneTermEqualSelector("metadata.name", nodeName) + + // add some randomness to resync period, which can help avoid controllers falling into lock-step + minResyncPeriod := 15 * time.Minute + factor := rand.Float64() + 1 + resyncPeriod := time.Duration(float64(minResyncPeriod.Nanoseconds()) * factor) + + lw := &cache.ListWatch{ + ListFunc: func(options metav1.ListOptions) (kuberuntime.Object, error) { + return client.Core().Nodes().List(metav1.ListOptions{ + FieldSelector: fieldselector.String(), + }) + }, + WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { + return client.Core().Nodes().Watch(metav1.ListOptions{ + FieldSelector: fieldselector.String(), + ResourceVersion: options.ResourceVersion, + }) + }, + } + + handler := cache.ResourceEventHandlerFuncs{ + AddFunc: addFunc, + UpdateFunc: updateFunc, + DeleteFunc: deleteFunc, + } + + informer := cache.NewSharedInformer(lw, &apiv1.Node{}, resyncPeriod) + informer.AddEventHandler(handler) + + return informer +} + +// onAddNodeEvent calls onUpdateNodeEvent with the new object and a nil old object +func (cc *Controller) onAddNodeEvent(newObj interface{}) { + cc.onUpdateNodeEvent(nil, newObj) +} + +// onUpdateNodeEvent checks whether the configSource changed between oldObj and newObj, and pokes the +// configuration sync worker if there was a change +func (cc *Controller) onUpdateNodeEvent(oldObj interface{}, newObj interface{}) { + newNode, ok := newObj.(*apiv1.Node) + if !ok { + utillog.Errorf("failed to cast new object to Node, couldn't handle event") + return + } + if oldObj == nil { + // Node was just added, need to sync + cc.pokeConfigSourceWorker() + return + } + oldNode, ok := oldObj.(*apiv1.Node) + if !ok { + utillog.Errorf("failed to cast old object to Node, couldn't handle event") + return + } + if !utilequal.ConfigSourceEq(oldNode.Spec.ConfigSource, newNode.Spec.ConfigSource) { + cc.pokeConfigSourceWorker() + } +} + +// onDeleteNodeEvent logs a message if the Node was deleted and may log errors +// if an unexpected DeletedFinalStateUnknown was received. +// We allow the sync-loop to continue, because it is possible that the Kubelet detected +// a Node with unexpected externalID and is attempting to delete and re-create the Node +// (see pkg/kubelet/kubelet_node_status.go), or that someone accidently deleted the Node +// (the Kubelet will re-create it). +func (cc *Controller) onDeleteNodeEvent(deletedObj interface{}) { + node, ok := deletedObj.(*apiv1.Node) + if !ok { + tombstone, ok := deletedObj.(cache.DeletedFinalStateUnknown) + if !ok { + utillog.Errorf("couldn't cast deleted object to DeletedFinalStateUnknown, object: %+v", deletedObj) + return + } + node, ok = tombstone.Obj.(*apiv1.Node) + if !ok { + utillog.Errorf("received DeletedFinalStateUnknown object but it did not contain a Node, object: %+v", deletedObj) + return + } + utillog.Infof("Node was deleted (DeletedFinalStateUnknown), sync-loop will continue because the Kubelet might recreate the Node, node: %+v", node) + return + } + utillog.Infof("Node was deleted, sync-loop will continue because the Kubelet might recreate the Node, node: %+v", node) +} diff --git a/pkg/kubemark/hollow_kubelet.go b/pkg/kubemark/hollow_kubelet.go index 80de302f324..1ad3809b5a5 100644 --- a/pkg/kubemark/hollow_kubelet.go +++ b/pkg/kubemark/hollow_kubelet.go @@ -110,6 +110,7 @@ func GetHollowKubeletConfig( // Flags struct f := &options.KubeletFlags{ + RootDirectory: testRootDir, HostnameOverride: nodeName, // Use the default runtime options. ContainerRuntimeOptions: *options.NewContainerRuntimeOptions(), @@ -123,7 +124,6 @@ func GetHollowKubeletConfig( c := &componentconfig.KubeletConfiguration{} api.Scheme.Convert(tmp, c, nil) - c.RootDirectory = testRootDir c.ManifestURL = "" c.Address = "0.0.0.0" /* bind address */ c.Port = int32(kubeletPort) diff --git a/plugin/pkg/admission/noderestriction/BUILD b/plugin/pkg/admission/noderestriction/BUILD index 4bf848152f4..cf5d23774b8 100644 --- a/plugin/pkg/admission/noderestriction/BUILD +++ b/plugin/pkg/admission/noderestriction/BUILD @@ -20,6 +20,7 @@ go_library( "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", "//pkg/kubeapiserver/admission:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", diff --git a/plugin/pkg/admission/noderestriction/admission.go b/plugin/pkg/admission/noderestriction/admission.go index 8fdcb4aea06..f1f77a95569 100644 --- a/plugin/pkg/admission/noderestriction/admission.go +++ b/plugin/pkg/admission/noderestriction/admission.go @@ -20,6 +20,7 @@ import ( "fmt" "io" + apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apiserver/pkg/admission" @@ -242,18 +243,44 @@ func (c *nodePlugin) admitPodEviction(nodeName string, a admission.Attributes) e func (c *nodePlugin) admitNode(nodeName string, a admission.Attributes) error { requestedName := a.GetName() - - // On create, get name from new object if unset in admission - if len(requestedName) == 0 && a.GetOperation() == admission.Create { + if a.GetOperation() == admission.Create { node, ok := a.GetObject().(*api.Node) if !ok { return admission.NewForbidden(a, fmt.Errorf("unexpected type %T", a.GetObject())) } - requestedName = node.Name - } + // Don't allow a node to create its Node API object with the config source set. + // We scope node access to things listed in the Node.Spec, so allowing this would allow a view escalation. + if node.Spec.ConfigSource != nil { + return admission.NewForbidden(a, fmt.Errorf("cannot create with non-nil configSource")) + } + + // On create, get name from new object if unset in admission + if len(requestedName) == 0 { + requestedName = node.Name + } + } if requestedName != nodeName { return admission.NewForbidden(a, fmt.Errorf("node %q cannot modify node %q", nodeName, requestedName)) } + + if a.GetOperation() == admission.Update { + node, ok := a.GetObject().(*api.Node) + if !ok { + return admission.NewForbidden(a, fmt.Errorf("unexpected type %T", a.GetObject())) + } + oldNode, ok := a.GetOldObject().(*api.Node) + if !ok { + return admission.NewForbidden(a, fmt.Errorf("unexpected type %T", a.GetObject())) + } + + // Don't allow a node to update the config source on its Node API object. + // We scope node access to things listed in the Node.Spec, so allowing this would allow a view escalation. + // We only do the check if the new node's configSource is non-nil; old kubelets might drop the field during a status update. + if node.Spec.ConfigSource != nil && !apiequality.Semantic.DeepEqual(node.Spec.ConfigSource, oldNode.Spec.ConfigSource) { + return admission.NewForbidden(a, fmt.Errorf("cannot update configSource to a new non-nil configSource")) + } + } + return nil } diff --git a/plugin/pkg/admission/noderestriction/admission_test.go b/plugin/pkg/admission/noderestriction/admission_test.go index 25f263cf972..7c109b2d3f0 100644 --- a/plugin/pkg/admission/noderestriction/admission_test.go +++ b/plugin/pkg/admission/noderestriction/admission_test.go @@ -53,7 +53,12 @@ func Test_nodePlugin_Admit(t *testing.T) { mynode = &user.DefaultInfo{Name: "system:node:mynode", Groups: []string{"system:nodes"}} bob = &user.DefaultInfo{Name: "bob"} - mynodeObj = &api.Node{ObjectMeta: metav1.ObjectMeta{Name: "mynode"}} + mynodeObjMeta = metav1.ObjectMeta{Name: "mynode"} + mynodeObj = &api.Node{ObjectMeta: mynodeObjMeta} + mynodeObjConfigA = &api.Node{ObjectMeta: mynodeObjMeta, Spec: api.NodeSpec{ConfigSource: &api.NodeConfigSource{ + ConfigMapRef: &api.ObjectReference{Name: "foo", Namespace: "bar", UID: "fooUID"}}}} + mynodeObjConfigB = &api.Node{ObjectMeta: mynodeObjMeta, Spec: api.NodeSpec{ConfigSource: &api.NodeConfigSource{ + ConfigMapRef: &api.ObjectReference{Name: "qux", Namespace: "bar", UID: "quxUID"}}}} othernodeObj = &api.Node{ObjectMeta: metav1.ObjectMeta{Name: "othernode"}} mymirrorpod = makeTestPod("ns", "mymirrorpod", "mynode", true) @@ -586,6 +591,36 @@ func Test_nodePlugin_Admit(t *testing.T) { attributes: admission.NewAttributesRecord(mynodeObj, mynodeObj, nodeKind, mynodeObj.Namespace, mynodeObj.Name, nodeResource, "status", admission.Update, mynode), err: "", }, + { + name: "forbid create of my node with non-nil configSource", + podsGetter: noExistingPods, + attributes: admission.NewAttributesRecord(mynodeObjConfigA, nil, nodeKind, mynodeObj.Namespace, mynodeObj.Name, nodeResource, "", admission.Create, mynode), + err: "create with non-nil configSource", + }, + { + name: "forbid update of my node: nil configSource to new non-nil configSource", + podsGetter: existingPods, + attributes: admission.NewAttributesRecord(mynodeObjConfigA, mynodeObj, nodeKind, mynodeObj.Namespace, mynodeObj.Name, nodeResource, "", admission.Update, mynode), + err: "update configSource to a new non-nil configSource", + }, + { + name: "forbid update of my node: non-nil configSource to new non-nil configSource", + podsGetter: existingPods, + attributes: admission.NewAttributesRecord(mynodeObjConfigB, mynodeObjConfigA, nodeKind, mynodeObj.Namespace, mynodeObj.Name, nodeResource, "", admission.Update, mynode), + err: "update configSource to a new non-nil configSource", + }, + { + name: "allow update of my node: non-nil configSource unchanged", + podsGetter: existingPods, + attributes: admission.NewAttributesRecord(mynodeObjConfigA, mynodeObjConfigA, nodeKind, mynodeObj.Namespace, mynodeObj.Name, nodeResource, "", admission.Update, mynode), + err: "", + }, + { + name: "allow update of my node: non-nil configSource to nil configSource", + podsGetter: existingPods, + attributes: admission.NewAttributesRecord(mynodeObj, mynodeObjConfigA, nodeKind, mynodeObj.Namespace, mynodeObj.Name, nodeResource, "", admission.Update, mynode), + err: "", + }, // Other node object { diff --git a/staging/src/k8s.io/api/core/v1/register.go b/staging/src/k8s.io/api/core/v1/register.go index 73252bb14c0..4916ee3c23c 100644 --- a/staging/src/k8s.io/api/core/v1/register.go +++ b/staging/src/k8s.io/api/core/v1/register.go @@ -59,6 +59,7 @@ func addKnownTypes(scheme *runtime.Scheme) error { &Endpoints{}, &EndpointsList{}, &Node{}, + &NodeConfigSource{}, &NodeList{}, &NodeProxyOptions{}, &Binding{}, diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index c2c574e3446..e6b41dabbef 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -3332,6 +3332,18 @@ type NodeSpec struct { // If specified, the node's taints. // +optional Taints []Taint `json:"taints,omitempty" protobuf:"bytes,5,opt,name=taints"` + // If specified, the source to get node configuration from + // The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field + // +optional + ConfigSource *NodeConfigSource `json:"configSource,omitempty" protobuf:"bytes,6,opt,name=configSource"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. +type NodeConfigSource struct { + metav1.TypeMeta `json:",inline"` + ConfigMapRef *ObjectReference `json:"configMapRef,omitempty" protobuf:"bytes,1,opt,name=configMapRef"` } // DaemonEndpoint contains information about a single Daemon endpoint. diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go index b9a8fd02d5f..7049c9a33ba 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/conversion.go @@ -39,6 +39,9 @@ func AddConversionFuncs(scheme *runtime.Scheme) error { Convert_unversioned_Time_To_unversioned_Time, + Convert_Pointer_v1_Duration_To_v1_Duration, + Convert_v1_Duration_To_Pointer_v1_Duration, + Convert_Slice_string_To_unversioned_Time, Convert_resource_Quantity_To_resource_Quantity, @@ -181,6 +184,21 @@ func Convert_unversioned_Time_To_unversioned_Time(in *Time, out *Time, s convers return nil } +func Convert_Pointer_v1_Duration_To_v1_Duration(in **Duration, out *Duration, s conversion.Scope) error { + if *in == nil { + *out = Duration{} // zero duration + return nil + } + *out = **in // copy + return nil +} + +func Convert_v1_Duration_To_Pointer_v1_Duration(in *Duration, out **Duration, s conversion.Scope) error { + temp := *in //copy + *out = &temp + return nil +} + // Convert_Slice_string_To_unversioned_Time allows converting a URL query parameter value func Convert_Slice_string_To_unversioned_Time(input *[]string, out *Time, s conversion.Scope) error { str := "" diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/registry.go b/staging/src/k8s.io/sample-apiserver/pkg/registry/registry.go index 08eb0576261..32da2eda903 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/registry.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/registry.go @@ -33,7 +33,7 @@ type REST struct { // a wrapper for wardle registries. func RESTInPeace(storage rest.StandardStorage, err error) rest.StandardStorage { if err != nil { - err = fmt.Errorf("Unable to create REST storage for a resource due to %v. Committing suicide.", err) + err = fmt.Errorf("unable to create REST storage for a resource due to %v, will die", err) panic(err) } return storage diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 519b3e30b31..18841759ef4 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -54,6 +54,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/test/e2e_node/dynamic_kubelet_configuration_test.go b/test/e2e_node/dynamic_kubelet_configuration_test.go index 1b2bf6977f5..b02273d2708 100644 --- a/test/e2e_node/dynamic_kubelet_configuration_test.go +++ b/test/e2e_node/dynamic_kubelet_configuration_test.go @@ -30,7 +30,7 @@ import ( var _ = framework.KubeDescribe("DynamicKubeletConfiguration [Feature:DynamicKubeletConfig] [Serial] [Disruptive]", func() { f := framework.NewDefaultFramework("dynamic-kubelet-configuration-test") - Context("When a configmap called `kubelet-{node-name}` is added to the `kube-system` namespace", func() { + Context("When the config source on a Node is updated to point to new config", func() { It("The Kubelet on that node should restart to take up the new config", func() { // Get the current KubeletConfiguration (known to be valid) by // querying the configz endpoint for the current node. diff --git a/test/e2e_node/services/BUILD b/test/e2e_node/services/BUILD index 4b50ae8efdf..88c183e1570 100644 --- a/test/e2e_node/services/BUILD +++ b/test/e2e_node/services/BUILD @@ -25,6 +25,7 @@ go_library( "//cmd/kube-apiserver/app/options:go_default_library", "//pkg/api:go_default_library", "//pkg/controller/namespace:go_default_library", + "//pkg/features:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e_node/builder:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver:go_default_library", diff --git a/test/e2e_node/services/kubelet.go b/test/e2e_node/services/kubelet.go index e8e8795eb54..9cbc9d5ba1c 100644 --- a/test/e2e_node/services/kubelet.go +++ b/test/e2e_node/services/kubelet.go @@ -28,6 +28,8 @@ import ( "github.com/golang/glog" + utilfeature "k8s.io/apiserver/pkg/util/feature" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e_node/builder" ) @@ -93,6 +95,9 @@ const ( func (e *E2EServices) startKubelet() (*server, error) { glog.Info("Starting kubelet") + // set feature gates so we can check which features are enabled and pass the appropriate flags + utilfeature.DefaultFeatureGate.Set(framework.TestContext.FeatureGates) + // Build kubeconfig kubeconfigPath, err := createKubeconfigCWD() if err != nil { @@ -164,6 +169,16 @@ func (e *E2EServices) startKubelet() (*server, error) { "--eviction-minimum-reclaim", "nodefs.available=5%,nodefs.inodesFree=5%", // The minimum reclaimed resources after eviction. "--v", LOG_VERBOSITY_LEVEL, "--logtostderr", ) + + if utilfeature.DefaultFeatureGate.Enabled(features.DynamicKubeletConfig) { + // Enable dynamic config if the feature gate is enabled + dynamicConfigDir, err := getDynamicConfigDir() + if err != nil { + return nil, err + } + cmdArgs = append(cmdArgs, "--dynamic-config-dir", dynamicConfigDir) + } + // Enable kubenet by default. cniBinDir, err := getCNIBinDirectory() if err != nil { @@ -294,6 +309,15 @@ func getCNIConfDirectory() (string, error) { return filepath.Join(cwd, "cni", "net.d"), nil } +// getDynamicConfigDir returns the directory for dynamic Kubelet configuration +func getDynamicConfigDir() (string, error) { + cwd, err := os.Getwd() + if err != nil { + return "", err + } + return filepath.Join(cwd, "dynamic-kubelet-config"), nil +} + // adjustArgsForSystemd escape special characters in kubelet arguments for systemd. Systemd // may try to do auto expansion without escaping. func adjustArgsForSystemd(args []string) { diff --git a/test/e2e_node/util.go b/test/e2e_node/util.go index 1d5ac3683d2..ea5a5b8b887 100644 --- a/test/e2e_node/util.go +++ b/test/e2e_node/util.go @@ -29,8 +29,9 @@ import ( "github.com/golang/glog" "k8s.io/api/core/v1" - k8serr "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/client-go/kubernetes/scheme" "k8s.io/kubernetes/pkg/api" @@ -128,20 +129,16 @@ func isKubeletConfigEnabled(f *framework.Framework) (bool, error) { return strings.Contains(cfgz.FeatureGates, "DynamicKubeletConfig=true"), nil } -// Queries the API server for a Kubelet configuration for the node described by framework.TestContext.NodeName -func getCurrentKubeletConfigMap(f *framework.Framework) (*v1.ConfigMap, error) { - return f.ClientSet.Core().ConfigMaps("kube-system").Get(fmt.Sprintf("kubelet-%s", framework.TestContext.NodeName), metav1.GetOptions{}) -} - // Creates or updates the configmap for KubeletConfiguration, waits for the Kubelet to restart -// with the new configuration. Returns an error if the configuration after waiting 40 seconds +// with the new configuration. Returns an error if the configuration after waiting for restartGap // doesn't match what you attempted to set, or if the dynamic configuration feature is disabled. func setKubeletConfiguration(f *framework.Framework, kubeCfg *componentconfig.KubeletConfiguration) error { const ( - restartGap = 30 * time.Second + restartGap = 40 * time.Second + pollInterval = 5 * time.Second ) - // Make sure Dynamic Kubelet Configuration feature is enabled on the Kubelet we are about to reconfigure + // make sure Dynamic Kubelet Configuration feature is enabled on the Kubelet we are about to reconfigure configEnabled, err := isKubeletConfigEnabled(f) if err != nil { return fmt.Errorf("could not determine whether 'DynamicKubeletConfig' feature is enabled, err: %v", err) @@ -152,37 +149,47 @@ func setKubeletConfiguration(f *framework.Framework, kubeCfg *componentconfig.Ku "For `make test-e2e-node`, you can set `TEST_ARGS='--feature-gates=DynamicKubeletConfig=true'`.") } - // Check whether a configmap for KubeletConfiguration already exists - _, err = getCurrentKubeletConfigMap(f) + nodeclient := f.ClientSet.CoreV1().Nodes() - if k8serr.IsNotFound(err) { - _, err := createConfigMap(f, kubeCfg) - if err != nil { - return err - } - } else if err != nil { - return err - } else { - // The configmap exists, update it instead of creating it. - _, err := updateConfigMap(f, kubeCfg) - if err != nil { - return err - } - } - - // Wait for the Kubelet to restart. - time.Sleep(restartGap) - - // Retrieve the new config and compare it to the one we attempted to set - newKubeCfg, err := getCurrentKubeletConfig() + // create the ConfigMap with the new configuration + cm, err := createConfigMap(f, kubeCfg) if err != nil { return err } - // Return an error if the desired config is not in use by now - if !reflect.DeepEqual(*kubeCfg, *newKubeCfg) { - return fmt.Errorf("either the Kubelet did not restart or it did not present the modified configuration via /configz after restarting.") + // create the correct reference object + src := &v1.NodeConfigSource{ + ConfigMapRef: &v1.ObjectReference{ + Namespace: "kube-system", + Name: cm.Name, + UID: cm.UID, + }, } + + // serialize the new node config source + raw, err := json.Marshal(src) + framework.ExpectNoError(err) + data := []byte(fmt.Sprintf(`{"spec":{"configSource":%s}}`, raw)) + + // patch the node + _, err = nodeclient.Patch(framework.TestContext.NodeName, + types.StrategicMergePatchType, + data) + framework.ExpectNoError(err) + + // poll for new config, for a maximum wait of restartGap + Eventually(func() error { + newKubeCfg, err := getCurrentKubeletConfig() + if err != nil { + return fmt.Errorf("failed trying to get current Kubelet config, will retry, error: %v", err) + } + if !reflect.DeepEqual(*kubeCfg, *newKubeCfg) { + return fmt.Errorf("still waiting for new configuration to take effect, will continue to watch /configz") + } + glog.Infof("new configuration has taken effect") + return nil + }, restartGap, pollInterval).Should(BeNil()) + return nil } @@ -239,28 +246,9 @@ func decodeConfigz(resp *http.Response) (*componentconfig.KubeletConfiguration, return &kubeCfg, nil } -// Constructs a Kubelet ConfigMap targeting the current node running the node e2e tests -func makeKubeletConfigMap(nodeName string, kubeCfg *componentconfig.KubeletConfiguration) *v1.ConfigMap { - kubeCfgExt := v1alpha1.KubeletConfiguration{} - api.Scheme.Convert(kubeCfg, &kubeCfgExt, nil) - - bytes, err := json.Marshal(kubeCfgExt) - framework.ExpectNoError(err) - - cmap := &v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{ - Name: fmt.Sprintf("kubelet-%s", nodeName), - }, - Data: map[string]string{ - "kubelet.config": string(bytes), - }, - } - return cmap -} - -// Uses KubeletConfiguration to create a `kubelet-` ConfigMap in the "kube-system" namespace. -func createConfigMap(f *framework.Framework, kubeCfg *componentconfig.KubeletConfiguration) (*v1.ConfigMap, error) { - cmap := makeKubeletConfigMap(framework.TestContext.NodeName, kubeCfg) +// creates a configmap containing kubeCfg in kube-system namespace +func createConfigMap(f *framework.Framework, internalKC *componentconfig.KubeletConfiguration) (*v1.ConfigMap, error) { + cmap := makeKubeletConfigMap(internalKC) cmap, err := f.ClientSet.Core().ConfigMaps("kube-system").Create(cmap) if err != nil { return nil, err @@ -268,14 +256,25 @@ func createConfigMap(f *framework.Framework, kubeCfg *componentconfig.KubeletCon return cmap, nil } -// Similar to createConfigMap, except this updates an existing ConfigMap. -func updateConfigMap(f *framework.Framework, kubeCfg *componentconfig.KubeletConfiguration) (*v1.ConfigMap, error) { - cmap := makeKubeletConfigMap(framework.TestContext.NodeName, kubeCfg) - cmap, err := f.ClientSet.Core().ConfigMaps("kube-system").Update(cmap) - if err != nil { - return nil, err +// constructs a ConfigMap, populating one of its keys with the KubeletConfiguration. Uses GenerateName. +func makeKubeletConfigMap(internalKC *componentconfig.KubeletConfiguration) *v1.ConfigMap { + externalKC := &v1alpha1.KubeletConfiguration{} + api.Scheme.Convert(internalKC, externalKC, nil) + + encoder, err := newJSONEncoder(componentconfig.GroupName) + framework.ExpectNoError(err) + + data, err := runtime.Encode(encoder, externalKC) + framework.ExpectNoError(err) + + cmap := &v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{GenerateName: "testcfg"}, + Data: map[string]string{ + "kubelet": string(data), + }, } - return cmap, nil + + return cmap } func logPodEvents(f *framework.Framework) { @@ -309,3 +308,20 @@ func logKubeletMetrics(metricKeys ...string) { framework.Logf("Kubelet Metrics: %+v", framework.GetKubeletMetrics(metric, metricSet)) } } + +func newJSONEncoder(groupName string) (runtime.Encoder, error) { + // encode to json + mediaType := "application/json" + info, ok := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), mediaType) + if !ok { + return nil, fmt.Errorf("unsupported media type %q", mediaType) + } + + versions := api.Registry.EnabledVersionsForGroup(groupName) + if len(versions) == 0 { + return nil, fmt.Errorf("no enabled versions for group %q", groupName) + } + + // the "best" version supposedly comes first in the list returned from api.Registry.EnabledVersionsForGroup + return api.Codecs.EncoderForVersion(info.Serializer, versions[0]), nil +} diff --git a/test/integration/etcd/etcd_storage_path_test.go b/test/integration/etcd/etcd_storage_path_test.go index 8ccfa5bdc62..1ca4cd4f961 100644 --- a/test/integration/etcd/etcd_storage_path_test.go +++ b/test/integration/etcd/etcd_storage_path_test.go @@ -348,6 +348,7 @@ var ephemeralWhiteList = createEphemeralWhiteList( gvr("", "v1", "rangeallocations"), // stored in various places in etcd but cannot be directly created gvr("", "v1", "componentstatuses"), // status info not stored in etcd gvr("", "v1", "serializedreferences"), // used for serilization, not stored in etcd + gvr("", "v1", "nodeconfigsources"), // subfield of node.spec, but shouldn't be directly created gvr("", "v1", "podstatusresults"), // wrapper object not stored in etcd // -- From 6f0bd47fd8b45ba617c3ce4fc6ef28f9554dfe36 Mon Sep 17 00:00:00 2001 From: Michael Taufen Date: Sun, 9 Jul 2017 19:57:39 -0700 Subject: [PATCH 111/183] additional generated files --- api/openapi-spec/swagger.json | 27 ++++ api/swagger-spec/v1.json | 21 +++ docs/api-reference/v1/definitions.html | 140 +++++++++++++----- .../core/v1/types_swagger_doc_generated.go | 9 ++ 4 files changed, 156 insertions(+), 41 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 02b632f57de..50720900696 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -55689,6 +55689,29 @@ } } }, + "io.k8s.api.core.v1.NodeConfigSource": { + "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "configMapRef": { + "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "", + "kind": "NodeConfigSource", + "version": "v1" + } + ] + }, "io.k8s.api.core.v1.NodeDaemonEndpoints": { "description": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", "properties": { @@ -55791,6 +55814,10 @@ "io.k8s.api.core.v1.NodeSpec": { "description": "NodeSpec describes the attributes that a node is created with.", "properties": { + "configSource": { + "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field", + "$ref": "#/definitions/io.k8s.api.core.v1.NodeConfigSource" + }, "externalID": { "description": "External ID of the node assigned by some machine database (e.g. a cloud provider). Deprecated.", "type": "string" diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index b7ee59b203d..823626f51e5 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -18318,6 +18318,10 @@ "$ref": "v1.Taint" }, "description": "If specified, the node's taints." + }, + "configSource": { + "$ref": "v1.NodeConfigSource", + "description": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field" } } }, @@ -18347,6 +18351,23 @@ } } }, + "v1.NodeConfigSource": { + "id": "v1.NodeConfigSource", + "description": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "configMapRef": { + "$ref": "v1.ObjectReference" + } + } + }, "v1.NodeStatus": { "id": "v1.NodeStatus", "description": "NodeStatus is information about the current status of a node.", diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html index 9f1866413d2..8fc6cf75a70 100755 --- a/docs/api-reference/v1/definitions.html +++ b/docs/api-reference/v1/definitions.html @@ -403,6 +403,9 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

      v1.Node

    • +

      v1.NodeConfigSource

      +
    • +
    • v1.NodeList

    • @@ -3187,6 +3190,47 @@ When an object is created, the system will populate this list with the current s +
    +
    +

    v1.PersistentVolumeClaimVolumeSource

    +
    +

    PersistentVolumeClaimVolumeSource references the user’s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    claimName

    ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

    true

    string

    readOnly

    Will force the ReadOnly setting in VolumeMounts. Default false.

    false

    boolean

    false

    +

    v1.NodeAddress

    @@ -3372,47 +3416,6 @@ When an object is created, the system will populate this list with the current s -
    -
    -

    v1.PersistentVolumeClaimVolumeSource

    -
    -

    PersistentVolumeClaimVolumeSource references the user’s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).

    -
    - ------- - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameDescriptionRequiredSchemaDefault

    claimName

    ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

    true

    string

    readOnly

    Will force the ReadOnly setting in VolumeMounts. Default false.

    false

    boolean

    false

    -

    v1.ResourceQuotaList

    @@ -9785,6 +9788,54 @@ Examples:

    v1.AzureDataDiskKind

    +
    +
    +

    v1.NodeConfigSource

    +
    +

    NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    configMapRef

    false

    v1.ObjectReference

    +

    v1.ConfigMapKeySelector

    @@ -10155,6 +10206,13 @@ Examples:

    v1.Taint array

    + +

    configSource

    +

    If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field

    +

    false

    +

    v1.NodeConfigSource

    + + diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index 365825019ef..bde3a23dc8c 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -899,6 +899,14 @@ func (NodeCondition) SwaggerDoc() map[string]string { return map_NodeCondition } +var map_NodeConfigSource = map[string]string{ + "": "NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.", +} + +func (NodeConfigSource) SwaggerDoc() map[string]string { + return map_NodeConfigSource +} + var map_NodeDaemonEndpoints = map[string]string{ "": "NodeDaemonEndpoints lists ports opened by daemons running on the Node.", "kubeletEndpoint": "Endpoint on which Kubelet is listening.", @@ -972,6 +980,7 @@ var map_NodeSpec = map[string]string{ "providerID": "ID of the node assigned by the cloud provider in the format: ://", "unschedulable": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", "taints": "If specified, the node's taints.", + "configSource": "If specified, the source to get node configuration from The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field", } func (NodeSpec) SwaggerDoc() map[string]string { From 378544362cd4fb1b35a940c400ce7c31d9ad1b76 Mon Sep 17 00:00:00 2001 From: Michael Taufen Date: Tue, 1 Aug 2017 10:46:39 -0700 Subject: [PATCH 112/183] core generated files --- pkg/api/v1/zz_generated.conversion.go | 24 + pkg/api/zz_generated.deepcopy.go | 48 + .../v1alpha1/zz_generated.conversion.go | 20 +- .../v1alpha1/zz_generated.deepcopy.go | 23 +- .../componentconfig/zz_generated.deepcopy.go | 1 + .../src/k8s.io/api/core/v1/generated.pb.go | 2653 +++++++++-------- .../src/k8s.io/api/core/v1/generated.proto | 10 + .../src/k8s.io/api/core/v1/types.generated.go | 471 ++- .../api/core/v1/zz_generated.deepcopy.go | 48 + 9 files changed, 1996 insertions(+), 1302 deletions(-) diff --git a/pkg/api/v1/zz_generated.conversion.go b/pkg/api/v1/zz_generated.conversion.go index 3ba66d60ac6..540d0a4e79f 100644 --- a/pkg/api/v1/zz_generated.conversion.go +++ b/pkg/api/v1/zz_generated.conversion.go @@ -194,6 +194,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_api_NodeAffinity_To_v1_NodeAffinity, Convert_v1_NodeCondition_To_api_NodeCondition, Convert_api_NodeCondition_To_v1_NodeCondition, + Convert_v1_NodeConfigSource_To_api_NodeConfigSource, + Convert_api_NodeConfigSource_To_v1_NodeConfigSource, Convert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints, Convert_api_NodeDaemonEndpoints_To_v1_NodeDaemonEndpoints, Convert_v1_NodeList_To_api_NodeList, @@ -2439,6 +2441,26 @@ func Convert_api_NodeCondition_To_v1_NodeCondition(in *api.NodeCondition, out *v return autoConvert_api_NodeCondition_To_v1_NodeCondition(in, out, s) } +func autoConvert_v1_NodeConfigSource_To_api_NodeConfigSource(in *v1.NodeConfigSource, out *api.NodeConfigSource, s conversion.Scope) error { + out.ConfigMapRef = (*api.ObjectReference)(unsafe.Pointer(in.ConfigMapRef)) + return nil +} + +// Convert_v1_NodeConfigSource_To_api_NodeConfigSource is an autogenerated conversion function. +func Convert_v1_NodeConfigSource_To_api_NodeConfigSource(in *v1.NodeConfigSource, out *api.NodeConfigSource, s conversion.Scope) error { + return autoConvert_v1_NodeConfigSource_To_api_NodeConfigSource(in, out, s) +} + +func autoConvert_api_NodeConfigSource_To_v1_NodeConfigSource(in *api.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error { + out.ConfigMapRef = (*v1.ObjectReference)(unsafe.Pointer(in.ConfigMapRef)) + return nil +} + +// Convert_api_NodeConfigSource_To_v1_NodeConfigSource is an autogenerated conversion function. +func Convert_api_NodeConfigSource_To_v1_NodeConfigSource(in *api.NodeConfigSource, out *v1.NodeConfigSource, s conversion.Scope) error { + return autoConvert_api_NodeConfigSource_To_v1_NodeConfigSource(in, out, s) +} + func autoConvert_v1_NodeDaemonEndpoints_To_api_NodeDaemonEndpoints(in *v1.NodeDaemonEndpoints, out *api.NodeDaemonEndpoints, s conversion.Scope) error { if err := Convert_v1_DaemonEndpoint_To_api_DaemonEndpoint(&in.KubeletEndpoint, &out.KubeletEndpoint, s); err != nil { return err @@ -2607,6 +2629,7 @@ func autoConvert_v1_NodeSpec_To_api_NodeSpec(in *v1.NodeSpec, out *api.NodeSpec, out.ProviderID = in.ProviderID out.Unschedulable = in.Unschedulable out.Taints = *(*[]api.Taint)(unsafe.Pointer(&in.Taints)) + out.ConfigSource = (*api.NodeConfigSource)(unsafe.Pointer(in.ConfigSource)) return nil } @@ -2621,6 +2644,7 @@ func autoConvert_api_NodeSpec_To_v1_NodeSpec(in *api.NodeSpec, out *v1.NodeSpec, out.ProviderID = in.ProviderID out.Unschedulable = in.Unschedulable out.Taints = *(*[]v1.Taint)(unsafe.Pointer(&in.Taints)) + out.ConfigSource = (*v1.NodeConfigSource)(unsafe.Pointer(in.ConfigSource)) return nil } diff --git a/pkg/api/zz_generated.deepcopy.go b/pkg/api/zz_generated.deepcopy.go index 1463f72fdeb..115f4f933ea 100644 --- a/pkg/api/zz_generated.deepcopy.go +++ b/pkg/api/zz_generated.deepcopy.go @@ -350,6 +350,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*NodeCondition).DeepCopyInto(out.(*NodeCondition)) return nil }, InType: reflect.TypeOf(&NodeCondition{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*NodeConfigSource).DeepCopyInto(out.(*NodeConfigSource)) + return nil + }, InType: reflect.TypeOf(&NodeConfigSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*NodeDaemonEndpoints).DeepCopyInto(out.(*NodeDaemonEndpoints)) return nil @@ -2895,6 +2899,41 @@ func (in *NodeCondition) DeepCopy() *NodeCondition { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeConfigSource) DeepCopyInto(out *NodeConfigSource) { + *out = *in + out.TypeMeta = in.TypeMeta + if in.ConfigMapRef != nil { + in, out := &in.ConfigMapRef, &out.ConfigMapRef + if *in == nil { + *out = nil + } else { + *out = new(ObjectReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigSource. +func (in *NodeConfigSource) DeepCopy() *NodeConfigSource { + if in == nil { + return nil + } + out := new(NodeConfigSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeConfigSource) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeDaemonEndpoints) DeepCopyInto(out *NodeDaemonEndpoints) { *out = *in @@ -3072,6 +3111,15 @@ func (in *NodeSpec) DeepCopyInto(out *NodeSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ConfigSource != nil { + in, out := &in.ConfigSource, &out.ConfigSource + if *in == nil { + *out = nil + } else { + *out = new(NodeConfigSource) + (*in).DeepCopyInto(*out) + } + } return } diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go index f5ee97915d8..c83d572d5ee 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.conversion.go @@ -360,6 +360,12 @@ func Convert_componentconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorizati } func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfiguration(in *KubeletConfiguration, out *componentconfig.KubeletConfiguration, s conversion.Scope) error { + if err := v1.Convert_Pointer_v1_Duration_To_v1_Duration(&in.ConfigTrialDuration, &out.ConfigTrialDuration, s); err != nil { + return err + } + if err := v1.Convert_Pointer_int32_To_int32(&in.CrashLoopThreshold, &out.CrashLoopThreshold, s); err != nil { + return err + } out.PodManifestPath = in.PodManifestPath out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency @@ -374,14 +380,12 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu out.ReadOnlyPort = in.ReadOnlyPort out.TLSCertFile = in.TLSCertFile out.TLSPrivateKeyFile = in.TLSPrivateKeyFile - out.CertDirectory = in.CertDirectory if err := Convert_v1alpha1_KubeletAuthentication_To_componentconfig_KubeletAuthentication(&in.Authentication, &out.Authentication, s); err != nil { return err } if err := Convert_v1alpha1_KubeletAuthorization_To_componentconfig_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil { return err } - out.RootDirectory = in.RootDirectory out.SeccompProfileRoot = in.SeccompProfileRoot if err := v1.Convert_Pointer_bool_To_bool(&in.AllowPrivileged, &out.AllowPrivileged, s); err != nil { return err @@ -431,8 +435,6 @@ func autoConvert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigu } out.VolumeStatsAggPeriod = in.VolumeStatsAggPeriod out.VolumePluginDir = in.VolumePluginDir - out.CloudProvider = in.CloudProvider - out.CloudConfigFile = in.CloudConfigFile out.KubeletCgroups = in.KubeletCgroups out.RuntimeCgroups = in.RuntimeCgroups out.SystemCgroups = in.SystemCgroups @@ -522,6 +524,12 @@ func Convert_v1alpha1_KubeletConfiguration_To_componentconfig_KubeletConfigurati } func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfiguration(in *componentconfig.KubeletConfiguration, out *KubeletConfiguration, s conversion.Scope) error { + if err := v1.Convert_v1_Duration_To_Pointer_v1_Duration(&in.ConfigTrialDuration, &out.ConfigTrialDuration, s); err != nil { + return err + } + if err := v1.Convert_int32_To_Pointer_int32(&in.CrashLoopThreshold, &out.CrashLoopThreshold, s); err != nil { + return err + } out.PodManifestPath = in.PodManifestPath out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency @@ -536,14 +544,12 @@ func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigu out.ReadOnlyPort = in.ReadOnlyPort out.TLSCertFile = in.TLSCertFile out.TLSPrivateKeyFile = in.TLSPrivateKeyFile - out.CertDirectory = in.CertDirectory if err := Convert_componentconfig_KubeletAuthentication_To_v1alpha1_KubeletAuthentication(&in.Authentication, &out.Authentication, s); err != nil { return err } if err := Convert_componentconfig_KubeletAuthorization_To_v1alpha1_KubeletAuthorization(&in.Authorization, &out.Authorization, s); err != nil { return err } - out.RootDirectory = in.RootDirectory out.SeccompProfileRoot = in.SeccompProfileRoot if err := v1.Convert_bool_To_Pointer_bool(&in.AllowPrivileged, &out.AllowPrivileged, s); err != nil { return err @@ -609,8 +615,6 @@ func autoConvert_componentconfig_KubeletConfiguration_To_v1alpha1_KubeletConfigu } out.VolumeStatsAggPeriod = in.VolumeStatsAggPeriod out.VolumePluginDir = in.VolumePluginDir - out.CloudProvider = in.CloudProvider - out.CloudConfigFile = in.CloudConfigFile out.KubeletCgroups = in.KubeletCgroups if err := v1.Convert_bool_To_Pointer_bool(&in.CgroupsPerQOS, &out.CgroupsPerQOS, s); err != nil { return err diff --git a/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go index ddb972745f7..37773f758e7 100644 --- a/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/componentconfig/v1alpha1/zz_generated.deepcopy.go @@ -21,7 +21,8 @@ limitations under the License. package v1alpha1 import ( - v1 "k8s.io/api/core/v1" + core_v1 "k8s.io/api/core/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" reflect "reflect" @@ -294,6 +295,24 @@ func (in *KubeletAuthorization) DeepCopy() *KubeletAuthorization { func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { *out = *in out.TypeMeta = in.TypeMeta + if in.ConfigTrialDuration != nil { + in, out := &in.ConfigTrialDuration, &out.ConfigTrialDuration + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } + if in.CrashLoopThreshold != nil { + in, out := &in.CrashLoopThreshold, &out.CrashLoopThreshold + if *in == nil { + *out = nil + } else { + *out = new(int32) + **out = **in + } + } out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency out.HTTPCheckFrequency = in.HTTPCheckFrequency @@ -471,7 +490,7 @@ func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { } if in.RegisterWithTaints != nil { in, out := &in.RegisterWithTaints, &out.RegisterWithTaints - *out = make([]v1.Taint, len(*in)) + *out = make([]core_v1.Taint, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } diff --git a/pkg/apis/componentconfig/zz_generated.deepcopy.go b/pkg/apis/componentconfig/zz_generated.deepcopy.go index 8455e792502..5537f1a3570 100644 --- a/pkg/apis/componentconfig/zz_generated.deepcopy.go +++ b/pkg/apis/componentconfig/zz_generated.deepcopy.go @@ -397,6 +397,7 @@ func (in *KubeletAuthorization) DeepCopy() *KubeletAuthorization { func (in *KubeletConfiguration) DeepCopyInto(out *KubeletConfiguration) { *out = *in out.TypeMeta = in.TypeMeta + out.ConfigTrialDuration = in.ConfigTrialDuration out.SyncFrequency = in.SyncFrequency out.FileCheckFrequency = in.FileCheckFrequency out.HTTPCheckFrequency = in.HTTPCheckFrequency diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index acbc4c2ccd4..862017b4032 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -103,6 +103,7 @@ limitations under the License. NodeAddress NodeAffinity NodeCondition + NodeConfigSource NodeDaemonEndpoints NodeList NodeProxyOptions @@ -547,406 +548,410 @@ func (m *NodeCondition) Reset() { *m = NodeCondition{} } func (*NodeCondition) ProtoMessage() {} func (*NodeCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{77} } +func (m *NodeConfigSource) Reset() { *m = NodeConfigSource{} } +func (*NodeConfigSource) ProtoMessage() {} +func (*NodeConfigSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } + func (m *NodeDaemonEndpoints) Reset() { *m = NodeDaemonEndpoints{} } func (*NodeDaemonEndpoints) ProtoMessage() {} -func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } +func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } func (m *NodeList) Reset() { *m = NodeList{} } func (*NodeList) ProtoMessage() {} -func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } +func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } func (m *NodeProxyOptions) Reset() { *m = NodeProxyOptions{} } func (*NodeProxyOptions) ProtoMessage() {} -func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } +func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } func (m *NodeResources) Reset() { *m = NodeResources{} } func (*NodeResources) ProtoMessage() {} -func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } +func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } func (m *NodeSelector) Reset() { *m = NodeSelector{} } func (*NodeSelector) ProtoMessage() {} -func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } +func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{83} } func (m *NodeSelectorRequirement) Reset() { *m = NodeSelectorRequirement{} } func (*NodeSelectorRequirement) ProtoMessage() {} func (*NodeSelectorRequirement) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{83} + return fileDescriptorGenerated, []int{84} } func (m *NodeSelectorTerm) Reset() { *m = NodeSelectorTerm{} } func (*NodeSelectorTerm) ProtoMessage() {} -func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{84} } +func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{85} } func (m *NodeSpec) Reset() { *m = NodeSpec{} } func (*NodeSpec) ProtoMessage() {} -func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{85} } +func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } func (m *NodeStatus) Reset() { *m = NodeStatus{} } func (*NodeStatus) ProtoMessage() {} -func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } +func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } func (m *NodeSystemInfo) Reset() { *m = NodeSystemInfo{} } func (*NodeSystemInfo) ProtoMessage() {} -func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } +func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } func (m *ObjectFieldSelector) Reset() { *m = ObjectFieldSelector{} } func (*ObjectFieldSelector) ProtoMessage() {} -func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } +func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{89} } func (m *ObjectMeta) Reset() { *m = ObjectMeta{} } func (*ObjectMeta) ProtoMessage() {} -func (*ObjectMeta) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{89} } +func (*ObjectMeta) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{90} } func (m *ObjectReference) Reset() { *m = ObjectReference{} } func (*ObjectReference) ProtoMessage() {} -func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{90} } +func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{91} } func (m *PersistentVolume) Reset() { *m = PersistentVolume{} } func (*PersistentVolume) ProtoMessage() {} -func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{91} } +func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } func (m *PersistentVolumeClaim) Reset() { *m = PersistentVolumeClaim{} } func (*PersistentVolumeClaim) ProtoMessage() {} -func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } +func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{93} } func (m *PersistentVolumeClaimList) Reset() { *m = PersistentVolumeClaimList{} } func (*PersistentVolumeClaimList) ProtoMessage() {} func (*PersistentVolumeClaimList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{93} + return fileDescriptorGenerated, []int{94} } func (m *PersistentVolumeClaimSpec) Reset() { *m = PersistentVolumeClaimSpec{} } func (*PersistentVolumeClaimSpec) ProtoMessage() {} func (*PersistentVolumeClaimSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{94} + return fileDescriptorGenerated, []int{95} } func (m *PersistentVolumeClaimStatus) Reset() { *m = PersistentVolumeClaimStatus{} } func (*PersistentVolumeClaimStatus) ProtoMessage() {} func (*PersistentVolumeClaimStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{95} + return fileDescriptorGenerated, []int{96} } func (m *PersistentVolumeClaimVolumeSource) Reset() { *m = PersistentVolumeClaimVolumeSource{} } func (*PersistentVolumeClaimVolumeSource) ProtoMessage() {} func (*PersistentVolumeClaimVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{96} + return fileDescriptorGenerated, []int{97} } func (m *PersistentVolumeList) Reset() { *m = PersistentVolumeList{} } func (*PersistentVolumeList) ProtoMessage() {} -func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{97} } +func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{98} } func (m *PersistentVolumeSource) Reset() { *m = PersistentVolumeSource{} } func (*PersistentVolumeSource) ProtoMessage() {} -func (*PersistentVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{98} } +func (*PersistentVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{99} } func (m *PersistentVolumeSpec) Reset() { *m = PersistentVolumeSpec{} } func (*PersistentVolumeSpec) ProtoMessage() {} -func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{99} } +func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{100} } func (m *PersistentVolumeStatus) Reset() { *m = PersistentVolumeStatus{} } func (*PersistentVolumeStatus) ProtoMessage() {} func (*PersistentVolumeStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{100} + return fileDescriptorGenerated, []int{101} } func (m *PhotonPersistentDiskVolumeSource) Reset() { *m = PhotonPersistentDiskVolumeSource{} } func (*PhotonPersistentDiskVolumeSource) ProtoMessage() {} func (*PhotonPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{101} + return fileDescriptorGenerated, []int{102} } func (m *Pod) Reset() { *m = Pod{} } func (*Pod) ProtoMessage() {} -func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{102} } +func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{103} } func (m *PodAffinity) Reset() { *m = PodAffinity{} } func (*PodAffinity) ProtoMessage() {} -func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{103} } +func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{104} } func (m *PodAffinityTerm) Reset() { *m = PodAffinityTerm{} } func (*PodAffinityTerm) ProtoMessage() {} -func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{104} } +func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{105} } func (m *PodAntiAffinity) Reset() { *m = PodAntiAffinity{} } func (*PodAntiAffinity) ProtoMessage() {} -func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{105} } +func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{106} } func (m *PodAttachOptions) Reset() { *m = PodAttachOptions{} } func (*PodAttachOptions) ProtoMessage() {} -func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{106} } +func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{107} } func (m *PodCondition) Reset() { *m = PodCondition{} } func (*PodCondition) ProtoMessage() {} -func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{107} } +func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{108} } func (m *PodExecOptions) Reset() { *m = PodExecOptions{} } func (*PodExecOptions) ProtoMessage() {} -func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{108} } +func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{109} } func (m *PodList) Reset() { *m = PodList{} } func (*PodList) ProtoMessage() {} -func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{109} } +func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{110} } func (m *PodLogOptions) Reset() { *m = PodLogOptions{} } func (*PodLogOptions) ProtoMessage() {} -func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{110} } +func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{111} } func (m *PodPortForwardOptions) Reset() { *m = PodPortForwardOptions{} } func (*PodPortForwardOptions) ProtoMessage() {} -func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{111} } +func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } func (m *PodProxyOptions) Reset() { *m = PodProxyOptions{} } func (*PodProxyOptions) ProtoMessage() {} -func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } +func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } func (m *PodSecurityContext) Reset() { *m = PodSecurityContext{} } func (*PodSecurityContext) ProtoMessage() {} -func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } +func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } func (m *PodSignature) Reset() { *m = PodSignature{} } func (*PodSignature) ProtoMessage() {} -func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } +func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } func (m *PodSpec) Reset() { *m = PodSpec{} } func (*PodSpec) ProtoMessage() {} -func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } +func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } func (m *PodStatus) Reset() { *m = PodStatus{} } func (*PodStatus) ProtoMessage() {} -func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } +func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } func (m *PodStatusResult) Reset() { *m = PodStatusResult{} } func (*PodStatusResult) ProtoMessage() {} -func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } +func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } func (m *PodTemplate) Reset() { *m = PodTemplate{} } func (*PodTemplate) ProtoMessage() {} -func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } +func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } func (m *PodTemplateList) Reset() { *m = PodTemplateList{} } func (*PodTemplateList) ProtoMessage() {} -func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } +func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } func (m *PodTemplateSpec) Reset() { *m = PodTemplateSpec{} } func (*PodTemplateSpec) ProtoMessage() {} -func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } +func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } func (m *PortworxVolumeSource) Reset() { *m = PortworxVolumeSource{} } func (*PortworxVolumeSource) ProtoMessage() {} -func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } +func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } func (m *Preconditions) Reset() { *m = Preconditions{} } func (*Preconditions) ProtoMessage() {} -func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } +func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } func (m *PreferAvoidPodsEntry) Reset() { *m = PreferAvoidPodsEntry{} } func (*PreferAvoidPodsEntry) ProtoMessage() {} -func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } +func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{124} } func (m *PreferredSchedulingTerm) Reset() { *m = PreferredSchedulingTerm{} } func (*PreferredSchedulingTerm) ProtoMessage() {} func (*PreferredSchedulingTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{124} + return fileDescriptorGenerated, []int{125} } func (m *Probe) Reset() { *m = Probe{} } func (*Probe) ProtoMessage() {} -func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{125} } +func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{126} } func (m *ProjectedVolumeSource) Reset() { *m = ProjectedVolumeSource{} } func (*ProjectedVolumeSource) ProtoMessage() {} -func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{126} } +func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSource{} } func (*QuobyteVolumeSource) ProtoMessage() {} -func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } +func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} -func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } +func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } +func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} -func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } +func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{131} } func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{131} + return fileDescriptorGenerated, []int{132} } func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{132} + return fileDescriptorGenerated, []int{133} } func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{133} + return fileDescriptorGenerated, []int{134} } func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{134} + return fileDescriptorGenerated, []int{135} } func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} -func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{135} } +func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} -func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } +func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{137} } func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} -func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{137} } +func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{138} } func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} -func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{138} } +func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{139} } func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} -func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{139} } +func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} -func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } +func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} -func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } +func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} -func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } +func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} -func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } +func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} -func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } +func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} -func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } +func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} -func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } +func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} -func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } +func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} -func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } +func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} -func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } +func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} -func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } +func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } +func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} -func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } +func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} -func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } +func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} -func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } +func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} -func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } +func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} -func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } +func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} -func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } +func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{159} + return fileDescriptorGenerated, []int{160} } func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} -func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } +func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} -func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } +func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} -func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } +func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} -func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } +func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} -func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } +func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} -func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } +func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{169} + return fileDescriptorGenerated, []int{170} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{170} + return fileDescriptorGenerated, []int{171} } func init() { @@ -1028,6 +1033,7 @@ func init() { proto.RegisterType((*NodeAddress)(nil), "k8s.io.api.core.v1.NodeAddress") proto.RegisterType((*NodeAffinity)(nil), "k8s.io.api.core.v1.NodeAffinity") proto.RegisterType((*NodeCondition)(nil), "k8s.io.api.core.v1.NodeCondition") + proto.RegisterType((*NodeConfigSource)(nil), "k8s.io.api.core.v1.NodeConfigSource") proto.RegisterType((*NodeDaemonEndpoints)(nil), "k8s.io.api.core.v1.NodeDaemonEndpoints") proto.RegisterType((*NodeList)(nil), "k8s.io.api.core.v1.NodeList") proto.RegisterType((*NodeProxyOptions)(nil), "k8s.io.api.core.v1.NodeProxyOptions") @@ -4485,6 +4491,34 @@ func (m *NodeCondition) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *NodeConfigSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NodeConfigSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if m.ConfigMapRef != nil { + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMapRef.Size())) + n75, err := m.ConfigMapRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n75 + } + return i, nil +} + func (m *NodeDaemonEndpoints) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -4503,11 +4537,11 @@ func (m *NodeDaemonEndpoints) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.KubeletEndpoint.Size())) - n75, err := m.KubeletEndpoint.MarshalTo(dAtA[i:]) + n76, err := m.KubeletEndpoint.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n75 + i += n76 return i, nil } @@ -4529,11 +4563,11 @@ func (m *NodeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n76, err := m.ListMeta.MarshalTo(dAtA[i:]) + n77, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n76 + i += n77 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -4610,11 +4644,11 @@ func (m *NodeResources) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n77, err := (&v).MarshalTo(dAtA[i:]) + n78, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n77 + i += n78 } } return i, nil @@ -4768,6 +4802,16 @@ func (m *NodeSpec) MarshalTo(dAtA []byte) (int, error) { i += n } } + if m.ConfigSource != nil { + dAtA[i] = 0x32 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigSource.Size())) + n79, err := m.ConfigSource.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n79 + } return i, nil } @@ -4810,11 +4854,11 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n78, err := (&v).MarshalTo(dAtA[i:]) + n80, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n78 + i += n80 } } if len(m.Allocatable) > 0 { @@ -4841,11 +4885,11 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n79, err := (&v).MarshalTo(dAtA[i:]) + n81, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n79 + i += n81 } } dAtA[i] = 0x1a @@ -4879,19 +4923,19 @@ func (m *NodeStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x32 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DaemonEndpoints.Size())) - n80, err := m.DaemonEndpoints.MarshalTo(dAtA[i:]) + n82, err := m.DaemonEndpoints.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n80 + i += n82 dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodeInfo.Size())) - n81, err := m.NodeInfo.MarshalTo(dAtA[i:]) + n83, err := m.NodeInfo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n81 + i += n83 if len(m.Images) > 0 { for _, msg := range m.Images { dAtA[i] = 0x42 @@ -5063,20 +5107,20 @@ func (m *ObjectMeta) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x42 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.CreationTimestamp.Size())) - n82, err := m.CreationTimestamp.MarshalTo(dAtA[i:]) + n84, err := m.CreationTimestamp.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n82 + i += n84 if m.DeletionTimestamp != nil { dAtA[i] = 0x4a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DeletionTimestamp.Size())) - n83, err := m.DeletionTimestamp.MarshalTo(dAtA[i:]) + n85, err := m.DeletionTimestamp.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n83 + i += n85 } if m.DeletionGracePeriodSeconds != nil { dAtA[i] = 0x50 @@ -5164,11 +5208,11 @@ func (m *ObjectMeta) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Initializers.Size())) - n84, err := m.Initializers.MarshalTo(dAtA[i:]) + n86, err := m.Initializers.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n84 + i += n86 } return i, nil } @@ -5237,27 +5281,27 @@ func (m *PersistentVolume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n85, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n85 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n86, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n86 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n87, err := m.Status.MarshalTo(dAtA[i:]) + n87, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n87 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n88, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n88 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n89, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n89 return i, nil } @@ -5279,27 +5323,27 @@ func (m *PersistentVolumeClaim) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n88, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n88 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n89, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n89 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n90, err := m.Status.MarshalTo(dAtA[i:]) + n90, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n90 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n91, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n91 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n92, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n92 return i, nil } @@ -5321,11 +5365,11 @@ func (m *PersistentVolumeClaimList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n91, err := m.ListMeta.MarshalTo(dAtA[i:]) + n93, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n91 + i += n93 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -5374,11 +5418,11 @@ func (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Resources.Size())) - n92, err := m.Resources.MarshalTo(dAtA[i:]) + n94, err := m.Resources.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n92 + i += n94 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeName))) @@ -5387,11 +5431,11 @@ func (m *PersistentVolumeClaimSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Selector.Size())) - n93, err := m.Selector.MarshalTo(dAtA[i:]) + n95, err := m.Selector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n93 + i += n95 } if m.StorageClassName != nil { dAtA[i] = 0x2a @@ -5460,11 +5504,11 @@ func (m *PersistentVolumeClaimStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n94, err := (&v).MarshalTo(dAtA[i:]) + n96, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n94 + i += n96 } } return i, nil @@ -5518,11 +5562,11 @@ func (m *PersistentVolumeList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n95, err := m.ListMeta.MarshalTo(dAtA[i:]) + n97, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n95 + i += n97 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -5557,163 +5601,163 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n96, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n96 - } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n97, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n97 - } - if m.HostPath != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n98, err := m.HostPath.MarshalTo(dAtA[i:]) + n98, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n98 } - if m.Glusterfs != nil { - dAtA[i] = 0x22 + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n99, err := m.Glusterfs.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n99, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n99 } - if m.NFS != nil { - dAtA[i] = 0x2a + if m.HostPath != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n100, err := m.NFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) + n100, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n100 } - if m.RBD != nil { - dAtA[i] = 0x32 + if m.Glusterfs != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n101, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n101, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n101 } - if m.ISCSI != nil { - dAtA[i] = 0x3a + if m.NFS != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n102, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n102, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n102 } - if m.Cinder != nil { - dAtA[i] = 0x42 + if m.RBD != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n103, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n103, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n103 } - if m.CephFS != nil { - dAtA[i] = 0x4a + if m.ISCSI != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n104, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n104, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n104 } - if m.FC != nil { - dAtA[i] = 0x52 + if m.Cinder != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n105, err := m.FC.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n105, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n105 } - if m.Flocker != nil { - dAtA[i] = 0x5a + if m.CephFS != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n106, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n106, err := m.CephFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n106 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.FC != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n107, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) + n107, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n107 } - if m.AzureFile != nil { - dAtA[i] = 0x6a + if m.Flocker != nil { + dAtA[i] = 0x5a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n108, err := m.AzureFile.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n108, err := m.Flocker.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n108 } - if m.VsphereVolume != nil { - dAtA[i] = 0x72 + if m.FlexVolume != nil { + dAtA[i] = 0x62 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n109, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n109, err := m.FlexVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n109 } - if m.Quobyte != nil { - dAtA[i] = 0x7a + if m.AzureFile != nil { + dAtA[i] = 0x6a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n110, err := m.Quobyte.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) + n110, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n110 } + if m.VsphereVolume != nil { + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) + n111, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n111 + } + if m.Quobyte != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) + n112, err := m.Quobyte.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n112 + } if m.AzureDisk != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n111, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n113, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n111 + i += n113 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0x8a @@ -5721,11 +5765,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n112, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n114, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n112 + i += n114 } if m.PortworxVolume != nil { dAtA[i] = 0x92 @@ -5733,11 +5777,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n113, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n115, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n113 + i += n115 } if m.ScaleIO != nil { dAtA[i] = 0x9a @@ -5745,11 +5789,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n114, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n116, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n114 + i += n116 } if m.Local != nil { dAtA[i] = 0xa2 @@ -5757,11 +5801,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Local.Size())) - n115, err := m.Local.MarshalTo(dAtA[i:]) + n117, err := m.Local.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n115 + i += n117 } if m.StorageOS != nil { dAtA[i] = 0xaa @@ -5769,11 +5813,11 @@ func (m *PersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n116, err := m.StorageOS.MarshalTo(dAtA[i:]) + n118, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n116 + i += n118 } return i, nil } @@ -5817,21 +5861,21 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n117, err := (&v).MarshalTo(dAtA[i:]) + n119, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n117 + i += n119 } } dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeSource.Size())) - n118, err := m.PersistentVolumeSource.MarshalTo(dAtA[i:]) + n120, err := m.PersistentVolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n118 + i += n120 if len(m.AccessModes) > 0 { for _, s := range m.AccessModes { dAtA[i] = 0x1a @@ -5851,11 +5895,11 @@ func (m *PersistentVolumeSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ClaimRef.Size())) - n119, err := m.ClaimRef.MarshalTo(dAtA[i:]) + n121, err := m.ClaimRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n119 + i += n121 } dAtA[i] = 0x2a i++ @@ -5942,27 +5986,27 @@ func (m *Pod) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n120, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n120 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n121, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n121 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n122, err := m.Status.MarshalTo(dAtA[i:]) + n122, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n122 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n123, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n123 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n124, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n124 return i, nil } @@ -6027,11 +6071,11 @@ func (m *PodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LabelSelector.Size())) - n123, err := m.LabelSelector.MarshalTo(dAtA[i:]) + n125, err := m.LabelSelector.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n123 + i += n125 } if len(m.Namespaces) > 0 { for _, s := range m.Namespaces { @@ -6177,19 +6221,19 @@ func (m *PodCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastProbeTime.Size())) - n124, err := m.LastProbeTime.MarshalTo(dAtA[i:]) + n126, err := m.LastProbeTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n124 + i += n126 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n125, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n127, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n125 + i += n127 dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -6288,11 +6332,11 @@ func (m *PodList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n126, err := m.ListMeta.MarshalTo(dAtA[i:]) + n128, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n126 + i += n128 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -6352,11 +6396,11 @@ func (m *PodLogOptions) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SinceTime.Size())) - n127, err := m.SinceTime.MarshalTo(dAtA[i:]) + n129, err := m.SinceTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n127 + i += n129 } dAtA[i] = 0x30 i++ @@ -6445,11 +6489,11 @@ func (m *PodSecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n128, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n130, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n128 + i += n130 } if m.RunAsUser != nil { dAtA[i] = 0x10 @@ -6500,11 +6544,11 @@ func (m *PodSignature) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodController.Size())) - n129, err := m.PodController.MarshalTo(dAtA[i:]) + n131, err := m.PodController.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n129 + i += n131 } return i, nil } @@ -6628,11 +6672,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x72 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecurityContext.Size())) - n130, err := m.SecurityContext.MarshalTo(dAtA[i:]) + n132, err := m.SecurityContext.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n130 + i += n132 } if len(m.ImagePullSecrets) > 0 { for _, msg := range m.ImagePullSecrets { @@ -6664,11 +6708,11 @@ func (m *PodSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Affinity.Size())) - n131, err := m.Affinity.MarshalTo(dAtA[i:]) + n133, err := m.Affinity.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n131 + i += n133 } dAtA[i] = 0x9a i++ @@ -6797,11 +6841,11 @@ func (m *PodStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StartTime.Size())) - n132, err := m.StartTime.MarshalTo(dAtA[i:]) + n134, err := m.StartTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n132 + i += n134 } if len(m.ContainerStatuses) > 0 { for _, msg := range m.ContainerStatuses { @@ -6852,19 +6896,19 @@ func (m *PodStatusResult) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n133, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n135, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n133 + i += n135 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n134, err := m.Status.MarshalTo(dAtA[i:]) + n136, err := m.Status.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n134 + i += n136 return i, nil } @@ -6886,19 +6930,19 @@ func (m *PodTemplate) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n135, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n137, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n135 + i += n137 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n136, err := m.Template.MarshalTo(dAtA[i:]) + n138, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n136 + i += n138 return i, nil } @@ -6920,11 +6964,11 @@ func (m *PodTemplateList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n137, err := m.ListMeta.MarshalTo(dAtA[i:]) + n139, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n137 + i += n139 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -6958,19 +7002,19 @@ func (m *PodTemplateSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n138, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n140, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n138 + i += n140 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n139, err := m.Spec.MarshalTo(dAtA[i:]) + n141, err := m.Spec.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n139 + i += n141 return i, nil } @@ -7050,19 +7094,19 @@ func (m *PreferAvoidPodsEntry) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodSignature.Size())) - n140, err := m.PodSignature.MarshalTo(dAtA[i:]) + n142, err := m.PodSignature.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n140 + i += n142 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.EvictionTime.Size())) - n141, err := m.EvictionTime.MarshalTo(dAtA[i:]) + n143, err := m.EvictionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n141 + i += n143 dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7095,11 +7139,11 @@ func (m *PreferredSchedulingTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Preference.Size())) - n142, err := m.Preference.MarshalTo(dAtA[i:]) + n144, err := m.Preference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n142 + i += n144 return i, nil } @@ -7121,11 +7165,11 @@ func (m *Probe) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Handler.Size())) - n143, err := m.Handler.MarshalTo(dAtA[i:]) + n145, err := m.Handler.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n143 + i += n145 dAtA[i] = 0x10 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.InitialDelaySeconds)) @@ -7275,11 +7319,11 @@ func (m *RBDVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x3a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n144, err := m.SecretRef.MarshalTo(dAtA[i:]) + n146, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n144 + i += n146 } dAtA[i] = 0x40 i++ @@ -7310,11 +7354,11 @@ func (m *RangeAllocation) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n145, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n147, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n145 + i += n147 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Range))) @@ -7346,27 +7390,27 @@ func (m *ReplicationController) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n146, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n146 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n147, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n147 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n148, err := m.Status.MarshalTo(dAtA[i:]) + n148, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n148 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n149, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n149 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n150, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n150 return i, nil } @@ -7396,11 +7440,11 @@ func (m *ReplicationControllerCondition) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LastTransitionTime.Size())) - n149, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) + n151, err := m.LastTransitionTime.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n149 + i += n151 dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) @@ -7430,11 +7474,11 @@ func (m *ReplicationControllerList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n150, err := m.ListMeta.MarshalTo(dAtA[i:]) + n152, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n150 + i += n152 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7496,11 +7540,11 @@ func (m *ReplicationControllerSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Template.Size())) - n151, err := m.Template.MarshalTo(dAtA[i:]) + n153, err := m.Template.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n151 + i += n153 } dAtA[i] = 0x20 i++ @@ -7579,11 +7623,11 @@ func (m *ResourceFieldSelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Divisor.Size())) - n152, err := m.Divisor.MarshalTo(dAtA[i:]) + n154, err := m.Divisor.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n152 + i += n154 return i, nil } @@ -7605,27 +7649,27 @@ func (m *ResourceQuota) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n153, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n153 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n154, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n154 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n155, err := m.Status.MarshalTo(dAtA[i:]) + n155, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n155 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n156, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n156 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n157, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n157 return i, nil } @@ -7647,11 +7691,11 @@ func (m *ResourceQuotaList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n156, err := m.ListMeta.MarshalTo(dAtA[i:]) + n158, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n156 + i += n158 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -7706,11 +7750,11 @@ func (m *ResourceQuotaSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n157, err := (&v).MarshalTo(dAtA[i:]) + n159, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n157 + i += n159 } } if len(m.Scopes) > 0 { @@ -7770,11 +7814,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n158, err := (&v).MarshalTo(dAtA[i:]) + n160, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n158 + i += n160 } } if len(m.Used) > 0 { @@ -7801,11 +7845,11 @@ func (m *ResourceQuotaStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n159, err := (&v).MarshalTo(dAtA[i:]) + n161, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n159 + i += n161 } } return i, nil @@ -7850,11 +7894,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n160, err := (&v).MarshalTo(dAtA[i:]) + n162, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n160 + i += n162 } } if len(m.Requests) > 0 { @@ -7881,11 +7925,11 @@ func (m *ResourceRequirements) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64((&v).Size())) - n161, err := (&v).MarshalTo(dAtA[i:]) + n163, err := (&v).MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n161 + i += n163 } } return i, nil @@ -7952,11 +7996,11 @@ func (m *ScaleIOVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n162, err := m.SecretRef.MarshalTo(dAtA[i:]) + n164, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n162 + i += n164 } dAtA[i] = 0x20 i++ @@ -8015,11 +8059,11 @@ func (m *Secret) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n163, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n165, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n163 + i += n165 if len(m.Data) > 0 { keysForData := make([]string, 0, len(m.Data)) for k := range m.Data { @@ -8095,11 +8139,11 @@ func (m *SecretEnvSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n164, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n166, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n164 + i += n166 if m.Optional != nil { dAtA[i] = 0x10 i++ @@ -8131,11 +8175,11 @@ func (m *SecretKeySelector) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n165, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n167, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n165 + i += n167 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) @@ -8171,11 +8215,11 @@ func (m *SecretList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n166, err := m.ListMeta.MarshalTo(dAtA[i:]) + n168, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n166 + i += n168 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8209,11 +8253,11 @@ func (m *SecretProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LocalObjectReference.Size())) - n167, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) + n169, err := m.LocalObjectReference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n167 + i += n169 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8307,11 +8351,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Capabilities.Size())) - n168, err := m.Capabilities.MarshalTo(dAtA[i:]) + n170, err := m.Capabilities.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n168 + i += n170 } if m.Privileged != nil { dAtA[i] = 0x10 @@ -8327,11 +8371,11 @@ func (m *SecurityContext) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SELinuxOptions.Size())) - n169, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) + n171, err := m.SELinuxOptions.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n169 + i += n171 } if m.RunAsUser != nil { dAtA[i] = 0x20 @@ -8389,11 +8433,11 @@ func (m *SerializedReference) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Reference.Size())) - n170, err := m.Reference.MarshalTo(dAtA[i:]) + n172, err := m.Reference.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n170 + i += n172 return i, nil } @@ -8415,27 +8459,27 @@ func (m *Service) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n171, err := m.ObjectMeta.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n171 - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) - n172, err := m.Spec.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n172 - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) - n173, err := m.Status.MarshalTo(dAtA[i:]) + n173, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n173 + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Spec.Size())) + n174, err := m.Spec.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n174 + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Status.Size())) + n175, err := m.Status.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n175 return i, nil } @@ -8457,11 +8501,11 @@ func (m *ServiceAccount) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) - n174, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + n176, err := m.ObjectMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n174 + i += n176 if len(m.Secrets) > 0 { for _, msg := range m.Secrets { dAtA[i] = 0x12 @@ -8517,11 +8561,11 @@ func (m *ServiceAccountList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n175, err := m.ListMeta.MarshalTo(dAtA[i:]) + n177, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n175 + i += n177 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8555,11 +8599,11 @@ func (m *ServiceList) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) - n176, err := m.ListMeta.MarshalTo(dAtA[i:]) + n178, err := m.ListMeta.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n176 + i += n178 if len(m.Items) > 0 { for _, msg := range m.Items { dAtA[i] = 0x12 @@ -8604,11 +8648,11 @@ func (m *ServicePort) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TargetPort.Size())) - n177, err := m.TargetPort.MarshalTo(dAtA[i:]) + n179, err := m.TargetPort.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n177 + i += n179 dAtA[i] = 0x28 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.NodePort)) @@ -8764,11 +8808,11 @@ func (m *ServiceStatus) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.LoadBalancer.Size())) - n178, err := m.LoadBalancer.MarshalTo(dAtA[i:]) + n180, err := m.LoadBalancer.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n178 + i += n180 return i, nil } @@ -8811,11 +8855,11 @@ func (m *StorageOSPersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n179, err := m.SecretRef.MarshalTo(dAtA[i:]) + n181, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n179 + i += n181 } return i, nil } @@ -8859,11 +8903,11 @@ func (m *StorageOSVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x2a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.SecretRef.Size())) - n180, err := m.SecretRef.MarshalTo(dAtA[i:]) + n182, err := m.SecretRef.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n180 + i += n182 } return i, nil } @@ -8912,11 +8956,11 @@ func (m *TCPSocketAction) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Port.Size())) - n181, err := m.Port.MarshalTo(dAtA[i:]) + n183, err := m.Port.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n181 + i += n183 dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.Host))) @@ -8954,11 +8998,11 @@ func (m *Taint) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x22 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.TimeAdded.Size())) - n182, err := m.TimeAdded.MarshalTo(dAtA[i:]) + n184, err := m.TimeAdded.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n182 + i += n184 return i, nil } @@ -9023,11 +9067,11 @@ func (m *Volume) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VolumeSource.Size())) - n183, err := m.VolumeSource.MarshalTo(dAtA[i:]) + n185, err := m.VolumeSource.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n183 + i += n185 return i, nil } @@ -9088,31 +9132,31 @@ func (m *VolumeProjection) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n184, err := m.Secret.MarshalTo(dAtA[i:]) + n186, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n184 + i += n186 } if m.DownwardAPI != nil { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n185, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n187, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n185 + i += n187 } if m.ConfigMap != nil { dAtA[i] = 0x1a i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n186, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n188, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n186 + i += n188 } return i, nil } @@ -9136,163 +9180,163 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0xa i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HostPath.Size())) - n187, err := m.HostPath.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n187 - } - if m.EmptyDir != nil { - dAtA[i] = 0x12 - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) - n188, err := m.EmptyDir.MarshalTo(dAtA[i:]) - if err != nil { - return 0, err - } - i += n188 - } - if m.GCEPersistentDisk != nil { - dAtA[i] = 0x1a - i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) - n189, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) + n189, err := m.HostPath.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n189 } - if m.AWSElasticBlockStore != nil { - dAtA[i] = 0x22 + if m.EmptyDir != nil { + dAtA[i] = 0x12 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) - n190, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.EmptyDir.Size())) + n190, err := m.EmptyDir.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n190 } - if m.GitRepo != nil { - dAtA[i] = 0x2a + if m.GCEPersistentDisk != nil { + dAtA[i] = 0x1a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) - n191, err := m.GitRepo.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GCEPersistentDisk.Size())) + n191, err := m.GCEPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n191 } - if m.Secret != nil { - dAtA[i] = 0x32 + if m.AWSElasticBlockStore != nil { + dAtA[i] = 0x22 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) - n192, err := m.Secret.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.AWSElasticBlockStore.Size())) + n192, err := m.AWSElasticBlockStore.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n192 } - if m.NFS != nil { - dAtA[i] = 0x3a + if m.GitRepo != nil { + dAtA[i] = 0x2a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) - n193, err := m.NFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.GitRepo.Size())) + n193, err := m.GitRepo.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n193 } - if m.ISCSI != nil { - dAtA[i] = 0x42 + if m.Secret != nil { + dAtA[i] = 0x32 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) - n194, err := m.ISCSI.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Secret.Size())) + n194, err := m.Secret.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n194 } - if m.Glusterfs != nil { - dAtA[i] = 0x4a + if m.NFS != nil { + dAtA[i] = 0x3a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) - n195, err := m.Glusterfs.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.NFS.Size())) + n195, err := m.NFS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n195 } - if m.PersistentVolumeClaim != nil { - dAtA[i] = 0x52 + if m.ISCSI != nil { + dAtA[i] = 0x42 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) - n196, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.ISCSI.Size())) + n196, err := m.ISCSI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n196 } - if m.RBD != nil { - dAtA[i] = 0x5a + if m.Glusterfs != nil { + dAtA[i] = 0x4a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) - n197, err := m.RBD.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Glusterfs.Size())) + n197, err := m.Glusterfs.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n197 } - if m.FlexVolume != nil { - dAtA[i] = 0x62 + if m.PersistentVolumeClaim != nil { + dAtA[i] = 0x52 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) - n198, err := m.FlexVolume.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.PersistentVolumeClaim.Size())) + n198, err := m.PersistentVolumeClaim.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n198 } - if m.Cinder != nil { - dAtA[i] = 0x6a + if m.RBD != nil { + dAtA[i] = 0x5a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) - n199, err := m.Cinder.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.RBD.Size())) + n199, err := m.RBD.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n199 } - if m.CephFS != nil { - dAtA[i] = 0x72 + if m.FlexVolume != nil { + dAtA[i] = 0x62 i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) - n200, err := m.CephFS.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.FlexVolume.Size())) + n200, err := m.FlexVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n200 } - if m.Flocker != nil { - dAtA[i] = 0x7a + if m.Cinder != nil { + dAtA[i] = 0x6a i++ - i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) - n201, err := m.Flocker.MarshalTo(dAtA[i:]) + i = encodeVarintGenerated(dAtA, i, uint64(m.Cinder.Size())) + n201, err := m.Cinder.MarshalTo(dAtA[i:]) if err != nil { return 0, err } i += n201 } + if m.CephFS != nil { + dAtA[i] = 0x72 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.CephFS.Size())) + n202, err := m.CephFS.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n202 + } + if m.Flocker != nil { + dAtA[i] = 0x7a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.Flocker.Size())) + n203, err := m.Flocker.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n203 + } if m.DownwardAPI != nil { dAtA[i] = 0x82 i++ dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.DownwardAPI.Size())) - n202, err := m.DownwardAPI.MarshalTo(dAtA[i:]) + n204, err := m.DownwardAPI.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n202 + i += n204 } if m.FC != nil { dAtA[i] = 0x8a @@ -9300,11 +9344,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.FC.Size())) - n203, err := m.FC.MarshalTo(dAtA[i:]) + n205, err := m.FC.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n203 + i += n205 } if m.AzureFile != nil { dAtA[i] = 0x92 @@ -9312,11 +9356,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureFile.Size())) - n204, err := m.AzureFile.MarshalTo(dAtA[i:]) + n206, err := m.AzureFile.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n204 + i += n206 } if m.ConfigMap != nil { dAtA[i] = 0x9a @@ -9324,11 +9368,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ConfigMap.Size())) - n205, err := m.ConfigMap.MarshalTo(dAtA[i:]) + n207, err := m.ConfigMap.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n205 + i += n207 } if m.VsphereVolume != nil { dAtA[i] = 0xa2 @@ -9336,11 +9380,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.VsphereVolume.Size())) - n206, err := m.VsphereVolume.MarshalTo(dAtA[i:]) + n208, err := m.VsphereVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n206 + i += n208 } if m.Quobyte != nil { dAtA[i] = 0xaa @@ -9348,11 +9392,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Quobyte.Size())) - n207, err := m.Quobyte.MarshalTo(dAtA[i:]) + n209, err := m.Quobyte.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n207 + i += n209 } if m.AzureDisk != nil { dAtA[i] = 0xb2 @@ -9360,11 +9404,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.AzureDisk.Size())) - n208, err := m.AzureDisk.MarshalTo(dAtA[i:]) + n210, err := m.AzureDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n208 + i += n210 } if m.PhotonPersistentDisk != nil { dAtA[i] = 0xba @@ -9372,11 +9416,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PhotonPersistentDisk.Size())) - n209, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) + n211, err := m.PhotonPersistentDisk.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n209 + i += n211 } if m.PortworxVolume != nil { dAtA[i] = 0xc2 @@ -9384,11 +9428,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PortworxVolume.Size())) - n210, err := m.PortworxVolume.MarshalTo(dAtA[i:]) + n212, err := m.PortworxVolume.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n210 + i += n212 } if m.ScaleIO != nil { dAtA[i] = 0xca @@ -9396,11 +9440,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.ScaleIO.Size())) - n211, err := m.ScaleIO.MarshalTo(dAtA[i:]) + n213, err := m.ScaleIO.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n211 + i += n213 } if m.Projected != nil { dAtA[i] = 0xd2 @@ -9408,11 +9452,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.Projected.Size())) - n212, err := m.Projected.MarshalTo(dAtA[i:]) + n214, err := m.Projected.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n212 + i += n214 } if m.StorageOS != nil { dAtA[i] = 0xda @@ -9420,11 +9464,11 @@ func (m *VolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x1 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.StorageOS.Size())) - n213, err := m.StorageOS.MarshalTo(dAtA[i:]) + n215, err := m.StorageOS.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n213 + i += n215 } return i, nil } @@ -9484,11 +9528,11 @@ func (m *WeightedPodAffinityTerm) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x12 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.PodAffinityTerm.Size())) - n214, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) + n216, err := m.PodAffinityTerm.MarshalTo(dAtA[i:]) if err != nil { return 0, err } - i += n214 + i += n216 return i, nil } @@ -10735,6 +10779,16 @@ func (m *NodeCondition) Size() (n int) { return n } +func (m *NodeConfigSource) Size() (n int) { + var l int + _ = l + if m.ConfigMapRef != nil { + l = m.ConfigMapRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *NodeDaemonEndpoints) Size() (n int) { var l int _ = l @@ -10836,6 +10890,10 @@ func (m *NodeSpec) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) } } + if m.ConfigSource != nil { + l = m.ConfigSource.Size() + n += 1 + l + sovGenerated(uint64(l)) + } return n } @@ -13584,6 +13642,16 @@ func (this *NodeCondition) String() string { }, "") return s } +func (this *NodeConfigSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&NodeConfigSource{`, + `ConfigMapRef:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMapRef), "ObjectReference", "ObjectReference", 1) + `,`, + `}`, + }, "") + return s +} func (this *NodeDaemonEndpoints) String() string { if this == nil { return "nil" @@ -13677,6 +13745,7 @@ func (this *NodeSpec) String() string { `ProviderID:` + fmt.Sprintf("%v", this.ProviderID) + `,`, `Unschedulable:` + fmt.Sprintf("%v", this.Unschedulable) + `,`, `Taints:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Taints), "Taint", "Taint", 1), `&`, ``, 1) + `,`, + `ConfigSource:` + strings.Replace(fmt.Sprintf("%v", this.ConfigSource), "NodeConfigSource", "NodeConfigSource", 1) + `,`, `}`, }, "") return s @@ -26664,6 +26733,89 @@ func (m *NodeCondition) Unmarshal(dAtA []byte) error { } return nil } +func (m *NodeConfigSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NodeConfigSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NodeConfigSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigMapRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConfigMapRef == nil { + m.ConfigMapRef = &ObjectReference{} + } + if err := m.ConfigMapRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *NodeDaemonEndpoints) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -27571,6 +27723,39 @@ func (m *NodeSpec) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigSource", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConfigSource == nil { + m.ConfigSource = &NodeConfigSource{} + } + if err := m.ConfigSource.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -44495,720 +44680,722 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 11428 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x70, 0x24, 0xd7, - 0x75, 0x98, 0x7a, 0x06, 0xaf, 0x39, 0x78, 0xdf, 0x7d, 0x70, 0x16, 0x24, 0x17, 0xcb, 0xa6, 0x44, - 0x2e, 0x5f, 0x80, 0xb8, 0x24, 0x25, 0x4a, 0xa4, 0x28, 0x01, 0x18, 0x60, 0x17, 0xdc, 0xc5, 0xee, - 0xf0, 0x0e, 0x76, 0x69, 0x51, 0x34, 0xad, 0xde, 0xe9, 0x0b, 0xa0, 0x89, 0x46, 0xf7, 0xb0, 0xbb, - 0x07, 0xbb, 0x60, 0x59, 0x55, 0x89, 0x22, 0x2b, 0x0f, 0xf9, 0xc3, 0x95, 0x72, 0x25, 0x8e, 0xa5, - 0x38, 0x55, 0x79, 0x94, 0xad, 0x28, 0x49, 0xd9, 0x91, 0xe3, 0x87, 0xe4, 0x54, 0x12, 0xe7, 0x51, - 0xd2, 0x8f, 0x63, 0x7f, 0xa4, 0xa4, 0xaa, 0x54, 0x60, 0x0b, 0xaa, 0x4a, 0x2a, 0x1f, 0x49, 0xe5, - 0xf5, 0x13, 0xc4, 0x89, 0x52, 0xf7, 0xd9, 0xf7, 0xf6, 0x74, 0xcf, 0x0c, 0x96, 0x58, 0x90, 0x52, - 0xf9, 0x6f, 0xe6, 0x9c, 0x73, 0xcf, 0xbd, 0x7d, 0x1f, 0xe7, 0x9e, 0x73, 0xee, 0xb9, 0xe7, 0xc2, - 0x4b, 0xdb, 0x2f, 0xc6, 0x73, 0x5e, 0x38, 0xbf, 0xdd, 0xbe, 0x4d, 0xa2, 0x80, 0x24, 0x24, 0x9e, - 0xdf, 0x25, 0x81, 0x1b, 0x46, 0xf3, 0x02, 0xe1, 0xb4, 0xbc, 0xf9, 0x66, 0x18, 0x91, 0xf9, 0xdd, - 0x67, 0xe7, 0x37, 0x49, 0x40, 0x22, 0x27, 0x21, 0xee, 0x5c, 0x2b, 0x0a, 0x93, 0x10, 0x21, 0x4e, - 0x33, 0xe7, 0xb4, 0xbc, 0x39, 0x4a, 0x33, 0xb7, 0xfb, 0xec, 0xcc, 0x33, 0x9b, 0x5e, 0xb2, 0xd5, - 0xbe, 0x3d, 0xd7, 0x0c, 0x77, 0xe6, 0x37, 0xc3, 0xcd, 0x70, 0x9e, 0x91, 0xde, 0x6e, 0x6f, 0xb0, - 0x7f, 0xec, 0x0f, 0xfb, 0xc5, 0x59, 0xcc, 0x3c, 0x9f, 0x56, 0xb3, 0xe3, 0x34, 0xb7, 0xbc, 0x80, - 0x44, 0x7b, 0xf3, 0xad, 0xed, 0x4d, 0x56, 0x6f, 0x44, 0xe2, 0xb0, 0x1d, 0x35, 0x49, 0xb6, 0xe2, - 0xae, 0xa5, 0xe2, 0xf9, 0x1d, 0x92, 0x38, 0x39, 0xcd, 0x9d, 0x99, 0x2f, 0x2a, 0x15, 0xb5, 0x83, - 0xc4, 0xdb, 0xe9, 0xac, 0xe6, 0x63, 0xbd, 0x0a, 0xc4, 0xcd, 0x2d, 0xb2, 0xe3, 0x74, 0x94, 0x7b, - 0xae, 0xa8, 0x5c, 0x3b, 0xf1, 0xfc, 0x79, 0x2f, 0x48, 0xe2, 0x24, 0xca, 0x16, 0xb2, 0xbf, 0x67, - 0xc1, 0x85, 0x85, 0xd7, 0x1b, 0xcb, 0xbe, 0x13, 0x27, 0x5e, 0x73, 0xd1, 0x0f, 0x9b, 0xdb, 0x8d, - 0x24, 0x8c, 0xc8, 0xad, 0xd0, 0x6f, 0xef, 0x90, 0x06, 0xeb, 0x08, 0xf4, 0x34, 0x8c, 0xec, 0xb2, - 0xff, 0xab, 0xb5, 0xaa, 0x75, 0xc1, 0xba, 0x58, 0x59, 0x9c, 0xfa, 0xce, 0xfe, 0xec, 0x87, 0x0e, - 0xf6, 0x67, 0x47, 0x6e, 0x09, 0x38, 0x56, 0x14, 0xe8, 0x31, 0x18, 0xda, 0x88, 0xd7, 0xf7, 0x5a, - 0xa4, 0x5a, 0x62, 0xb4, 0x13, 0x82, 0x76, 0x68, 0xa5, 0x41, 0xa1, 0x58, 0x60, 0xd1, 0x3c, 0x54, - 0x5a, 0x4e, 0x94, 0x78, 0x89, 0x17, 0x06, 0xd5, 0xf2, 0x05, 0xeb, 0xe2, 0xe0, 0xe2, 0xb4, 0x20, - 0xad, 0xd4, 0x25, 0x02, 0xa7, 0x34, 0xb4, 0x19, 0x11, 0x71, 0xdc, 0x1b, 0x81, 0xbf, 0x57, 0x1d, - 0xb8, 0x60, 0x5d, 0x1c, 0x49, 0x9b, 0x81, 0x05, 0x1c, 0x2b, 0x0a, 0xfb, 0x97, 0x4b, 0x30, 0xb2, - 0xb0, 0xb1, 0xe1, 0x05, 0x5e, 0xb2, 0x87, 0x6e, 0xc1, 0x58, 0x10, 0xba, 0x44, 0xfe, 0x67, 0x5f, - 0x31, 0x7a, 0xe9, 0xc2, 0x5c, 0xe7, 0x54, 0x9a, 0xbb, 0xae, 0xd1, 0x2d, 0x4e, 0x1d, 0xec, 0xcf, - 0x8e, 0xe9, 0x10, 0x6c, 0xf0, 0x41, 0x18, 0x46, 0x5b, 0xa1, 0xab, 0xd8, 0x96, 0x18, 0xdb, 0xd9, - 0x3c, 0xb6, 0xf5, 0x94, 0x6c, 0x71, 0xf2, 0x60, 0x7f, 0x76, 0x54, 0x03, 0x60, 0x9d, 0x09, 0xba, - 0x0d, 0x93, 0xf4, 0x6f, 0x90, 0x78, 0x8a, 0x6f, 0x99, 0xf1, 0x7d, 0xb4, 0x88, 0xaf, 0x46, 0xba, - 0x78, 0xea, 0x60, 0x7f, 0x76, 0x32, 0x03, 0xc4, 0x59, 0x86, 0xf6, 0xbb, 0x30, 0xb1, 0x90, 0x24, - 0x4e, 0x73, 0x8b, 0xb8, 0x7c, 0x04, 0xd1, 0xf3, 0x30, 0x10, 0x38, 0x3b, 0x44, 0x8c, 0xef, 0x05, - 0xd1, 0xb1, 0x03, 0xd7, 0x9d, 0x1d, 0x72, 0xb8, 0x3f, 0x3b, 0x75, 0x33, 0xf0, 0xde, 0x69, 0x8b, - 0x59, 0x41, 0x61, 0x98, 0x51, 0xa3, 0x4b, 0x00, 0x2e, 0xd9, 0xf5, 0x9a, 0xa4, 0xee, 0x24, 0x5b, - 0x62, 0xbc, 0x91, 0x28, 0x0b, 0x35, 0x85, 0xc1, 0x1a, 0x95, 0x7d, 0x17, 0x2a, 0x0b, 0xbb, 0xa1, - 0xe7, 0xd6, 0x43, 0x37, 0x46, 0xdb, 0x30, 0xd9, 0x8a, 0xc8, 0x06, 0x89, 0x14, 0xa8, 0x6a, 0x5d, - 0x28, 0x5f, 0x1c, 0xbd, 0x74, 0x31, 0xf7, 0x63, 0x4d, 0xd2, 0xe5, 0x20, 0x89, 0xf6, 0x16, 0x1f, - 0x10, 0xf5, 0x4d, 0x66, 0xb0, 0x38, 0xcb, 0xd9, 0xfe, 0x57, 0x25, 0x38, 0xb3, 0xf0, 0x6e, 0x3b, - 0x22, 0x35, 0x2f, 0xde, 0xce, 0xce, 0x70, 0xd7, 0x8b, 0xb7, 0xaf, 0xa7, 0x3d, 0xa0, 0xa6, 0x56, - 0x4d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc0, 0x30, 0xfd, 0x7d, 0x13, 0xaf, 0x8a, 0x4f, 0x3e, 0x25, - 0x88, 0x47, 0x6b, 0x4e, 0xe2, 0xd4, 0x38, 0x0a, 0x4b, 0x1a, 0xb4, 0x06, 0xa3, 0x4d, 0xb6, 0x20, - 0x37, 0xd7, 0x42, 0x97, 0xb0, 0xc1, 0xac, 0x2c, 0x3e, 0x45, 0xc9, 0x97, 0x52, 0xf0, 0xe1, 0xfe, - 0x6c, 0x95, 0xb7, 0x4d, 0xb0, 0xd0, 0x70, 0x58, 0x2f, 0x8f, 0x6c, 0xb5, 0xbe, 0x06, 0x18, 0x27, - 0xc8, 0x59, 0x5b, 0x17, 0xb5, 0xa5, 0x32, 0xc8, 0x96, 0xca, 0x58, 0xfe, 0x32, 0x41, 0xcf, 0xc2, - 0xc0, 0xb6, 0x17, 0xb8, 0xd5, 0x21, 0xc6, 0xeb, 0x61, 0x3a, 0xe6, 0x57, 0xbd, 0xc0, 0x3d, 0xdc, - 0x9f, 0x9d, 0x36, 0x9a, 0x43, 0x81, 0x98, 0x91, 0xda, 0x7f, 0xdf, 0x12, 0xdd, 0xb8, 0xe2, 0xf9, - 0xa6, 0xa0, 0xb8, 0x04, 0x10, 0x93, 0x66, 0x44, 0x12, 0xad, 0x23, 0xd5, 0x74, 0x68, 0x28, 0x0c, - 0xd6, 0xa8, 0xa8, 0x18, 0x88, 0xb7, 0x9c, 0x88, 0xcd, 0x2a, 0xd1, 0x9d, 0x4a, 0x0c, 0x34, 0x24, - 0x02, 0xa7, 0x34, 0x86, 0x18, 0x28, 0xf7, 0x14, 0x03, 0xbf, 0x63, 0xc1, 0xf0, 0xa2, 0x17, 0xb8, - 0x5e, 0xb0, 0x89, 0x3e, 0x0f, 0x23, 0x54, 0x4a, 0xbb, 0x4e, 0xe2, 0x08, 0x09, 0xf0, 0x51, 0x6d, - 0x96, 0x29, 0xa1, 0x39, 0xd7, 0xda, 0xde, 0xa4, 0x80, 0x78, 0x8e, 0x52, 0xd3, 0x79, 0x77, 0xe3, - 0xf6, 0xdb, 0xa4, 0x99, 0xac, 0x91, 0xc4, 0x49, 0x3f, 0x27, 0x85, 0x61, 0xc5, 0x15, 0x5d, 0x85, - 0xa1, 0xc4, 0x89, 0x36, 0x49, 0x22, 0x44, 0x41, 0xee, 0x92, 0xe5, 0x25, 0x31, 0x9d, 0x9b, 0x24, - 0x68, 0x92, 0x54, 0x40, 0xae, 0xb3, 0xa2, 0x58, 0xb0, 0xb0, 0x9b, 0x30, 0xb6, 0xe4, 0xb4, 0x9c, - 0xdb, 0x9e, 0xef, 0x25, 0x1e, 0x89, 0xd1, 0xe3, 0x50, 0x76, 0x5c, 0x97, 0xad, 0x8f, 0xca, 0xe2, - 0x99, 0x83, 0xfd, 0xd9, 0xf2, 0x82, 0x4b, 0x07, 0x0a, 0x14, 0xd5, 0x1e, 0xa6, 0x14, 0xe8, 0x49, - 0x18, 0x70, 0xa3, 0xb0, 0x55, 0x2d, 0x31, 0xca, 0xb3, 0x74, 0x4c, 0x6b, 0x51, 0xd8, 0xca, 0x90, - 0x32, 0x1a, 0xfb, 0xdb, 0x25, 0x40, 0x4b, 0xa4, 0xb5, 0xb5, 0xd2, 0x30, 0x46, 0xf2, 0x22, 0x8c, - 0xec, 0x84, 0x81, 0x97, 0x84, 0x51, 0x2c, 0x2a, 0x64, 0x13, 0x68, 0x4d, 0xc0, 0xb0, 0xc2, 0xa2, - 0x0b, 0x30, 0xd0, 0x4a, 0x17, 0xff, 0x98, 0x14, 0x1c, 0x6c, 0xd9, 0x33, 0x0c, 0xa5, 0x68, 0xc7, - 0x24, 0x12, 0x13, 0x5f, 0x51, 0xdc, 0x8c, 0x49, 0x84, 0x19, 0x26, 0x9d, 0x37, 0x74, 0x46, 0x89, - 0x69, 0x9d, 0x99, 0x37, 0x14, 0x83, 0x35, 0x2a, 0x74, 0x13, 0x2a, 0xfc, 0x1f, 0x26, 0x1b, 0x6c, - 0x8e, 0x17, 0xc8, 0x8c, 0x6b, 0x61, 0xd3, 0xf1, 0xb3, 0x5d, 0x3e, 0xce, 0x66, 0x97, 0x2c, 0x8e, - 0x53, 0x4e, 0xc6, 0xec, 0x1a, 0xea, 0x39, 0xbb, 0x7e, 0xc9, 0x02, 0xb4, 0xe4, 0x05, 0x2e, 0x89, - 0x4e, 0x60, 0xc3, 0x3c, 0xda, 0xc4, 0xff, 0xf7, 0xb4, 0x69, 0xe1, 0x4e, 0x2b, 0x0c, 0x48, 0x90, - 0x2c, 0x85, 0x81, 0xcb, 0x37, 0xd1, 0x4f, 0xc2, 0x40, 0x42, 0xab, 0xe2, 0xcd, 0x7a, 0x4c, 0x0e, - 0x06, 0xad, 0xe0, 0x70, 0x7f, 0xf6, 0x6c, 0x67, 0x09, 0xd6, 0x04, 0x56, 0x06, 0x7d, 0x02, 0x86, - 0xe2, 0xc4, 0x49, 0xda, 0xb1, 0x68, 0xe8, 0x23, 0xb2, 0xa1, 0x0d, 0x06, 0x3d, 0xdc, 0x9f, 0x9d, - 0x54, 0xc5, 0x38, 0x08, 0x8b, 0x02, 0xe8, 0x09, 0x18, 0xde, 0x21, 0x71, 0xec, 0x6c, 0x4a, 0xf9, - 0x37, 0x29, 0xca, 0x0e, 0xaf, 0x71, 0x30, 0x96, 0x78, 0xf4, 0x28, 0x0c, 0x92, 0x28, 0x0a, 0x23, - 0x31, 0x0f, 0xc6, 0x05, 0xe1, 0xe0, 0x32, 0x05, 0x62, 0x8e, 0xb3, 0xff, 0xad, 0x05, 0x93, 0xaa, - 0xad, 0xbc, 0xae, 0x13, 0x58, 0xde, 0x6f, 0x00, 0x34, 0xe5, 0x07, 0xc6, 0x6c, 0x79, 0x8d, 0x5e, - 0x7a, 0x2c, 0x6f, 0xd2, 0x75, 0x76, 0x63, 0xca, 0x59, 0x81, 0x62, 0xac, 0x71, 0xb3, 0xff, 0xa9, - 0x05, 0xa7, 0x32, 0x5f, 0x74, 0xcd, 0x8b, 0x13, 0xf4, 0x66, 0xc7, 0x57, 0xcd, 0xf5, 0xf7, 0x55, - 0xb4, 0x34, 0xfb, 0x26, 0x35, 0x4b, 0x24, 0x44, 0xfb, 0xa2, 0x2b, 0x30, 0xe8, 0x25, 0x64, 0x47, - 0x7e, 0xcc, 0xa3, 0x5d, 0x3f, 0x86, 0xb7, 0x2a, 0x1d, 0x91, 0x55, 0x5a, 0x12, 0x73, 0x06, 0xf6, - 0x7f, 0xb7, 0xa0, 0xb2, 0x14, 0x06, 0x1b, 0xde, 0xe6, 0x9a, 0xd3, 0x3a, 0x81, 0xb1, 0x58, 0x85, - 0x01, 0xc6, 0x9d, 0x37, 0xfc, 0xf1, 0xfc, 0x86, 0x8b, 0xe6, 0xcc, 0xd1, 0x5d, 0x8c, 0x6b, 0x0b, - 0x4a, 0xfc, 0x50, 0x10, 0x66, 0x2c, 0x66, 0x3e, 0x0e, 0x15, 0x45, 0x80, 0xa6, 0xa0, 0xbc, 0x4d, - 0xb8, 0x86, 0x58, 0xc1, 0xf4, 0x27, 0x3a, 0x0d, 0x83, 0xbb, 0x8e, 0xdf, 0x16, 0xcb, 0x13, 0xf3, - 0x3f, 0x9f, 0x2c, 0xbd, 0x68, 0xd9, 0xdf, 0x62, 0x6b, 0x4c, 0x54, 0xb2, 0x1c, 0xec, 0x8a, 0xe5, - 0xff, 0x2e, 0x9c, 0xf6, 0x73, 0xa4, 0x8e, 0xe8, 0x88, 0xfe, 0xa5, 0xd4, 0x43, 0xa2, 0xad, 0xa7, - 0xf3, 0xb0, 0x38, 0xb7, 0x0e, 0x2a, 0xb8, 0xc3, 0x16, 0x9d, 0x51, 0x8e, 0xcf, 0xda, 0x2b, 0x76, - 0xfe, 0x1b, 0x02, 0x86, 0x15, 0x96, 0x0a, 0x88, 0xd3, 0xaa, 0xf1, 0x57, 0xc9, 0x5e, 0x83, 0xf8, - 0xa4, 0x99, 0x84, 0xd1, 0xfb, 0xda, 0xfc, 0x87, 0x79, 0xef, 0x73, 0xf9, 0x32, 0x2a, 0x18, 0x94, - 0xaf, 0x92, 0x3d, 0x3e, 0x14, 0xfa, 0xd7, 0x95, 0xbb, 0x7e, 0xdd, 0x6f, 0x58, 0x30, 0xae, 0xbe, - 0xee, 0x04, 0x16, 0xd2, 0xa2, 0xb9, 0x90, 0x1e, 0xee, 0x3a, 0x1f, 0x0b, 0x96, 0xd0, 0x8f, 0x98, - 0x08, 0x10, 0x34, 0xf5, 0x28, 0xa4, 0x5d, 0x43, 0x65, 0xf6, 0xfb, 0x39, 0x20, 0xfd, 0x7c, 0xd7, - 0x55, 0xb2, 0xb7, 0x1e, 0xd2, 0x0d, 0x3f, 0xff, 0xbb, 0x8c, 0x51, 0x1b, 0xe8, 0x3a, 0x6a, 0xbf, - 0x59, 0x82, 0x33, 0xaa, 0x07, 0x8c, 0x2d, 0xf5, 0xc7, 0xbd, 0x0f, 0x9e, 0x85, 0x51, 0x97, 0x6c, - 0x38, 0x6d, 0x3f, 0x51, 0x46, 0xc0, 0x20, 0x37, 0x04, 0x6b, 0x29, 0x18, 0xeb, 0x34, 0x47, 0xe8, - 0xb6, 0x7f, 0x0d, 0x4c, 0xf6, 0x26, 0x0e, 0x9d, 0xc1, 0x54, 0xdf, 0xd2, 0x4c, 0xb9, 0x31, 0xdd, - 0x94, 0x13, 0x66, 0xdb, 0xa3, 0x30, 0xe8, 0xed, 0xd0, 0xbd, 0xb8, 0x64, 0x6e, 0xb1, 0xab, 0x14, - 0x88, 0x39, 0x0e, 0x7d, 0x04, 0x86, 0x9b, 0xe1, 0xce, 0x8e, 0x13, 0xb8, 0xd5, 0x32, 0xd3, 0x00, - 0x47, 0xe9, 0x76, 0xbd, 0xc4, 0x41, 0x58, 0xe2, 0xd0, 0x43, 0x30, 0xe0, 0x44, 0x9b, 0x71, 0x75, - 0x80, 0xd1, 0x8c, 0xd0, 0x9a, 0x16, 0xa2, 0xcd, 0x18, 0x33, 0x28, 0xd5, 0xec, 0xee, 0x84, 0xd1, - 0xb6, 0x17, 0x6c, 0xd6, 0xbc, 0x88, 0xa9, 0x69, 0x9a, 0x66, 0xf7, 0xba, 0xc2, 0x60, 0x8d, 0x0a, - 0xad, 0xc0, 0x60, 0x2b, 0x8c, 0x92, 0xb8, 0x3a, 0xc4, 0xba, 0xfb, 0x91, 0x82, 0xa5, 0xc4, 0xbf, - 0xb6, 0x1e, 0x46, 0x49, 0xfa, 0x01, 0xf4, 0x5f, 0x8c, 0x79, 0x71, 0xf4, 0x09, 0x28, 0x93, 0x60, - 0xb7, 0x3a, 0xcc, 0xb8, 0xcc, 0xe4, 0x71, 0x59, 0x0e, 0x76, 0x6f, 0x39, 0x51, 0x2a, 0x67, 0x96, - 0x83, 0x5d, 0x4c, 0xcb, 0xa0, 0xcf, 0x42, 0x45, 0xba, 0x81, 0xe2, 0xea, 0x48, 0xf1, 0x14, 0xc3, - 0x82, 0x08, 0x93, 0x77, 0xda, 0x5e, 0x44, 0x76, 0x48, 0x90, 0xc4, 0xa9, 0xf9, 0x22, 0xb1, 0x31, - 0x4e, 0xb9, 0xa1, 0xcf, 0xc2, 0x18, 0xd7, 0xfc, 0xd6, 0xc2, 0x76, 0x90, 0xc4, 0xd5, 0x0a, 0x6b, - 0x5e, 0xae, 0xcf, 0xe0, 0x56, 0x4a, 0xb7, 0x78, 0x5a, 0x30, 0x1d, 0xd3, 0x80, 0x31, 0x36, 0x58, - 0x21, 0x0c, 0xe3, 0xbe, 0xb7, 0x4b, 0x02, 0x12, 0xc7, 0xf5, 0x28, 0xbc, 0x4d, 0xaa, 0xc0, 0x5a, - 0x7e, 0x2e, 0xdf, 0x94, 0x0e, 0x6f, 0x93, 0xc5, 0xe9, 0x83, 0xfd, 0xd9, 0xf1, 0x6b, 0x7a, 0x19, - 0x6c, 0xb2, 0x40, 0x37, 0x61, 0x82, 0xaa, 0x94, 0x5e, 0xca, 0x74, 0xb4, 0x17, 0x53, 0x74, 0xb0, - 0x3f, 0x3b, 0x81, 0x8d, 0x42, 0x38, 0xc3, 0x04, 0xbd, 0x0a, 0x15, 0xdf, 0xdb, 0x20, 0xcd, 0xbd, - 0xa6, 0x4f, 0xaa, 0x63, 0x8c, 0x63, 0xee, 0xb2, 0xba, 0x26, 0x89, 0xb8, 0xca, 0xae, 0xfe, 0xe2, - 0xb4, 0x38, 0xba, 0x05, 0x67, 0x13, 0x12, 0xed, 0x78, 0x81, 0x43, 0x97, 0x83, 0xd0, 0x27, 0x99, - 0x43, 0x62, 0x9c, 0xcd, 0xb7, 0xf3, 0xa2, 0xeb, 0xce, 0xae, 0xe7, 0x52, 0xe1, 0x82, 0xd2, 0xe8, - 0x06, 0x4c, 0xb2, 0x95, 0x50, 0x6f, 0xfb, 0x7e, 0x3d, 0xf4, 0xbd, 0xe6, 0x5e, 0x75, 0x82, 0x31, - 0xfc, 0x88, 0xf4, 0x38, 0xac, 0x9a, 0x68, 0x6a, 0x60, 0xa5, 0xff, 0x70, 0xb6, 0x34, 0xba, 0x0d, - 0x93, 0x31, 0x69, 0xb6, 0x23, 0x2f, 0xd9, 0xa3, 0xf3, 0x97, 0xdc, 0x4d, 0xaa, 0x93, 0xc5, 0x66, - 0x62, 0xc3, 0x24, 0xe5, 0x9e, 0x9d, 0x0c, 0x10, 0x67, 0x19, 0xd2, 0xa5, 0x1d, 0x27, 0xae, 0x17, - 0x54, 0xa7, 0x98, 0xc4, 0x50, 0x2b, 0xa3, 0x41, 0x81, 0x98, 0xe3, 0x98, 0xcd, 0x4d, 0x7f, 0xdc, - 0xa0, 0x12, 0x74, 0x9a, 0x11, 0xa6, 0x36, 0xb7, 0x44, 0xe0, 0x94, 0x86, 0x6e, 0xcb, 0x49, 0xb2, - 0x57, 0x45, 0x8c, 0x54, 0x2d, 0x97, 0xf5, 0xf5, 0xcf, 0x62, 0x0a, 0x47, 0xd7, 0x60, 0x98, 0x04, - 0xbb, 0x2b, 0x51, 0xb8, 0x53, 0x3d, 0x55, 0xbc, 0x66, 0x97, 0x39, 0x09, 0x17, 0xe8, 0xa9, 0x01, - 0x20, 0xc0, 0x58, 0xb2, 0x40, 0x77, 0xa1, 0x9a, 0x33, 0x22, 0x7c, 0x00, 0x4e, 0xb3, 0x01, 0x78, - 0x59, 0x94, 0xad, 0xae, 0x17, 0xd0, 0x1d, 0x76, 0xc1, 0xe1, 0x42, 0xee, 0xf6, 0x6d, 0x98, 0x50, - 0x82, 0x85, 0x8d, 0x2d, 0x9a, 0x85, 0x41, 0x2a, 0x31, 0xa5, 0x11, 0x5c, 0xa1, 0x5d, 0x49, 0x05, - 0x69, 0x8c, 0x39, 0x9c, 0x75, 0xa5, 0xf7, 0x2e, 0x59, 0xdc, 0x4b, 0x08, 0x37, 0x8b, 0xca, 0x5a, - 0x57, 0x4a, 0x04, 0x4e, 0x69, 0xec, 0xff, 0xc7, 0x15, 0x93, 0x54, 0x7a, 0xf5, 0x21, 0xaf, 0x9f, - 0x86, 0x91, 0xad, 0x30, 0x4e, 0x28, 0x35, 0xab, 0x63, 0x30, 0x55, 0x45, 0xae, 0x08, 0x38, 0x56, - 0x14, 0xe8, 0x25, 0x18, 0x6f, 0xea, 0x15, 0x88, 0xcd, 0xe6, 0x8c, 0x28, 0x62, 0xd6, 0x8e, 0x4d, - 0x5a, 0xf4, 0x22, 0x8c, 0x30, 0xcf, 0x70, 0x33, 0xf4, 0x85, 0x01, 0x26, 0x77, 0xcc, 0x91, 0xba, - 0x80, 0x1f, 0x6a, 0xbf, 0xb1, 0xa2, 0xa6, 0x66, 0x2c, 0x6d, 0xc2, 0x6a, 0x5d, 0x88, 0x79, 0x65, - 0xc6, 0x5e, 0x61, 0x50, 0x2c, 0xb0, 0xf6, 0x5f, 0x2d, 0x69, 0xbd, 0x4c, 0x4d, 0x0a, 0x82, 0xea, - 0x30, 0x7c, 0xc7, 0xf1, 0x12, 0x2f, 0xd8, 0x14, 0xfb, 0xf9, 0x13, 0x5d, 0x65, 0x3e, 0x2b, 0xf4, - 0x3a, 0x2f, 0xc0, 0x77, 0x25, 0xf1, 0x07, 0x4b, 0x36, 0x94, 0x63, 0xd4, 0x0e, 0x02, 0xca, 0xb1, - 0xd4, 0x2f, 0x47, 0xcc, 0x0b, 0x70, 0x8e, 0xe2, 0x0f, 0x96, 0x6c, 0xd0, 0x9b, 0x00, 0x72, 0xde, - 0x10, 0x57, 0x78, 0x64, 0x9f, 0xee, 0xcd, 0x74, 0x5d, 0x95, 0x59, 0x9c, 0xa0, 0x7b, 0x5e, 0xfa, - 0x1f, 0x6b, 0xfc, 0xec, 0x84, 0xe9, 0x3d, 0x9d, 0x8d, 0x41, 0x9f, 0xa3, 0x4b, 0xd5, 0x89, 0x12, - 0xe2, 0x2e, 0x24, 0xa2, 0x73, 0x9e, 0xec, 0x4f, 0x6d, 0x5d, 0xf7, 0x76, 0x88, 0xbe, 0xac, 0x05, - 0x13, 0x9c, 0xf2, 0xb3, 0x7f, 0xbb, 0x0c, 0xd5, 0xa2, 0xe6, 0xd2, 0x49, 0x47, 0xee, 0x7a, 0xc9, - 0x12, 0x55, 0x57, 0x2c, 0x73, 0xd2, 0x2d, 0x0b, 0x38, 0x56, 0x14, 0x74, 0xf4, 0x63, 0x6f, 0x53, - 0x5a, 0x1d, 0x83, 0xe9, 0xe8, 0x37, 0x18, 0x14, 0x0b, 0x2c, 0xa5, 0x8b, 0x88, 0x13, 0x0b, 0x97, - 0xbf, 0x36, 0x4b, 0x30, 0x83, 0x62, 0x81, 0xd5, 0x1d, 0x06, 0x03, 0x3d, 0x1c, 0x06, 0x46, 0x17, - 0x0d, 0x1e, 0x6f, 0x17, 0xa1, 0xb7, 0x00, 0x36, 0xbc, 0xc0, 0x8b, 0xb7, 0x18, 0xf7, 0xa1, 0x23, - 0x73, 0x57, 0xca, 0xce, 0x8a, 0xe2, 0x82, 0x35, 0x8e, 0xe8, 0x05, 0x18, 0x55, 0x0b, 0x70, 0xb5, - 0x56, 0x1d, 0x36, 0xfd, 0xc9, 0xa9, 0x34, 0xaa, 0x61, 0x9d, 0xce, 0x7e, 0x3b, 0x3b, 0x5f, 0xc4, - 0x0a, 0xd0, 0xfa, 0xd7, 0xea, 0xb7, 0x7f, 0x4b, 0xdd, 0xfb, 0xd7, 0xfe, 0xfd, 0x32, 0x4c, 0x1a, - 0x95, 0xb5, 0xe3, 0x3e, 0x64, 0xd6, 0x65, 0xba, 0x11, 0x39, 0x09, 0x11, 0xeb, 0xcf, 0xee, 0xbd, - 0x54, 0xf4, 0xcd, 0x8a, 0xae, 0x00, 0x5e, 0x1e, 0xbd, 0x05, 0x15, 0xdf, 0x89, 0x99, 0xf3, 0x81, - 0x88, 0x75, 0xd7, 0x0f, 0xb3, 0x54, 0xd1, 0x77, 0xe2, 0x44, 0xdb, 0x0b, 0x38, 0xef, 0x94, 0x25, - 0xdd, 0x31, 0xa9, 0x72, 0x22, 0xcf, 0x94, 0x54, 0x23, 0xa8, 0x06, 0xb3, 0x87, 0x39, 0x0e, 0xbd, - 0x08, 0x63, 0x11, 0x61, 0xb3, 0x62, 0x89, 0xea, 0x5a, 0x6c, 0x9a, 0x0d, 0xa6, 0x4a, 0x19, 0xd6, - 0x70, 0xd8, 0xa0, 0x4c, 0x75, 0xed, 0xa1, 0x2e, 0xba, 0xf6, 0x13, 0x30, 0xcc, 0x7e, 0xa8, 0x19, - 0xa0, 0x46, 0x63, 0x95, 0x83, 0xb1, 0xc4, 0x67, 0x27, 0xcc, 0x48, 0x9f, 0x13, 0xe6, 0x49, 0x98, - 0xa8, 0x39, 0x64, 0x27, 0x0c, 0x96, 0x03, 0xb7, 0x15, 0x7a, 0x41, 0x82, 0xaa, 0x30, 0xc0, 0x76, - 0x07, 0xbe, 0xb6, 0x07, 0x28, 0x07, 0x3c, 0x40, 0x35, 0x67, 0xfb, 0x8f, 0x4a, 0x30, 0x5e, 0x23, - 0x3e, 0x49, 0x08, 0xb7, 0x35, 0x62, 0xb4, 0x02, 0x68, 0x33, 0x72, 0x9a, 0xa4, 0x4e, 0x22, 0x2f, - 0x74, 0x1b, 0xa4, 0x19, 0x06, 0xec, 0xa4, 0x86, 0x6e, 0x77, 0x67, 0x0f, 0xf6, 0x67, 0xd1, 0xe5, - 0x0e, 0x2c, 0xce, 0x29, 0x81, 0xde, 0x80, 0xf1, 0x56, 0x44, 0x0c, 0x1f, 0x9a, 0x55, 0xa4, 0x2e, - 0xd4, 0x75, 0x42, 0xae, 0xa9, 0x1a, 0x20, 0x6c, 0xb2, 0x42, 0x9f, 0x81, 0xa9, 0x30, 0x6a, 0x6d, - 0x39, 0x41, 0x8d, 0xb4, 0x48, 0xe0, 0x52, 0x55, 0x5c, 0xf8, 0x08, 0x4e, 0x1f, 0xec, 0xcf, 0x4e, - 0xdd, 0xc8, 0xe0, 0x70, 0x07, 0x35, 0x7a, 0x03, 0xa6, 0x5b, 0x51, 0xd8, 0x72, 0x36, 0xd9, 0x44, - 0x11, 0x1a, 0x07, 0x97, 0x3e, 0x4f, 0x1f, 0xec, 0xcf, 0x4e, 0xd7, 0xb3, 0xc8, 0xc3, 0xfd, 0xd9, - 0x53, 0xac, 0xa3, 0x28, 0x24, 0x45, 0xe2, 0x4e, 0x36, 0xf6, 0x26, 0x9c, 0xa9, 0x85, 0x77, 0x82, - 0x3b, 0x4e, 0xe4, 0x2e, 0xd4, 0x57, 0x35, 0xe3, 0xfe, 0xba, 0x34, 0x2e, 0xf9, 0xb9, 0x57, 0xee, - 0x3e, 0xa5, 0x95, 0xe4, 0xea, 0xff, 0x8a, 0xe7, 0x93, 0x02, 0x27, 0xc2, 0x5f, 0x2f, 0x19, 0x35, - 0xa5, 0xf4, 0xca, 0x53, 0x6f, 0x15, 0x7a, 0xea, 0x5f, 0x83, 0x91, 0x0d, 0x8f, 0xf8, 0x2e, 0x26, - 0x1b, 0x62, 0x64, 0x1e, 0x2f, 0x3e, 0xc0, 0x58, 0xa1, 0x94, 0xd2, 0x69, 0xc4, 0x4d, 0xd3, 0x15, - 0x51, 0x18, 0x2b, 0x36, 0x68, 0x1b, 0xa6, 0xa4, 0xed, 0x23, 0xb1, 0x62, 0x11, 0x3f, 0xd1, 0xcd, - 0xa0, 0x32, 0x99, 0xb3, 0x01, 0xc4, 0x19, 0x36, 0xb8, 0x83, 0x31, 0xb5, 0x45, 0x77, 0xe8, 0x76, - 0x35, 0xc0, 0xa6, 0x34, 0xb3, 0x45, 0x99, 0x59, 0xcd, 0xa0, 0xf6, 0xd7, 0x2c, 0x78, 0xa0, 0xa3, - 0x67, 0x84, 0x7b, 0xe1, 0x98, 0x47, 0x21, 0x6b, 0xee, 0x97, 0x7a, 0x9b, 0xfb, 0xf6, 0xaf, 0x5b, - 0x70, 0x7a, 0x79, 0xa7, 0x95, 0xec, 0xd5, 0x3c, 0xf3, 0x34, 0xe1, 0xe3, 0x30, 0xb4, 0x43, 0x5c, - 0xaf, 0xbd, 0x23, 0x46, 0x6e, 0x56, 0x8a, 0xf4, 0x35, 0x06, 0x3d, 0xdc, 0x9f, 0x1d, 0x6f, 0x24, - 0x61, 0xe4, 0x6c, 0x12, 0x0e, 0xc0, 0x82, 0x1c, 0xfd, 0x0c, 0xd7, 0x4d, 0xaf, 0x79, 0x3b, 0x9e, - 0x3c, 0x90, 0xea, 0xea, 0xf2, 0x9a, 0x93, 0x1d, 0x3a, 0xf7, 0x5a, 0xdb, 0x09, 0x12, 0x2f, 0xd9, - 0x33, 0x75, 0x59, 0xc6, 0x08, 0xa7, 0x3c, 0xed, 0xef, 0x59, 0x30, 0x29, 0xe5, 0xc9, 0x82, 0xeb, - 0x46, 0x24, 0x8e, 0xd1, 0x0c, 0x94, 0xbc, 0x96, 0x68, 0x29, 0x88, 0xd2, 0xa5, 0xd5, 0x3a, 0x2e, - 0x79, 0x2d, 0x54, 0x87, 0x0a, 0x3f, 0xdb, 0x4a, 0x27, 0x58, 0x5f, 0x27, 0x64, 0xcc, 0xf6, 0x5b, - 0x97, 0x25, 0x71, 0xca, 0x44, 0x6a, 0xc6, 0x6c, 0x2f, 0x2a, 0x9b, 0x27, 0x2d, 0x57, 0x04, 0x1c, - 0x2b, 0x0a, 0x74, 0x11, 0x46, 0x82, 0xd0, 0xe5, 0x47, 0x8d, 0x7c, 0x5d, 0xb3, 0x69, 0x7b, 0x5d, - 0xc0, 0xb0, 0xc2, 0xda, 0x3f, 0x6f, 0xc1, 0x98, 0xfc, 0xb2, 0x3e, 0x95, 0x74, 0xba, 0xbc, 0x52, - 0x05, 0x3d, 0x5d, 0x5e, 0x54, 0xc9, 0x66, 0x18, 0x43, 0xb7, 0x2e, 0x1f, 0x45, 0xb7, 0xb6, 0xbf, - 0x5a, 0x82, 0x09, 0xd9, 0x9c, 0x46, 0xfb, 0x76, 0x4c, 0x12, 0xb4, 0x0e, 0x15, 0x87, 0x77, 0x39, - 0x91, 0xb3, 0xf6, 0xd1, 0x7c, 0xab, 0xcb, 0x18, 0x9f, 0x74, 0x44, 0x17, 0x64, 0x69, 0x9c, 0x32, - 0x42, 0x3e, 0x4c, 0x07, 0x61, 0xc2, 0xb6, 0x3e, 0x85, 0xef, 0x76, 0x36, 0x90, 0xe5, 0x7e, 0x4e, - 0x70, 0x9f, 0xbe, 0x9e, 0xe5, 0x82, 0x3b, 0x19, 0xa3, 0x65, 0xe9, 0xe9, 0x29, 0xb3, 0x1a, 0x2e, - 0x74, 0xab, 0xa1, 0xd8, 0xd1, 0x63, 0xff, 0x9e, 0x05, 0x15, 0x49, 0x76, 0x12, 0xc7, 0x40, 0x6b, - 0x30, 0x1c, 0xb3, 0x41, 0x90, 0x5d, 0x63, 0x77, 0x6b, 0x38, 0x1f, 0xaf, 0x74, 0x47, 0xe7, 0xff, - 0x63, 0x2c, 0x79, 0x30, 0x57, 0xb5, 0x6a, 0xfe, 0x07, 0xc4, 0x55, 0xad, 0xda, 0x53, 0xb0, 0xcb, - 0xfc, 0x27, 0xd6, 0x66, 0xcd, 0x9e, 0xa7, 0x8a, 0x67, 0x2b, 0x22, 0x1b, 0xde, 0xdd, 0xac, 0xe2, - 0x59, 0x67, 0x50, 0x2c, 0xb0, 0xe8, 0x4d, 0x18, 0x6b, 0x4a, 0x0f, 0x6f, 0x2a, 0x06, 0x1e, 0xeb, - 0xea, 0x2f, 0x57, 0x47, 0x2b, 0x3c, 0x20, 0x67, 0x49, 0x2b, 0x8f, 0x0d, 0x6e, 0x54, 0xc2, 0xa4, - 0xa7, 0xc2, 0xe5, 0xae, 0xce, 0x95, 0x88, 0x24, 0x29, 0xdf, 0xc2, 0x03, 0x61, 0xfb, 0x57, 0x2c, - 0x18, 0xe2, 0x7e, 0xc2, 0xfe, 0x1c, 0xab, 0xda, 0x51, 0x51, 0xda, 0x77, 0xb7, 0x28, 0x50, 0x9c, - 0x1c, 0xa1, 0x35, 0xa8, 0xb0, 0x1f, 0xcc, 0x5f, 0x52, 0x2e, 0x8e, 0x44, 0xe2, 0xb5, 0xea, 0x0d, - 0xbc, 0x25, 0x8b, 0xe1, 0x94, 0x83, 0xfd, 0x8b, 0x65, 0x2a, 0xaa, 0x52, 0x52, 0x63, 0x17, 0xb7, - 0xee, 0xdf, 0x2e, 0x5e, 0xba, 0x5f, 0xbb, 0xf8, 0x26, 0x4c, 0x36, 0xb5, 0x73, 0xa9, 0x74, 0x24, - 0x2f, 0x76, 0x9d, 0x24, 0xda, 0x11, 0x16, 0xf7, 0x95, 0x2d, 0x99, 0x4c, 0x70, 0x96, 0x2b, 0xfa, - 0x1c, 0x8c, 0xf1, 0x71, 0x16, 0xb5, 0x0c, 0xb0, 0x5a, 0x3e, 0x52, 0x3c, 0x5f, 0xf4, 0x2a, 0xd8, - 0x4c, 0x6c, 0x68, 0xc5, 0xb1, 0xc1, 0xcc, 0xfe, 0xf2, 0x20, 0x0c, 0x2e, 0xef, 0x92, 0x20, 0x39, - 0x01, 0x81, 0xd4, 0x84, 0x09, 0x2f, 0xd8, 0x0d, 0xfd, 0x5d, 0xe2, 0x72, 0xfc, 0x51, 0x36, 0xd7, - 0xb3, 0x82, 0xf5, 0xc4, 0xaa, 0xc1, 0x02, 0x67, 0x58, 0xde, 0x0f, 0xcb, 0xfd, 0x32, 0x0c, 0xf1, - 0xb1, 0x17, 0x66, 0x7b, 0xae, 0x17, 0x9c, 0x75, 0xa2, 0x58, 0x05, 0xa9, 0x57, 0x81, 0xbb, 0xdd, - 0x45, 0x71, 0xf4, 0x36, 0x4c, 0x6c, 0x78, 0x51, 0x9c, 0x50, 0x93, 0x3b, 0x4e, 0x9c, 0x9d, 0xd6, - 0x3d, 0x58, 0xea, 0xaa, 0x1f, 0x56, 0x0c, 0x4e, 0x38, 0xc3, 0x19, 0x6d, 0xc2, 0x38, 0x35, 0x1e, - 0xd3, 0xaa, 0x86, 0x8f, 0x5c, 0x95, 0x72, 0xc5, 0x5d, 0xd3, 0x19, 0x61, 0x93, 0x2f, 0x15, 0x26, - 0x4d, 0x66, 0x6c, 0x8e, 0x30, 0x8d, 0x42, 0x09, 0x13, 0x6e, 0x65, 0x72, 0x1c, 0x95, 0x49, 0x2c, - 0x9e, 0xa3, 0x62, 0xca, 0xa4, 0x34, 0x6a, 0xc3, 0xfe, 0x3a, 0xdd, 0x1d, 0x69, 0x1f, 0x9e, 0xc0, - 0xd6, 0xf2, 0x8a, 0xb9, 0xb5, 0x9c, 0x2b, 0x1c, 0xcf, 0x82, 0x6d, 0xe5, 0xf3, 0x30, 0xaa, 0x0d, - 0x37, 0x9a, 0x87, 0x4a, 0x53, 0x06, 0x1f, 0x08, 0xa9, 0xab, 0xd4, 0x17, 0x15, 0x95, 0x80, 0x53, - 0x1a, 0xda, 0x1b, 0x54, 0xd9, 0xcb, 0x06, 0x23, 0x51, 0x55, 0x10, 0x33, 0x8c, 0xfd, 0x1c, 0xc0, - 0xf2, 0x5d, 0xd2, 0x5c, 0xe0, 0xc6, 0x97, 0x76, 0xc6, 0x65, 0x15, 0x9f, 0x71, 0xd1, 0x1d, 0x7a, - 0x62, 0x65, 0xc9, 0x50, 0xca, 0xe7, 0x00, 0xb8, 0x16, 0xfa, 0xfa, 0xeb, 0xd7, 0xa5, 0x77, 0x98, - 0x3b, 0xf8, 0x14, 0x14, 0x6b, 0x14, 0xe8, 0x1c, 0x94, 0xfd, 0x76, 0x20, 0x94, 0xc3, 0xe1, 0x83, - 0xfd, 0xd9, 0xf2, 0xb5, 0x76, 0x80, 0x29, 0x4c, 0x8b, 0xff, 0x29, 0xf7, 0x1d, 0xff, 0xd3, 0x3b, - 0xfe, 0xf5, 0xcf, 0x97, 0x61, 0x6a, 0xc5, 0x27, 0x77, 0x8d, 0x56, 0x3f, 0x06, 0x43, 0x6e, 0xe4, - 0xed, 0x92, 0x28, 0xbb, 0x49, 0xd7, 0x18, 0x14, 0x0b, 0x6c, 0xdf, 0x21, 0x49, 0x37, 0x3b, 0xb7, - 0xdb, 0xe3, 0x0e, 0xc2, 0xea, 0xf9, 0xa5, 0xe8, 0x4d, 0x18, 0xe6, 0x27, 0xa1, 0x71, 0x75, 0x90, - 0x4d, 0xbb, 0x67, 0xf3, 0x9a, 0x90, 0xed, 0x8b, 0x39, 0xe1, 0xdb, 0xe0, 0x61, 0x21, 0x4a, 0x46, - 0x09, 0x28, 0x96, 0x2c, 0x67, 0x3e, 0x09, 0x63, 0x3a, 0xe5, 0x91, 0xe2, 0x43, 0xfe, 0x82, 0x05, - 0xa7, 0x56, 0xfc, 0xb0, 0xb9, 0x9d, 0x89, 0x0f, 0x7b, 0x01, 0x46, 0xe9, 0x72, 0x89, 0x8d, 0x40, - 0x49, 0x23, 0x88, 0x54, 0xa0, 0xb0, 0x4e, 0xa7, 0x15, 0xbb, 0x79, 0x73, 0xb5, 0x96, 0x17, 0x7b, - 0x2a, 0x50, 0x58, 0xa7, 0xb3, 0xff, 0xc0, 0x82, 0x87, 0x2f, 0x2f, 0x2d, 0xd7, 0x49, 0x14, 0x7b, - 0x71, 0x42, 0x82, 0xa4, 0x23, 0xfc, 0x95, 0xea, 0x6e, 0xae, 0xd6, 0x94, 0x54, 0x77, 0xab, 0xb1, - 0x56, 0x08, 0xec, 0x07, 0x25, 0xb4, 0xfb, 0xd7, 0x2c, 0x38, 0x75, 0xd9, 0x4b, 0x30, 0x69, 0x85, - 0xd9, 0xf0, 0xd3, 0x88, 0xb4, 0xc2, 0xd8, 0x4b, 0xc2, 0x68, 0x2f, 0x1b, 0x7e, 0x8a, 0x15, 0x06, - 0x6b, 0x54, 0xbc, 0xe6, 0x5d, 0x2f, 0xa6, 0x2d, 0x2d, 0x99, 0x06, 0x24, 0x16, 0x70, 0xac, 0x28, - 0xe8, 0x87, 0xb9, 0x5e, 0xc4, 0x14, 0x80, 0x3d, 0xb1, 0x5a, 0xd5, 0x87, 0xd5, 0x24, 0x02, 0xa7, - 0x34, 0xf6, 0xd7, 0x2c, 0x38, 0x73, 0xd9, 0x6f, 0xc7, 0x09, 0x89, 0x36, 0x62, 0xa3, 0xb1, 0xcf, - 0x41, 0x85, 0x48, 0x25, 0x5b, 0xb4, 0x55, 0x6d, 0x0b, 0x4a, 0xfb, 0xe6, 0xb1, 0xaf, 0x8a, 0xae, - 0x8f, 0x60, 0xcb, 0xa3, 0x05, 0x09, 0x7e, 0xb3, 0x04, 0xe3, 0x57, 0xd6, 0xd7, 0xeb, 0x97, 0x49, - 0x22, 0x24, 0x62, 0x6f, 0x27, 0x11, 0xd6, 0xec, 0xdc, 0x6e, 0xaa, 0x4c, 0x3b, 0xf1, 0xfc, 0x39, - 0x7e, 0xed, 0x60, 0x6e, 0x35, 0x48, 0x6e, 0x44, 0x8d, 0x24, 0xf2, 0x82, 0xcd, 0x5c, 0xcb, 0x58, - 0xca, 0xed, 0x72, 0x91, 0xdc, 0x46, 0xcf, 0xc1, 0x10, 0xbb, 0xf7, 0x20, 0x95, 0x8a, 0x07, 0x95, - 0x26, 0xc0, 0xa0, 0x87, 0xfb, 0xb3, 0x95, 0x9b, 0x78, 0x95, 0xff, 0xc1, 0x82, 0x14, 0xdd, 0x84, - 0xd1, 0xad, 0x24, 0x69, 0x5d, 0x21, 0x8e, 0x4b, 0x22, 0x29, 0x1d, 0xce, 0xe7, 0x49, 0x07, 0xda, - 0x09, 0x9c, 0x2c, 0x5d, 0x50, 0x29, 0x2c, 0xc6, 0x3a, 0x1f, 0xbb, 0x01, 0x90, 0xe2, 0x8e, 0xc9, - 0x2a, 0xb0, 0x7f, 0x68, 0xc1, 0xf0, 0x15, 0x27, 0x70, 0x7d, 0x12, 0xa1, 0x97, 0x61, 0x80, 0xdc, - 0x25, 0x4d, 0xb1, 0x41, 0xe7, 0x36, 0x38, 0xdd, 0xc4, 0xb8, 0x9f, 0x8b, 0xfe, 0xc7, 0xac, 0x14, - 0xba, 0x02, 0xc3, 0xb4, 0xb5, 0x97, 0x55, 0x14, 0xf2, 0x23, 0x45, 0x5f, 0xac, 0x86, 0x9d, 0xef, - 0x7b, 0x02, 0x84, 0x65, 0x71, 0xe6, 0xaf, 0x69, 0xb6, 0x1a, 0x54, 0x80, 0x25, 0xdd, 0xac, 0xa9, - 0xf5, 0xa5, 0x3a, 0x27, 0x12, 0xdc, 0xb8, 0xbf, 0x46, 0x02, 0x71, 0xca, 0xc4, 0x5e, 0x87, 0x0a, - 0x1d, 0xd4, 0x05, 0xdf, 0x73, 0xba, 0xbb, 0x8a, 0x9e, 0x82, 0x8a, 0x74, 0xdb, 0xc4, 0x22, 0x90, - 0x99, 0x71, 0x95, 0x5e, 0x9d, 0x18, 0xa7, 0x78, 0xfb, 0x45, 0x38, 0xcd, 0xce, 0x41, 0x9d, 0x64, - 0xcb, 0x58, 0x63, 0x3d, 0x27, 0xb3, 0xfd, 0x8d, 0x01, 0x98, 0x5e, 0x6d, 0x2c, 0x35, 0x4c, 0x6f, - 0xe0, 0x8b, 0x30, 0xc6, 0xb7, 0x6e, 0x3a, 0x45, 0x1d, 0x5f, 0x94, 0x57, 0xde, 0xfe, 0x75, 0x0d, - 0x87, 0x0d, 0x4a, 0xf4, 0x30, 0x94, 0xbd, 0x77, 0x82, 0x6c, 0xfc, 0xda, 0xea, 0x6b, 0xd7, 0x31, - 0x85, 0x53, 0x34, 0xd5, 0x02, 0xb8, 0x48, 0x54, 0x68, 0xa5, 0x09, 0xbc, 0x02, 0x13, 0x5e, 0xdc, - 0x8c, 0xbd, 0xd5, 0x80, 0xca, 0x0b, 0xa7, 0x29, 0x27, 0x7b, 0xaa, 0xa2, 0xd3, 0xa6, 0x2a, 0x2c, - 0xce, 0x50, 0x6b, 0xf2, 0x79, 0xb0, 0x6f, 0x4d, 0xa2, 0x67, 0x90, 0x33, 0x55, 0x92, 0x5a, 0xec, - 0xeb, 0x62, 0x16, 0x4b, 0x23, 0x94, 0x24, 0xfe, 0xc1, 0x31, 0x96, 0x38, 0x74, 0x19, 0xa6, 0x9b, - 0x5b, 0x4e, 0x6b, 0xa1, 0x9d, 0x6c, 0xd5, 0xbc, 0xb8, 0x19, 0xee, 0x92, 0x68, 0x8f, 0xa9, 0xae, - 0x23, 0xa9, 0x57, 0x48, 0x21, 0x96, 0xae, 0x2c, 0xd4, 0x29, 0x25, 0xee, 0x2c, 0x63, 0x2a, 0x15, - 0x70, 0x6c, 0x4a, 0xc5, 0x02, 0x4c, 0xca, 0xba, 0x1a, 0x24, 0x66, 0x02, 0x7f, 0x94, 0xb5, 0x4e, - 0x5d, 0x20, 0x11, 0x60, 0xd5, 0xb6, 0x2c, 0xbd, 0xfd, 0x36, 0x54, 0x54, 0x9c, 0x97, 0x0c, 0x55, - 0xb4, 0x0a, 0x42, 0x15, 0x7b, 0x8b, 0x6a, 0xe9, 0xad, 0x2e, 0xe7, 0x7a, 0xab, 0xff, 0x86, 0x05, - 0x69, 0xb8, 0x0b, 0xba, 0x02, 0x95, 0x56, 0xc8, 0x4e, 0xac, 0x22, 0x79, 0x0c, 0xfc, 0x60, 0xee, - 0xaa, 0xe6, 0x12, 0x84, 0x77, 0x43, 0x5d, 0x96, 0xc0, 0x69, 0x61, 0xb4, 0x08, 0xc3, 0xad, 0x88, - 0x34, 0x12, 0x76, 0x3f, 0xa0, 0x27, 0x1f, 0x3e, 0xd4, 0x9c, 0x1e, 0xcb, 0x82, 0xf6, 0x6f, 0x5a, - 0x00, 0xdc, 0x19, 0xec, 0x04, 0x9b, 0xe4, 0x04, 0x0c, 0xdc, 0x1a, 0x0c, 0xc4, 0x2d, 0xd2, 0xec, - 0x76, 0x96, 0x98, 0xb6, 0xa7, 0xd1, 0x22, 0xcd, 0xb4, 0xc3, 0xe9, 0x3f, 0xcc, 0x4a, 0xdb, 0x3f, - 0x07, 0x30, 0x91, 0x92, 0x51, 0xc3, 0x03, 0x3d, 0x63, 0x84, 0xc3, 0x9f, 0xcb, 0x84, 0xc3, 0x57, - 0x18, 0xb5, 0x16, 0x01, 0xff, 0x36, 0x94, 0x77, 0x9c, 0xbb, 0xc2, 0xba, 0x79, 0xaa, 0x7b, 0x33, - 0x28, 0xff, 0xb9, 0x35, 0xe7, 0x2e, 0x57, 0x30, 0x9f, 0x92, 0x13, 0x64, 0xcd, 0xb9, 0x7b, 0xc8, - 0x4f, 0x0c, 0x99, 0xac, 0xa1, 0x46, 0xd4, 0x17, 0xff, 0x38, 0xfd, 0xcf, 0xb6, 0x0d, 0x5a, 0x09, - 0xab, 0xcb, 0x0b, 0x84, 0x6b, 0xb4, 0xaf, 0xba, 0xbc, 0x20, 0x5b, 0x97, 0x17, 0xf4, 0x51, 0x97, - 0x17, 0xa0, 0x77, 0x61, 0x58, 0x1c, 0x45, 0xb0, 0x38, 0xbe, 0xd1, 0x4b, 0xf3, 0x7d, 0xd4, 0x27, - 0x4e, 0x32, 0x78, 0x9d, 0xf3, 0x52, 0x81, 0x16, 0xd0, 0x9e, 0xf5, 0xca, 0x0a, 0xd1, 0x5f, 0xb3, - 0x60, 0x42, 0xfc, 0xc6, 0xe4, 0x9d, 0x36, 0x89, 0x13, 0xb1, 0x51, 0x7f, 0xac, 0xff, 0x36, 0x88, - 0x82, 0xbc, 0x29, 0x1f, 0x93, 0xd2, 0xd2, 0x44, 0xf6, 0x6c, 0x51, 0xa6, 0x15, 0xe8, 0x1f, 0x59, - 0x70, 0x7a, 0xc7, 0xb9, 0xcb, 0x6b, 0xe4, 0x30, 0xec, 0x24, 0x5e, 0x28, 0xe2, 0x12, 0x5f, 0xee, - 0x6f, 0xf8, 0x3b, 0x8a, 0xf3, 0x46, 0xca, 0x10, 0xa6, 0xd3, 0x79, 0x24, 0x3d, 0x9b, 0x9a, 0xdb, - 0xae, 0x99, 0x0d, 0x18, 0x91, 0xf3, 0x2d, 0xc7, 0x4c, 0xa9, 0xe9, 0x5a, 0xc8, 0x91, 0x4f, 0x82, - 0x34, 0xb3, 0x86, 0xd5, 0x23, 0xe6, 0xda, 0x7d, 0xad, 0xe7, 0x6d, 0x18, 0xd3, 0xe7, 0xd8, 0x7d, - 0xad, 0xeb, 0x1d, 0x38, 0x95, 0x33, 0x97, 0xee, 0x6b, 0x95, 0x77, 0xe0, 0x5c, 0xe1, 0xfc, 0xb8, - 0x9f, 0x15, 0xdb, 0xdf, 0xb4, 0x74, 0x39, 0x78, 0x02, 0x6e, 0xa1, 0x25, 0xd3, 0x2d, 0x74, 0xbe, - 0xfb, 0xca, 0x29, 0xf0, 0x0d, 0xbd, 0xa9, 0x37, 0x9a, 0x4a, 0x75, 0xf4, 0x2a, 0x0c, 0xf9, 0x14, - 0x22, 0xcf, 0xbf, 0xec, 0xde, 0x2b, 0x32, 0x55, 0x89, 0x18, 0x3c, 0xc6, 0x82, 0x83, 0xfd, 0x3b, - 0x16, 0x0c, 0x9c, 0x40, 0x4f, 0x60, 0xb3, 0x27, 0x9e, 0x29, 0x64, 0x2d, 0x2e, 0x7b, 0xcf, 0x61, - 0xe7, 0xce, 0xf2, 0xdd, 0x84, 0x04, 0x31, 0xd3, 0xab, 0x73, 0x3b, 0xe6, 0xff, 0x96, 0x60, 0x94, - 0x56, 0x25, 0x83, 0x35, 0x5e, 0x82, 0x71, 0xdf, 0xb9, 0x4d, 0x7c, 0xe9, 0xaa, 0xce, 0x5a, 0x97, - 0xd7, 0x74, 0x24, 0x36, 0x69, 0x69, 0xe1, 0x0d, 0xdd, 0x6b, 0x2f, 0xf4, 0x17, 0x55, 0xd8, 0x70, - 0xe9, 0x63, 0x93, 0x96, 0x1a, 0x3a, 0x77, 0x9c, 0xa4, 0xb9, 0x25, 0x2c, 0x4f, 0xd5, 0xdc, 0xd7, - 0x29, 0x10, 0x73, 0x1c, 0xd5, 0xc3, 0xe4, 0xec, 0xbc, 0x45, 0x22, 0xa6, 0x87, 0x71, 0x2d, 0x57, - 0xe9, 0x61, 0xd8, 0x44, 0xe3, 0x2c, 0x3d, 0xfa, 0x24, 0x4c, 0xd0, 0xce, 0x09, 0xdb, 0x89, 0x0c, - 0x45, 0x19, 0x64, 0xa1, 0x28, 0x2c, 0xf2, 0x78, 0xdd, 0xc0, 0xe0, 0x0c, 0x25, 0xaa, 0xc3, 0x69, - 0x2f, 0x68, 0xfa, 0x6d, 0x97, 0xdc, 0x0c, 0xbc, 0xc0, 0x4b, 0x3c, 0xc7, 0xf7, 0xde, 0x25, 0xae, - 0xd0, 0x83, 0x55, 0xd4, 0xd0, 0x6a, 0x0e, 0x0d, 0xce, 0x2d, 0x69, 0xff, 0x0c, 0x9c, 0xba, 0x16, - 0x3a, 0xee, 0xa2, 0xe3, 0x3b, 0x41, 0x93, 0x44, 0xab, 0xc1, 0x66, 0xcf, 0x83, 0x70, 0xfd, 0xd8, - 0xba, 0xd4, 0xeb, 0xd8, 0xda, 0xde, 0x02, 0xa4, 0x57, 0x20, 0x42, 0xb0, 0x30, 0x0c, 0x7b, 0xbc, - 0x2a, 0x31, 0xfd, 0x1f, 0xcf, 0x57, 0x92, 0x3b, 0x5a, 0xa6, 0x05, 0x17, 0x71, 0x00, 0x96, 0x8c, - 0xa8, 0x21, 0x95, 0xa7, 0x55, 0xf7, 0xb6, 0x71, 0xed, 0x17, 0x60, 0x9a, 0x95, 0x3c, 0xa2, 0xfd, - 0xf5, 0x97, 0x2d, 0x98, 0xbc, 0x9e, 0xb9, 0x7b, 0xfa, 0x18, 0x0c, 0xc5, 0x24, 0xca, 0x71, 0x52, - 0x36, 0x18, 0x14, 0x0b, 0xec, 0xb1, 0x3b, 0x43, 0x7e, 0x64, 0x41, 0x85, 0xc5, 0xf6, 0xb6, 0xa8, - 0x2d, 0x75, 0xff, 0x95, 0xda, 0x25, 0x43, 0xa9, 0xcd, 0x35, 0xd2, 0x55, 0x73, 0x8a, 0x74, 0x5a, - 0x74, 0x55, 0xdd, 0xc9, 0xec, 0x62, 0x9f, 0xa7, 0x6c, 0xf8, 0x0d, 0xbe, 0x09, 0xf3, 0xe2, 0xa6, - 0xbc, 0xa5, 0xc9, 0x4e, 0xa2, 0x15, 0xed, 0x07, 0xe4, 0x24, 0x5a, 0xb5, 0xa7, 0x40, 0xfa, 0xd5, - 0xb5, 0x26, 0xb3, 0x5d, 0xe1, 0xd3, 0x2c, 0x62, 0x93, 0xad, 0x4d, 0x75, 0x79, 0x79, 0x56, 0x44, - 0x60, 0x0a, 0xe8, 0x21, 0x13, 0x64, 0xe2, 0x1f, 0xbf, 0x91, 0x9e, 0x16, 0xb1, 0xaf, 0xc0, 0x64, - 0xa6, 0xc3, 0xd0, 0x0b, 0x30, 0xd8, 0xda, 0x72, 0x62, 0x92, 0x89, 0xc0, 0x19, 0xac, 0x53, 0xe0, - 0xe1, 0xfe, 0xec, 0x84, 0x2a, 0xc0, 0x20, 0x98, 0x53, 0xdb, 0xff, 0xcd, 0x82, 0x81, 0xeb, 0xa1, - 0x7b, 0x12, 0x93, 0xe9, 0x15, 0x63, 0x32, 0x3d, 0x54, 0x94, 0xd9, 0xa2, 0x70, 0x1e, 0xad, 0x64, - 0xe6, 0xd1, 0xf9, 0x42, 0x0e, 0xdd, 0xa7, 0xd0, 0x0e, 0x8c, 0xb2, 0x7c, 0x19, 0x22, 0x1a, 0xe8, - 0x39, 0xc3, 0xbe, 0x9a, 0xcd, 0xd8, 0x57, 0x93, 0x1a, 0xa9, 0x66, 0x65, 0x3d, 0x01, 0xc3, 0x22, - 0x22, 0x25, 0x1b, 0x9b, 0x2a, 0x68, 0xb1, 0xc4, 0xdb, 0xbf, 0x52, 0x06, 0x23, 0x3f, 0x07, 0xfa, - 0x3d, 0x0b, 0xe6, 0x22, 0x7e, 0x1b, 0xc7, 0xad, 0xb5, 0x23, 0x2f, 0xd8, 0x6c, 0x34, 0xb7, 0x88, - 0xdb, 0xf6, 0xbd, 0x60, 0x73, 0x75, 0x33, 0x08, 0x15, 0x78, 0xf9, 0x2e, 0x69, 0xb6, 0x99, 0x83, - 0xba, 0x47, 0x32, 0x10, 0x75, 0xe2, 0x7b, 0xe9, 0x60, 0x7f, 0x76, 0x0e, 0x1f, 0x89, 0x37, 0x3e, - 0x62, 0x5b, 0xd0, 0x1f, 0x58, 0x30, 0xcf, 0xd3, 0x56, 0xf4, 0xdf, 0xfe, 0x2e, 0xd6, 0x68, 0x5d, - 0xb2, 0x4a, 0x99, 0xac, 0x93, 0x68, 0x67, 0xf1, 0xe3, 0xa2, 0x43, 0xe7, 0xeb, 0x47, 0xab, 0x0b, - 0x1f, 0xb5, 0x71, 0xf6, 0xbf, 0x28, 0xc3, 0x38, 0xed, 0xc5, 0xf4, 0x06, 0xfa, 0x0b, 0xc6, 0x94, - 0x78, 0x24, 0x33, 0x25, 0xa6, 0x0d, 0xe2, 0xe3, 0xb9, 0x7c, 0x1e, 0xc3, 0xb4, 0xef, 0xc4, 0xc9, - 0x15, 0xe2, 0x44, 0xc9, 0x6d, 0xe2, 0xb0, 0x23, 0x56, 0x31, 0xcd, 0x8f, 0x72, 0x6a, 0xab, 0xbc, - 0x58, 0xd7, 0xb2, 0xcc, 0x70, 0x27, 0x7f, 0xb4, 0x0b, 0x88, 0x1d, 0xe7, 0x46, 0x4e, 0x10, 0xf3, - 0x6f, 0xf1, 0x84, 0xf3, 0xfa, 0x68, 0xb5, 0xce, 0x88, 0x5a, 0xd1, 0xb5, 0x0e, 0x6e, 0x38, 0xa7, - 0x06, 0xed, 0x98, 0x7e, 0xb0, 0xdf, 0x63, 0xfa, 0xa1, 0x1e, 0x01, 0xe0, 0x3f, 0x0b, 0xa7, 0xe8, - 0xa8, 0x98, 0xf1, 0xc3, 0x31, 0x22, 0x30, 0xb9, 0xdd, 0xbe, 0x4d, 0x7c, 0x92, 0x48, 0x98, 0x58, - 0x4a, 0xb9, 0x7a, 0xb8, 0x59, 0x3a, 0x55, 0xf6, 0xae, 0x9a, 0x2c, 0x70, 0x96, 0xa7, 0xfd, 0xab, - 0x16, 0xb0, 0x08, 0xbd, 0x13, 0xd8, 0x8f, 0x3e, 0x65, 0xee, 0x47, 0xd5, 0x22, 0x91, 0x50, 0xb0, - 0x15, 0x3d, 0x0f, 0x53, 0x14, 0x5b, 0x8f, 0xc2, 0xbb, 0x7b, 0x52, 0x19, 0xef, 0xad, 0x02, 0xfd, - 0x1f, 0x8b, 0xaf, 0x10, 0x75, 0x5b, 0x10, 0x7d, 0x01, 0x46, 0x9a, 0x4e, 0xcb, 0x69, 0xf2, 0x4c, - 0x45, 0x85, 0xee, 0x18, 0xa3, 0xd0, 0xdc, 0x92, 0x28, 0xc1, 0xdd, 0x0b, 0x1f, 0x95, 0x5f, 0x29, - 0xc1, 0x3d, 0x5d, 0x0a, 0xaa, 0xca, 0x99, 0x6d, 0x18, 0x37, 0x98, 0xdd, 0x57, 0x5b, 0xf4, 0x0b, - 0x5c, 0x7e, 0x2b, 0x13, 0x62, 0x07, 0xa6, 0x03, 0xed, 0x3f, 0x95, 0x56, 0x52, 0xbf, 0xfd, 0x70, - 0x2f, 0x09, 0xcd, 0x44, 0x9b, 0x16, 0x81, 0x98, 0x61, 0x83, 0x3b, 0x39, 0xdb, 0x7f, 0xdb, 0x82, - 0x07, 0x74, 0x42, 0xed, 0x22, 0x67, 0x2f, 0x07, 0x6f, 0x0d, 0x46, 0xc2, 0x16, 0x89, 0x9c, 0xd4, - 0x48, 0xba, 0x28, 0x3b, 0xfd, 0x86, 0x80, 0x1f, 0xee, 0xcf, 0x9e, 0xd6, 0xb9, 0x4b, 0x38, 0x56, - 0x25, 0x91, 0x0d, 0x43, 0xac, 0x33, 0x62, 0x71, 0xc9, 0x96, 0x65, 0xf3, 0x61, 0x07, 0x43, 0x31, - 0x16, 0x18, 0xfb, 0xe7, 0x2c, 0x3e, 0xb1, 0xf4, 0xa6, 0xa3, 0x77, 0x60, 0x6a, 0x87, 0xda, 0x53, - 0xcb, 0x77, 0x5b, 0x11, 0x77, 0x4f, 0xcb, 0x7e, 0x7a, 0xaa, 0x57, 0x3f, 0x69, 0x1f, 0xb9, 0x58, - 0x15, 0x6d, 0x9e, 0x5a, 0xcb, 0x30, 0xc3, 0x1d, 0xec, 0xed, 0xbf, 0x59, 0xe2, 0x2b, 0x91, 0xa9, - 0x59, 0x4f, 0xc0, 0x70, 0x2b, 0x74, 0x97, 0x56, 0x6b, 0x58, 0xf4, 0x90, 0x92, 0x1f, 0x75, 0x0e, - 0xc6, 0x12, 0x8f, 0x2e, 0x01, 0x90, 0xbb, 0x09, 0x89, 0x02, 0xc7, 0x57, 0xc7, 0xd6, 0x4a, 0x9b, - 0x59, 0x56, 0x18, 0xac, 0x51, 0xd1, 0x32, 0xad, 0x28, 0xdc, 0xf5, 0x5c, 0x76, 0xcb, 0xa1, 0x6c, - 0x96, 0xa9, 0x2b, 0x0c, 0xd6, 0xa8, 0xa8, 0xed, 0xda, 0x0e, 0x62, 0xbe, 0x23, 0x39, 0xb7, 0x45, - 0x26, 0x99, 0x91, 0xd4, 0x76, 0xbd, 0xa9, 0x23, 0xb1, 0x49, 0x8b, 0x16, 0x60, 0x28, 0x71, 0xd8, - 0x61, 0xec, 0x60, 0x71, 0xec, 0xca, 0x3a, 0xa5, 0xd0, 0x13, 0xf6, 0xd0, 0x02, 0x58, 0x14, 0xb4, - 0xbf, 0x54, 0x01, 0x48, 0x55, 0x24, 0xf4, 0x6e, 0xc7, 0x32, 0x7e, 0xba, 0xbb, 0x52, 0x75, 0x7c, - 0x6b, 0x18, 0x7d, 0xd9, 0x82, 0x51, 0xc7, 0xf7, 0xc3, 0xa6, 0x93, 0xb0, 0x9e, 0x28, 0x75, 0x17, - 0x23, 0xa2, 0xfe, 0x85, 0xb4, 0x04, 0x6f, 0xc2, 0x73, 0xf2, 0x2c, 0x54, 0xc3, 0xf4, 0x6c, 0x85, - 0x5e, 0x31, 0xfa, 0xa8, 0xd4, 0x9c, 0xf9, 0x10, 0xce, 0x64, 0x35, 0xe7, 0x0a, 0x93, 0x98, 0x9a, - 0xd2, 0x8c, 0x6e, 0x1a, 0x49, 0x56, 0x06, 0x8a, 0xef, 0x93, 0x1a, 0x9a, 0x42, 0xaf, 0xfc, 0x2a, - 0xa8, 0xae, 0xc7, 0x4b, 0x0f, 0x16, 0x5f, 0xba, 0xd6, 0x54, 0xd2, 0x1e, 0xb1, 0xd2, 0x6f, 0xc3, - 0xa4, 0x6b, 0x6e, 0x89, 0x22, 0xea, 0xec, 0xf1, 0x22, 0xbe, 0x99, 0x1d, 0x34, 0xdd, 0x04, 0x33, - 0x08, 0x9c, 0x65, 0x8c, 0xea, 0x3c, 0x72, 0x7d, 0x35, 0xd8, 0x08, 0x45, 0xbc, 0x99, 0x5d, 0x38, - 0x96, 0x7b, 0x71, 0x42, 0x76, 0x28, 0x65, 0xba, 0xd7, 0x5d, 0x17, 0x65, 0xb1, 0xe2, 0x82, 0x5e, - 0x85, 0x21, 0x76, 0xa5, 0x28, 0xae, 0x8e, 0x14, 0x3b, 0xcf, 0xcc, 0xdb, 0xb0, 0xe9, 0xc4, 0x67, - 0x7f, 0x63, 0x2c, 0x38, 0xa0, 0x2b, 0xf2, 0x4e, 0x7b, 0xbc, 0x1a, 0xdc, 0x8c, 0x09, 0xbb, 0xd3, - 0x5e, 0x59, 0xfc, 0x70, 0x7a, 0x5d, 0x9d, 0xc3, 0x73, 0x13, 0xc9, 0x19, 0x25, 0xa9, 0x4e, 0x21, - 0xfe, 0xcb, 0xfc, 0x74, 0x55, 0x28, 0x6e, 0x9e, 0x99, 0xc3, 0x2e, 0xed, 0xce, 0x5b, 0x26, 0x0b, - 0x9c, 0xe5, 0x79, 0xa2, 0x5b, 0xdc, 0x4c, 0x00, 0x53, 0xd9, 0x85, 0x75, 0x5f, 0xb7, 0xd4, 0x1f, - 0x0e, 0xc0, 0x84, 0x39, 0x11, 0xd0, 0x3c, 0x54, 0x04, 0x13, 0x95, 0x91, 0x4a, 0xcd, 0xed, 0x35, - 0x89, 0xc0, 0x29, 0x0d, 0xcb, 0xc8, 0xc5, 0x8a, 0x6b, 0x91, 0x46, 0x69, 0x46, 0x2e, 0x85, 0xc1, - 0x1a, 0x15, 0xd5, 0x3c, 0x6f, 0x87, 0x61, 0xa2, 0xc4, 0xb5, 0x9a, 0x2d, 0x8b, 0x0c, 0x8a, 0x05, - 0x96, 0x8a, 0xe9, 0x6d, 0x12, 0x05, 0xc4, 0x37, 0xdd, 0x7f, 0x4a, 0x4c, 0x5f, 0xd5, 0x91, 0xd8, - 0xa4, 0xa5, 0xdb, 0x4e, 0x18, 0xb3, 0xe9, 0x27, 0xf4, 0xdb, 0x34, 0x72, 0xab, 0xc1, 0xaf, 0xd4, - 0x49, 0x3c, 0xfa, 0x2c, 0x3c, 0xa0, 0x6e, 0xc0, 0x61, 0xee, 0x4e, 0x95, 0x35, 0x0e, 0x19, 0xe6, - 0xe8, 0x03, 0x4b, 0xf9, 0x64, 0xb8, 0xa8, 0x3c, 0x7a, 0x05, 0x26, 0x84, 0x9a, 0x2a, 0x39, 0x0e, - 0x9b, 0x07, 0xf5, 0x57, 0x0d, 0x2c, 0xce, 0x50, 0xa3, 0x1a, 0x4c, 0x51, 0x08, 0xd3, 0x14, 0x25, - 0x07, 0x7e, 0x93, 0x4f, 0xed, 0xc7, 0x57, 0x33, 0x78, 0xdc, 0x51, 0x02, 0x2d, 0xc0, 0x24, 0xd7, - 0x23, 0xa8, 0x21, 0xc6, 0xc6, 0x41, 0x84, 0x81, 0xaa, 0x85, 0x70, 0xc3, 0x44, 0xe3, 0x2c, 0x3d, - 0x7a, 0x11, 0xc6, 0x9c, 0xa8, 0xb9, 0xe5, 0x25, 0xa4, 0x99, 0xb4, 0x23, 0x9e, 0x31, 0x42, 0x8b, - 0x74, 0x58, 0xd0, 0x70, 0xd8, 0xa0, 0xb4, 0xdf, 0x85, 0x53, 0x39, 0x11, 0xe4, 0x74, 0xe2, 0x38, - 0x2d, 0x4f, 0x7e, 0x53, 0x26, 0x06, 0x6b, 0xa1, 0xbe, 0x2a, 0xbf, 0x46, 0xa3, 0xa2, 0xb3, 0x93, - 0xf9, 0x91, 0xb5, 0x24, 0x92, 0x6a, 0x76, 0xae, 0x48, 0x04, 0x4e, 0x69, 0xec, 0xef, 0x02, 0x68, - 0x5e, 0x90, 0x3e, 0x22, 0x70, 0x5e, 0x84, 0x31, 0x99, 0xf9, 0x54, 0xcb, 0x33, 0xa8, 0x3e, 0xf3, - 0xb2, 0x86, 0xc3, 0x06, 0x25, 0x6d, 0x5b, 0x20, 0x7d, 0x3b, 0xd9, 0x88, 0x2f, 0xe5, 0xf4, 0xc1, - 0x29, 0x0d, 0x7a, 0x1a, 0x46, 0x62, 0xe2, 0x6f, 0x5c, 0xf3, 0x82, 0x6d, 0x31, 0xb1, 0x95, 0x14, - 0x6e, 0x08, 0x38, 0x56, 0x14, 0x68, 0x11, 0xca, 0x6d, 0xcf, 0x15, 0x53, 0x59, 0x6e, 0xf8, 0xe5, - 0x9b, 0xab, 0xb5, 0xc3, 0xfd, 0xd9, 0x47, 0x8a, 0x12, 0xba, 0x52, 0x7b, 0x38, 0x9e, 0xa3, 0xcb, - 0x8f, 0x16, 0xce, 0x73, 0xa8, 0x0f, 0x1d, 0xd1, 0xa1, 0x7e, 0x09, 0x40, 0x7c, 0xb5, 0x9c, 0xcb, - 0xe5, 0x74, 0xd4, 0x2e, 0x2b, 0x0c, 0xd6, 0xa8, 0xa8, 0x55, 0xdd, 0x8c, 0x88, 0x23, 0x0d, 0x4f, - 0x1e, 0x0b, 0x3d, 0x72, 0xef, 0x56, 0xf5, 0x52, 0x96, 0x19, 0xee, 0xe4, 0x8f, 0x42, 0x98, 0x76, - 0xc5, 0x85, 0xcb, 0xb4, 0xd2, 0xca, 0xd1, 0x03, 0xb0, 0x59, 0x30, 0x4a, 0x96, 0x11, 0xee, 0xe4, - 0x8d, 0xde, 0x82, 0x19, 0x09, 0xec, 0xbc, 0xe3, 0xca, 0x96, 0x4b, 0x79, 0xf1, 0xfc, 0xc1, 0xfe, - 0xec, 0x4c, 0xad, 0x90, 0x0a, 0x77, 0xe1, 0x80, 0x30, 0x0c, 0xb1, 0x03, 0x98, 0xb8, 0x3a, 0xca, - 0xf6, 0xb9, 0x27, 0x8b, 0x43, 0xf6, 0xe9, 0x5c, 0x9f, 0x63, 0x87, 0x37, 0x22, 0x68, 0x35, 0x3d, - 0xcb, 0x62, 0x40, 0x2c, 0x38, 0xa1, 0x0d, 0x18, 0x75, 0x82, 0x20, 0x4c, 0x1c, 0xae, 0x42, 0x8d, - 0x15, 0xeb, 0x7e, 0x1a, 0xe3, 0x85, 0xb4, 0x04, 0xe7, 0xae, 0xe2, 0xe0, 0x34, 0x0c, 0xd6, 0x19, - 0xa3, 0x3b, 0x30, 0x19, 0xde, 0xa1, 0xc2, 0x51, 0x9e, 0x13, 0xc4, 0xd5, 0x71, 0x56, 0xd7, 0xf3, - 0x7d, 0x3a, 0x37, 0x8d, 0xc2, 0x9a, 0xd4, 0x32, 0x99, 0xe2, 0x6c, 0x2d, 0x68, 0xce, 0x70, 0xf1, - 0x4e, 0xa4, 0xc1, 0xd7, 0xa9, 0x8b, 0x57, 0xf7, 0xe8, 0xb2, 0x3b, 0xd3, 0x3c, 0x08, 0x93, 0xad, - 0xfe, 0xc9, 0xcc, 0x9d, 0xe9, 0x14, 0x85, 0x75, 0x3a, 0xb4, 0x05, 0x63, 0xe9, 0x39, 0x4f, 0x14, - 0xb3, 0x94, 0x2a, 0xa3, 0x97, 0x2e, 0xf5, 0xf7, 0x71, 0xab, 0x5a, 0x49, 0x7e, 0x59, 0x44, 0x87, - 0x60, 0x83, 0xf3, 0xcc, 0x27, 0x60, 0x54, 0x1b, 0xd8, 0xa3, 0xc4, 0x18, 0xcf, 0xbc, 0x02, 0x53, - 0xd9, 0xa1, 0x3b, 0x52, 0x8c, 0xf2, 0xff, 0x28, 0xc1, 0x64, 0xce, 0x71, 0x0f, 0x4b, 0x0a, 0x9b, - 0x11, 0xa8, 0x69, 0x0e, 0x58, 0x53, 0x2c, 0x96, 0xfa, 0x10, 0x8b, 0x52, 0x46, 0x97, 0x0b, 0x65, - 0xb4, 0x10, 0x85, 0x03, 0xef, 0x45, 0x14, 0x9a, 0xbb, 0xcf, 0x60, 0x5f, 0xbb, 0xcf, 0x31, 0x88, - 0x4f, 0x63, 0x03, 0x1b, 0xee, 0x63, 0x03, 0xfb, 0xc5, 0x12, 0x4c, 0xa5, 0xf1, 0xd8, 0x22, 0x05, - 0xf3, 0xfd, 0x3f, 0x24, 0x78, 0xd5, 0x38, 0x24, 0xc8, 0x4f, 0xb1, 0x9c, 0x69, 0x55, 0xe1, 0x81, - 0x01, 0xce, 0x1c, 0x18, 0x3c, 0xd9, 0x17, 0xb7, 0xee, 0x87, 0x07, 0x7f, 0xa7, 0x04, 0x67, 0xb2, - 0x45, 0x96, 0x7c, 0xc7, 0xdb, 0x39, 0x81, 0xbe, 0xb9, 0x61, 0xf4, 0xcd, 0x33, 0xfd, 0x7c, 0x0d, - 0x6b, 0x5a, 0x61, 0x07, 0xbd, 0x9e, 0xe9, 0xa0, 0xf9, 0xfe, 0x59, 0x76, 0xef, 0xa5, 0xef, 0x5a, - 0x70, 0x2e, 0xb7, 0xdc, 0x09, 0x78, 0x48, 0xaf, 0x9b, 0x1e, 0xd2, 0x27, 0xfa, 0xfe, 0xa6, 0x02, - 0x97, 0xe9, 0xd7, 0xca, 0x05, 0xdf, 0xc2, 0x7c, 0x4c, 0x37, 0x60, 0xd4, 0x69, 0x36, 0x49, 0x1c, - 0xaf, 0x85, 0xae, 0xca, 0xc1, 0xf4, 0x0c, 0xdb, 0x93, 0x52, 0xf0, 0xe1, 0xfe, 0xec, 0x4c, 0x96, - 0x45, 0x8a, 0xc6, 0x3a, 0x07, 0x33, 0xaf, 0x5b, 0xe9, 0x58, 0xf3, 0xba, 0x5d, 0x02, 0xd8, 0x55, - 0x56, 0x6d, 0xd6, 0x61, 0xa5, 0xd9, 0xbb, 0x1a, 0x15, 0xfa, 0x69, 0xa6, 0x2b, 0xf2, 0x38, 0x0b, - 0x7e, 0x32, 0xf0, 0x5c, 0x9f, 0x63, 0xa5, 0xc7, 0x6c, 0xf0, 0x5b, 0x9b, 0xca, 0xb9, 0xa7, 0x58, - 0xa2, 0xcf, 0xc0, 0x54, 0xcc, 0x13, 0x03, 0x2c, 0xf9, 0x4e, 0xcc, 0x2e, 0x13, 0x08, 0x99, 0xc8, - 0xae, 0x62, 0x36, 0x32, 0x38, 0xdc, 0x41, 0x6d, 0xff, 0x83, 0x32, 0x3c, 0xd8, 0x65, 0x8a, 0xa2, - 0x05, 0xf3, 0x5c, 0xf4, 0xa9, 0xac, 0x77, 0x67, 0x26, 0xb7, 0xb0, 0xe1, 0xee, 0xc9, 0x8c, 0x71, - 0xe9, 0x3d, 0x8f, 0xf1, 0x57, 0x2c, 0xcd, 0xef, 0xc6, 0xa3, 0x27, 0x3f, 0x75, 0xc4, 0xa5, 0xf7, - 0xe3, 0xea, 0x4c, 0xff, 0xa2, 0x05, 0x8f, 0xe4, 0x7e, 0x96, 0x11, 0x5f, 0x31, 0x0f, 0x95, 0x26, - 0x05, 0x6a, 0x17, 0x7e, 0xd2, 0x5b, 0x75, 0x12, 0x81, 0x53, 0x1a, 0x23, 0x8c, 0xa2, 0xd4, 0x33, - 0x8c, 0xe2, 0x9f, 0x59, 0x70, 0x3a, 0xdb, 0x88, 0x13, 0x90, 0x4c, 0xab, 0xa6, 0x64, 0xfa, 0x70, - 0x3f, 0x43, 0x5e, 0x20, 0x94, 0xfe, 0xdd, 0x04, 0x9c, 0xed, 0xd8, 0xb9, 0x78, 0xdf, 0xed, 0xc2, - 0xf4, 0x26, 0x53, 0xe1, 0xb5, 0xab, 0x54, 0xe2, 0x63, 0x72, 0x6f, 0x9d, 0x75, 0xbd, 0x77, 0xc5, - 0xcd, 0x90, 0x0e, 0x12, 0xdc, 0x59, 0x05, 0xfa, 0xa2, 0x05, 0xa7, 0x9d, 0x3b, 0x71, 0xc7, 0x3b, - 0x1d, 0x62, 0xce, 0x3c, 0x9f, 0xeb, 0x1d, 0xeb, 0xf1, 0xae, 0xc7, 0x62, 0xf5, 0x60, 0x7f, 0xf6, - 0x74, 0x1e, 0x15, 0xce, 0xad, 0x0b, 0x61, 0x91, 0x86, 0x8e, 0x6a, 0x39, 0x5d, 0x2e, 0xfb, 0xe5, - 0x5d, 0xc5, 0xe0, 0x32, 0x4a, 0x62, 0xb0, 0xe2, 0x83, 0x6e, 0x41, 0x65, 0x53, 0xde, 0x8f, 0x12, - 0x32, 0x30, 0x77, 0x53, 0xc9, 0xbd, 0x44, 0xc5, 0xc3, 0xdc, 0x15, 0x0a, 0xa7, 0xac, 0xd0, 0x2b, - 0x50, 0x0e, 0x36, 0x62, 0x71, 0xaf, 0x38, 0x3f, 0x28, 0xc6, 0x0c, 0x3b, 0xe2, 0x97, 0x32, 0xaf, - 0xaf, 0x34, 0x30, 0x2d, 0x48, 0xcb, 0x47, 0xb7, 0x5d, 0xe1, 0xd0, 0xcd, 0x2d, 0x8f, 0x17, 0x6b, - 0x9d, 0xe5, 0xf1, 0x62, 0x0d, 0xd3, 0x82, 0x68, 0x05, 0x06, 0xd9, 0xe5, 0x0c, 0xe1, 0xad, 0xcd, - 0xbd, 0x54, 0xde, 0x71, 0xf1, 0x84, 0xe7, 0x17, 0x64, 0x60, 0xcc, 0x8b, 0xa3, 0x57, 0x61, 0xa8, - 0xc9, 0x12, 0xcc, 0x0b, 0xd3, 0x3a, 0x3f, 0x51, 0x42, 0x47, 0x0a, 0x7a, 0x7e, 0x8e, 0xc4, 0xe1, - 0x58, 0x70, 0x60, 0xbc, 0x48, 0x6b, 0x6b, 0x23, 0x16, 0x16, 0x73, 0x3e, 0xaf, 0x8e, 0xc7, 0x00, - 0x04, 0x2f, 0x06, 0xc7, 0x82, 0x03, 0xfa, 0x24, 0x94, 0x36, 0x9a, 0xe2, 0x76, 0x46, 0xae, 0x6f, - 0xd6, 0xbc, 0x2f, 0xbb, 0x38, 0x74, 0xb0, 0x3f, 0x5b, 0x5a, 0x59, 0xc2, 0xa5, 0x8d, 0x26, 0xba, - 0x0e, 0xc3, 0x1b, 0xfc, 0x56, 0xa4, 0x48, 0x26, 0xfa, 0x78, 0xfe, 0x85, 0xcd, 0x8e, 0x8b, 0x93, - 0xfc, 0x3a, 0x82, 0x40, 0x60, 0xc9, 0x04, 0xad, 0x03, 0x6c, 0xa8, 0xdb, 0x9d, 0x22, 0x9b, 0xe8, - 0x87, 0xfb, 0xb9, 0x03, 0x2a, 0x8c, 0x46, 0x05, 0xc5, 0x1a, 0x1f, 0x3a, 0x33, 0x1d, 0xf9, 0xca, - 0x05, 0xcb, 0x24, 0x5a, 0x30, 0x33, 0x73, 0x9f, 0xc2, 0xe0, 0x33, 0x53, 0xa1, 0x70, 0xca, 0x0a, - 0x6d, 0xc3, 0xf8, 0x6e, 0xdc, 0xda, 0x22, 0x72, 0x31, 0xb2, 0xa4, 0xa2, 0xa6, 0x59, 0x99, 0x66, - 0x80, 0x15, 0x84, 0x5e, 0x94, 0xb4, 0x1d, 0xbf, 0x43, 0x7e, 0xb0, 0xa4, 0x58, 0xb7, 0x74, 0x66, - 0xd8, 0xe4, 0x4d, 0xbb, 0xfa, 0x9d, 0x76, 0x78, 0x7b, 0x2f, 0x21, 0x22, 0xd5, 0x68, 0x6e, 0x57, - 0xbf, 0xc6, 0x49, 0x3a, 0xbb, 0x5a, 0x20, 0xb0, 0x64, 0xa2, 0x3a, 0x85, 0xc9, 0xbd, 0xa9, 0x1e, - 0x9d, 0xd2, 0xd1, 0xde, 0xb4, 0x53, 0x98, 0x9c, 0x4b, 0x59, 0x31, 0xf9, 0xd6, 0xda, 0x0a, 0x93, - 0x30, 0xc8, 0xc8, 0xd6, 0xe9, 0x62, 0xf9, 0x56, 0xcf, 0xa1, 0xef, 0x94, 0x6f, 0x79, 0x54, 0x38, - 0xb7, 0x2e, 0xe4, 0xc2, 0x44, 0x2b, 0x8c, 0x92, 0x3b, 0x61, 0x24, 0xe7, 0x12, 0xea, 0x62, 0x28, - 0x19, 0x94, 0xa2, 0x46, 0x16, 0x80, 0x6a, 0x62, 0x70, 0x86, 0x27, 0x1d, 0x92, 0xb8, 0xe9, 0xf8, - 0x64, 0xf5, 0x46, 0xf5, 0x54, 0xf1, 0x90, 0x34, 0x38, 0x49, 0xe7, 0x90, 0x08, 0x04, 0x96, 0x4c, - 0xa8, 0xa4, 0x61, 0x59, 0xab, 0x59, 0x6e, 0xd4, 0x02, 0x49, 0xd3, 0x11, 0x9a, 0xc9, 0x25, 0x0d, - 0x03, 0x63, 0x5e, 0x1c, 0x7d, 0x1e, 0x2a, 0x42, 0xff, 0x0b, 0xe3, 0xea, 0x99, 0x0e, 0x6d, 0x34, - 0x6d, 0x19, 0x27, 0xba, 0xd1, 0xc8, 0xdf, 0x22, 0xc5, 0x0d, 0x2c, 0x49, 0x84, 0x53, 0xa6, 0xf6, - 0x97, 0x86, 0x3a, 0x35, 0x03, 0xa6, 0xe7, 0x7f, 0xc9, 0xea, 0x38, 0x2a, 0xfd, 0x58, 0xbf, 0xc6, - 0xe9, 0x31, 0x1e, 0x9a, 0x7e, 0xd1, 0x82, 0xb3, 0xad, 0xdc, 0x8f, 0x12, 0xdb, 0x6c, 0x7f, 0x36, - 0x2e, 0xef, 0x06, 0x95, 0x75, 0x38, 0x1f, 0x8f, 0x0b, 0x6a, 0xca, 0xea, 0xc3, 0xe5, 0xf7, 0xac, - 0x0f, 0xaf, 0xc1, 0x08, 0x53, 0xe5, 0xd2, 0x0c, 0x27, 0x7d, 0xa5, 0x05, 0x61, 0x1b, 0xf6, 0x92, - 0x28, 0x88, 0x15, 0x0b, 0xf4, 0xf3, 0x16, 0x3c, 0x9c, 0x6d, 0x3a, 0x26, 0x0c, 0x2d, 0x32, 0xe6, - 0x71, 0x13, 0x63, 0x45, 0x7c, 0xff, 0xc3, 0xf5, 0x6e, 0xc4, 0x87, 0xbd, 0x08, 0x70, 0xf7, 0xca, - 0x50, 0x2d, 0xc7, 0xc6, 0x19, 0x32, 0x4f, 0x52, 0x7a, 0xdb, 0x39, 0x27, 0xab, 0xa5, 0x7f, 0xdd, - 0xca, 0x51, 0x2f, 0xb9, 0x3d, 0xf5, 0xb2, 0x69, 0x4f, 0x3d, 0x96, 0xb5, 0xa7, 0x3a, 0xbc, 0x23, - 0x86, 0x29, 0xd5, 0x7f, 0x4e, 0xcf, 0x7e, 0x93, 0xb9, 0xd8, 0x3e, 0x5c, 0xe8, 0x25, 0x66, 0x59, - 0x88, 0x93, 0xab, 0xce, 0x15, 0xd3, 0x10, 0x27, 0x77, 0xb5, 0x86, 0x19, 0xa6, 0xdf, 0xbc, 0x01, - 0xf6, 0x7f, 0xb1, 0xa0, 0x5c, 0x0f, 0xdd, 0x13, 0xf0, 0xf6, 0x7c, 0xca, 0xf0, 0xf6, 0x3c, 0x58, - 0xf0, 0xb2, 0x5a, 0xa1, 0x6f, 0x67, 0x39, 0xe3, 0xdb, 0x79, 0xb8, 0x88, 0x41, 0x77, 0x4f, 0xce, - 0xdf, 0x2d, 0x83, 0xfe, 0x0e, 0x1c, 0xfa, 0x97, 0xf7, 0x12, 0xbc, 0x5a, 0xee, 0xf6, 0x34, 0x9c, - 0xe0, 0xcc, 0x22, 0xa3, 0xe4, 0xbd, 0xb8, 0x1f, 0xb3, 0x18, 0xd6, 0xd7, 0x89, 0xb7, 0xb9, 0x95, - 0x10, 0x37, 0xfb, 0x39, 0x27, 0x17, 0xc3, 0xfa, 0x1f, 0x2d, 0x98, 0xcc, 0xd4, 0x8e, 0xfc, 0xbc, - 0x4b, 0x36, 0xf7, 0xe8, 0xbf, 0x99, 0xee, 0x79, 0x2b, 0x67, 0x0e, 0x40, 0xb9, 0xd2, 0xa5, 0x8f, - 0x84, 0xe9, 0xae, 0xca, 0xd7, 0x1e, 0x63, 0x8d, 0x02, 0xbd, 0x00, 0xa3, 0x49, 0xd8, 0x0a, 0xfd, - 0x70, 0x73, 0xef, 0x2a, 0x91, 0x99, 0x2a, 0xd4, 0x81, 0xc7, 0x7a, 0x8a, 0xc2, 0x3a, 0x9d, 0xfd, - 0x6b, 0x65, 0xc8, 0xbe, 0x1d, 0xf8, 0x67, 0x73, 0xf2, 0x83, 0x39, 0x27, 0xbf, 0x67, 0xc1, 0x14, - 0xad, 0x9d, 0x45, 0xb4, 0xc8, 0x60, 0x53, 0x95, 0xfc, 0xdf, 0xea, 0x92, 0xfc, 0xff, 0x31, 0x2a, - 0xbb, 0xdc, 0xb0, 0x9d, 0x08, 0x5f, 0x8e, 0x26, 0x9c, 0x28, 0x14, 0x0b, 0xac, 0xa0, 0x23, 0x51, - 0x24, 0xae, 0xce, 0xe8, 0x74, 0x24, 0x8a, 0xb0, 0xc0, 0xca, 0xb7, 0x01, 0x06, 0x0a, 0xde, 0x06, - 0x60, 0x39, 0x9c, 0x44, 0x14, 0x85, 0x50, 0x0d, 0xb4, 0x1c, 0x4e, 0x32, 0xbc, 0x22, 0xa5, 0xb1, - 0xbf, 0x59, 0x86, 0xb1, 0x7a, 0xe8, 0xa6, 0x01, 0xe3, 0xcf, 0x1b, 0x01, 0xe3, 0x17, 0x32, 0x01, - 0xe3, 0x53, 0x3a, 0xed, 0xf1, 0xc4, 0x8b, 0x8b, 0x0c, 0x5f, 0xec, 0xa5, 0x8a, 0x7b, 0x8c, 0x15, - 0x37, 0x32, 0x7c, 0x29, 0x46, 0xd8, 0xe4, 0xfb, 0x93, 0x14, 0x23, 0xfe, 0xa7, 0x16, 0x4c, 0xd4, - 0x43, 0x97, 0x4e, 0xd0, 0x9f, 0xa4, 0xd9, 0xa8, 0x67, 0x08, 0x1b, 0xea, 0x92, 0x21, 0xec, 0xef, - 0x59, 0x30, 0x5c, 0x0f, 0xdd, 0x13, 0xf0, 0x73, 0xbe, 0x6c, 0xfa, 0x39, 0x1f, 0x28, 0x90, 0xb2, - 0x05, 0xae, 0xcd, 0xdf, 0x2a, 0xc3, 0x38, 0x6d, 0x67, 0xb8, 0x29, 0x47, 0xc9, 0xe8, 0x11, 0xab, - 0x8f, 0x1e, 0xa1, 0xca, 0x5c, 0xe8, 0xfb, 0xe1, 0x9d, 0xec, 0x88, 0xad, 0x30, 0x28, 0x16, 0x58, - 0xf4, 0x34, 0x8c, 0xb4, 0x22, 0xb2, 0xeb, 0x85, 0xed, 0x38, 0x7b, 0xf9, 0xae, 0x2e, 0xe0, 0x58, - 0x51, 0xa0, 0xe7, 0x61, 0x2c, 0xf6, 0x82, 0x26, 0x91, 0x91, 0x15, 0x03, 0x2c, 0xb2, 0x82, 0x27, - 0x59, 0xd4, 0xe0, 0xd8, 0xa0, 0x42, 0xaf, 0x43, 0x85, 0xfd, 0x67, 0xeb, 0xe6, 0xe8, 0xa9, 0xff, - 0xb9, 0xa9, 0x2a, 0x19, 0xe0, 0x94, 0x17, 0xba, 0x04, 0x90, 0xc8, 0x18, 0x90, 0x58, 0xdc, 0x0d, - 0x55, 0x1a, 0xa5, 0x8a, 0x0e, 0x89, 0xb1, 0x46, 0x85, 0x9e, 0x82, 0x4a, 0xe2, 0x78, 0xfe, 0x35, - 0x2f, 0x20, 0xb1, 0x88, 0xa1, 0x11, 0x89, 0x8b, 0x05, 0x10, 0xa7, 0x78, 0xba, 0xa3, 0xb3, 0x9b, - 0xc7, 0xfc, 0xe1, 0x90, 0x11, 0x46, 0xcd, 0x76, 0xf4, 0x6b, 0x0a, 0x8a, 0x35, 0x0a, 0xfb, 0x45, - 0x38, 0x53, 0x0f, 0xdd, 0x7a, 0x18, 0x25, 0x2b, 0x61, 0x74, 0xc7, 0x89, 0x5c, 0x39, 0x7e, 0xb3, - 0x32, 0x87, 0x2e, 0xdd, 0x75, 0x07, 0xb9, 0x5d, 0x6f, 0x64, 0xc7, 0x7d, 0x8e, 0xed, 0xe9, 0x47, - 0xbc, 0x94, 0xf0, 0x6f, 0x4a, 0x80, 0xea, 0x2c, 0x4a, 0xc5, 0x78, 0x5d, 0xe6, 0x2d, 0x98, 0x88, - 0xc9, 0x35, 0x2f, 0x68, 0xdf, 0x15, 0xac, 0xba, 0xdd, 0xf8, 0x68, 0x2c, 0xeb, 0x94, 0xdc, 0x37, - 0x62, 0xc2, 0x70, 0x86, 0x1b, 0xed, 0xc2, 0xa8, 0x1d, 0x2c, 0xc4, 0x37, 0x63, 0x12, 0x89, 0xd7, - 0x54, 0x58, 0x17, 0x62, 0x09, 0xc4, 0x29, 0x9e, 0x4e, 0x19, 0xf6, 0xe7, 0x7a, 0x18, 0xe0, 0x30, - 0x4c, 0xe4, 0x24, 0x63, 0xf9, 0xf8, 0x35, 0x38, 0x36, 0xa8, 0xd0, 0x0a, 0xa0, 0xb8, 0xdd, 0x6a, - 0xf9, 0xec, 0x50, 0xcf, 0xf1, 0x2f, 0x47, 0x61, 0xbb, 0xc5, 0xc3, 0x8c, 0x45, 0x2a, 0xfb, 0x46, - 0x07, 0x16, 0xe7, 0x94, 0xa0, 0x82, 0x61, 0x23, 0x66, 0xbf, 0xc5, 0xe5, 0x63, 0xee, 0x9b, 0x6c, - 0x30, 0x10, 0x96, 0x38, 0xfb, 0x0b, 0x6c, 0x33, 0x63, 0x8f, 0x60, 0x24, 0xed, 0x88, 0xa0, 0x1d, - 0x18, 0x6f, 0xb1, 0x0d, 0x2b, 0x89, 0x42, 0xdf, 0x27, 0x52, 0x6f, 0xbc, 0xb7, 0x88, 0x19, 0x9e, - 0x14, 0x5f, 0x67, 0x87, 0x4d, 0xee, 0xf6, 0x97, 0x26, 0x99, 0x5c, 0x6a, 0x70, 0xa3, 0x65, 0x58, - 0xc4, 0xc1, 0x0a, 0x0d, 0x6d, 0xa6, 0xf8, 0xd1, 0xa9, 0x54, 0xd2, 0x8b, 0x58, 0x5a, 0x2c, 0xcb, - 0xa2, 0xd7, 0x58, 0x7c, 0x36, 0x17, 0x06, 0xbd, 0x9e, 0xbb, 0xe3, 0x54, 0x46, 0x6c, 0xb6, 0x28, - 0x88, 0x35, 0x26, 0xe8, 0x1a, 0x8c, 0x8b, 0x37, 0x13, 0x84, 0x0b, 0xa1, 0x6c, 0x98, 0xbf, 0xe3, - 0x58, 0x47, 0x1e, 0x66, 0x01, 0xd8, 0x2c, 0x8c, 0x36, 0xe1, 0x61, 0xed, 0x85, 0x9f, 0x9c, 0xa8, - 0x2d, 0x2e, 0x5b, 0x1e, 0x39, 0xd8, 0x9f, 0x7d, 0x78, 0xbd, 0x1b, 0x21, 0xee, 0xce, 0x07, 0xdd, - 0x80, 0x33, 0x4e, 0x33, 0xf1, 0x76, 0x49, 0x8d, 0x38, 0xae, 0xef, 0x05, 0xc4, 0xbc, 0x8d, 0x7e, - 0xee, 0x60, 0x7f, 0xf6, 0xcc, 0x42, 0x1e, 0x01, 0xce, 0x2f, 0x87, 0x5e, 0x86, 0x8a, 0x1b, 0xc4, - 0xa2, 0x0f, 0x86, 0x8c, 0xc7, 0xab, 0x2a, 0xb5, 0xeb, 0x0d, 0xf5, 0xfd, 0xe9, 0x1f, 0x9c, 0x16, - 0x40, 0x9b, 0xfc, 0x91, 0x73, 0x65, 0x91, 0x0c, 0x77, 0xa4, 0x18, 0xc8, 0xda, 0xb6, 0xc6, 0xad, - 0x10, 0xee, 0x3f, 0x53, 0x31, 0x91, 0xc6, 0x85, 0x11, 0x83, 0x31, 0x7a, 0x15, 0x50, 0x4c, 0xa2, - 0x5d, 0xaf, 0x49, 0x16, 0x9a, 0x2c, 0x0b, 0x29, 0xf3, 0xba, 0x8c, 0x18, 0x01, 0xfe, 0xa8, 0xd1, - 0x41, 0x81, 0x73, 0x4a, 0xa1, 0x2b, 0x54, 0xa2, 0xe8, 0x50, 0x11, 0xc2, 0x2a, 0xd5, 0xbc, 0x6a, - 0x8d, 0xb4, 0x22, 0xd2, 0x74, 0x12, 0xe2, 0x9a, 0x1c, 0x71, 0xa6, 0x1c, 0xdd, 0x6f, 0x54, 0x72, - 0x77, 0x30, 0x03, 0x2f, 0x3b, 0x13, 0xbc, 0x53, 0x0b, 0x69, 0x2b, 0x8c, 0x93, 0xeb, 0x24, 0xb9, - 0x13, 0x46, 0xdb, 0x22, 0x13, 0x54, 0x9a, 0xfa, 0x2d, 0x45, 0x61, 0x9d, 0x8e, 0x6a, 0x44, 0xec, - 0xe8, 0x6a, 0xb5, 0xc6, 0xce, 0x19, 0x46, 0xd2, 0x75, 0x72, 0x85, 0x83, 0xb1, 0xc4, 0x4b, 0xd2, - 0xd5, 0xfa, 0x12, 0x3b, 0x3d, 0xc8, 0x90, 0xae, 0xd6, 0x97, 0xb0, 0xc4, 0x23, 0xd2, 0xf9, 0x30, - 0xd8, 0x44, 0xf1, 0x09, 0x4d, 0xa7, 0x5c, 0xee, 0xf3, 0x6d, 0xb0, 0x00, 0xa6, 0xd4, 0x93, 0x64, - 0x3c, 0x45, 0x56, 0x5c, 0x9d, 0x2c, 0x7e, 0x6d, 0x3d, 0x37, 0xbf, 0x96, 0xf2, 0xaa, 0xad, 0x66, - 0x38, 0xe1, 0x0e, 0xde, 0x46, 0x96, 0x83, 0xa9, 0x9e, 0xc9, 0xf9, 0xe7, 0xa1, 0x12, 0xb7, 0x6f, - 0xbb, 0xe1, 0x8e, 0xe3, 0x05, 0xcc, 0xed, 0xaf, 0x3f, 0x04, 0x2e, 0x11, 0x38, 0xa5, 0x41, 0x2b, - 0x30, 0xe2, 0xc8, 0x17, 0xf2, 0x51, 0xf1, 0xb5, 0x67, 0xf5, 0x34, 0x3e, 0xf3, 0x68, 0xaa, 0x37, - 0xf1, 0x55, 0x59, 0xf4, 0x12, 0x8c, 0x8b, 0x8b, 0x40, 0x22, 0x3e, 0xf0, 0x94, 0x19, 0x8f, 0xde, - 0xd0, 0x91, 0xd8, 0xa4, 0x45, 0x3f, 0x0d, 0x13, 0x94, 0x4b, 0x2a, 0xd8, 0xaa, 0xa7, 0xfb, 0x91, - 0x88, 0x5a, 0xd2, 0x65, 0xbd, 0x30, 0xce, 0x30, 0x43, 0x2e, 0x3c, 0xe4, 0xb4, 0x93, 0x70, 0x87, - 0xce, 0x70, 0x73, 0xfe, 0xaf, 0x87, 0xdb, 0x24, 0x60, 0x7e, 0xfa, 0x91, 0xc5, 0x0b, 0x07, 0xfb, - 0xb3, 0x0f, 0x2d, 0x74, 0xa1, 0xc3, 0x5d, 0xb9, 0xa0, 0x9b, 0x30, 0x9a, 0x84, 0xbe, 0x08, 0xec, - 0x8d, 0xab, 0x67, 0x8b, 0xb3, 0xb4, 0xac, 0x2b, 0x32, 0xdd, 0x9d, 0xa0, 0x8a, 0x62, 0x9d, 0x0f, - 0x5a, 0xe7, 0x6b, 0x8c, 0x25, 0xfb, 0x23, 0x71, 0xf5, 0x81, 0xe2, 0x8e, 0x51, 0x39, 0x01, 0xcd, - 0x25, 0x28, 0x4a, 0x62, 0x9d, 0x0d, 0xba, 0x0c, 0xd3, 0xad, 0xc8, 0x0b, 0xd9, 0xc4, 0x56, 0x2e, - 0xdf, 0xaa, 0x91, 0xbf, 0x6b, 0xba, 0x9e, 0x25, 0xc0, 0x9d, 0x65, 0xd0, 0x45, 0xaa, 0xa0, 0x72, - 0x60, 0xf5, 0x1c, 0x7f, 0xb4, 0x81, 0x2b, 0xa7, 0x1c, 0x86, 0x15, 0x76, 0xe6, 0xd3, 0x30, 0xdd, - 0x21, 0x29, 0x8f, 0x14, 0x64, 0xf9, 0xeb, 0x83, 0x50, 0x51, 0xee, 0x40, 0x34, 0x6f, 0x7a, 0x79, - 0xcf, 0x65, 0xbd, 0xbc, 0x23, 0x54, 0x5f, 0xd3, 0x1d, 0xbb, 0xeb, 0x39, 0xef, 0x4e, 0x5f, 0x28, - 0x10, 0x0d, 0xfd, 0xdf, 0x88, 0x3a, 0xc2, 0x9b, 0xdc, 0xa9, 0xc1, 0x38, 0xd0, 0xd5, 0x60, 0xec, - 0xf3, 0x0d, 0x38, 0x6a, 0x1a, 0xb6, 0x42, 0x77, 0xb5, 0x9e, 0x7d, 0x14, 0xa9, 0x4e, 0x81, 0x98, - 0xe3, 0x98, 0x72, 0x4f, 0xb7, 0x75, 0xa6, 0xdc, 0x0f, 0xdf, 0xa3, 0x72, 0x2f, 0x19, 0xe0, 0x94, - 0x17, 0xf2, 0x61, 0xba, 0x69, 0xbe, 0x67, 0xa5, 0x6e, 0x41, 0x3d, 0xda, 0xf3, 0x65, 0xa9, 0xb6, - 0xf6, 0xc8, 0xc5, 0x52, 0x96, 0x0b, 0xee, 0x64, 0x8c, 0x5e, 0x82, 0x91, 0x77, 0xc2, 0x98, 0x4d, - 0x3b, 0xb1, 0xb7, 0xc9, 0x7b, 0x27, 0x23, 0xaf, 0xdd, 0x68, 0x30, 0xf8, 0xe1, 0xfe, 0xec, 0x68, - 0x3d, 0x74, 0xe5, 0x5f, 0xac, 0x0a, 0xa0, 0xbb, 0x70, 0xc6, 0x90, 0x08, 0xaa, 0xb9, 0xd0, 0x7f, - 0x73, 0x1f, 0x16, 0xd5, 0x9d, 0x59, 0xcd, 0xe3, 0x84, 0xf3, 0x2b, 0xb0, 0xbf, 0xc5, 0x9d, 0x9e, - 0xc2, 0x35, 0x42, 0xe2, 0xb6, 0x7f, 0x12, 0x99, 0xec, 0x97, 0x0d, 0xaf, 0xcd, 0x3d, 0x3b, 0xd6, - 0x7f, 0xdf, 0x62, 0x8e, 0xf5, 0x75, 0xb2, 0xd3, 0xf2, 0x9d, 0xe4, 0x24, 0x42, 0x6b, 0x5f, 0x83, - 0x91, 0x44, 0xd4, 0xd6, 0x2d, 0xf9, 0xbe, 0xd6, 0x28, 0x76, 0xb8, 0xa0, 0x36, 0x44, 0x09, 0xc5, - 0x8a, 0x8d, 0xfd, 0x4f, 0xf8, 0x08, 0x48, 0xcc, 0x09, 0xf8, 0x16, 0x6a, 0xa6, 0x6f, 0x61, 0xb6, - 0xc7, 0x17, 0x14, 0xf8, 0x18, 0xfe, 0xb1, 0xd9, 0x6e, 0x66, 0x7b, 0x7c, 0xd0, 0x4f, 0x74, 0xec, - 0x5f, 0xb6, 0xe0, 0x74, 0xde, 0x91, 0x3e, 0x55, 0x62, 0xb8, 0xe5, 0xa3, 0x4e, 0xb8, 0x54, 0x0f, - 0xde, 0x12, 0x70, 0xac, 0x28, 0xfa, 0xce, 0x90, 0x7d, 0xb4, 0xcc, 0x44, 0x37, 0xc0, 0x7c, 0xfa, - 0x0c, 0xbd, 0xc2, 0x63, 0xe5, 0x2d, 0xf5, 0x36, 0xd9, 0xd1, 0xe2, 0xe4, 0xed, 0x6f, 0x94, 0xe0, - 0x34, 0x77, 0x51, 0x2f, 0xec, 0x86, 0x9e, 0x5b, 0x0f, 0x5d, 0x71, 0x73, 0xe0, 0x0d, 0x18, 0x6b, - 0x69, 0xe6, 0x6a, 0xb7, 0xdc, 0x28, 0xba, 0x59, 0x9b, 0x9a, 0x0d, 0x3a, 0x14, 0x1b, 0xbc, 0x90, - 0x0b, 0x63, 0x64, 0xd7, 0x6b, 0x2a, 0x3f, 0x67, 0xe9, 0xc8, 0x22, 0x5d, 0xd5, 0xb2, 0xac, 0xf1, - 0xc1, 0x06, 0xd7, 0xfb, 0xf0, 0x4c, 0x85, 0xfd, 0x55, 0x0b, 0x1e, 0x28, 0xc8, 0xa4, 0x42, 0xab, - 0xbb, 0xc3, 0x0e, 0x03, 0xc4, 0x3b, 0x7a, 0xaa, 0x3a, 0x7e, 0x44, 0x80, 0x05, 0x16, 0xfd, 0x14, - 0x00, 0x77, 0xf1, 0xb3, 0x57, 0xcb, 0x4b, 0xc5, 0x31, 0x4a, 0x1d, 0x09, 0x0d, 0xb4, 0x5b, 0xef, - 0xea, 0x9d, 0x72, 0x8d, 0x97, 0xfd, 0xab, 0x65, 0x18, 0xe4, 0x8f, 0x2a, 0xaf, 0xc0, 0xf0, 0x16, - 0xcf, 0xdb, 0xda, 0x4f, 0x8a, 0xd8, 0xd4, 0x1c, 0xe1, 0x00, 0x2c, 0x0b, 0xa3, 0x35, 0x38, 0x25, - 0x6e, 0xa7, 0xd4, 0x88, 0xef, 0xec, 0x49, 0xab, 0x96, 0xbf, 0x5d, 0x20, 0x13, 0x6f, 0x9f, 0x5a, - 0xed, 0x24, 0xc1, 0x79, 0xe5, 0xd0, 0x2b, 0x1d, 0xd9, 0xda, 0x78, 0xc6, 0x5b, 0xa5, 0x03, 0xf7, - 0xc8, 0xd8, 0xf6, 0x12, 0x8c, 0xb7, 0x3a, 0xec, 0x77, 0xed, 0x3d, 0x5b, 0xd3, 0x66, 0x37, 0x69, - 0x59, 0x7c, 0x40, 0x9b, 0x45, 0x43, 0xac, 0x6f, 0x45, 0x24, 0xde, 0x0a, 0x7d, 0x57, 0x3c, 0xde, - 0x98, 0xc6, 0x07, 0x64, 0xf0, 0xb8, 0xa3, 0x04, 0xe5, 0xb2, 0xe1, 0x78, 0x7e, 0x3b, 0x22, 0x29, - 0x97, 0x21, 0x93, 0xcb, 0x4a, 0x06, 0x8f, 0x3b, 0x4a, 0xd0, 0x79, 0x74, 0x46, 0xbc, 0xfc, 0x27, - 0xef, 0x2c, 0xab, 0xa0, 0x8f, 0x61, 0x19, 0x95, 0xde, 0x25, 0xd7, 0x85, 0x38, 0xf2, 0x57, 0x6f, - 0x07, 0x6a, 0x6f, 0x4a, 0x89, 0x78, 0x74, 0xc9, 0xe5, 0x5e, 0xde, 0x9f, 0xfb, 0x13, 0x0b, 0x4e, - 0xe5, 0x04, 0x82, 0x71, 0x51, 0xb5, 0xe9, 0xc5, 0x89, 0xca, 0xa9, 0xaf, 0x89, 0x2a, 0x0e, 0xc7, - 0x8a, 0x82, 0xae, 0x07, 0x2e, 0x0c, 0xb3, 0x02, 0x50, 0x04, 0x6f, 0x08, 0xec, 0xd1, 0x04, 0x20, - 0xba, 0x00, 0x03, 0xed, 0x98, 0x44, 0xf2, 0xd1, 0x36, 0x29, 0xbf, 0x99, 0x47, 0x90, 0x61, 0xa8, - 0x46, 0xb9, 0xa9, 0x9c, 0x71, 0x9a, 0x46, 0xc9, 0xdd, 0x71, 0x1c, 0x67, 0x7f, 0xa5, 0x0c, 0x93, - 0x99, 0xb0, 0x4d, 0xda, 0x90, 0x9d, 0x30, 0xf0, 0x92, 0x50, 0x25, 0x0b, 0xe3, 0x6f, 0x4c, 0x91, - 0xd6, 0xd6, 0x9a, 0x80, 0x63, 0x45, 0x81, 0x1e, 0x33, 0x5f, 0xce, 0x4f, 0xdb, 0xbc, 0x58, 0x33, - 0x1e, 0xf4, 0xec, 0xf7, 0x4d, 0x8f, 0x47, 0x61, 0xa0, 0x15, 0xaa, 0xa7, 0x96, 0xd5, 0x78, 0xe2, - 0xc5, 0x5a, 0x3d, 0x0c, 0x7d, 0xcc, 0x90, 0xe8, 0x23, 0xe2, 0xeb, 0x33, 0xe7, 0x15, 0xd8, 0x71, - 0xc3, 0x58, 0xeb, 0x82, 0x27, 0x60, 0x78, 0x9b, 0xec, 0x45, 0x5e, 0xb0, 0x99, 0x3d, 0xad, 0xb9, - 0xca, 0xc1, 0x58, 0xe2, 0xcd, 0x14, 0xdb, 0xc3, 0xf7, 0xe5, 0xdd, 0x8e, 0x91, 0x9e, 0xbb, 0xda, - 0x6f, 0x59, 0x30, 0xc9, 0x12, 0x73, 0x8a, 0xdb, 0xf1, 0x5e, 0x18, 0x9c, 0x80, 0x9e, 0xf0, 0x28, - 0x0c, 0x46, 0xb4, 0xd2, 0x6c, 0x32, 0x7e, 0xd6, 0x12, 0xcc, 0x71, 0xe8, 0x21, 0x18, 0x60, 0x4d, - 0xa0, 0x83, 0x37, 0xc6, 0x53, 0x73, 0xd7, 0x9c, 0xc4, 0xc1, 0x0c, 0xca, 0xae, 0x29, 0x61, 0xd2, - 0xf2, 0x3d, 0xde, 0xe8, 0xd4, 0xdd, 0xfa, 0xc1, 0xb8, 0xa6, 0x94, 0xdb, 0xb4, 0xf7, 0x76, 0x4d, - 0x29, 0x9f, 0x65, 0x77, 0x1d, 0xfc, 0xbf, 0x96, 0xe0, 0x7c, 0x6e, 0xb9, 0xf4, 0x64, 0x77, 0xc5, - 0x38, 0xd9, 0xbd, 0x94, 0x39, 0xd9, 0xb5, 0xbb, 0x97, 0x3e, 0x9e, 0xb3, 0xde, 0xfc, 0x23, 0xd8, - 0xf2, 0x09, 0x1e, 0xc1, 0x0e, 0xf4, 0xab, 0xa6, 0x0c, 0xf6, 0x50, 0x53, 0xbe, 0x6b, 0xc1, 0xb9, - 0xdc, 0x2e, 0xfb, 0x80, 0xdc, 0x0b, 0xcb, 0x6d, 0x5b, 0x81, 0x0d, 0xf1, 0xa3, 0x52, 0xc1, 0xb7, - 0x30, 0x6b, 0xe2, 0x22, 0x95, 0x33, 0x0c, 0x19, 0x0b, 0xb5, 0x6b, 0x8c, 0xcb, 0x18, 0x0e, 0xc3, - 0x0a, 0x8b, 0x3c, 0xed, 0x86, 0x15, 0x6f, 0xda, 0x4b, 0x47, 0x5a, 0x32, 0x73, 0xa6, 0x77, 0x5c, - 0xbf, 0xca, 0x9f, 0xbd, 0x6d, 0xb5, 0xa6, 0x59, 0x80, 0xe5, 0xfe, 0x2d, 0xc0, 0xb1, 0x7c, 0xeb, - 0x0f, 0x2d, 0xc0, 0xe4, 0x8e, 0x17, 0xb0, 0x07, 0x33, 0x4d, 0xbd, 0x47, 0x5d, 0x4b, 0x5d, 0x33, - 0xd1, 0x38, 0x4b, 0x3f, 0xf3, 0x12, 0x8c, 0xdf, 0xbb, 0xcb, 0xea, 0x7b, 0x65, 0x78, 0xb0, 0xcb, - 0xb2, 0xe7, 0xb2, 0xde, 0x18, 0x03, 0x4d, 0xd6, 0x77, 0x8c, 0x43, 0x1d, 0x4e, 0x6f, 0xb4, 0x7d, - 0x7f, 0x8f, 0x45, 0x39, 0x11, 0x57, 0x52, 0x08, 0xc5, 0x44, 0x65, 0xdd, 0x5d, 0xc9, 0xa1, 0xc1, - 0xb9, 0x25, 0xd1, 0xab, 0x80, 0xc2, 0xdb, 0x2c, 0x13, 0xac, 0x9b, 0x26, 0x28, 0x60, 0x1d, 0x5f, - 0x4e, 0x17, 0xe3, 0x8d, 0x0e, 0x0a, 0x9c, 0x53, 0x8a, 0x6a, 0x98, 0xec, 0x99, 0x6f, 0xd5, 0xac, - 0x8c, 0x86, 0x89, 0x75, 0x24, 0x36, 0x69, 0xd1, 0x65, 0x98, 0x76, 0x76, 0x1d, 0x8f, 0x27, 0x95, - 0x92, 0x0c, 0xb8, 0x8a, 0xa9, 0x1c, 0x45, 0x0b, 0x59, 0x02, 0xdc, 0x59, 0x06, 0x6d, 0x18, 0x5e, - 0x3e, 0x9e, 0x64, 0xfe, 0x52, 0xdf, 0xb3, 0xb5, 0x6f, 0xbf, 0x9f, 0xfd, 0x1f, 0x2c, 0xba, 0x7d, - 0xe5, 0xbc, 0xd0, 0x48, 0xfb, 0x41, 0xf9, 0xaf, 0xb4, 0xdb, 0x61, 0xaa, 0x1f, 0x96, 0x74, 0x24, - 0x36, 0x69, 0xf9, 0x84, 0x88, 0xd3, 0x70, 0x69, 0x43, 0x4f, 0x14, 0xd7, 0x29, 0x15, 0x05, 0xfa, - 0x2c, 0x0c, 0xbb, 0xde, 0xae, 0x17, 0x87, 0x91, 0x58, 0x2c, 0x47, 0x7d, 0x99, 0x58, 0xc9, 0xc1, - 0x1a, 0x67, 0x83, 0x25, 0x3f, 0xfb, 0x2b, 0x25, 0x18, 0x97, 0x35, 0xbe, 0xd6, 0x0e, 0x13, 0xe7, - 0x04, 0xb6, 0xe5, 0xcb, 0xc6, 0xb6, 0xfc, 0x91, 0x6e, 0x77, 0x4a, 0x59, 0x93, 0x0a, 0xb7, 0xe3, - 0x1b, 0x99, 0xed, 0xf8, 0xf1, 0xde, 0xac, 0xba, 0x6f, 0xc3, 0xbf, 0x6b, 0xc1, 0xb4, 0x41, 0x7f, - 0x02, 0xbb, 0xc1, 0x8a, 0xb9, 0x1b, 0x3c, 0xd2, 0xf3, 0x1b, 0x0a, 0x76, 0x81, 0xaf, 0x97, 0x32, - 0x6d, 0x67, 0xd2, 0xff, 0x1d, 0x18, 0xd8, 0x72, 0x22, 0xb7, 0x5b, 0x6a, 0xc4, 0x8e, 0x42, 0x73, - 0x57, 0x9c, 0xc8, 0xe5, 0x32, 0xfc, 0x69, 0xf5, 0xba, 0x94, 0x13, 0xb9, 0x3d, 0x6f, 0x07, 0xb0, - 0xaa, 0xd0, 0x8b, 0x30, 0x14, 0x37, 0xc3, 0x96, 0x8a, 0xbd, 0xbc, 0xc0, 0x5f, 0x9e, 0xa2, 0x90, - 0xc3, 0xfd, 0x59, 0x64, 0x56, 0x47, 0xc1, 0x58, 0xd0, 0xcf, 0x6c, 0x42, 0x45, 0x55, 0x7d, 0x5f, - 0xa3, 0xca, 0xff, 0xa8, 0x0c, 0xa7, 0x72, 0xe6, 0x05, 0x8a, 0x8d, 0xde, 0x7a, 0xb6, 0xcf, 0xe9, - 0xf4, 0x1e, 0xfb, 0x2b, 0x66, 0x16, 0x8b, 0x2b, 0xc6, 0xbf, 0xef, 0x4a, 0x6f, 0xc6, 0x24, 0x5b, - 0x29, 0x05, 0xf5, 0xae, 0x94, 0x56, 0x76, 0x62, 0x5d, 0x4d, 0x2b, 0x52, 0x2d, 0xbd, 0xaf, 0x63, - 0xfa, 0x3f, 0xcb, 0x70, 0x3a, 0xef, 0x2a, 0x3a, 0xfa, 0xd9, 0xcc, 0xcb, 0x07, 0xcf, 0xf7, 0x7b, - 0x89, 0x9d, 0x3f, 0x87, 0x20, 0x32, 0xbc, 0xcc, 0x99, 0x6f, 0x21, 0xf4, 0xec, 0x66, 0x51, 0x27, - 0xbb, 0xae, 0x13, 0xf1, 0x17, 0x2b, 0xe4, 0x12, 0xff, 0x58, 0xdf, 0x0d, 0x10, 0x4f, 0x5d, 0xc4, - 0x99, 0xeb, 0x3a, 0x12, 0xdc, 0xfb, 0xba, 0x8e, 0xac, 0x79, 0xc6, 0x83, 0x51, 0xed, 0x6b, 0xee, - 0xeb, 0x88, 0x6f, 0xd3, 0x1d, 0x45, 0x6b, 0xf7, 0x7d, 0x1d, 0xf5, 0xaf, 0x5a, 0x90, 0x89, 0x93, - 0x52, 0xfe, 0x0f, 0xab, 0xd0, 0xff, 0x71, 0x01, 0x06, 0xa2, 0xd0, 0x27, 0xd9, 0x64, 0xf8, 0x38, - 0xf4, 0x09, 0x66, 0x18, 0xf5, 0x52, 0x6c, 0xb9, 0xe8, 0xa5, 0x58, 0x6a, 0x1a, 0xfb, 0x64, 0x97, - 0x48, 0x6f, 0x84, 0x92, 0xc9, 0xd7, 0x28, 0x10, 0x73, 0x9c, 0xfd, 0x1b, 0x03, 0x70, 0x2a, 0xe7, - 0x72, 0x1a, 0x35, 0x54, 0x36, 0x9d, 0x84, 0xdc, 0x71, 0xf6, 0xb2, 0xf9, 0x40, 0x2f, 0x73, 0x30, - 0x96, 0x78, 0x16, 0xcb, 0xc9, 0xd3, 0x95, 0x65, 0x7c, 0x44, 0x22, 0x4b, 0x99, 0xc0, 0xde, 0xaf, - 0xd7, 0x45, 0x2f, 0x01, 0xc4, 0xb1, 0xbf, 0x1c, 0x50, 0xe5, 0xcb, 0x15, 0x91, 0xa2, 0x69, 0x6e, - 0xbb, 0xc6, 0x35, 0x81, 0xc1, 0x1a, 0x15, 0xaa, 0xc1, 0x54, 0x2b, 0x0a, 0x13, 0xee, 0x77, 0xab, - 0xf1, 0x18, 0x85, 0x41, 0xf3, 0x9a, 0x51, 0x3d, 0x83, 0xc7, 0x1d, 0x25, 0xd0, 0x0b, 0x30, 0x2a, - 0xae, 0x1e, 0xd5, 0xc3, 0xd0, 0x17, 0x5e, 0x1a, 0x75, 0xe2, 0xdd, 0x48, 0x51, 0x58, 0xa7, 0xd3, - 0x8a, 0x31, 0x67, 0xde, 0x70, 0x6e, 0x31, 0xee, 0xd0, 0xd3, 0xe8, 0x32, 0x19, 0x29, 0x46, 0xfa, - 0xca, 0x48, 0x91, 0xfa, 0xad, 0x2a, 0x7d, 0x9f, 0x5f, 0x40, 0x4f, 0x4f, 0xcf, 0xb7, 0xca, 0x30, - 0xc4, 0x87, 0xe2, 0x04, 0x54, 0xb1, 0x15, 0xe1, 0xbb, 0xe9, 0x92, 0x07, 0x80, 0xb7, 0x65, 0xae, - 0xe6, 0x24, 0x0e, 0x17, 0x43, 0x6a, 0x35, 0xa4, 0x5e, 0x1e, 0x34, 0x67, 0xac, 0x97, 0x99, 0x8c, - 0x73, 0x02, 0x38, 0x0f, 0x6d, 0xf5, 0xbc, 0x05, 0x10, 0xb3, 0x17, 0x2e, 0x29, 0x0f, 0x91, 0xb7, - 0xf4, 0xc9, 0x2e, 0xb5, 0x37, 0x14, 0x31, 0x6f, 0x43, 0x3a, 0x05, 0x15, 0x02, 0x6b, 0x1c, 0x67, - 0x3e, 0x0e, 0x15, 0x45, 0xdc, 0xcb, 0x92, 0x1b, 0xd3, 0x85, 0xd7, 0xa7, 0x60, 0x32, 0x53, 0xd7, - 0x91, 0x0c, 0xc1, 0xdf, 0xb6, 0x60, 0x32, 0xf3, 0x5c, 0x3e, 0x7a, 0x17, 0x4e, 0xfb, 0x39, 0x8b, - 0x4e, 0x8c, 0x68, 0xff, 0x8b, 0x54, 0x19, 0x7e, 0x79, 0x58, 0x9c, 0x5b, 0x07, 0x35, 0xfe, 0xf9, - 0xdb, 0xbc, 0x8e, 0x2f, 0x22, 0x90, 0xc7, 0x78, 0xce, 0x65, 0x0e, 0xc3, 0x0a, 0x6b, 0x7f, 0xdf, - 0x82, 0xe9, 0x8e, 0x87, 0xdb, 0xdf, 0xd7, 0xb6, 0x8b, 0x94, 0xd2, 0xa5, 0x82, 0x94, 0xd2, 0xfa, - 0xa7, 0x95, 0xbb, 0x7e, 0xda, 0x37, 0x2c, 0x10, 0x33, 0xf0, 0x04, 0xd4, 0xf9, 0x4f, 0x9b, 0xea, - 0xfc, 0x4c, 0xf1, 0xa4, 0x2e, 0xd0, 0xe3, 0xff, 0xd4, 0x82, 0x29, 0x4e, 0x90, 0x1e, 0x5e, 0xbc, - 0xaf, 0xe3, 0xd0, 0xcf, 0xc3, 0x23, 0xea, 0xa5, 0xc7, 0xfc, 0x8f, 0x32, 0x06, 0x6b, 0xa0, 0xeb, - 0x60, 0xfd, 0x67, 0x0b, 0x10, 0xff, 0xfc, 0xec, 0x73, 0xc5, 0x7c, 0x53, 0xd2, 0x4c, 0xed, 0x54, - 0x08, 0x28, 0x0c, 0xd6, 0xa8, 0x8e, 0xa5, 0xe1, 0x99, 0xb3, 0xa1, 0x72, 0xef, 0xb3, 0xa1, 0x23, - 0x7c, 0xeb, 0x5f, 0x19, 0x80, 0x6c, 0x20, 0x22, 0xba, 0x05, 0x63, 0x4d, 0xa7, 0xe5, 0xdc, 0xf6, - 0x7c, 0x2f, 0xf1, 0x48, 0xdc, 0xed, 0x50, 0x79, 0x49, 0xa3, 0x13, 0x07, 0x31, 0x1a, 0x04, 0x1b, - 0x7c, 0xd0, 0x1c, 0x40, 0x2b, 0xf2, 0x76, 0x3d, 0x9f, 0x6c, 0x32, 0x5b, 0x83, 0xdd, 0x46, 0xe0, - 0x27, 0xa5, 0x12, 0x8a, 0x35, 0x8a, 0x9c, 0xe8, 0xf5, 0xf2, 0xfd, 0x8b, 0x5e, 0x1f, 0x38, 0x62, - 0xf4, 0xfa, 0x60, 0x5f, 0xd1, 0xeb, 0x18, 0xce, 0xca, 0x5d, 0x95, 0xfe, 0x5f, 0xf1, 0x7c, 0x22, - 0x54, 0x29, 0x7e, 0x47, 0x61, 0xe6, 0x60, 0x7f, 0xf6, 0x2c, 0xce, 0xa5, 0xc0, 0x05, 0x25, 0xd1, - 0x4f, 0x41, 0xd5, 0xf1, 0xfd, 0xf0, 0x8e, 0xea, 0xb5, 0xe5, 0xb8, 0xe9, 0xf8, 0x69, 0x2a, 0xd0, - 0x91, 0xc5, 0x87, 0x0e, 0xf6, 0x67, 0xab, 0x0b, 0x05, 0x34, 0xb8, 0xb0, 0xb4, 0xbd, 0x0d, 0xa7, - 0x1a, 0x24, 0x92, 0xaf, 0x67, 0xa9, 0xd5, 0xb7, 0x0e, 0x95, 0x28, 0xb3, 0xdc, 0xfb, 0xba, 0x92, - 0xae, 0x25, 0xe0, 0x92, 0xcb, 0x3b, 0x65, 0x64, 0xff, 0x6f, 0x0b, 0x86, 0x45, 0x70, 0xe3, 0x09, - 0x68, 0x19, 0x0b, 0x86, 0xc3, 0x67, 0x36, 0x5f, 0x24, 0xb2, 0xc6, 0x14, 0xba, 0x7a, 0x56, 0x33, - 0xae, 0x9e, 0x47, 0xba, 0x31, 0xe9, 0xee, 0xe4, 0xf9, 0xa5, 0x32, 0x4c, 0x98, 0x81, 0x9d, 0x27, - 0xd0, 0x05, 0xd7, 0x61, 0x38, 0x16, 0x51, 0xc4, 0xa5, 0xe2, 0x68, 0xb4, 0xec, 0x20, 0xa6, 0x67, - 0xd6, 0x22, 0x6e, 0x58, 0x32, 0xc9, 0x0d, 0x4f, 0x2e, 0xdf, 0xc7, 0xf0, 0xe4, 0x5e, 0xb1, 0xb5, - 0x03, 0xc7, 0x11, 0x5b, 0x6b, 0x7f, 0x9b, 0x09, 0x7f, 0x1d, 0x7e, 0x02, 0x3b, 0xf6, 0x65, 0x73, - 0x9b, 0xb0, 0xbb, 0xcc, 0x2c, 0xd1, 0xa8, 0x82, 0x9d, 0xfb, 0x1f, 0x5a, 0x30, 0x2a, 0x08, 0x4f, - 0xa0, 0xd9, 0x9f, 0x31, 0x9b, 0xfd, 0x60, 0x97, 0x66, 0x17, 0xb4, 0xf7, 0x6f, 0x95, 0x54, 0x7b, - 0xeb, 0xe2, 0x61, 0xf9, 0x9e, 0xa9, 0xa1, 0x47, 0xa8, 0x9d, 0x16, 0x36, 0x43, 0x5f, 0xe8, 0x65, - 0x0f, 0xa5, 0xd7, 0xd4, 0x38, 0xfc, 0x50, 0xfb, 0x8d, 0x15, 0x35, 0xbb, 0x45, 0x15, 0x46, 0x89, - 0xd8, 0x40, 0xf3, 0x9e, 0xb5, 0x77, 0x01, 0xd2, 0xd7, 0xc1, 0xc5, 0xbd, 0xce, 0xa3, 0x3f, 0x98, - 0x9f, 0xde, 0x3b, 0x53, 0xbc, 0xb0, 0xc6, 0x57, 0x5e, 0x7c, 0x60, 0x75, 0x0c, 0x9a, 0x27, 0x31, - 0xd7, 0x05, 0x1c, 0x2b, 0x0a, 0xfb, 0xe3, 0x4c, 0x26, 0xb3, 0x0e, 0x3a, 0xda, 0x95, 0xb0, 0xff, - 0x35, 0xa4, 0xba, 0x96, 0xb9, 0x61, 0x6b, 0xfa, 0xc5, 0xb3, 0xee, 0x22, 0x90, 0x56, 0xac, 0x07, - 0xf9, 0xa6, 0xb7, 0xd3, 0xd0, 0xe7, 0x3a, 0x0e, 0xe8, 0x9e, 0xe9, 0x21, 0x4b, 0x8f, 0x70, 0x24, - 0xc7, 0x32, 0xdd, 0xb1, 0x8c, 0x60, 0xab, 0xf5, 0x6c, 0xf2, 0xee, 0x25, 0x89, 0xc0, 0x29, 0x0d, - 0x9a, 0x17, 0x36, 0x1f, 0x77, 0x80, 0x3c, 0x98, 0xb1, 0xf9, 0xe4, 0xe7, 0x6b, 0x46, 0xdf, 0xb3, - 0x30, 0xaa, 0x1e, 0x2d, 0xa9, 0xf3, 0x77, 0x25, 0x2a, 0x5c, 0x97, 0x5a, 0x4e, 0xc1, 0x58, 0xa7, - 0x41, 0xeb, 0x30, 0x19, 0xf3, 0x17, 0x55, 0xe4, 0x5d, 0x04, 0x61, 0xd1, 0x3f, 0x99, 0x79, 0x87, - 0x5c, 0xa2, 0x0f, 0x19, 0x88, 0x2f, 0x56, 0x79, 0x7b, 0x21, 0xcb, 0x02, 0xbd, 0x02, 0x13, 0xbe, - 0xfe, 0xd4, 0x63, 0x5d, 0x18, 0xfc, 0x2a, 0xc8, 0xca, 0x78, 0x08, 0xb2, 0x8e, 0x33, 0xd4, 0x54, - 0x09, 0xd0, 0x21, 0x22, 0x49, 0x8d, 0x13, 0x6c, 0x92, 0x58, 0x3c, 0xe7, 0xc0, 0x94, 0x80, 0x6b, - 0x05, 0x34, 0xb8, 0xb0, 0x34, 0x7a, 0x11, 0xc6, 0xe4, 0xe7, 0x6b, 0x77, 0x73, 0xd2, 0x50, 0x3e, - 0x0d, 0x87, 0x0d, 0x4a, 0x74, 0x07, 0xce, 0xc8, 0xff, 0xeb, 0x91, 0xb3, 0xb1, 0xe1, 0x35, 0xc5, - 0xd5, 0xa8, 0x51, 0xc6, 0x62, 0x41, 0xc6, 0x35, 0x2f, 0xe7, 0x11, 0x1d, 0xee, 0xcf, 0x5e, 0x10, - 0xbd, 0x96, 0x8b, 0x67, 0x83, 0x98, 0xcf, 0x1f, 0xad, 0xc1, 0xa9, 0x2d, 0xe2, 0xf8, 0xc9, 0xd6, - 0xd2, 0x16, 0x69, 0x6e, 0xcb, 0x45, 0xc4, 0x6e, 0xfc, 0x68, 0x01, 0x70, 0x57, 0x3a, 0x49, 0x70, - 0x5e, 0xb9, 0xf7, 0x76, 0x0e, 0xfb, 0x0e, 0x2d, 0xac, 0xe9, 0x00, 0xe8, 0xf3, 0x30, 0xa6, 0xf7, - 0xb5, 0x10, 0xc3, 0x8f, 0xf5, 0x7a, 0xfc, 0x53, 0x68, 0x10, 0xaa, 0xdf, 0x75, 0x1c, 0x36, 0x38, - 0xda, 0xff, 0xbc, 0x04, 0xb3, 0x3d, 0xb2, 0x3c, 0x65, 0x9c, 0x4b, 0x56, 0x5f, 0xce, 0xa5, 0x05, - 0xf9, 0xb8, 0xc7, 0xf5, 0x4c, 0xea, 0xe8, 0xcc, 0xc3, 0x1d, 0x69, 0x02, 0xe9, 0x2c, 0x7d, 0xdf, - 0x71, 0x55, 0xba, 0x7f, 0x6a, 0xa0, 0x67, 0x78, 0x59, 0x5d, 0x77, 0x34, 0x0e, 0xf6, 0xaf, 0x90, - 0x16, 0xfa, 0x18, 0xed, 0x6f, 0x97, 0xe0, 0x8c, 0xea, 0xc2, 0x9f, 0xdc, 0x8e, 0xbb, 0xd9, 0xd9, - 0x71, 0xc7, 0xe0, 0xa1, 0xb5, 0x6f, 0xc0, 0x50, 0x63, 0x2f, 0x6e, 0x26, 0x7e, 0x1f, 0xfb, 0xf7, - 0xa3, 0xc6, 0xca, 0x49, 0x77, 0x19, 0xf6, 0x86, 0x96, 0x58, 0x48, 0xf6, 0x5f, 0xb4, 0x60, 0x72, - 0x7d, 0xa9, 0xde, 0x08, 0x9b, 0xdb, 0x24, 0x59, 0xe0, 0xfe, 0x07, 0x2c, 0xb6, 0x6f, 0xeb, 0x1e, - 0xb7, 0xe5, 0xbc, 0x0d, 0xff, 0x02, 0x0c, 0x6c, 0x85, 0x71, 0x92, 0xf5, 0xc2, 0x5f, 0x09, 0xe3, - 0x04, 0x33, 0x8c, 0xfd, 0xc7, 0x16, 0x0c, 0xb2, 0x67, 0xa3, 0x7a, 0x3d, 0x2f, 0xd6, 0xcf, 0x77, - 0xa1, 0x17, 0x60, 0x88, 0x6c, 0x6c, 0x90, 0x66, 0x22, 0x46, 0x55, 0x5e, 0xf5, 0x18, 0x5a, 0x66, - 0x50, 0xba, 0x67, 0xb1, 0xca, 0xf8, 0x5f, 0x2c, 0x88, 0xd1, 0xe7, 0xa0, 0x92, 0x78, 0x3b, 0x64, - 0xc1, 0x75, 0x85, 0x03, 0xfc, 0x68, 0xb1, 0x4e, 0x6a, 0x0f, 0x5d, 0x97, 0x4c, 0x70, 0xca, 0xcf, - 0xfe, 0x85, 0x12, 0x40, 0x7a, 0x25, 0xac, 0xd7, 0x67, 0x2e, 0x76, 0xbc, 0xa2, 0xf6, 0x58, 0xce, - 0x2b, 0x6a, 0x28, 0x65, 0x98, 0xf3, 0x86, 0x9a, 0xea, 0xaa, 0x72, 0x5f, 0x5d, 0x35, 0x70, 0x94, - 0xae, 0x5a, 0x82, 0xe9, 0xf4, 0x4a, 0x9b, 0x79, 0xbf, 0x97, 0x65, 0x6f, 0x5d, 0xcf, 0x22, 0x71, - 0x27, 0xbd, 0xfd, 0x65, 0x0b, 0x44, 0xfc, 0x6b, 0x1f, 0x13, 0xfa, 0x0d, 0xf9, 0x98, 0x92, 0x91, - 0x7a, 0xee, 0x42, 0x71, 0x40, 0xb0, 0x48, 0x38, 0xa7, 0x24, 0xbb, 0x91, 0x66, 0xce, 0xe0, 0x65, - 0xff, 0xae, 0x05, 0xa3, 0x1c, 0xbd, 0xc6, 0x8c, 0xc4, 0xde, 0xad, 0x39, 0x52, 0xee, 0x5f, 0xf6, - 0xce, 0x10, 0x65, 0xac, 0x52, 0xc4, 0xea, 0xef, 0x0c, 0x49, 0x04, 0x4e, 0x69, 0xd0, 0x13, 0x30, - 0x1c, 0xb7, 0x6f, 0x33, 0xf2, 0x4c, 0x08, 0x6c, 0x83, 0x83, 0xb1, 0xc4, 0xd3, 0x79, 0x35, 0x95, - 0x8d, 0x80, 0x46, 0x57, 0x60, 0x88, 0x8b, 0x0d, 0xb1, 0x8c, 0xbb, 0xb8, 0xfb, 0xb5, 0xb8, 0x69, - 0xe0, 0xaf, 0x49, 0x33, 0x71, 0x23, 0xca, 0xa3, 0x37, 0x61, 0xd4, 0x0d, 0xef, 0x04, 0x77, 0x9c, - 0xc8, 0x5d, 0xa8, 0xaf, 0x8a, 0x5e, 0xcf, 0x8d, 0x63, 0xab, 0xa5, 0x64, 0x7a, 0x2c, 0x36, 0x73, - 0xa0, 0xa5, 0x28, 0xac, 0xb3, 0x43, 0xeb, 0x2c, 0xcb, 0xc6, 0x86, 0xb7, 0xb9, 0xe6, 0xb4, 0xba, - 0x45, 0x76, 0x2c, 0x49, 0x22, 0x8d, 0xf3, 0xb8, 0x48, 0xc5, 0xc1, 0x11, 0x38, 0x65, 0x64, 0x7f, - 0xf1, 0x14, 0x18, 0xa3, 0x6d, 0x64, 0xe8, 0xb5, 0x8e, 0x29, 0x43, 0x2f, 0x86, 0x11, 0xb2, 0xd3, - 0x4a, 0xf6, 0x6a, 0x5e, 0xd4, 0x2d, 0x65, 0xfa, 0xb2, 0xa0, 0xe9, 0xe4, 0x29, 0x31, 0x58, 0xf1, - 0xc9, 0x4f, 0xa3, 0x5c, 0x7e, 0x1f, 0xd3, 0x28, 0x0f, 0x9c, 0x60, 0x1a, 0xe5, 0xeb, 0x30, 0xbc, - 0xe9, 0x25, 0x98, 0xb4, 0x42, 0xb1, 0x65, 0xe6, 0xce, 0x84, 0xcb, 0x9c, 0xa4, 0x33, 0x01, 0xa8, - 0x40, 0x60, 0xc9, 0x04, 0xbd, 0xaa, 0xd6, 0xc0, 0x50, 0xb1, 0x2a, 0xd8, 0xe9, 0x7f, 0xce, 0x5d, - 0x05, 0x22, 0x6d, 0xf2, 0xf0, 0xbd, 0xa6, 0x4d, 0x56, 0x69, 0x8f, 0x47, 0xde, 0x5b, 0xda, 0x63, - 0x23, 0x2d, 0x74, 0xe5, 0xf8, 0xd2, 0x42, 0x7f, 0xd9, 0x82, 0x33, 0xad, 0xbc, 0x0c, 0xe9, 0x22, - 0x95, 0xf1, 0x0b, 0x7d, 0x67, 0x8a, 0x37, 0x2a, 0x64, 0xa9, 0x1e, 0x72, 0xc9, 0x70, 0x7e, 0x75, - 0x32, 0xbf, 0xf4, 0xe8, 0xbd, 0xe6, 0x97, 0xbe, 0x3f, 0x39, 0x8f, 0xd3, 0x6c, 0xd3, 0xe3, 0xc7, - 0x98, 0x6d, 0x7a, 0xe2, 0x3d, 0x67, 0x9b, 0xd6, 0x32, 0x46, 0x4f, 0x1e, 0x47, 0xc6, 0xe8, 0xb7, - 0x4c, 0x61, 0xcf, 0x13, 0x19, 0x3f, 0xd5, 0x43, 0xd8, 0x1b, 0x7c, 0xbb, 0x8b, 0x7b, 0x9e, 0x1d, - 0x7b, 0xfa, 0x9e, 0xb2, 0x63, 0x1b, 0x79, 0xa7, 0xd1, 0xf1, 0xe5, 0x9d, 0xbe, 0xa5, 0x6f, 0x41, - 0xa7, 0x8a, 0xf9, 0xaa, 0x9d, 0xa6, 0x93, 0x6f, 0xde, 0x26, 0xd4, 0x99, 0xcf, 0xfa, 0xf4, 0xc9, - 0xe4, 0xb3, 0x3e, 0x73, 0xec, 0xf9, 0xac, 0xcf, 0x9e, 0x40, 0x3e, 0xeb, 0x07, 0xde, 0xd7, 0x7c, - 0xd6, 0xd5, 0xfb, 0x9b, 0xcf, 0xfa, 0xdc, 0x71, 0xe4, 0xb3, 0xbe, 0x05, 0x95, 0x96, 0xbc, 0x24, - 0x57, 0x9d, 0x29, 0x1e, 0x92, 0xdc, 0x9b, 0x74, 0x7c, 0x48, 0x14, 0x0a, 0xa7, 0xac, 0x28, 0xdf, - 0x34, 0xbf, 0xf5, 0x83, 0xc5, 0x7c, 0x73, 0xcd, 0xf6, 0x2e, 0x59, 0xad, 0xff, 0x52, 0x09, 0xce, - 0x77, 0x9f, 0xd7, 0xa9, 0xcd, 0x5f, 0x4f, 0x5d, 0xac, 0x19, 0x9b, 0x9f, 0x29, 0x5d, 0x1a, 0x55, - 0xdf, 0x37, 0x89, 0x2f, 0xc3, 0xb4, 0x8a, 0x15, 0xf2, 0xbd, 0xe6, 0x9e, 0xf6, 0xfc, 0x8c, 0x0a, - 0x3f, 0x6f, 0x64, 0x09, 0x70, 0x67, 0x19, 0xb4, 0x00, 0x93, 0x06, 0x70, 0xb5, 0x26, 0x54, 0x72, - 0xe5, 0x64, 0x68, 0x98, 0x68, 0x9c, 0xa5, 0xb7, 0xbf, 0x6e, 0xc1, 0x03, 0x05, 0xa9, 0x31, 0xfb, - 0xbe, 0x28, 0xbb, 0x01, 0x93, 0x2d, 0xb3, 0x68, 0x8f, 0xfb, 0xf4, 0x46, 0x02, 0x4e, 0xd5, 0xd6, - 0x0c, 0x02, 0x67, 0x99, 0x2e, 0x5e, 0xfc, 0xce, 0x0f, 0xce, 0x7f, 0xe8, 0x0f, 0x7f, 0x70, 0xfe, - 0x43, 0xdf, 0xff, 0xc1, 0xf9, 0x0f, 0xfd, 0xb9, 0x83, 0xf3, 0xd6, 0x77, 0x0e, 0xce, 0x5b, 0x7f, - 0x78, 0x70, 0xde, 0xfa, 0xfe, 0xc1, 0x79, 0xeb, 0x4f, 0x0e, 0xce, 0x5b, 0xbf, 0xf0, 0xc3, 0xf3, - 0x1f, 0x7a, 0xa3, 0xb4, 0xfb, 0xec, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xc9, 0x6a, 0xe4, 0x7c, - 0xae, 0xc8, 0x00, 0x00, + // 11472 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xd7, + 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0xb1, 0xcb, 0x59, 0x90, 0x5c, 0x2c, 0x9b, + 0x12, 0xb9, 0x7c, 0x01, 0xe6, 0x92, 0x94, 0x28, 0x91, 0xa2, 0x04, 0x60, 0x80, 0x5d, 0x70, 0x5f, + 0xc3, 0x3b, 0xd8, 0xa5, 0x49, 0xd1, 0xb4, 0x7a, 0xa7, 0x2f, 0x80, 0x26, 0x1a, 0xdd, 0xc3, 0xee, + 0x1e, 0xec, 0x82, 0x65, 0x55, 0x7d, 0x9f, 0x22, 0x2b, 0x0f, 0xf9, 0x87, 0x2b, 0xe5, 0x4a, 0x1c, + 0x4b, 0xe5, 0x54, 0xe5, 0x51, 0xb6, 0xa2, 0x24, 0x65, 0x47, 0x8e, 0x1f, 0x92, 0x53, 0x49, 0x9c, + 0x47, 0x49, 0x7f, 0x1c, 0xfb, 0x47, 0x4a, 0xaa, 0x4a, 0x05, 0xb6, 0xa0, 0xaa, 0xa4, 0xf2, 0x23, + 0xa9, 0xbc, 0xfe, 0x18, 0x71, 0xa2, 0xd4, 0x7d, 0xf6, 0xbd, 0x3d, 0xdd, 0x33, 0x83, 0x25, 0x16, + 0xa4, 0x54, 0xf9, 0x37, 0x73, 0xce, 0xb9, 0xe7, 0xde, 0xbe, 0x8f, 0x73, 0xcf, 0x39, 0xf7, 0xdc, + 0x73, 0xe1, 0xa5, 0xed, 0x17, 0xe3, 0x79, 0x2f, 0x5c, 0xd8, 0x6e, 0xdf, 0x26, 0x51, 0x40, 0x12, + 0x12, 0x2f, 0xec, 0x92, 0xc0, 0x0d, 0xa3, 0x05, 0x81, 0x70, 0x5a, 0xde, 0x42, 0x33, 0x8c, 0xc8, + 0xc2, 0xee, 0xb3, 0x0b, 0x9b, 0x24, 0x20, 0x91, 0x93, 0x10, 0x77, 0xbe, 0x15, 0x85, 0x49, 0x88, + 0x10, 0xa7, 0x99, 0x77, 0x5a, 0xde, 0x3c, 0xa5, 0x99, 0xdf, 0x7d, 0x76, 0xf6, 0x99, 0x4d, 0x2f, + 0xd9, 0x6a, 0xdf, 0x9e, 0x6f, 0x86, 0x3b, 0x0b, 0x9b, 0xe1, 0x66, 0xb8, 0xc0, 0x48, 0x6f, 0xb7, + 0x37, 0xd8, 0x3f, 0xf6, 0x87, 0xfd, 0xe2, 0x2c, 0x66, 0x9f, 0x4f, 0xab, 0xd9, 0x71, 0x9a, 0x5b, + 0x5e, 0x40, 0xa2, 0xbd, 0x85, 0xd6, 0xf6, 0x26, 0xab, 0x37, 0x22, 0x71, 0xd8, 0x8e, 0x9a, 0x24, + 0x5b, 0x71, 0xd7, 0x52, 0xf1, 0xc2, 0x0e, 0x49, 0x9c, 0x9c, 0xe6, 0xce, 0x2e, 0x14, 0x95, 0x8a, + 0xda, 0x41, 0xe2, 0xed, 0x74, 0x56, 0xf3, 0xf1, 0x5e, 0x05, 0xe2, 0xe6, 0x16, 0xd9, 0x71, 0x3a, + 0xca, 0x3d, 0x57, 0x54, 0xae, 0x9d, 0x78, 0xfe, 0x82, 0x17, 0x24, 0x71, 0x12, 0x65, 0x0b, 0xd9, + 0xdf, 0xb3, 0xe0, 0xfc, 0xe2, 0xeb, 0x8d, 0x15, 0xdf, 0x89, 0x13, 0xaf, 0xb9, 0xe4, 0x87, 0xcd, + 0xed, 0x46, 0x12, 0x46, 0xe4, 0x56, 0xe8, 0xb7, 0x77, 0x48, 0x83, 0x75, 0x04, 0x7a, 0x1a, 0x46, + 0x76, 0xd9, 0xff, 0xb5, 0x5a, 0xd5, 0x3a, 0x6f, 0x5d, 0xa8, 0x2c, 0x4d, 0x7d, 0x67, 0x7f, 0xee, + 0x23, 0x07, 0xfb, 0x73, 0x23, 0xb7, 0x04, 0x1c, 0x2b, 0x0a, 0xf4, 0x18, 0x0c, 0x6d, 0xc4, 0xeb, + 0x7b, 0x2d, 0x52, 0x2d, 0x31, 0xda, 0x09, 0x41, 0x3b, 0xb4, 0xda, 0xa0, 0x50, 0x2c, 0xb0, 0x68, + 0x01, 0x2a, 0x2d, 0x27, 0x4a, 0xbc, 0xc4, 0x0b, 0x83, 0x6a, 0xf9, 0xbc, 0x75, 0x61, 0x70, 0x69, + 0x5a, 0x90, 0x56, 0xea, 0x12, 0x81, 0x53, 0x1a, 0xda, 0x8c, 0x88, 0x38, 0xee, 0x8d, 0xc0, 0xdf, + 0xab, 0x0e, 0x9c, 0xb7, 0x2e, 0x8c, 0xa4, 0xcd, 0xc0, 0x02, 0x8e, 0x15, 0x85, 0xfd, 0x2b, 0x25, + 0x18, 0x59, 0xdc, 0xd8, 0xf0, 0x02, 0x2f, 0xd9, 0x43, 0xb7, 0x60, 0x2c, 0x08, 0x5d, 0x22, 0xff, + 0xb3, 0xaf, 0x18, 0xbd, 0x78, 0x7e, 0xbe, 0x73, 0x2a, 0xcd, 0x5f, 0xd7, 0xe8, 0x96, 0xa6, 0x0e, + 0xf6, 0xe7, 0xc6, 0x74, 0x08, 0x36, 0xf8, 0x20, 0x0c, 0xa3, 0xad, 0xd0, 0x55, 0x6c, 0x4b, 0x8c, + 0xed, 0x5c, 0x1e, 0xdb, 0x7a, 0x4a, 0xb6, 0x34, 0x79, 0xb0, 0x3f, 0x37, 0xaa, 0x01, 0xb0, 0xce, + 0x04, 0xdd, 0x86, 0x49, 0xfa, 0x37, 0x48, 0x3c, 0xc5, 0xb7, 0xcc, 0xf8, 0x3e, 0x5a, 0xc4, 0x57, + 0x23, 0x5d, 0x3a, 0x75, 0xb0, 0x3f, 0x37, 0x99, 0x01, 0xe2, 0x2c, 0x43, 0xfb, 0x3d, 0x98, 0x58, + 0x4c, 0x12, 0xa7, 0xb9, 0x45, 0x5c, 0x3e, 0x82, 0xe8, 0x79, 0x18, 0x08, 0x9c, 0x1d, 0x22, 0xc6, + 0xf7, 0xbc, 0xe8, 0xd8, 0x81, 0xeb, 0xce, 0x0e, 0x39, 0xdc, 0x9f, 0x9b, 0xba, 0x19, 0x78, 0xef, + 0xb6, 0xc5, 0xac, 0xa0, 0x30, 0xcc, 0xa8, 0xd1, 0x45, 0x00, 0x97, 0xec, 0x7a, 0x4d, 0x52, 0x77, + 0x92, 0x2d, 0x31, 0xde, 0x48, 0x94, 0x85, 0x9a, 0xc2, 0x60, 0x8d, 0xca, 0xbe, 0x0b, 0x95, 0xc5, + 0xdd, 0xd0, 0x73, 0xeb, 0xa1, 0x1b, 0xa3, 0x6d, 0x98, 0x6c, 0x45, 0x64, 0x83, 0x44, 0x0a, 0x54, + 0xb5, 0xce, 0x97, 0x2f, 0x8c, 0x5e, 0xbc, 0x90, 0xfb, 0xb1, 0x26, 0xe9, 0x4a, 0x90, 0x44, 0x7b, + 0x4b, 0x0f, 0x88, 0xfa, 0x26, 0x33, 0x58, 0x9c, 0xe5, 0x6c, 0xff, 0xcb, 0x12, 0x9c, 0x5e, 0x7c, + 0xaf, 0x1d, 0x91, 0x9a, 0x17, 0x6f, 0x67, 0x67, 0xb8, 0xeb, 0xc5, 0xdb, 0xd7, 0xd3, 0x1e, 0x50, + 0x53, 0xab, 0x26, 0xe0, 0x58, 0x51, 0xa0, 0x67, 0x60, 0x98, 0xfe, 0xbe, 0x89, 0xd7, 0xc4, 0x27, + 0x9f, 0x12, 0xc4, 0xa3, 0x35, 0x27, 0x71, 0x6a, 0x1c, 0x85, 0x25, 0x0d, 0xba, 0x06, 0xa3, 0x4d, + 0xb6, 0x20, 0x37, 0xaf, 0x85, 0x2e, 0x61, 0x83, 0x59, 0x59, 0x7a, 0x8a, 0x92, 0x2f, 0xa7, 0xe0, + 0xc3, 0xfd, 0xb9, 0x2a, 0x6f, 0x9b, 0x60, 0xa1, 0xe1, 0xb0, 0x5e, 0x1e, 0xd9, 0x6a, 0x7d, 0x0d, + 0x30, 0x4e, 0x90, 0xb3, 0xb6, 0x2e, 0x68, 0x4b, 0x65, 0x90, 0x2d, 0x95, 0xb1, 0xfc, 0x65, 0x82, + 0x9e, 0x85, 0x81, 0x6d, 0x2f, 0x70, 0xab, 0x43, 0x8c, 0xd7, 0xc3, 0x74, 0xcc, 0xaf, 0x78, 0x81, + 0x7b, 0xb8, 0x3f, 0x37, 0x6d, 0x34, 0x87, 0x02, 0x31, 0x23, 0xb5, 0xff, 0x9e, 0x25, 0xba, 0x71, + 0xd5, 0xf3, 0x4d, 0x41, 0x71, 0x11, 0x20, 0x26, 0xcd, 0x88, 0x24, 0x5a, 0x47, 0xaa, 0xe9, 0xd0, + 0x50, 0x18, 0xac, 0x51, 0x51, 0x31, 0x10, 0x6f, 0x39, 0x11, 0x9b, 0x55, 0xa2, 0x3b, 0x95, 0x18, + 0x68, 0x48, 0x04, 0x4e, 0x69, 0x0c, 0x31, 0x50, 0xee, 0x29, 0x06, 0x7e, 0xd7, 0x82, 0xe1, 0x25, + 0x2f, 0x70, 0xbd, 0x60, 0x13, 0x7d, 0x1e, 0x46, 0xa8, 0x94, 0x76, 0x9d, 0xc4, 0x11, 0x12, 0xe0, + 0xa7, 0xb4, 0x59, 0xa6, 0x84, 0xe6, 0x7c, 0x6b, 0x7b, 0x93, 0x02, 0xe2, 0x79, 0x4a, 0x4d, 0xe7, + 0xdd, 0x8d, 0xdb, 0xef, 0x90, 0x66, 0x72, 0x8d, 0x24, 0x4e, 0xfa, 0x39, 0x29, 0x0c, 0x2b, 0xae, + 0xe8, 0x0a, 0x0c, 0x25, 0x4e, 0xb4, 0x49, 0x12, 0x21, 0x0a, 0x72, 0x97, 0x2c, 0x2f, 0x89, 0xe9, + 0xdc, 0x24, 0x41, 0x93, 0xa4, 0x02, 0x72, 0x9d, 0x15, 0xc5, 0x82, 0x85, 0xdd, 0x84, 0xb1, 0x65, + 0xa7, 0xe5, 0xdc, 0xf6, 0x7c, 0x2f, 0xf1, 0x48, 0x8c, 0x1e, 0x87, 0xb2, 0xe3, 0xba, 0x6c, 0x7d, + 0x54, 0x96, 0x4e, 0x1f, 0xec, 0xcf, 0x95, 0x17, 0x5d, 0x3a, 0x50, 0xa0, 0xa8, 0xf6, 0x30, 0xa5, + 0x40, 0x4f, 0xc2, 0x80, 0x1b, 0x85, 0xad, 0x6a, 0x89, 0x51, 0x9e, 0xa1, 0x63, 0x5a, 0x8b, 0xc2, + 0x56, 0x86, 0x94, 0xd1, 0xd8, 0xdf, 0x2e, 0x01, 0x5a, 0x26, 0xad, 0xad, 0xd5, 0x86, 0x31, 0x92, + 0x17, 0x60, 0x64, 0x27, 0x0c, 0xbc, 0x24, 0x8c, 0x62, 0x51, 0x21, 0x9b, 0x40, 0xd7, 0x04, 0x0c, + 0x2b, 0x2c, 0x3a, 0x0f, 0x03, 0xad, 0x74, 0xf1, 0x8f, 0x49, 0xc1, 0xc1, 0x96, 0x3d, 0xc3, 0x50, + 0x8a, 0x76, 0x4c, 0x22, 0x31, 0xf1, 0x15, 0xc5, 0xcd, 0x98, 0x44, 0x98, 0x61, 0xd2, 0x79, 0x43, + 0x67, 0x94, 0x98, 0xd6, 0x99, 0x79, 0x43, 0x31, 0x58, 0xa3, 0x42, 0x37, 0xa1, 0xc2, 0xff, 0x61, + 0xb2, 0xc1, 0xe6, 0x78, 0x81, 0xcc, 0xb8, 0x1a, 0x36, 0x1d, 0x3f, 0xdb, 0xe5, 0xe3, 0x6c, 0x76, + 0xc9, 0xe2, 0x38, 0xe5, 0x64, 0xcc, 0xae, 0xa1, 0x9e, 0xb3, 0xeb, 0x97, 0x2d, 0x40, 0xcb, 0x5e, + 0xe0, 0x92, 0xe8, 0x04, 0x36, 0xcc, 0xa3, 0x4d, 0xfc, 0x7f, 0x47, 0x9b, 0x16, 0xee, 0xb4, 0xc2, + 0x80, 0x04, 0xc9, 0x72, 0x18, 0xb8, 0x7c, 0x13, 0xfd, 0x14, 0x0c, 0x24, 0xb4, 0x2a, 0xde, 0xac, + 0xc7, 0xe4, 0x60, 0xd0, 0x0a, 0x0e, 0xf7, 0xe7, 0xce, 0x74, 0x96, 0x60, 0x4d, 0x60, 0x65, 0xd0, + 0x27, 0x61, 0x28, 0x4e, 0x9c, 0xa4, 0x1d, 0x8b, 0x86, 0x3e, 0x22, 0x1b, 0xda, 0x60, 0xd0, 0xc3, + 0xfd, 0xb9, 0x49, 0x55, 0x8c, 0x83, 0xb0, 0x28, 0x80, 0x9e, 0x80, 0xe1, 0x1d, 0x12, 0xc7, 0xce, + 0xa6, 0x94, 0x7f, 0x93, 0xa2, 0xec, 0xf0, 0x35, 0x0e, 0xc6, 0x12, 0x8f, 0x1e, 0x85, 0x41, 0x12, + 0x45, 0x61, 0x24, 0xe6, 0xc1, 0xb8, 0x20, 0x1c, 0x5c, 0xa1, 0x40, 0xcc, 0x71, 0xf6, 0xbf, 0xb1, + 0x60, 0x52, 0xb5, 0x95, 0xd7, 0x75, 0x02, 0xcb, 0xfb, 0x4d, 0x80, 0xa6, 0xfc, 0xc0, 0x98, 0x2d, + 0xaf, 0xd1, 0x8b, 0x8f, 0xe5, 0x4d, 0xba, 0xce, 0x6e, 0x4c, 0x39, 0x2b, 0x50, 0x8c, 0x35, 0x6e, + 0xf6, 0x3f, 0xb1, 0xe0, 0x54, 0xe6, 0x8b, 0xae, 0x7a, 0x71, 0x82, 0xde, 0xea, 0xf8, 0xaa, 0xf9, + 0xfe, 0xbe, 0x8a, 0x96, 0x66, 0xdf, 0xa4, 0x66, 0x89, 0x84, 0x68, 0x5f, 0x74, 0x19, 0x06, 0xbd, + 0x84, 0xec, 0xc8, 0x8f, 0x79, 0xb4, 0xeb, 0xc7, 0xf0, 0x56, 0xa5, 0x23, 0xb2, 0x46, 0x4b, 0x62, + 0xce, 0xc0, 0xfe, 0x6f, 0x16, 0x54, 0x96, 0xc3, 0x60, 0xc3, 0xdb, 0xbc, 0xe6, 0xb4, 0x4e, 0x60, + 0x2c, 0xd6, 0x60, 0x80, 0x71, 0xe7, 0x0d, 0x7f, 0x3c, 0xbf, 0xe1, 0xa2, 0x39, 0xf3, 0x74, 0x17, + 0xe3, 0xda, 0x82, 0x12, 0x3f, 0x14, 0x84, 0x19, 0x8b, 0xd9, 0x4f, 0x40, 0x45, 0x11, 0xa0, 0x29, + 0x28, 0x6f, 0x13, 0xae, 0x21, 0x56, 0x30, 0xfd, 0x89, 0x66, 0x60, 0x70, 0xd7, 0xf1, 0xdb, 0x62, + 0x79, 0x62, 0xfe, 0xe7, 0x53, 0xa5, 0x17, 0x2d, 0xfb, 0x5b, 0x6c, 0x8d, 0x89, 0x4a, 0x56, 0x82, + 0x5d, 0xb1, 0xfc, 0xdf, 0x83, 0x19, 0x3f, 0x47, 0xea, 0x88, 0x8e, 0xe8, 0x5f, 0x4a, 0x3d, 0x24, + 0xda, 0x3a, 0x93, 0x87, 0xc5, 0xb9, 0x75, 0x50, 0xc1, 0x1d, 0xb6, 0xe8, 0x8c, 0x72, 0x7c, 0xd6, + 0x5e, 0xb1, 0xf3, 0xdf, 0x10, 0x30, 0xac, 0xb0, 0x54, 0x40, 0xcc, 0xa8, 0xc6, 0x5f, 0x21, 0x7b, + 0x0d, 0xe2, 0x93, 0x66, 0x12, 0x46, 0x1f, 0x68, 0xf3, 0x1f, 0xe6, 0xbd, 0xcf, 0xe5, 0xcb, 0xa8, + 0x60, 0x50, 0xbe, 0x42, 0xf6, 0xf8, 0x50, 0xe8, 0x5f, 0x57, 0xee, 0xfa, 0x75, 0xbf, 0x69, 0xc1, + 0xb8, 0xfa, 0xba, 0x13, 0x58, 0x48, 0x4b, 0xe6, 0x42, 0x7a, 0xb8, 0xeb, 0x7c, 0x2c, 0x58, 0x42, + 0x3f, 0x62, 0x22, 0x40, 0xd0, 0xd4, 0xa3, 0x90, 0x76, 0x0d, 0x95, 0xd9, 0x1f, 0xe4, 0x80, 0xf4, + 0xf3, 0x5d, 0x57, 0xc8, 0xde, 0x7a, 0x48, 0x37, 0xfc, 0xfc, 0xef, 0x32, 0x46, 0x6d, 0xa0, 0xeb, + 0xa8, 0xfd, 0x56, 0x09, 0x4e, 0xab, 0x1e, 0x30, 0xb6, 0xd4, 0x1f, 0xf7, 0x3e, 0x78, 0x16, 0x46, + 0x5d, 0xb2, 0xe1, 0xb4, 0xfd, 0x44, 0x19, 0x01, 0x83, 0xdc, 0x10, 0xac, 0xa5, 0x60, 0xac, 0xd3, + 0x1c, 0xa1, 0xdb, 0xfe, 0x15, 0x30, 0xd9, 0x9b, 0x38, 0x74, 0x06, 0x53, 0x7d, 0x4b, 0x33, 0xe5, + 0xc6, 0x74, 0x53, 0x4e, 0x98, 0x6d, 0x8f, 0xc2, 0xa0, 0xb7, 0x43, 0xf7, 0xe2, 0x92, 0xb9, 0xc5, + 0xae, 0x51, 0x20, 0xe6, 0x38, 0xf4, 0x31, 0x18, 0x6e, 0x86, 0x3b, 0x3b, 0x4e, 0xe0, 0x56, 0xcb, + 0x4c, 0x03, 0x1c, 0xa5, 0xdb, 0xf5, 0x32, 0x07, 0x61, 0x89, 0x43, 0x0f, 0xc1, 0x80, 0x13, 0x6d, + 0xc6, 0xd5, 0x01, 0x46, 0x33, 0x42, 0x6b, 0x5a, 0x8c, 0x36, 0x63, 0xcc, 0xa0, 0x54, 0xb3, 0xbb, + 0x13, 0x46, 0xdb, 0x5e, 0xb0, 0x59, 0xf3, 0x22, 0xa6, 0xa6, 0x69, 0x9a, 0xdd, 0xeb, 0x0a, 0x83, + 0x35, 0x2a, 0xb4, 0x0a, 0x83, 0xad, 0x30, 0x4a, 0xe2, 0xea, 0x10, 0xeb, 0xee, 0x47, 0x0a, 0x96, + 0x12, 0xff, 0xda, 0x7a, 0x18, 0x25, 0xe9, 0x07, 0xd0, 0x7f, 0x31, 0xe6, 0xc5, 0xd1, 0x27, 0xa1, + 0x4c, 0x82, 0xdd, 0xea, 0x30, 0xe3, 0x32, 0x9b, 0xc7, 0x65, 0x25, 0xd8, 0xbd, 0xe5, 0x44, 0xa9, + 0x9c, 0x59, 0x09, 0x76, 0x31, 0x2d, 0x83, 0xde, 0x80, 0x8a, 0x74, 0x03, 0xc5, 0xd5, 0x91, 0xe2, + 0x29, 0x86, 0x05, 0x11, 0x26, 0xef, 0xb6, 0xbd, 0x88, 0xec, 0x90, 0x20, 0x89, 0x53, 0xf3, 0x45, + 0x62, 0x63, 0x9c, 0x72, 0x43, 0x6f, 0xc0, 0x18, 0xd7, 0xfc, 0xae, 0x85, 0xed, 0x20, 0x89, 0xab, + 0x15, 0xd6, 0xbc, 0x5c, 0x9f, 0xc1, 0xad, 0x94, 0x6e, 0x69, 0x46, 0x30, 0x1d, 0xd3, 0x80, 0x31, + 0x36, 0x58, 0x21, 0x0c, 0xe3, 0xbe, 0xb7, 0x4b, 0x02, 0x12, 0xc7, 0xf5, 0x28, 0xbc, 0x4d, 0xaa, + 0xc0, 0x5a, 0x7e, 0x36, 0xdf, 0x94, 0x0e, 0x6f, 0x93, 0xa5, 0xe9, 0x83, 0xfd, 0xb9, 0xf1, 0xab, + 0x7a, 0x19, 0x6c, 0xb2, 0x40, 0x37, 0x61, 0x82, 0xaa, 0x94, 0x5e, 0xca, 0x74, 0xb4, 0x17, 0x53, + 0x74, 0xb0, 0x3f, 0x37, 0x81, 0x8d, 0x42, 0x38, 0xc3, 0x04, 0xbd, 0x0a, 0x15, 0xdf, 0xdb, 0x20, + 0xcd, 0xbd, 0xa6, 0x4f, 0xaa, 0x63, 0x8c, 0x63, 0xee, 0xb2, 0xba, 0x2a, 0x89, 0xb8, 0xca, 0xae, + 0xfe, 0xe2, 0xb4, 0x38, 0xba, 0x05, 0x67, 0x12, 0x12, 0xed, 0x78, 0x81, 0x43, 0x97, 0x83, 0xd0, + 0x27, 0x99, 0x43, 0x62, 0x9c, 0xcd, 0xb7, 0x73, 0xa2, 0xeb, 0xce, 0xac, 0xe7, 0x52, 0xe1, 0x82, + 0xd2, 0xe8, 0x06, 0x4c, 0xb2, 0x95, 0x50, 0x6f, 0xfb, 0x7e, 0x3d, 0xf4, 0xbd, 0xe6, 0x5e, 0x75, + 0x82, 0x31, 0xfc, 0x98, 0xf4, 0x38, 0xac, 0x99, 0x68, 0x6a, 0x60, 0xa5, 0xff, 0x70, 0xb6, 0x34, + 0xba, 0x0d, 0x93, 0x31, 0x69, 0xb6, 0x23, 0x2f, 0xd9, 0xa3, 0xf3, 0x97, 0xdc, 0x4d, 0xaa, 0x93, + 0xc5, 0x66, 0x62, 0xc3, 0x24, 0xe5, 0x9e, 0x9d, 0x0c, 0x10, 0x67, 0x19, 0xd2, 0xa5, 0x1d, 0x27, + 0xae, 0x17, 0x54, 0xa7, 0x98, 0xc4, 0x50, 0x2b, 0xa3, 0x41, 0x81, 0x98, 0xe3, 0x98, 0xcd, 0x4d, + 0x7f, 0xdc, 0xa0, 0x12, 0x74, 0x9a, 0x11, 0xa6, 0x36, 0xb7, 0x44, 0xe0, 0x94, 0x86, 0x6e, 0xcb, + 0x49, 0xb2, 0x57, 0x45, 0x8c, 0x54, 0x2d, 0x97, 0xf5, 0xf5, 0x37, 0x30, 0x85, 0xa3, 0xab, 0x30, + 0x4c, 0x82, 0xdd, 0xd5, 0x28, 0xdc, 0xa9, 0x9e, 0x2a, 0x5e, 0xb3, 0x2b, 0x9c, 0x84, 0x0b, 0xf4, + 0xd4, 0x00, 0x10, 0x60, 0x2c, 0x59, 0xa0, 0xbb, 0x50, 0xcd, 0x19, 0x11, 0x3e, 0x00, 0x33, 0x6c, + 0x00, 0x5e, 0x16, 0x65, 0xab, 0xeb, 0x05, 0x74, 0x87, 0x5d, 0x70, 0xb8, 0x90, 0xbb, 0x7d, 0x1b, + 0x26, 0x94, 0x60, 0x61, 0x63, 0x8b, 0xe6, 0x60, 0x90, 0x4a, 0x4c, 0x69, 0x04, 0x57, 0x68, 0x57, + 0x52, 0x41, 0x1a, 0x63, 0x0e, 0x67, 0x5d, 0xe9, 0xbd, 0x47, 0x96, 0xf6, 0x12, 0xc2, 0xcd, 0xa2, + 0xb2, 0xd6, 0x95, 0x12, 0x81, 0x53, 0x1a, 0xfb, 0xff, 0x70, 0xc5, 0x24, 0x95, 0x5e, 0x7d, 0xc8, + 0xeb, 0xa7, 0x61, 0x64, 0x2b, 0x8c, 0x13, 0x4a, 0xcd, 0xea, 0x18, 0x4c, 0x55, 0x91, 0xcb, 0x02, + 0x8e, 0x15, 0x05, 0x7a, 0x09, 0xc6, 0x9b, 0x7a, 0x05, 0x62, 0xb3, 0x39, 0x2d, 0x8a, 0x98, 0xb5, + 0x63, 0x93, 0x16, 0xbd, 0x08, 0x23, 0xcc, 0x33, 0xdc, 0x0c, 0x7d, 0x61, 0x80, 0xc9, 0x1d, 0x73, + 0xa4, 0x2e, 0xe0, 0x87, 0xda, 0x6f, 0xac, 0xa8, 0xa9, 0x19, 0x4b, 0x9b, 0xb0, 0x56, 0x17, 0x62, + 0x5e, 0x99, 0xb1, 0x97, 0x19, 0x14, 0x0b, 0xac, 0xfd, 0x57, 0x4b, 0x5a, 0x2f, 0x53, 0x93, 0x82, + 0xa0, 0x3a, 0x0c, 0xdf, 0x71, 0xbc, 0xc4, 0x0b, 0x36, 0xc5, 0x7e, 0xfe, 0x44, 0x57, 0x99, 0xcf, + 0x0a, 0xbd, 0xce, 0x0b, 0xf0, 0x5d, 0x49, 0xfc, 0xc1, 0x92, 0x0d, 0xe5, 0x18, 0xb5, 0x83, 0x80, + 0x72, 0x2c, 0xf5, 0xcb, 0x11, 0xf3, 0x02, 0x9c, 0xa3, 0xf8, 0x83, 0x25, 0x1b, 0xf4, 0x16, 0x80, + 0x9c, 0x37, 0xc4, 0x15, 0x1e, 0xd9, 0xa7, 0x7b, 0x33, 0x5d, 0x57, 0x65, 0x96, 0x26, 0xe8, 0x9e, + 0x97, 0xfe, 0xc7, 0x1a, 0x3f, 0x3b, 0x61, 0x7a, 0x4f, 0x67, 0x63, 0xd0, 0xe7, 0xe8, 0x52, 0x75, + 0xa2, 0x84, 0xb8, 0x8b, 0x89, 0xe8, 0x9c, 0x27, 0xfb, 0x53, 0x5b, 0xd7, 0xbd, 0x1d, 0xa2, 0x2f, + 0x6b, 0xc1, 0x04, 0xa7, 0xfc, 0xec, 0xdf, 0x29, 0x43, 0xb5, 0xa8, 0xb9, 0x74, 0xd2, 0x91, 0xbb, + 0x5e, 0xb2, 0x4c, 0xd5, 0x15, 0xcb, 0x9c, 0x74, 0x2b, 0x02, 0x8e, 0x15, 0x05, 0x1d, 0xfd, 0xd8, + 0xdb, 0x94, 0x56, 0xc7, 0x60, 0x3a, 0xfa, 0x0d, 0x06, 0xc5, 0x02, 0x4b, 0xe9, 0x22, 0xe2, 0xc4, + 0xc2, 0xe5, 0xaf, 0xcd, 0x12, 0xcc, 0xa0, 0x58, 0x60, 0x75, 0x87, 0xc1, 0x40, 0x0f, 0x87, 0x81, + 0xd1, 0x45, 0x83, 0xc7, 0xdb, 0x45, 0xe8, 0x6d, 0x80, 0x0d, 0x2f, 0xf0, 0xe2, 0x2d, 0xc6, 0x7d, + 0xe8, 0xc8, 0xdc, 0x95, 0xb2, 0xb3, 0xaa, 0xb8, 0x60, 0x8d, 0x23, 0x7a, 0x01, 0x46, 0xd5, 0x02, + 0x5c, 0xab, 0x55, 0x87, 0x4d, 0x7f, 0x72, 0x2a, 0x8d, 0x6a, 0x58, 0xa7, 0xb3, 0xdf, 0xc9, 0xce, + 0x17, 0xb1, 0x02, 0xb4, 0xfe, 0xb5, 0xfa, 0xed, 0xdf, 0x52, 0xf7, 0xfe, 0xb5, 0xff, 0xa0, 0x0c, + 0x93, 0x46, 0x65, 0xed, 0xb8, 0x0f, 0x99, 0x75, 0x89, 0x6e, 0x44, 0x4e, 0x42, 0xc4, 0xfa, 0xb3, + 0x7b, 0x2f, 0x15, 0x7d, 0xb3, 0xa2, 0x2b, 0x80, 0x97, 0x47, 0x6f, 0x43, 0xc5, 0x77, 0x62, 0xe6, + 0x7c, 0x20, 0x62, 0xdd, 0xf5, 0xc3, 0x2c, 0x55, 0xf4, 0x9d, 0x38, 0xd1, 0xf6, 0x02, 0xce, 0x3b, + 0x65, 0x49, 0x77, 0x4c, 0xaa, 0x9c, 0xc8, 0x33, 0x25, 0xd5, 0x08, 0xaa, 0xc1, 0xec, 0x61, 0x8e, + 0x43, 0x2f, 0xc2, 0x58, 0x44, 0xd8, 0xac, 0x58, 0xa6, 0xba, 0x16, 0x9b, 0x66, 0x83, 0xa9, 0x52, + 0x86, 0x35, 0x1c, 0x36, 0x28, 0x53, 0x5d, 0x7b, 0xa8, 0x8b, 0xae, 0xfd, 0x04, 0x0c, 0xb3, 0x1f, + 0x6a, 0x06, 0xa8, 0xd1, 0x58, 0xe3, 0x60, 0x2c, 0xf1, 0xd9, 0x09, 0x33, 0xd2, 0xe7, 0x84, 0x79, + 0x12, 0x26, 0x6a, 0x0e, 0xd9, 0x09, 0x83, 0x95, 0xc0, 0x6d, 0x85, 0x5e, 0x90, 0xa0, 0x2a, 0x0c, + 0xb0, 0xdd, 0x81, 0xaf, 0xed, 0x01, 0xca, 0x01, 0x0f, 0x50, 0xcd, 0xd9, 0xfe, 0xe3, 0x12, 0x8c, + 0xd7, 0x88, 0x4f, 0x12, 0xc2, 0x6d, 0x8d, 0x18, 0xad, 0x02, 0xda, 0x8c, 0x9c, 0x26, 0xa9, 0x93, + 0xc8, 0x0b, 0xdd, 0x06, 0x69, 0x86, 0x01, 0x3b, 0xa9, 0xa1, 0xdb, 0xdd, 0x99, 0x83, 0xfd, 0x39, + 0x74, 0xa9, 0x03, 0x8b, 0x73, 0x4a, 0xa0, 0x37, 0x61, 0xbc, 0x15, 0x11, 0xc3, 0x87, 0x66, 0x15, + 0xa9, 0x0b, 0x75, 0x9d, 0x90, 0x6b, 0xaa, 0x06, 0x08, 0x9b, 0xac, 0xd0, 0x67, 0x61, 0x2a, 0x8c, + 0x5a, 0x5b, 0x4e, 0x50, 0x23, 0x2d, 0x12, 0xb8, 0x54, 0x15, 0x17, 0x3e, 0x82, 0x99, 0x83, 0xfd, + 0xb9, 0xa9, 0x1b, 0x19, 0x1c, 0xee, 0xa0, 0x46, 0x6f, 0xc2, 0x74, 0x2b, 0x0a, 0x5b, 0xce, 0x26, + 0x9b, 0x28, 0x42, 0xe3, 0xe0, 0xd2, 0xe7, 0xe9, 0x83, 0xfd, 0xb9, 0xe9, 0x7a, 0x16, 0x79, 0xb8, + 0x3f, 0x77, 0x8a, 0x75, 0x14, 0x85, 0xa4, 0x48, 0xdc, 0xc9, 0xc6, 0xde, 0x84, 0xd3, 0xb5, 0xf0, + 0x4e, 0x70, 0xc7, 0x89, 0xdc, 0xc5, 0xfa, 0x9a, 0x66, 0xdc, 0x5f, 0x97, 0xc6, 0x25, 0x3f, 0xf7, + 0xca, 0xdd, 0xa7, 0xb4, 0x92, 0x5c, 0xfd, 0x5f, 0xf5, 0x7c, 0x52, 0xe0, 0x44, 0xf8, 0xeb, 0x25, + 0xa3, 0xa6, 0x94, 0x5e, 0x79, 0xea, 0xad, 0x42, 0x4f, 0xfd, 0x6b, 0x30, 0xb2, 0xe1, 0x11, 0xdf, + 0xc5, 0x64, 0x43, 0x8c, 0xcc, 0xe3, 0xc5, 0x07, 0x18, 0xab, 0x94, 0x52, 0x3a, 0x8d, 0xb8, 0x69, + 0xba, 0x2a, 0x0a, 0x63, 0xc5, 0x06, 0x6d, 0xc3, 0x94, 0xb4, 0x7d, 0x24, 0x56, 0x2c, 0xe2, 0x27, + 0xba, 0x19, 0x54, 0x26, 0x73, 0x36, 0x80, 0x38, 0xc3, 0x06, 0x77, 0x30, 0xa6, 0xb6, 0xe8, 0x0e, + 0xdd, 0xae, 0x06, 0xd8, 0x94, 0x66, 0xb6, 0x28, 0x33, 0xab, 0x19, 0xd4, 0xfe, 0x9a, 0x05, 0x0f, + 0x74, 0xf4, 0x8c, 0x70, 0x2f, 0x1c, 0xf3, 0x28, 0x64, 0xcd, 0xfd, 0x52, 0x6f, 0x73, 0xdf, 0xfe, + 0x0d, 0x0b, 0x66, 0x56, 0x76, 0x5a, 0xc9, 0x5e, 0xcd, 0x33, 0x4f, 0x13, 0x3e, 0x01, 0x43, 0x3b, + 0xc4, 0xf5, 0xda, 0x3b, 0x62, 0xe4, 0xe6, 0xa4, 0x48, 0xbf, 0xc6, 0xa0, 0x87, 0xfb, 0x73, 0xe3, + 0x8d, 0x24, 0x8c, 0x9c, 0x4d, 0xc2, 0x01, 0x58, 0x90, 0xa3, 0x9f, 0xe5, 0xba, 0xe9, 0x55, 0x6f, + 0xc7, 0x93, 0x07, 0x52, 0x5d, 0x5d, 0x5e, 0xf3, 0xb2, 0x43, 0xe7, 0x5f, 0x6b, 0x3b, 0x41, 0xe2, + 0x25, 0x7b, 0xa6, 0x2e, 0xcb, 0x18, 0xe1, 0x94, 0xa7, 0xfd, 0x3d, 0x0b, 0x26, 0xa5, 0x3c, 0x59, + 0x74, 0xdd, 0x88, 0xc4, 0x31, 0x9a, 0x85, 0x92, 0xd7, 0x12, 0x2d, 0x05, 0x51, 0xba, 0xb4, 0x56, + 0xc7, 0x25, 0xaf, 0x85, 0xea, 0x50, 0xe1, 0x67, 0x5b, 0xe9, 0x04, 0xeb, 0xeb, 0x84, 0x8c, 0xd9, + 0x7e, 0xeb, 0xb2, 0x24, 0x4e, 0x99, 0x48, 0xcd, 0x98, 0xed, 0x45, 0x65, 0xf3, 0xa4, 0xe5, 0xb2, + 0x80, 0x63, 0x45, 0x81, 0x2e, 0xc0, 0x48, 0x10, 0xba, 0xfc, 0xa8, 0x91, 0xaf, 0x6b, 0x36, 0x6d, + 0xaf, 0x0b, 0x18, 0x56, 0x58, 0xfb, 0x17, 0x2c, 0x18, 0x93, 0x5f, 0xd6, 0xa7, 0x92, 0x4e, 0x97, + 0x57, 0xaa, 0xa0, 0xa7, 0xcb, 0x8b, 0x2a, 0xd9, 0x0c, 0x63, 0xe8, 0xd6, 0xe5, 0xa3, 0xe8, 0xd6, + 0xf6, 0x57, 0x4b, 0x30, 0x21, 0x9b, 0xd3, 0x68, 0xdf, 0x8e, 0x49, 0x82, 0xd6, 0xa1, 0xe2, 0xf0, + 0x2e, 0x27, 0x72, 0xd6, 0x3e, 0x9a, 0x6f, 0x75, 0x19, 0xe3, 0x93, 0x8e, 0xe8, 0xa2, 0x2c, 0x8d, + 0x53, 0x46, 0xc8, 0x87, 0xe9, 0x20, 0x4c, 0xd8, 0xd6, 0xa7, 0xf0, 0xdd, 0xce, 0x06, 0xb2, 0xdc, + 0xcf, 0x0a, 0xee, 0xd3, 0xd7, 0xb3, 0x5c, 0x70, 0x27, 0x63, 0xb4, 0x22, 0x3d, 0x3d, 0x65, 0x56, + 0xc3, 0xf9, 0x6e, 0x35, 0x14, 0x3b, 0x7a, 0xec, 0xdf, 0xb7, 0xa0, 0x22, 0xc9, 0x4e, 0xe2, 0x18, + 0xe8, 0x1a, 0x0c, 0xc7, 0x6c, 0x10, 0x64, 0xd7, 0xd8, 0xdd, 0x1a, 0xce, 0xc7, 0x2b, 0xdd, 0xd1, + 0xf9, 0xff, 0x18, 0x4b, 0x1e, 0xcc, 0x55, 0xad, 0x9a, 0xff, 0x21, 0x71, 0x55, 0xab, 0xf6, 0x14, + 0xec, 0x32, 0xff, 0x91, 0xb5, 0x59, 0xb3, 0xe7, 0xa9, 0xe2, 0xd9, 0x8a, 0xc8, 0x86, 0x77, 0x37, + 0xab, 0x78, 0xd6, 0x19, 0x14, 0x0b, 0x2c, 0x7a, 0x0b, 0xc6, 0x9a, 0xd2, 0xc3, 0x9b, 0x8a, 0x81, + 0xc7, 0xba, 0xfa, 0xcb, 0xd5, 0xd1, 0x0a, 0x0f, 0xc8, 0x59, 0xd6, 0xca, 0x63, 0x83, 0x1b, 0x95, + 0x30, 0xe9, 0xa9, 0x70, 0xb9, 0xab, 0x73, 0x25, 0x22, 0x49, 0xca, 0xb7, 0xf0, 0x40, 0xd8, 0xfe, + 0x55, 0x0b, 0x86, 0xb8, 0x9f, 0xb0, 0x3f, 0xc7, 0xaa, 0x76, 0x54, 0x94, 0xf6, 0xdd, 0x2d, 0x0a, + 0x14, 0x27, 0x47, 0xe8, 0x1a, 0x54, 0xd8, 0x0f, 0xe6, 0x2f, 0x29, 0x17, 0x47, 0x22, 0xf1, 0x5a, + 0xf5, 0x06, 0xde, 0x92, 0xc5, 0x70, 0xca, 0xc1, 0xfe, 0xa5, 0x32, 0x15, 0x55, 0x29, 0xa9, 0xb1, + 0x8b, 0x5b, 0xf7, 0x6f, 0x17, 0x2f, 0xdd, 0xaf, 0x5d, 0x7c, 0x13, 0x26, 0x9b, 0xda, 0xb9, 0x54, + 0x3a, 0x92, 0x17, 0xba, 0x4e, 0x12, 0xed, 0x08, 0x8b, 0xfb, 0xca, 0x96, 0x4d, 0x26, 0x38, 0xcb, + 0x15, 0x7d, 0x0e, 0xc6, 0xf8, 0x38, 0x8b, 0x5a, 0x06, 0x58, 0x2d, 0x1f, 0x2b, 0x9e, 0x2f, 0x7a, + 0x15, 0x6c, 0x26, 0x36, 0xb4, 0xe2, 0xd8, 0x60, 0x66, 0x7f, 0x79, 0x10, 0x06, 0x57, 0x76, 0x49, + 0x90, 0x9c, 0x80, 0x40, 0x6a, 0xc2, 0x84, 0x17, 0xec, 0x86, 0xfe, 0x2e, 0x71, 0x39, 0xfe, 0x28, + 0x9b, 0xeb, 0x19, 0xc1, 0x7a, 0x62, 0xcd, 0x60, 0x81, 0x33, 0x2c, 0xef, 0x87, 0xe5, 0x7e, 0x09, + 0x86, 0xf8, 0xd8, 0x0b, 0xb3, 0x3d, 0xd7, 0x0b, 0xce, 0x3a, 0x51, 0xac, 0x82, 0xd4, 0xab, 0xc0, + 0xdd, 0xee, 0xa2, 0x38, 0x7a, 0x07, 0x26, 0x36, 0xbc, 0x28, 0x4e, 0xa8, 0xc9, 0x1d, 0x27, 0xce, + 0x4e, 0xeb, 0x1e, 0x2c, 0x75, 0xd5, 0x0f, 0xab, 0x06, 0x27, 0x9c, 0xe1, 0x8c, 0x36, 0x61, 0x9c, + 0x1a, 0x8f, 0x69, 0x55, 0xc3, 0x47, 0xae, 0x4a, 0xb9, 0xe2, 0xae, 0xea, 0x8c, 0xb0, 0xc9, 0x97, + 0x0a, 0x93, 0x26, 0x33, 0x36, 0x47, 0x98, 0x46, 0xa1, 0x84, 0x09, 0xb7, 0x32, 0x39, 0x8e, 0xca, + 0x24, 0x16, 0xcf, 0x51, 0x31, 0x65, 0x52, 0x1a, 0xb5, 0x61, 0x7f, 0x9d, 0xee, 0x8e, 0xb4, 0x0f, + 0x4f, 0x60, 0x6b, 0x79, 0xc5, 0xdc, 0x5a, 0xce, 0x16, 0x8e, 0x67, 0xc1, 0xb6, 0xf2, 0x79, 0x18, + 0xd5, 0x86, 0x1b, 0x2d, 0x40, 0xa5, 0x29, 0x83, 0x0f, 0x84, 0xd4, 0x55, 0xea, 0x8b, 0x8a, 0x4a, + 0xc0, 0x29, 0x0d, 0xed, 0x0d, 0xaa, 0xec, 0x65, 0x83, 0x91, 0xa8, 0x2a, 0x88, 0x19, 0xc6, 0x7e, + 0x0e, 0x60, 0xe5, 0x2e, 0x69, 0x2e, 0x72, 0xe3, 0x4b, 0x3b, 0xe3, 0xb2, 0x8a, 0xcf, 0xb8, 0xe8, + 0x0e, 0x3d, 0xb1, 0xba, 0x6c, 0x28, 0xe5, 0xf3, 0x00, 0x5c, 0x0b, 0x7d, 0xfd, 0xf5, 0xeb, 0xd2, + 0x3b, 0xcc, 0x1d, 0x7c, 0x0a, 0x8a, 0x35, 0x0a, 0x74, 0x16, 0xca, 0x7e, 0x3b, 0x10, 0xca, 0xe1, + 0xf0, 0xc1, 0xfe, 0x5c, 0xf9, 0x6a, 0x3b, 0xc0, 0x14, 0xa6, 0xc5, 0xff, 0x94, 0xfb, 0x8e, 0xff, + 0xe9, 0x1d, 0xff, 0xfa, 0xff, 0x97, 0x61, 0x6a, 0xd5, 0x27, 0x77, 0x8d, 0x56, 0x3f, 0x06, 0x43, + 0x6e, 0xe4, 0xed, 0x92, 0x28, 0xbb, 0x49, 0xd7, 0x18, 0x14, 0x0b, 0x6c, 0xdf, 0x21, 0x49, 0x37, + 0x3b, 0xb7, 0xdb, 0xe3, 0x0e, 0xc2, 0xea, 0xf9, 0xa5, 0xe8, 0x2d, 0x18, 0xe6, 0x27, 0xa1, 0x71, + 0x75, 0x90, 0x4d, 0xbb, 0x67, 0xf3, 0x9a, 0x90, 0xed, 0x8b, 0x79, 0xe1, 0xdb, 0xe0, 0x61, 0x21, + 0x4a, 0x46, 0x09, 0x28, 0x96, 0x2c, 0x67, 0x3f, 0x05, 0x63, 0x3a, 0xe5, 0x91, 0xe2, 0x43, 0xfe, + 0x82, 0x05, 0xa7, 0x56, 0xfd, 0xb0, 0xb9, 0x9d, 0x89, 0x0f, 0x7b, 0x01, 0x46, 0xe9, 0x72, 0x89, + 0x8d, 0x40, 0x49, 0x23, 0x88, 0x54, 0xa0, 0xb0, 0x4e, 0xa7, 0x15, 0xbb, 0x79, 0x73, 0xad, 0x96, + 0x17, 0x7b, 0x2a, 0x50, 0x58, 0xa7, 0xb3, 0xff, 0xd0, 0x82, 0x87, 0x2f, 0x2d, 0xaf, 0xd4, 0x49, + 0x14, 0x7b, 0x71, 0x42, 0x82, 0xa4, 0x23, 0xfc, 0x95, 0xea, 0x6e, 0xae, 0xd6, 0x94, 0x54, 0x77, + 0xab, 0xb1, 0x56, 0x08, 0xec, 0x87, 0x25, 0xb4, 0xfb, 0xd7, 0x2d, 0x38, 0x75, 0xc9, 0x4b, 0x30, + 0x69, 0x85, 0xd9, 0xf0, 0xd3, 0x88, 0xb4, 0xc2, 0xd8, 0x4b, 0xc2, 0x68, 0x2f, 0x1b, 0x7e, 0x8a, + 0x15, 0x06, 0x6b, 0x54, 0xbc, 0xe6, 0x5d, 0x2f, 0xa6, 0x2d, 0x2d, 0x99, 0x06, 0x24, 0x16, 0x70, + 0xac, 0x28, 0xe8, 0x87, 0xb9, 0x5e, 0xc4, 0x14, 0x80, 0x3d, 0xb1, 0x5a, 0xd5, 0x87, 0xd5, 0x24, + 0x02, 0xa7, 0x34, 0xf6, 0xd7, 0x2c, 0x38, 0x7d, 0xc9, 0x6f, 0xc7, 0x09, 0x89, 0x36, 0x62, 0xa3, + 0xb1, 0xcf, 0x41, 0x85, 0x48, 0x25, 0x5b, 0xb4, 0x55, 0x6d, 0x0b, 0x4a, 0xfb, 0xe6, 0xb1, 0xaf, + 0x8a, 0xae, 0x8f, 0x60, 0xcb, 0xa3, 0x05, 0x09, 0x7e, 0xb3, 0x04, 0xe3, 0x97, 0xd7, 0xd7, 0xeb, + 0x97, 0x48, 0x22, 0x24, 0x62, 0x6f, 0x27, 0x11, 0xd6, 0xec, 0xdc, 0x6e, 0xaa, 0x4c, 0x3b, 0xf1, + 0xfc, 0x79, 0x7e, 0xed, 0x60, 0x7e, 0x2d, 0x48, 0x6e, 0x44, 0x8d, 0x24, 0xf2, 0x82, 0xcd, 0x5c, + 0xcb, 0x58, 0xca, 0xed, 0x72, 0x91, 0xdc, 0x46, 0xcf, 0xc1, 0x10, 0xbb, 0xf7, 0x20, 0x95, 0x8a, + 0x07, 0x95, 0x26, 0xc0, 0xa0, 0x87, 0xfb, 0x73, 0x95, 0x9b, 0x78, 0x8d, 0xff, 0xc1, 0x82, 0x14, + 0xdd, 0x84, 0xd1, 0xad, 0x24, 0x69, 0x5d, 0x26, 0x8e, 0x4b, 0x22, 0x29, 0x1d, 0xce, 0xe5, 0x49, + 0x07, 0xda, 0x09, 0x9c, 0x2c, 0x5d, 0x50, 0x29, 0x2c, 0xc6, 0x3a, 0x1f, 0xbb, 0x01, 0x90, 0xe2, + 0x8e, 0xc9, 0x2a, 0xb0, 0x7f, 0x68, 0xc1, 0xf0, 0x65, 0x27, 0x70, 0x7d, 0x12, 0xa1, 0x97, 0x61, + 0x80, 0xdc, 0x25, 0x4d, 0xb1, 0x41, 0xe7, 0x36, 0x38, 0xdd, 0xc4, 0xb8, 0x9f, 0x8b, 0xfe, 0xc7, + 0xac, 0x14, 0xba, 0x0c, 0xc3, 0xb4, 0xb5, 0x97, 0x54, 0x14, 0xf2, 0x23, 0x45, 0x5f, 0xac, 0x86, + 0x9d, 0xef, 0x7b, 0x02, 0x84, 0x65, 0x71, 0xe6, 0xaf, 0x69, 0xb6, 0x1a, 0x54, 0x80, 0x25, 0xdd, + 0xac, 0xa9, 0xf5, 0xe5, 0x3a, 0x27, 0x12, 0xdc, 0xb8, 0xbf, 0x46, 0x02, 0x71, 0xca, 0xc4, 0x5e, + 0x87, 0x0a, 0x1d, 0xd4, 0x45, 0xdf, 0x73, 0xba, 0xbb, 0x8a, 0x9e, 0x82, 0x8a, 0x74, 0xdb, 0xc4, + 0x22, 0x90, 0x99, 0x71, 0x95, 0x5e, 0x9d, 0x18, 0xa7, 0x78, 0xfb, 0x45, 0x98, 0x61, 0xe7, 0xa0, + 0x4e, 0xb2, 0x65, 0xac, 0xb1, 0x9e, 0x93, 0xd9, 0xfe, 0xc6, 0x00, 0x4c, 0xaf, 0x35, 0x96, 0x1b, + 0xa6, 0x37, 0xf0, 0x45, 0x18, 0xe3, 0x5b, 0x37, 0x9d, 0xa2, 0x8e, 0x2f, 0xca, 0x2b, 0x6f, 0xff, + 0xba, 0x86, 0xc3, 0x06, 0x25, 0x7a, 0x18, 0xca, 0xde, 0xbb, 0x41, 0x36, 0x7e, 0x6d, 0xed, 0xb5, + 0xeb, 0x98, 0xc2, 0x29, 0x9a, 0x6a, 0x01, 0x5c, 0x24, 0x2a, 0xb4, 0xd2, 0x04, 0x5e, 0x81, 0x09, + 0x2f, 0x6e, 0xc6, 0xde, 0x5a, 0x40, 0xe5, 0x85, 0xd3, 0x94, 0x93, 0x3d, 0x55, 0xd1, 0x69, 0x53, + 0x15, 0x16, 0x67, 0xa8, 0x35, 0xf9, 0x3c, 0xd8, 0xb7, 0x26, 0xd1, 0x33, 0xc8, 0x99, 0x2a, 0x49, + 0x2d, 0xf6, 0x75, 0x31, 0x8b, 0xa5, 0x11, 0x4a, 0x12, 0xff, 0xe0, 0x18, 0x4b, 0x1c, 0xba, 0x04, + 0xd3, 0xcd, 0x2d, 0xa7, 0xb5, 0xd8, 0x4e, 0xb6, 0x6a, 0x5e, 0xdc, 0x0c, 0x77, 0x49, 0xb4, 0xc7, + 0x54, 0xd7, 0x91, 0xd4, 0x2b, 0xa4, 0x10, 0xcb, 0x97, 0x17, 0xeb, 0x94, 0x12, 0x77, 0x96, 0x31, + 0x95, 0x0a, 0x38, 0x36, 0xa5, 0x62, 0x11, 0x26, 0x65, 0x5d, 0x0d, 0x12, 0x33, 0x81, 0x3f, 0xca, + 0x5a, 0xa7, 0x2e, 0x90, 0x08, 0xb0, 0x6a, 0x5b, 0x96, 0xde, 0x7e, 0x07, 0x2a, 0x2a, 0xce, 0x4b, + 0x86, 0x2a, 0x5a, 0x05, 0xa1, 0x8a, 0xbd, 0x45, 0xb5, 0xf4, 0x56, 0x97, 0x73, 0xbd, 0xd5, 0x7f, + 0xc3, 0x82, 0x34, 0xdc, 0x05, 0x5d, 0x86, 0x4a, 0x2b, 0x64, 0x27, 0x56, 0x91, 0x3c, 0x06, 0x7e, + 0x30, 0x77, 0x55, 0x73, 0x09, 0xc2, 0xbb, 0xa1, 0x2e, 0x4b, 0xe0, 0xb4, 0x30, 0x5a, 0x82, 0xe1, + 0x56, 0x44, 0x1a, 0x09, 0xbb, 0x1f, 0xd0, 0x93, 0x0f, 0x1f, 0x6a, 0x4e, 0x8f, 0x65, 0x41, 0xfb, + 0xb7, 0x2c, 0x00, 0xee, 0x0c, 0x76, 0x82, 0x4d, 0x72, 0x02, 0x06, 0x6e, 0x0d, 0x06, 0xe2, 0x16, + 0x69, 0x76, 0x3b, 0x4b, 0x4c, 0xdb, 0xd3, 0x68, 0x91, 0x66, 0xda, 0xe1, 0xf4, 0x1f, 0x66, 0xa5, + 0xed, 0x9f, 0x07, 0x98, 0x48, 0xc9, 0xa8, 0xe1, 0x81, 0x9e, 0x31, 0xc2, 0xe1, 0xcf, 0x66, 0xc2, + 0xe1, 0x2b, 0x8c, 0x5a, 0x8b, 0x80, 0x7f, 0x07, 0xca, 0x3b, 0xce, 0x5d, 0x61, 0xdd, 0x3c, 0xd5, + 0xbd, 0x19, 0x94, 0xff, 0xfc, 0x35, 0xe7, 0x2e, 0x57, 0x30, 0x9f, 0x92, 0x13, 0xe4, 0x9a, 0x73, + 0xf7, 0x90, 0x9f, 0x18, 0x32, 0x59, 0x43, 0x8d, 0xa8, 0x2f, 0xfe, 0x49, 0xfa, 0x9f, 0x6d, 0x1b, + 0xb4, 0x12, 0x56, 0x97, 0x17, 0x08, 0xd7, 0x68, 0x5f, 0x75, 0x79, 0x41, 0xb6, 0x2e, 0x2f, 0xe8, + 0xa3, 0x2e, 0x2f, 0x40, 0xef, 0xc1, 0xb0, 0x38, 0x8a, 0x60, 0x71, 0x7c, 0xa3, 0x17, 0x17, 0xfa, + 0xa8, 0x4f, 0x9c, 0x64, 0xf0, 0x3a, 0x17, 0xa4, 0x02, 0x2d, 0xa0, 0x3d, 0xeb, 0x95, 0x15, 0xa2, + 0xbf, 0x66, 0xc1, 0x84, 0xf8, 0x8d, 0xc9, 0xbb, 0x6d, 0x12, 0x27, 0x62, 0xa3, 0xfe, 0x78, 0xff, + 0x6d, 0x10, 0x05, 0x79, 0x53, 0x3e, 0x2e, 0xa5, 0xa5, 0x89, 0xec, 0xd9, 0xa2, 0x4c, 0x2b, 0xd0, + 0x3f, 0xb4, 0x60, 0x66, 0xc7, 0xb9, 0xcb, 0x6b, 0xe4, 0x30, 0xec, 0x24, 0x5e, 0x28, 0xe2, 0x12, + 0x5f, 0xee, 0x6f, 0xf8, 0x3b, 0x8a, 0xf3, 0x46, 0xca, 0x10, 0xa6, 0x99, 0x3c, 0x92, 0x9e, 0x4d, + 0xcd, 0x6d, 0xd7, 0xec, 0x06, 0x8c, 0xc8, 0xf9, 0x96, 0x63, 0xa6, 0xd4, 0x74, 0x2d, 0xe4, 0xc8, + 0x27, 0x41, 0x9a, 0x59, 0xc3, 0xea, 0x11, 0x73, 0xed, 0xbe, 0xd6, 0xf3, 0x0e, 0x8c, 0xe9, 0x73, + 0xec, 0xbe, 0xd6, 0xf5, 0x2e, 0x9c, 0xca, 0x99, 0x4b, 0xf7, 0xb5, 0xca, 0x3b, 0x70, 0xb6, 0x70, + 0x7e, 0xdc, 0xcf, 0x8a, 0xed, 0x6f, 0x5a, 0xba, 0x1c, 0x3c, 0x01, 0xb7, 0xd0, 0xb2, 0xe9, 0x16, + 0x3a, 0xd7, 0x7d, 0xe5, 0x14, 0xf8, 0x86, 0xde, 0xd2, 0x1b, 0x4d, 0xa5, 0x3a, 0x7a, 0x15, 0x86, + 0x7c, 0x0a, 0x91, 0xe7, 0x5f, 0x76, 0xef, 0x15, 0x99, 0xaa, 0x44, 0x0c, 0x1e, 0x63, 0xc1, 0xc1, + 0xfe, 0x5d, 0x0b, 0x06, 0x4e, 0xa0, 0x27, 0xb0, 0xd9, 0x13, 0xcf, 0x14, 0xb2, 0x16, 0x97, 0xbd, + 0xe7, 0xb1, 0x73, 0x67, 0xe5, 0x6e, 0x42, 0x82, 0x98, 0xe9, 0xd5, 0xb9, 0x1d, 0xf3, 0xbf, 0x4b, + 0x30, 0x4a, 0xab, 0x92, 0xc1, 0x1a, 0x2f, 0xc1, 0xb8, 0xef, 0xdc, 0x26, 0xbe, 0x74, 0x55, 0x67, + 0xad, 0xcb, 0xab, 0x3a, 0x12, 0x9b, 0xb4, 0xb4, 0xf0, 0x86, 0xee, 0xb5, 0x17, 0xfa, 0x8b, 0x2a, + 0x6c, 0xb8, 0xf4, 0xb1, 0x49, 0x4b, 0x0d, 0x9d, 0x3b, 0x4e, 0xd2, 0xdc, 0x12, 0x96, 0xa7, 0x6a, + 0xee, 0xeb, 0x14, 0x88, 0x39, 0x8e, 0xea, 0x61, 0x72, 0x76, 0xde, 0x22, 0x11, 0xd3, 0xc3, 0xb8, + 0x96, 0xab, 0xf4, 0x30, 0x6c, 0xa2, 0x71, 0x96, 0x1e, 0x7d, 0x0a, 0x26, 0x68, 0xe7, 0x84, 0xed, + 0x44, 0x86, 0xa2, 0x0c, 0xb2, 0x50, 0x14, 0x16, 0x79, 0xbc, 0x6e, 0x60, 0x70, 0x86, 0x12, 0xd5, + 0x61, 0xc6, 0x0b, 0x9a, 0x7e, 0xdb, 0x25, 0x37, 0x03, 0x2f, 0xf0, 0x12, 0xcf, 0xf1, 0xbd, 0xf7, + 0x88, 0x2b, 0xf4, 0x60, 0x15, 0x35, 0xb4, 0x96, 0x43, 0x83, 0x73, 0x4b, 0xda, 0x3f, 0x0b, 0xa7, + 0xae, 0x86, 0x8e, 0xbb, 0xe4, 0xf8, 0x4e, 0xd0, 0x24, 0xd1, 0x5a, 0xb0, 0xd9, 0xf3, 0x20, 0x5c, + 0x3f, 0xb6, 0x2e, 0xf5, 0x3a, 0xb6, 0xb6, 0xb7, 0x00, 0xe9, 0x15, 0x88, 0x10, 0x2c, 0x0c, 0xc3, + 0x1e, 0xaf, 0x4a, 0x4c, 0xff, 0xc7, 0xf3, 0x95, 0xe4, 0x8e, 0x96, 0x69, 0xc1, 0x45, 0x1c, 0x80, + 0x25, 0x23, 0x6a, 0x48, 0xe5, 0x69, 0xd5, 0xbd, 0x6d, 0x5c, 0xfb, 0x05, 0x98, 0x66, 0x25, 0x8f, + 0x68, 0x7f, 0xfd, 0x65, 0x0b, 0x26, 0xaf, 0x67, 0xee, 0x9e, 0x3e, 0x06, 0x43, 0x31, 0x89, 0x72, + 0x9c, 0x94, 0x0d, 0x06, 0xc5, 0x02, 0x7b, 0xec, 0xce, 0x90, 0x1f, 0x59, 0x50, 0x61, 0xb1, 0xbd, + 0x2d, 0x6a, 0x4b, 0xdd, 0x7f, 0xa5, 0x76, 0xd9, 0x50, 0x6a, 0x73, 0x8d, 0x74, 0xd5, 0x9c, 0x22, + 0x9d, 0x16, 0x5d, 0x51, 0x77, 0x32, 0xbb, 0xd8, 0xe7, 0x29, 0x1b, 0x7e, 0x83, 0x6f, 0xc2, 0xbc, + 0xb8, 0x29, 0x6f, 0x69, 0xb2, 0x93, 0x68, 0x45, 0xfb, 0x21, 0x39, 0x89, 0x56, 0xed, 0x29, 0x90, + 0x7e, 0x75, 0xad, 0xc9, 0x6c, 0x57, 0xf8, 0x0c, 0x8b, 0xd8, 0x64, 0x6b, 0x53, 0x5d, 0x5e, 0x9e, + 0x13, 0x11, 0x98, 0x02, 0x7a, 0xc8, 0x04, 0x99, 0xf8, 0xc7, 0x6f, 0xa4, 0xa7, 0x45, 0xec, 0xcb, + 0x30, 0x99, 0xe9, 0x30, 0xf4, 0x02, 0x0c, 0xb6, 0xb6, 0x9c, 0x98, 0x64, 0x22, 0x70, 0x06, 0xeb, + 0x14, 0x78, 0xb8, 0x3f, 0x37, 0xa1, 0x0a, 0x30, 0x08, 0xe6, 0xd4, 0xf6, 0x7f, 0xb5, 0x60, 0xe0, + 0x7a, 0xe8, 0x9e, 0xc4, 0x64, 0x7a, 0xc5, 0x98, 0x4c, 0x0f, 0x15, 0x65, 0xb6, 0x28, 0x9c, 0x47, + 0xab, 0x99, 0x79, 0x74, 0xae, 0x90, 0x43, 0xf7, 0x29, 0xb4, 0x03, 0xa3, 0x2c, 0x5f, 0x86, 0x88, + 0x06, 0x7a, 0xce, 0xb0, 0xaf, 0xe6, 0x32, 0xf6, 0xd5, 0xa4, 0x46, 0xaa, 0x59, 0x59, 0x4f, 0xc0, + 0xb0, 0x88, 0x48, 0xc9, 0xc6, 0xa6, 0x0a, 0x5a, 0x2c, 0xf1, 0xf6, 0xaf, 0x96, 0xc1, 0xc8, 0xcf, + 0x81, 0x7e, 0xdf, 0x82, 0xf9, 0x88, 0xdf, 0xc6, 0x71, 0x6b, 0xed, 0xc8, 0x0b, 0x36, 0x1b, 0xcd, + 0x2d, 0xe2, 0xb6, 0x7d, 0x2f, 0xd8, 0x5c, 0xdb, 0x0c, 0x42, 0x05, 0x5e, 0xb9, 0x4b, 0x9a, 0x6d, + 0xe6, 0xa0, 0xee, 0x91, 0x0c, 0x44, 0x9d, 0xf8, 0x5e, 0x3c, 0xd8, 0x9f, 0x9b, 0xc7, 0x47, 0xe2, + 0x8d, 0x8f, 0xd8, 0x16, 0xf4, 0x87, 0x16, 0x2c, 0xf0, 0xb4, 0x15, 0xfd, 0xb7, 0xbf, 0x8b, 0x35, + 0x5a, 0x97, 0xac, 0x52, 0x26, 0xeb, 0x24, 0xda, 0x59, 0xfa, 0x84, 0xe8, 0xd0, 0x85, 0xfa, 0xd1, + 0xea, 0xc2, 0x47, 0x6d, 0x9c, 0xfd, 0xcf, 0xcb, 0x30, 0x4e, 0x7b, 0x31, 0xbd, 0x81, 0xfe, 0x82, + 0x31, 0x25, 0x1e, 0xc9, 0x4c, 0x89, 0x69, 0x83, 0xf8, 0x78, 0x2e, 0x9f, 0xc7, 0x30, 0xed, 0x3b, + 0x71, 0x72, 0x99, 0x38, 0x51, 0x72, 0x9b, 0x38, 0xec, 0x88, 0x55, 0x4c, 0xf3, 0xa3, 0x9c, 0xda, + 0x2a, 0x2f, 0xd6, 0xd5, 0x2c, 0x33, 0xdc, 0xc9, 0x1f, 0xed, 0x02, 0x62, 0xc7, 0xb9, 0x91, 0x13, + 0xc4, 0xfc, 0x5b, 0x3c, 0xe1, 0xbc, 0x3e, 0x5a, 0xad, 0xb3, 0xa2, 0x56, 0x74, 0xb5, 0x83, 0x1b, + 0xce, 0xa9, 0x41, 0x3b, 0xa6, 0x1f, 0xec, 0xf7, 0x98, 0x7e, 0xa8, 0x47, 0x00, 0xf8, 0x0e, 0x4c, + 0x89, 0x51, 0xd9, 0xf0, 0x36, 0xc5, 0x26, 0xfd, 0x46, 0x26, 0x8c, 0xc7, 0xea, 0x3f, 0xe0, 0xa0, + 0x47, 0x0c, 0x8f, 0xfd, 0x73, 0x70, 0x8a, 0x56, 0x67, 0x86, 0x2b, 0xc7, 0x88, 0xc0, 0xe4, 0x76, + 0xfb, 0x36, 0xf1, 0x49, 0x22, 0x61, 0xa2, 0xd2, 0x5c, 0xb5, 0xdf, 0x2c, 0x9d, 0xea, 0x96, 0x57, + 0x4c, 0x16, 0x38, 0xcb, 0xd3, 0xfe, 0x35, 0x0b, 0x58, 0x40, 0xe0, 0x09, 0x6c, 0x7f, 0x9f, 0x36, + 0xb7, 0xbf, 0x6a, 0x91, 0x04, 0x2a, 0xd8, 0xf9, 0x9e, 0xe7, 0xc3, 0x52, 0x8f, 0xc2, 0xbb, 0x7b, + 0x52, 0xf7, 0xef, 0xad, 0x71, 0xfd, 0x2f, 0x8b, 0x2f, 0x48, 0x75, 0x39, 0x11, 0x7d, 0x01, 0x46, + 0x9a, 0x4e, 0xcb, 0x69, 0xf2, 0xc4, 0x48, 0x85, 0xde, 0x1f, 0xa3, 0xd0, 0xfc, 0xb2, 0x28, 0xc1, + 0xbd, 0x19, 0x3f, 0x25, 0xbf, 0x52, 0x82, 0x7b, 0x7a, 0x30, 0x54, 0x95, 0xb3, 0xdb, 0x30, 0x6e, + 0x30, 0xbb, 0xaf, 0xa6, 0xef, 0x17, 0xf8, 0x76, 0xa1, 0x2c, 0x96, 0x1d, 0x98, 0x0e, 0xb4, 0xff, + 0x54, 0x38, 0x4a, 0x75, 0xfa, 0xa3, 0xbd, 0x36, 0x04, 0x26, 0x49, 0xb5, 0x80, 0xc7, 0x0c, 0x1b, + 0xdc, 0xc9, 0xd9, 0xfe, 0x5b, 0x16, 0x3c, 0xa0, 0x13, 0x6a, 0xf7, 0x46, 0x7b, 0xf9, 0x93, 0x6b, + 0x30, 0x12, 0xb6, 0x48, 0xe4, 0xa4, 0x36, 0xd9, 0x05, 0xd9, 0xe9, 0x37, 0x04, 0xfc, 0x70, 0x7f, + 0x6e, 0x46, 0xe7, 0x2e, 0xe1, 0x58, 0x95, 0x44, 0x36, 0x0c, 0xb1, 0xce, 0x88, 0xc5, 0x9d, 0x5e, + 0x96, 0x3c, 0x88, 0x9d, 0x43, 0xc5, 0x58, 0x60, 0xec, 0x9f, 0xb7, 0xf8, 0xc4, 0xd2, 0x9b, 0x8e, + 0xde, 0x85, 0xa9, 0x1d, 0x6a, 0xbe, 0xad, 0xdc, 0x6d, 0x45, 0xdc, 0x1b, 0x2e, 0xfb, 0xe9, 0xa9, + 0x5e, 0xfd, 0xa4, 0x7d, 0xe4, 0x52, 0x55, 0xb4, 0x79, 0xea, 0x5a, 0x86, 0x19, 0xee, 0x60, 0x6f, + 0xff, 0x59, 0x89, 0xaf, 0x44, 0xa6, 0xd5, 0x3d, 0x01, 0xc3, 0xad, 0xd0, 0x5d, 0x5e, 0xab, 0x61, + 0xd1, 0x43, 0x4a, 0x5c, 0xd5, 0x39, 0x18, 0x4b, 0x3c, 0xba, 0x08, 0x40, 0xee, 0x26, 0x24, 0x0a, + 0x1c, 0x5f, 0x9d, 0x92, 0x2b, 0xe5, 0x69, 0x45, 0x61, 0xb0, 0x46, 0x45, 0xcb, 0xb4, 0xa2, 0x70, + 0xd7, 0x73, 0xd9, 0xa5, 0x8a, 0xb2, 0x59, 0xa6, 0xae, 0x30, 0x58, 0xa3, 0xa2, 0xa6, 0x72, 0x3b, + 0x88, 0xf9, 0x06, 0xe8, 0xdc, 0x16, 0x89, 0x6b, 0x46, 0x52, 0x53, 0xf9, 0xa6, 0x8e, 0xc4, 0x26, + 0x2d, 0x5a, 0x84, 0xa1, 0xc4, 0x61, 0x67, 0xbf, 0x83, 0xc5, 0xa1, 0x32, 0xeb, 0x94, 0x42, 0xcf, + 0x0f, 0x44, 0x0b, 0x60, 0x51, 0x10, 0xbd, 0x29, 0x45, 0x30, 0x17, 0xc9, 0x22, 0xe4, 0xa9, 0x70, + 0xda, 0xea, 0xe2, 0x5b, 0x97, 0xc1, 0x22, 0x94, 0xca, 0xe0, 0x65, 0x7f, 0xa9, 0x02, 0x90, 0x6a, + 0x7b, 0xe8, 0xbd, 0x0e, 0x11, 0xf1, 0x74, 0x77, 0xfd, 0xf0, 0xf8, 0xe4, 0x03, 0xfa, 0xb2, 0x05, + 0xa3, 0x8e, 0xef, 0x87, 0x4d, 0x27, 0x61, 0xbd, 0x5c, 0xea, 0x2e, 0xa2, 0x44, 0xfd, 0x8b, 0x69, + 0x09, 0xde, 0x84, 0xe7, 0xe4, 0xb1, 0xae, 0x86, 0xe9, 0xd9, 0x0a, 0xbd, 0x62, 0xf4, 0x53, 0xd2, + 0x08, 0xe0, 0xd3, 0x63, 0x36, 0x6b, 0x04, 0x54, 0x98, 0x34, 0xd6, 0xf4, 0x7f, 0x74, 0xd3, 0xc8, + 0x17, 0x33, 0x50, 0x7c, 0x35, 0xd6, 0x50, 0x7a, 0x7a, 0xa5, 0x8a, 0x41, 0x75, 0x3d, 0xf4, 0x7b, + 0xb0, 0xf8, 0xfe, 0xb8, 0xa6, 0x5d, 0xf7, 0x08, 0xfb, 0x7e, 0x07, 0x26, 0x5d, 0x73, 0xbb, 0x15, + 0xb3, 0xe9, 0xf1, 0x22, 0xbe, 0x99, 0xdd, 0x39, 0xdd, 0x60, 0x33, 0x08, 0x9c, 0x65, 0x8c, 0xea, + 0x3c, 0x08, 0x7f, 0x2d, 0xd8, 0x08, 0x45, 0xe8, 0x9c, 0x5d, 0x38, 0x96, 0x7b, 0x71, 0x42, 0x76, + 0x28, 0x65, 0xba, 0x8f, 0x5e, 0x17, 0x65, 0xb1, 0xe2, 0x82, 0x5e, 0x85, 0x21, 0x76, 0x3b, 0x2a, + 0xae, 0x8e, 0x14, 0xfb, 0x01, 0xcd, 0x8b, 0xbd, 0xe9, 0xa2, 0x62, 0x7f, 0x63, 0x2c, 0x38, 0xa0, + 0xcb, 0xf2, 0x7a, 0x7e, 0xbc, 0x16, 0xdc, 0x8c, 0x09, 0xbb, 0x9e, 0x5f, 0x59, 0xfa, 0x68, 0x7a, + 0xf3, 0x9e, 0xc3, 0x73, 0x73, 0xe2, 0x19, 0x25, 0xa9, 0xbe, 0x22, 0xfe, 0xcb, 0x54, 0x7b, 0x55, + 0x28, 0x6e, 0x9e, 0x99, 0x8e, 0x2f, 0xed, 0xce, 0x5b, 0x26, 0x0b, 0x9c, 0xe5, 0x79, 0xa2, 0xdb, + 0xe7, 0x6c, 0x00, 0x53, 0xd9, 0x85, 0x75, 0x5f, 0xb7, 0xeb, 0x1f, 0x0e, 0xc0, 0x84, 0x39, 0x11, + 0xd0, 0x02, 0x54, 0x04, 0x13, 0x95, 0x5c, 0x4b, 0xcd, 0xed, 0x6b, 0x12, 0x81, 0x53, 0x1a, 0x96, + 0x5c, 0x8c, 0x15, 0xd7, 0x82, 0xa6, 0xd2, 0xe4, 0x62, 0x0a, 0x83, 0x35, 0x2a, 0xaa, 0x44, 0xdf, + 0x0e, 0xc3, 0x44, 0x6d, 0x05, 0x6a, 0xb6, 0x2c, 0x31, 0x28, 0x16, 0x58, 0xba, 0x05, 0x6c, 0x93, + 0x28, 0x20, 0xbe, 0xe9, 0xc9, 0x54, 0x5b, 0xc0, 0x15, 0x1d, 0x89, 0x4d, 0x5a, 0xba, 0xa5, 0x85, + 0x31, 0x9b, 0x7e, 0x42, 0x55, 0x4f, 0x83, 0xd0, 0x1a, 0xfc, 0x76, 0xa0, 0xc4, 0xa3, 0x37, 0xe0, + 0x01, 0x75, 0x99, 0x0f, 0x73, 0xcf, 0xb0, 0xac, 0x71, 0xc8, 0xb0, 0xac, 0x1f, 0x58, 0xce, 0x27, + 0xc3, 0x45, 0xe5, 0xd1, 0x2b, 0x30, 0x21, 0x54, 0x60, 0xc9, 0x71, 0xd8, 0x8c, 0x39, 0xb8, 0x62, + 0x60, 0x71, 0x86, 0x1a, 0xd5, 0x60, 0x8a, 0x42, 0x98, 0x16, 0x2a, 0x39, 0xf0, 0x4b, 0x89, 0x6a, + 0xaf, 0xbf, 0x92, 0xc1, 0xe3, 0x8e, 0x12, 0x68, 0x11, 0x26, 0xb9, 0x8e, 0x42, 0x6d, 0x4a, 0x36, + 0x0e, 0x22, 0xa2, 0x55, 0x2d, 0x84, 0x1b, 0x26, 0x1a, 0x67, 0xe9, 0xd1, 0x8b, 0x30, 0xe6, 0x44, + 0xcd, 0x2d, 0x2f, 0x21, 0xcd, 0xa4, 0x1d, 0xf1, 0xe4, 0x17, 0x5a, 0xd0, 0xc6, 0xa2, 0x86, 0xc3, + 0x06, 0xa5, 0xfd, 0x1e, 0x9c, 0xca, 0x09, 0x86, 0xa7, 0x13, 0xc7, 0x69, 0x79, 0xf2, 0x9b, 0x32, + 0xe1, 0x64, 0x8b, 0xf5, 0x35, 0xf9, 0x35, 0x1a, 0x15, 0x9d, 0x9d, 0xcc, 0x25, 0xae, 0xe5, 0xc3, + 0x54, 0xb3, 0x73, 0x55, 0x22, 0x70, 0x4a, 0x63, 0x7f, 0x17, 0x40, 0x73, 0xe8, 0xf4, 0x11, 0x4c, + 0xf4, 0x22, 0x8c, 0xc9, 0x24, 0xae, 0x5a, 0xca, 0x44, 0xf5, 0x99, 0x97, 0x34, 0x1c, 0x36, 0x28, + 0x69, 0xdb, 0x02, 0xe9, 0xa6, 0xca, 0x06, 0xaf, 0x29, 0xff, 0x15, 0x4e, 0x69, 0xd0, 0xd3, 0x30, + 0x12, 0x13, 0x7f, 0xe3, 0xaa, 0x17, 0x6c, 0x8b, 0x89, 0xad, 0xa4, 0x70, 0x43, 0xc0, 0xb1, 0xa2, + 0x40, 0x4b, 0x50, 0x6e, 0x7b, 0xae, 0x98, 0xca, 0x72, 0xc3, 0x2f, 0xdf, 0x5c, 0xab, 0x1d, 0xee, + 0xcf, 0x3d, 0x52, 0x94, 0x9b, 0x96, 0x9a, 0xf6, 0xf1, 0x3c, 0x5d, 0x7e, 0xb4, 0x70, 0xde, 0xd9, + 0xc0, 0xd0, 0x11, 0xcf, 0x06, 0x2e, 0x02, 0x88, 0xaf, 0x96, 0x73, 0xb9, 0x9c, 0x8e, 0xda, 0x25, + 0x85, 0xc1, 0x1a, 0x15, 0x8a, 0x61, 0xba, 0x19, 0x11, 0x47, 0xda, 0xd0, 0x3c, 0xac, 0x7b, 0xe4, + 0xde, 0x1d, 0x04, 0xcb, 0x59, 0x66, 0xb8, 0x93, 0x3f, 0x0a, 0x61, 0xda, 0x15, 0x77, 0x47, 0xd3, + 0x4a, 0x2b, 0x47, 0x8f, 0x25, 0x67, 0x71, 0x35, 0x59, 0x46, 0xb8, 0x93, 0x37, 0x7a, 0x1b, 0x66, + 0x25, 0xb0, 0xf3, 0xba, 0x2e, 0x5b, 0x2e, 0xe5, 0xa5, 0x73, 0x07, 0xfb, 0x73, 0xb3, 0xb5, 0x42, + 0x2a, 0xdc, 0x85, 0x03, 0xc2, 0x30, 0xc4, 0xce, 0x92, 0xe2, 0xea, 0x28, 0xdb, 0xe7, 0x9e, 0x2c, + 0x76, 0x06, 0xd0, 0xb9, 0x3e, 0xcf, 0xce, 0xa1, 0x44, 0xfc, 0x6d, 0x7a, 0x2c, 0xc7, 0x80, 0x58, + 0x70, 0x42, 0x1b, 0x30, 0xea, 0x04, 0x41, 0x98, 0x38, 0x5c, 0x85, 0x1a, 0x2b, 0xd6, 0xfd, 0x34, + 0xc6, 0x8b, 0x69, 0x09, 0xce, 0x5d, 0x85, 0xf4, 0x69, 0x18, 0xac, 0x33, 0x46, 0x77, 0x60, 0x32, + 0xbc, 0x43, 0x85, 0xa3, 0xf4, 0x52, 0xc4, 0xd5, 0x71, 0x56, 0xd7, 0xf3, 0x7d, 0xfa, 0x69, 0x8d, + 0xc2, 0x9a, 0xd4, 0x32, 0x99, 0xe2, 0x6c, 0x2d, 0x68, 0xde, 0xf0, 0x56, 0x4f, 0xa4, 0x71, 0xe4, + 0xa9, 0xb7, 0x5a, 0x77, 0x4e, 0xb3, 0xeb, 0xdf, 0x3c, 0x9e, 0x94, 0xad, 0xfe, 0xc9, 0xcc, 0xf5, + 0xef, 0x14, 0x85, 0x75, 0x3a, 0xb4, 0x05, 0x63, 0xe9, 0x91, 0x55, 0x14, 0xb3, 0xec, 0x30, 0xa3, + 0x17, 0x2f, 0xf6, 0xf7, 0x71, 0x6b, 0x5a, 0x49, 0x6e, 0x39, 0xe8, 0x10, 0x6c, 0x70, 0x9e, 0xfd, + 0x24, 0x8c, 0x6a, 0x03, 0x7b, 0x94, 0x70, 0xe9, 0xd9, 0x57, 0x60, 0x2a, 0x3b, 0x74, 0x47, 0x0a, + 0xb7, 0xfe, 0xef, 0x25, 0x98, 0xcc, 0x39, 0xb9, 0x62, 0xf9, 0x6d, 0x33, 0x02, 0x35, 0x4d, 0x67, + 0x6b, 0x8a, 0xc5, 0x52, 0x1f, 0x62, 0x51, 0xca, 0xe8, 0x72, 0xa1, 0x8c, 0x16, 0xa2, 0x70, 0xe0, + 0xfd, 0x88, 0x42, 0x73, 0xf7, 0x19, 0xec, 0x6b, 0xf7, 0x39, 0x06, 0xf1, 0x69, 0x6c, 0x60, 0xc3, + 0x7d, 0x6c, 0x60, 0xbf, 0x54, 0x82, 0xa9, 0x34, 0xb4, 0x5c, 0x64, 0x93, 0xbe, 0xff, 0xe7, 0x1d, + 0xaf, 0x1a, 0xe7, 0x1d, 0xf9, 0xd9, 0xa2, 0x33, 0xad, 0x2a, 0x3c, 0xfb, 0xc0, 0x99, 0xb3, 0x8f, + 0x27, 0xfb, 0xe2, 0xd6, 0xfd, 0x1c, 0xe4, 0x6f, 0x97, 0xe0, 0x74, 0xb6, 0xc8, 0xb2, 0xef, 0x78, + 0x3b, 0x27, 0xd0, 0x37, 0x37, 0x8c, 0xbe, 0x79, 0xa6, 0x9f, 0xaf, 0x61, 0x4d, 0x2b, 0xec, 0xa0, + 0xd7, 0x33, 0x1d, 0xb4, 0xd0, 0x3f, 0xcb, 0xee, 0xbd, 0xf4, 0x5d, 0x0b, 0xce, 0xe6, 0x96, 0x3b, + 0x01, 0xef, 0xeb, 0x75, 0xd3, 0xfb, 0xfa, 0x44, 0xdf, 0xdf, 0x54, 0xe0, 0x8e, 0xfd, 0x5a, 0xb9, + 0xe0, 0x5b, 0x98, 0xff, 0xea, 0x06, 0x8c, 0x3a, 0xcd, 0x26, 0x89, 0xe3, 0x6b, 0xa1, 0xab, 0xd2, + 0x49, 0x3d, 0xc3, 0xf6, 0xa4, 0x14, 0x7c, 0xb8, 0x3f, 0x37, 0x9b, 0x65, 0x91, 0xa2, 0xb1, 0xce, + 0xc1, 0x4c, 0x51, 0x57, 0x3a, 0xd6, 0x14, 0x75, 0x17, 0x01, 0x76, 0x95, 0x55, 0x9b, 0x75, 0x86, + 0x69, 0xf6, 0xae, 0x46, 0x85, 0x7e, 0x86, 0xe9, 0x8a, 0x3c, 0x64, 0x84, 0x1f, 0x72, 0x3c, 0xd7, + 0xe7, 0x58, 0xe9, 0xe1, 0x27, 0xfc, 0x02, 0xaa, 0x72, 0x1c, 0x2a, 0x96, 0xe8, 0xb3, 0x30, 0x15, + 0xf3, 0x1c, 0x07, 0xcb, 0xbe, 0x13, 0xb3, 0x7b, 0x11, 0x42, 0x26, 0xb2, 0x5b, 0xa5, 0x8d, 0x0c, + 0x0e, 0x77, 0x50, 0xdb, 0x7f, 0xbf, 0x0c, 0x0f, 0x76, 0x99, 0xa2, 0x68, 0xd1, 0x3c, 0xe2, 0x7d, + 0x2a, 0xeb, 0xdd, 0x99, 0xcd, 0x2d, 0x6c, 0xb8, 0x7b, 0x32, 0x63, 0x5c, 0x7a, 0xdf, 0x63, 0xfc, + 0x15, 0x4b, 0xf3, 0xbb, 0xf1, 0x40, 0xd0, 0x4f, 0x1f, 0x71, 0xe9, 0xfd, 0xb8, 0x3a, 0xea, 0xbf, + 0x68, 0xc1, 0x23, 0xb9, 0x9f, 0x65, 0x84, 0x8a, 0x2c, 0x40, 0xa5, 0x49, 0x81, 0xda, 0xdd, 0xa5, + 0xf4, 0x82, 0xa0, 0x44, 0xe0, 0x94, 0xc6, 0x88, 0x08, 0x29, 0xf5, 0x8c, 0x08, 0xf9, 0xa7, 0x16, + 0xcc, 0x64, 0x1b, 0x71, 0x02, 0x92, 0x69, 0xcd, 0x94, 0x4c, 0x1f, 0xed, 0x67, 0xc8, 0x0b, 0x84, + 0xd2, 0xbf, 0x9d, 0x80, 0x33, 0x1d, 0x3b, 0x17, 0xef, 0xbb, 0x5d, 0x98, 0xde, 0x64, 0x2a, 0xbc, + 0x76, 0x2b, 0x4c, 0x7c, 0x4c, 0xee, 0x05, 0xba, 0xae, 0x57, 0xc8, 0xb8, 0x19, 0xd2, 0x41, 0x82, + 0x3b, 0xab, 0x40, 0x5f, 0xb4, 0x60, 0xc6, 0xb9, 0x13, 0x77, 0x3c, 0x39, 0x22, 0xe6, 0xcc, 0xf3, + 0xb9, 0xde, 0xb1, 0x1e, 0x4f, 0x94, 0x2c, 0x55, 0x0f, 0xf6, 0xe7, 0x66, 0xf2, 0xa8, 0x70, 0x6e, + 0x5d, 0x08, 0x8b, 0x8c, 0x7a, 0x54, 0xcb, 0xe9, 0x72, 0x6f, 0x31, 0xef, 0x56, 0x09, 0x97, 0x51, + 0x12, 0x83, 0x15, 0x1f, 0x74, 0x0b, 0x2a, 0x9b, 0xf2, 0xaa, 0x97, 0x90, 0x81, 0xb9, 0x9b, 0x4a, + 0xee, 0x7d, 0x30, 0x1e, 0xb1, 0xaf, 0x50, 0x38, 0x65, 0x85, 0x5e, 0x81, 0x72, 0xb0, 0x11, 0x8b, + 0x2b, 0xd2, 0xf9, 0xf1, 0x3d, 0x66, 0x04, 0x15, 0xbf, 0x5f, 0x7a, 0x7d, 0xb5, 0x81, 0x69, 0x41, + 0x5a, 0x3e, 0xba, 0xed, 0x0a, 0x87, 0x6e, 0x6e, 0x79, 0xbc, 0x54, 0xeb, 0x2c, 0x8f, 0x97, 0x6a, + 0x98, 0x16, 0x44, 0xab, 0x30, 0xc8, 0xee, 0x99, 0x08, 0x6f, 0x6d, 0xee, 0xfd, 0xf8, 0x8e, 0x3b, + 0x34, 0x3c, 0x55, 0x22, 0x03, 0x63, 0x5e, 0x1c, 0xbd, 0x0a, 0x43, 0x4d, 0x96, 0x2b, 0x5f, 0x98, + 0xd6, 0xf9, 0x39, 0x1f, 0x3a, 0xb2, 0xe9, 0xf3, 0x33, 0x2a, 0x0e, 0xc7, 0x82, 0x03, 0xe3, 0x45, + 0x5a, 0x5b, 0x1b, 0xb1, 0xb0, 0x98, 0xf3, 0x79, 0x75, 0xbc, 0x6b, 0x20, 0x78, 0x31, 0x38, 0x16, + 0x1c, 0xd0, 0xa7, 0xa0, 0xb4, 0xd1, 0x14, 0x17, 0x4d, 0x72, 0x7d, 0xb3, 0xe6, 0xd5, 0xdf, 0xa5, + 0xa1, 0x83, 0xfd, 0xb9, 0xd2, 0xea, 0x32, 0x2e, 0x6d, 0x34, 0xd1, 0x75, 0x18, 0xde, 0xe0, 0x17, + 0x3c, 0x45, 0x5e, 0xd4, 0xc7, 0xf3, 0xef, 0x9e, 0x76, 0xdc, 0x01, 0xe5, 0x37, 0x2b, 0x04, 0x02, + 0x4b, 0x26, 0x68, 0x1d, 0x60, 0x43, 0x5d, 0x54, 0x15, 0x89, 0x51, 0x3f, 0xda, 0xcf, 0x75, 0x56, + 0x61, 0x34, 0x2a, 0x28, 0xd6, 0xf8, 0xd0, 0x99, 0xe9, 0xc8, 0x07, 0x3b, 0x58, 0x52, 0xd4, 0x82, + 0x99, 0x99, 0xfb, 0xaa, 0x07, 0x9f, 0x99, 0x0a, 0x85, 0x53, 0x56, 0x68, 0x1b, 0xc6, 0x77, 0xe3, + 0xd6, 0x16, 0x91, 0x8b, 0x91, 0xe5, 0x47, 0x35, 0xcd, 0xca, 0x34, 0x99, 0xad, 0x20, 0xf4, 0xa2, + 0xa4, 0xed, 0xf8, 0x1d, 0xf2, 0x83, 0xe5, 0xf7, 0xba, 0xa5, 0x33, 0xc3, 0x26, 0x6f, 0xda, 0xd5, + 0xef, 0xb6, 0xc3, 0xdb, 0x7b, 0x09, 0x11, 0x59, 0x53, 0x73, 0xbb, 0xfa, 0x35, 0x4e, 0xd2, 0xd9, + 0xd5, 0x02, 0x81, 0x25, 0x13, 0xd5, 0x29, 0x4c, 0xee, 0x4d, 0xf5, 0xe8, 0x94, 0x8e, 0xf6, 0xa6, + 0x9d, 0xc2, 0xe4, 0x5c, 0xca, 0x8a, 0xc9, 0xb7, 0xd6, 0x56, 0x98, 0x84, 0x41, 0x46, 0xb6, 0x4e, + 0x17, 0xcb, 0xb7, 0x7a, 0x0e, 0x7d, 0xa7, 0x7c, 0xcb, 0xa3, 0xc2, 0xb9, 0x75, 0x21, 0x17, 0x26, + 0x5a, 0x61, 0x94, 0xdc, 0x09, 0x23, 0x39, 0x97, 0x50, 0x17, 0x43, 0xc9, 0xa0, 0x14, 0x35, 0xb2, + 0x58, 0x5a, 0x13, 0x83, 0x33, 0x3c, 0xe9, 0x90, 0xc4, 0x4d, 0xc7, 0x27, 0x6b, 0x37, 0xaa, 0xa7, + 0x8a, 0x87, 0xa4, 0xc1, 0x49, 0x3a, 0x87, 0x44, 0x20, 0xb0, 0x64, 0x42, 0x25, 0x0d, 0x4b, 0xc0, + 0xcd, 0xd2, 0xbc, 0x16, 0x48, 0x9a, 0x8e, 0x28, 0x53, 0x2e, 0x69, 0x18, 0x18, 0xf3, 0xe2, 0xe8, + 0xf3, 0x50, 0x11, 0xfa, 0x5f, 0x18, 0x57, 0x4f, 0x77, 0x68, 0xa3, 0x69, 0xcb, 0x38, 0xd1, 0x8d, + 0x46, 0xfe, 0x16, 0x29, 0x2e, 0x93, 0x49, 0x22, 0x9c, 0x32, 0xb5, 0xbf, 0x34, 0xd4, 0xa9, 0x19, + 0x30, 0x3d, 0xff, 0x4b, 0x56, 0xc7, 0x51, 0xe9, 0xc7, 0xfb, 0x35, 0x4e, 0x8f, 0xf1, 0xd0, 0xf4, + 0x8b, 0x16, 0x9c, 0x69, 0xe5, 0x7e, 0x94, 0xd8, 0x66, 0xfb, 0xb3, 0x71, 0x79, 0x37, 0xa8, 0x04, + 0xca, 0xf9, 0x78, 0x5c, 0x50, 0x53, 0x56, 0x1f, 0x2e, 0xbf, 0x6f, 0x7d, 0xf8, 0x1a, 0x8c, 0x30, + 0x55, 0x2e, 0x4d, 0xd6, 0xd2, 0x57, 0xc0, 0x11, 0xdb, 0xb0, 0x97, 0x45, 0x41, 0xac, 0x58, 0xa0, + 0x5f, 0xb0, 0xe0, 0xe1, 0x6c, 0xd3, 0x31, 0x61, 0x68, 0x91, 0xfc, 0x8f, 0x9b, 0x18, 0xab, 0xe2, + 0xfb, 0x1f, 0xae, 0x77, 0x23, 0x3e, 0xec, 0x45, 0x80, 0xbb, 0x57, 0x86, 0x6a, 0x39, 0x36, 0xce, + 0x90, 0x79, 0x92, 0xd2, 0xdb, 0xce, 0x39, 0x59, 0x2d, 0xfd, 0xeb, 0x56, 0x8e, 0x7a, 0xc9, 0xed, + 0xa9, 0x97, 0x4d, 0x7b, 0xea, 0xb1, 0xac, 0x3d, 0xd5, 0xe1, 0x1d, 0x31, 0x4c, 0xa9, 0xfe, 0xd3, + 0x93, 0xf6, 0x9b, 0x97, 0xc6, 0xf6, 0xe1, 0x7c, 0x2f, 0x31, 0xcb, 0xc2, 0xa7, 0x5c, 0x75, 0xae, + 0x98, 0x86, 0x4f, 0xb9, 0x6b, 0x35, 0xcc, 0x30, 0xfd, 0xa6, 0x40, 0xb0, 0xff, 0xb3, 0x05, 0xe5, + 0x7a, 0xe8, 0x9e, 0x80, 0xb7, 0xe7, 0xd3, 0x86, 0xb7, 0xe7, 0xc1, 0x82, 0x47, 0xe2, 0x0a, 0x7d, + 0x3b, 0x2b, 0x19, 0xdf, 0xce, 0xc3, 0x45, 0x0c, 0xba, 0x7b, 0x72, 0xfe, 0x4e, 0x19, 0xf4, 0x27, + 0xed, 0xd0, 0xbf, 0xb8, 0x97, 0x38, 0xdc, 0x72, 0xb7, 0x57, 0xee, 0x04, 0x67, 0x16, 0x75, 0x25, + 0xaf, 0xf8, 0xfd, 0x98, 0x85, 0xe3, 0xbe, 0x4e, 0xbc, 0xcd, 0xad, 0x84, 0xb8, 0xd9, 0xcf, 0x39, + 0xb9, 0x70, 0xdc, 0xff, 0x60, 0xc1, 0x64, 0xa6, 0x76, 0xe4, 0xe7, 0xdd, 0x17, 0xba, 0x47, 0xff, + 0xcd, 0x74, 0xcf, 0x0b, 0x46, 0xf3, 0x00, 0xca, 0x95, 0x2e, 0x7d, 0x24, 0x4c, 0x77, 0x55, 0xbe, + 0xf6, 0x18, 0x6b, 0x14, 0xe8, 0x05, 0x18, 0x4d, 0xc2, 0x56, 0xe8, 0x87, 0x9b, 0x7b, 0x57, 0x88, + 0x4c, 0xba, 0xa1, 0x0e, 0x3c, 0xd6, 0x53, 0x14, 0xd6, 0xe9, 0xec, 0x5f, 0x2f, 0x43, 0xf6, 0x19, + 0xc4, 0xff, 0x37, 0x27, 0x3f, 0x9c, 0x73, 0xf2, 0x7b, 0x16, 0x4c, 0xd1, 0xda, 0x59, 0x44, 0x8b, + 0x0c, 0x64, 0x55, 0xef, 0x18, 0x58, 0x5d, 0xde, 0x31, 0x78, 0x8c, 0xca, 0x2e, 0x37, 0x6c, 0x27, + 0xc2, 0x97, 0xa3, 0x09, 0x27, 0x0a, 0xc5, 0x02, 0x2b, 0xe8, 0x48, 0x14, 0x89, 0x5b, 0x40, 0x3a, + 0x1d, 0x89, 0x22, 0x2c, 0xb0, 0xf2, 0x99, 0x83, 0x81, 0x82, 0x67, 0x0e, 0x58, 0x3a, 0x2a, 0x11, + 0x45, 0x21, 0x54, 0x03, 0x2d, 0x1d, 0x95, 0x0c, 0xaf, 0x48, 0x69, 0xec, 0x6f, 0x96, 0x61, 0xac, + 0x1e, 0xba, 0x69, 0xec, 0xfb, 0xf3, 0x46, 0xec, 0xfb, 0xf9, 0x4c, 0xec, 0xfb, 0x94, 0x4e, 0x7b, + 0x3c, 0xa1, 0xef, 0x22, 0x59, 0x19, 0x7b, 0x74, 0xe3, 0x1e, 0xc3, 0xde, 0x8d, 0x64, 0x65, 0x8a, + 0x11, 0x36, 0xf9, 0xfe, 0x24, 0x85, 0xbb, 0xff, 0xb9, 0x05, 0x13, 0xf5, 0xd0, 0xa5, 0x13, 0xf4, + 0x27, 0x69, 0x36, 0xea, 0xc9, 0xce, 0x86, 0xba, 0x24, 0x3b, 0xfb, 0xbb, 0x16, 0x0c, 0xd7, 0x43, + 0xf7, 0x04, 0xfc, 0x9c, 0x2f, 0x9b, 0x7e, 0xce, 0x07, 0x0a, 0xa4, 0x6c, 0x81, 0x6b, 0xf3, 0xb7, + 0xcb, 0x30, 0x4e, 0xdb, 0x19, 0x6e, 0xca, 0x51, 0x32, 0x7a, 0xc4, 0xea, 0xa3, 0x47, 0xa8, 0x32, + 0x17, 0xfa, 0x7e, 0x78, 0x27, 0x3b, 0x62, 0xab, 0x0c, 0x8a, 0x05, 0x16, 0x3d, 0x0d, 0x23, 0xad, + 0x88, 0xec, 0x7a, 0x61, 0x3b, 0xce, 0xde, 0x23, 0xac, 0x0b, 0x38, 0x56, 0x14, 0xe8, 0x79, 0x18, + 0x8b, 0xbd, 0xa0, 0x49, 0x64, 0x64, 0xc5, 0x00, 0x8b, 0xac, 0xe0, 0xf9, 0x22, 0x35, 0x38, 0x36, + 0xa8, 0xd0, 0xeb, 0x50, 0x61, 0xff, 0xd9, 0xba, 0x39, 0xfa, 0x2b, 0x06, 0xdc, 0x54, 0x95, 0x0c, + 0x70, 0xca, 0x0b, 0x5d, 0x04, 0x48, 0x64, 0x0c, 0x48, 0x2c, 0xae, 0xb9, 0x2a, 0x8d, 0x52, 0x45, + 0x87, 0xc4, 0x58, 0xa3, 0x42, 0x4f, 0x41, 0x25, 0x71, 0x3c, 0xff, 0xaa, 0x17, 0x90, 0x58, 0xc4, + 0xd0, 0x88, 0x1c, 0xcc, 0x02, 0x88, 0x53, 0x3c, 0xdd, 0xd1, 0xd9, 0x25, 0x6a, 0xfe, 0x06, 0xca, + 0x08, 0xa3, 0x66, 0x3b, 0xfa, 0x55, 0x05, 0xc5, 0x1a, 0x85, 0xfd, 0x22, 0x9c, 0xae, 0x87, 0x6e, + 0x3d, 0x8c, 0x92, 0xd5, 0x30, 0xba, 0xe3, 0x44, 0xae, 0x1c, 0xbf, 0x39, 0x99, 0x0e, 0x98, 0xee, + 0xba, 0x83, 0xdc, 0xae, 0x37, 0x12, 0xfd, 0x3e, 0xc7, 0xf6, 0xf4, 0x23, 0x5e, 0x78, 0xf8, 0xd7, + 0x25, 0x40, 0x75, 0x16, 0xa5, 0x62, 0x3c, 0x94, 0xf3, 0x36, 0x4c, 0xc4, 0xe4, 0xaa, 0x17, 0xb4, + 0xef, 0x0a, 0x56, 0xdd, 0x6e, 0x93, 0x34, 0x56, 0x74, 0x4a, 0xee, 0x1b, 0x31, 0x61, 0x38, 0xc3, + 0x8d, 0x76, 0x61, 0xd4, 0x0e, 0x16, 0xe3, 0x9b, 0x31, 0x89, 0xc4, 0xc3, 0x30, 0xac, 0x0b, 0xb1, + 0x04, 0xe2, 0x14, 0x4f, 0xa7, 0x0c, 0xfb, 0x73, 0x3d, 0x0c, 0x70, 0x18, 0x26, 0x72, 0x92, 0xb1, + 0xa7, 0x05, 0x34, 0x38, 0x36, 0xa8, 0xd0, 0x2a, 0xa0, 0xb8, 0xdd, 0x6a, 0xf9, 0xec, 0x50, 0xcf, + 0xf1, 0x2f, 0x45, 0x61, 0xbb, 0xc5, 0xc3, 0x8c, 0x45, 0x56, 0xfe, 0x46, 0x07, 0x16, 0xe7, 0x94, + 0xa0, 0x82, 0x61, 0x23, 0x66, 0xbf, 0xc5, 0x3d, 0x6a, 0xee, 0x9b, 0x6c, 0x30, 0x10, 0x96, 0x38, + 0xfb, 0x0b, 0x6c, 0x33, 0x63, 0xef, 0x79, 0x24, 0xed, 0x88, 0xa0, 0x1d, 0x18, 0x6f, 0xb1, 0x0d, + 0x2b, 0x89, 0x42, 0xdf, 0x27, 0x52, 0x6f, 0xbc, 0xb7, 0x88, 0x19, 0x9e, 0xdf, 0x5f, 0x67, 0x87, + 0x4d, 0xee, 0xf6, 0x97, 0x26, 0x99, 0x5c, 0x6a, 0x70, 0xa3, 0x65, 0x58, 0xc4, 0xc1, 0x0a, 0x0d, + 0x6d, 0xb6, 0xf8, 0xfd, 0xac, 0x54, 0xd2, 0x8b, 0x58, 0x5a, 0x2c, 0xcb, 0xa2, 0xd7, 0x58, 0x7c, + 0x36, 0x17, 0x06, 0xbd, 0x5e, 0xee, 0xe3, 0x54, 0x46, 0x6c, 0xb6, 0x28, 0x88, 0x35, 0x26, 0xe8, + 0x2a, 0x8c, 0x8b, 0xe7, 0x1f, 0x84, 0x0b, 0xa1, 0x6c, 0x98, 0xbf, 0xe3, 0x58, 0x47, 0x1e, 0x66, + 0x01, 0xd8, 0x2c, 0x8c, 0x36, 0xe1, 0x61, 0xed, 0xb1, 0xa2, 0x9c, 0xa8, 0x2d, 0x2e, 0x5b, 0x1e, + 0x39, 0xd8, 0x9f, 0x7b, 0x78, 0xbd, 0x1b, 0x21, 0xee, 0xce, 0x07, 0xdd, 0x80, 0xd3, 0x4e, 0x33, + 0xf1, 0x76, 0x49, 0x8d, 0x38, 0xae, 0xef, 0x05, 0xc4, 0xbc, 0x58, 0x7f, 0xf6, 0x60, 0x7f, 0xee, + 0xf4, 0x62, 0x1e, 0x01, 0xce, 0x2f, 0x87, 0x5e, 0x86, 0x8a, 0x1b, 0xc4, 0xa2, 0x0f, 0x86, 0x8c, + 0x77, 0xb8, 0x2a, 0xb5, 0xeb, 0x0d, 0xf5, 0xfd, 0xe9, 0x1f, 0x9c, 0x16, 0x40, 0x9b, 0xfc, 0xbd, + 0x76, 0x65, 0x91, 0x0c, 0x77, 0x64, 0x4b, 0xc8, 0xda, 0xb6, 0xc6, 0x8d, 0x13, 0xee, 0x3f, 0x53, + 0x31, 0x91, 0xc6, 0x65, 0x14, 0x83, 0x31, 0x7a, 0x15, 0x50, 0x4c, 0xa2, 0x5d, 0xaf, 0x49, 0x16, + 0x9b, 0x2c, 0xa1, 0x2a, 0xf3, 0xba, 0x8c, 0x18, 0x01, 0xfe, 0xa8, 0xd1, 0x41, 0x81, 0x73, 0x4a, + 0xa1, 0xcb, 0x54, 0xa2, 0xe8, 0x50, 0x11, 0xc2, 0x2a, 0xd5, 0xbc, 0x6a, 0x8d, 0xb4, 0x22, 0xd2, + 0x74, 0x12, 0xe2, 0x9a, 0x1c, 0x71, 0xa6, 0x1c, 0xdd, 0x6f, 0x54, 0x9e, 0x7a, 0x30, 0x03, 0x2f, + 0x3b, 0x73, 0xd5, 0x53, 0x0b, 0x69, 0x2b, 0x8c, 0x93, 0xeb, 0x24, 0xb9, 0x13, 0x46, 0xdb, 0x22, + 0xa9, 0x55, 0x9a, 0xc5, 0x2e, 0x45, 0x61, 0x9d, 0x8e, 0x6a, 0x44, 0xec, 0xe8, 0x6a, 0xad, 0xc6, + 0xce, 0x19, 0x46, 0xd2, 0x75, 0x72, 0x99, 0x83, 0xb1, 0xc4, 0x4b, 0xd2, 0xb5, 0xfa, 0x32, 0x3b, + 0x3d, 0xc8, 0x90, 0xae, 0xd5, 0x97, 0xb1, 0xc4, 0x23, 0xd2, 0xf9, 0xc6, 0xd9, 0x44, 0xf1, 0x09, + 0x4d, 0xa7, 0x5c, 0xee, 0xf3, 0x99, 0xb3, 0x00, 0xa6, 0xd4, 0xeb, 0x6a, 0x3c, 0xdb, 0x57, 0x5c, + 0x9d, 0x2c, 0x7e, 0x38, 0x3e, 0x37, 0x55, 0x98, 0xf2, 0xaa, 0xad, 0x65, 0x38, 0xe1, 0x0e, 0xde, + 0x46, 0xc2, 0x86, 0xa9, 0x9e, 0xef, 0x0c, 0x2c, 0x40, 0x25, 0x6e, 0xdf, 0x76, 0xc3, 0x1d, 0xc7, + 0x0b, 0x98, 0xdb, 0x5f, 0x7f, 0xd3, 0x5c, 0x22, 0x70, 0x4a, 0x83, 0x56, 0x61, 0xc4, 0x91, 0x8f, + 0xfd, 0xa3, 0xe2, 0x1b, 0xdc, 0xea, 0x95, 0x7f, 0xe6, 0xd1, 0x54, 0xcf, 0xfb, 0xab, 0xb2, 0xe8, + 0x25, 0x18, 0x17, 0x97, 0x8c, 0x44, 0x7c, 0xe0, 0x29, 0x33, 0x1e, 0xbd, 0xa1, 0x23, 0xb1, 0x49, + 0x8b, 0x7e, 0x06, 0x26, 0x28, 0x97, 0x54, 0xb0, 0x55, 0x67, 0xfa, 0x91, 0x88, 0x5a, 0xfe, 0x68, + 0xbd, 0x30, 0xce, 0x30, 0x43, 0x2e, 0x3c, 0xe4, 0xb4, 0x93, 0x70, 0x87, 0xce, 0x70, 0x73, 0xfe, + 0xaf, 0x87, 0xdb, 0x24, 0x60, 0x7e, 0xfa, 0x91, 0xa5, 0xf3, 0x07, 0xfb, 0x73, 0x0f, 0x2d, 0x76, + 0xa1, 0xc3, 0x5d, 0xb9, 0xa0, 0x9b, 0x30, 0x9a, 0x84, 0xbe, 0x08, 0xec, 0x8d, 0xab, 0x67, 0x8a, + 0x13, 0xce, 0xac, 0x2b, 0x32, 0xdd, 0x9d, 0xa0, 0x8a, 0x62, 0x9d, 0x0f, 0x5a, 0xe7, 0x6b, 0x8c, + 0xe5, 0x2d, 0x24, 0x71, 0xf5, 0x81, 0xe2, 0x8e, 0x51, 0xe9, 0x0d, 0xcd, 0x25, 0x28, 0x4a, 0x62, + 0x9d, 0x0d, 0xba, 0x04, 0xd3, 0xad, 0xc8, 0x0b, 0xd9, 0xc4, 0x56, 0x2e, 0xdf, 0xaa, 0x91, 0x8a, + 0x6c, 0xba, 0x9e, 0x25, 0xc0, 0x9d, 0x65, 0xd0, 0x05, 0xaa, 0xa0, 0x72, 0x60, 0xf5, 0x2c, 0x7f, + 0x7f, 0x82, 0x2b, 0xa7, 0x1c, 0x86, 0x15, 0x76, 0xf6, 0x33, 0x30, 0xdd, 0x21, 0x29, 0x8f, 0x14, + 0x64, 0xf9, 0x1b, 0x83, 0x50, 0x51, 0xee, 0x40, 0xb4, 0x60, 0x7a, 0x79, 0xcf, 0x66, 0xbd, 0xbc, + 0x23, 0x54, 0x5f, 0xd3, 0x1d, 0xbb, 0xeb, 0x39, 0x4f, 0x68, 0x9f, 0x2f, 0x10, 0x0d, 0xfd, 0xdf, + 0x88, 0x3a, 0xc2, 0xf3, 0xe2, 0xa9, 0xc1, 0x38, 0xd0, 0xd5, 0x60, 0xec, 0xf3, 0x39, 0x3b, 0x6a, + 0x1a, 0xb6, 0x42, 0x77, 0xad, 0x9e, 0x7d, 0xdf, 0xa9, 0x4e, 0x81, 0x98, 0xe3, 0x98, 0x72, 0x4f, + 0xb7, 0x75, 0xa6, 0xdc, 0x0f, 0xdf, 0xa3, 0x72, 0x2f, 0x19, 0xe0, 0x94, 0x17, 0xf2, 0x61, 0xba, + 0x69, 0x3e, 0xcd, 0xa5, 0x6e, 0x41, 0x3d, 0xda, 0xf3, 0x91, 0xac, 0xb6, 0xf6, 0x5e, 0xc7, 0x72, + 0x96, 0x0b, 0xee, 0x64, 0x8c, 0x5e, 0x82, 0x91, 0x77, 0xc3, 0x98, 0x4d, 0x3b, 0xb1, 0xb7, 0xc9, + 0x7b, 0x27, 0x23, 0xaf, 0xdd, 0x68, 0x30, 0xf8, 0xe1, 0xfe, 0xdc, 0x68, 0x3d, 0x74, 0xe5, 0x5f, + 0xac, 0x0a, 0xa0, 0xbb, 0x70, 0xda, 0x90, 0x08, 0xaa, 0xb9, 0xd0, 0x7f, 0x73, 0x1f, 0x16, 0xd5, + 0x9d, 0x5e, 0xcb, 0xe3, 0x84, 0xf3, 0x2b, 0xb0, 0xbf, 0xc5, 0x9d, 0x9e, 0xc2, 0x35, 0x42, 0xe2, + 0xb6, 0x7f, 0x12, 0x49, 0xf9, 0x57, 0x0c, 0xaf, 0xcd, 0x3d, 0x3b, 0xd6, 0xff, 0xc0, 0x62, 0x8e, + 0xf5, 0x75, 0xb2, 0xd3, 0xf2, 0x9d, 0xe4, 0x24, 0x42, 0x6b, 0x5f, 0x83, 0x91, 0x44, 0xd4, 0xd6, + 0xed, 0x1d, 0x01, 0xad, 0x51, 0xec, 0x70, 0x41, 0x6d, 0x88, 0x12, 0x8a, 0x15, 0x1b, 0xfb, 0x1f, + 0xf3, 0x11, 0x90, 0x98, 0x13, 0xf0, 0x2d, 0xd4, 0x4c, 0xdf, 0xc2, 0x5c, 0x8f, 0x2f, 0x28, 0xf0, + 0x31, 0xfc, 0x23, 0xb3, 0xdd, 0xcc, 0xf6, 0xf8, 0xb0, 0x9f, 0xe8, 0xd8, 0xbf, 0x62, 0xc1, 0x4c, + 0xde, 0x91, 0x3e, 0x55, 0x62, 0xb8, 0xe5, 0xa3, 0x4e, 0xb8, 0x54, 0x0f, 0xde, 0x12, 0x70, 0xac, + 0x28, 0xfa, 0x4e, 0xf6, 0x7d, 0xb4, 0x24, 0x4b, 0x37, 0xc0, 0x7c, 0xc5, 0x0d, 0xbd, 0xc2, 0x63, + 0xe5, 0x2d, 0xf5, 0xcc, 0xda, 0xd1, 0xe2, 0xe4, 0xed, 0x6f, 0x94, 0x60, 0x86, 0xbb, 0xa8, 0x17, + 0x77, 0x43, 0xcf, 0xad, 0x87, 0xae, 0xb8, 0x39, 0xf0, 0x26, 0x8c, 0xb5, 0x34, 0x73, 0xb5, 0x5b, + 0x9a, 0x17, 0xdd, 0xac, 0x4d, 0xcd, 0x06, 0x1d, 0x8a, 0x0d, 0x5e, 0xc8, 0x85, 0x31, 0xb2, 0xeb, + 0x35, 0x95, 0x9f, 0xb3, 0x74, 0x64, 0x91, 0xae, 0x6a, 0x59, 0xd1, 0xf8, 0x60, 0x83, 0xeb, 0x7d, + 0x78, 0x71, 0xc3, 0xfe, 0xaa, 0x05, 0x0f, 0x14, 0x24, 0x85, 0xa1, 0xd5, 0xdd, 0x61, 0x87, 0x01, + 0xe2, 0x49, 0x40, 0x55, 0x1d, 0x3f, 0x22, 0xc0, 0x02, 0x8b, 0x7e, 0x1a, 0x80, 0xbb, 0xf8, 0xd9, + 0x03, 0xec, 0xa5, 0xee, 0xb7, 0xce, 0x8d, 0x64, 0x09, 0xda, 0x8d, 0x7a, 0xf5, 0xe4, 0xba, 0xc6, + 0xcb, 0xfe, 0xb5, 0x32, 0x0c, 0xf2, 0xf7, 0xa1, 0x57, 0x61, 0x78, 0x8b, 0xa7, 0xa0, 0xed, 0x27, + 0xdb, 0x6d, 0x6a, 0x8e, 0x70, 0x00, 0x96, 0x85, 0xd1, 0x35, 0x38, 0x25, 0x6e, 0xa7, 0xd4, 0x88, + 0xef, 0xec, 0x49, 0xab, 0x96, 0x3f, 0xc3, 0x20, 0x73, 0x88, 0x9f, 0x5a, 0xeb, 0x24, 0xc1, 0x79, + 0xe5, 0xd0, 0x2b, 0x1d, 0x89, 0xe7, 0x78, 0xf2, 0x5e, 0xa5, 0x03, 0xf7, 0x48, 0x3e, 0xf7, 0x12, + 0x8c, 0xb7, 0x3a, 0xec, 0x77, 0xed, 0x69, 0x5e, 0xd3, 0x66, 0x37, 0x69, 0x59, 0x7c, 0x40, 0x9b, + 0x45, 0x43, 0xac, 0x6f, 0x45, 0x24, 0xde, 0x0a, 0x7d, 0x57, 0xbc, 0x43, 0x99, 0xc6, 0x07, 0x64, + 0xf0, 0xb8, 0xa3, 0x04, 0xe5, 0xb2, 0xe1, 0x78, 0x7e, 0x3b, 0x22, 0x29, 0x97, 0x21, 0x93, 0xcb, + 0x6a, 0x06, 0x8f, 0x3b, 0x4a, 0xd0, 0x79, 0x74, 0x5a, 0x3c, 0x62, 0x28, 0xef, 0x2c, 0xab, 0xa0, + 0x8f, 0x61, 0x19, 0x95, 0xde, 0x25, 0x8f, 0x86, 0x38, 0xf2, 0x57, 0xcf, 0x20, 0x6a, 0xcf, 0x63, + 0x89, 0x78, 0x74, 0xc9, 0xe5, 0x5e, 0x9e, 0xd2, 0xfb, 0x53, 0x0b, 0x4e, 0xe5, 0x04, 0x82, 0x71, + 0x51, 0xb5, 0xe9, 0xc5, 0x89, 0x7a, 0x1e, 0x40, 0x13, 0x55, 0x1c, 0x8e, 0x15, 0x05, 0x5d, 0x0f, + 0x5c, 0x18, 0x66, 0x05, 0xa0, 0x08, 0xde, 0x10, 0xd8, 0xa3, 0x09, 0x40, 0x74, 0x1e, 0x06, 0xda, + 0x31, 0x89, 0xe4, 0xfb, 0x73, 0x52, 0x7e, 0x33, 0x8f, 0x20, 0xc3, 0x50, 0x8d, 0x72, 0x53, 0x39, + 0xe3, 0x34, 0x8d, 0x92, 0xbb, 0xe3, 0x38, 0xce, 0xfe, 0x4a, 0x19, 0x26, 0x33, 0x61, 0x9b, 0xb4, + 0x21, 0x3b, 0x61, 0xe0, 0x25, 0xa1, 0xca, 0x7b, 0xc6, 0xd3, 0x3c, 0x90, 0xd6, 0xd6, 0x35, 0x01, + 0xc7, 0x8a, 0x02, 0x3d, 0x26, 0x1f, 0x26, 0xcd, 0x3e, 0x7b, 0xb0, 0x54, 0x33, 0xde, 0x26, 0xed, + 0xf7, 0x79, 0x92, 0x47, 0x61, 0xa0, 0x15, 0xaa, 0x57, 0xa3, 0xd5, 0x78, 0xe2, 0xa5, 0x5a, 0x3d, + 0x0c, 0x7d, 0xcc, 0x90, 0xe8, 0x63, 0xe2, 0xeb, 0x33, 0xe7, 0x15, 0xd8, 0x71, 0xc3, 0x58, 0xeb, + 0x82, 0x27, 0x60, 0x78, 0x9b, 0xec, 0x45, 0x5e, 0xb0, 0x99, 0x3d, 0xad, 0xb9, 0xc2, 0xc1, 0x58, + 0xe2, 0xcd, 0x6c, 0xe1, 0xc3, 0xf7, 0xe5, 0x09, 0x92, 0x91, 0x9e, 0xbb, 0xda, 0x6f, 0x5b, 0x30, + 0xc9, 0x72, 0x8c, 0x8a, 0xdb, 0xf1, 0x5e, 0x18, 0x9c, 0x80, 0x9e, 0xf0, 0x28, 0x0c, 0x46, 0xb4, + 0xd2, 0xec, 0xbb, 0x02, 0xac, 0x25, 0x98, 0xe3, 0xd0, 0x43, 0x30, 0xc0, 0x9a, 0x40, 0x07, 0x6f, + 0x8c, 0x67, 0x19, 0xaf, 0x39, 0x89, 0x83, 0x19, 0x94, 0x5d, 0x53, 0xc2, 0xa4, 0xe5, 0x7b, 0xbc, + 0xd1, 0xa9, 0xbb, 0xf5, 0xc3, 0x71, 0x4d, 0x29, 0xb7, 0x69, 0xef, 0xef, 0x9a, 0x52, 0x3e, 0xcb, + 0xee, 0x3a, 0xf8, 0x7f, 0x29, 0xc1, 0xb9, 0xdc, 0x72, 0xe9, 0xc9, 0xee, 0xaa, 0x71, 0xb2, 0x7b, + 0x31, 0x73, 0xb2, 0x6b, 0x77, 0x2f, 0x7d, 0x3c, 0x67, 0xbd, 0xf9, 0x47, 0xb0, 0xe5, 0x13, 0x3c, + 0x82, 0x1d, 0xe8, 0x57, 0x4d, 0x19, 0xec, 0xa1, 0xa6, 0x7c, 0xd7, 0x82, 0xb3, 0xb9, 0x5d, 0xf6, + 0x21, 0xb9, 0x17, 0x96, 0xdb, 0xb6, 0x02, 0x1b, 0xe2, 0x47, 0xa5, 0x82, 0x6f, 0x61, 0xd6, 0xc4, + 0x05, 0x2a, 0x67, 0x18, 0x32, 0x16, 0x6a, 0xd7, 0x18, 0x97, 0x31, 0x1c, 0x86, 0x15, 0x16, 0x79, + 0xda, 0x0d, 0x2b, 0xde, 0xb4, 0x97, 0x8e, 0xb4, 0x64, 0xe6, 0x4d, 0xef, 0xb8, 0x7e, 0x95, 0x3f, + 0x7b, 0xdb, 0xea, 0x9a, 0x66, 0x01, 0x96, 0xfb, 0xb7, 0x00, 0xc7, 0xf2, 0xad, 0x3f, 0xb4, 0x08, + 0x93, 0x3b, 0x5e, 0xc0, 0xde, 0xfe, 0x34, 0xf5, 0x1e, 0x75, 0x2d, 0xf5, 0x9a, 0x89, 0xc6, 0x59, + 0xfa, 0xd9, 0x97, 0x60, 0xfc, 0xde, 0x5d, 0x56, 0xdf, 0x2b, 0xc3, 0x83, 0x5d, 0x96, 0x3d, 0x97, + 0xf5, 0xc6, 0x18, 0x68, 0xb2, 0xbe, 0x63, 0x1c, 0xea, 0x30, 0xb3, 0xd1, 0xf6, 0xfd, 0x3d, 0x16, + 0xe5, 0x44, 0x5c, 0x49, 0x21, 0x14, 0x13, 0x95, 0x40, 0x78, 0x35, 0x87, 0x06, 0xe7, 0x96, 0x44, + 0xaf, 0x02, 0x0a, 0x6f, 0xb3, 0xa4, 0xb6, 0x6e, 0x9a, 0xa0, 0x80, 0x75, 0x7c, 0x39, 0x5d, 0x8c, + 0x37, 0x3a, 0x28, 0x70, 0x4e, 0x29, 0xaa, 0x61, 0xb2, 0x17, 0xcb, 0x55, 0xb3, 0x32, 0x1a, 0x26, + 0xd6, 0x91, 0xd8, 0xa4, 0x45, 0x97, 0x60, 0xda, 0xd9, 0x75, 0x3c, 0x9e, 0xb0, 0x4a, 0x32, 0xe0, + 0x2a, 0xa6, 0x72, 0x14, 0x2d, 0x66, 0x09, 0x70, 0x67, 0x19, 0xb4, 0x61, 0x78, 0xf9, 0x78, 0xbe, + 0xfc, 0x8b, 0x7d, 0xcf, 0xd6, 0xbe, 0xfd, 0x7e, 0xf6, 0xbf, 0xb7, 0xe8, 0xf6, 0x95, 0xf3, 0xd8, + 0x24, 0xed, 0x07, 0xe5, 0xbf, 0xd2, 0x6e, 0x87, 0xa9, 0x7e, 0x58, 0xd6, 0x91, 0xd8, 0xa4, 0xe5, + 0x13, 0x22, 0x4e, 0xc3, 0xa5, 0x0d, 0x3d, 0x51, 0x5c, 0xa7, 0x54, 0x14, 0xe8, 0x0d, 0x18, 0x76, + 0xbd, 0x5d, 0x2f, 0x0e, 0x23, 0xb1, 0x58, 0x8e, 0xfa, 0xc8, 0xb2, 0x92, 0x83, 0x35, 0xce, 0x06, + 0x4b, 0x7e, 0xf6, 0x57, 0x4a, 0x30, 0x2e, 0x6b, 0x7c, 0xad, 0x1d, 0x26, 0xce, 0x09, 0x6c, 0xcb, + 0x97, 0x8c, 0x6d, 0xf9, 0x63, 0xdd, 0xee, 0x94, 0xb2, 0x26, 0x15, 0x6e, 0xc7, 0x37, 0x32, 0xdb, + 0xf1, 0xe3, 0xbd, 0x59, 0x75, 0xdf, 0x86, 0x7f, 0xcf, 0x82, 0x69, 0x83, 0xfe, 0x04, 0x76, 0x83, + 0x55, 0x73, 0x37, 0x78, 0xa4, 0xe7, 0x37, 0x14, 0xec, 0x02, 0x5f, 0x2f, 0x65, 0xda, 0xce, 0xa4, + 0xff, 0xbb, 0x30, 0xb0, 0xe5, 0x44, 0x6e, 0xb7, 0xb4, 0x8b, 0x1d, 0x85, 0xe6, 0x2f, 0x3b, 0x91, + 0xcb, 0x65, 0xf8, 0xd3, 0xea, 0xa1, 0x2c, 0x27, 0x72, 0x7b, 0xde, 0x0e, 0x60, 0x55, 0xa1, 0x17, + 0x61, 0x28, 0x6e, 0x86, 0x2d, 0x15, 0x7b, 0x79, 0x9e, 0x3f, 0xa2, 0x45, 0x21, 0x87, 0xfb, 0x73, + 0xc8, 0xac, 0x8e, 0x82, 0xb1, 0xa0, 0x9f, 0xdd, 0x84, 0x8a, 0xaa, 0xfa, 0xbe, 0x46, 0x95, 0xff, + 0x71, 0x19, 0x4e, 0xe5, 0xcc, 0x0b, 0x14, 0x1b, 0xbd, 0xf5, 0x6c, 0x9f, 0xd3, 0xe9, 0x7d, 0xf6, + 0x57, 0xcc, 0x2c, 0x16, 0x57, 0x8c, 0x7f, 0xdf, 0x95, 0xde, 0x8c, 0x49, 0xb6, 0x52, 0x0a, 0xea, + 0x5d, 0x29, 0xad, 0xec, 0xc4, 0xba, 0x9a, 0x56, 0xa4, 0x5a, 0x7a, 0x5f, 0xc7, 0xf4, 0x7f, 0x94, + 0x61, 0x26, 0xef, 0x2a, 0x3a, 0xfa, 0xb9, 0xcc, 0x23, 0x0e, 0xcf, 0xf7, 0x7b, 0x89, 0x9d, 0xbf, + 0xec, 0x20, 0x32, 0xbc, 0xcc, 0x9b, 0xcf, 0x3a, 0xf4, 0xec, 0x66, 0x51, 0x27, 0xbb, 0xae, 0x13, + 0xf1, 0xc7, 0x37, 0xe4, 0x12, 0xff, 0x78, 0xdf, 0x0d, 0x10, 0xaf, 0x76, 0xc4, 0x99, 0xeb, 0x3a, + 0x12, 0xdc, 0xfb, 0xba, 0x8e, 0xac, 0x79, 0xd6, 0x83, 0x51, 0xed, 0x6b, 0xee, 0xeb, 0x88, 0x6f, + 0xd3, 0x1d, 0x45, 0x6b, 0xf7, 0x7d, 0x1d, 0xf5, 0xaf, 0x5a, 0x90, 0x89, 0x93, 0x52, 0xfe, 0x0f, + 0xab, 0xd0, 0xff, 0x71, 0x1e, 0x06, 0xa2, 0xd0, 0x27, 0xd9, 0xbc, 0xfe, 0x38, 0xf4, 0x09, 0x66, + 0x18, 0xf5, 0xe8, 0x6d, 0xb9, 0xe8, 0xd1, 0x5b, 0x6a, 0x1a, 0xfb, 0x64, 0x97, 0x48, 0x6f, 0x84, + 0x92, 0xc9, 0x57, 0x29, 0x10, 0x73, 0x9c, 0xfd, 0x9b, 0x03, 0x70, 0x2a, 0xe7, 0x72, 0x1a, 0x35, + 0x54, 0x36, 0x9d, 0x84, 0xdc, 0x71, 0xf6, 0xb2, 0xb9, 0x46, 0x2f, 0x71, 0x30, 0x96, 0x78, 0x16, + 0xcb, 0xc9, 0xd3, 0x95, 0x65, 0x7c, 0x44, 0x22, 0x4b, 0x99, 0xc0, 0xde, 0xaf, 0x87, 0x52, 0x2f, + 0x02, 0xc4, 0xb1, 0xbf, 0x12, 0x50, 0xe5, 0xcb, 0x15, 0x91, 0xa2, 0x69, 0x6e, 0xbb, 0xc6, 0x55, + 0x81, 0xc1, 0x1a, 0x15, 0xaa, 0xc1, 0x54, 0x2b, 0x0a, 0x13, 0xee, 0x77, 0xab, 0xf1, 0x18, 0x85, + 0x41, 0xf3, 0x9a, 0x51, 0x3d, 0x83, 0xc7, 0x1d, 0x25, 0xd0, 0x0b, 0x30, 0x2a, 0xae, 0x1e, 0xd5, + 0xc3, 0xd0, 0x17, 0x5e, 0x1a, 0x75, 0xe2, 0xdd, 0x48, 0x51, 0x58, 0xa7, 0xd3, 0x8a, 0x31, 0x67, + 0xde, 0x70, 0x6e, 0x31, 0xee, 0xd0, 0xd3, 0xe8, 0x32, 0x19, 0x29, 0x46, 0xfa, 0xca, 0x48, 0x91, + 0xfa, 0xad, 0x2a, 0x7d, 0x9f, 0x5f, 0x40, 0x4f, 0x4f, 0xcf, 0xb7, 0xca, 0x30, 0xc4, 0x87, 0xe2, + 0x04, 0x54, 0xb1, 0x55, 0xe1, 0xbb, 0xe9, 0x92, 0x07, 0x80, 0xb7, 0x65, 0xbe, 0xe6, 0x24, 0x0e, + 0x17, 0x43, 0x6a, 0x35, 0xa4, 0x5e, 0x1e, 0x34, 0x6f, 0xac, 0x97, 0xd9, 0x8c, 0x73, 0x02, 0x38, + 0x0f, 0x6d, 0xf5, 0xbc, 0x0d, 0x10, 0xb3, 0xc7, 0x3a, 0x29, 0x0f, 0x91, 0xb7, 0xf4, 0xc9, 0x2e, + 0xb5, 0x37, 0x14, 0x31, 0x6f, 0x43, 0x3a, 0x05, 0x15, 0x02, 0x6b, 0x1c, 0x67, 0x3f, 0x01, 0x15, + 0x45, 0xdc, 0xcb, 0x92, 0x1b, 0xd3, 0x85, 0xd7, 0xa7, 0x61, 0x32, 0x53, 0xd7, 0x91, 0x0c, 0xc1, + 0xdf, 0xb1, 0x60, 0x32, 0xf3, 0xf2, 0x3f, 0x7a, 0x0f, 0x66, 0xfc, 0x9c, 0x45, 0x27, 0x46, 0xb4, + 0xff, 0x45, 0xaa, 0x0c, 0xbf, 0x3c, 0x2c, 0xce, 0xad, 0x83, 0x1a, 0xff, 0xfc, 0x99, 0x61, 0xc7, + 0x17, 0x11, 0xc8, 0x63, 0x3c, 0x9f, 0x33, 0x87, 0x61, 0x85, 0xb5, 0xbf, 0x6f, 0xc1, 0x74, 0xc7, + 0x1b, 0xf4, 0x1f, 0x68, 0xdb, 0x45, 0xba, 0xea, 0x52, 0x41, 0xba, 0x6a, 0xfd, 0xd3, 0xca, 0x5d, + 0x3f, 0xed, 0x1b, 0x16, 0x88, 0x19, 0x78, 0x02, 0xea, 0xfc, 0x67, 0x4c, 0x75, 0x7e, 0xb6, 0x78, + 0x52, 0x17, 0xe8, 0xf1, 0x7f, 0x6e, 0xc1, 0x14, 0x27, 0x48, 0x0f, 0x2f, 0x3e, 0xd0, 0x71, 0xe8, + 0xe7, 0x0d, 0x15, 0xf5, 0x68, 0x65, 0xfe, 0x47, 0x19, 0x83, 0x35, 0xd0, 0x75, 0xb0, 0xfe, 0x93, + 0x05, 0x88, 0x7f, 0x7e, 0xf6, 0xe5, 0x65, 0xbe, 0x29, 0x69, 0xa6, 0x76, 0x2a, 0x04, 0x14, 0x06, + 0x6b, 0x54, 0xc7, 0xd2, 0xf0, 0xcc, 0xd9, 0x50, 0xb9, 0xf7, 0xd9, 0xd0, 0x11, 0xbe, 0xf5, 0xaf, + 0x0c, 0x40, 0x36, 0x10, 0x11, 0xdd, 0x82, 0xb1, 0xa6, 0xd3, 0x72, 0x6e, 0x7b, 0xbe, 0x97, 0x78, + 0x24, 0xee, 0x76, 0xa8, 0xbc, 0xac, 0xd1, 0x89, 0x83, 0x18, 0x0d, 0x82, 0x0d, 0x3e, 0x68, 0x1e, + 0xa0, 0x15, 0x79, 0xbb, 0x9e, 0x4f, 0x36, 0x99, 0xad, 0xc1, 0x6e, 0x23, 0xf0, 0x93, 0x52, 0x09, + 0xc5, 0x1a, 0x45, 0x4e, 0xf4, 0x7a, 0xf9, 0xfe, 0x45, 0xaf, 0x0f, 0x1c, 0x31, 0x7a, 0x7d, 0xb0, + 0xaf, 0xe8, 0x75, 0x0c, 0x67, 0xe4, 0xae, 0x4a, 0xff, 0xaf, 0x7a, 0x3e, 0x11, 0xaa, 0x14, 0xbf, + 0xa3, 0x30, 0x7b, 0xb0, 0x3f, 0x77, 0x06, 0xe7, 0x52, 0xe0, 0x82, 0x92, 0xe8, 0xa7, 0xa1, 0xea, + 0xf8, 0x7e, 0x78, 0x47, 0xf5, 0xda, 0x4a, 0xdc, 0x74, 0xfc, 0x34, 0x15, 0xe8, 0xc8, 0xd2, 0x43, + 0x07, 0xfb, 0x73, 0xd5, 0xc5, 0x02, 0x1a, 0x5c, 0x58, 0xda, 0xde, 0x86, 0x53, 0x0d, 0x12, 0xc9, + 0x87, 0xc0, 0xd4, 0xea, 0x5b, 0x87, 0x4a, 0x94, 0x59, 0xee, 0x7d, 0x5d, 0x49, 0xd7, 0x12, 0x70, + 0xc9, 0xe5, 0x9d, 0x32, 0xb2, 0xff, 0xcc, 0x82, 0x61, 0x11, 0xdc, 0x78, 0x02, 0x5a, 0xc6, 0xa2, + 0xe1, 0xf0, 0x99, 0xcb, 0x17, 0x89, 0xac, 0x31, 0x85, 0xae, 0x9e, 0xb5, 0x8c, 0xab, 0xe7, 0x91, + 0x6e, 0x4c, 0xba, 0x3b, 0x79, 0x7e, 0xb9, 0x0c, 0x13, 0x66, 0x60, 0xe7, 0x09, 0x74, 0xc1, 0x75, + 0x18, 0x8e, 0x45, 0x14, 0x71, 0xa9, 0x38, 0x1a, 0x2d, 0x3b, 0x88, 0xe9, 0x99, 0xb5, 0x88, 0x1b, + 0x96, 0x4c, 0x72, 0xc3, 0x93, 0xcb, 0xf7, 0x31, 0x3c, 0xb9, 0x57, 0x6c, 0xed, 0xc0, 0x71, 0xc4, + 0xd6, 0xda, 0xdf, 0x66, 0xc2, 0x5f, 0x87, 0x9f, 0xc0, 0x8e, 0x7d, 0xc9, 0xdc, 0x26, 0xec, 0x2e, + 0x33, 0x4b, 0x34, 0xaa, 0x60, 0xe7, 0xfe, 0x07, 0x16, 0x8c, 0x0a, 0xc2, 0x13, 0x68, 0xf6, 0x67, + 0xcd, 0x66, 0x3f, 0xd8, 0xa5, 0xd9, 0x05, 0xed, 0xfd, 0x9b, 0x25, 0xd5, 0xde, 0xba, 0x78, 0x23, + 0xbf, 0x67, 0x6a, 0xe8, 0x11, 0x6a, 0xa7, 0x85, 0xcd, 0xd0, 0x17, 0x7a, 0xd9, 0x43, 0xe9, 0x35, + 0x35, 0x0e, 0x3f, 0xd4, 0x7e, 0x63, 0x45, 0xcd, 0x6e, 0x51, 0x85, 0x51, 0x22, 0x36, 0xd0, 0xbc, + 0x17, 0xfa, 0x5d, 0x80, 0xf4, 0xa1, 0x73, 0x71, 0xaf, 0xf3, 0xe8, 0x6f, 0xff, 0xa7, 0xf7, 0xce, + 0x14, 0x2f, 0xac, 0xf1, 0x95, 0x17, 0x1f, 0x58, 0x1d, 0x83, 0xe6, 0x49, 0xcc, 0x75, 0x01, 0xc7, + 0x8a, 0xc2, 0xfe, 0x04, 0x93, 0xc9, 0xac, 0x83, 0x8e, 0x76, 0x25, 0xec, 0x7f, 0x0e, 0xa9, 0xae, + 0x65, 0x6e, 0xd8, 0x9a, 0x7e, 0xf1, 0xac, 0xbb, 0x08, 0xa4, 0x15, 0xeb, 0x41, 0xbe, 0xe9, 0xed, + 0x34, 0xf4, 0xb9, 0x8e, 0x03, 0xba, 0x67, 0x7a, 0xc8, 0xd2, 0x23, 0x1c, 0xc9, 0xb1, 0x4c, 0x77, + 0x2c, 0x23, 0xd8, 0x5a, 0x3d, 0x9b, 0xbc, 0x7b, 0x59, 0x22, 0x70, 0x4a, 0x83, 0x16, 0x84, 0xcd, + 0xc7, 0x1d, 0x20, 0x0f, 0x66, 0x6c, 0x3e, 0xf9, 0xf9, 0x9a, 0xd1, 0xf7, 0x2c, 0x8c, 0xaa, 0x07, + 0x51, 0xea, 0xfc, 0x5d, 0x89, 0x0a, 0xd7, 0xa5, 0x56, 0x52, 0x30, 0xd6, 0x69, 0xd0, 0x3a, 0x4c, + 0xc6, 0xfc, 0xb5, 0x16, 0x79, 0x17, 0x41, 0x58, 0xf4, 0x4f, 0x66, 0x9e, 0x54, 0x97, 0xe8, 0x43, + 0x06, 0xe2, 0x8b, 0x55, 0xde, 0x5e, 0xc8, 0xb2, 0x40, 0xaf, 0xc0, 0x84, 0xaf, 0xbf, 0x5a, 0x59, + 0x17, 0x06, 0xbf, 0x0a, 0xb2, 0x32, 0xde, 0xb4, 0xac, 0xe3, 0x0c, 0x35, 0x55, 0x02, 0x74, 0x88, + 0x48, 0x52, 0xe3, 0x04, 0x9b, 0x24, 0x16, 0xcf, 0x39, 0x30, 0x25, 0xe0, 0x6a, 0x01, 0x0d, 0x2e, + 0x2c, 0x8d, 0x5e, 0x84, 0x31, 0xf9, 0xf9, 0xda, 0xdd, 0x9c, 0x34, 0x94, 0x4f, 0xc3, 0x61, 0x83, + 0x12, 0xdd, 0x81, 0xd3, 0xf2, 0xff, 0x7a, 0xe4, 0x6c, 0x6c, 0x78, 0x4d, 0x71, 0x35, 0x6a, 0x94, + 0xb1, 0x58, 0x94, 0x71, 0xcd, 0x2b, 0x79, 0x44, 0x87, 0xfb, 0x73, 0xe7, 0x45, 0xaf, 0xe5, 0xe2, + 0xd9, 0x20, 0xe6, 0xf3, 0x47, 0xd7, 0xe0, 0xd4, 0x16, 0x71, 0xfc, 0x64, 0x6b, 0x79, 0x8b, 0x34, + 0xb7, 0xe5, 0x22, 0x62, 0x37, 0x7e, 0xb4, 0x00, 0xb8, 0xcb, 0x9d, 0x24, 0x38, 0xaf, 0xdc, 0xfb, + 0x3b, 0x87, 0x7d, 0x97, 0x16, 0xd6, 0x74, 0x00, 0xf4, 0x79, 0x18, 0xd3, 0xfb, 0x5a, 0x88, 0xe1, + 0xc7, 0x7a, 0xbd, 0x63, 0x2a, 0x34, 0x08, 0xd5, 0xef, 0x3a, 0x0e, 0x1b, 0x1c, 0xed, 0x7f, 0x56, + 0x82, 0xb9, 0x1e, 0x59, 0x9e, 0x32, 0xce, 0x25, 0xab, 0x2f, 0xe7, 0xd2, 0xa2, 0x7c, 0xdc, 0xe3, + 0x7a, 0x26, 0x75, 0x74, 0xe6, 0xe1, 0x8e, 0x34, 0x81, 0x74, 0x96, 0xbe, 0xef, 0xb8, 0x2a, 0xdd, + 0x3f, 0x35, 0xd0, 0x33, 0xbc, 0xac, 0xae, 0x3b, 0x1a, 0x07, 0xfb, 0x57, 0x48, 0x0b, 0x7d, 0x8c, + 0xf6, 0xb7, 0x4b, 0x70, 0x5a, 0x75, 0xe1, 0x4f, 0x6e, 0xc7, 0xdd, 0xec, 0xec, 0xb8, 0x63, 0xf0, + 0xd0, 0xda, 0x37, 0x60, 0xa8, 0xb1, 0x17, 0x37, 0x13, 0xbf, 0x8f, 0xfd, 0xfb, 0x51, 0x63, 0xe5, + 0xa4, 0xbb, 0x0c, 0x7b, 0x9f, 0x4b, 0x2c, 0x24, 0xfb, 0x2f, 0x5a, 0x30, 0xb9, 0xbe, 0x5c, 0x6f, + 0x84, 0xcd, 0x6d, 0x92, 0x2c, 0x72, 0xff, 0x03, 0x16, 0xdb, 0xb7, 0x75, 0x8f, 0xdb, 0x72, 0xde, + 0x86, 0x7f, 0x1e, 0x06, 0xb6, 0xc2, 0x38, 0xc9, 0x7a, 0xe1, 0x2f, 0x87, 0x71, 0x82, 0x19, 0xc6, + 0xfe, 0x13, 0x0b, 0x06, 0xd9, 0x93, 0x54, 0xbd, 0x9e, 0x2e, 0xeb, 0xe7, 0xbb, 0xd0, 0x0b, 0x30, + 0x44, 0x36, 0x36, 0x48, 0x33, 0x11, 0xa3, 0x2a, 0xaf, 0x7a, 0x0c, 0xad, 0x30, 0x28, 0xdd, 0xb3, + 0x58, 0x65, 0xfc, 0x2f, 0x16, 0xc4, 0xe8, 0x73, 0x50, 0x49, 0xbc, 0x1d, 0xb2, 0xe8, 0xba, 0xc2, + 0x01, 0x7e, 0xb4, 0x58, 0x27, 0xb5, 0x87, 0xae, 0x4b, 0x26, 0x38, 0xe5, 0x67, 0xff, 0x62, 0x09, + 0x20, 0xbd, 0x12, 0xd6, 0xeb, 0x33, 0x97, 0x3a, 0x5e, 0x68, 0x7b, 0x2c, 0xe7, 0x85, 0x36, 0x94, + 0x32, 0xcc, 0x79, 0x9f, 0x4d, 0x75, 0x55, 0xb9, 0xaf, 0xae, 0x1a, 0x38, 0x4a, 0x57, 0x2d, 0xc3, + 0x74, 0x7a, 0xa5, 0xcd, 0xbc, 0xdf, 0xcb, 0xb2, 0xb7, 0xae, 0x67, 0x91, 0xb8, 0x93, 0xde, 0xfe, + 0xb2, 0x05, 0x22, 0xfe, 0xb5, 0x8f, 0x09, 0xfd, 0xa6, 0x7c, 0x4c, 0xc9, 0x48, 0x3d, 0x77, 0xbe, + 0x38, 0x20, 0x58, 0x24, 0x9c, 0x53, 0x92, 0xdd, 0x48, 0x33, 0x67, 0xf0, 0xb2, 0x7f, 0xcf, 0x82, + 0x51, 0x8e, 0xbe, 0xc6, 0x8c, 0xc4, 0xde, 0xad, 0x39, 0x52, 0xee, 0x5f, 0xf6, 0xce, 0x10, 0x65, + 0xac, 0x52, 0xc4, 0xea, 0xef, 0x0c, 0x49, 0x04, 0x4e, 0x69, 0xd0, 0x13, 0x30, 0x1c, 0xb7, 0x6f, + 0x33, 0xf2, 0x4c, 0x08, 0x6c, 0x83, 0x83, 0xb1, 0xc4, 0xd3, 0x79, 0x35, 0x95, 0x8d, 0x80, 0x46, + 0x97, 0x61, 0x88, 0x8b, 0x0d, 0xb1, 0x8c, 0xbb, 0xb8, 0xfb, 0xb5, 0xb8, 0x69, 0xe0, 0x0f, 0x63, + 0x33, 0x71, 0x23, 0xca, 0xa3, 0xb7, 0x60, 0xd4, 0x0d, 0xef, 0x04, 0x77, 0x9c, 0xc8, 0x5d, 0xac, + 0xaf, 0x89, 0x5e, 0xcf, 0x8d, 0x63, 0xab, 0xa5, 0x64, 0x7a, 0x2c, 0x36, 0x73, 0xa0, 0xa5, 0x28, + 0xac, 0xb3, 0x43, 0xeb, 0x2c, 0xcb, 0x06, 0x7f, 0xae, 0xb3, 0x5b, 0x64, 0x87, 0x7a, 0xe1, 0x53, + 0xe3, 0x3c, 0x2e, 0x52, 0x71, 0x88, 0xc7, 0x3e, 0x53, 0x46, 0xf6, 0x17, 0x4f, 0x81, 0x31, 0xda, + 0x46, 0x86, 0x5e, 0xeb, 0x98, 0x32, 0xf4, 0x62, 0x18, 0x21, 0x3b, 0xad, 0x64, 0xaf, 0xe6, 0x45, + 0xdd, 0x52, 0xa6, 0xaf, 0x08, 0x9a, 0x4e, 0x9e, 0x12, 0x83, 0x15, 0x9f, 0xfc, 0x34, 0xca, 0xe5, + 0x0f, 0x30, 0x8d, 0xf2, 0xc0, 0x09, 0xa6, 0x51, 0xbe, 0x0e, 0xc3, 0x9b, 0x5e, 0x82, 0x49, 0x2b, + 0x14, 0x5b, 0x66, 0xee, 0x4c, 0xb8, 0xc4, 0x49, 0x3a, 0x13, 0x80, 0x0a, 0x04, 0x96, 0x4c, 0xd0, + 0xab, 0x6a, 0x0d, 0x0c, 0x15, 0xab, 0x82, 0x9d, 0xfe, 0xe7, 0xdc, 0x55, 0x20, 0xd2, 0x26, 0x0f, + 0xdf, 0x6b, 0xda, 0x64, 0x95, 0xf6, 0x78, 0xe4, 0xfd, 0xa5, 0x3d, 0x36, 0xd2, 0x42, 0x57, 0x8e, + 0x2f, 0x2d, 0xf4, 0x97, 0x2d, 0x38, 0xdd, 0xca, 0xcb, 0x90, 0x2e, 0x52, 0x19, 0xbf, 0xd0, 0x77, + 0xa6, 0x78, 0xa3, 0x42, 0x96, 0xea, 0x21, 0x97, 0x0c, 0xe7, 0x57, 0x27, 0xf3, 0x4b, 0x8f, 0xde, + 0x6b, 0x7e, 0xe9, 0xfb, 0x93, 0xf3, 0x38, 0xcd, 0x36, 0x3d, 0x7e, 0x8c, 0xd9, 0xa6, 0x27, 0xde, + 0x77, 0xb6, 0x69, 0x2d, 0x63, 0xf4, 0xe4, 0x71, 0x64, 0x8c, 0x7e, 0xdb, 0x14, 0xf6, 0x3c, 0x91, + 0xf1, 0x53, 0x3d, 0x84, 0xbd, 0xc1, 0xb7, 0xbb, 0xb8, 0xe7, 0xd9, 0xb1, 0xa7, 0xef, 0x29, 0x3b, + 0xb6, 0x91, 0x77, 0x1a, 0x1d, 0x5f, 0xde, 0xe9, 0x5b, 0xfa, 0x16, 0x74, 0xaa, 0x98, 0xaf, 0xda, + 0x69, 0x3a, 0xf9, 0xe6, 0x6d, 0x42, 0x9d, 0xf9, 0xac, 0x67, 0x4e, 0x26, 0x9f, 0xf5, 0xe9, 0x63, + 0xcf, 0x67, 0x7d, 0xe6, 0x04, 0xf2, 0x59, 0x3f, 0xf0, 0x81, 0xe6, 0xb3, 0xae, 0xde, 0xdf, 0x7c, + 0xd6, 0x67, 0x8f, 0x23, 0x9f, 0xf5, 0x2d, 0xa8, 0xb4, 0xe4, 0x25, 0xb9, 0xea, 0x6c, 0xf1, 0x90, + 0xe4, 0xde, 0xa4, 0xe3, 0x43, 0xa2, 0x50, 0x38, 0x65, 0x45, 0xf9, 0xa6, 0xf9, 0xad, 0x1f, 0x2c, + 0xe6, 0x9b, 0x6b, 0xb6, 0x77, 0xc9, 0x6a, 0xfd, 0x97, 0x4a, 0x70, 0xae, 0xfb, 0xbc, 0x4e, 0x6d, + 0xfe, 0x7a, 0xea, 0x62, 0xcd, 0xd8, 0xfc, 0x4c, 0xe9, 0xd2, 0xa8, 0xfa, 0xbe, 0x49, 0x7c, 0x09, + 0xa6, 0x55, 0xac, 0x90, 0xef, 0x35, 0xf7, 0xb4, 0xe7, 0x67, 0x54, 0xf8, 0x79, 0x23, 0x4b, 0x80, + 0x3b, 0xcb, 0xa0, 0x45, 0x98, 0x34, 0x80, 0x6b, 0x35, 0xa1, 0x92, 0x2b, 0x27, 0x43, 0xc3, 0x44, + 0xe3, 0x2c, 0xbd, 0xfd, 0x75, 0x0b, 0x1e, 0x28, 0x48, 0x8d, 0xd9, 0xf7, 0x45, 0xd9, 0x0d, 0x98, + 0x6c, 0x99, 0x45, 0x7b, 0xdc, 0xa7, 0x37, 0x12, 0x70, 0xaa, 0xb6, 0x66, 0x10, 0x38, 0xcb, 0x74, + 0xe9, 0xc2, 0x77, 0x7e, 0x70, 0xee, 0x23, 0x7f, 0xf4, 0x83, 0x73, 0x1f, 0xf9, 0xfe, 0x0f, 0xce, + 0x7d, 0xe4, 0xff, 0x3b, 0x38, 0x67, 0x7d, 0xe7, 0xe0, 0x9c, 0xf5, 0x47, 0x07, 0xe7, 0xac, 0xef, + 0x1f, 0x9c, 0xb3, 0xfe, 0xf4, 0xe0, 0x9c, 0xf5, 0x8b, 0x3f, 0x3c, 0xf7, 0x91, 0x37, 0x4b, 0xbb, + 0xcf, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x91, 0x0b, 0xbd, 0x79, 0xc9, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index a073471f858..88066314353 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -1599,6 +1599,11 @@ message NodeCondition { optional string message = 6; } +// NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil. +message NodeConfigSource { + optional ObjectReference configMapRef = 1; +} + // NodeDaemonEndpoints lists ports opened by daemons running on the Node. message NodeDaemonEndpoints { // Endpoint on which Kubelet is listening. @@ -1689,6 +1694,11 @@ message NodeSpec { // If specified, the node's taints. // +optional repeated Taint taints = 5; + + // If specified, the source to get node configuration from + // The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field + // +optional + optional NodeConfigSource configSource = 6; } // NodeStatus is information about the current status of a node. diff --git a/staging/src/k8s.io/api/core/v1/types.generated.go b/staging/src/k8s.io/api/core/v1/types.generated.go index 3a422a59fc9..e4bf3dbd6b3 100644 --- a/staging/src/k8s.io/api/core/v1/types.generated.go +++ b/staging/src/k8s.io/api/core/v1/types.generated.go @@ -48225,7 +48225,7 @@ func (x *NodeSpec) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [5]bool + var yyq2 [6]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false yyq2[0] = x.PodCIDR != "" @@ -48233,9 +48233,10 @@ func (x *NodeSpec) CodecEncodeSelf(e *codec1978.Encoder) { yyq2[2] = x.ProviderID != "" yyq2[3] = x.Unschedulable != false yyq2[4] = len(x.Taints) != 0 + yyq2[5] = x.ConfigSource != nil var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(5) + r.EncodeArrayStart(6) } else { yynn2 = 0 for _, b := range yyq2 { @@ -48379,6 +48380,29 @@ func (x *NodeSpec) CodecEncodeSelf(e *codec1978.Encoder) { } } } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[5] { + if x.ConfigSource == nil { + r.EncodeNil() + } else { + x.ConfigSource.CodecEncodeSelf(e) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[5] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("configSource")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.ConfigSource == nil { + r.EncodeNil() + } else { + x.ConfigSource.CodecEncodeSelf(e) + } + } + } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { @@ -48500,6 +48524,17 @@ func (x *NodeSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { h.decSliceTaint((*[]Taint)(yyv12), d) } } + case "configSource": + if r.TryDecodeAsNil() { + if x.ConfigSource != nil { + x.ConfigSource = nil + } + } else { + if x.ConfigSource == nil { + x.ConfigSource = new(NodeConfigSource) + } + x.ConfigSource.CodecDecodeSelf(d) + } default: z.DecStructFieldNotFound(-1, yys3) } // end switch yys3 @@ -48511,16 +48546,16 @@ func (x *NodeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj14 int - var yyb14 bool - var yyhl14 bool = l >= 0 - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + var yyj15 int + var yyb15 bool + var yyhl15 bool = l >= 0 + yyj15++ + if yyhl15 { + yyb15 = yyj15 > l } else { - yyb14 = r.CheckBreak() + yyb15 = r.CheckBreak() } - if yyb14 { + if yyb15 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -48528,21 +48563,21 @@ func (x *NodeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.PodCIDR = "" } else { - yyv15 := &x.PodCIDR - yym16 := z.DecBinary() - _ = yym16 + yyv16 := &x.PodCIDR + yym17 := z.DecBinary() + _ = yym17 if false { } else { - *((*string)(yyv15)) = r.DecodeString() + *((*string)(yyv16)) = r.DecodeString() } } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj15++ + if yyhl15 { + yyb15 = yyj15 > l } else { - yyb14 = r.CheckBreak() + yyb15 = r.CheckBreak() } - if yyb14 { + if yyb15 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -48550,21 +48585,21 @@ func (x *NodeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.ExternalID = "" } else { - yyv17 := &x.ExternalID - yym18 := z.DecBinary() - _ = yym18 + yyv18 := &x.ExternalID + yym19 := z.DecBinary() + _ = yym19 if false { } else { - *((*string)(yyv17)) = r.DecodeString() + *((*string)(yyv18)) = r.DecodeString() } } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj15++ + if yyhl15 { + yyb15 = yyj15 > l } else { - yyb14 = r.CheckBreak() + yyb15 = r.CheckBreak() } - if yyb14 { + if yyb15 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -48572,21 +48607,21 @@ func (x *NodeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.ProviderID = "" } else { - yyv19 := &x.ProviderID - yym20 := z.DecBinary() - _ = yym20 + yyv20 := &x.ProviderID + yym21 := z.DecBinary() + _ = yym21 if false { } else { - *((*string)(yyv19)) = r.DecodeString() + *((*string)(yyv20)) = r.DecodeString() } } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj15++ + if yyhl15 { + yyb15 = yyj15 > l } else { - yyb14 = r.CheckBreak() + yyb15 = r.CheckBreak() } - if yyb14 { + if yyb15 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -48594,21 +48629,21 @@ func (x *NodeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.Unschedulable = false } else { - yyv21 := &x.Unschedulable - yym22 := z.DecBinary() - _ = yym22 + yyv22 := &x.Unschedulable + yym23 := z.DecBinary() + _ = yym23 if false { } else { - *((*bool)(yyv21)) = r.DecodeBool() + *((*bool)(yyv22)) = r.DecodeBool() } } - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l + yyj15++ + if yyhl15 { + yyb15 = yyj15 > l } else { - yyb14 = r.CheckBreak() + yyb15 = r.CheckBreak() } - if yyb14 { + if yyb15 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -48616,26 +48651,344 @@ func (x *NodeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.Taints = nil } else { - yyv23 := &x.Taints - yym24 := z.DecBinary() - _ = yym24 + yyv24 := &x.Taints + yym25 := z.DecBinary() + _ = yym25 if false { } else { - h.decSliceTaint((*[]Taint)(yyv23), d) + h.decSliceTaint((*[]Taint)(yyv24), d) } } - for { - yyj14++ - if yyhl14 { - yyb14 = yyj14 > l - } else { - yyb14 = r.CheckBreak() + yyj15++ + if yyhl15 { + yyb15 = yyj15 > l + } else { + yyb15 = r.CheckBreak() + } + if yyb15 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + if x.ConfigSource != nil { + x.ConfigSource = nil } - if yyb14 { + } else { + if x.ConfigSource == nil { + x.ConfigSource = new(NodeConfigSource) + } + x.ConfigSource.CodecDecodeSelf(d) + } + for { + yyj15++ + if yyhl15 { + yyb15 = yyj15 > l + } else { + yyb15 = r.CheckBreak() + } + if yyb15 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj14-1, "") + z.DecStructFieldNotFound(yyj15-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *NodeConfigSource) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [3]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = x.ConfigMapRef != nil + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(3) + } else { + yynn2 = 0 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + if x.ConfigMapRef == nil { + r.EncodeNil() + } else { + x.ConfigMapRef.CodecEncodeSelf(e) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("configMapRef")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.ConfigMapRef == nil { + r.EncodeNil() + } else { + x.ConfigMapRef.CodecEncodeSelf(e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *NodeConfigSource) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *NodeConfigSource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "configMapRef": + if r.TryDecodeAsNil() { + if x.ConfigMapRef != nil { + x.ConfigMapRef = nil + } + } else { + if x.ConfigMapRef == nil { + x.ConfigMapRef = new(ObjectReference) + } + x.ConfigMapRef.CodecDecodeSelf(d) + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *NodeConfigSource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj9 int + var yyb9 bool + var yyhl9 bool = l >= 0 + yyj9++ + if yyhl9 { + yyb9 = yyj9 > l + } else { + yyb9 = r.CheckBreak() + } + if yyb9 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv10 := &x.Kind + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + *((*string)(yyv10)) = r.DecodeString() + } + } + yyj9++ + if yyhl9 { + yyb9 = yyj9 > l + } else { + yyb9 = r.CheckBreak() + } + if yyb9 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv12 := &x.APIVersion + yym13 := z.DecBinary() + _ = yym13 + if false { + } else { + *((*string)(yyv12)) = r.DecodeString() + } + } + yyj9++ + if yyhl9 { + yyb9 = yyj9 > l + } else { + yyb9 = r.CheckBreak() + } + if yyb9 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + if x.ConfigMapRef != nil { + x.ConfigMapRef = nil + } + } else { + if x.ConfigMapRef == nil { + x.ConfigMapRef = new(ObjectReference) + } + x.ConfigMapRef.CodecDecodeSelf(d) + } + for { + yyj9++ + if yyhl9 { + yyb9 = yyj9 > l + } else { + yyb9 = r.CheckBreak() + } + if yyb9 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj9-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -75163,7 +75516,7 @@ func (x codecSelfer1234) decSliceNode(v *[]Node, d *codec1978.Decoder) { yyrg1 := len(yyv1) > 0 yyv21 := yyv1 - yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 664) + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 672) if yyrt1 { if yyrl1 <= cap(yyv1) { yyv1 = yyv1[:yyrl1] diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index 981edd88f41..ba103b4e7e8 100644 --- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -350,6 +350,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*NodeCondition).DeepCopyInto(out.(*NodeCondition)) return nil }, InType: reflect.TypeOf(&NodeCondition{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*NodeConfigSource).DeepCopyInto(out.(*NodeConfigSource)) + return nil + }, InType: reflect.TypeOf(&NodeConfigSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*NodeDaemonEndpoints).DeepCopyInto(out.(*NodeDaemonEndpoints)) return nil @@ -2881,6 +2885,41 @@ func (in *NodeCondition) DeepCopy() *NodeCondition { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeConfigSource) DeepCopyInto(out *NodeConfigSource) { + *out = *in + out.TypeMeta = in.TypeMeta + if in.ConfigMapRef != nil { + in, out := &in.ConfigMapRef, &out.ConfigMapRef + if *in == nil { + *out = nil + } else { + *out = new(ObjectReference) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeConfigSource. +func (in *NodeConfigSource) DeepCopy() *NodeConfigSource { + if in == nil { + return nil + } + out := new(NodeConfigSource) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeConfigSource) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeDaemonEndpoints) DeepCopyInto(out *NodeDaemonEndpoints) { *out = *in @@ -3058,6 +3097,15 @@ func (in *NodeSpec) DeepCopyInto(out *NodeSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + if in.ConfigSource != nil { + in, out := &in.ConfigSource, &out.ConfigSource + if *in == nil { + *out = nil + } else { + *out = new(NodeConfigSource) + (*in).DeepCopyInto(*out) + } + } return } From e033d8c6a0f2861ca09590cd8dbaeac2e00d504c Mon Sep 17 00:00:00 2001 From: Cedric Lamoriniere Date: Tue, 8 Aug 2017 21:30:53 +0200 Subject: [PATCH 113/183] Retry fed-lb-svc creation on diff NodePort during e2e tests Currently, in federated end2end tests, the creation of services are done with a randomize NodePort selection. It causing e2e test flakes if the creation of a federated service failed if the port is not available. Now the util.CreateService(...) function is re trying to create the service on different nodePort in an error case. The method retries until success or 10 creation retry with other random NodePorts. If never the service has not been created properly on one of the federated cluster, a Service shards cleanup is executed before retrying again the federated service creation. fixes #44018 --- test/e2e_federation/ingress.go | 2 +- test/e2e_federation/service.go | 2 +- test/e2e_federation/util.go | 99 ++++++++++++++++++++++++++++++---- 3 files changed, 90 insertions(+), 13 deletions(-) diff --git a/test/e2e_federation/ingress.go b/test/e2e_federation/ingress.go index bc77721a22e..8782792c1cf 100644 --- a/test/e2e_federation/ingress.go +++ b/test/e2e_federation/ingress.go @@ -163,7 +163,7 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func( clusters = f.GetRegisteredClusters() ns = f.FederationNamespace.Name // create backend service - service = createLBServiceOrFail(f.FederationClientset, ns, FederatedIngressServiceName) + service = createLBServiceOrFail(f.FederationClientset, ns, FederatedIngressServiceName, clusters) // create the TLS secret secret = createTLSSecretOrFail(f.FederationClientset, ns, FederatedIngressTLSSecretName) // wait for services objects sync diff --git a/test/e2e_federation/service.go b/test/e2e_federation/service.go index 6dda940c687..5713ad2f2dd 100644 --- a/test/e2e_federation/service.go +++ b/test/e2e_federation/service.go @@ -183,7 +183,7 @@ var _ = framework.KubeDescribe("Federated Services [Feature:Federation]", func() backendPods = createBackendPodsOrFail(clusters, nsName, FederatedServicePodName) - service = createLBServiceOrFail(f.FederationClientset, nsName, FederatedServiceName) + service = createLBServiceOrFail(f.FederationClientset, nsName, FederatedServiceName, clusters) obj, err := scheme.Scheme.DeepCopy(service) // Cloning shouldn't fail. On the off-chance it does, we // should shallow copy service to serviceShard before diff --git a/test/e2e_federation/util.go b/test/e2e_federation/util.go index 0ddf52c0da5..73b55a836ea 100644 --- a/test/e2e_federation/util.go +++ b/test/e2e_federation/util.go @@ -144,7 +144,7 @@ func createService(clientset *fedclientset.Clientset, namespace, name string) (* return clientset.CoreV1().Services(namespace).Create(service) } -func createLBService(clientset *fedclientset.Clientset, namespace, name string) (*v1.Service, error) { +func createLBService(clientset *fedclientset.Clientset, namespace, name string, clusters fedframework.ClusterSlice) (*v1.Service, error) { if clientset == nil || len(namespace) == 0 { return nil, fmt.Errorf("Internal error: invalid parameters passed to createService: clientset: %v, namespace: %v", clientset, namespace) } @@ -152,10 +152,53 @@ func createLBService(clientset *fedclientset.Clientset, namespace, name string) // Tests can be run in parallel, so we need a different nodePort for // each test. - // We add 1 to FederatedSvcNodePortLast because IntnRange's range end - // is not inclusive. - nodePort := int32(rand.IntnRange(FederatedSvcNodePortFirst, FederatedSvcNodePortLast+1)) + // we add in a array all the "available" ports + availablePorts := make([]int32, FederatedSvcNodePortLast-FederatedSvcNodePortFirst) + for i := range availablePorts { + availablePorts[i] = int32(FederatedSvcNodePortFirst + i) + } + var err error + var service *v1.Service + retry := 10 // the function should retry the service creation on different port only 10 time. + + // until the availablePort list is not empty, lets try to create the service + for len(availablePorts) > 0 && retry > 0 { + // select the Id of an available port + i := rand.Intn(len(availablePorts)) + + By(fmt.Sprintf("try creating federated service %q in namespace %q with nodePort %d", name, namespace, availablePorts[i])) + + service, err = createServiceWithNodePort(clientset, namespace, name, availablePorts[i]) + if err == nil { + // check if service have been created properly in all clusters. + // if the service is not present in one of the clusters, we should cleanup all services + if err = checkServicesCreation(namespace, name, clusters); err == nil { + // everything was created properly so returns the federated service. + return service, nil + } + } + + // in case of error, cleanup everything + if service != nil { + if err = deleteService(clientset, namespace, name, nil); err != nil { + framework.ExpectNoError(err, "Deleting service %q after a partial createService() error", service.Name) + return nil, err + } + + cleanupServiceShardsAndProviderResources(namespace, service, clusters) + } + + // creation failed, lets try with another port + // first remove from the availablePorts the port with which the creation failed + availablePorts = append(availablePorts[:i], availablePorts[i+1:]...) + retry-- + } + + return nil, err +} + +func createServiceWithNodePort(clientset *fedclientset.Clientset, namespace, name string, nodePort int32) (*v1.Service, error) { service := &v1.Service{ ObjectMeta: metav1.ObjectMeta{ Name: name, @@ -181,6 +224,33 @@ func createLBService(clientset *fedclientset.Clientset, namespace, name string) return clientset.CoreV1().Services(namespace).Create(service) } +// checkServicesCreation checks if the service have been created successfuly in all the clusters. +// if the service is not present in at least one of the clusters, this function returns an error. +func checkServicesCreation(namespace, serviceName string, clusters fedframework.ClusterSlice) error { + framework.Logf("check if service %q have been created in %d clusters", serviceName, len(clusters)) + for _, cluster := range clusters { + name := cluster.Name + err := wait.PollImmediate(framework.Poll, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { + var err error + _, err = cluster.Clientset.CoreV1().Services(namespace).Get(serviceName, metav1.GetOptions{}) + if err != nil && !errors.IsNotFound(err) { + // Get failed with an error, try again. + framework.Logf("Failed to find service %q in namespace %q, in cluster %q: %v. Trying again in %s", serviceName, namespace, name, err, framework.Poll) + return false, err + } else if errors.IsNotFound(err) { + framework.Logf("Service %q in namespace %q in cluster %q not found. Trying again in %s", serviceName, namespace, name, framework.Poll) + return false, nil + } + By(fmt.Sprintf("Service %q in namespace %q in cluster %q found", serviceName, namespace, name)) + return true, nil + }) + if err != nil { + return err + } + } + return nil +} + func createServiceOrFail(clientset *fedclientset.Clientset, namespace, name string) *v1.Service { service, err := createService(clientset, namespace, name) framework.ExpectNoError(err, "Creating service %q in namespace %q", service.Name, namespace) @@ -188,8 +258,8 @@ func createServiceOrFail(clientset *fedclientset.Clientset, namespace, name stri return service } -func createLBServiceOrFail(clientset *fedclientset.Clientset, namespace, name string) *v1.Service { - service, err := createLBService(clientset, namespace, name) +func createLBServiceOrFail(clientset *fedclientset.Clientset, namespace, name string, clusters fedframework.ClusterSlice) *v1.Service { + service, err := createLBService(clientset, namespace, name, clusters) framework.ExpectNoError(err, "Creating service %q in namespace %q", service.Name, namespace) By(fmt.Sprintf("Successfully created federated service (type: load balancer) %q in namespace %q", name, namespace)) return service @@ -200,8 +270,18 @@ func deleteServiceOrFail(clientset *fedclientset.Clientset, namespace string, se Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteServiceOrFail: clientset: %v, namespace: %v, service: %v", clientset, namespace, serviceName)) } framework.Logf("Deleting service %q in namespace %v", serviceName, namespace) + + err := deleteService(clientset, namespace, serviceName, orphanDependents) + if err != nil { + framework.ExpectNoError(err, "Error deleting service %q from namespace %q", serviceName, namespace) + } +} + +func deleteService(clientset *fedclientset.Clientset, namespace string, serviceName string, orphanDependents *bool) error { err := clientset.CoreV1().Services(namespace).Delete(serviceName, &metav1.DeleteOptions{OrphanDependents: orphanDependents}) - framework.ExpectNoError(err, "Error deleting service %q from namespace %q", serviceName, namespace) + if err != nil { + return err + } // Wait for the service to be deleted. err = wait.Poll(5*time.Second, fedframework.FederatedDefaultTestTimeout, func() (bool, error) { _, err := clientset.Core().Services(namespace).Get(serviceName, metav1.GetOptions{}) @@ -210,10 +290,7 @@ func deleteServiceOrFail(clientset *fedclientset.Clientset, namespace string, se } return false, err }) - if err != nil { - framework.DescribeSvc(namespace) - framework.Failf("Error in deleting service %s: %v", serviceName, err) - } + return err } func cleanupServiceShardsAndProviderResources(namespace string, service *v1.Service, clusters fedframework.ClusterSlice) { From 74567161205ec5964035cf88075b9db16628c4a2 Mon Sep 17 00:00:00 2001 From: Shyam Jeedigunta Date: Tue, 8 Aug 2017 21:43:09 +0200 Subject: [PATCH 114/183] Add debug logs to log-dump --- cluster/log-dump/log-dump.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cluster/log-dump/log-dump.sh b/cluster/log-dump/log-dump.sh index 597b9347125..537e548a528 100755 --- a/cluster/log-dump/log-dump.sh +++ b/cluster/log-dump/log-dump.sh @@ -173,7 +173,7 @@ function dump_masters() { echo "Master SSH not supported for ${KUBERNETES_PROVIDER}" return else - if ! (detect-master &> /dev/null); then + if ! (detect-master); then echo "Master not detected. Is the cluster up?" return fi From 0f12159ccd3d9f13ddb4a262a9b93012fb100150 Mon Sep 17 00:00:00 2001 From: Zach Loafman Date: Tue, 8 Aug 2017 13:47:16 -0700 Subject: [PATCH 115/183] GKE deployment: Kill cluster/gke kubernetes/test-infra#3983 migrated the remaining GKE jobs using the bash deployment (cluster/gke). Fixes kubernetes/test-infra#3307 --- cluster/gke/config-common.sh | 52 ---- cluster/gke/config-default.sh | 56 ----- cluster/gke/config-test.sh | 28 --- cluster/gke/make-it-stop.sh | 65 ----- cluster/gke/util.sh | 458 ---------------------------------- 5 files changed, 659 deletions(-) delete mode 100644 cluster/gke/config-common.sh delete mode 100644 cluster/gke/config-default.sh delete mode 100644 cluster/gke/config-test.sh delete mode 100755 cluster/gke/make-it-stop.sh delete mode 100755 cluster/gke/util.sh diff --git a/cluster/gke/config-common.sh b/cluster/gke/config-common.sh deleted file mode 100644 index 51982057f19..00000000000 --- a/cluster/gke/config-common.sh +++ /dev/null @@ -1,52 +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. - -# This script should be sourced as a part of config-test or config-default. -# Specifically, the following environment variables are assumed: -# - CLUSTER_NAME (the name of the cluster) - -if [ ! -z "${REGION:-}" ] && [ ! -z "${ZONE:-}" ]; then - echo "Only one of REGION and ZONE can be set." >&2 - exit 1 -fi -if [ -z "${REGION:-}" ]; then - ZONE="${ZONE:-us-central1-f}" -fi -NUM_NODES="${NUM_NODES:-3}" -ADDITIONAL_ZONES="${ADDITIONAL_ZONES:-}" -CLUSTER_API_VERSION="${CLUSTER_API_VERSION:-}" -NETWORK="${NETWORK:-default}" -FIREWALL_SSH="${FIREWALL_SSH:-${NETWORK}-allow-ssh}" -GCLOUD="${GCLOUD:-gcloud}" -CMD_GROUP="${CMD_GROUP:-}" -GCLOUD_CONFIG_DIR="${GCLOUD_CONFIG_DIR:-${HOME}/.config/gcloud/kubernetes}" -MACHINE_TYPE="${MACHINE_TYPE:-n1-standard-2}" -IMAGE_TYPE="${IMAGE_TYPE:-}" -if [[ "${FEDERATION:-}" == true ]]; then - NODE_SCOPES="${NODE_SCOPES:-compute-rw,storage-ro,https://www.googleapis.com/auth/ndev.clouddns.readwrite}" -else - NODE_SCOPES="${NODE_SCOPES:-compute-rw,storage-ro}" -fi - -# WARNING: any new vars added here must correspond to options that can be -# passed to `gcloud {CMD_GROUP} container clusters create`, or they will -# have no effect. If you change/add a var used to toggle a value in -# cluster/gce/configure-vm.sh, please ping someone on GKE. - -# This is a hack, but I keep setting this when I run commands manually, and -# then things grossly fail during normal runs because cluster/kubecfg.sh and -# cluster/kubectl.sh both use this if it's set. -unset KUBERNETES_MASTER diff --git a/cluster/gke/config-default.sh b/cluster/gke/config-default.sh deleted file mode 100644 index b611b91ec8b..00000000000 --- a/cluster/gke/config-default.sh +++ /dev/null @@ -1,56 +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. - -# The following are default-specific settings. -CLUSTER_NAME="${CLUSTER_NAME:-${USER}-gke}" -NETWORK=${KUBE_GKE_NETWORK:-default} - -# For ease of maintenance, extract any pieces that do not vary between default -# and test in a common config. -source $(dirname "${BASH_SOURCE}")/config-common.sh - -# Optional: Install node logging -ENABLE_NODE_LOGGING=false -LOGGING_DESTINATION=gcp # options: elasticsearch, gcp - -# Optional: When set to true, Elasticsearch and Kibana will be setup as part of the cluster bring up. -ENABLE_CLUSTER_LOGGING=false -ELASTICSEARCH_LOGGING_REPLICAS=1 - -# Optional: Deploy a L7 loadbalancer controller to fulfill Ingress requests: -# glbc - CE L7 Load Balancer Controller -ENABLE_L7_LOADBALANCING="${KUBE_ENABLE_L7_LOADBALANCING:-glbc}" - -# Optional: Cluster monitoring to setup as part of the cluster bring up: -# none - No cluster monitoring setup -# influxdb - Heapster, InfluxDB, and Grafana -# google - Heapster, Google Cloud Monitoring, and Google Cloud Logging -# standalone - Heapster only. Metrics available via Heapster REST API. -ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-standalone}" - -KUBE_DELETE_NETWORK=${KUBE_DELETE_NETWORK:-false} - -# Indicates if the values (i.e. KUBE_USER and KUBE_PASSWORD for basic -# authentication) in metadata should be treated as canonical, and therefore disk -# copies ought to be recreated/clobbered. -METADATA_CLOBBERS_CONFIG=true - -# Fluentd requirements -FLUENTD_GCP_MEMORY_LIMIT="${FLUENTD_GCP_MEMORY_LIMIT:-300Mi}" -FLUENTD_GCP_CPU_REQUEST="${FLUENTD_GCP_CPU_REQUEST:-100m}" -FLUENTD_GCP_MEMORY_REQUEST="${FLUENTD_GCP_MEMORY_REQUEST:-200Mi}" -# Adding to PROVIDER_VARS, since this is GCP-specific. -PROVIDER_VARS="${PROVIDER_VARS:-} FLUENTD_GCP_MEMORY_LIMIT FLUENTD_GCP_CPU_REQUEST FLUENTD_GCP_MEMORY_REQUEST" diff --git a/cluster/gke/config-test.sh b/cluster/gke/config-test.sh deleted file mode 100644 index e25d0a2a01e..00000000000 --- a/cluster/gke/config-test.sh +++ /dev/null @@ -1,28 +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. - -# The following are test-specific settings. -CLUSTER_NAME="${CLUSTER_NAME:-${USER}-gke-e2e}" -NETWORK=${KUBE_GKE_NETWORK:-e2e} -NODE_TAG="k8s-${CLUSTER_NAME}-node" -IMAGE_TYPE="${KUBE_GKE_IMAGE_TYPE:-container_vm}" -ENABLE_KUBERNETES_ALPHA="${KUBE_GKE_ENABLE_KUBERNETES_ALPHA:-}" - -KUBE_DELETE_NETWORK=${KUBE_DELETE_NETWORK:-true} - -# For ease of maintenance, extract any pieces that do not vary between default -# and test in a common config. -source $(dirname "${BASH_SOURCE}")/config-common.sh diff --git a/cluster/gke/make-it-stop.sh b/cluster/gke/make-it-stop.sh deleted file mode 100755 index fdff5b51cc9..00000000000 --- a/cluster/gke/make-it-stop.sh +++ /dev/null @@ -1,65 +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. - -echo "This is NOT a production-ready tool.\n\ -IT'S A HACKY, BEST-EFFORT WAY TO \"STOP\" CREATION OF THE GKE CLUSTER." -read -n 1 -p "Are you sure you want to proceed (y/N)?: " decision -echo "" -if [[ "${decision}" != "y" ]]; then - echo "Aborting..." - exit 0 -fi - -set -o errexit -set -o nounset -set -o pipefail - -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. - -if [ -f "${KUBE_ROOT}/cluster/env.sh" ]; then - source "${KUBE_ROOT}/cluster/env.sh" -fi - -source "${KUBE_ROOT}/cluster/gke/util.sh" -STAGING_ENDPOINT="CLOUDSDK_API_ENDPOINT_OVERRIDES_CONTAINER=https://staging-container.sandbox.googleapis.com/" - -detect-project -cluster=$(gcloud container operations list "--project=${PROJECT}" | grep "CREATE_CLUSTER" | grep "RUNNING" || true) -if [ -z "${cluster}" ]; then - echo "Couldn't find any cluster being created in production environment. Trying staging..." - cluster=$(env ${STAGING_ENDPOINT} gcloud container operations list "--project=${PROJECT}" | grep "CREATE_CLUSTER" | grep "RUNNING" || true) -fi - -if [ -z "${cluster}" ]; then - echo "No cluster creation in progress found. Aborting." - exit 0 -fi - -zone=$(echo "${cluster}" | tr -s "[:blank:]" | cut -f3 -d" ") -cluster_name=$(echo "${cluster}" | tr -s "[:blank:]" | cut -f4 -d" ") -gcloud="gcloud" -if [ "${zone}" == "us-east1-a" ]; then - gcloud="env ${STAGING_ENDPOINT} gcloud" -fi - -migs=$(${gcloud} compute instance-groups managed list --project=${PROJECT} --zones=${zone} | grep "gke-${cluster_name}" | cut -f1 -d" ") -echo "Managed instance groups for cluster ${cluster_name}: ${migs}" -for mig in ${migs}; do - echo "Resizing ${mig}..." - ${gcloud} compute instance-groups managed resize --project="${PROJECT}" --zone="${zone}" "${mig}" --size=1 -done - -echo "All managed instance groups resized to 1. Cluster creation operation should end soon, and you will be be able to delete the cluster." diff --git a/cluster/gke/util.sh b/cluster/gke/util.sh deleted file mode 100755 index 57c8f634f84..00000000000 --- a/cluster/gke/util.sh +++ /dev/null @@ -1,458 +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. - -# A library of helper functions and constant for the local config. - -# Uses the config file specified in $KUBE_CONFIG_FILE, or defaults to config-default.sh - -KUBE_PROMPT_FOR_UPDATE=${KUBE_PROMPT_FOR_UPDATE:-"n"} -KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../.. -source "${KUBE_ROOT}/cluster/gke/${KUBE_CONFIG_FILE:-config-default.sh}" -source "${KUBE_ROOT}/cluster/common.sh" -source "${KUBE_ROOT}/hack/lib/util.sh" - -function with-retry() { - local retry_limit=$1 - local cmd=("${@:2}") - - local retry_count=0 - local rc=0 - - until [[ ${retry_count} -ge ${retry_limit} ]]; do - ((retry_count+=1)) - "${cmd[@]}" && rc=0 || rc=$? - if [[ ${rc} == 0 ]]; then - return 0 - fi - sleep 3 - done - - echo "Failed to execute '${cmd[@]}' for $retry_limit times." >&2 - - return ${rc} -} - -# Perform preparations required to run e2e tests -# -# Assumed vars: -# GCLOUD -function prepare-e2e() { - echo "... in gke:prepare-e2e()" >&2 - - # Ensure GCLOUD is set to some gcloud binary. - if [[ -z "${GCLOUD:-}" ]]; then - echo "GCLOUD environment variable is not set. It should be your gcloud binary. " >&2 - echo "A sane default is probably \$ export GCLOUD=gcloud" >&2 - exit 1 - fi -} - - -# Use the gcloud defaults to find the project. If it is already set in the -# environment then go with that. -# -# Assumed vars: -# GCLOUD -# Vars set: -# PROJECT -# SCOPE_ARGS -function detect-project() { - echo "... in gke:detect-project()" >&2 - if [[ -z "${PROJECT:-}" ]]; then - export PROJECT=$("${GCLOUD}" config list project --format 'value(core.project)') - echo "... Using project: ${PROJECT}" >&2 - fi - if [[ -z "${PROJECT:-}" ]]; then - echo "Could not detect Google Cloud Platform project. Set the default project using " >&2 - echo "'gcloud config set project '" >&2 - exit 1 - fi - - SCOPE_ARGS=( - "--project=${PROJECT}" - ) - - if [[ ! -z "${ZONE:-}" ]]; then - SCOPE_ARGS+=("--zone=${ZONE}") - fi - - if [[ ! -z "${REGION:-}" ]]; then - SCOPE_ARGS+=("--region=${REGION}") - fi -} - -# Execute prior to running tests to build a release if required for env. -# -# Assumed Vars: -# KUBE_ROOT -function test-build-release() { - echo "... in gke:test-build-release()" >&2 - "${KUBE_ROOT}/build/release.sh" -} - -# Verify needed binaries exist. -function verify-prereqs() { - echo "... in gke:verify-prereqs()" >&2 - if ! which gcloud >/dev/null; then - local resp - if [[ "${KUBE_PROMPT_FOR_UPDATE}" == "y" ]]; then - echo "Can't find gcloud in PATH. Do you wish to install the Google Cloud SDK? [Y/n]" - read resp - fi - if [[ "${resp}" != "n" && "${resp}" != "N" ]]; then - curl https://sdk.cloud.google.com | bash - fi - if ! which gcloud >/dev/null; then - echo "Can't find gcloud in PATH, please fix and retry. The Google Cloud " - echo "SDK can be downloaded from https://cloud.google.com/sdk/." - exit 1 - fi - fi - update-or-verify-gcloud -} - -# Validate a kubernetes cluster -function validate-cluster { - # Simply override the NUM_NODES variable if we've spread nodes across multiple - # zones before calling into the generic validate-cluster logic. - local EXPECTED_NUM_NODES="${NUM_NODES}" - if [ ! -z "${REGION:-}" ]; then - (( EXPECTED_NUM_NODES *= 3 )) - fi - for zone in $(echo "${ADDITIONAL_ZONES}" | sed "s/,/ /g") - do - (( EXPECTED_NUM_NODES += NUM_NODES )) - done - NUM_NODES=${EXPECTED_NUM_NODES} bash -c "${KUBE_ROOT}/cluster/validate-cluster.sh" -} - -# Instantiate a kubernetes cluster -# -# Assumed vars: -# GCLOUD -# CLUSTER_NAME -# ZONE (optional) -# REGION (optional) -# CLUSTER_API_VERSION (optional) -# NUM_NODES -# ADDITIONAL_ZONES (optional) -# NODE_SCOPES -# MACHINE_TYPE -# HEAPSTER_MACHINE_TYPE (optional) -# CLUSTER_IP_RANGE (optional) -# GKE_CREATE_FLAGS (optional, space delineated) -# ENABLE_KUBERNETES_ALPHA (optional) -function kube-up() { - echo "... in gke:kube-up()" >&2 - detect-project >&2 - - # Make the specified network if we need to. - if ! "${GCLOUD}" compute networks --project "${PROJECT}" describe "${NETWORK}" &>/dev/null; then - echo "Creating new network: ${NETWORK}" >&2 - with-retry 3 "${GCLOUD}" compute networks create "${NETWORK}" --project="${PROJECT}" --mode=auto - else - echo "... Using network: ${NETWORK}" >&2 - fi - - # Allow SSH on all nodes in the network. This doesn't actually check whether - # such a rule exists, only whether we've created this exact rule. - if ! "${GCLOUD}" compute firewall-rules --project "${PROJECT}" describe "${FIREWALL_SSH}" &>/dev/null; then - echo "Creating new firewall for SSH: ${FIREWALL_SSH}" >&2 - with-retry 3 "${GCLOUD}" compute firewall-rules create "${FIREWALL_SSH}" \ - --allow="tcp:22" \ - --network="${NETWORK}" \ - --project="${PROJECT}" \ - --source-ranges="0.0.0.0/0" - else - echo "... Using firewall-rule: ${FIREWALL_SSH}" >&2 - fi - - local shared_args=( - ${SCOPE_ARGS[@]} - "--scopes=${NODE_SCOPES}" - ) - - if [[ ! -z "${IMAGE_TYPE:-}" ]]; then - shared_args+=("--image-type=${IMAGE_TYPE}") - fi - - if [[ -z "${HEAPSTER_MACHINE_TYPE:-}" ]]; then - local -r nodes="${NUM_NODES}" - else - local -r nodes=$(( NUM_NODES - 1 )) - fi - - local create_args=( - ${shared_args[@]} - "--num-nodes=${nodes}" - "--network=${NETWORK}" - "--cluster-version=${CLUSTER_API_VERSION}" - "--machine-type=${MACHINE_TYPE}" - "--quiet" - ) - - if [[ ! -z "${ENABLE_KUBERNETES_ALPHA:-}" ]]; then - create_args+=("--enable-kubernetes-alpha") - fi - - if [[ ! -z "${ADDITIONAL_ZONES:-}" ]]; then - create_args+=("--additional-zones=${ADDITIONAL_ZONES}") - fi - - if [[ ! -z "${CLUSTER_IP_RANGE:-}" ]]; then - create_args+=("--cluster-ipv4-cidr=${CLUSTER_IP_RANGE}") - fi - - if [[ ! -z "${ENABLE_LEGACY_ABAC:-}" ]]; then - if [[ "${ENABLE_LEGACY_ABAC:-}" == "true" ]]; then - create_args+=("--enable-legacy-authorization") - else - create_args+=("--no-enable-legacy-authorization") - fi - fi - - create_args+=( ${GKE_CREATE_FLAGS:-} ) - - # Bring up the cluster. - "${GCLOUD}" ${CMD_GROUP:-} container clusters create "${CLUSTER_NAME}" "${create_args[@]}" - - create-kubeconfig-for-federation - - if [[ ! -z "${HEAPSTER_MACHINE_TYPE:-}" ]]; then - "${GCLOUD}" ${CMD_GROUP:-} container node-pools create "heapster-pool" --cluster "${CLUSTER_NAME}" --num-nodes=1 --machine-type="${HEAPSTER_MACHINE_TYPE}" "${shared_args[@]}" - fi -} - -# Execute prior to running tests to initialize required structure. This is -# called from hack/e2e-go only when running -up (it is run after kube-up, so -# the cluster already exists at this point). -# -# Assumed vars: -# CLUSTER_NAME -# GCLOUD -# ZONE -# Vars set: -# NODE_TAG -function test-setup() { - echo "... in gke:test-setup()" >&2 - # Detect the project into $PROJECT if it isn't set - detect-project >&2 - - "${KUBE_ROOT}/cluster/kube-up.sh" - - detect-nodes >&2 - - # At this point, CLUSTER_NAME should have been used, so its value is final. - NODE_TAG=$($GCLOUD compute instances list ${NODE_NAMES[0]} --project="${PROJECT}" --format='value(tags.items)' | grep -o "gke-${CLUSTER_NAME}-.\{8\}-node") - OLD_NODE_TAG="k8s-${CLUSTER_NAME}-node" - - # Open up port 80 & 8080 so common containers on minions can be reached. - with-retry 3 "${GCLOUD}" compute firewall-rules create \ - "${CLUSTER_NAME}-http-alt" \ - --allow tcp:80,tcp:8080 \ - --project "${PROJECT}" \ - --target-tags "${NODE_TAG},${OLD_NODE_TAG}" \ - --network="${NETWORK}" & - - with-retry 3 "${GCLOUD}" compute firewall-rules create \ - "${CLUSTER_NAME}-nodeports" \ - --allow tcp:30000-32767,udp:30000-32767 \ - --project "${PROJECT}" \ - --target-tags "${NODE_TAG},${OLD_NODE_TAG}" \ - --network="${NETWORK}" & - - # Wait for firewall rules. - kube::util::wait-for-jobs || { - echo "... gke:test-setup(): Could not create firewall" >&2 - return 1 - } -} - -# Detect the IP for the master. Note that on GKE, we don't know the name of the -# master, so KUBE_MASTER is not set. -# -# Assumed vars: -# ZONE -# CLUSTER_NAME -# Vars set: -# KUBE_MASTER_IP -function detect-master() { - echo "... in gke:detect-master()" >&2 - detect-project >&2 - KUBE_MASTER_IP=$("${GCLOUD}" ${CMD_GROUP:-} container clusters describe \ - ${SCOPE_ARGS[@]} --format='value(endpoint)' \ - "${CLUSTER_NAME}") -} - -# Assumed vars: -# none -# Vars set: -# NODE_NAMES -function detect-nodes() { - echo "... in gke:detect-nodes()" >&2 - detect-node-names -} - -# Detect minions created in the minion group -# -# Note that for zonal clusters this will only select nodes in the same zone as the -# cluster, meaning that it won't include all nodes in a multi-zone cluster. -# For regional clusters, this will select nodes only from arbitrarily chosen node instance group. -# -# Assumed vars: -# GCLOUD -# PROJECT -# ZONE (optional) -# REGION (optional) -# CLUSTER_NAME -# Vars set: -# NODE_NAMES -function detect-node-names { - echo "... in gke:detect-node-names()" >&2 - detect-project - detect-node-instance-groups - - NODE_NAMES=() - for group in "${NODE_INSTANCE_GROUPS[@]:-}"; do - # We can't simply use --zone "${ZONE}" as ZONE may not be set (e.g. when REGION is set). - local igm_zone=$(gcloud compute instance-groups managed list "${group}" --format='value(zone)') - NODE_NAMES+=($(gcloud compute instance-groups managed list-instances \ - "${group}" --zone "${igm_zone}" \ - --project "${PROJECT}" --format='value(instance)')) - done - echo "NODE_NAMES=${NODE_NAMES[*]:-}" -} - -# Detect instance group name generated by gke. -# -# Note that for zonal clusters the NODE_INSTANCE_GROUPS var will only have instance groups in the -# same zone as the cluster, meaning that it won't include all groups in a -# multi-zone cluster. -# For regional clusters, NODE_INSTANCE_GROUPS is set to arbitrarily chosen node instance group. -# The ALL_INSTANCE_GROUP_URLS will contain all the instance group URLs, -# which include multi-zone groups. -# -# Assumed vars: -# GCLOUD -# SCOPE_ARGS -# ZONE (optional) -# REGION (optional) -# CLUSTER_NAME -# Vars set: -# NODE_INSTANCE_GROUPS -# ALL_INSTANCE_GROUP_URLS -function detect-node-instance-groups { - echo "... in gke:detect-node-instance-groups()" >&2 - local urls=$("${GCLOUD}" ${CMD_GROUP:-} container clusters describe \ - ${SCOPE_ARGS[@]} --format='value(instanceGroupUrls)' "${CLUSTER_NAME}") - urls=(${urls//;/ }) - ALL_INSTANCE_GROUP_URLS=${urls[*]} - NODE_INSTANCE_GROUPS=() - if [[ ! -z "${ZONE:-}" ]]; then - for url in "${urls[@]:-}"; do - local igm_zone=$(expr ${url} : '.*/zones/\([a-z0-9-]*\)/') - if [[ "${igm_zone}" == "${ZONE}" ]]; then - NODE_INSTANCE_GROUPS+=("${url##*/}") - fi - done - fi - if [[ ! -z "${REGION:-}" ]]; then - NODE_INSTANCE_GROUPS+=("${urls[0]}") - fi -} - -# SSH to a node by name ($1) and run a command ($2). -# -# Assumed vars: -# GCLOUD -# ZONE -function ssh-to-node() { - echo "... in gke:ssh-to-node()" >&2 - detect-project >&2 - - local node="$1" - local cmd="$2" - # Loop until we can successfully ssh into the box - for try in {1..5}; do - if gcloud compute ssh --ssh-flag="-o LogLevel=quiet" --ssh-flag="-o ConnectTimeout=30" --project "${PROJECT}" --zone="${ZONE}" "${node}" --command "echo test > /dev/null"; then - break - fi - sleep 5 - done - # Then actually try the command. - gcloud compute ssh --ssh-flag="-o LogLevel=quiet" --ssh-flag="-o ConnectTimeout=30" --project "${PROJECT}" --zone="${ZONE}" "${node}" --command "${cmd}" -} - -# Execute after running tests to perform any required clean-up. This is called -# from hack/e2e.go. This calls kube-down, so the cluster still exists when this -# is called. -# -# Assumed vars: -# CLUSTER_NAME -# GCLOUD -# KUBE_ROOT -# ZONE -function test-teardown() { - echo "... in gke:test-teardown()" >&2 - - detect-project >&2 - - # Tear down the cluster first. - "${KUBE_ROOT}/cluster/kube-down.sh" || true - - # Then remove the firewall rules. We do it in this order because the - # time to delete a firewall is actually dependent on the number of - # instances, but we can safely delete the cluster before the firewall. - # - # NOTE: Keep in sync with names above in test-setup. - for fw in "${CLUSTER_NAME}-http-alt" "${CLUSTER_NAME}-nodeports" "${FIREWALL_SSH}"; do - if [[ -n $("${GCLOUD}" compute firewall-rules --project "${PROJECT}" describe "${fw}" --format='value(name)' 2>/dev/null || true) ]]; then - with-retry 3 "${GCLOUD}" compute firewall-rules delete "${fw}" --project="${PROJECT}" --quiet & - fi - done - - # Wait for firewall rule teardown. - kube::util::wait-for-jobs || true - - # It's unfortunate that the $FIREWALL_SSH rule and network are created in - # kube-up, but we can only really delete them in test-teardown. So much for - # symmetry. - if [[ "${KUBE_DELETE_NETWORK}" == "true" ]]; then - if [[ -n $("${GCLOUD}" compute networks --project "${PROJECT}" describe "${NETWORK}" --format='value(name)' 2>/dev/null || true) ]]; then - if ! with-retry 3 "${GCLOUD}" compute networks delete --project "${PROJECT}" --quiet "${NETWORK}"; then - echo "Failed to delete network '${NETWORK}'. Listing firewall-rules:" - "${GCLOUD}" compute firewall-rules --project "${PROJECT}" list --filter="network=${NETWORK}" - fi - fi - fi -} - -# Actually take down the cluster. This is called from test-teardown. -# -# Assumed vars: -# GCLOUD -# SCOPE_ARGS -# ZONE (optional) -# REGION (optional) -# CLUSTER_NAME -function kube-down() { - echo "... in gke:kube-down()" >&2 - detect-project >&2 - if "${GCLOUD}" ${CMD_GROUP:-} container clusters describe ${SCOPE_ARGS[@]} "${CLUSTER_NAME}" --quiet &>/dev/null; then - with-retry 3 "${GCLOUD}" ${CMD_GROUP:-} container clusters delete ${SCOPE_ARGS[@]} \ - "${CLUSTER_NAME}" --quiet - fi -} From 27e6ceed88d2aee09c77b7d37c65cadb5ae01071 Mon Sep 17 00:00:00 2001 From: Anirudh Date: Fri, 4 Aug 2017 15:03:14 -0700 Subject: [PATCH 116/183] Change default update strategy to rolling update --- pkg/apis/apps/v1beta2/defaults.go | 22 +-- pkg/apis/apps/v1beta2/defaults_test.go | 150 ++++++++++++++++++- staging/src/k8s.io/api/apps/v1beta2/types.go | 8 +- 3 files changed, 163 insertions(+), 17 deletions(-) diff --git a/pkg/apis/apps/v1beta2/defaults.go b/pkg/apis/apps/v1beta2/defaults.go index f1046b16ff5..db73c3e73ec 100644 --- a/pkg/apis/apps/v1beta2/defaults.go +++ b/pkg/apis/apps/v1beta2/defaults.go @@ -43,7 +43,7 @@ func SetDefaults_DaemonSet(obj *appsv1beta2.DaemonSet) { } updateStrategy := &obj.Spec.UpdateStrategy if updateStrategy.Type == "" { - updateStrategy.Type = appsv1beta2.OnDeleteDaemonSetStrategyType + updateStrategy.Type = appsv1beta2.RollingUpdateDaemonSetStrategyType } if updateStrategy.Type == appsv1beta2.RollingUpdateDaemonSetStrategyType { if updateStrategy.RollingUpdate == nil { @@ -68,8 +68,19 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) { } if obj.Spec.UpdateStrategy.Type == "" { - obj.Spec.UpdateStrategy.Type = appsv1beta2.OnDeleteStatefulSetStrategyType + obj.Spec.UpdateStrategy.Type = appsv1beta2.RollingUpdateStatefulSetStrategyType + + // UpdateStrategy.RollingUpdate will take default values below. + obj.Spec.UpdateStrategy.RollingUpdate = &appsv1beta2.RollingUpdateStatefulSetStrategy{} } + + if obj.Spec.UpdateStrategy.Type == appsv1beta2.RollingUpdateStatefulSetStrategyType && + obj.Spec.UpdateStrategy.RollingUpdate != nil && + obj.Spec.UpdateStrategy.RollingUpdate.Partition == nil { + obj.Spec.UpdateStrategy.RollingUpdate.Partition = new(int32) + *obj.Spec.UpdateStrategy.RollingUpdate.Partition = 0 + } + labels := obj.Spec.Template.Labels if labels != nil { if obj.Spec.Selector == nil { @@ -89,13 +100,6 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) { obj.Spec.RevisionHistoryLimit = new(int32) *obj.Spec.RevisionHistoryLimit = 10 } - if obj.Spec.UpdateStrategy.Type == appsv1beta2.RollingUpdateStatefulSetStrategyType && - obj.Spec.UpdateStrategy.RollingUpdate != nil && - obj.Spec.UpdateStrategy.RollingUpdate.Partition == nil { - obj.Spec.UpdateStrategy.RollingUpdate.Partition = new(int32) - *obj.Spec.UpdateStrategy.RollingUpdate.Partition = 0 - } - } // SetDefaults_Deployment sets additional defaults compared to its counterpart diff --git a/pkg/apis/apps/v1beta2/defaults_test.go b/pkg/apis/apps/v1beta2/defaults_test.go index d017a52688c..3a24c811b73 100644 --- a/pkg/apis/apps/v1beta2/defaults_test.go +++ b/pkg/apis/apps/v1beta2/defaults_test.go @@ -21,7 +21,6 @@ import ( "testing" appsv1beta2 "k8s.io/api/apps/v1beta2" - "k8s.io/api/core/v1" apiequality "k8s.io/apimachinery/pkg/api/equality" "k8s.io/apimachinery/pkg/api/resource" @@ -36,6 +35,7 @@ import ( func TestSetDefaultDaemonSetSpec(t *testing.T) { defaultLabels := map[string]string{"foo": "bar"} + maxUnavailable := intstr.FromInt(1) period := int64(v1.DefaultTerminationGracePeriodSeconds) defaultTemplate := v1.PodTemplateSpec{ Spec: v1.PodSpec{ @@ -78,7 +78,10 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { }, Template: defaultTemplate, UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ - Type: appsv1beta2.OnDeleteDaemonSetStrategyType, + Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, + RollingUpdate: &appsv1beta2.RollingUpdateDaemonSet{ + MaxUnavailable: &maxUnavailable, + }, }, RevisionHistoryLimit: newInt32(10), }, @@ -108,14 +111,24 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { }, Template: defaultTemplate, UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ - Type: appsv1beta2.OnDeleteDaemonSetStrategyType, + Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, + RollingUpdate: &appsv1beta2.RollingUpdateDaemonSet{ + MaxUnavailable: &maxUnavailable, + }, }, RevisionHistoryLimit: newInt32(1), }, }, }, - { // Update strategy. - original: &appsv1beta2.DaemonSet{}, + { // OnDeleteDaemonSetStrategyType update strategy. + original: &appsv1beta2.DaemonSet{ + Spec: appsv1beta2.DaemonSetSpec{ + Template: templateNoLabel, + UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ + Type: appsv1beta2.OnDeleteDaemonSetStrategyType, + }, + }, + }, expected: &appsv1beta2.DaemonSet{ Spec: appsv1beta2.DaemonSetSpec{ Template: templateNoLabel, @@ -134,7 +147,10 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { Spec: appsv1beta2.DaemonSetSpec{ Template: templateNoLabel, UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ - Type: appsv1beta2.OnDeleteDaemonSetStrategyType, + Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, + RollingUpdate: &appsv1beta2.RollingUpdateDaemonSet{ + MaxUnavailable: &maxUnavailable, + }, }, RevisionHistoryLimit: newInt32(10), }, @@ -157,6 +173,128 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { } } +func TestSetDefaultStatefulSet(t *testing.T) { + defaultLabels := map[string]string{"foo": "bar"} + var defaultPartition int32 = 0 + var defaultReplicas int32 = 1 + + period := int64(v1.DefaultTerminationGracePeriodSeconds) + defaultTemplate := v1.PodTemplateSpec{ + Spec: v1.PodSpec{ + DNSPolicy: v1.DNSClusterFirst, + RestartPolicy: v1.RestartPolicyAlways, + SecurityContext: &v1.PodSecurityContext{}, + TerminationGracePeriodSeconds: &period, + SchedulerName: api.DefaultSchedulerName, + }, + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + } + + tests := []struct { + original *appsv1beta2.StatefulSet + expected *appsv1beta2.StatefulSet + }{ + { // Selector, labels and default update strategy + original: &appsv1beta2.StatefulSet{ + Spec: appsv1beta2.StatefulSetSpec{ + Template: defaultTemplate, + }, + }, + expected: &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + Spec: appsv1beta2.StatefulSetSpec{ + Selector: &metav1.LabelSelector{ + MatchLabels: defaultLabels, + }, + Replicas: &defaultReplicas, + Template: defaultTemplate, + PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement, + UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{ + Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, + RollingUpdate: &appsv1beta2.RollingUpdateStatefulSetStrategy{ + Partition: &defaultPartition, + }, + }, + RevisionHistoryLimit: newInt32(10), + }, + }, + }, + { // Alternate update strategy + original: &appsv1beta2.StatefulSet{ + Spec: appsv1beta2.StatefulSetSpec{ + Template: defaultTemplate, + UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{ + Type: appsv1beta2.OnDeleteStatefulSetStrategyType, + }, + }, + }, + expected: &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + Spec: appsv1beta2.StatefulSetSpec{ + Selector: &metav1.LabelSelector{ + MatchLabels: defaultLabels, + }, + Replicas: &defaultReplicas, + Template: defaultTemplate, + PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement, + UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{ + Type: appsv1beta2.OnDeleteStatefulSetStrategyType, + }, + RevisionHistoryLimit: newInt32(10), + }, + }, + }, + { // Parallel pod management policy. + original: &appsv1beta2.StatefulSet{ + Spec: appsv1beta2.StatefulSetSpec{ + Template: defaultTemplate, + PodManagementPolicy: appsv1beta2.ParallelPodManagement, + }, + }, + expected: &appsv1beta2.StatefulSet{ + ObjectMeta: metav1.ObjectMeta{ + Labels: defaultLabels, + }, + Spec: appsv1beta2.StatefulSetSpec{ + Selector: &metav1.LabelSelector{ + MatchLabels: defaultLabels, + }, + Replicas: &defaultReplicas, + Template: defaultTemplate, + PodManagementPolicy: appsv1beta2.ParallelPodManagement, + UpdateStrategy: appsv1beta2.StatefulSetUpdateStrategy{ + Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, + RollingUpdate: &appsv1beta2.RollingUpdateStatefulSetStrategy{ + Partition: &defaultPartition, + }, + }, + RevisionHistoryLimit: newInt32(10), + }, + }, + }, + } + + for i, test := range tests { + original := test.original + expected := test.expected + obj2 := roundTrip(t, runtime.Object(original)) + got, ok := obj2.(*appsv1beta2.StatefulSet) + if !ok { + t.Errorf("(%d) unexpected object: %v", i, got) + t.FailNow() + } + if !apiequality.Semantic.DeepEqual(got.Spec, expected.Spec) { + t.Errorf("(%d) got different than expected\ngot:\n\t%+v\nexpected:\n\t%+v", i, got.Spec, expected.Spec) + } + } +} + func TestSetDefaultDeployment(t *testing.T) { defaultIntOrString := intstr.FromString("25%") differentIntOrString := intstr.FromInt(5) diff --git a/staging/src/k8s.io/api/apps/v1beta2/types.go b/staging/src/k8s.io/api/apps/v1beta2/types.go index 84244b46408..f9ab8cc0b7c 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types.go @@ -122,8 +122,11 @@ const ( // necessary to perform the update for the indicated strategy. type StatefulSetUpdateStrategy struct { // Type indicates the type of the StatefulSetUpdateStrategy. + // Default is RollingUpdate. + // +optional Type StatefulSetUpdateStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type,casttype=StatefulSetStrategyType"` // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. + // +optional RollingUpdate *RollingUpdateStatefulSetStrategy `json:"rollingUpdate,omitempty" protobuf:"bytes,2,opt,name=rollingUpdate"` } @@ -151,6 +154,8 @@ const ( type RollingUpdateStatefulSetStrategy struct { // Partition indicates the ordinal at which the StatefulSet should be // partitioned. + // Default value is 0. + // +optional Partition *int32 `json:"partition,omitempty" protobuf:"varint,1,opt,name=partition"` } @@ -504,8 +509,7 @@ type DeploymentList struct { // WIP: This is not ready to be used and we plan to make breaking changes to it. type DaemonSetUpdateStrategy struct { - // Type of daemon set update. Can be "RollingUpdate" or "OnDelete". - // Default is OnDelete. + // Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. // +optional Type DaemonSetUpdateStrategyType `json:"type,omitempty" protobuf:"bytes,1,opt,name=type"` From 37091c3744fd3631ef207e7887d7edf68e390cee Mon Sep 17 00:00:00 2001 From: Anirudh Date: Tue, 8 Aug 2017 15:17:48 -0700 Subject: [PATCH 117/183] Autogenerated --- api/openapi-spec/swagger.json | 6 +++--- api/swagger-spec/apps_v1beta2.json | 6 +++--- docs/api-reference/apps/v1beta2/definitions.html | 6 +++--- staging/src/k8s.io/api/apps/v1beta2/generated.proto | 8 ++++++-- .../api/apps/v1beta2/types_swagger_doc_generated.go | 6 +++--- 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 9684eb25e16..dec73507f49 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -51838,7 +51838,7 @@ "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateDaemonSet" }, "type": { - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.", + "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", "type": "string" } } @@ -52287,7 +52287,7 @@ "description": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", "properties": { "partition": { - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned.", + "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", "type": "integer", "format": "int32" } @@ -52517,7 +52517,7 @@ "$ref": "#/definitions/io.k8s.api.apps.v1beta2.RollingUpdateStatefulSetStrategy" }, "type": { - "description": "Type indicates the type of the StatefulSetUpdateStrategy.", + "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", "type": "string" } } diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json index 0dd7d9ae7e4..5cd57c21291 100644 --- a/api/swagger-spec/apps_v1beta2.json +++ b/api/swagger-spec/apps_v1beta2.json @@ -7046,7 +7046,7 @@ "properties": { "type": { "type": "string", - "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete." + "description": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate." }, "rollingUpdate": { "$ref": "v1beta2.RollingUpdateDaemonSet", @@ -7836,7 +7836,7 @@ "properties": { "type": { "type": "string", - "description": "Type indicates the type of the StatefulSetUpdateStrategy." + "description": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate." }, "rollingUpdate": { "$ref": "v1beta2.RollingUpdateStatefulSetStrategy", @@ -7851,7 +7851,7 @@ "partition": { "type": "integer", "format": "int32", - "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned." + "description": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0." } } }, diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html index e358e64569d..1ee4d12e7ff 100755 --- a/docs/api-reference/apps/v1beta2/definitions.html +++ b/docs/api-reference/apps/v1beta2/definitions.html @@ -2191,7 +2191,7 @@ When an object is created, the system will populate this list with the current s

    partition

    -

    Partition indicates the ordinal at which the StatefulSet should be partitioned.

    +

    Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.

    false

    integer (int32)

    @@ -7105,7 +7105,7 @@ Examples:

    type

    -

    Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is OnDelete.

    +

    Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate.

    false

    string

    @@ -7335,7 +7335,7 @@ Examples:

    type

    -

    Type indicates the type of the StatefulSetUpdateStrategy.

    +

    Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.

    false

    string

    diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.proto b/staging/src/k8s.io/api/apps/v1beta2/generated.proto index 1bc58370a3a..54fb7f56c58 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.proto +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.proto @@ -157,8 +157,7 @@ message DaemonSetStatus { // WIP: This is not ready to be used and we plan to make breaking changes to it. message DaemonSetUpdateStrategy { - // Type of daemon set update. Can be "RollingUpdate" or "OnDelete". - // Default is OnDelete. + // Type of daemon set update. Can be "RollingUpdate" or "OnDelete". Default is RollingUpdate. // +optional optional string type = 1; @@ -521,6 +520,8 @@ message RollingUpdateDeployment { message RollingUpdateStatefulSetStrategy { // Partition indicates the ordinal at which the StatefulSet should be // partitioned. + // Default value is 0. + // +optional optional int32 partition = 1; } @@ -698,9 +699,12 @@ message StatefulSetStatus { // necessary to perform the update for the indicated strategy. message StatefulSetUpdateStrategy { // Type indicates the type of the StatefulSetUpdateStrategy. + // Default is RollingUpdate. + // +optional optional string type = 1; // RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType. + // +optional optional RollingUpdateStatefulSetStrategy rollingUpdate = 2; } diff --git a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go index c6f97f6c719..2f65eee83ad 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -81,7 +81,7 @@ func (DaemonSetStatus) SwaggerDoc() map[string]string { var map_DaemonSetUpdateStrategy = map[string]string{ "": "WIP: This is not ready to be used and we plan to make breaking changes to it.", - "type": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is OnDelete.", + "type": "Type of daemon set update. Can be \"RollingUpdate\" or \"OnDelete\". Default is RollingUpdate.", "rollingUpdate": "Rolling update config params. Present only if type = \"RollingUpdate\".", } @@ -268,7 +268,7 @@ func (RollingUpdateDeployment) SwaggerDoc() map[string]string { var map_RollingUpdateStatefulSetStrategy = map[string]string{ "": "WIP: This is not ready to be used and we plan to make breaking changes to it. RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType.", - "partition": "Partition indicates the ordinal at which the StatefulSet should be partitioned.", + "partition": "Partition indicates the ordinal at which the StatefulSet should be partitioned. Default value is 0.", } func (RollingUpdateStatefulSetStrategy) SwaggerDoc() map[string]string { @@ -357,7 +357,7 @@ func (StatefulSetStatus) SwaggerDoc() map[string]string { var map_StatefulSetUpdateStrategy = map[string]string{ "": "WIP: This is not ready to be used and we plan to make breaking changes to it. StatefulSetUpdateStrategy indicates the strategy that the StatefulSet controller will use to perform updates. It includes any additional parameters necessary to perform the update for the indicated strategy.", - "type": "Type indicates the type of the StatefulSetUpdateStrategy.", + "type": "Type indicates the type of the StatefulSetUpdateStrategy. Default is RollingUpdate.", "rollingUpdate": "RollingUpdate is used to communicate parameters when Type is RollingUpdateStatefulSetStrategyType.", } From 27854fa0d8c6fe2194bd3296acb06ef44113ff15 Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Tue, 8 Aug 2017 12:55:57 -0700 Subject: [PATCH 118/183] Break up node controller into packages This change does NO actual code changes other than moving constituent parts into packages. --- cmd/kube-controller-manager/app/BUILD | 1 + cmd/kube-controller-manager/app/core.go | 3 +- pkg/controller/node/BUILD | 41 ++--- pkg/controller/node/ipam/BUILD | 68 ++++++++ pkg/controller/node/ipam/OWNERS | 7 + .../node/{ => ipam}/cidr_allocator.go | 6 +- .../node/{ => ipam}/cidr_allocator_test.go | 8 +- pkg/controller/node/ipam/cidrset/BUILD | 36 +++++ .../node/{ => ipam/cidrset}/cidr_set.go | 28 ++-- .../node/{ => ipam/cidrset}/cidr_set_test.go | 54 +++---- .../node/{ => ipam}/cloud_cidr_allocator.go | 7 +- .../node/{ => ipam}/range_allocator.go | 27 ++-- pkg/controller/node/node_controller.go | 151 +++++++++++------- pkg/controller/node/nodecontroller_test.go | 19 ++- pkg/controller/node/scheduler/BUILD | 69 ++++++++ .../{ => scheduler}/rate_limited_queue.go | 13 +- .../rate_limited_queue_test.go | 2 +- .../node/{ => scheduler}/taint_controller.go | 4 +- .../{ => scheduler}/taint_controller_test.go | 2 +- .../node/{ => scheduler}/timed_workers.go | 2 +- .../{ => scheduler}/timed_workers_test.go | 2 +- pkg/controller/node/util/BUILD | 48 ++++++ .../node/{ => util}/controller_utils.go | 107 ++++--------- 23 files changed, 469 insertions(+), 236 deletions(-) create mode 100644 pkg/controller/node/ipam/BUILD create mode 100755 pkg/controller/node/ipam/OWNERS rename pkg/controller/node/{ => ipam}/cidr_allocator.go (88%) rename pkg/controller/node/{ => ipam}/cidr_allocator_test.go (98%) create mode 100644 pkg/controller/node/ipam/cidrset/BUILD rename pkg/controller/node/{ => ipam/cidrset}/cidr_set.go (88%) rename pkg/controller/node/{ => ipam/cidrset}/cidr_set_test.go (94%) rename pkg/controller/node/{ => ipam}/cloud_cidr_allocator.go (95%) rename pkg/controller/node/{ => ipam}/range_allocator.go (92%) create mode 100644 pkg/controller/node/scheduler/BUILD rename pkg/controller/node/{ => scheduler}/rate_limited_queue.go (94%) rename pkg/controller/node/{ => scheduler}/rate_limited_queue_test.go (99%) rename pkg/controller/node/{ => scheduler}/taint_controller.go (99%) rename pkg/controller/node/{ => scheduler}/taint_controller_test.go (99%) rename pkg/controller/node/{ => scheduler}/timed_workers.go (99%) rename pkg/controller/node/{ => scheduler}/timed_workers_test.go (99%) create mode 100644 pkg/controller/node/util/BUILD rename pkg/controller/node/{ => util}/controller_utils.go (76%) diff --git a/cmd/kube-controller-manager/app/BUILD b/cmd/kube-controller-manager/app/BUILD index 9c3b6ef699a..ec464becb36 100644 --- a/cmd/kube-controller-manager/app/BUILD +++ b/cmd/kube-controller-manager/app/BUILD @@ -63,6 +63,7 @@ go_library( "//pkg/controller/job:go_default_library", "//pkg/controller/namespace:go_default_library", "//pkg/controller/node:go_default_library", + "//pkg/controller/node/ipam:go_default_library", "//pkg/controller/podautoscaler:go_default_library", "//pkg/controller/podautoscaler/metrics:go_default_library", "//pkg/controller/podgc:go_default_library", diff --git a/cmd/kube-controller-manager/app/core.go b/cmd/kube-controller-manager/app/core.go index 5dd170140af..4aca6e0e614 100644 --- a/cmd/kube-controller-manager/app/core.go +++ b/cmd/kube-controller-manager/app/core.go @@ -42,6 +42,7 @@ import ( "k8s.io/kubernetes/pkg/controller/garbagecollector" namespacecontroller "k8s.io/kubernetes/pkg/controller/namespace" nodecontroller "k8s.io/kubernetes/pkg/controller/node" + "k8s.io/kubernetes/pkg/controller/node/ipam" "k8s.io/kubernetes/pkg/controller/podgc" replicationcontroller "k8s.io/kubernetes/pkg/controller/replication" resourcequotacontroller "k8s.io/kubernetes/pkg/controller/resourcequota" @@ -108,7 +109,7 @@ func startNodeController(ctx ControllerContext) (bool, error) { serviceCIDR, int(ctx.Options.NodeCIDRMaskSize), ctx.Options.AllocateNodeCIDRs, - nodecontroller.CIDRAllocatorType(ctx.Options.CIDRAllocatorType), + ipam.CIDRAllocatorType(ctx.Options.CIDRAllocatorType), ctx.Options.EnableTaintManager, utilfeature.DefaultFeatureGate.Enabled(features.TaintBasedEvictions), ) diff --git a/pkg/controller/node/BUILD b/pkg/controller/node/BUILD index d580fdf4cd1..958b1a2264b 100644 --- a/pkg/controller/node/BUILD +++ b/pkg/controller/node/BUILD @@ -10,25 +10,20 @@ load( go_test( name = "go_default_test", - srcs = [ - "cidr_allocator_test.go", - "cidr_set_test.go", - "nodecontroller_test.go", - "rate_limited_queue_test.go", - "taint_controller_test.go", - "timed_workers_test.go", - ], + srcs = ["nodecontroller_test.go"], library = ":go_default_library", tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", "//pkg/controller:go_default_library", + "//pkg/controller/node/ipam:go_default_library", + "//pkg/controller/node/scheduler:go_default_library", + "//pkg/controller/node/util:go_default_library", "//pkg/controller/testutil:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/util/node:go_default_library", "//pkg/util/taints:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -36,7 +31,6 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/informers:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", @@ -44,35 +38,24 @@ go_test( "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", - "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", ], ) go_library( name = "go_default_library", srcs = [ - "cidr_allocator.go", - "cidr_set.go", - "cloud_cidr_allocator.go", - "controller_utils.go", "doc.go", "metrics.go", "node_controller.go", - "range_allocator.go", - "rate_limited_queue.go", - "taint_controller.go", - "timed_workers.go", ], tags = ["automanaged"], deps = [ - "//pkg/api:go_default_library", - "//pkg/api/helper:go_default_library", - "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/node:go_default_library", "//pkg/cloudprovider:go_default_library", - "//pkg/cloudprovider/providers/gce:go_default_library", "//pkg/controller:go_default_library", - "//pkg/kubelet/util/format:go_default_library", + "//pkg/controller/node/ipam:go_default_library", + "//pkg/controller/node/scheduler:go_default_library", + "//pkg/controller/node/util:go_default_library", "//pkg/util/metrics:go_default_library", "//pkg/util/node:go_default_library", "//pkg/util/system:go_default_library", @@ -88,9 +71,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", "//vendor/k8s.io/client-go/informers/extensions/v1beta1:go_default_library", @@ -102,7 +83,6 @@ go_library( "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - "//vendor/k8s.io/client-go/util/workqueue:go_default_library", ], ) @@ -115,6 +95,11 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//pkg/controller/node/ipam:all-srcs", + "//pkg/controller/node/scheduler:all-srcs", + "//pkg/controller/node/util:all-srcs", + ], tags = ["automanaged"], ) diff --git a/pkg/controller/node/ipam/BUILD b/pkg/controller/node/ipam/BUILD new file mode 100644 index 00000000000..cd39c6d0924 --- /dev/null +++ b/pkg/controller/node/ipam/BUILD @@ -0,0 +1,68 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["cidr_allocator_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/controller/testutil:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = [ + "cidr_allocator.go", + "cloud_cidr_allocator.go", + "range_allocator.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/cloudprovider:go_default_library", + "//pkg/cloudprovider/providers/gce:go_default_library", + "//pkg/controller/node/ipam/cidrset:go_default_library", + "//pkg/controller/node/util:go_default_library", + "//pkg/util/node:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/tools/record:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//pkg/controller/node/ipam/cidrset:all-srcs", + ], + tags = ["automanaged"], +) diff --git a/pkg/controller/node/ipam/OWNERS b/pkg/controller/node/ipam/OWNERS new file mode 100755 index 00000000000..8164b49a07a --- /dev/null +++ b/pkg/controller/node/ipam/OWNERS @@ -0,0 +1,7 @@ +approvers: +- bowei +- dnardo +reviewers: +- bowei +- dnardo +- freehan diff --git a/pkg/controller/node/cidr_allocator.go b/pkg/controller/node/ipam/cidr_allocator.go similarity index 88% rename from pkg/controller/node/cidr_allocator.go rename to pkg/controller/node/ipam/cidr_allocator.go index cfc30c7b28f..d4c44a6c930 100644 --- a/pkg/controller/node/cidr_allocator.go +++ b/pkg/controller/node/ipam/cidr_allocator.go @@ -14,18 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package ipam import ( - "errors" "net" v1 "k8s.io/api/core/v1" ) -var errCIDRRangeNoCIDRsRemaining = errors.New( - "CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range") - type nodeAndCIDR struct { cidr *net.IPNet nodeName string diff --git a/pkg/controller/node/cidr_allocator_test.go b/pkg/controller/node/ipam/cidr_allocator_test.go similarity index 98% rename from pkg/controller/node/cidr_allocator_test.go rename to pkg/controller/node/ipam/cidr_allocator_test.go index 7d2ffb69d1d..3f911a899b3 100644 --- a/pkg/controller/node/cidr_allocator_test.go +++ b/pkg/controller/node/ipam/cidr_allocator_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package ipam import ( "net" @@ -143,7 +143,7 @@ func TestAllocateOrOccupyCIDRSuccess(t *testing.T) { return } rangeAllocator.recorder = testutil.NewFakeRecorder() - if err = rangeAllocator.cidrs.occupy(cidr); err != nil { + if err = rangeAllocator.cidrs.Occupy(cidr); err != nil { t.Fatalf("%v: unexpected error when occupying CIDR %v: %v", tc.description, allocated, err) } } @@ -225,7 +225,7 @@ func TestAllocateOrOccupyCIDRFailure(t *testing.T) { return } rangeAllocator.recorder = testutil.NewFakeRecorder() - err = rangeAllocator.cidrs.occupy(cidr) + err = rangeAllocator.cidrs.Occupy(cidr) if err != nil { t.Fatalf("%v: unexpected error when occupying CIDR %v: %v", tc.description, allocated, err) } @@ -337,7 +337,7 @@ func TestReleaseCIDRSuccess(t *testing.T) { return } rangeAllocator.recorder = testutil.NewFakeRecorder() - err = rangeAllocator.cidrs.occupy(cidr) + err = rangeAllocator.cidrs.Occupy(cidr) if err != nil { t.Fatalf("%v: unexpected error when occupying CIDR %v: %v", tc.description, allocated, err) } diff --git a/pkg/controller/node/ipam/cidrset/BUILD b/pkg/controller/node/ipam/cidrset/BUILD new file mode 100644 index 00000000000..1a0e4cc5794 --- /dev/null +++ b/pkg/controller/node/ipam/cidrset/BUILD @@ -0,0 +1,36 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["cidr_set_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = ["//vendor/github.com/golang/glog:go_default_library"], +) + +go_library( + name = "go_default_library", + srcs = ["cidr_set.go"], + tags = ["automanaged"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/controller/node/cidr_set.go b/pkg/controller/node/ipam/cidrset/cidr_set.go similarity index 88% rename from pkg/controller/node/cidr_set.go rename to pkg/controller/node/ipam/cidrset/cidr_set.go index 6da63d4281d..158427cacc7 100644 --- a/pkg/controller/node/cidr_set.go +++ b/pkg/controller/node/ipam/cidrset/cidr_set.go @@ -14,17 +14,18 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package cidrset import ( "encoding/binary" + "errors" "fmt" "math/big" "net" "sync" ) -type cidrSet struct { +type CidrSet struct { sync.Mutex clusterCIDR *net.IPNet clusterIP net.IP @@ -44,7 +45,12 @@ const ( maxPrefixLength = 64 ) -func newCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) *cidrSet { +var ( + ErrCIDRRangeNoCIDRsRemaining = errors.New( + "CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range") +) + +func NewCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) *CidrSet { clusterMask := clusterCIDR.Mask clusterMaskSize, _ := clusterMask.Size() @@ -54,7 +60,7 @@ func newCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) *cidrSet { } else { maxCIDRs = 1 << uint32(subNetMaskSize-clusterMaskSize) } - return &cidrSet{ + return &CidrSet{ clusterCIDR: clusterCIDR, clusterIP: clusterCIDR.IP, clusterMaskSize: clusterMaskSize, @@ -63,7 +69,7 @@ func newCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) *cidrSet { } } -func (s *cidrSet) indexToCIDRBlock(index int) *net.IPNet { +func (s *CidrSet) indexToCIDRBlock(index int) *net.IPNet { var ip []byte var mask int switch /*v4 or v6*/ { @@ -91,7 +97,7 @@ func (s *cidrSet) indexToCIDRBlock(index int) *net.IPNet { } } -func (s *cidrSet) allocateNext() (*net.IPNet, error) { +func (s *CidrSet) AllocateNext() (*net.IPNet, error) { s.Lock() defer s.Unlock() @@ -104,7 +110,7 @@ func (s *cidrSet) allocateNext() (*net.IPNet, error) { } } if nextUnused == -1 { - return nil, errCIDRRangeNoCIDRsRemaining + return nil, ErrCIDRRangeNoCIDRsRemaining } s.nextCandidate = (nextUnused + 1) % s.maxCIDRs @@ -113,7 +119,7 @@ func (s *cidrSet) allocateNext() (*net.IPNet, error) { return s.indexToCIDRBlock(nextUnused), nil } -func (s *cidrSet) getBeginingAndEndIndices(cidr *net.IPNet) (begin, end int, err error) { +func (s *CidrSet) getBeginingAndEndIndices(cidr *net.IPNet) (begin, end int, err error) { begin, end = 0, s.maxCIDRs-1 cidrMask := cidr.Mask maskSize, _ := cidrMask.Size() @@ -160,7 +166,7 @@ func (s *cidrSet) getBeginingAndEndIndices(cidr *net.IPNet) (begin, end int, err return begin, end, nil } -func (s *cidrSet) release(cidr *net.IPNet) error { +func (s *CidrSet) Release(cidr *net.IPNet) error { begin, end, err := s.getBeginingAndEndIndices(cidr) if err != nil { return err @@ -173,7 +179,7 @@ func (s *cidrSet) release(cidr *net.IPNet) error { return nil } -func (s *cidrSet) occupy(cidr *net.IPNet) (err error) { +func (s *CidrSet) Occupy(cidr *net.IPNet) (err error) { begin, end, err := s.getBeginingAndEndIndices(cidr) if err != nil { return err @@ -188,7 +194,7 @@ func (s *cidrSet) occupy(cidr *net.IPNet) (err error) { return nil } -func (s *cidrSet) getIndexForCIDR(cidr *net.IPNet) (int, error) { +func (s *CidrSet) getIndexForCIDR(cidr *net.IPNet) (int, error) { var cidrIndex uint32 if cidr.IP.To4() != nil { cidrIndex = (binary.BigEndian.Uint32(s.clusterIP) ^ binary.BigEndian.Uint32(cidr.IP.To4())) >> uint32(32-s.subNetMaskSize) diff --git a/pkg/controller/node/cidr_set_test.go b/pkg/controller/node/ipam/cidrset/cidr_set_test.go similarity index 94% rename from pkg/controller/node/cidr_set_test.go rename to pkg/controller/node/ipam/cidrset/cidr_set_test.go index 6c9f6c54d87..3efa7f2116a 100644 --- a/pkg/controller/node/cidr_set_test.go +++ b/pkg/controller/node/ipam/cidrset/cidr_set_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package cidrset import ( "math/big" @@ -47,9 +47,9 @@ func TestCIDRSetFullyAllocated(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := newCIDRSet(clusterCIDR, tc.subNetMaskSize) + a := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) - p, err := a.allocateNext() + p, err := a.AllocateNext() if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) } @@ -58,14 +58,14 @@ func TestCIDRSetFullyAllocated(t *testing.T) { p.String(), tc.expectedCIDR, tc.description) } - _, err = a.allocateNext() + _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) } - a.release(p) + a.Release(p) - p, err = a.allocateNext() + p, err = a.AllocateNext() if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) } @@ -73,7 +73,7 @@ func TestCIDRSetFullyAllocated(t *testing.T) { t.Fatalf("unexpected allocated cidr: %v, expecting %v for %v", p.String(), tc.expectedCIDR, tc.description) } - _, err = a.allocateNext() + _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) } @@ -133,7 +133,7 @@ func TestIndexToCIDRBlock(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := newCIDRSet(clusterCIDR, tc.subnetMaskSize) + a := NewCIDRSet(clusterCIDR, tc.subnetMaskSize) cidr := a.indexToCIDRBlock(tc.index) if cidr.String() != tc.CIDRBlock { t.Fatalf("error for %v index %d %s", tc.description, tc.index, cidr.String()) @@ -157,12 +157,12 @@ func TestCIDRSet_RandomishAllocation(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := newCIDRSet(clusterCIDR, 24) + a := NewCIDRSet(clusterCIDR, 24) // allocate all the CIDRs var cidrs []*net.IPNet for i := 0; i < 256; i++ { - if c, err := a.allocateNext(); err == nil { + if c, err := a.AllocateNext(); err == nil { cidrs = append(cidrs, c) } else { t.Fatalf("unexpected error: %v for %v", err, tc.description) @@ -170,25 +170,25 @@ func TestCIDRSet_RandomishAllocation(t *testing.T) { } var err error - _, err = a.allocateNext() + _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) } // release them all for i := 0; i < len(cidrs); i++ { - a.release(cidrs[i]) + a.Release(cidrs[i]) } // allocate the CIDRs again var rcidrs []*net.IPNet for i := 0; i < 256; i++ { - if c, err := a.allocateNext(); err == nil { + if c, err := a.AllocateNext(); err == nil { rcidrs = append(rcidrs, c) } else { t.Fatalf("unexpected error: %d, %v for %v", i, err, tc.description) } } - _, err = a.allocateNext() + _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) } @@ -215,14 +215,14 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := newCIDRSet(clusterCIDR, 24) + a := NewCIDRSet(clusterCIDR, 24) // allocate all the CIDRs var cidrs []*net.IPNet var num_cidrs = 256 for i := 0; i < num_cidrs; i++ { - if c, err := a.allocateNext(); err == nil { + if c, err := a.AllocateNext(); err == nil { cidrs = append(cidrs, c) } else { t.Fatalf("unexpected error: %v for %v", err, tc.description) @@ -230,29 +230,29 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { } var err error - _, err = a.allocateNext() + _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) } // release them all for i := 0; i < len(cidrs); i++ { - a.release(cidrs[i]) + a.Release(cidrs[i]) } // occupy the last 128 CIDRs for i := num_cidrs / 2; i < num_cidrs; i++ { - a.occupy(cidrs[i]) + a.Occupy(cidrs[i]) } // allocate the first 128 CIDRs again var rcidrs []*net.IPNet for i := 0; i < num_cidrs/2; i++ { - if c, err := a.allocateNext(); err == nil { + if c, err := a.AllocateNext(); err == nil { rcidrs = append(rcidrs, c) } else { t.Fatalf("unexpected error: %d, %v for %v", i, err, tc.description) } } - _, err = a.allocateNext() + _, err = a.AllocateNext() if err == nil { t.Fatalf("expected error because of fully-allocated range for %v", tc.description) } @@ -394,7 +394,7 @@ func TestGetBitforCIDR(t *testing.T) { t.Fatalf("unexpected error: %v for %v", err, tc.description) } - cs := newCIDRSet(clusterCIDR, tc.subNetMaskSize) + cs := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) _, subnetCIDR, err := net.ParseCIDR(tc.subNetCIDRStr) if err != nil { @@ -562,14 +562,14 @@ func TestOccupy(t *testing.T) { t.Fatalf("unexpected error: %v for %v", err, tc.description) } - cs := newCIDRSet(clusterCIDR, tc.subNetMaskSize) + cs := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) _, subnetCIDR, err := net.ParseCIDR(tc.subNetCIDRStr) if err != nil { t.Fatalf("unexpected error: %v for %v", err, tc.description) } - err = cs.occupy(subnetCIDR) + err = cs.Occupy(subnetCIDR) if err == nil && tc.expectErr { t.Errorf("expected error but got none for %v", tc.description) continue @@ -629,9 +629,9 @@ func TestCIDRSetv6(t *testing.T) { } for _, tc := range cases { _, clusterCIDR, _ := net.ParseCIDR(tc.clusterCIDRStr) - a := newCIDRSet(clusterCIDR, tc.subNetMaskSize) + a := NewCIDRSet(clusterCIDR, tc.subNetMaskSize) - p, err := a.allocateNext() + p, err := a.AllocateNext() if err == nil && tc.expectErr { t.Errorf("expected error but got none for %v", tc.description) continue @@ -645,7 +645,7 @@ func TestCIDRSetv6(t *testing.T) { t.Fatalf("unexpected allocated cidr: %s for %v", p.String(), tc.description) } } - p2, err := a.allocateNext() + p2, err := a.AllocateNext() if !tc.expectErr { if p2.String() != tc.expectedCIDR2 { t.Fatalf("unexpected allocated cidr: %s for %v", p2.String(), tc.description) diff --git a/pkg/controller/node/cloud_cidr_allocator.go b/pkg/controller/node/ipam/cloud_cidr_allocator.go similarity index 95% rename from pkg/controller/node/cloud_cidr_allocator.go rename to pkg/controller/node/ipam/cloud_cidr_allocator.go index 85b4c9e8439..5ea78f739f5 100644 --- a/pkg/controller/node/cloud_cidr_allocator.go +++ b/pkg/controller/node/ipam/cloud_cidr_allocator.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package ipam import ( "fmt" @@ -32,6 +32,7 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" + "k8s.io/kubernetes/pkg/controller/node/util" nodeutil "k8s.io/kubernetes/pkg/util/node" ) @@ -79,12 +80,12 @@ func (ca *cloudCIDRAllocator) AllocateOrOccupyCIDR(node *v1.Node) error { cidrs, err := ca.cloud.AliasRanges(types.NodeName(node.Name)) if err != nil { - recordNodeStatusChange(ca.recorder, node, "CIDRNotAvailable") + util.RecordNodeStatusChange(ca.recorder, node, "CIDRNotAvailable") return fmt.Errorf("failed to allocate cidr: %v", err) } if len(cidrs) == 0 { - recordNodeStatusChange(ca.recorder, node, "CIDRNotAvailable") + util.RecordNodeStatusChange(ca.recorder, node, "CIDRNotAvailable") glog.V(2).Infof("Node %v has no CIDRs", node.Name) return fmt.Errorf("failed to allocate cidr (none exist)") } diff --git a/pkg/controller/node/range_allocator.go b/pkg/controller/node/ipam/range_allocator.go similarity index 92% rename from pkg/controller/node/range_allocator.go rename to pkg/controller/node/ipam/range_allocator.go index f5910417e4a..0f150a761a8 100644 --- a/pkg/controller/node/range_allocator.go +++ b/pkg/controller/node/ipam/range_allocator.go @@ -14,13 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package ipam import ( "fmt" "net" "sync" + "github.com/golang/glog" + "k8s.io/api/core/v1" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -31,7 +33,8 @@ import ( v1core "k8s.io/client-go/kubernetes/typed/core/v1" "k8s.io/client-go/tools/record" - "github.com/golang/glog" + "k8s.io/kubernetes/pkg/controller/node/ipam/cidrset" + "k8s.io/kubernetes/pkg/controller/node/util" ) // TODO: figure out the good setting for those constants. @@ -45,7 +48,7 @@ const ( type rangeAllocator struct { client clientset.Interface - cidrs *cidrSet + cidrs *cidrset.CidrSet clusterCIDR *net.IPNet maxCIDRs int // Channel that is used to pass updating Nodes with assigned CIDRs to the background @@ -74,7 +77,7 @@ func NewCIDRRangeAllocator(client clientset.Interface, clusterCIDR *net.IPNet, s ra := &rangeAllocator{ client: client, - cidrs: newCIDRSet(clusterCIDR, subNetMaskSize), + cidrs: cidrset.NewCIDRSet(clusterCIDR, subNetMaskSize), clusterCIDR: clusterCIDR, nodeCIDRUpdateChannel: make(chan nodeAndCIDR, cidrUpdateQueueSize), recorder: recorder, @@ -150,7 +153,7 @@ func (r *rangeAllocator) occupyCIDR(node *v1.Node) error { if err != nil { return fmt.Errorf("failed to parse node %s, CIDR %s", node.Name, node.Spec.PodCIDR) } - if err := r.cidrs.occupy(podCIDR); err != nil { + if err := r.cidrs.Occupy(podCIDR); err != nil { return fmt.Errorf("failed to mark cidr as occupied: %v", err) } return nil @@ -169,10 +172,10 @@ func (r *rangeAllocator) AllocateOrOccupyCIDR(node *v1.Node) error { if node.Spec.PodCIDR != "" { return r.occupyCIDR(node) } - podCIDR, err := r.cidrs.allocateNext() + podCIDR, err := r.cidrs.AllocateNext() if err != nil { r.removeNodeFromProcessing(node.Name) - recordNodeStatusChange(r.recorder, node, "CIDRNotAvailable") + util.RecordNodeStatusChange(r.recorder, node, "CIDRNotAvailable") return fmt.Errorf("failed to allocate cidr: %v", err) } @@ -194,7 +197,7 @@ func (r *rangeAllocator) ReleaseCIDR(node *v1.Node) error { } glog.V(4).Infof("release CIDR %s", node.Spec.PodCIDR) - if err = r.cidrs.release(podCIDR); err != nil { + if err = r.cidrs.Release(podCIDR); err != nil { return fmt.Errorf("Error when releasing CIDR %v: %v", node.Spec.PodCIDR, err) } return err @@ -212,7 +215,7 @@ func (r *rangeAllocator) filterOutServiceRange(serviceCIDR *net.IPNet) { return } - if err := r.cidrs.occupy(serviceCIDR); err != nil { + if err := r.cidrs.Occupy(serviceCIDR); err != nil { glog.Errorf("Error filtering out service cidr %v: %v", serviceCIDR, err) } } @@ -232,7 +235,7 @@ func (r *rangeAllocator) updateCIDRAllocation(data nodeAndCIDR) error { if node.Spec.PodCIDR != "" { glog.Errorf("Node %v already has allocated CIDR %v. Releasing assigned one if different.", node.Name, node.Spec.PodCIDR) if node.Spec.PodCIDR != data.cidr.String() { - if err := r.cidrs.release(data.cidr); err != nil { + if err := r.cidrs.Release(data.cidr); err != nil { glog.Errorf("Error when releasing CIDR %v", data.cidr.String()) } } @@ -246,13 +249,13 @@ func (r *rangeAllocator) updateCIDRAllocation(data nodeAndCIDR) error { } } if err != nil { - recordNodeStatusChange(r.recorder, node, "CIDRAssignmentFailed") + util.RecordNodeStatusChange(r.recorder, node, "CIDRAssignmentFailed") // We accept the fact that we may leek CIDRs here. This is safer than releasing // them in case when we don't know if request went through. // NodeController restart will return all falsely allocated CIDRs to the pool. if !apierrors.IsServerTimeout(err) { glog.Errorf("CIDR assignment for node %v failed: %v. Releasing allocated CIDR", data.nodeName, err) - if releaseErr := r.cidrs.release(data.cidr); releaseErr != nil { + if releaseErr := r.cidrs.Release(data.cidr); releaseErr != nil { glog.Errorf("Error releasing allocated CIDR for node %v: %v", data.nodeName, releaseErr) } } diff --git a/pkg/controller/node/node_controller.go b/pkg/controller/node/node_controller.go index 5a2fa6f89f0..f2725a832c2 100644 --- a/pkg/controller/node/node_controller.go +++ b/pkg/controller/node/node_controller.go @@ -17,12 +17,13 @@ limitations under the License. package node import ( - "errors" "fmt" "net" "sync" "time" + "github.com/golang/glog" + apiequality "k8s.io/apimachinery/pkg/api/equality" apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -47,14 +48,15 @@ import ( v1node "k8s.io/kubernetes/pkg/api/v1/node" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller" + "k8s.io/kubernetes/pkg/controller/node/ipam" + "k8s.io/kubernetes/pkg/controller/node/scheduler" + "k8s.io/kubernetes/pkg/controller/node/util" "k8s.io/kubernetes/pkg/util/metrics" utilnode "k8s.io/kubernetes/pkg/util/node" "k8s.io/kubernetes/pkg/util/system" taintutils "k8s.io/kubernetes/pkg/util/taints" utilversion "k8s.io/kubernetes/pkg/util/version" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" - - "github.com/golang/glog" ) func init() { @@ -63,13 +65,8 @@ func init() { } var ( - ErrCloudInstance = errors.New("cloud provider doesn't support instances.") gracefulDeletionVersion = utilversion.MustParseSemantic("v1.1.0") - // The minimum kubelet version for which the nodecontroller - // can safely flip pod.Status to NotReady. - podStatusReconciliationVersion = utilversion.MustParseSemantic("v1.2.0") - UnreachableTaintTemplate = &v1.Taint{ Key: algorithm.TaintNodeUnreachable, Effect: v1.TaintEffectNoExecute, @@ -82,12 +79,6 @@ var ( ) const ( - // nodeStatusUpdateRetry controls the number of retries of writing NodeStatus update. - nodeStatusUpdateRetry = 5 - // controls how often NodeController will try to evict Pods from non-responsive Nodes. - nodeEvictionPeriod = 100 * time.Millisecond - // Burst value for all eviction rate limiters - evictionRateLimiterBurst = 1 // The amount of time the nodecontroller polls on the list nodes endpoint. apiserverStartupGracePeriod = 10 * time.Minute // The amount of time the nodecontroller should sleep between retrying NodeStatus updates @@ -111,7 +102,7 @@ type nodeStatusData struct { type NodeController struct { allocateNodeCIDRs bool - allocatorType CIDRAllocatorType + allocatorType ipam.CIDRAllocatorType cloud cloudprovider.Interface clusterCIDR *net.IPNet @@ -150,9 +141,9 @@ type NodeController struct { // Lock to access evictor workers evictorLock sync.Mutex // workers that evicts pods from unresponsive nodes. - zonePodEvictor map[string]*RateLimitedTimedQueue + zonePodEvictor map[string]*scheduler.RateLimitedTimedQueue // workers that are responsible for tainting nodes. - zoneNoExecuteTainer map[string]*RateLimitedTimedQueue + zoneNoExecuteTainer map[string]*scheduler.RateLimitedTimedQueue podEvictionTimeout time.Duration // The maximum duration before a pod evicted from a node can be forcefully terminated. maximumGracePeriod time.Duration @@ -166,9 +157,9 @@ type NodeController struct { podInformerSynced cache.InformerSynced - cidrAllocator CIDRAllocator + cidrAllocator ipam.CIDRAllocator - taintManager *NoExecuteTaintManager + taintManager *scheduler.NoExecuteTaintManager forcefullyDeletePod func(*v1.Pod) error nodeExistsInCloudProvider func(types.NodeName) (bool, error) @@ -213,7 +204,7 @@ func NewNodeController( serviceCIDR *net.IPNet, nodeCIDRMaskSize int, allocateNodeCIDRs bool, - allocatorType CIDRAllocatorType, + allocatorType ipam.CIDRAllocatorType, runTaintManager bool, useTaintBasedEvictions bool) (*NodeController, error) { eventBroadcaster := record.NewBroadcaster() @@ -247,8 +238,8 @@ func NewNodeController( recorder: recorder, podEvictionTimeout: podEvictionTimeout, maximumGracePeriod: 5 * time.Minute, - zonePodEvictor: make(map[string]*RateLimitedTimedQueue), - zoneNoExecuteTainer: make(map[string]*RateLimitedTimedQueue), + zonePodEvictor: make(map[string]*scheduler.RateLimitedTimedQueue), + zoneNoExecuteTainer: make(map[string]*scheduler.RateLimitedTimedQueue), nodeStatusMap: make(map[string]nodeStatusData), nodeMonitorGracePeriod: nodeMonitorGracePeriod, nodeMonitorPeriod: nodeMonitorPeriod, @@ -259,8 +250,8 @@ func NewNodeController( serviceCIDR: serviceCIDR, allocateNodeCIDRs: allocateNodeCIDRs, allocatorType: allocatorType, - forcefullyDeletePod: func(p *v1.Pod) error { return forcefullyDeletePod(kubeClient, p) }, - nodeExistsInCloudProvider: func(nodeName types.NodeName) (bool, error) { return nodeExistsInCloudProvider(cloud, nodeName) }, + forcefullyDeletePod: func(p *v1.Pod) error { return util.ForcefullyDeletePod(kubeClient, p) }, + nodeExistsInCloudProvider: func(nodeName types.NodeName) (bool, error) { return util.NodeExistsInCloudProvider(cloud, nodeName) }, evictionLimiterQPS: evictionLimiterQPS, secondaryEvictionLimiterQPS: secondaryEvictionLimiterQPS, largeClusterThreshold: largeClusterThreshold, @@ -334,11 +325,11 @@ func NewNodeController( } switch nc.allocatorType { - case RangeAllocatorType: - nc.cidrAllocator, err = NewCIDRRangeAllocator( + case ipam.RangeAllocatorType: + nc.cidrAllocator, err = ipam.NewCIDRRangeAllocator( kubeClient, clusterCIDR, serviceCIDR, nodeCIDRMaskSize, nodeList) - case CloudAllocatorType: - nc.cidrAllocator, err = NewCloudCIDRAllocator(kubeClient, cloud) + case ipam.CloudAllocatorType: + nc.cidrAllocator, err = ipam.NewCloudCIDRAllocator(kubeClient, cloud) default: return nil, fmt.Errorf("Invalid CIDR allocator type: %v", nc.allocatorType) } @@ -348,8 +339,8 @@ func NewNodeController( } nodeInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: createAddNodeHandler(nc.cidrAllocator.AllocateOrOccupyCIDR), - UpdateFunc: createUpdateNodeHandler(func(_, newNode *v1.Node) error { + AddFunc: util.CreateAddNodeHandler(nc.cidrAllocator.AllocateOrOccupyCIDR), + UpdateFunc: util.CreateUpdateNodeHandler(func(_, newNode *v1.Node) error { // If the PodCIDR is not empty we either: // - already processed a Node that already had a CIDR after NC restarted // (cidr is marked as used), @@ -374,26 +365,26 @@ func NewNodeController( } return nil }), - DeleteFunc: createDeleteNodeHandler(nc.cidrAllocator.ReleaseCIDR), + DeleteFunc: util.CreateDeleteNodeHandler(nc.cidrAllocator.ReleaseCIDR), }) } if nc.runTaintManager { nodeInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ - AddFunc: createAddNodeHandler(func(node *v1.Node) error { + AddFunc: util.CreateAddNodeHandler(func(node *v1.Node) error { nc.taintManager.NodeUpdated(nil, node) return nil }), - UpdateFunc: createUpdateNodeHandler(func(oldNode, newNode *v1.Node) error { + UpdateFunc: util.CreateUpdateNodeHandler(func(oldNode, newNode *v1.Node) error { nc.taintManager.NodeUpdated(oldNode, newNode) return nil }), - DeleteFunc: createDeleteNodeHandler(func(node *v1.Node) error { + DeleteFunc: util.CreateDeleteNodeHandler(func(node *v1.Node) error { nc.taintManager.NodeUpdated(node, nil) return nil }), }) - nc.taintManager = NewNoExecuteTaintManager(kubeClient) + nc.taintManager = scheduler.NewNoExecuteTaintManager(kubeClient) } nc.nodeLister = nodeInformer.Lister() @@ -410,7 +401,7 @@ func (nc *NodeController) doEvictionPass() { defer nc.evictorLock.Unlock() for k := range nc.zonePodEvictor { // Function should return 'false' and a time after which it should be retried, or 'true' if it shouldn't (it succeeded). - nc.zonePodEvictor[k].Try(func(value TimedValue) (bool, time.Duration) { + nc.zonePodEvictor[k].Try(func(value scheduler.TimedValue) (bool, time.Duration) { node, err := nc.nodeLister.Get(value.Value) if apierrors.IsNotFound(err) { glog.Warningf("Node %v no longer present in nodeLister!", value.Value) @@ -421,7 +412,7 @@ func (nc *NodeController) doEvictionPass() { EvictionsNumber.WithLabelValues(zone).Inc() } nodeUid, _ := value.UID.(string) - remaining, err := deletePods(nc.kubeClient, nc.recorder, value.Value, nodeUid, nc.daemonSetStore) + remaining, err := util.DeletePods(nc.kubeClient, nc.recorder, value.Value, nodeUid, nc.daemonSetStore) if err != nil { utilruntime.HandleError(fmt.Errorf("unable to evict node %q: %v", value.Value, err)) return false, 0 @@ -439,7 +430,7 @@ func (nc *NodeController) doNoExecuteTaintingPass() { defer nc.evictorLock.Unlock() for k := range nc.zoneNoExecuteTainer { // Function should return 'false' and a time after which it should be retried, or 'true' if it shouldn't (it succeeded). - nc.zoneNoExecuteTainer[k].Try(func(value TimedValue) (bool, time.Duration) { + nc.zoneNoExecuteTainer[k].Try(func(value scheduler.TimedValue) (bool, time.Duration) { node, err := nc.nodeLister.Get(value.Value) if apierrors.IsNotFound(err) { glog.Warningf("Node %v no longer present in nodeLister!", value.Value) @@ -468,7 +459,7 @@ func (nc *NodeController) doNoExecuteTaintingPass() { return true, 0 } - return swapNodeControllerTaint(nc.kubeClient, &taintToAdd, &oppositeTaint, node), 0 + return util.SwapNodeControllerTaint(nc.kubeClient, &taintToAdd, &oppositeTaint, node), 0 }) } } @@ -498,12 +489,12 @@ func (nc *NodeController) Run(stopCh <-chan struct{}) { if nc.useTaintBasedEvictions { // Handling taint based evictions. Because we don't want a dedicated logic in TaintManager for NC-originated // taints and we normally don't rate limit evictions caused by taints, we need to rate limit adding taints. - go wait.Until(nc.doNoExecuteTaintingPass, nodeEvictionPeriod, wait.NeverStop) + go wait.Until(nc.doNoExecuteTaintingPass, scheduler.NodeEvictionPeriod, wait.NeverStop) } else { // Managing eviction of nodes: // When we delete pods off a node, if the node was not empty at the time we then // queue an eviction watcher. If we hit an error, retry deletion. - go wait.Until(nc.doEvictionPass, nodeEvictionPeriod, wait.NeverStop) + go wait.Until(nc.doEvictionPass, scheduler.NodeEvictionPeriod, wait.NeverStop) } <-stopCh @@ -516,12 +507,12 @@ func (nc *NodeController) addPodEvictorForNewZone(node *v1.Node) { nc.zoneStates[zone] = stateInitial if !nc.useTaintBasedEvictions { nc.zonePodEvictor[zone] = - NewRateLimitedTimedQueue( - flowcontrol.NewTokenBucketRateLimiter(nc.evictionLimiterQPS, evictionRateLimiterBurst)) + scheduler.NewRateLimitedTimedQueue( + flowcontrol.NewTokenBucketRateLimiter(nc.evictionLimiterQPS, scheduler.EvictionRateLimiterBurst)) } else { nc.zoneNoExecuteTainer[zone] = - NewRateLimitedTimedQueue( - flowcontrol.NewTokenBucketRateLimiter(nc.evictionLimiterQPS, evictionRateLimiterBurst)) + scheduler.NewRateLimitedTimedQueue( + flowcontrol.NewTokenBucketRateLimiter(nc.evictionLimiterQPS, scheduler.EvictionRateLimiterBurst)) } // Init the metric for the new zone. glog.Infof("Initializing eviction metric for zone: %v", zone) @@ -547,7 +538,7 @@ func (nc *NodeController) monitorNodeStatus() error { for i := range added { glog.V(1).Infof("NodeController observed a new Node: %#v", added[i].Name) - recordNodeEvent(nc.recorder, added[i].Name, string(added[i].UID), v1.EventTypeNormal, "RegisteredNode", fmt.Sprintf("Registered Node %v in NodeController", added[i].Name)) + util.RecordNodeEvent(nc.recorder, added[i].Name, string(added[i].UID), v1.EventTypeNormal, "RegisteredNode", fmt.Sprintf("Registered Node %v in NodeController", added[i].Name)) nc.knownNodeSet[added[i].Name] = added[i] nc.addPodEvictorForNewZone(added[i]) if nc.useTaintBasedEvictions { @@ -559,7 +550,7 @@ func (nc *NodeController) monitorNodeStatus() error { for i := range deleted { glog.V(1).Infof("NodeController observed a Node deletion: %v", deleted[i].Name) - recordNodeEvent(nc.recorder, deleted[i].Name, string(deleted[i].UID), v1.EventTypeNormal, "RemovingNode", fmt.Sprintf("Removing Node %v from NodeController", deleted[i].Name)) + util.RecordNodeEvent(nc.recorder, deleted[i].Name, string(deleted[i].UID), v1.EventTypeNormal, "RemovingNode", fmt.Sprintf("Removing Node %v from NodeController", deleted[i].Name)) delete(nc.knownNodeSet, deleted[i].Name) } @@ -574,7 +565,7 @@ func (nc *NodeController) monitorNodeStatus() error { continue } node := nodeCopy.(*v1.Node) - if err := wait.PollImmediate(retrySleepTime, retrySleepTime*nodeStatusUpdateRetry, func() (bool, error) { + if err := wait.PollImmediate(retrySleepTime, retrySleepTime*scheduler.NodeStatusUpdateRetry, func() (bool, error) { gracePeriod, observedReadyCondition, currentReadyCondition, err = nc.tryUpdateNodeStatus(node) if err == nil { return true, nil @@ -605,7 +596,7 @@ func (nc *NodeController) monitorNodeStatus() error { // We want to update the taint straight away if Node is already tainted with the UnreachableTaint if taintutils.TaintExists(node.Spec.Taints, UnreachableTaintTemplate) { taintToAdd := *NotReadyTaintTemplate - if !swapNodeControllerTaint(nc.kubeClient, &taintToAdd, UnreachableTaintTemplate, node) { + if !util.SwapNodeControllerTaint(nc.kubeClient, &taintToAdd, UnreachableTaintTemplate, node) { glog.Errorf("Failed to instantly swap UnreachableTaint to NotReadyTaint. Will try again in the next cycle.") } } else if nc.markNodeForTainting(node) { @@ -632,7 +623,7 @@ func (nc *NodeController) monitorNodeStatus() error { // We want to update the taint straight away if Node is already tainted with the UnreachableTaint if taintutils.TaintExists(node.Spec.Taints, NotReadyTaintTemplate) { taintToAdd := *UnreachableTaintTemplate - if !swapNodeControllerTaint(nc.kubeClient, &taintToAdd, NotReadyTaintTemplate, node) { + if !util.SwapNodeControllerTaint(nc.kubeClient, &taintToAdd, NotReadyTaintTemplate, node) { glog.Errorf("Failed to instantly swap UnreachableTaint to NotReadyTaint. Will try again in the next cycle.") } } else if nc.markNodeForTainting(node) { @@ -672,8 +663,8 @@ func (nc *NodeController) monitorNodeStatus() error { // Report node event. if currentReadyCondition.Status != v1.ConditionTrue && observedReadyCondition.Status == v1.ConditionTrue { - recordNodeStatusChange(nc.recorder, node, "NodeNotReady") - if err = markAllPodsNotReady(nc.kubeClient, node); err != nil { + util.RecordNodeStatusChange(nc.recorder, node, "NodeNotReady") + if err = util.MarkAllPodsNotReady(nc.kubeClient, node); err != nil { utilruntime.HandleError(fmt.Errorf("Unable to mark all pods NotReady on node %v: %v", node.Name, err)) } } @@ -688,13 +679,13 @@ func (nc *NodeController) monitorNodeStatus() error { } if !exists { glog.V(2).Infof("Deleting node (no longer present in cloud provider): %s", node.Name) - recordNodeEvent(nc.recorder, node.Name, string(node.UID), v1.EventTypeNormal, "DeletingNode", fmt.Sprintf("Deleting Node %v because it's not present according to cloud provider", node.Name)) + util.RecordNodeEvent(nc.recorder, node.Name, string(node.UID), v1.EventTypeNormal, "DeletingNode", fmt.Sprintf("Deleting Node %v because it's not present according to cloud provider", node.Name)) go func(nodeName string) { defer utilruntime.HandleCrash() // Kubelet is not reporting and Cloud Provider says node // is gone. Delete it without worrying about grace // periods. - if err := forcefullyDeleteNode(nc.kubeClient, nodeName); err != nil { + if err := util.ForcefullyDeleteNode(nc.kubeClient, nodeName); err != nil { glog.Errorf("Unable to forcefully delete node %q: %v", nodeName, err) } }(node.Name) @@ -1122,3 +1113,55 @@ func (nc *NodeController) ComputeZoneState(nodeReadyConditions []*v1.NodeConditi return notReadyNodes, stateNormal } } + +// maybeDeleteTerminatingPod non-gracefully deletes pods that are terminating +// that should not be gracefully terminated. +func (nc *NodeController) maybeDeleteTerminatingPod(obj interface{}) { + pod, ok := obj.(*v1.Pod) + if !ok { + tombstone, ok := obj.(cache.DeletedFinalStateUnknown) + if !ok { + glog.Errorf("Couldn't get object from tombstone %#v", obj) + return + } + pod, ok = tombstone.Obj.(*v1.Pod) + if !ok { + glog.Errorf("Tombstone contained object that is not a Pod %#v", obj) + return + } + } + + // consider only terminating pods + if pod.DeletionTimestamp == nil { + return + } + + node, err := nc.nodeLister.Get(pod.Spec.NodeName) + // if there is no such node, do nothing and let the podGC clean it up. + if apierrors.IsNotFound(err) { + return + } + if err != nil { + // this can only happen if the Store.KeyFunc has a problem creating + // a key for the pod. If it happens once, it will happen again so + // don't bother requeuing the pod. + utilruntime.HandleError(err) + return + } + + // delete terminating pods that have been scheduled on + // nodes that do not support graceful termination + // TODO(mikedanese): this can be removed when we no longer + // guarantee backwards compatibility of master API to kubelets with + // versions less than 1.1.0 + v, err := utilversion.ParseSemantic(node.Status.NodeInfo.KubeletVersion) + if err != nil { + glog.V(0).Infof("Couldn't parse version %q of node: %v", node.Status.NodeInfo.KubeletVersion, err) + utilruntime.HandleError(nc.forcefullyDeletePod(pod)) + return + } + if v.LessThan(gracefulDeletionVersion) { + utilruntime.HandleError(nc.forcefullyDeletePod(pod)) + return + } +} diff --git a/pkg/controller/node/nodecontroller_test.go b/pkg/controller/node/nodecontroller_test.go index e3782631786..33fcb911f04 100644 --- a/pkg/controller/node/nodecontroller_test.go +++ b/pkg/controller/node/nodecontroller_test.go @@ -39,6 +39,9 @@ import ( "k8s.io/kubernetes/pkg/cloudprovider" fakecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/fake" "k8s.io/kubernetes/pkg/controller" + "k8s.io/kubernetes/pkg/controller/node/ipam" + "k8s.io/kubernetes/pkg/controller/node/scheduler" + "k8s.io/kubernetes/pkg/controller/node/util" "k8s.io/kubernetes/pkg/controller/testutil" kubeletapis "k8s.io/kubernetes/pkg/kubelet/apis" "k8s.io/kubernetes/pkg/util/node" @@ -103,7 +106,7 @@ func NewNodeControllerFromClient( serviceCIDR, nodeCIDRMaskSize, allocateNodeCIDRs, - RangeAllocatorType, + ipam.RangeAllocatorType, useTaints, useTaints, ) @@ -637,9 +640,9 @@ func TestMonitorNodeStatusEvictPods(t *testing.T) { zones := testutil.GetZones(item.fakeNodeHandler) for _, zone := range zones { if _, ok := nodeController.zonePodEvictor[zone]; ok { - nodeController.zonePodEvictor[zone].Try(func(value TimedValue) (bool, time.Duration) { + nodeController.zonePodEvictor[zone].Try(func(value scheduler.TimedValue) (bool, time.Duration) { nodeUid, _ := value.UID.(string) - deletePods(item.fakeNodeHandler, nodeController.recorder, value.Value, nodeUid, nodeController.daemonSetInformer.Lister()) + util.DeletePods(item.fakeNodeHandler, nodeController.recorder, value.Value, nodeUid, nodeController.daemonSetInformer.Lister()) return true, 0 }) } else { @@ -782,9 +785,9 @@ func TestPodStatusChange(t *testing.T) { } zones := testutil.GetZones(item.fakeNodeHandler) for _, zone := range zones { - nodeController.zonePodEvictor[zone].Try(func(value TimedValue) (bool, time.Duration) { + nodeController.zonePodEvictor[zone].Try(func(value scheduler.TimedValue) (bool, time.Duration) { nodeUid, _ := value.UID.(string) - deletePods(item.fakeNodeHandler, nodeController.recorder, value.Value, nodeUid, nodeController.daemonSetStore) + util.DeletePods(item.fakeNodeHandler, nodeController.recorder, value.Value, nodeUid, nodeController.daemonSetStore) return true, 0 }) } @@ -1337,9 +1340,9 @@ func (nc *nodeController) doEviction(fakeNodeHandler *testutil.FakeNodeHandler) var podEvicted bool zones := testutil.GetZones(fakeNodeHandler) for _, zone := range zones { - nc.zonePodEvictor[zone].Try(func(value TimedValue) (bool, time.Duration) { + nc.zonePodEvictor[zone].Try(func(value scheduler.TimedValue) (bool, time.Duration) { uid, _ := value.UID.(string) - deletePods(fakeNodeHandler, nc.recorder, value.Value, uid, nc.daemonSetStore) + util.DeletePods(fakeNodeHandler, nc.recorder, value.Value, uid, nc.daemonSetStore) return true, 0 }) } @@ -2310,7 +2313,7 @@ func TestCheckNodeKubeletVersionParsing(t *testing.T) { }, }, } - isOutdated := nodeRunningOutdatedKubelet(n) + isOutdated := util.NodeRunningOutdatedKubelet(n) if ov.outdated != isOutdated { t.Errorf("Version %v doesn't match test expectation. Expected outdated %v got %v", n.Status.NodeInfo.KubeletVersion, ov.outdated, isOutdated) } else { diff --git a/pkg/controller/node/scheduler/BUILD b/pkg/controller/node/scheduler/BUILD new file mode 100644 index 00000000000..017c5d5dbb5 --- /dev/null +++ b/pkg/controller/node/scheduler/BUILD @@ -0,0 +1,69 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = [ + "rate_limited_queue_test.go", + "taint_controller_test.go", + "timed_workers_test.go", + ], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/controller/testutil:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + "//vendor/k8s.io/client-go/testing:go_default_library", + "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = [ + "rate_limited_queue.go", + "taint_controller.go", + "timed_workers.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/api/helper:go_default_library", + "//pkg/api/v1/helper:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + "//vendor/k8s.io/client-go/tools/record:go_default_library", + "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", + "//vendor/k8s.io/client-go/util/workqueue:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/controller/node/rate_limited_queue.go b/pkg/controller/node/scheduler/rate_limited_queue.go similarity index 94% rename from pkg/controller/node/rate_limited_queue.go rename to pkg/controller/node/scheduler/rate_limited_queue.go index 05a1273f3d7..33848d23054 100644 --- a/pkg/controller/node/rate_limited_queue.go +++ b/pkg/controller/node/scheduler/rate_limited_queue.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package scheduler import ( "container/heap" @@ -27,6 +27,15 @@ import ( "github.com/golang/glog" ) +const ( + // nodeStatusUpdateRetry controls the number of retries of writing NodeStatus update. + NodeStatusUpdateRetry = 5 + // controls how often NodeController will try to evict Pods from non-responsive Nodes. + NodeEvictionPeriod = 100 * time.Millisecond + // Burst value for all eviction rate limiters + EvictionRateLimiterBurst = 1 +) + // TimedValue is a value that should be processed at a designated time. type TimedValue struct { Value string @@ -260,7 +269,7 @@ func (q *RateLimitedTimedQueue) SwapLimiter(newQPS float32) { if newQPS <= 0 { newLimiter = flowcontrol.NewFakeNeverRateLimiter() } else { - newLimiter = flowcontrol.NewTokenBucketRateLimiter(newQPS, evictionRateLimiterBurst) + newLimiter = flowcontrol.NewTokenBucketRateLimiter(newQPS, EvictionRateLimiterBurst) } // If we're currently waiting on limiter, we drain the new one - this is a good approach when Burst value is 1 // TODO: figure out if we need to support higher Burst values and decide on the drain logic, should we keep: diff --git a/pkg/controller/node/rate_limited_queue_test.go b/pkg/controller/node/scheduler/rate_limited_queue_test.go similarity index 99% rename from pkg/controller/node/rate_limited_queue_test.go rename to pkg/controller/node/scheduler/rate_limited_queue_test.go index 6037c32e5b1..644b6569039 100644 --- a/pkg/controller/node/rate_limited_queue_test.go +++ b/pkg/controller/node/scheduler/rate_limited_queue_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package scheduler import ( "reflect" diff --git a/pkg/controller/node/taint_controller.go b/pkg/controller/node/scheduler/taint_controller.go similarity index 99% rename from pkg/controller/node/taint_controller.go rename to pkg/controller/node/scheduler/taint_controller.go index 1603e433fff..e51f3d3609c 100644 --- a/pkg/controller/node/taint_controller.go +++ b/pkg/controller/node/scheduler/taint_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package scheduler import ( "fmt" @@ -122,7 +122,7 @@ func getPodsAssignedToNode(c clientset.Interface, nodeName string) ([]v1.Pod, er time.Sleep(100 * time.Millisecond) } if err != nil { - return []v1.Pod{}, fmt.Errorf("Failed to get Pods assigned to node %v. Skipping update.", nodeName) + return []v1.Pod{}, fmt.Errorf("failed to get Pods assigned to node %v", nodeName) } return pods.Items, nil } diff --git a/pkg/controller/node/taint_controller_test.go b/pkg/controller/node/scheduler/taint_controller_test.go similarity index 99% rename from pkg/controller/node/taint_controller_test.go rename to pkg/controller/node/scheduler/taint_controller_test.go index 6ce5eee4705..1e6a0e2d5b4 100644 --- a/pkg/controller/node/taint_controller_test.go +++ b/pkg/controller/node/scheduler/taint_controller_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package scheduler import ( "fmt" diff --git a/pkg/controller/node/timed_workers.go b/pkg/controller/node/scheduler/timed_workers.go similarity index 99% rename from pkg/controller/node/timed_workers.go rename to pkg/controller/node/scheduler/timed_workers.go index d61a63f84ec..2eef59b041b 100644 --- a/pkg/controller/node/timed_workers.go +++ b/pkg/controller/node/scheduler/timed_workers.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package scheduler import ( "sync" diff --git a/pkg/controller/node/timed_workers_test.go b/pkg/controller/node/scheduler/timed_workers_test.go similarity index 99% rename from pkg/controller/node/timed_workers_test.go rename to pkg/controller/node/scheduler/timed_workers_test.go index 08761371dba..6003b07a697 100644 --- a/pkg/controller/node/timed_workers_test.go +++ b/pkg/controller/node/scheduler/timed_workers_test.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package scheduler import ( "sync" diff --git a/pkg/controller/node/util/BUILD b/pkg/controller/node/util/BUILD new file mode 100644 index 00000000000..8db6c485c4b --- /dev/null +++ b/pkg/controller/node/util/BUILD @@ -0,0 +1,48 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["controller_utils.go"], + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/cloudprovider:go_default_library", + "//pkg/controller:go_default_library", + "//pkg/kubelet/util/format:go_default_library", + "//pkg/util/node:go_default_library", + "//pkg/util/version:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/listers/extensions/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + "//vendor/k8s.io/client-go/tools/record:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/controller/node/controller_utils.go b/pkg/controller/node/util/controller_utils.go similarity index 76% rename from pkg/controller/node/controller_utils.go rename to pkg/controller/node/util/controller_utils.go index 9b5666d5861..958b343ef89 100644 --- a/pkg/controller/node/controller_utils.go +++ b/pkg/controller/node/util/controller_utils.go @@ -14,13 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package node +package util import ( + "errors" "fmt" "strings" - "k8s.io/apimachinery/pkg/api/errors" + apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/types" @@ -44,9 +45,17 @@ import ( "github.com/golang/glog" ) -// deletePods will delete all pods from master running on given node, and return true +var ( + ErrCloudInstance = errors.New("cloud provider doesn't support instances") + + // The minimum kubelet version for which the nodecontroller + // can safely flip pod.Status to NotReady. + podStatusReconciliationVersion = utilversion.MustParseSemantic("v1.2.0") +) + +// DeletePods will delete all pods from master running on given node, and return true // if any pods were deleted, or were found pending deletion. -func deletePods(kubeClient clientset.Interface, recorder record.EventRecorder, nodeName, nodeUID string, daemonStore extensionslisters.DaemonSetLister) (bool, error) { +func DeletePods(kubeClient clientset.Interface, recorder record.EventRecorder, nodeName, nodeUID string, daemonStore extensionslisters.DaemonSetLister) (bool, error) { remaining := false selector := fields.OneTermEqualSelector(api.PodHostField, nodeName).String() options := metav1.ListOptions{FieldSelector: selector} @@ -58,7 +67,7 @@ func deletePods(kubeClient clientset.Interface, recorder record.EventRecorder, n } if len(pods.Items) > 0 { - recordNodeEvent(recorder, nodeName, nodeUID, v1.EventTypeNormal, "DeletingAllPods", fmt.Sprintf("Deleting all Pods from Node %v.", nodeName)) + RecordNodeEvent(recorder, nodeName, nodeUID, v1.EventTypeNormal, "DeletingAllPods", fmt.Sprintf("Deleting all Pods from Node %v.", nodeName)) } for _, pod := range pods.Items { @@ -68,8 +77,8 @@ func deletePods(kubeClient clientset.Interface, recorder record.EventRecorder, n } // Set reason and message in the pod object. - if _, err = setPodTerminationReason(kubeClient, &pod, nodeName); err != nil { - if errors.IsConflict(err) { + if _, err = SetPodTerminationReason(kubeClient, &pod, nodeName); err != nil { + if apierrors.IsConflict(err) { updateErrList = append(updateErrList, fmt.Errorf("update status failed for pod %q: %v", format.Pod(&pod), err)) continue @@ -100,9 +109,9 @@ func deletePods(kubeClient clientset.Interface, recorder record.EventRecorder, n return remaining, nil } -// setPodTerminationReason attempts to set a reason and message in the pod status, updates it in the apiserver, +// SetPodTerminationReason attempts to set a reason and message in the pod status, updates it in the apiserver, // and returns an error if it encounters one. -func setPodTerminationReason(kubeClient clientset.Interface, pod *v1.Pod, nodeName string) (*v1.Pod, error) { +func SetPodTerminationReason(kubeClient clientset.Interface, pod *v1.Pod, nodeName string) (*v1.Pod, error) { if pod.Status.Reason == nodepkg.NodeUnreachablePodReason { return pod, nil } @@ -118,7 +127,7 @@ func setPodTerminationReason(kubeClient clientset.Interface, pod *v1.Pod, nodeNa return updatedPod, nil } -func forcefullyDeletePod(c clientset.Interface, pod *v1.Pod) error { +func ForcefullyDeletePod(c clientset.Interface, pod *v1.Pod) error { var zero int64 glog.Infof("NodeController is force deleting Pod: %v:%v", pod.Namespace, pod.Name) err := c.Core().Pods(pod.Namespace).Delete(pod.Name, &metav1.DeleteOptions{GracePeriodSeconds: &zero}) @@ -128,75 +137,23 @@ func forcefullyDeletePod(c clientset.Interface, pod *v1.Pod) error { return err } -// forcefullyDeleteNode immediately the node. The pods on the node are cleaned +// ForcefullyDeleteNode immediately the node. The pods on the node are cleaned // up by the podGC. -func forcefullyDeleteNode(kubeClient clientset.Interface, nodeName string) error { +func ForcefullyDeleteNode(kubeClient clientset.Interface, nodeName string) error { if err := kubeClient.Core().Nodes().Delete(nodeName, nil); err != nil { return fmt.Errorf("unable to delete node %q: %v", nodeName, err) } return nil } -// maybeDeleteTerminatingPod non-gracefully deletes pods that are terminating -// that should not be gracefully terminated. -func (nc *NodeController) maybeDeleteTerminatingPod(obj interface{}) { - pod, ok := obj.(*v1.Pod) - if !ok { - tombstone, ok := obj.(cache.DeletedFinalStateUnknown) - if !ok { - glog.Errorf("Couldn't get object from tombstone %#v", obj) - return - } - pod, ok = tombstone.Obj.(*v1.Pod) - if !ok { - glog.Errorf("Tombstone contained object that is not a Pod %#v", obj) - return - } - } - - // consider only terminating pods - if pod.DeletionTimestamp == nil { - return - } - - node, err := nc.nodeLister.Get(pod.Spec.NodeName) - // if there is no such node, do nothing and let the podGC clean it up. - if errors.IsNotFound(err) { - return - } - if err != nil { - // this can only happen if the Store.KeyFunc has a problem creating - // a key for the pod. If it happens once, it will happen again so - // don't bother requeuing the pod. - utilruntime.HandleError(err) - return - } - - // delete terminating pods that have been scheduled on - // nodes that do not support graceful termination - // TODO(mikedanese): this can be removed when we no longer - // guarantee backwards compatibility of master API to kubelets with - // versions less than 1.1.0 - v, err := utilversion.ParseSemantic(node.Status.NodeInfo.KubeletVersion) - if err != nil { - glog.V(0).Infof("Couldn't parse version %q of node: %v", node.Status.NodeInfo.KubeletVersion, err) - utilruntime.HandleError(nc.forcefullyDeletePod(pod)) - return - } - if v.LessThan(gracefulDeletionVersion) { - utilruntime.HandleError(nc.forcefullyDeletePod(pod)) - return - } -} - // update ready status of all pods running on given node from master // return true if success -func markAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { +func MarkAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { // Don't set pods to NotReady if the kubelet is running a version that // doesn't understand how to correct readiness. // TODO: Remove this check when we no longer guarantee backward compatibility // with node versions < 1.2.0. - if nodeRunningOutdatedKubelet(node) { + if NodeRunningOutdatedKubelet(node) { return nil } nodeName := node.Name @@ -233,11 +190,11 @@ func markAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { return fmt.Errorf("%v", strings.Join(errMsg, "; ")) } -// nodeRunningOutdatedKubelet returns true if the kubeletVersion reported +// NodeRunningOutdatedKubelet returns true if the kubeletVersion reported // in the nodeInfo of the given node is "outdated", meaning < 1.2.0. // Older versions were inflexible and modifying pod.Status directly through // the apiserver would result in unexpected outcomes. -func nodeRunningOutdatedKubelet(node *v1.Node) bool { +func NodeRunningOutdatedKubelet(node *v1.Node) bool { v, err := utilversion.ParseSemantic(node.Status.NodeInfo.KubeletVersion) if err != nil { glog.Errorf("couldn't parse version %q of node %v", node.Status.NodeInfo.KubeletVersion, err) @@ -250,7 +207,7 @@ func nodeRunningOutdatedKubelet(node *v1.Node) bool { return false } -func nodeExistsInCloudProvider(cloud cloudprovider.Interface, nodeName types.NodeName) (bool, error) { +func NodeExistsInCloudProvider(cloud cloudprovider.Interface, nodeName types.NodeName) (bool, error) { instances, ok := cloud.Instances() if !ok { return false, fmt.Errorf("%v", ErrCloudInstance) @@ -264,7 +221,7 @@ func nodeExistsInCloudProvider(cloud cloudprovider.Interface, nodeName types.Nod return true, nil } -func recordNodeEvent(recorder record.EventRecorder, nodeName, nodeUID, eventtype, reason, event string) { +func RecordNodeEvent(recorder record.EventRecorder, nodeName, nodeUID, eventtype, reason, event string) { ref := &v1.ObjectReference{ Kind: "Node", Name: nodeName, @@ -275,7 +232,7 @@ func recordNodeEvent(recorder record.EventRecorder, nodeName, nodeUID, eventtype recorder.Eventf(ref, eventtype, reason, "Node %s event: %s", nodeName, event) } -func recordNodeStatusChange(recorder record.EventRecorder, node *v1.Node, new_status string) { +func RecordNodeStatusChange(recorder record.EventRecorder, node *v1.Node, new_status string) { ref := &v1.ObjectReference{ Kind: "Node", Name: node.Name, @@ -289,7 +246,7 @@ func recordNodeStatusChange(recorder record.EventRecorder, node *v1.Node, new_st } // Returns true in case of success and false otherwise -func swapNodeControllerTaint(kubeClient clientset.Interface, taintToAdd, taintToRemove *v1.Taint, node *v1.Node) bool { +func SwapNodeControllerTaint(kubeClient clientset.Interface, taintToAdd, taintToRemove *v1.Taint, node *v1.Node) bool { taintToAdd.TimeAdded = metav1.Now() err := controller.AddOrUpdateTaintOnNode(kubeClient, node.Name, taintToAdd) if err != nil { @@ -317,7 +274,7 @@ func swapNodeControllerTaint(kubeClient clientset.Interface, taintToAdd, taintTo return true } -func createAddNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { +func CreateAddNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { return func(originalObj interface{}) { obj, err := scheme.Scheme.DeepCopy(originalObj) if err != nil { @@ -332,7 +289,7 @@ func createAddNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { } } -func createUpdateNodeHandler(f func(oldNode, newNode *v1.Node) error) func(oldObj, newObj interface{}) { +func CreateUpdateNodeHandler(f func(oldNode, newNode *v1.Node) error) func(oldObj, newObj interface{}) { return func(origOldObj, origNewObj interface{}) { oldObj, err := scheme.Scheme.DeepCopy(origOldObj) if err != nil { @@ -353,7 +310,7 @@ func createUpdateNodeHandler(f func(oldNode, newNode *v1.Node) error) func(oldOb } } -func createDeleteNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { +func CreateDeleteNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { return func(originalObj interface{}) { obj, err := scheme.Scheme.DeepCopy(originalObj) if err != nil { From 54809de387195a06d489cf07d206e911bec0e588 Mon Sep 17 00:00:00 2001 From: Steve Kuznetsov Date: Mon, 7 Aug 2017 14:03:16 -0700 Subject: [PATCH 119/183] Rewrite staging import verifier in Go Signed-off-by: Steve Kuznetsov --- cmd/BUILD | 1 + cmd/importverifier/BUILD | 34 ++++ cmd/importverifier/importverifier.go | 268 ++++++++++++++++++++++++++ hack/staging-import-restrictions.json | 102 ++++++++++ hack/verify-staging-imports.sh | 87 ++------- 5 files changed, 417 insertions(+), 75 deletions(-) create mode 100644 cmd/importverifier/BUILD create mode 100644 cmd/importverifier/importverifier.go create mode 100644 hack/staging-import-restrictions.json diff --git a/cmd/BUILD b/cmd/BUILD index 668d665382a..a715d22ca77 100644 --- a/cmd/BUILD +++ b/cmd/BUILD @@ -24,6 +24,7 @@ filegroup( "//cmd/genyaml:all-srcs", "//cmd/gke-certificates-controller:all-srcs", "//cmd/hyperkube:all-srcs", + "//cmd/importverifier:all-srcs", "//cmd/kube-apiserver:all-srcs", "//cmd/kube-controller-manager:all-srcs", "//cmd/kube-proxy:all-srcs", diff --git a/cmd/importverifier/BUILD b/cmd/importverifier/BUILD new file mode 100644 index 00000000000..69ac54727fb --- /dev/null +++ b/cmd/importverifier/BUILD @@ -0,0 +1,34 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_binary", + "go_library", +) + +go_binary( + name = "importverifier", + library = ":go_default_library", + tags = ["automanaged"], +) + +go_library( + name = "go_default_library", + srcs = ["importverifier.go"], + tags = ["automanaged"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cmd/importverifier/importverifier.go b/cmd/importverifier/importverifier.go new file mode 100644 index 00000000000..b3188a375e4 --- /dev/null +++ b/cmd/importverifier/importverifier.go @@ -0,0 +1,268 @@ +/* +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. +*/ + +package main + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "io/ioutil" + "log" + "os" + "os/exec" + "path/filepath" + "strings" +) + +// Package is a subset of cmd/go.Package +type Package struct { + Dir string `json:",omitempty"` // directory containing package sources + ImportPath string `json:",omitempty"` // import path of package in dir + Imports []string `json:",omitempty"` // import paths used by this package + TestImports []string `json:",omitempty"` // imports from TestGoFiles + XTestImports []string `json:",omitempty"` // imports from XTestGoFiles +} + +// ImportRestriction describes a set of allowable import +// trees for a tree of source code +type ImportRestriction struct { + // BaseDir is the root of the package tree that is + // restricted by this configuration, given as a + // relative path from the root of the repository + BaseDir string `json:"baseImportPath"` + // IgnoredSubTrees are roots of sub-trees of the + // BaseDir for which we do not want to enforce + // any import restrictions whatsoever, given as + // relative paths from the root of the repository + IgnoredSubTrees []string `json:"ignoredSubTrees,omitempty"` + // AllowedImports are roots of package trees that + // are allowed to be imported from the BaseDir, + // given as paths that would be used in a Go + // import statement + AllowedImports []string `json:"allowedImports"` +} + +// ForbiddenImportsFor determines all of the forbidden +// imports for a package given the import restrictions +func (i *ImportRestriction) ForbiddenImportsFor(pkg Package) ([]string, error) { + if restricted, err := i.isRestrictedDir(pkg.Dir); err != nil { + return []string{}, err + } else if !restricted { + return []string{}, nil + } + + return i.forbiddenImportsFor(pkg), nil +} + +// isRestrictedDir determines if the source directory has +// any restrictions placed on it by this configuration. +// A path will be restricted if: +// - it falls under the base import path +// - it does not fall under any of the ignored sub-trees +func (i *ImportRestriction) isRestrictedDir(dir string) (bool, error) { + if under, err := isPathUnder(i.BaseDir, dir); err != nil { + return false, err + } else if !under { + return false, nil + } + + for _, ignored := range i.IgnoredSubTrees { + if under, err := isPathUnder(ignored, dir); err != nil { + return false, err + } else if under { + return false, nil + } + } + + return true, nil +} + +// isPathUnder determines if path is under base +func isPathUnder(base, path string) (bool, error) { + absBase, err := filepath.Abs(base) + if err != nil { + return false, err + } + absPath, err := filepath.Abs(path) + if err != nil { + return false, err + } + + relPath, err := filepath.Rel(absBase, absPath) + if err != nil { + return false, err + } + + // if path is below base, the relative path + // from base to path will not start with `../` + return !strings.HasPrefix(relPath, "."), nil +} + +// forbiddenImportsFor determines all of the forbidden +// imports for a package given the import restrictions +// and returns a deduplicated list of them +func (i *ImportRestriction) forbiddenImportsFor(pkg Package) []string { + forbiddenImportSet := map[string]struct{}{} + for _, imp := range append(pkg.Imports, append(pkg.TestImports, pkg.XTestImports...)...) { + path := extractVendorPath(imp) + if i.isForbidden(path) { + forbiddenImportSet[path] = struct{}{} + } + } + + var forbiddenImports []string + for imp := range forbiddenImportSet { + forbiddenImports = append(forbiddenImports, imp) + } + return forbiddenImports +} + +// extractVendorPath removes a vendor prefix if one exists +func extractVendorPath(path string) string { + vendorPath := "/vendor/" + if !strings.Contains(path, vendorPath) { + return path + } + + return path[strings.Index(path, vendorPath)+len(vendorPath):] +} + +// isForbidden determines if an import is forbidden, +// which is true when the import is: +// - of a package under the rootPackage +// - is not of the base import path or a sub-package of it +// - is not of an allowed path or a sub-package of one +func (i *ImportRestriction) isForbidden(imp string) bool { + importsBelowRoot := strings.HasPrefix(imp, rootPackage) + importsBelowBase := strings.HasPrefix(imp, i.BaseDir) + importsAllowed := false + for _, allowed := range i.AllowedImports { + importsAllowed = importsAllowed || strings.HasPrefix(imp, allowed) + } + + return importsBelowRoot && !importsBelowBase && !importsAllowed +} + +var rootPackage string + +func main() { + if len(os.Args) != 3 { + log.Fatalf("Usage: %s ROOT RESTRICTIONS.json", os.Args[0]) + } + + rootPackage = os.Args[1] + configFile := os.Args[2] + importRestrictions, err := loadImportRestrictions(configFile) + if err != nil { + log.Fatalf("Failed to load import restrictions: %v", err) + } + + foundForbiddenImports := false + for _, restriction := range importRestrictions { + log.Printf("Inspecting imports under %s...\n", restriction.BaseDir) + packages, err := resolvePackageTree(restriction.BaseDir) + if err != nil { + log.Fatalf("Failed to resolve package tree: %v", err) + } else if len(packages) == 0 { + log.Fatalf("Found no packages under tree %s", restriction.BaseDir) + } + + log.Printf("- validating imports for %d packages in the tree", len(packages)) + restrictionViolated := false + for _, pkg := range packages { + if forbidden, err := restriction.ForbiddenImportsFor(pkg); err != nil { + log.Fatalf("-- failed to validate imports: %v", err) + } else if len(forbidden) != 0 { + logForbiddenPackages(pkg.ImportPath, forbidden) + restrictionViolated = true + } + } + if restrictionViolated { + foundForbiddenImports = true + log.Println("- FAIL") + } else { + log.Println("- OK") + } + } + + if foundForbiddenImports { + os.Exit(1) + } +} + +func loadImportRestrictions(configFile string) ([]ImportRestriction, error) { + config, err := ioutil.ReadFile(configFile) + if err != nil { + return nil, fmt.Errorf("failed to load configuration from %s: %v", configFile, err) + } + + var importRestrictions []ImportRestriction + if err := json.Unmarshal(config, &importRestrictions); err != nil { + return nil, fmt.Errorf("failed to unmarshal from %s: %v", configFile, err) + } + + return importRestrictions, nil +} + +func resolvePackageTree(treeBase string) ([]Package, error) { + cmd := "go" + args := []string{"list", "-json", fmt.Sprintf("%s...", treeBase)} + stdout, err := exec.Command(cmd, args...).Output() + if err != nil { + var message string + if ee, ok := err.(*exec.ExitError); ok { + message = fmt.Sprintf("%v\n%v", ee, ee.Stderr) + } else { + message = fmt.Sprintf("%v", err) + } + return nil, fmt.Errorf("failed to run `%s %s`: %v", cmd, strings.Join(args, " "), message) + } + + packages, err := decodePackages(bytes.NewReader(stdout)) + if err != nil { + return nil, fmt.Errorf("failed to decode packages: %v", err) + } + + return packages, nil +} + +func decodePackages(r io.Reader) ([]Package, error) { + // `go list -json` concatenates package definitions + // instead of emitting a single valid JSON, so we + // need to stream the output to decode it into the + // data we are looking for instead of just using a + // simple JSON decoder on stdout + var packages []Package + decoder := json.NewDecoder(r) + for decoder.More() { + var pkg Package + if err := decoder.Decode(&pkg); err != nil { + return nil, fmt.Errorf("invalid package: %v", err) + } + packages = append(packages, pkg) + } + + return packages, nil +} + +func logForbiddenPackages(base string, forbidden []string) { + log.Printf("-- found forbidden imports for %s:\n", base) + for _, forbiddenPackage := range forbidden { + log.Printf("--- %s\n", forbiddenPackage) + } +} diff --git a/hack/staging-import-restrictions.json b/hack/staging-import-restrictions.json new file mode 100644 index 00000000000..3d421f24495 --- /dev/null +++ b/hack/staging-import-restrictions.json @@ -0,0 +1,102 @@ +[ + { + "baseImportPath": "./vendor/k8s.io/apimachinery/", + "allowedImports": [ + "k8s.io/apimachinery", + "k8s.io/kube-openapi" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/api/", + "allowedImports": [ + "k8s.io/api", + "k8s.io/apimachinery" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/kube-gen/", + "ignoredSubTrees": [ + "./vendor/k8s.io/kube-gen/test" + ], + "allowedImports": [ + "k8s.io/gengo", + "k8s.io/kube-gen", + "k8s.io/kube-openapi" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/kube-gen/test/", + "allowedImports": [ + "k8s.io/apimachinery", + "k8s.io/client-go", + "k8s.io/gengo", + "k8s.io/kube-gen/test", + "k8s.io/kube-openapi" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/client-go/", + "allowedImports": [ + "k8s.io/api", + "k8s.io/apimachinery", + "k8s.io/client-go" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/apiserver/", + "allowedImports": [ + "k8s.io/api", + "k8s.io/apimachinery", + "k8s.io/apiserver", + "k8s.io/client-go", + "k8s.io/kube-openapi" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/metrics/", + "allowedImports": [ + "k8s.io/api", + "k8s.io/apimachinery", + "k8s.io/client-go", + "k8s.io/metrics" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/kube-aggregator/", + "allowedImports": [ + "k8s.io/api", + "k8s.io/apimachinery", + "k8s.io/apiserver", + "k8s.io/client-go", + "k8s.io/kube-aggregator", + "k8s.io/kube-openapi" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/sample-apiserver/", + "allowedImports": [ + "k8s.io/api", + "k8s.io/apimachinery", + "k8s.io/apiserver", + "k8s.io/client-go", + "k8s.io/sample-apiserver" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/apiextensions-apiserver/", + "allowedImports": [ + "k8s.io/api", + "k8s.io/apiextensions-apiserver", + "k8s.io/apimachinery", + "k8s.io/apiserver", + "k8s.io/client-go" + ] + }, + { + "baseImportPath": "./vendor/k8s.io/kube-openapi/", + "allowedImports": [ + "k8s.io/kube-openapi", + "k8s.io/gengo" + ] + } +] \ No newline at end of file diff --git a/hack/verify-staging-imports.sh b/hack/verify-staging-imports.sh index fd9d7666a3a..30b8247e2f4 100755 --- a/hack/verify-staging-imports.sh +++ b/hack/verify-staging-imports.sh @@ -23,82 +23,19 @@ source "${KUBE_ROOT}/hack/lib/init.sh" kube::golang::setup_env -function print_forbidden_imports () { - set -o errexit # this was unset by || - local REPO="${1%%/*}" # everything in front of the / +make -C "${KUBE_ROOT}" WHAT=cmd/importverifier - # find packages with extended glob support of bash (supports inversion) - local PACKAGES=($( - shopt -s extglob; - eval ls -d -1 ./vendor/k8s.io/${1}/ - )) +# Find binary +importverifier=$(kube::util::find-binary "importverifier") - shift - local RE="" - local SEP="" - for CLAUSE in "$@"; do - RE+="${SEP}${CLAUSE}" - SEP='\|' - done - local FORBIDDEN=$( - go list -f $'{{with $package := .ImportPath}}{{range $.Imports}}{{$package}} imports {{.}}\n{{end}}{{end}}' "${PACKAGES[@]/%/...}" | - sed 's|^k8s.io/kubernetes/vendor/||;s| k8s.io/kubernetes/vendor/| |' | - grep -v " k8s.io/${REPO}" | - grep " k8s.io/" | - grep -v -e "imports \(${RE}\)" - ) - if [ -n "${FORBIDDEN}" ]; then - echo "${REPO} has a forbidden dependency:" - echo - echo "${FORBIDDEN}" | sed 's/^/ /' - echo - return 1 - fi - local TEST_FORBIDDEN=$( - go list -f $'{{with $package := .ImportPath}}{{range $.TestImports}}{{$package}} imports {{.}}\n{{end}}{{end}}' "${PACKAGES[@]/%/...}" | - sed 's|^k8s.io/kubernetes/vendor/||;s| k8s.io/kubernetes/vendor/| |' | - grep -v " k8s.io/${REPO}" | - grep " k8s.io/" | - grep -v -e "imports \(${RE}\)" - ) - if [ -n "${TEST_FORBIDDEN}" ]; then - echo "${REPO} has a forbidden dependency in test code:" - echo - echo "${TEST_FORBIDDEN}" | sed 's/^/ /' - echo - return 1 - fi - return 0 -} - -RC=0 -print_forbidden_imports apimachinery k8s.io/kube-openapi || RC=1 -print_forbidden_imports api k8s.io/apimachinery || RC=1 -print_forbidden_imports kube-gen k8s.io/apimachinery k8s.io/client-go k8s.io/gengo k8s.io/kube-openapi || RC=1 -print_forbidden_imports 'kube-gen/!(test)' k8s.io/gengo k8s.io/kube-openapi || RC=1 -print_forbidden_imports kube-gen/test k8s.io/apimachinery k8s.io/client-go || RC=1 -print_forbidden_imports client-go k8s.io/apimachinery k8s.io/api || RC=1 -print_forbidden_imports apiserver k8s.io/apimachinery k8s.io/client-go k8s.io/api k8s.io/kube-openapi || RC=1 -print_forbidden_imports metrics k8s.io/apimachinery k8s.io/client-go k8s.io/api || RC=1 -print_forbidden_imports kube-aggregator k8s.io/apimachinery k8s.io/client-go k8s.io/apiserver k8s.io/api k8s.io/kube-openapi || RC=1 -print_forbidden_imports sample-apiserver k8s.io/apimachinery k8s.io/client-go k8s.io/apiserver k8s.io/api || RC=1 -print_forbidden_imports apiextensions-apiserver k8s.io/apimachinery k8s.io/client-go k8s.io/apiserver k8s.io/api || RC=1 -print_forbidden_imports kube-openapi k8s.io/gengo || RC=1 -if [ ${RC} != 0 ]; then - exit ${RC} +if [[ ! -x "$importverifier" ]]; then + { + echo "It looks as if you don't have a compiled importverifier binary" + echo + echo "If you are running from a clone of the git repo, please run" + echo "'make WHAT=cmd/importverifier'." + } >&2 + exit 1 fi -if grep -rq '// import "k8s.io/kubernetes/' 'staging/'; then - echo 'file has "// import "k8s.io/kubernetes/"' - exit 1 -fi - -for EXAMPLE in vendor/k8s.io/client-go/examples/{in-cluster-client-configuration,out-of-cluster-client-configuration} vendor/k8s.io/apiextensions-apiserver/examples ; do - test -d "${EXAMPLE}" # make sure example is still there - if go list -f '{{ join .Deps "\n" }}' "./${EXAMPLE}/..." | sort | uniq | grep -q k8s.io/client-go/plugin; then - echo "${EXAMPLE} imports client-go plugins by default, but shouldn't." - exit 1 - fi -done - -exit 0 +"${importverifier}" "k8s.io/" "${KUBE_ROOT}/hack/staging-import-restrictions.json" \ No newline at end of file From 61c43f6468d977e56a1ba261dddd7d18a408d407 Mon Sep 17 00:00:00 2001 From: Bowei Du Date: Tue, 8 Aug 2017 17:04:50 -0700 Subject: [PATCH 120/183] golint fixes --- pkg/controller/node/ipam/cidr_allocator.go | 4 + pkg/controller/node/ipam/cidrset/cidr_set.go | 8 ++ .../node/ipam/cidrset/cidr_set_test.go | 10 +- .../node/ipam/cloud_cidr_allocator.go | 1 + .../node/scheduler/rate_limited_queue.go | 99 ++++++++++++------- .../node/scheduler/taint_controller.go | 3 +- pkg/controller/node/util/controller_utils.go | 43 +++++--- 7 files changed, 108 insertions(+), 60 deletions(-) diff --git a/pkg/controller/node/ipam/cidr_allocator.go b/pkg/controller/node/ipam/cidr_allocator.go index d4c44a6c930..e6c7f47869c 100644 --- a/pkg/controller/node/ipam/cidr_allocator.go +++ b/pkg/controller/node/ipam/cidr_allocator.go @@ -31,7 +31,11 @@ type nodeAndCIDR struct { type CIDRAllocatorType string const ( + // RangeAllocatorType is the allocator that uses an internal CIDR + // range allocator to do node CIDR range allocations. RangeAllocatorType CIDRAllocatorType = "RangeAllocator" + // CloudAllocatorType is the allocator that uses cloud platform + // support to do node CIDR range allocations. CloudAllocatorType CIDRAllocatorType = "CloudAllocator" ) diff --git a/pkg/controller/node/ipam/cidrset/cidr_set.go b/pkg/controller/node/ipam/cidrset/cidr_set.go index 158427cacc7..ce08dd8af3f 100644 --- a/pkg/controller/node/ipam/cidrset/cidr_set.go +++ b/pkg/controller/node/ipam/cidrset/cidr_set.go @@ -25,6 +25,8 @@ import ( "sync" ) +// CidrSet manages a set of CIDR ranges from which blocks of IPs can +// be allocated from. type CidrSet struct { sync.Mutex clusterCIDR *net.IPNet @@ -46,10 +48,13 @@ const ( ) var ( + // ErrCIDRRangeNoCIDRsRemaining occurs when there are no more space + // to allocate CIDR ranges. ErrCIDRRangeNoCIDRsRemaining = errors.New( "CIDR allocation failed; there are no remaining CIDRs left to allocate in the accepted range") ) +// NewCIDRSet creates a new CidrSet. func NewCIDRSet(clusterCIDR *net.IPNet, subNetMaskSize int) *CidrSet { clusterMask := clusterCIDR.Mask clusterMaskSize, _ := clusterMask.Size() @@ -97,6 +102,7 @@ func (s *CidrSet) indexToCIDRBlock(index int) *net.IPNet { } } +// AllocateNext allocates the next free CIDR range. func (s *CidrSet) AllocateNext() (*net.IPNet, error) { s.Lock() defer s.Unlock() @@ -166,6 +172,7 @@ func (s *CidrSet) getBeginingAndEndIndices(cidr *net.IPNet) (begin, end int, err return begin, end, nil } +// Release releases the given CIDR range. func (s *CidrSet) Release(cidr *net.IPNet) error { begin, end, err := s.getBeginingAndEndIndices(cidr) if err != nil { @@ -179,6 +186,7 @@ func (s *CidrSet) Release(cidr *net.IPNet) error { return nil } +// Occupy marks the given CIDR range as used. func (s *CidrSet) Occupy(cidr *net.IPNet) (err error) { begin, end, err := s.getBeginingAndEndIndices(cidr) if err != nil { diff --git a/pkg/controller/node/ipam/cidrset/cidr_set_test.go b/pkg/controller/node/ipam/cidrset/cidr_set_test.go index 3efa7f2116a..fbd9886e53d 100644 --- a/pkg/controller/node/ipam/cidrset/cidr_set_test.go +++ b/pkg/controller/node/ipam/cidrset/cidr_set_test.go @@ -219,9 +219,9 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { // allocate all the CIDRs var cidrs []*net.IPNet - var num_cidrs = 256 + var numCIDRs = 256 - for i := 0; i < num_cidrs; i++ { + for i := 0; i < numCIDRs; i++ { if c, err := a.AllocateNext(); err == nil { cidrs = append(cidrs, c) } else { @@ -239,13 +239,13 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { a.Release(cidrs[i]) } // occupy the last 128 CIDRs - for i := num_cidrs / 2; i < num_cidrs; i++ { + for i := numCIDRs / 2; i < numCIDRs; i++ { a.Occupy(cidrs[i]) } // allocate the first 128 CIDRs again var rcidrs []*net.IPNet - for i := 0; i < num_cidrs/2; i++ { + for i := 0; i < numCIDRs/2; i++ { if c, err := a.AllocateNext(); err == nil { rcidrs = append(rcidrs, c) } else { @@ -258,7 +258,7 @@ func TestCIDRSet_AllocationOccupied(t *testing.T) { } // check Occupy() work properly - for i := num_cidrs / 2; i < num_cidrs; i++ { + for i := numCIDRs / 2; i < numCIDRs; i++ { rcidrs = append(rcidrs, cidrs[i]) } if !reflect.DeepEqual(cidrs, rcidrs) { diff --git a/pkg/controller/node/ipam/cloud_cidr_allocator.go b/pkg/controller/node/ipam/cloud_cidr_allocator.go index 5ea78f739f5..9dfb9543f83 100644 --- a/pkg/controller/node/ipam/cloud_cidr_allocator.go +++ b/pkg/controller/node/ipam/cloud_cidr_allocator.go @@ -51,6 +51,7 @@ type cloudCIDRAllocator struct { var _ CIDRAllocator = (*cloudCIDRAllocator)(nil) +// NewCloudCIDRAllocator creates a new cloud CIDR allocator. func NewCloudCIDRAllocator( client clientset.Interface, cloud cloudprovider.Interface) (ca CIDRAllocator, err error) { diff --git a/pkg/controller/node/scheduler/rate_limited_queue.go b/pkg/controller/node/scheduler/rate_limited_queue.go index 33848d23054..984443ff52b 100644 --- a/pkg/controller/node/scheduler/rate_limited_queue.go +++ b/pkg/controller/node/scheduler/rate_limited_queue.go @@ -28,11 +28,14 @@ import ( ) const ( - // nodeStatusUpdateRetry controls the number of retries of writing NodeStatus update. + // NodeStatusUpdateRetry controls the number of retries of writing + // NodeStatus update. NodeStatusUpdateRetry = 5 - // controls how often NodeController will try to evict Pods from non-responsive Nodes. + // NodeEvictionPeriod controls how often NodeController will try to + // evict Pods from non-responsive Nodes. NodeEvictionPeriod = 100 * time.Millisecond - // Burst value for all eviction rate limiters + // EvictionRateLimiterBurst is the burst value for all eviction rate + // limiters EvictionRateLimiterBurst = 1 ) @@ -46,19 +49,26 @@ type TimedValue struct { } // now is used to test time -var now func() time.Time = time.Now +var now = time.Now // TimedQueue is a priority heap where the lowest ProcessAt is at the front of the queue type TimedQueue []*TimedValue -func (h TimedQueue) Len() int { return len(h) } -func (h TimedQueue) Less(i, j int) bool { return h[i].ProcessAt.Before(h[j].ProcessAt) } -func (h TimedQueue) Swap(i, j int) { h[i], h[j] = h[j], h[i] } +// Len is the length of the queue. +func (h TimedQueue) Len() int { return len(h) } +// Less returns true if queue[i] < queue[j]. +func (h TimedQueue) Less(i, j int) bool { return h[i].ProcessAt.Before(h[j].ProcessAt) } + +// Swap swaps index i and j. +func (h TimedQueue) Swap(i, j int) { h[i], h[j] = h[j], h[i] } + +// Push a new TimedValue on to the queue. func (h *TimedQueue) Push(x interface{}) { *h = append(*h, x.(*TimedValue)) } +// Pop the lowest ProcessAt item. func (h *TimedQueue) Pop() interface{} { old := *h n := len(old) @@ -67,16 +77,17 @@ func (h *TimedQueue) Pop() interface{} { return x } -// A FIFO queue which additionally guarantees that any element can be added only once until -// it is removed. +// UniqueQueue is a FIFO queue which additionally guarantees that any +// element can be added only once until it is removed. type UniqueQueue struct { lock sync.Mutex queue TimedQueue set sets.String } -// Adds a new value to the queue if it wasn't added before, or was explicitly removed by the -// Remove call. Returns true if new value was added. +// Add a new value to the queue if it wasn't added before, or was +// explicitly removed by the Remove call. Returns true if new value +// was added. func (q *UniqueQueue) Add(value TimedValue) bool { q.lock.Lock() defer q.lock.Unlock() @@ -89,8 +100,9 @@ func (q *UniqueQueue) Add(value TimedValue) bool { return true } -// Replace replaces an existing value in the queue if it already exists, otherwise it does nothing. -// Returns true if the item was found. +// Replace replaces an existing value in the queue if it already +// exists, otherwise it does nothing. Returns true if the item was +// found. func (q *UniqueQueue) Replace(value TimedValue) bool { q.lock.Lock() defer q.lock.Unlock() @@ -106,8 +118,9 @@ func (q *UniqueQueue) Replace(value TimedValue) bool { return false } -// Removes the value from the queue, but keeps it in the set, so it won't be added second time. -// Returns true if something was removed. +// RemoveFromQueue the value from the queue, but keeps it in the set, +// so it won't be added second time. Returns true if something was +// removed. func (q *UniqueQueue) RemoveFromQueue(value string) bool { q.lock.Lock() defer q.lock.Unlock() @@ -124,8 +137,9 @@ func (q *UniqueQueue) RemoveFromQueue(value string) bool { return false } -// Removes the value from the queue, so Get() call won't return it, and allow subsequent addition -// of the given value. If the value is not present does nothing and returns false. +// Remove the value from the queue, so Get() call won't return it, and +// allow subsequent addition of the given value. If the value is not +// present does nothing and returns false. func (q *UniqueQueue) Remove(value string) bool { q.lock.Lock() defer q.lock.Unlock() @@ -143,7 +157,7 @@ func (q *UniqueQueue) Remove(value string) bool { return true } -// Returns the oldest added value that wasn't returned yet. +// Get returns the oldest added value that wasn't returned yet. func (q *UniqueQueue) Get() (TimedValue, bool) { q.lock.Lock() defer q.lock.Unlock() @@ -155,7 +169,8 @@ func (q *UniqueQueue) Get() (TimedValue, bool) { return *result, true } -// Head returns the oldest added value that wasn't returned yet without removing it. +// Head returns the oldest added value that wasn't returned yet +// without removing it. func (q *UniqueQueue) Head() (TimedValue, bool) { q.lock.Lock() defer q.lock.Unlock() @@ -166,7 +181,8 @@ func (q *UniqueQueue) Head() (TimedValue, bool) { return *result, true } -// Clear removes all items from the queue and duplication preventing set. +// Clear removes all items from the queue and duplication preventing +// set. func (q *UniqueQueue) Clear() { q.lock.Lock() defer q.lock.Unlock() @@ -178,15 +194,16 @@ func (q *UniqueQueue) Clear() { } } -// RateLimitedTimedQueue is a unique item priority queue ordered by the expected next time -// of execution. It is also rate limited. +// RateLimitedTimedQueue is a unique item priority queue ordered by +// the expected next time of execution. It is also rate limited. type RateLimitedTimedQueue struct { queue UniqueQueue limiterLock sync.Mutex limiter flowcontrol.RateLimiter } -// Creates new queue which will use given RateLimiter to oversee execution. +// NewRateLimitedTimedQueue creates new queue which will use given +// RateLimiter to oversee execution. func NewRateLimitedTimedQueue(limiter flowcontrol.RateLimiter) *RateLimitedTimedQueue { return &RateLimitedTimedQueue{ queue: UniqueQueue{ @@ -197,18 +214,21 @@ func NewRateLimitedTimedQueue(limiter flowcontrol.RateLimiter) *RateLimitedTimed } } -// ActionFunc takes a timed value and returns false if the item must be retried, with an optional -// time.Duration if some minimum wait interval should be used. +// ActionFunc takes a timed value and returns false if the item must +// be retried, with an optional time.Duration if some minimum wait +// interval should be used. type ActionFunc func(TimedValue) (bool, time.Duration) -// Try processes the queue. Ends prematurely if RateLimiter forbids an action and leak is true. -// Otherwise, requeues the item to be processed. Each value is processed once if fn returns true, -// otherwise it is added back to the queue. The returned remaining is used to identify the minimum -// time to execute the next item in the queue. The same value is processed only once unless -// Remove is explicitly called on it (it's done by the cancelPodEviction function in NodeController -// when Node becomes Ready again) -// TODO: figure out a good way to do garbage collection for all Nodes that were removed from -// the cluster. +// Try processes the queue.Ends prematurely if RateLimiter forbids an +// action and leak is true. Otherwise, requeues the item to be +// processed. Each value is processed once if fn returns true, +// otherwise it is added back to the queue. The returned remaining is +// used to identify the minimum time to execute the next item in the +// queue. The same value is processed only once unless Remove is +// explicitly called on it (it's done by the cancelPodEviction +// function in NodeController when Node becomes Ready again) TODO: +// figure out a good way to do garbage collection for all Nodes that +// were removed from the cluster. func (q *RateLimitedTimedQueue) Try(fn ActionFunc) { val, ok := q.queue.Head() q.limiterLock.Lock() @@ -236,8 +256,9 @@ func (q *RateLimitedTimedQueue) Try(fn ActionFunc) { } } -// Adds value to the queue to be processed. Won't add the same value(comparsion by value) a second time -// if it was already added and not removed. +// Add value to the queue to be processed. Won't add the same +// value(comparsion by value) a second time if it was already added +// and not removed. func (q *RateLimitedTimedQueue) Add(value string, uid interface{}) bool { now := now() return q.queue.Add(TimedValue{ @@ -248,17 +269,19 @@ func (q *RateLimitedTimedQueue) Add(value string, uid interface{}) bool { }) } -// Removes Node from the Evictor. The Node won't be processed until added again. +// Remove Node from the Evictor. The Node won't be processed until +// added again. func (q *RateLimitedTimedQueue) Remove(value string) bool { return q.queue.Remove(value) } -// Removes all items from the queue +// Clear removes all items from the queue func (q *RateLimitedTimedQueue) Clear() { q.queue.Clear() } -// SwapLimiter safely swaps current limiter for this queue with the passed one if capacities or qps's differ. +// SwapLimiter safely swaps current limiter for this queue with the +// passed one if capacities or qps's differ. func (q *RateLimitedTimedQueue) SwapLimiter(newQPS float32) { q.limiterLock.Lock() defer q.limiterLock.Unlock() diff --git a/pkg/controller/node/scheduler/taint_controller.go b/pkg/controller/node/scheduler/taint_controller.go index e51f3d3609c..9892defc5fe 100644 --- a/pkg/controller/node/scheduler/taint_controller.go +++ b/pkg/controller/node/scheduler/taint_controller.go @@ -325,9 +325,8 @@ func (tc *NoExecuteTaintManager) processPodOnNode( startTime = scheduledEviction.CreatedAt if startTime.Add(minTolerationTime).Before(triggerTime) { return - } else { - tc.cancelWorkWithEvent(podNamespacedName) } + tc.cancelWorkWithEvent(podNamespacedName) } tc.taintEvictionQueue.AddWork(NewWorkArgs(podNamespacedName.Name, podNamespacedName.Namespace), startTime, triggerTime) } diff --git a/pkg/controller/node/util/controller_utils.go b/pkg/controller/node/util/controller_utils.go index 958b343ef89..8365a0686a9 100644 --- a/pkg/controller/node/util/controller_utils.go +++ b/pkg/controller/node/util/controller_utils.go @@ -46,15 +46,18 @@ import ( ) var ( + // ErrCloudInstance occurs when the cloud provider does not support + // the Instances API. ErrCloudInstance = errors.New("cloud provider doesn't support instances") - - // The minimum kubelet version for which the nodecontroller - // can safely flip pod.Status to NotReady. + // podStatusReconciliationVersion is the the minimum kubelet version + // for which the nodecontroller can safely flip pod.Status to + // NotReady. podStatusReconciliationVersion = utilversion.MustParseSemantic("v1.2.0") ) -// DeletePods will delete all pods from master running on given node, and return true -// if any pods were deleted, or were found pending deletion. +// DeletePods will delete all pods from master running on given node, +// and return true if any pods were deleted, or were found pending +// deletion. func DeletePods(kubeClient clientset.Interface, recorder record.EventRecorder, nodeName, nodeUID string, daemonStore extensionslisters.DaemonSetLister) (bool, error) { remaining := false selector := fields.OneTermEqualSelector(api.PodHostField, nodeName).String() @@ -109,8 +112,9 @@ func DeletePods(kubeClient clientset.Interface, recorder record.EventRecorder, n return remaining, nil } -// SetPodTerminationReason attempts to set a reason and message in the pod status, updates it in the apiserver, -// and returns an error if it encounters one. +// SetPodTerminationReason attempts to set a reason and message in the +// pod status, updates it in the apiserver, and returns an error if it +// encounters one. func SetPodTerminationReason(kubeClient clientset.Interface, pod *v1.Pod, nodeName string) (*v1.Pod, error) { if pod.Status.Reason == nodepkg.NodeUnreachablePodReason { return pod, nil @@ -127,6 +131,7 @@ func SetPodTerminationReason(kubeClient clientset.Interface, pod *v1.Pod, nodeNa return updatedPod, nil } +// ForcefullyDeletePod deletes the pod immediately. func ForcefullyDeletePod(c clientset.Interface, pod *v1.Pod) error { var zero int64 glog.Infof("NodeController is force deleting Pod: %v:%v", pod.Namespace, pod.Name) @@ -137,8 +142,8 @@ func ForcefullyDeletePod(c clientset.Interface, pod *v1.Pod) error { return err } -// ForcefullyDeleteNode immediately the node. The pods on the node are cleaned -// up by the podGC. +// ForcefullyDeleteNode deletes the node immediately. The pods on the +// node are cleaned up by the podGC. func ForcefullyDeleteNode(kubeClient clientset.Interface, nodeName string) error { if err := kubeClient.Core().Nodes().Delete(nodeName, nil); err != nil { return fmt.Errorf("unable to delete node %q: %v", nodeName, err) @@ -146,8 +151,8 @@ func ForcefullyDeleteNode(kubeClient clientset.Interface, nodeName string) error return nil } -// update ready status of all pods running on given node from master -// return true if success +// MarkAllPodsNotReady updates ready status of all pods running on +// given node from master return true if success func MarkAllPodsNotReady(kubeClient clientset.Interface, node *v1.Node) error { // Don't set pods to NotReady if the kubelet is running a version that // doesn't understand how to correct readiness. @@ -207,6 +212,8 @@ func NodeRunningOutdatedKubelet(node *v1.Node) bool { return false } +// NodeExistsInCloudProvider returns true if the node exists in the +// cloud provider. func NodeExistsInCloudProvider(cloud cloudprovider.Interface, nodeName types.NodeName) (bool, error) { instances, ok := cloud.Instances() if !ok { @@ -221,6 +228,7 @@ func NodeExistsInCloudProvider(cloud cloudprovider.Interface, nodeName types.Nod return true, nil } +// RecordNodeEvent records a event related to a node. func RecordNodeEvent(recorder record.EventRecorder, nodeName, nodeUID, eventtype, reason, event string) { ref := &v1.ObjectReference{ Kind: "Node", @@ -232,20 +240,22 @@ func RecordNodeEvent(recorder record.EventRecorder, nodeName, nodeUID, eventtype recorder.Eventf(ref, eventtype, reason, "Node %s event: %s", nodeName, event) } -func RecordNodeStatusChange(recorder record.EventRecorder, node *v1.Node, new_status string) { +// RecordNodeStatusChange records a event related to a node status change. +func RecordNodeStatusChange(recorder record.EventRecorder, node *v1.Node, newStatus string) { ref := &v1.ObjectReference{ Kind: "Node", Name: node.Name, UID: node.UID, Namespace: "", } - glog.V(2).Infof("Recording status change %s event message for node %s", new_status, node.Name) + glog.V(2).Infof("Recording status change %s event message for node %s", newStatus, node.Name) // TODO: This requires a transaction, either both node status is updated // and event is recorded or neither should happen, see issue #6055. - recorder.Eventf(ref, v1.EventTypeNormal, new_status, "Node %s status is now: %s", node.Name, new_status) + recorder.Eventf(ref, v1.EventTypeNormal, newStatus, "Node %s status is now: %s", node.Name, newStatus) } -// Returns true in case of success and false otherwise +// SwapNodeControllerTaint returns true in case of success and false +// otherwise. func SwapNodeControllerTaint(kubeClient clientset.Interface, taintToAdd, taintToRemove *v1.Taint, node *v1.Node) bool { taintToAdd.TimeAdded = metav1.Now() err := controller.AddOrUpdateTaintOnNode(kubeClient, node.Name, taintToAdd) @@ -274,6 +284,7 @@ func SwapNodeControllerTaint(kubeClient clientset.Interface, taintToAdd, taintTo return true } +// CreateAddNodeHandler creates an add node handler. func CreateAddNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { return func(originalObj interface{}) { obj, err := scheme.Scheme.DeepCopy(originalObj) @@ -289,6 +300,7 @@ func CreateAddNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { } } +// CreateUpdateNodeHandler creates a node update handler. func CreateUpdateNodeHandler(f func(oldNode, newNode *v1.Node) error) func(oldObj, newObj interface{}) { return func(origOldObj, origNewObj interface{}) { oldObj, err := scheme.Scheme.DeepCopy(origOldObj) @@ -310,6 +322,7 @@ func CreateUpdateNodeHandler(f func(oldNode, newNode *v1.Node) error) func(oldOb } } +// CreateDeleteNodeHandler creates a delete node handler. func CreateDeleteNodeHandler(f func(node *v1.Node) error) func(obj interface{}) { return func(originalObj interface{}) { obj, err := scheme.Scheme.DeepCopy(originalObj) From 7589ef92c8acb17e2393c98aab26e44338be1e9b Mon Sep 17 00:00:00 2001 From: NickrenREN Date: Tue, 8 Aug 2017 16:18:52 +0800 Subject: [PATCH 121/183] Clean validation_test go file When i wrote test cases for local storage quota, found some unused vars and useless code, remove them --- pkg/api/validation/validation_test.go | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index 929a9ddfb3c..95f89958f7b 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -38,11 +38,6 @@ import ( const ( dnsLabelErrMsg = "a DNS-1123 label must consist of" dnsSubdomainLabelErrMsg = "a DNS-1123 subdomain" - labelErrMsg = "a valid label must be an empty string or consist of" - lowerCaseLabelErrMsg = "a valid label must consist of" - maxLengthErrMsg = "must be no more than" - namePartErrMsg = "name part must consist of" - nameErrMsg = "a qualified name must consist of" envVarNameErrMsg = "a valid environment variable name must consist of" ) @@ -9349,29 +9344,17 @@ func TestValidateBasicAuthSecret(t *testing.T) { var ( missingBasicAuthUsernamePasswordKeys = validBasicAuthSecret() - // invalidBasicAuthUsernamePasswordKey = validBasicAuthSecret() - // emptyBasicAuthUsernameKey = validBasicAuthSecret() - // emptyBasicAuthPasswordKey = validBasicAuthSecret() ) delete(missingBasicAuthUsernamePasswordKeys.Data, api.BasicAuthUsernameKey) delete(missingBasicAuthUsernamePasswordKeys.Data, api.BasicAuthPasswordKey) - // invalidBasicAuthUsernamePasswordKey.Data[api.BasicAuthUsernameKey] = []byte("bad") - // invalidBasicAuthUsernamePasswordKey.Data[api.BasicAuthPasswordKey] = []byte("bad") - - // emptyBasicAuthUsernameKey.Data[api.BasicAuthUsernameKey] = []byte("") - // emptyBasicAuthPasswordKey.Data[api.BasicAuthPasswordKey] = []byte("") - tests := map[string]struct { secret api.Secret valid bool }{ "valid": {validBasicAuthSecret(), true}, "missing username and password": {missingBasicAuthUsernamePasswordKeys, false}, - // "invalid username and password": {invalidBasicAuthUsernamePasswordKey, false}, - // "empty username": {emptyBasicAuthUsernameKey, false}, - // "empty password": {emptyBasicAuthPasswordKey, false}, } for name, tc := range tests { From fe7d158eafcf25b6383d5f59bb9bd79c29b654d7 Mon Sep 17 00:00:00 2001 From: zhangxiaoyu-zidif Date: Wed, 9 Aug 2017 10:37:03 +0800 Subject: [PATCH 122/183] fix error message for scale --- pkg/kubectl/scale_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/kubectl/scale_test.go b/pkg/kubectl/scale_test.go index 5c870a8cdc2..6e6cd62ed46 100644 --- a/pkg/kubectl/scale_test.go +++ b/pkg/kubectl/scale_test.go @@ -257,7 +257,7 @@ func TestValidateReplicationController(t *testing.T) { t.Errorf("unexpected error: %v (%s)", err, test.test) } if err == nil && test.expectError { - t.Errorf("unexpected non-error: %v (%s)", err, test.test) + t.Errorf("expected an error: %v (%s)", err, test.test) } } } @@ -520,7 +520,7 @@ func TestValidateJob(t *testing.T) { t.Errorf("unexpected error: %v (%s)", err, test.test) } if err == nil && test.expectError { - t.Errorf("unexpected non-error: %v (%s)", err, test.test) + t.Errorf("expected an error: %v (%s)", err, test.test) } } } @@ -781,7 +781,7 @@ func TestValidateDeployment(t *testing.T) { t.Errorf("unexpected error: %v (%s)", err, test.test) } if err == nil && test.expectError { - t.Errorf("unexpected non-error: %v (%s)", err, test.test) + t.Errorf("expected an error: %v (%s)", err, test.test) } } } From ea1a5773580e4ea4ab99396220384cadc631e43c Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Wed, 9 Aug 2017 13:50:00 +0800 Subject: [PATCH 123/183] Remove some helpers associated with ESIPP. --- pkg/api/service/BUILD | 1 - pkg/api/service/util.go | 18 +---- pkg/api/service/util_test.go | 95 -------------------------- pkg/api/v1/service/BUILD | 1 - pkg/api/v1/service/util.go | 22 +----- pkg/api/v1/service/util_test.go | 95 -------------------------- pkg/proxy/iptables/proxier.go | 2 +- pkg/registry/core/service/rest.go | 14 ++-- pkg/registry/core/service/rest_test.go | 6 +- test/e2e/framework/BUILD | 1 - test/e2e/framework/firewall_util.go | 3 +- test/e2e/network/BUILD | 1 - test/e2e/network/service.go | 9 ++- 13 files changed, 20 insertions(+), 248 deletions(-) diff --git a/pkg/api/service/BUILD b/pkg/api/service/BUILD index 995ae5171e4..2fa3a6e54f3 100644 --- a/pkg/api/service/BUILD +++ b/pkg/api/service/BUILD @@ -26,7 +26,6 @@ go_test( deps = [ "//pkg/api:go_default_library", "//pkg/util/net/sets:go_default_library", - "//vendor/github.com/davecgh/go-spew/spew:go_default_library", ], ) diff --git a/pkg/api/service/util.go b/pkg/api/service/util.go index f75be925b59..242aab77f1f 100644 --- a/pkg/api/service/util.go +++ b/pkg/api/service/util.go @@ -77,26 +77,10 @@ func RequestsOnlyLocalTraffic(service *api.Service) bool { return service.Spec.ExternalTrafficPolicy == api.ServiceExternalTrafficPolicyTypeLocal } -// NeedsHealthCheck Check if service needs health check. +// NeedsHealthCheck checks if service needs health check. func NeedsHealthCheck(service *api.Service) bool { if service.Spec.Type != api.ServiceTypeLoadBalancer { return false } return RequestsOnlyLocalTraffic(service) } - -// GetServiceHealthCheckNodePort Return health check node port for service, if one exists -func GetServiceHealthCheckNodePort(service *api.Service) int32 { - return service.Spec.HealthCheckNodePort -} - -// ClearExternalTrafficPolicy resets the ExternalTrafficPolicy field. -func ClearExternalTrafficPolicy(service *api.Service) { - service.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyType("") -} - -// SetServiceHealthCheckNodePort sets the given health check node port on service. -// It does not check whether this service needs healthCheckNodePort. -func SetServiceHealthCheckNodePort(service *api.Service, hcNodePort int32) { - service.Spec.HealthCheckNodePort = hcNodePort -} diff --git a/pkg/api/service/util_test.go b/pkg/api/service/util_test.go index 89acbdeea87..c3eb0d1fb9b 100644 --- a/pkg/api/service/util_test.go +++ b/pkg/api/service/util_test.go @@ -20,8 +20,6 @@ import ( "strings" "testing" - "github.com/davecgh/go-spew/spew" - "k8s.io/kubernetes/pkg/api" netsets "k8s.io/kubernetes/pkg/util/net/sets" ) @@ -216,96 +214,3 @@ func TestNeedsHealthCheck(t *testing.T) { }, }) } - -func TestGetServiceHealthCheckNodePort(t *testing.T) { - checkGetServiceHealthCheckNodePort := func(healthCheckNodePort int32, service *api.Service) { - res := GetServiceHealthCheckNodePort(service) - if res != healthCheckNodePort { - t.Errorf("Expected health check node port = %v, got %v", - healthCheckNodePort, res) - } - } - - checkGetServiceHealthCheckNodePort(0, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - }, - }) - checkGetServiceHealthCheckNodePort(0, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeNodePort, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, - }, - }) - checkGetServiceHealthCheckNodePort(0, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, - }, - }) - checkGetServiceHealthCheckNodePort(34567, &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeLocal, - HealthCheckNodePort: int32(34567), - }, - }) -} - -func TestClearExternalTrafficPolicy(t *testing.T) { - testCases := []struct { - inputService *api.Service - }{ - // First class fields cases. - { - &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, - }, - }, - }, - } - - for i, tc := range testCases { - ClearExternalTrafficPolicy(tc.inputService) - if tc.inputService.Spec.ExternalTrafficPolicy != "" { - t.Errorf("%v: failed to clear ExternalTrafficPolicy", i) - spew.Dump(tc) - } - } -} - -func TestSetServiceHealthCheckNodePort(t *testing.T) { - testCases := []struct { - inputService *api.Service - hcNodePort int32 - }{ - // First class fields cases. - { - &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, - }, - }, - 30012, - }, - { - &api.Service{ - Spec: api.ServiceSpec{ - Type: api.ServiceTypeClusterIP, - ExternalTrafficPolicy: api.ServiceExternalTrafficPolicyTypeCluster, - }, - }, - 0, - }, - } - - for i, tc := range testCases { - SetServiceHealthCheckNodePort(tc.inputService, tc.hcNodePort) - if tc.inputService.Spec.HealthCheckNodePort != tc.hcNodePort { - t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, tc.inputService.Spec.HealthCheckNodePort, tc.hcNodePort) - } - } -} diff --git a/pkg/api/v1/service/BUILD b/pkg/api/v1/service/BUILD index 2dd2486996a..3788b24ae57 100644 --- a/pkg/api/v1/service/BUILD +++ b/pkg/api/v1/service/BUILD @@ -25,7 +25,6 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/util/net/sets:go_default_library", - "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", ], ) diff --git a/pkg/api/v1/service/util.go b/pkg/api/v1/service/util.go index f496f04ca30..4cb453cf3eb 100644 --- a/pkg/api/v1/service/util.go +++ b/pkg/api/v1/service/util.go @@ -76,7 +76,7 @@ func RequestsOnlyLocalTraffic(service *v1.Service) bool { return service.Spec.ExternalTrafficPolicy == v1.ServiceExternalTrafficPolicyTypeLocal } -// NeedsHealthCheck Check if service needs health check. +// NeedsHealthCheck checks if service needs health check. func NeedsHealthCheck(service *v1.Service) bool { if service.Spec.Type != v1.ServiceTypeLoadBalancer { return false @@ -84,28 +84,12 @@ func NeedsHealthCheck(service *v1.Service) bool { return RequestsOnlyLocalTraffic(service) } -// GetServiceHealthCheckNodePort Return health check node port for service, if one exists -func GetServiceHealthCheckNodePort(service *v1.Service) int32 { - return service.Spec.HealthCheckNodePort -} - -// ClearExternalTrafficPolicy resets the ExternalTrafficPolicy field. -func ClearExternalTrafficPolicy(service *v1.Service) { - service.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyType("") -} - -// SetServiceHealthCheckNodePort sets the given health check node port on service. -// It does not check whether this service needs healthCheckNodePort. -func SetServiceHealthCheckNodePort(service *v1.Service, hcNodePort int32) { - service.Spec.HealthCheckNodePort = hcNodePort -} - -// GetServiceHealthCheckPathPort Return the path and nodePort programmed into the Cloud LB Health Check +// GetServiceHealthCheckPathPort returns the path and nodePort programmed into the Cloud LB Health Check func GetServiceHealthCheckPathPort(service *v1.Service) (string, int32) { if !NeedsHealthCheck(service) { return "", 0 } - port := GetServiceHealthCheckNodePort(service) + port := service.Spec.HealthCheckNodePort if port == 0 { return "", 0 } diff --git a/pkg/api/v1/service/util_test.go b/pkg/api/v1/service/util_test.go index 943706d2458..df9504cbe6c 100644 --- a/pkg/api/v1/service/util_test.go +++ b/pkg/api/v1/service/util_test.go @@ -20,8 +20,6 @@ import ( "strings" "testing" - "github.com/davecgh/go-spew/spew" - "k8s.io/api/core/v1" netsets "k8s.io/kubernetes/pkg/util/net/sets" ) @@ -216,96 +214,3 @@ func TestNeedsHealthCheck(t *testing.T) { }, }) } - -func TestGetServiceHealthCheckNodePort(t *testing.T) { - checkGetServiceHealthCheckNodePort := func(healthCheckNodePort int32, service *v1.Service) { - res := GetServiceHealthCheckNodePort(service) - if res != healthCheckNodePort { - t.Errorf("Expected health check node port = %v, got %v", - healthCheckNodePort, res) - } - } - - checkGetServiceHealthCheckNodePort(0, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - }, - }) - checkGetServiceHealthCheckNodePort(0, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeNodePort, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, - }, - }) - checkGetServiceHealthCheckNodePort(0, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, - }, - }) - checkGetServiceHealthCheckNodePort(34567, &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeLoadBalancer, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeLocal, - HealthCheckNodePort: int32(34567), - }, - }) -} - -func TestClearExternalTrafficPolicy(t *testing.T) { - testCases := []struct { - inputService *v1.Service - }{ - // First class fields cases. - { - &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, - }, - }, - }, - } - - for i, tc := range testCases { - ClearExternalTrafficPolicy(tc.inputService) - if tc.inputService.Spec.ExternalTrafficPolicy != "" { - t.Errorf("%v: failed to clear ExternalTrafficPolicy", i) - spew.Dump(tc) - } - } -} - -func TestSetServiceHealthCheckNodePort(t *testing.T) { - testCases := []struct { - inputService *v1.Service - hcNodePort int32 - }{ - // First class fields cases. - { - &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, - }, - }, - 30012, - }, - { - &v1.Service{ - Spec: v1.ServiceSpec{ - Type: v1.ServiceTypeClusterIP, - ExternalTrafficPolicy: v1.ServiceExternalTrafficPolicyTypeCluster, - }, - }, - 0, - }, - } - - for i, tc := range testCases { - SetServiceHealthCheckNodePort(tc.inputService, tc.hcNodePort) - if tc.inputService.Spec.HealthCheckNodePort != tc.hcNodePort { - t.Errorf("%v: got HealthCheckNodePort %v, want %v", i, tc.inputService.Spec.HealthCheckNodePort, tc.hcNodePort) - } - } -} diff --git a/pkg/proxy/iptables/proxier.go b/pkg/proxy/iptables/proxier.go index dda2d9f6de7..aa340e96b91 100644 --- a/pkg/proxy/iptables/proxier.go +++ b/pkg/proxy/iptables/proxier.go @@ -211,7 +211,7 @@ func newServiceInfo(svcPortName proxy.ServicePortName, port *api.ServicePort, se copy(info.externalIPs, service.Spec.ExternalIPs) if apiservice.NeedsHealthCheck(service) { - p := apiservice.GetServiceHealthCheckNodePort(service) + p := service.Spec.HealthCheckNodePort if p == 0 { glog.Errorf("Service %q has no healthcheck nodeport", svcPortName.NamespacedName.String()) } else { diff --git a/pkg/registry/core/service/rest.go b/pkg/registry/core/service/rest.go index 8d4e080b873..46ac0100e37 100644 --- a/pkg/registry/core/service/rest.go +++ b/pkg/registry/core/service/rest.go @@ -183,7 +183,7 @@ func (rs *REST) Delete(ctx genericapirequest.Context, id string) (runtime.Object if utilfeature.DefaultFeatureGate.Enabled(features.ExternalTrafficLocalOnly) && apiservice.NeedsHealthCheck(service) { - nodePort := apiservice.GetServiceHealthCheckNodePort(service) + nodePort := service.Spec.HealthCheckNodePort if nodePort > 0 { err := rs.serviceNodePorts.Release(int(nodePort)) if err != nil { @@ -238,7 +238,7 @@ func externalTrafficPolicyUpdate(oldService, service *api.Service) { } if neededExternalTraffic && !needsExternalTraffic { // Clear ExternalTrafficPolicy to prevent confusion from ineffective field. - apiservice.ClearExternalTrafficPolicy(service) + service.Spec.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyType("") } } @@ -246,10 +246,10 @@ func externalTrafficPolicyUpdate(oldService, service *api.Service) { // and adjusts HealthCheckNodePort during service update if needed. func (rs *REST) healthCheckNodePortUpdate(oldService, service *api.Service) (bool, error) { neededHealthCheckNodePort := apiservice.NeedsHealthCheck(oldService) - oldHealthCheckNodePort := apiservice.GetServiceHealthCheckNodePort(oldService) + oldHealthCheckNodePort := oldService.Spec.HealthCheckNodePort needsHealthCheckNodePort := apiservice.NeedsHealthCheck(service) - newHealthCheckNodePort := apiservice.GetServiceHealthCheckNodePort(service) + newHealthCheckNodePort := service.Spec.HealthCheckNodePort switch { // Case 1: Transition from don't need HealthCheckNodePort to needs HealthCheckNodePort. @@ -272,7 +272,7 @@ func (rs *REST) healthCheckNodePortUpdate(oldService, service *api.Service) (boo } glog.Infof("Freed health check nodePort: %d", oldHealthCheckNodePort) // Clear the HealthCheckNodePort field. - apiservice.SetServiceHealthCheckNodePort(service, 0) + service.Spec.HealthCheckNodePort = 0 // Case 3: Remain in needs HealthCheckNodePort. // Reject changing the value of the HealthCheckNodePort field. @@ -475,7 +475,7 @@ func findRequestedNodePort(port int, servicePorts []api.ServicePort) int { // allocateHealthCheckNodePort allocates health check node port to service. func (rs *REST) allocateHealthCheckNodePort(service *api.Service) error { - healthCheckNodePort := apiservice.GetServiceHealthCheckNodePort(service) + healthCheckNodePort := service.Spec.HealthCheckNodePort if healthCheckNodePort != 0 { // If the request has a health check nodePort in mind, attempt to reserve it. err := rs.serviceNodePorts.Allocate(int(healthCheckNodePort)) @@ -490,7 +490,7 @@ func (rs *REST) allocateHealthCheckNodePort(service *api.Service) error { if err != nil { return fmt.Errorf("failed to allocate a HealthCheck NodePort %v: %v", healthCheckNodePort, err) } - apiservice.SetServiceHealthCheckNodePort(service, int32(healthCheckNodePort)) + service.Spec.HealthCheckNodePort = int32(healthCheckNodePort) glog.Infof("Reserved allocated nodePort: %d", healthCheckNodePort) } return nil diff --git a/pkg/registry/core/service/rest_test.go b/pkg/registry/core/service/rest_test.go index 6d3d8b738c3..a3fba863597 100644 --- a/pkg/registry/core/service/rest_test.go +++ b/pkg/registry/core/service/rest_test.go @@ -993,7 +993,7 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortAllocation(t *testing. if !service.NeedsHealthCheck(created_service) { t.Errorf("Expecting health check needed, returned health check not needed instead") } - port := service.GetServiceHealthCheckNodePort(created_service) + port := created_service.Spec.HealthCheckNodePort if port == 0 { t.Errorf("Failed to allocate health check node port and set the HealthCheckNodePort") } else { @@ -1031,7 +1031,7 @@ func TestServiceRegistryExternalTrafficHealthCheckNodePortUserAllocation(t *test if !service.NeedsHealthCheck(created_service) { t.Errorf("Expecting health check needed, returned health check not needed instead") } - port := service.GetServiceHealthCheckNodePort(created_service) + port := created_service.Spec.HealthCheckNodePort if port == 0 { t.Errorf("Failed to allocate health check node port and set the HealthCheckNodePort") } @@ -1098,7 +1098,7 @@ func TestServiceRegistryExternalTrafficGlobal(t *testing.T) { t.Errorf("Expecting health check not needed, returned health check needed instead") } // Make sure the service does not have the health check node port allocated - port := service.GetServiceHealthCheckNodePort(created_service) + port := created_service.Spec.HealthCheckNodePort if port != 0 { // Release the node port at the end of the test case. storage.serviceNodePorts.Release(int(port)) diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 972c0b5db56..1b90a0fd1b0 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -48,7 +48,6 @@ go_library( "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/node:go_default_library", "//pkg/api/v1/pod:go_default_library", - "//pkg/api/v1/service:go_default_library", "//pkg/apis/batch:go_default_library", "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/test/e2e/framework/firewall_util.go b/test/e2e/framework/firewall_util.go index 3fea73df8b8..d253fd87806 100644 --- a/test/e2e/framework/firewall_util.go +++ b/test/e2e/framework/firewall_util.go @@ -28,7 +28,6 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - apiservice "k8s.io/kubernetes/pkg/api/v1/service" "k8s.io/kubernetes/pkg/cloudprovider" gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" @@ -87,7 +86,7 @@ func ConstructHealthCheckFirewallForLBService(clusterID string, svc *v1.Service, fw.SourceRanges = gcecloud.LoadBalancerSrcRanges() healthCheckPort := gcecloud.GetNodesHealthCheckPort() if !isNodesHealthCheck { - healthCheckPort = apiservice.GetServiceHealthCheckNodePort(svc) + healthCheckPort = svc.Spec.HealthCheckNodePort } fw.Allowed = []*compute.FirewallAllowed{ { diff --git a/test/e2e/network/BUILD b/test/e2e/network/BUILD index 4d33ef3873b..56ffad73220 100644 --- a/test/e2e/network/BUILD +++ b/test/e2e/network/BUILD @@ -31,7 +31,6 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", - "//pkg/api/v1/service:go_default_library", "//pkg/apis/networking:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/cloudprovider:go_default_library", diff --git a/test/e2e/network/service.go b/test/e2e/network/service.go index 6de1f54c945..eee7dc663a1 100644 --- a/test/e2e/network/service.go +++ b/test/e2e/network/service.go @@ -29,7 +29,6 @@ import ( "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" - "k8s.io/kubernetes/pkg/api/v1/service" "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" "k8s.io/kubernetes/pkg/cloudprovider" "k8s.io/kubernetes/pkg/controller/endpoint" @@ -1454,7 +1453,7 @@ var _ = SIGDescribe("ESIPP [Slow]", func() { svc := jig.CreateOnlyLocalLoadBalancerService(namespace, serviceName, loadBalancerCreateTimeout, true, nil) serviceLBNames = append(serviceLBNames, cloudprovider.GetLoadBalancerName(svc)) - healthCheckNodePort := int(service.GetServiceHealthCheckNodePort(svc)) + healthCheckNodePort := int(svc.Spec.HealthCheckNodePort) if healthCheckNodePort == 0 { framework.Failf("Service HealthCheck NodePort was not allocated") } @@ -1531,7 +1530,7 @@ var _ = SIGDescribe("ESIPP [Slow]", func() { Expect(cs.Core().Services(svc.Namespace).Delete(svc.Name, nil)).NotTo(HaveOccurred()) }() - healthCheckNodePort := int(service.GetServiceHealthCheckNodePort(svc)) + healthCheckNodePort := int(svc.Spec.HealthCheckNodePort) if healthCheckNodePort == 0 { framework.Failf("Service HealthCheck NodePort was not allocated") } @@ -1636,13 +1635,13 @@ var _ = SIGDescribe("ESIPP [Slow]", func() { }() // save the health check node port because it disappears when ESIPP is turned off. - healthCheckNodePort := int(service.GetServiceHealthCheckNodePort(svc)) + healthCheckNodePort := int(svc.Spec.HealthCheckNodePort) By("turning ESIPP off") svc = jig.UpdateServiceOrFail(svc.Namespace, svc.Name, func(svc *v1.Service) { svc.Spec.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyTypeCluster }) - if service.GetServiceHealthCheckNodePort(svc) > 0 { + if svc.Spec.HealthCheckNodePort > 0 { framework.Failf("Service HealthCheck NodePort still present") } From bc3ef455dd9ed759411642581febeecca62a149c Mon Sep 17 00:00:00 2001 From: Yassine TIJANI Date: Wed, 2 Aug 2017 15:27:56 +0200 Subject: [PATCH 124/183] checking if disk is already attached for photon. --- pkg/volume/photon_pd/attacher.go | 19 +++++++++++++------ pkg/volume/photon_pd/attacher_test.go | 15 ++++++++------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/pkg/volume/photon_pd/attacher.go b/pkg/volume/photon_pd/attacher.go index 9dd7e3f7677..b68fcc26534 100644 --- a/pkg/volume/photon_pd/attacher.go +++ b/pkg/volume/photon_pd/attacher.go @@ -67,14 +67,21 @@ func (attacher *photonPersistentDiskAttacher) Attach(spec *volume.Spec, nodeName glog.Errorf("Photon Controller attacher: Attach failed to get volume source") return "", err } + attached, err := attacher.photonDisks.DiskIsAttached(volumeSource.PdID, nodeName) - glog.V(4).Infof("Photon Controller: Attach disk called for host %s", hostName) - - // TODO: if disk is already attached? - err = attacher.photonDisks.AttachDisk(volumeSource.PdID, nodeName) if err != nil { - glog.Errorf("Error attaching volume %q to node %q: %+v", volumeSource.PdID, nodeName, err) - return "", err + glog.Warningf("Photon Controller: couldn't check if disk is Attached for host %s, will try attach disk: %+v", hostName, err) + attached = false + } + + if !attached { + glog.V(4).Infof("Photon Controller: Attach disk called for host %s", hostName) + + err = attacher.photonDisks.AttachDisk(volumeSource.PdID, nodeName) + if err != nil { + glog.Errorf("Error attaching volume %q to node %q: %+v", volumeSource.PdID, nodeName, err) + return "", err + } } PdidWithNoHypens := strings.Replace(volumeSource.PdID, "-", "", -1) diff --git a/pkg/volume/photon_pd/attacher_test.go b/pkg/volume/photon_pd/attacher_test.go index 9cdbe364adc..47f89077f18 100644 --- a/pkg/volume/photon_pd/attacher_test.go +++ b/pkg/volume/photon_pd/attacher_test.go @@ -78,14 +78,14 @@ func TestAttachDetach(t *testing.T) { nodeName := types.NodeName("instance") readOnly := false spec := createVolSpec(diskName, readOnly) - attachError := errors.New("Fake attach error") detachError := errors.New("Fake detach error") diskCheckError := errors.New("Fake DiskIsAttached error") tests := []testcase{ // Successful Attach call { - name: "Attach_Positive", - attach: attachCall{diskName, nodeName, nil}, + name: "Attach_Positive", + diskIsAttached: diskIsAttachedCall{diskName, nodeName, false, diskCheckError}, + attach: attachCall{diskName, nodeName, nil}, test: func(testcase *testcase) (string, error) { attacher := newAttacher(testcase) return attacher.Attach(spec, nodeName) @@ -93,15 +93,16 @@ func TestAttachDetach(t *testing.T) { expectedDevice: "/dev/disk/by-id/wwn-0x000000000", }, - // Attach call fails + // Disk is already attached { - name: "Attach_Negative", - attach: attachCall{diskName, nodeName, attachError}, + name: "Attach_Positive_AlreadyAttached", + diskIsAttached: diskIsAttachedCall{diskName, nodeName, false, diskCheckError}, + attach: attachCall{diskName, nodeName, nil}, test: func(testcase *testcase) (string, error) { attacher := newAttacher(testcase) return attacher.Attach(spec, nodeName) }, - expectedError: attachError, + expectedDevice: "/dev/disk/by-id/wwn-0x000000000", }, // Detach succeeds From 4a57d68da02705deedcd85608da92b51a004eed1 Mon Sep 17 00:00:00 2001 From: Shyam Jeedigunta Date: Wed, 9 Aug 2017 14:30:10 +0200 Subject: [PATCH 125/183] Reduce hollow-kubelet cpu request --- test/kubemark/resources/hollow-node_template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/kubemark/resources/hollow-node_template.yaml b/test/kubemark/resources/hollow-node_template.yaml index 4ff70565d93..8bfe942c07b 100644 --- a/test/kubemark/resources/hollow-node_template.yaml +++ b/test/kubemark/resources/hollow-node_template.yaml @@ -60,7 +60,7 @@ spec: mountPath: /var/log resources: requests: - cpu: 50m + cpu: 40m memory: 100M securityContext: privileged: true From 10d3ba15a8ffc53c79e0b4b00641c4eec1fb9166 Mon Sep 17 00:00:00 2001 From: wu8685 Date: Wed, 9 Aug 2017 21:02:27 +0800 Subject: [PATCH 126/183] correct the allocated element number of pod selectable field set --- pkg/registry/core/pod/strategy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/registry/core/pod/strategy.go b/pkg/registry/core/pod/strategy.go index 590042ad18d..9337ef9b994 100644 --- a/pkg/registry/core/pod/strategy.go +++ b/pkg/registry/core/pod/strategy.go @@ -196,7 +196,7 @@ func PodToSelectableFields(pod *api.Pod) fields.Set { // amount of allocations needed to create the fields.Set. If you add any // field here or the number of object-meta related fields changes, this should // be adjusted. - podSpecificFieldsSet := make(fields.Set, 5) + podSpecificFieldsSet := make(fields.Set, 6) podSpecificFieldsSet["spec.nodeName"] = pod.Spec.NodeName podSpecificFieldsSet["spec.restartPolicy"] = string(pod.Spec.RestartPolicy) podSpecificFieldsSet["status.phase"] = string(pod.Status.Phase) From 3d6d57a18f12c575de77056be4316954a3e0ed20 Mon Sep 17 00:00:00 2001 From: Dan Mace Date: Tue, 8 Aug 2017 15:57:55 -0400 Subject: [PATCH 127/183] Improve GC discovery sync performance Improve GC discovery sync performance by only syncing when discovered resource diffs are detected. Before, the GC worker pool was shut down and monitors resynced unconditionally every sync period, leading to significant processing delays causing test flakes where otherwise reasonable GC timeouts were being exceeded. Related to https://github.com/kubernetes/kubernetes/issues/49966. --- cmd/kube-controller-manager/app/core.go | 2 +- .../garbagecollector/garbagecollector.go | 63 ++++++++++++++----- .../garbagecollector/garbagecollector_test.go | 10 ++- .../garbage_collector_test.go | 2 +- 4 files changed, 59 insertions(+), 18 deletions(-) diff --git a/cmd/kube-controller-manager/app/core.go b/cmd/kube-controller-manager/app/core.go index 5dd170140af..98a803252f0 100644 --- a/cmd/kube-controller-manager/app/core.go +++ b/cmd/kube-controller-manager/app/core.go @@ -339,7 +339,7 @@ func startGarbageCollectorController(ctx ControllerContext) (bool, error) { // Periodically refresh the RESTMapper with new discovery information and sync // the garbage collector. - go garbageCollector.Sync(restMapper, discoveryClient, 30*time.Second, ctx.Stop) + go garbageCollector.Sync(gcClientset.Discovery(), 30*time.Second, ctx.Stop) return true, nil } diff --git a/pkg/controller/garbagecollector/garbagecollector.go b/pkg/controller/garbagecollector/garbagecollector.go index 8732078fa8d..efffc5a91fd 100644 --- a/pkg/controller/garbagecollector/garbagecollector.go +++ b/pkg/controller/garbagecollector/garbagecollector.go @@ -18,6 +18,7 @@ package garbagecollector import ( "fmt" + "reflect" "sync" "time" @@ -59,7 +60,7 @@ const ResourceResyncTime time.Duration = 0 // ensures that the garbage collector operates with a graph that is at least as // up to date as the notification is sent. type GarbageCollector struct { - restMapper meta.RESTMapper + restMapper resettableRESTMapper // clientPool uses the regular dynamicCodec. We need it to update // finalizers. It can be removed if we support patching finalizers. clientPool dynamic.ClientPool @@ -81,7 +82,7 @@ type GarbageCollector struct { func NewGarbageCollector( metaOnlyClientPool dynamic.ClientPool, clientPool dynamic.ClientPool, - mapper meta.RESTMapper, + mapper resettableRESTMapper, deletableResources map[schema.GroupVersionResource]struct{}, ignoredResources map[schema.GroupResource]struct{}, sharedInformers informers.SharedInformerFactory, @@ -162,25 +163,59 @@ type resettableRESTMapper interface { Reset() } -// Sync periodically resyncs the garbage collector monitors with resources -// returned found via the discoveryClient. Sync blocks, continuing to sync until -// a message is received on stopCh. +// Sync periodically resyncs the garbage collector when new resources are +// observed from discovery. When new resources are detected, Sync will stop all +// GC workers, reset gc.restMapper, and resync the monitors. // -// The discoveryClient should be the same client which underlies restMapper. -func (gc *GarbageCollector) Sync(restMapper resettableRESTMapper, discoveryClient discovery.DiscoveryInterface, period time.Duration, stopCh <-chan struct{}) { +// Note that discoveryClient should NOT be shared with gc.restMapper, otherwise +// the mapper's underlying discovery client will be unnecessarily reset during +// the course of detecting new resources. +func (gc *GarbageCollector) Sync(discoveryClient discovery.DiscoveryInterface, period time.Duration, stopCh <-chan struct{}) { + oldResources := make(map[schema.GroupVersionResource]struct{}) wait.Until(func() { + // Get the current resource list from discovery. + newResources, err := GetDeletableResources(discoveryClient) + if err != nil { + utilruntime.HandleError(err) + return + } + + // Detect first or abnormal sync and try again later. + if oldResources == nil || len(oldResources) == 0 { + oldResources = newResources + return + } + + // Decide whether discovery has reported a change. + if reflect.DeepEqual(oldResources, newResources) { + glog.V(5).Infof("no resource updates from discovery, skipping garbage collector sync") + return + } + + // Something has changed, so track the new state and perform a sync. + glog.V(2).Infof("syncing garbage collector with updated resources from discovery: %v", newResources) + oldResources = newResources + // Ensure workers are paused to avoid processing events before informers // have resynced. gc.workerLock.Lock() defer gc.workerLock.Unlock() - restMapper.Reset() - deletableResources, err := GetDeletableResources(discoveryClient) - if err != nil { - utilruntime.HandleError(err) - return - } - if err := gc.resyncMonitors(deletableResources); err != nil { + // Resetting the REST mapper will also invalidate the underlying discovery + // client. This is a leaky abstraction and assumes behavior about the REST + // mapper, but we'll deal with it for now. + gc.restMapper.Reset() + + // Perform the monitor resync and wait for controllers to report cache sync. + // + // NOTE: It's possible that newResources will diverge from the resources + // discovered by restMapper during the call to Reset, since they are + // distinct discovery clients invalidated at different times. For example, + // newResources may contain resources not returned in the restMapper's + // discovery call if the resources appeared inbetween the calls. In that + // case, the restMapper will fail to map some of newResources until the next + // sync period. + if err := gc.resyncMonitors(newResources); err != nil { utilruntime.HandleError(fmt.Errorf("failed to sync resource monitors: %v", err)) return } diff --git a/pkg/controller/garbagecollector/garbagecollector_test.go b/pkg/controller/garbagecollector/garbagecollector_test.go index 37fcd20069a..4ba3c90c8cc 100644 --- a/pkg/controller/garbagecollector/garbagecollector_test.go +++ b/pkg/controller/garbagecollector/garbagecollector_test.go @@ -46,11 +46,17 @@ import ( "k8s.io/kubernetes/pkg/controller/garbagecollector/metaonly" ) +type testRESTMapper struct { + meta.RESTMapper +} + +func (_ *testRESTMapper) Reset() {} + func TestGarbageCollectorConstruction(t *testing.T) { config := &restclient.Config{} config.ContentConfig.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: metaonly.NewMetadataCodecFactory()} tweakableRM := meta.NewDefaultRESTMapper(nil, nil) - rm := meta.MultiRESTMapper{tweakableRM, api.Registry.RESTMapper()} + rm := &testRESTMapper{meta.MultiRESTMapper{tweakableRM, api.Registry.RESTMapper()}} metaOnlyClientPool := dynamic.NewClientPool(config, rm, dynamic.LegacyAPIPathResolverFunc) config.ContentConfig.NegotiatedSerializer = nil clientPool := dynamic.NewClientPool(config, rm, dynamic.LegacyAPIPathResolverFunc) @@ -168,7 +174,7 @@ func setupGC(t *testing.T, config *restclient.Config) garbageCollector { podResource := map[schema.GroupVersionResource]struct{}{{Version: "v1", Resource: "pods"}: {}} client := fake.NewSimpleClientset() sharedInformers := informers.NewSharedInformerFactory(client, 0) - gc, err := NewGarbageCollector(metaOnlyClientPool, clientPool, api.Registry.RESTMapper(), podResource, ignoredResources, sharedInformers) + gc, err := NewGarbageCollector(metaOnlyClientPool, clientPool, &testRESTMapper{api.Registry.RESTMapper()}, podResource, ignoredResources, sharedInformers) if err != nil { t.Fatal(err) } diff --git a/test/integration/garbagecollector/garbage_collector_test.go b/test/integration/garbagecollector/garbage_collector_test.go index ee3f8389695..c0c7c2521b4 100644 --- a/test/integration/garbagecollector/garbage_collector_test.go +++ b/test/integration/garbagecollector/garbage_collector_test.go @@ -265,7 +265,7 @@ func setup(t *testing.T, workerCount int) *testContext { syncPeriod := 5 * time.Second startGC := func(workers int) { go gc.Run(workers, stopCh) - go gc.Sync(restMapper, discoveryClient, syncPeriod, stopCh) + go gc.Sync(clientSet.Discovery(), syncPeriod, stopCh) } if workerCount > 0 { From b7935b969973d3fbe24eb73d4b8f2580eb6fd7fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20K=C5=82obuszewski?= Date: Wed, 9 Aug 2017 15:44:06 +0200 Subject: [PATCH 128/183] Bugfix: set resources only for fluentd-gcp container. There is more than one container in fluentd-gcp deployment. Previous implementation was setting resources for multiple containers, not just the fluent-gcp one. --- cluster/gce/gci/configure-helper.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index e6fbfa582ee..677aeffe66e 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -1606,7 +1606,7 @@ function wait-for-apiserver-and-update-fluentd { kubectl set resources --dry-run --local -f ${fluentd_gcp_yaml} \ --limits=memory=${FLUENTD_GCP_MEMORY_LIMIT} \ --requests=cpu=${FLUENTD_GCP_CPU_REQUEST},memory=${FLUENTD_GCP_MEMORY_REQUEST} \ - -o yaml > ${fluentd_gcp_yaml}.tmp + --containers=fluentd-gcp -o yaml > ${fluentd_gcp_yaml}.tmp mv ${fluentd_gcp_yaml}.tmp ${fluentd_gcp_yaml} } From 855a1c17131f92fca6de33279a02eca3893ca374 Mon Sep 17 00:00:00 2001 From: Devan Goodwin Date: Tue, 18 Jul 2017 11:52:42 -0300 Subject: [PATCH 129/183] Fix unused Secret export logic. The strategy used for the secret store defined custom export logic, and had accompanying unit tests. However the secret storage did not actually wire this up by setting an ExportStrategy and thus the code was never used in the real world. This change fixes the missing assignment and adds testing at a higher level to ensure any uses of the generic registry.Store that we expect to have an ExportStrategy do, and no others. Several other strategies in the RBAC package also appeared to have unwired Export logic, however their implementations were all empty leading me to believe that these are not considered exportable. The empty methods have now been removed. --- pkg/master/BUILD | 4 + pkg/master/master_test.go | 59 ++++++++++++++ .../certificates/storage/storage.go | 1 + pkg/registry/core/secret/storage/storage.go | 1 + pkg/registry/rbac/clusterrole/strategy.go | 4 - .../rbac/clusterrolebinding/strategy.go | 4 - pkg/registry/rbac/role/strategy.go | 4 - pkg/registry/rbac/rolebinding/strategy.go | 4 - pkg/registry/registrytest/BUILD | 2 + pkg/registry/registrytest/validate.go | 79 +++++++++++++++++++ .../pkg/registry/generic/registry/store.go | 29 +++++++ .../apiserver/pkg/registry/rest/rest.go | 4 +- 12 files changed, 178 insertions(+), 17 deletions(-) create mode 100644 pkg/registry/registrytest/validate.go diff --git a/pkg/master/BUILD b/pkg/master/BUILD index 54de9a3e371..6d3cf8c61b0 100644 --- a/pkg/master/BUILD +++ b/pkg/master/BUILD @@ -124,6 +124,9 @@ go_test( "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", "//pkg/generated/openapi:go_default_library", "//pkg/kubelet/client:go_default_library", + "//pkg/registry/certificates/rest:go_default_library", + "//pkg/registry/core/rest:go_default_library", + "//pkg/registry/registrytest:go_default_library", "//pkg/version:go_default_library", "//vendor/github.com/go-openapi/loads:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", @@ -134,6 +137,7 @@ go_test( "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", + "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/master/master_test.go b/pkg/master/master_test.go index dc7d6a1af9f..40e3abeefe1 100644 --- a/pkg/master/master_test.go +++ b/pkg/master/master_test.go @@ -30,6 +30,7 @@ import ( autoscalingapiv1 "k8s.io/api/autoscaling/v1" batchapiv1 "k8s.io/api/batch/v1" batchapiv2alpha1 "k8s.io/api/batch/v2alpha1" + certificatesapiv1beta1 "k8s.io/api/certificates/v1beta1" apiv1 "k8s.io/api/core/v1" extensionsapiv1beta1 "k8s.io/api/extensions/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -56,6 +57,9 @@ import ( "k8s.io/kubernetes/pkg/apis/extensions" "k8s.io/kubernetes/pkg/apis/rbac" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" + certificatesrest "k8s.io/kubernetes/pkg/registry/certificates/rest" + corerest "k8s.io/kubernetes/pkg/registry/core/rest" + "k8s.io/kubernetes/pkg/registry/registrytest" kubeversion "k8s.io/kubernetes/pkg/version" "github.com/stretchr/testify/assert" @@ -112,6 +116,61 @@ func setUp(t *testing.T) (*etcdtesting.EtcdTestServer, Config, *assert.Assertion return server, *config, assert.New(t) } +// TestLegacyRestStorageStrategies ensures that all Storage objects which are using the generic registry Store have +// their various strategies properly wired up. This surfaced as a bug where strategies defined Export functions, but +// they were never used outside of unit tests because the export strategies were not assigned inside the Store. +func TestLegacyRestStorageStrategies(t *testing.T) { + _, _, masterCfg, _ := newMaster(t) + storageProvider := corerest.LegacyRESTStorageProvider{ + StorageFactory: masterCfg.StorageFactory, + ProxyTransport: masterCfg.ProxyTransport, + KubeletClientConfig: masterCfg.KubeletClientConfig, + EventTTL: masterCfg.EventTTL, + ServiceIPRange: masterCfg.ServiceIPRange, + ServiceNodePortRange: masterCfg.ServiceNodePortRange, + LoopbackClientConfig: masterCfg.GenericConfig.LoopbackClientConfig, + } + + _, apiGroupInfo, err := storageProvider.NewLegacyRESTStorage(masterCfg.GenericConfig.RESTOptionsGetter) + if err != nil { + t.Errorf("failed to create legacy REST storage: %v", err) + } + + // Any new stores with export logic will need to be added here: + exceptions := registrytest.StrategyExceptions{ + // Only these stores should have an export strategy defined: + HasExportStrategy: []string{ + "secrets", + "limitRanges", + "nodes", + "podTemplates", + }, + } + + strategyErrors := registrytest.ValidateStorageStrategies(apiGroupInfo.VersionedResourcesStorageMap["v1"], exceptions) + for _, err := range strategyErrors { + t.Error(err) + } +} + +func TestCertificatesRestStorageStrategies(t *testing.T) { + _, _, masterCfg, _ := newMaster(t) + certStorageProvider := certificatesrest.RESTStorageProvider{} + apiGroupInfo, _ := certStorageProvider.NewRESTStorage(masterCfg.APIResourceConfigSource, masterCfg.GenericConfig.RESTOptionsGetter) + + exceptions := registrytest.StrategyExceptions{ + HasExportStrategy: []string{ + "certificatesigningrequests", + }, + } + + strategyErrors := registrytest.ValidateStorageStrategies( + apiGroupInfo.VersionedResourcesStorageMap[certificatesapiv1beta1.SchemeGroupVersion.Version], exceptions) + for _, err := range strategyErrors { + t.Error(err) + } +} + func newMaster(t *testing.T) (*Master, *etcdtesting.EtcdTestServer, Config, *assert.Assertions) { etcdserver, config, assert := setUp(t) diff --git a/pkg/registry/certificates/certificates/storage/storage.go b/pkg/registry/certificates/certificates/storage/storage.go index 372717f3ee3..715dbbe848c 100644 --- a/pkg/registry/certificates/certificates/storage/storage.go +++ b/pkg/registry/certificates/certificates/storage/storage.go @@ -45,6 +45,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) (*REST, *StatusREST, *Approva CreateStrategy: csrregistry.Strategy, UpdateStrategy: csrregistry.Strategy, DeleteStrategy: csrregistry.Strategy, + ExportStrategy: csrregistry.Strategy, } options := &generic.StoreOptions{RESTOptions: optsGetter} if err := store.CompleteWithOptions(options); err != nil { diff --git a/pkg/registry/core/secret/storage/storage.go b/pkg/registry/core/secret/storage/storage.go index 8dc5592eed0..2827bdb1614 100644 --- a/pkg/registry/core/secret/storage/storage.go +++ b/pkg/registry/core/secret/storage/storage.go @@ -42,6 +42,7 @@ func NewREST(optsGetter generic.RESTOptionsGetter) *REST { CreateStrategy: secret.Strategy, UpdateStrategy: secret.Strategy, DeleteStrategy: secret.Strategy, + ExportStrategy: secret.Strategy, } options := &generic.StoreOptions{RESTOptions: optsGetter, AttrFunc: secret.GetAttrs} if err := store.CompleteWithOptions(options); err != nil { diff --git a/pkg/registry/rbac/clusterrole/strategy.go b/pkg/registry/rbac/clusterrole/strategy.go index 7d4e766a880..301418a1411 100644 --- a/pkg/registry/rbac/clusterrole/strategy.go +++ b/pkg/registry/rbac/clusterrole/strategy.go @@ -93,7 +93,3 @@ func (strategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.O func (strategy) AllowUnconditionalUpdate() bool { return true } - -func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { - return nil -} diff --git a/pkg/registry/rbac/clusterrolebinding/strategy.go b/pkg/registry/rbac/clusterrolebinding/strategy.go index 383be8bd2d9..e1d83ecf4ab 100644 --- a/pkg/registry/rbac/clusterrolebinding/strategy.go +++ b/pkg/registry/rbac/clusterrolebinding/strategy.go @@ -93,7 +93,3 @@ func (strategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.O func (strategy) AllowUnconditionalUpdate() bool { return true } - -func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { - return nil -} diff --git a/pkg/registry/rbac/role/strategy.go b/pkg/registry/rbac/role/strategy.go index da80adc4ed7..619cfeed125 100644 --- a/pkg/registry/rbac/role/strategy.go +++ b/pkg/registry/rbac/role/strategy.go @@ -93,7 +93,3 @@ func (strategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.O func (strategy) AllowUnconditionalUpdate() bool { return true } - -func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { - return nil -} diff --git a/pkg/registry/rbac/rolebinding/strategy.go b/pkg/registry/rbac/rolebinding/strategy.go index 0abeb7ed76c..9d4781a50c3 100644 --- a/pkg/registry/rbac/rolebinding/strategy.go +++ b/pkg/registry/rbac/rolebinding/strategy.go @@ -93,7 +93,3 @@ func (strategy) ValidateUpdate(ctx genericapirequest.Context, obj, old runtime.O func (strategy) AllowUnconditionalUpdate() bool { return true } - -func (s strategy) Export(ctx genericapirequest.Context, obj runtime.Object, exact bool) error { - return nil -} diff --git a/pkg/registry/registrytest/BUILD b/pkg/registry/registrytest/BUILD index a485cae0130..d6a0239b1cf 100644 --- a/pkg/registry/registrytest/BUILD +++ b/pkg/registry/registrytest/BUILD @@ -17,11 +17,13 @@ go_library( "node.go", "service.go", "shortNamesProvider.go", + "validate.go", ], tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", + "//pkg/util/slice:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", diff --git a/pkg/registry/registrytest/validate.go b/pkg/registry/registrytest/validate.go new file mode 100644 index 00000000000..40b92270020 --- /dev/null +++ b/pkg/registry/registrytest/validate.go @@ -0,0 +1,79 @@ +/* +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. +*/ + +package registrytest + +import ( + "fmt" + "k8s.io/apiserver/pkg/registry/generic/registry" + "k8s.io/apiserver/pkg/registry/rest" + "k8s.io/kubernetes/pkg/util/slice" +) + +// ValidateStorageStrategies ensures any instances of the generic registry.Store in the given storage map +// have expected strategies defined. +func ValidateStorageStrategies(storageMap map[string]rest.Storage, exceptions StrategyExceptions) []error { + errs := []error{} + + // Used to ensure we saw all the expected exceptions: + hasExportExceptionsSeen := []string{} + + for k, storage := range storageMap { + switch t := storage.(type) { + case registry.GenericStore: + // At this point it appears all uses of the generic registry store should have a create, update, and + // delete strategy set: + if t.GetCreateStrategy() == nil { + errs = append(errs, fmt.Errorf("store for type [%v] does not have a CreateStrategy", k)) + } + if t.GetUpdateStrategy() == nil { + errs = append(errs, fmt.Errorf("store for type [%v] does not have an UpdateStrategy", k)) + } + if t.GetDeleteStrategy() == nil { + errs = append(errs, fmt.Errorf("store for type [%v] does not have a DeleteStrategy", k)) + } + + // Check that ExportStrategy is set if applicable: + if slice.ContainsString(exceptions.HasExportStrategy, k, nil) { + hasExportExceptionsSeen = append(hasExportExceptionsSeen, k) + if t.GetExportStrategy() == nil { + errs = append(errs, fmt.Errorf("store for type [%v] does not have an ExportStrategy", k)) + } + } else { + // By default we expect Stores to not have additional export logic: + if t.GetExportStrategy() != nil { + errs = append(errs, fmt.Errorf("store for type [%v] has an unexpected ExportStrategy", k)) + } + } + + } + } + + // Ensure that we saw all our expected exceptions: + for _, expKey := range exceptions.HasExportStrategy { + if !slice.ContainsString(hasExportExceptionsSeen, expKey, nil) { + errs = append(errs, fmt.Errorf("no generic store seen for expected ExportStrategy: %v", expKey)) + } + } + + return errs +} + +// StrategyExceptions carries information on what exceptions to default strategy expectations are expected. +type StrategyExceptions struct { + // HasExportStrategy is a list of the resource keys whose store should have a custom export strategy. + HasExportStrategy []string +} diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go index 3b514376cf5..fd352123627 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/store.go @@ -52,6 +52,14 @@ import ( // object. type ObjectFunc func(obj runtime.Object) error +// GenericStore interface can be used for type assertions when we need to access the underlying strategies. +type GenericStore interface { + GetCreateStrategy() rest.RESTCreateStrategy + GetUpdateStrategy() rest.RESTUpdateStrategy + GetDeleteStrategy() rest.RESTDeleteStrategy + GetExportStrategy() rest.RESTExportStrategy +} + // Store implements pkg/api/rest.StandardStorage. It's intended to be // embeddable and allows the consumer to implement any non-generic functions // that are required. This object is intended to be copyable so that it can be @@ -177,6 +185,7 @@ type Store struct { var _ rest.StandardStorage = &Store{} var _ rest.Exporter = &Store{} var _ rest.TableConvertor = &Store{} +var _ GenericStore = &Store{} const OptimisticLockErrorMsg = "the object has been modified; please apply your changes to the latest version and try again" @@ -233,6 +242,26 @@ func (e *Store) NewList() runtime.Object { return e.NewListFunc() } +// GetCreateStrategy implements GenericStore. +func (e *Store) GetCreateStrategy() rest.RESTCreateStrategy { + return e.CreateStrategy +} + +// GetUpdateStrategy implements GenericStore. +func (e *Store) GetUpdateStrategy() rest.RESTUpdateStrategy { + return e.UpdateStrategy +} + +// GetDeleteStrategy implements GenericStore. +func (e *Store) GetDeleteStrategy() rest.RESTDeleteStrategy { + return e.DeleteStrategy +} + +// GetExportStrategy implements GenericStore. +func (e *Store) GetExportStrategy() rest.RESTExportStrategy { + return e.ExportStrategy +} + // List returns a list of items matching labels and field according to the // store's PredicateFunc. func (e *Store) List(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (runtime.Object, error) { diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go b/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go index e7e9259a9aa..99a2fbe0f18 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/rest.go @@ -86,7 +86,9 @@ type Lister interface { List(ctx genericapirequest.Context, options *metainternalversion.ListOptions) (runtime.Object, error) } -// Exporter is an object that knows how to strip a RESTful resource for export +// Exporter is an object that knows how to strip a RESTful resource for export. A store should implement this interface +// if export is generally supported for that type. Errors can still be returned during the actual Export when certain +// instances of the type are not exportable. type Exporter interface { // Export an object. Fields that are not user specified (e.g. Status, ObjectMeta.ResourceVersion) are stripped out // Returns the stripped object. If 'exact' is true, fields that are specific to the cluster (e.g. namespace) are From 760f9d1c0b55d1fb2484811dd313bb3dd5550f81 Mon Sep 17 00:00:00 2001 From: p0lyn0mial Date: Wed, 9 Aug 2017 16:35:39 +0200 Subject: [PATCH 130/183] wires ban flunder admission plugin to the sample server --- .../admission/plugin/banflunder/admission.go | 12 +++++++- .../sample-apiserver/pkg/apiserver/BUILD | 1 + .../pkg/apiserver/apiserver.go | 3 ++ .../sample-apiserver/pkg/cmd/server/BUILD | 4 +++ .../sample-apiserver/pkg/cmd/server/start.go | 28 +++++++++++++++++-- 5 files changed, 45 insertions(+), 3 deletions(-) diff --git a/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go b/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go index 8e021f120f2..8e7d51acea8 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/admission.go @@ -18,6 +18,7 @@ package banflunder import ( "fmt" + "io" "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/labels" @@ -28,6 +29,13 @@ import ( listers "k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion" ) +// Register registers a plugin +func Register(plugins *admission.Plugins) { + plugins.Register("BanFlunder", func(config io.Reader) (admission.Interface, error) { + return New() + }) +} + type disallowFlunder struct { *admission.Handler lister listers.FischerLister @@ -80,5 +88,7 @@ func (d *disallowFlunder) Validate() error { // New creates a new ban flunder admission plugin func New() (admission.Interface, error) { - return &disallowFlunder{}, nil + return &disallowFlunder{ + Handler: admission.NewHandler(admission.Create), + }, nil } diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD index 03838d80f93..1f06d83ce04 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD @@ -33,6 +33,7 @@ go_library( "//vendor/k8s.io/sample-apiserver/pkg/apis/wardle:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/install:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1:go_default_library", + "//vendor/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/registry:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/registry/wardle/fischer:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/registry/wardle/flunder:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/apiserver.go b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/apiserver.go index 41e1d94aba5..33ebf143c6a 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/apiserver.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/apiserver.go @@ -30,6 +30,7 @@ import ( "k8s.io/sample-apiserver/pkg/apis/wardle" "k8s.io/sample-apiserver/pkg/apis/wardle/install" "k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1" + informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" wardleregistry "k8s.io/sample-apiserver/pkg/registry" fischerstorage "k8s.io/sample-apiserver/pkg/registry/wardle/fischer" flunderstorage "k8s.io/sample-apiserver/pkg/registry/wardle/flunder" @@ -62,6 +63,8 @@ func init() { type Config struct { GenericConfig *genericapiserver.Config + // SharedInformerFactory provides shared informers for resources + SharedInformerFactory informers.SharedInformerFactory } // WardleServer contains state for a Kubernetes cluster master/api server. diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD index ae62e2206ea..4aa1847420d 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD @@ -15,8 +15,12 @@ go_library( "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/options:go_default_library", + "//vendor/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder:go_default_library", + "//vendor/k8s.io/sample-apiserver/pkg/admission/wardleinitializer:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/apiserver:go_default_library", + "//vendor/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset:go_default_library", + "//vendor/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion:go_default_library", ], ) diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go index 3ed49adb52c..3e4075c271f 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/start.go @@ -25,8 +25,12 @@ import ( genericapiserver "k8s.io/apiserver/pkg/server" genericoptions "k8s.io/apiserver/pkg/server/options" + "k8s.io/sample-apiserver/pkg/admission/plugin/banflunder" + "k8s.io/sample-apiserver/pkg/admission/wardleinitializer" "k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1" "k8s.io/sample-apiserver/pkg/apiserver" + clientset "k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset" + informers "k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion" ) const defaultEtcdPathPrefix = "/registry/wardle.kubernetes.io" @@ -88,6 +92,9 @@ func (o *WardleServerOptions) Complete() error { } func (o WardleServerOptions) Config() (*apiserver.Config, error) { + // register admission plugins + banflunder.Register(o.Admission.Plugins) + // TODO have a "real" external address if err := o.RecommendedOptions.SecureServing.MaybeDefaultWithSelfSignedCerts("localhost", nil, []net.IP{net.ParseIP("127.0.0.1")}); err != nil { return nil, fmt.Errorf("error creating self-signed certificates: %v", err) @@ -98,12 +105,23 @@ func (o WardleServerOptions) Config() (*apiserver.Config, error) { return nil, err } - if err := o.Admission.ApplyTo(serverConfig); err != nil { + client, err := clientset.NewForConfig(serverConfig.LoopbackClientConfig) + if err != nil { + return nil, err + } + informerFactory := informers.NewSharedInformerFactory(client, serverConfig.LoopbackClientConfig.Timeout) + admissionInitializer, err := wardleinitializer.New(informerFactory) + if err != nil { + return nil, err + } + + if err := o.Admission.ApplyTo(serverConfig, admissionInitializer); err != nil { return nil, err } config := &apiserver.Config{ - GenericConfig: serverConfig, + GenericConfig: serverConfig, + SharedInformerFactory: informerFactory, } return config, nil } @@ -118,5 +136,11 @@ func (o WardleServerOptions) RunWardleServer(stopCh <-chan struct{}) error { if err != nil { return err } + + server.GenericAPIServer.AddPostStartHook("start-sample-server-informers", func(context genericapiserver.PostStartHookContext) error { + config.SharedInformerFactory.Start(context.StopCh) + return nil + }) + return server.GenericAPIServer.PrepareRun().Run(stopCh) } From e742c31f9735d60bcd15ac56e9ae31d065feaebd Mon Sep 17 00:00:00 2001 From: gmarek Date: Wed, 9 Aug 2017 13:59:37 +0200 Subject: [PATCH 131/183] Don't call one of pointless conversions --- .../util/eventsink/eventsink.go | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/federation/pkg/federation-controller/util/eventsink/eventsink.go b/federation/pkg/federation-controller/util/eventsink/eventsink.go index 8a7ca0a72e9..343fef5df73 100644 --- a/federation/pkg/federation-controller/util/eventsink/eventsink.go +++ b/federation/pkg/federation-controller/util/eventsink/eventsink.go @@ -72,12 +72,7 @@ func init() { } func (fes *FederatedEventSink) Create(event *v1.Event) (*v1.Event, error) { - kubeEvent := &v1.Event{} - if err := scheme.Convert(event, kubeEvent, nil); err != nil { - return nil, err - } - - ret, err := fes.clientset.Core().Events(kubeEvent.Namespace).Create(kubeEvent) + ret, err := fes.clientset.Core().Events(event.Namespace).Create(event) if err != nil { return nil, err } @@ -90,12 +85,7 @@ func (fes *FederatedEventSink) Create(event *v1.Event) (*v1.Event, error) { } func (fes *FederatedEventSink) Update(event *v1.Event) (*v1.Event, error) { - kubeEvent := &v1.Event{} - if err := scheme.Convert(event, kubeEvent, nil); err != nil { - return nil, err - } - - ret, err := fes.clientset.Core().Events(kubeEvent.Namespace).Update(kubeEvent) + ret, err := fes.clientset.Core().Events(event.Namespace).Update(event) if err != nil { return nil, err } @@ -108,12 +98,7 @@ func (fes *FederatedEventSink) Update(event *v1.Event) (*v1.Event, error) { } func (fes *FederatedEventSink) Patch(event *v1.Event, data []byte) (*v1.Event, error) { - kubeEvent := &v1.Event{} - if err := scheme.Convert(event, kubeEvent, nil); err != nil { - return nil, err - } - - ret, err := fes.clientset.Core().Events(kubeEvent.Namespace).Patch(kubeEvent.Name, types.StrategicMergePatchType, data) + ret, err := fes.clientset.Core().Events(event.Namespace).Patch(event.Name, types.StrategicMergePatchType, data) if err != nil { return nil, err } From f4d596356a5d1e56538f8dd1e3f71c61bd822ef7 Mon Sep 17 00:00:00 2001 From: Yinan Li Date: Thu, 3 Aug 2017 12:11:54 -0700 Subject: [PATCH 132/183] Added changes as a result of running make update --- api/openapi-spec/swagger.json | 10 + api/swagger-spec/apps_v1beta1.json | 5 + api/swagger-spec/apps_v1beta2.json | 5 + .../apps/v1beta1/definitions.html | 7 + .../apps/v1beta2/definitions.html | 7 + pkg/api/testing/fuzzer.go | 3 + .../apps/v1beta1/zz_generated.conversion.go | 2 + pkg/apis/apps/v1beta2/conversion.go | 8 + .../apps/v1beta2/zz_generated.conversion.go | 2 + pkg/apis/apps/validation/BUILD | 1 + pkg/apis/apps/zz_generated.deepcopy.go | 9 + .../k8s.io/api/apps/v1beta1/generated.pb.go | 257 ++++++++------- .../k8s.io/api/apps/v1beta1/generated.proto | 6 + .../api/apps/v1beta1/types.generated.go | 258 +++++++++------ .../v1beta1/types_swagger_doc_generated.go | 1 + .../api/apps/v1beta1/zz_generated.deepcopy.go | 9 + .../k8s.io/api/apps/v1beta2/generated.pb.go | 297 ++++++++++-------- .../k8s.io/api/apps/v1beta2/generated.proto | 6 + .../v1beta2/types_swagger_doc_generated.go | 1 + .../api/apps/v1beta2/zz_generated.deepcopy.go | 11 +- 20 files changed, 566 insertions(+), 339 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 6e2d2f80f0f..fc3db028af7 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -51317,6 +51317,11 @@ "replicas" ], "properties": { + "collisionCount": { + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "type": "integer", + "format": "int64" + }, "currentReplicas": { "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "type": "integer", @@ -52166,6 +52171,11 @@ "replicas" ], "properties": { + "collisionCount": { + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "type": "integer", + "format": "int64" + }, "currentReplicas": { "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "type": "integer", diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json index 3d19866302d..b484a864d33 100644 --- a/api/swagger-spec/apps_v1beta1.json +++ b/api/swagger-spec/apps_v1beta1.json @@ -6110,6 +6110,11 @@ "updateRevision": { "type": "string", "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)" + }, + "collisionCount": { + "type": "integer", + "format": "int64", + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." } } }, diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json index 0977ae02c09..3810848d4c2 100644 --- a/api/swagger-spec/apps_v1beta2.json +++ b/api/swagger-spec/apps_v1beta2.json @@ -7729,6 +7729,11 @@ "updateRevision": { "type": "string", "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)" + }, + "collisionCount": { + "type": "integer", + "format": "int64", + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." } } }, diff --git a/docs/api-reference/apps/v1beta1/definitions.html b/docs/api-reference/apps/v1beta1/definitions.html index 8730ab176a4..cab88482108 100755 --- a/docs/api-reference/apps/v1beta1/definitions.html +++ b/docs/api-reference/apps/v1beta1/definitions.html @@ -5125,6 +5125,13 @@ Examples:

    string

    + +

    collisionCount

    +

    collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

    +

    false

    +

    integer (int64)

    + + diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html index abd552247cb..85fa13658c9 100755 --- a/docs/api-reference/apps/v1beta2/definitions.html +++ b/docs/api-reference/apps/v1beta2/definitions.html @@ -1584,6 +1584,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    string

    + +

    collisionCount

    +

    collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

    +

    false

    +

    integer (int64)

    + + diff --git a/pkg/api/testing/fuzzer.go b/pkg/api/testing/fuzzer.go index 8ec590deb98..56492941243 100644 --- a/pkg/api/testing/fuzzer.go +++ b/pkg/api/testing/fuzzer.go @@ -734,6 +734,9 @@ func appsFuncs(codecs runtimeserializer.CodecFactory) []interface{} { if s.Status.ObservedGeneration == nil { s.Status.ObservedGeneration = new(int64) } + if s.Status.CollisionCount == nil { + s.Status.CollisionCount = new(int64) + } }, } } diff --git a/pkg/apis/apps/v1beta1/zz_generated.conversion.go b/pkg/apis/apps/v1beta1/zz_generated.conversion.go index 7da7c398cee..160c1884a4e 100644 --- a/pkg/apis/apps/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta1/zz_generated.conversion.go @@ -271,6 +271,7 @@ func autoConvert_v1beta1_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta1 out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } @@ -287,6 +288,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta1_StatefulSetStatus(in *apps.St out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } diff --git a/pkg/apis/apps/v1beta2/conversion.go b/pkg/apis/apps/v1beta2/conversion.go index 7fc32b3ccb4..feb93f049c7 100644 --- a/pkg/apis/apps/v1beta2/conversion.go +++ b/pkg/apis/apps/v1beta2/conversion.go @@ -234,6 +234,10 @@ func Convert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *appsv1beta2 out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + if in.CollisionCount != nil { + out.CollisionCount = new(int64) + *out.CollisionCount = *in.CollisionCount + } return nil } @@ -247,6 +251,10 @@ func Convert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.Statef out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + if in.CollisionCount != nil { + out.CollisionCount = new(int64) + *out.CollisionCount = *in.CollisionCount + } return nil } diff --git a/pkg/apis/apps/v1beta2/zz_generated.conversion.go b/pkg/apis/apps/v1beta2/zz_generated.conversion.go index 7bda17f45d6..9e88b34f700 100644 --- a/pkg/apis/apps/v1beta2/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta2/zz_generated.conversion.go @@ -197,6 +197,7 @@ func autoConvert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta2 out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } @@ -208,6 +209,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.St out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } diff --git a/pkg/apis/apps/validation/BUILD b/pkg/apis/apps/validation/BUILD index 2cd9d971bc6..d0bec4f4701 100644 --- a/pkg/apis/apps/validation/BUILD +++ b/pkg/apis/apps/validation/BUILD @@ -33,6 +33,7 @@ go_test( "//pkg/apis/apps:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/pkg/apis/apps/zz_generated.deepcopy.go b/pkg/apis/apps/zz_generated.deepcopy.go index 5ac521976c7..0a4d3638614 100644 --- a/pkg/apis/apps/zz_generated.deepcopy.go +++ b/pkg/apis/apps/zz_generated.deepcopy.go @@ -273,6 +273,15 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { **out = **in } } + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } return } diff --git a/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go index 40d559a6717..bc0a74ab76a 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go @@ -992,6 +992,11 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) i += copy(dAtA[i:], m.UpdateRevision) + if m.CollisionCount != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + } return i, nil } @@ -1339,6 +1344,9 @@ func (m *StatefulSetStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.UpdateRevision) n += 1 + l + sovGenerated(uint64(l)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } return n } @@ -1623,6 +1631,7 @@ func (this *StatefulSetStatus) String() string { `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, `}`, }, "") return s @@ -4574,6 +4583,26 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { } m.UpdateRevision = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -4817,119 +4846,119 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1816 bytes of a gzipped FileDescriptorProto + // 1820 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x77, 0xcf, 0x87, 0x3d, 0x2e, 0xaf, 0xc7, 0x71, 0xd9, 0xd8, 0xb3, 0x5e, 0x18, 0x5b, 0xcd, - 0x6a, 0xd7, 0xd9, 0x5d, 0xf7, 0x6c, 0xbc, 0xcb, 0x6a, 0x37, 0x91, 0x56, 0x78, 0xc6, 0x61, 0xd7, - 0x91, 0x8d, 0x9d, 0x1a, 0x3b, 0x88, 0x00, 0x52, 0x6a, 0x7a, 0x2a, 0xe3, 0x8e, 0xfb, 0x4b, 0xdd, - 0xd5, 0x43, 0x46, 0x5c, 0xf8, 0x03, 0x90, 0xc2, 0x99, 0xbf, 0x82, 0x23, 0x82, 0x1b, 0x27, 0x5f, - 0x10, 0x11, 0x17, 0x72, 0xb2, 0xc8, 0xe4, 0xca, 0x95, 0x4b, 0x24, 0x24, 0x54, 0xd5, 0xd5, 0xdf, - 0xdd, 0xf6, 0x18, 0x09, 0x1f, 0xb8, 0x4d, 0xd7, 0x7b, 0xef, 0xf7, 0x5e, 0x55, 0xbd, 0x7a, 0xef, - 0xf7, 0x06, 0xfc, 0xf0, 0xec, 0x4b, 0x57, 0xd1, 0xac, 0xd6, 0x99, 0xd7, 0x23, 0x8e, 0x49, 0x28, - 0x71, 0x5b, 0x43, 0x62, 0xf6, 0x2d, 0xa7, 0x25, 0x04, 0xd8, 0xd6, 0x5a, 0xd8, 0xb6, 0xdd, 0xd6, - 0xf0, 0x4e, 0x8f, 0x50, 0x7c, 0xa7, 0x35, 0x20, 0x26, 0x71, 0x30, 0x25, 0x7d, 0xc5, 0x76, 0x2c, - 0x6a, 0xc1, 0x55, 0x5f, 0x51, 0xc1, 0xb6, 0xa6, 0x30, 0x45, 0x45, 0x28, 0xae, 0x6d, 0x0d, 0x34, - 0x7a, 0xea, 0xf5, 0x14, 0xd5, 0x32, 0x5a, 0x03, 0x6b, 0x60, 0xb5, 0xb8, 0x7e, 0xcf, 0x7b, 0xca, - 0xbf, 0xf8, 0x07, 0xff, 0xe5, 0xe3, 0xac, 0xc9, 0x31, 0x87, 0xaa, 0xe5, 0x90, 0xd6, 0x30, 0xe3, - 0x6b, 0xed, 0x76, 0x4c, 0xc7, 0xb6, 0x74, 0x4d, 0x1d, 0x15, 0x85, 0xb5, 0xf6, 0x79, 0xa4, 0x6a, - 0x60, 0xf5, 0x54, 0x33, 0x89, 0x33, 0x6a, 0xd9, 0x67, 0x03, 0xb6, 0xe0, 0xb6, 0x0c, 0x42, 0x71, - 0x9e, 0x83, 0x56, 0x91, 0x95, 0xe3, 0x99, 0x54, 0x33, 0x48, 0xc6, 0xe0, 0x8b, 0xab, 0x0c, 0x5c, - 0xf5, 0x94, 0x18, 0x38, 0x63, 0xf7, 0x59, 0x91, 0x9d, 0x47, 0x35, 0xbd, 0xa5, 0x99, 0xd4, 0xa5, - 0x4e, 0xda, 0x48, 0xfe, 0x97, 0x04, 0x60, 0xc7, 0x32, 0xa9, 0x63, 0xe9, 0x3a, 0x71, 0x10, 0x19, - 0x6a, 0xae, 0x66, 0x99, 0xf0, 0x09, 0xa8, 0xb1, 0xfd, 0xf4, 0x31, 0xc5, 0x0d, 0x69, 0x43, 0xda, - 0x9c, 0xdb, 0xfe, 0x54, 0x89, 0x2e, 0x25, 0x84, 0x57, 0xec, 0xb3, 0x01, 0x5b, 0x70, 0x15, 0xa6, - 0xad, 0x0c, 0xef, 0x28, 0x87, 0xbd, 0x67, 0x44, 0xa5, 0x07, 0x84, 0xe2, 0x36, 0x3c, 0xbf, 0x58, - 0x9f, 0x1a, 0x5f, 0xac, 0x83, 0x68, 0x0d, 0x85, 0xa8, 0xf0, 0x10, 0x54, 0x38, 0x7a, 0x89, 0xa3, - 0x6f, 0x15, 0xa2, 0x8b, 0x4d, 0x2b, 0x08, 0xff, 0xf2, 0xfe, 0x73, 0x4a, 0x4c, 0x16, 0x5e, 0xfb, - 0x1d, 0x01, 0x5d, 0xd9, 0xc5, 0x14, 0x23, 0x0e, 0x04, 0x3f, 0x01, 0x35, 0x47, 0x84, 0xdf, 0x28, - 0x6f, 0x48, 0x9b, 0xe5, 0xf6, 0x2d, 0xa1, 0x55, 0x0b, 0xb6, 0x85, 0x42, 0x0d, 0xf9, 0x5c, 0x02, - 0x2b, 0xd9, 0x7d, 0xef, 0x6b, 0x2e, 0x85, 0x3f, 0xcf, 0xec, 0x5d, 0x99, 0x6c, 0xef, 0xcc, 0x9a, - 0xef, 0x3c, 0x74, 0x1c, 0xac, 0xc4, 0xf6, 0x7d, 0x04, 0xaa, 0x1a, 0x25, 0x86, 0xdb, 0x28, 0x6d, - 0x94, 0x37, 0xe7, 0xb6, 0x3f, 0x56, 0x0a, 0x72, 0x5d, 0xc9, 0x46, 0xd7, 0x9e, 0x17, 0xb8, 0xd5, - 0x3d, 0x86, 0x80, 0x7c, 0x20, 0xf9, 0x37, 0x25, 0x00, 0x76, 0x89, 0xad, 0x5b, 0x23, 0x83, 0x98, - 0xf4, 0x06, 0xae, 0x6e, 0x0f, 0x54, 0x5c, 0x9b, 0xa8, 0xe2, 0xea, 0x3e, 0x2c, 0xdc, 0x41, 0x14, - 0x54, 0xd7, 0x26, 0x6a, 0x74, 0x69, 0xec, 0x0b, 0x71, 0x08, 0xf8, 0x10, 0x4c, 0xbb, 0x14, 0x53, - 0xcf, 0xe5, 0x57, 0x36, 0xb7, 0x7d, 0x7b, 0x12, 0x30, 0x6e, 0xd0, 0xae, 0x0b, 0xb8, 0x69, 0xff, - 0x1b, 0x09, 0x20, 0xf9, 0xef, 0x65, 0xb0, 0x14, 0x29, 0x77, 0x2c, 0xb3, 0xaf, 0x51, 0x96, 0xd2, - 0xf7, 0x40, 0x85, 0x8e, 0x6c, 0xc2, 0xcf, 0x64, 0xb6, 0xfd, 0x61, 0x10, 0xcc, 0xf1, 0xc8, 0x26, - 0x6f, 0x2f, 0xd6, 0x57, 0x73, 0x4c, 0x98, 0x08, 0x71, 0x23, 0xb8, 0x1f, 0xc6, 0x59, 0xe2, 0xe6, - 0x9f, 0x27, 0x9d, 0xbf, 0xbd, 0x58, 0xcf, 0xa9, 0x35, 0x4a, 0x88, 0x94, 0x0c, 0x11, 0x7e, 0x00, - 0xa6, 0x1d, 0x82, 0x5d, 0xcb, 0x6c, 0x54, 0x38, 0x5a, 0xb8, 0x15, 0xc4, 0x57, 0x91, 0x90, 0xc2, - 0xdb, 0x60, 0xc6, 0x20, 0xae, 0x8b, 0x07, 0xa4, 0x51, 0xe5, 0x8a, 0x0b, 0x42, 0x71, 0xe6, 0xc0, - 0x5f, 0x46, 0x81, 0x1c, 0x3e, 0x03, 0x75, 0x1d, 0xbb, 0xf4, 0xc4, 0xee, 0x63, 0x4a, 0x8e, 0x35, - 0x83, 0x34, 0xa6, 0xf9, 0x81, 0x7e, 0x34, 0xd9, 0xdd, 0x33, 0x8b, 0xf6, 0x8a, 0x40, 0xaf, 0xef, - 0x27, 0x90, 0x50, 0x0a, 0x19, 0x0e, 0x01, 0x64, 0x2b, 0xc7, 0x0e, 0x36, 0x5d, 0xff, 0xa0, 0x98, - 0xbf, 0x99, 0x6b, 0xfb, 0x5b, 0x13, 0xfe, 0xe0, 0x7e, 0x06, 0x0d, 0xe5, 0x78, 0x90, 0xff, 0x20, - 0x81, 0x7a, 0x74, 0x4d, 0x37, 0xf0, 0x56, 0xbf, 0x4d, 0xbe, 0xd5, 0xef, 0x4f, 0x90, 0x9c, 0x05, - 0x6f, 0xf4, 0x9f, 0x25, 0x00, 0x23, 0x25, 0x64, 0xe9, 0x7a, 0x0f, 0xab, 0x67, 0x70, 0x03, 0x54, - 0x4c, 0x6c, 0x04, 0x39, 0x19, 0x3e, 0x90, 0x1f, 0x63, 0x83, 0x20, 0x2e, 0x81, 0x2f, 0x24, 0x00, - 0x3d, 0x7e, 0xf4, 0xfd, 0x1d, 0xd3, 0xb4, 0x28, 0x66, 0xa7, 0x11, 0x04, 0xd4, 0x99, 0x20, 0xa0, - 0xc0, 0x97, 0x72, 0x92, 0x41, 0xb9, 0x6f, 0x52, 0x67, 0x14, 0xdd, 0x42, 0x56, 0x01, 0xe5, 0xb8, - 0x86, 0x3f, 0x03, 0xc0, 0x11, 0x98, 0xc7, 0x96, 0x78, 0xb6, 0xc5, 0x35, 0x20, 0x70, 0xdf, 0xb1, - 0xcc, 0xa7, 0xda, 0x20, 0x2a, 0x2c, 0x28, 0x84, 0x40, 0x31, 0xb8, 0xb5, 0xfb, 0x60, 0xb5, 0x20, - 0x4e, 0x78, 0x0b, 0x94, 0xcf, 0xc8, 0xc8, 0x3f, 0x2a, 0xc4, 0x7e, 0xc2, 0x65, 0x50, 0x1d, 0x62, - 0xdd, 0x23, 0xfe, 0x9b, 0x44, 0xfe, 0xc7, 0xdd, 0xd2, 0x97, 0x92, 0xfc, 0xfb, 0x6a, 0x3c, 0x53, - 0x58, 0xbd, 0x81, 0x9b, 0xac, 0x3d, 0xd8, 0xba, 0xa6, 0x62, 0x97, 0x63, 0x54, 0xdb, 0xef, 0xf8, - 0xad, 0xc1, 0x5f, 0x43, 0xa1, 0x14, 0xfe, 0x02, 0xd4, 0x5c, 0xa2, 0x13, 0x95, 0x5a, 0x8e, 0x28, - 0x71, 0x9f, 0x4d, 0x98, 0x53, 0xb8, 0x47, 0xf4, 0xae, 0x30, 0xf5, 0xe1, 0x83, 0x2f, 0x14, 0x42, - 0xc2, 0x87, 0xa0, 0x46, 0x89, 0x61, 0xeb, 0x98, 0x12, 0x71, 0x7a, 0x89, 0xbc, 0x62, 0xb5, 0x83, - 0x81, 0x1d, 0x59, 0xfd, 0x63, 0xa1, 0xc6, 0xab, 0x67, 0x98, 0xa7, 0xc1, 0x2a, 0x0a, 0x61, 0xe0, - 0x4f, 0x41, 0xcd, 0xa5, 0xac, 0xab, 0x0f, 0x46, 0xbc, 0xa2, 0x5c, 0xd6, 0x56, 0xe2, 0x75, 0xd4, - 0x37, 0x89, 0xa0, 0x83, 0x15, 0x14, 0xc2, 0xc1, 0x1d, 0xb0, 0x60, 0x68, 0x26, 0x22, 0xb8, 0x3f, - 0xea, 0x12, 0xd5, 0x32, 0xfb, 0x2e, 0x2f, 0x45, 0xd5, 0xf6, 0xaa, 0x30, 0x5a, 0x38, 0x48, 0x8a, - 0x51, 0x5a, 0x1f, 0xee, 0x83, 0xe5, 0xa0, 0xed, 0x7e, 0xab, 0xb9, 0xd4, 0x72, 0x46, 0xfb, 0x9a, - 0xa1, 0x51, 0x5e, 0xa0, 0xaa, 0xed, 0xc6, 0xf8, 0x62, 0x7d, 0x19, 0xe5, 0xc8, 0x51, 0xae, 0x15, - 0xab, 0x9d, 0x36, 0xf6, 0x5c, 0xd2, 0xe7, 0x05, 0xa7, 0x16, 0xd5, 0xce, 0x23, 0xbe, 0x8a, 0x84, - 0x14, 0xfe, 0x24, 0x91, 0xa6, 0xb5, 0xeb, 0xa5, 0x69, 0xbd, 0x38, 0x45, 0xe1, 0x09, 0x58, 0xb5, - 0x1d, 0x6b, 0xe0, 0x10, 0xd7, 0xdd, 0x25, 0xb8, 0xaf, 0x6b, 0x26, 0x09, 0x4e, 0x66, 0x96, 0xef, - 0xe8, 0xbd, 0xf1, 0xc5, 0xfa, 0xea, 0x51, 0xbe, 0x0a, 0x2a, 0xb2, 0x95, 0xff, 0x5c, 0x01, 0xb7, - 0xd2, 0x3d, 0x0e, 0x3e, 0x00, 0xd0, 0xea, 0xb9, 0xc4, 0x19, 0x92, 0xfe, 0x37, 0x3e, 0x71, 0x63, - 0xec, 0x46, 0xe2, 0xec, 0x26, 0x7c, 0xb7, 0x87, 0x19, 0x0d, 0x94, 0x63, 0xe5, 0xf3, 0x23, 0xf1, - 0x00, 0x4a, 0x3c, 0xd0, 0x18, 0x3f, 0xca, 0x3c, 0x82, 0x1d, 0xb0, 0x20, 0xde, 0x7e, 0x20, 0xe4, - 0xc9, 0x1a, 0xbb, 0xf7, 0x93, 0xa4, 0x18, 0xa5, 0xf5, 0xe1, 0x37, 0x60, 0x11, 0x0f, 0xb1, 0xa6, - 0xe3, 0x9e, 0x4e, 0x42, 0x90, 0x0a, 0x07, 0x79, 0x57, 0x80, 0x2c, 0xee, 0xa4, 0x15, 0x50, 0xd6, - 0x06, 0x1e, 0x80, 0x25, 0xcf, 0xcc, 0x42, 0xf9, 0x79, 0xf8, 0x9e, 0x80, 0x5a, 0x3a, 0xc9, 0xaa, - 0xa0, 0x3c, 0x3b, 0xf8, 0x04, 0x00, 0x35, 0x68, 0xcc, 0x6e, 0x63, 0x9a, 0x57, 0xd2, 0x4f, 0x26, - 0x78, 0x2f, 0x61, 0x37, 0x8f, 0xaa, 0x58, 0xb8, 0xe4, 0xa2, 0x18, 0x26, 0xbc, 0x07, 0xe6, 0x1d, - 0xf6, 0x02, 0xc2, 0x50, 0x67, 0x78, 0xa8, 0xdf, 0x11, 0x66, 0xf3, 0x28, 0x2e, 0x44, 0x49, 0x5d, - 0x78, 0x17, 0xd4, 0x55, 0x4b, 0xd7, 0x79, 0xe6, 0x77, 0x2c, 0xcf, 0xa4, 0x3c, 0x79, 0xcb, 0x6d, - 0xc8, 0x3a, 0x73, 0x27, 0x21, 0x41, 0x29, 0x4d, 0xf9, 0x4f, 0x52, 0xbc, 0xcd, 0x04, 0xcf, 0x19, - 0xde, 0x4d, 0x50, 0x9f, 0x0f, 0x52, 0xd4, 0x67, 0x25, 0x6b, 0x11, 0x63, 0x3e, 0x1a, 0x98, 0x67, - 0xc9, 0xaf, 0x99, 0x03, 0xff, 0xc2, 0x45, 0x49, 0xfc, 0xf4, 0xd2, 0xa7, 0x14, 0x6a, 0xc7, 0x1a, - 0xe3, 0x22, 0xdf, 0x79, 0x5c, 0x88, 0x92, 0xc8, 0xf2, 0xd7, 0xa0, 0x9e, 0x7c, 0x87, 0x09, 0x4e, - 0x2f, 0x5d, 0xc9, 0xe9, 0xdf, 0x48, 0x60, 0xb5, 0xc0, 0x3b, 0xd4, 0x41, 0xdd, 0xc0, 0xcf, 0x63, - 0x39, 0x72, 0x25, 0x37, 0x66, 0x53, 0x93, 0xe2, 0x4f, 0x4d, 0xca, 0x9e, 0x49, 0x0f, 0x9d, 0x2e, - 0x75, 0x34, 0x73, 0xe0, 0xdf, 0xc3, 0x41, 0x02, 0x0b, 0xa5, 0xb0, 0xe1, 0x63, 0x50, 0x33, 0xf0, - 0xf3, 0xae, 0xe7, 0x0c, 0xf2, 0xce, 0x6b, 0x32, 0x3f, 0xbc, 0x7f, 0x1c, 0x08, 0x14, 0x14, 0xe2, - 0xc9, 0x87, 0x60, 0x23, 0xb1, 0x49, 0x56, 0x2a, 0xc8, 0x53, 0x4f, 0xef, 0x92, 0xe8, 0xc2, 0x3f, - 0x06, 0xb3, 0x36, 0x76, 0xa8, 0x16, 0x96, 0x8b, 0x6a, 0x7b, 0x7e, 0x7c, 0xb1, 0x3e, 0x7b, 0x14, - 0x2c, 0xa2, 0x48, 0x2e, 0xff, 0x5b, 0x02, 0xd5, 0xae, 0x8a, 0x75, 0x72, 0x03, 0xa3, 0xc3, 0x6e, - 0x62, 0x74, 0x90, 0x0b, 0x93, 0x88, 0xc7, 0x53, 0x38, 0x35, 0xec, 0xa7, 0xa6, 0x86, 0xf7, 0xaf, - 0xc0, 0xb9, 0x7c, 0x60, 0xf8, 0x0a, 0xcc, 0x86, 0xee, 0x12, 0x55, 0x52, 0xba, 0xaa, 0x4a, 0xca, - 0xbf, 0x2b, 0x81, 0xb9, 0x98, 0x8b, 0xeb, 0x59, 0xb3, 0xe3, 0x8e, 0x11, 0x0d, 0x56, 0x86, 0xb6, - 0x27, 0xd9, 0x88, 0x12, 0x90, 0x0a, 0x9f, 0xbf, 0x45, 0xdd, 0x3b, 0xcb, 0x35, 0xbe, 0x06, 0x75, - 0x8a, 0x9d, 0x01, 0xa1, 0x81, 0x8c, 0x1f, 0xd8, 0x6c, 0xc4, 0xf4, 0x8f, 0x13, 0x52, 0x94, 0xd2, - 0x5e, 0xbb, 0x07, 0xe6, 0x13, 0xce, 0xae, 0x45, 0xc2, 0x5e, 0xb0, 0xc3, 0x89, 0x92, 0xf3, 0x06, - 0xb2, 0xeb, 0x41, 0x22, 0xbb, 0x36, 0x8b, 0x0f, 0x33, 0xf6, 0x64, 0x8a, 0x72, 0x0c, 0xa5, 0x72, - 0xec, 0xa3, 0x89, 0xd0, 0x2e, 0xcf, 0xb4, 0x3f, 0x4a, 0x60, 0x21, 0xa6, 0x7d, 0x03, 0x13, 0xcc, - 0x5e, 0x72, 0x82, 0x79, 0x7f, 0x92, 0x4d, 0x14, 0x8c, 0x30, 0x7f, 0xa9, 0x26, 0x82, 0xff, 0xbf, - 0x27, 0xd5, 0xbf, 0x02, 0xcb, 0x43, 0x4b, 0xf7, 0x0c, 0xd2, 0xd1, 0xb1, 0x66, 0x04, 0x0a, 0x8c, - 0xc1, 0x94, 0xd3, 0x7f, 0x54, 0x84, 0xf0, 0xc4, 0x71, 0x35, 0x97, 0x12, 0x93, 0x3e, 0x8a, 0x2c, - 0xdb, 0xdf, 0x15, 0x4e, 0x96, 0x1f, 0xe5, 0xc0, 0xa1, 0x5c, 0x27, 0xf0, 0x07, 0x60, 0x8e, 0x11, - 0x38, 0x4d, 0x25, 0x6c, 0x16, 0x14, 0xd3, 0xff, 0x92, 0x00, 0x9a, 0xeb, 0x46, 0x22, 0x14, 0xd7, - 0x83, 0xa7, 0x60, 0xc9, 0xb6, 0xfa, 0x07, 0xd8, 0xc4, 0x03, 0xc2, 0xda, 0xde, 0x11, 0xff, 0x43, - 0x93, 0x33, 0xed, 0xd9, 0xf6, 0x17, 0x01, 0x53, 0x3a, 0xca, 0xaa, 0xbc, 0x65, 0x94, 0x35, 0xbb, - 0xcc, 0x79, 0x40, 0x1e, 0x24, 0x74, 0x40, 0xdd, 0x13, 0xed, 0x47, 0x0c, 0x1e, 0xfe, 0xfc, 0xbf, - 0x3d, 0x49, 0x86, 0x9d, 0x24, 0x2c, 0xa3, 0x6a, 0x94, 0x5c, 0x47, 0x29, 0x0f, 0x85, 0x83, 0x44, - 0xed, 0xbf, 0x19, 0x24, 0xe4, 0xbf, 0x96, 0xc1, 0x62, 0xe6, 0xe9, 0xc2, 0x1f, 0x5d, 0xc2, 0xb8, - 0x57, 0xfe, 0x67, 0x6c, 0x3b, 0x43, 0x18, 0xcb, 0xd7, 0x20, 0x8c, 0x3b, 0x60, 0x41, 0xf5, 0x1c, - 0x87, 0xcd, 0xfa, 0x49, 0x96, 0x1d, 0x52, 0xf5, 0x4e, 0x52, 0x8c, 0xd2, 0xfa, 0x79, 0x6c, 0xbf, - 0x7a, 0x4d, 0xb6, 0x1f, 0x8f, 0x42, 0x30, 0x36, 0x3f, 0xed, 0xb2, 0x51, 0x08, 0xe2, 0x96, 0xd6, - 0x67, 0xdd, 0xca, 0x47, 0x0d, 0x11, 0x66, 0x92, 0xdd, 0xea, 0x24, 0x21, 0x45, 0x29, 0x6d, 0xf9, - 0x6f, 0x12, 0x78, 0xb7, 0x30, 0xcb, 0xe0, 0x4e, 0x82, 0x04, 0x6f, 0xa5, 0x48, 0xf0, 0xf7, 0x0a, - 0x0d, 0x63, 0x5c, 0xd8, 0xc9, 0xe7, 0xc2, 0x5f, 0x4d, 0xc6, 0x85, 0x73, 0x88, 0xda, 0xd5, 0xa4, - 0xb8, 0xbd, 0x75, 0xfe, 0xba, 0x39, 0xf5, 0xf2, 0x75, 0x73, 0xea, 0xd5, 0xeb, 0xe6, 0xd4, 0xaf, - 0xc7, 0x4d, 0xe9, 0x7c, 0xdc, 0x94, 0x5e, 0x8e, 0x9b, 0xd2, 0xab, 0x71, 0x53, 0xfa, 0xc7, 0xb8, - 0x29, 0xfd, 0xf6, 0x4d, 0x73, 0xea, 0xf1, 0x8c, 0xf0, 0xf8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xa4, 0xc5, 0x7c, 0x3a, 0x7d, 0x19, 0x00, 0x00, + 0x15, 0x77, 0xcf, 0x87, 0x3d, 0x53, 0x5e, 0x8f, 0xe3, 0xb2, 0xb1, 0x67, 0xbd, 0x30, 0xb6, 0x86, + 0xd5, 0xae, 0xb3, 0xbb, 0xee, 0xd9, 0x78, 0x97, 0xd5, 0x26, 0x91, 0x22, 0x3c, 0xe3, 0x90, 0x38, + 0xb2, 0xb1, 0x53, 0x63, 0x07, 0x11, 0x40, 0x4a, 0x4d, 0x4f, 0x65, 0xdc, 0x71, 0x7f, 0xa9, 0xbb, + 0x7a, 0xc8, 0x88, 0x0b, 0x77, 0x90, 0xc2, 0x99, 0xbf, 0x82, 0x23, 0x82, 0x1b, 0x27, 0x5f, 0x90, + 0x22, 0x2e, 0xe4, 0x64, 0x91, 0xc9, 0x95, 0x2b, 0x97, 0x48, 0x48, 0xa8, 0xaa, 0xab, 0xbf, 0xbb, + 0xed, 0x31, 0x12, 0x3e, 0x70, 0x9b, 0xae, 0xf7, 0xde, 0xef, 0xbd, 0xaa, 0x7a, 0xf5, 0xde, 0xef, + 0x0d, 0xf8, 0xe1, 0xe9, 0xb7, 0x8e, 0xac, 0x9a, 0xad, 0x53, 0xb7, 0x47, 0x6c, 0x83, 0x50, 0xe2, + 0xb4, 0x86, 0xc4, 0xe8, 0x9b, 0x76, 0x4b, 0x08, 0xb0, 0xa5, 0xb6, 0xb0, 0x65, 0x39, 0xad, 0xe1, + 0xad, 0x1e, 0xa1, 0xf8, 0x56, 0x6b, 0x40, 0x0c, 0x62, 0x63, 0x4a, 0xfa, 0xb2, 0x65, 0x9b, 0xd4, + 0x84, 0x2b, 0x9e, 0xa2, 0x8c, 0x2d, 0x55, 0x66, 0x8a, 0xb2, 0x50, 0x5c, 0xdd, 0x1c, 0xa8, 0xf4, + 0xc4, 0xed, 0xc9, 0x8a, 0xa9, 0xb7, 0x06, 0xe6, 0xc0, 0x6c, 0x71, 0xfd, 0x9e, 0xfb, 0x9c, 0x7f, + 0xf1, 0x0f, 0xfe, 0xcb, 0xc3, 0x59, 0x6d, 0x46, 0x1c, 0x2a, 0xa6, 0x4d, 0x5a, 0xc3, 0x94, 0xaf, + 0xd5, 0x9b, 0x11, 0x1d, 0xcb, 0xd4, 0x54, 0x65, 0x94, 0x17, 0xd6, 0xea, 0xd7, 0xa1, 0xaa, 0x8e, + 0x95, 0x13, 0xd5, 0x20, 0xf6, 0xa8, 0x65, 0x9d, 0x0e, 0xd8, 0x82, 0xd3, 0xd2, 0x09, 0xc5, 0x59, + 0x0e, 0x5a, 0x79, 0x56, 0xb6, 0x6b, 0x50, 0x55, 0x27, 0x29, 0x83, 0x6f, 0x2e, 0x33, 0x70, 0x94, + 0x13, 0xa2, 0xe3, 0x94, 0xdd, 0x57, 0x79, 0x76, 0x2e, 0x55, 0xb5, 0x96, 0x6a, 0x50, 0x87, 0xda, + 0x49, 0xa3, 0xe6, 0xbf, 0x24, 0x00, 0x3b, 0xa6, 0x41, 0x6d, 0x53, 0xd3, 0x88, 0x8d, 0xc8, 0x50, + 0x75, 0x54, 0xd3, 0x80, 0xcf, 0x40, 0x85, 0xed, 0xa7, 0x8f, 0x29, 0xae, 0x4b, 0xeb, 0xd2, 0xc6, + 0xec, 0xd6, 0x97, 0x72, 0x78, 0x29, 0x01, 0xbc, 0x6c, 0x9d, 0x0e, 0xd8, 0x82, 0x23, 0x33, 0x6d, + 0x79, 0x78, 0x4b, 0x3e, 0xe8, 0xbd, 0x20, 0x0a, 0xdd, 0x27, 0x14, 0xb7, 0xe1, 0xd9, 0xf9, 0xda, + 0xd4, 0xf8, 0x7c, 0x0d, 0x84, 0x6b, 0x28, 0x40, 0x85, 0x07, 0xa0, 0xc4, 0xd1, 0x0b, 0x1c, 0x7d, + 0x33, 0x17, 0x5d, 0x6c, 0x5a, 0x46, 0xf8, 0x97, 0xf7, 0x5f, 0x52, 0x62, 0xb0, 0xf0, 0xda, 0x1f, + 0x08, 0xe8, 0xd2, 0x0e, 0xa6, 0x18, 0x71, 0x20, 0xf8, 0x05, 0xa8, 0xd8, 0x22, 0xfc, 0x7a, 0x71, + 0x5d, 0xda, 0x28, 0xb6, 0x6f, 0x08, 0xad, 0x8a, 0xbf, 0x2d, 0x14, 0x68, 0x34, 0xcf, 0x24, 0xb0, + 0x9c, 0xde, 0xf7, 0x9e, 0xea, 0x50, 0xf8, 0xf3, 0xd4, 0xde, 0xe5, 0xc9, 0xf6, 0xce, 0xac, 0xf9, + 0xce, 0x03, 0xc7, 0xfe, 0x4a, 0x64, 0xdf, 0x87, 0xa0, 0xac, 0x52, 0xa2, 0x3b, 0xf5, 0xc2, 0x7a, + 0x71, 0x63, 0x76, 0xeb, 0x73, 0x39, 0x27, 0xd7, 0xe5, 0x74, 0x74, 0xed, 0x39, 0x81, 0x5b, 0xde, + 0x65, 0x08, 0xc8, 0x03, 0x6a, 0xfe, 0xb6, 0x00, 0xc0, 0x0e, 0xb1, 0x34, 0x73, 0xa4, 0x13, 0x83, + 0x5e, 0xc3, 0xd5, 0xed, 0x82, 0x92, 0x63, 0x11, 0x45, 0x5c, 0xdd, 0xa7, 0xb9, 0x3b, 0x08, 0x83, + 0xea, 0x5a, 0x44, 0x09, 0x2f, 0x8d, 0x7d, 0x21, 0x0e, 0x01, 0x1f, 0x83, 0x69, 0x87, 0x62, 0xea, + 0x3a, 0xfc, 0xca, 0x66, 0xb7, 0x6e, 0x4e, 0x02, 0xc6, 0x0d, 0xda, 0x35, 0x01, 0x37, 0xed, 0x7d, + 0x23, 0x01, 0xd4, 0xfc, 0x7b, 0x11, 0x2c, 0x86, 0xca, 0x1d, 0xd3, 0xe8, 0xab, 0x94, 0xa5, 0xf4, + 0x5d, 0x50, 0xa2, 0x23, 0x8b, 0xf0, 0x33, 0xa9, 0xb6, 0x3f, 0xf5, 0x83, 0x39, 0x1a, 0x59, 0xe4, + 0xfd, 0xf9, 0xda, 0x4a, 0x86, 0x09, 0x13, 0x21, 0x6e, 0x04, 0xf7, 0x82, 0x38, 0x0b, 0xdc, 0xfc, + 0xeb, 0xb8, 0xf3, 0xf7, 0xe7, 0x6b, 0x19, 0xb5, 0x46, 0x0e, 0x90, 0xe2, 0x21, 0xc2, 0x4f, 0xc0, + 0xb4, 0x4d, 0xb0, 0x63, 0x1a, 0xf5, 0x12, 0x47, 0x0b, 0xb6, 0x82, 0xf8, 0x2a, 0x12, 0x52, 0x78, + 0x13, 0xcc, 0xe8, 0xc4, 0x71, 0xf0, 0x80, 0xd4, 0xcb, 0x5c, 0x71, 0x5e, 0x28, 0xce, 0xec, 0x7b, + 0xcb, 0xc8, 0x97, 0xc3, 0x17, 0xa0, 0xa6, 0x61, 0x87, 0x1e, 0x5b, 0x7d, 0x4c, 0xc9, 0x91, 0xaa, + 0x93, 0xfa, 0x34, 0x3f, 0xd0, 0xcf, 0x26, 0xbb, 0x7b, 0x66, 0xd1, 0x5e, 0x16, 0xe8, 0xb5, 0xbd, + 0x18, 0x12, 0x4a, 0x20, 0xc3, 0x21, 0x80, 0x6c, 0xe5, 0xc8, 0xc6, 0x86, 0xe3, 0x1d, 0x14, 0xf3, + 0x37, 0x73, 0x65, 0x7f, 0xab, 0xc2, 0x1f, 0xdc, 0x4b, 0xa1, 0xa1, 0x0c, 0x0f, 0xcd, 0x3f, 0x4a, + 0xa0, 0x16, 0x5e, 0xd3, 0x35, 0xbc, 0xd5, 0x87, 0xf1, 0xb7, 0xfa, 0xfd, 0x09, 0x92, 0x33, 0xe7, + 0x8d, 0xfe, 0xb3, 0x00, 0x60, 0xa8, 0x84, 0x4c, 0x4d, 0xeb, 0x61, 0xe5, 0x14, 0xae, 0x83, 0x92, + 0x81, 0x75, 0x3f, 0x27, 0x83, 0x07, 0xf2, 0x63, 0xac, 0x13, 0xc4, 0x25, 0xf0, 0x95, 0x04, 0xa0, + 0xcb, 0x8f, 0xbe, 0xbf, 0x6d, 0x18, 0x26, 0xc5, 0xec, 0x34, 0xfc, 0x80, 0x3a, 0x13, 0x04, 0xe4, + 0xfb, 0x92, 0x8f, 0x53, 0x28, 0xf7, 0x0d, 0x6a, 0x8f, 0xc2, 0x5b, 0x48, 0x2b, 0xa0, 0x0c, 0xd7, + 0xf0, 0x67, 0x00, 0xd8, 0x02, 0xf3, 0xc8, 0x14, 0xcf, 0x36, 0xbf, 0x06, 0xf8, 0xee, 0x3b, 0xa6, + 0xf1, 0x5c, 0x1d, 0x84, 0x85, 0x05, 0x05, 0x10, 0x28, 0x02, 0xb7, 0x7a, 0x1f, 0xac, 0xe4, 0xc4, + 0x09, 0x6f, 0x80, 0xe2, 0x29, 0x19, 0x79, 0x47, 0x85, 0xd8, 0x4f, 0xb8, 0x04, 0xca, 0x43, 0xac, + 0xb9, 0xc4, 0x7b, 0x93, 0xc8, 0xfb, 0xb8, 0x53, 0xf8, 0x56, 0x6a, 0xfe, 0xa1, 0x1c, 0xcd, 0x14, + 0x56, 0x6f, 0xe0, 0x06, 0x6b, 0x0f, 0x96, 0xa6, 0x2a, 0xd8, 0xe1, 0x18, 0xe5, 0xf6, 0x07, 0x5e, + 0x6b, 0xf0, 0xd6, 0x50, 0x20, 0x85, 0xbf, 0x00, 0x15, 0x87, 0x68, 0x44, 0xa1, 0xa6, 0x2d, 0x4a, + 0xdc, 0x57, 0x13, 0xe6, 0x14, 0xee, 0x11, 0xad, 0x2b, 0x4c, 0x3d, 0x78, 0xff, 0x0b, 0x05, 0x90, + 0xf0, 0x31, 0xa8, 0x50, 0xa2, 0x5b, 0x1a, 0xa6, 0x44, 0x9c, 0x5e, 0x2c, 0xaf, 0x58, 0xed, 0x60, + 0x60, 0x87, 0x66, 0xff, 0x48, 0xa8, 0xf1, 0xea, 0x19, 0xe4, 0xa9, 0xbf, 0x8a, 0x02, 0x18, 0xf8, + 0x53, 0x50, 0x71, 0x28, 0xeb, 0xea, 0x83, 0x11, 0xaf, 0x28, 0x17, 0xb5, 0x95, 0x68, 0x1d, 0xf5, + 0x4c, 0x42, 0x68, 0x7f, 0x05, 0x05, 0x70, 0x70, 0x1b, 0xcc, 0xeb, 0xaa, 0x81, 0x08, 0xee, 0x8f, + 0xba, 0x44, 0x31, 0x8d, 0xbe, 0xc3, 0x4b, 0x51, 0xb9, 0xbd, 0x22, 0x8c, 0xe6, 0xf7, 0xe3, 0x62, + 0x94, 0xd4, 0x87, 0x7b, 0x60, 0xc9, 0x6f, 0xbb, 0x0f, 0x55, 0x87, 0x9a, 0xf6, 0x68, 0x4f, 0xd5, + 0x55, 0xca, 0x0b, 0x54, 0xb9, 0x5d, 0x1f, 0x9f, 0xaf, 0x2d, 0xa1, 0x0c, 0x39, 0xca, 0xb4, 0x62, + 0xb5, 0xd3, 0xc2, 0xae, 0x43, 0xfa, 0xbc, 0xe0, 0x54, 0xc2, 0xda, 0x79, 0xc8, 0x57, 0x91, 0x90, + 0xc2, 0x9f, 0xc4, 0xd2, 0xb4, 0x72, 0xb5, 0x34, 0xad, 0xe5, 0xa7, 0x28, 0x3c, 0x06, 0x2b, 0x96, + 0x6d, 0x0e, 0x6c, 0xe2, 0x38, 0x3b, 0x04, 0xf7, 0x35, 0xd5, 0x20, 0xfe, 0xc9, 0x54, 0xf9, 0x8e, + 0x3e, 0x1a, 0x9f, 0xaf, 0xad, 0x1c, 0x66, 0xab, 0xa0, 0x3c, 0xdb, 0xe6, 0x5f, 0x4a, 0xe0, 0x46, + 0xb2, 0xc7, 0xc1, 0x47, 0x00, 0x9a, 0x3d, 0x87, 0xd8, 0x43, 0xd2, 0x7f, 0xe0, 0x11, 0x37, 0xc6, + 0x6e, 0x24, 0xce, 0x6e, 0x82, 0x77, 0x7b, 0x90, 0xd2, 0x40, 0x19, 0x56, 0x1e, 0x3f, 0x12, 0x0f, + 0xa0, 0xc0, 0x03, 0x8d, 0xf0, 0xa3, 0xd4, 0x23, 0xd8, 0x06, 0xf3, 0xe2, 0xed, 0xfb, 0x42, 0x9e, + 0xac, 0x91, 0x7b, 0x3f, 0x8e, 0x8b, 0x51, 0x52, 0x1f, 0x3e, 0x00, 0x0b, 0x78, 0x88, 0x55, 0x0d, + 0xf7, 0x34, 0x12, 0x80, 0x94, 0x38, 0xc8, 0x87, 0x02, 0x64, 0x61, 0x3b, 0xa9, 0x80, 0xd2, 0x36, + 0x70, 0x1f, 0x2c, 0xba, 0x46, 0x1a, 0xca, 0xcb, 0xc3, 0x8f, 0x04, 0xd4, 0xe2, 0x71, 0x5a, 0x05, + 0x65, 0xd9, 0xc1, 0x67, 0x00, 0x28, 0x7e, 0x63, 0x76, 0xea, 0xd3, 0xbc, 0x92, 0x7e, 0x31, 0xc1, + 0x7b, 0x09, 0xba, 0x79, 0x58, 0xc5, 0x82, 0x25, 0x07, 0x45, 0x30, 0xe1, 0x5d, 0x30, 0x67, 0xb3, + 0x17, 0x10, 0x84, 0x3a, 0xc3, 0x43, 0xfd, 0x8e, 0x30, 0x9b, 0x43, 0x51, 0x21, 0x8a, 0xeb, 0xc2, + 0x3b, 0xa0, 0xa6, 0x98, 0x9a, 0xc6, 0x33, 0xbf, 0x63, 0xba, 0x06, 0xe5, 0xc9, 0x5b, 0x6c, 0x43, + 0xd6, 0x99, 0x3b, 0x31, 0x09, 0x4a, 0x68, 0x36, 0xff, 0x2c, 0x45, 0xdb, 0x8c, 0xff, 0x9c, 0xe1, + 0x9d, 0x18, 0xf5, 0xf9, 0x24, 0x41, 0x7d, 0x96, 0xd3, 0x16, 0x11, 0xe6, 0xa3, 0x82, 0x39, 0x96, + 0xfc, 0xaa, 0x31, 0xf0, 0x2e, 0x5c, 0x94, 0xc4, 0x2f, 0x2f, 0x7c, 0x4a, 0x81, 0x76, 0xa4, 0x31, + 0x2e, 0xf0, 0x9d, 0x47, 0x85, 0x28, 0x8e, 0xdc, 0xbc, 0x07, 0x6a, 0xf1, 0x77, 0x18, 0xe3, 0xf4, + 0xd2, 0xa5, 0x9c, 0xfe, 0x9d, 0x04, 0x56, 0x72, 0xbc, 0x43, 0x0d, 0xd4, 0x74, 0xfc, 0x32, 0x92, + 0x23, 0x97, 0x72, 0x63, 0x36, 0x35, 0xc9, 0xde, 0xd4, 0x24, 0xef, 0x1a, 0xf4, 0xc0, 0xee, 0x52, + 0x5b, 0x35, 0x06, 0xde, 0x3d, 0xec, 0xc7, 0xb0, 0x50, 0x02, 0x1b, 0x3e, 0x05, 0x15, 0x1d, 0xbf, + 0xec, 0xba, 0xf6, 0x20, 0xeb, 0xbc, 0x26, 0xf3, 0xc3, 0xfb, 0xc7, 0xbe, 0x40, 0x41, 0x01, 0x5e, + 0xf3, 0x00, 0xac, 0xc7, 0x36, 0xc9, 0x4a, 0x05, 0x79, 0xee, 0x6a, 0x5d, 0x12, 0x5e, 0xf8, 0xe7, + 0xa0, 0x6a, 0x61, 0x9b, 0xaa, 0x41, 0xb9, 0x28, 0xb7, 0xe7, 0xc6, 0xe7, 0x6b, 0xd5, 0x43, 0x7f, + 0x11, 0x85, 0xf2, 0xe6, 0xbf, 0x25, 0x50, 0xee, 0x2a, 0x58, 0x23, 0xd7, 0x30, 0x3a, 0xec, 0xc4, + 0x46, 0x87, 0x66, 0x6e, 0x12, 0xf1, 0x78, 0x72, 0xa7, 0x86, 0xbd, 0xc4, 0xd4, 0xf0, 0xf1, 0x25, + 0x38, 0x17, 0x0f, 0x0c, 0xb7, 0x41, 0x35, 0x70, 0x17, 0xab, 0x92, 0xd2, 0x65, 0x55, 0xb2, 0xf9, + 0xfb, 0x02, 0x98, 0x8d, 0xb8, 0xb8, 0x9a, 0x35, 0x3b, 0xee, 0x08, 0xd1, 0x60, 0x65, 0x68, 0x6b, + 0x92, 0x8d, 0xc8, 0x3e, 0xa9, 0xf0, 0xf8, 0x5b, 0xd8, 0xbd, 0xd3, 0x5c, 0xe3, 0x1e, 0xa8, 0x51, + 0x6c, 0x0f, 0x08, 0xf5, 0x65, 0xfc, 0xc0, 0xaa, 0x21, 0xd3, 0x3f, 0x8a, 0x49, 0x51, 0x42, 0x7b, + 0xf5, 0x2e, 0x98, 0x8b, 0x39, 0xbb, 0x12, 0x09, 0x7b, 0xc5, 0x0e, 0x27, 0x4c, 0xce, 0x6b, 0xc8, + 0xae, 0x47, 0xb1, 0xec, 0xda, 0xc8, 0x3f, 0xcc, 0xc8, 0x93, 0xc9, 0xcb, 0x31, 0x94, 0xc8, 0xb1, + 0xcf, 0x26, 0x42, 0xbb, 0x38, 0xd3, 0xfe, 0x24, 0x81, 0xf9, 0x88, 0xf6, 0x35, 0x4c, 0x30, 0xbb, + 0xf1, 0x09, 0xe6, 0xe3, 0x49, 0x36, 0x91, 0x33, 0xc2, 0xfc, 0xb5, 0x1c, 0x0b, 0xfe, 0xff, 0x9e, + 0x54, 0xff, 0x0a, 0x2c, 0x0d, 0x4d, 0xcd, 0xd5, 0x49, 0x47, 0xc3, 0xaa, 0xee, 0x2b, 0x30, 0x06, + 0x53, 0x4c, 0xfe, 0x51, 0x11, 0xc0, 0x13, 0xdb, 0x51, 0x1d, 0x4a, 0x0c, 0xfa, 0x24, 0xb4, 0x6c, + 0x7f, 0x57, 0x38, 0x59, 0x7a, 0x92, 0x01, 0x87, 0x32, 0x9d, 0xc0, 0x1f, 0x80, 0x59, 0x46, 0xe0, + 0x54, 0x85, 0xb0, 0x59, 0x50, 0x4c, 0xff, 0x8b, 0x02, 0x68, 0xb6, 0x1b, 0x8a, 0x50, 0x54, 0x0f, + 0x9e, 0x80, 0x45, 0xcb, 0xec, 0xef, 0x63, 0x03, 0x0f, 0x08, 0x6b, 0x7b, 0x87, 0xfc, 0x0f, 0x4d, + 0xce, 0xb4, 0xab, 0xed, 0x6f, 0x7c, 0xa6, 0x74, 0x98, 0x56, 0x79, 0xcf, 0x28, 0x6b, 0x7a, 0x99, + 0xf3, 0x80, 0x2c, 0x48, 0x68, 0x83, 0x9a, 0x2b, 0xda, 0x8f, 0x18, 0x3c, 0xbc, 0xf9, 0x7f, 0x6b, + 0x92, 0x0c, 0x3b, 0x8e, 0x59, 0x86, 0xd5, 0x28, 0xbe, 0x8e, 0x12, 0x1e, 0x72, 0x07, 0x89, 0xca, + 0x7f, 0x33, 0x48, 0x34, 0x7f, 0x53, 0x02, 0x0b, 0xa9, 0xa7, 0x0b, 0x7f, 0x74, 0x01, 0xe3, 0x5e, + 0xfe, 0x9f, 0xb1, 0xed, 0x14, 0x61, 0x2c, 0x5e, 0x81, 0x30, 0x6e, 0x83, 0x79, 0xc5, 0xb5, 0x6d, + 0x36, 0xeb, 0xc7, 0x59, 0x76, 0x40, 0xd5, 0x3b, 0x71, 0x31, 0x4a, 0xea, 0x67, 0xb1, 0xfd, 0xf2, + 0x15, 0xd9, 0x7e, 0x34, 0x0a, 0xc1, 0xd8, 0xbc, 0xb4, 0x4b, 0x47, 0x21, 0x88, 0x5b, 0x52, 0x9f, + 0x75, 0x2b, 0x0f, 0x35, 0x40, 0x98, 0x89, 0x77, 0xab, 0xe3, 0x98, 0x14, 0x25, 0xb4, 0x33, 0x98, + 0x73, 0x75, 0x62, 0xe6, 0xfc, 0x37, 0x09, 0x7c, 0x98, 0x9b, 0xa1, 0x70, 0x3b, 0x46, 0xa0, 0x37, + 0x13, 0x04, 0xfa, 0x7b, 0xb9, 0x86, 0x11, 0x1e, 0x6d, 0x67, 0xf3, 0xe8, 0xdb, 0x93, 0xf1, 0xe8, + 0x0c, 0x92, 0x77, 0x39, 0xa1, 0x6e, 0x6f, 0x9e, 0xbd, 0x6d, 0x4c, 0xbd, 0x7e, 0xdb, 0x98, 0x7a, + 0xf3, 0xb6, 0x31, 0xf5, 0xeb, 0x71, 0x43, 0x3a, 0x1b, 0x37, 0xa4, 0xd7, 0xe3, 0x86, 0xf4, 0x66, + 0xdc, 0x90, 0xfe, 0x31, 0x6e, 0x48, 0xbf, 0x7b, 0xd7, 0x98, 0x7a, 0x3a, 0x23, 0x3c, 0xfe, 0x27, + 0x00, 0x00, 0xff, 0xff, 0x72, 0x04, 0xd9, 0xa7, 0xb9, 0x19, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/apps/v1beta1/generated.proto b/staging/src/k8s.io/api/apps/v1beta1/generated.proto index 476571e389a..f1465728650 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/generated.proto +++ b/staging/src/k8s.io/api/apps/v1beta1/generated.proto @@ -426,6 +426,12 @@ message StatefulSetStatus { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) optional string updateRevision = 7; + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + optional int64 collisionCount = 9; } // StatefulSetUpdateStrategy indicates the strategy that the StatefulSet diff --git a/staging/src/k8s.io/api/apps/v1beta1/types.generated.go b/staging/src/k8s.io/api/apps/v1beta1/types.generated.go index 52bd1fe32a0..faf2b8e711f 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types.generated.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types.generated.go @@ -2419,7 +2419,7 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [7]bool + var yyq2 [8]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false yyq2[0] = x.ObservedGeneration != nil @@ -2428,9 +2428,10 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) { yyq2[4] = x.UpdatedReplicas != 0 yyq2[5] = x.CurrentRevision != "" yyq2[6] = x.UpdateRevision != "" + yyq2[7] = x.CollisionCount != nil var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(7) + r.EncodeArrayStart(8) } else { yynn2 = 1 for _, b := range yyq2 { @@ -2620,6 +2621,41 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) { } } } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[7] { + if x.CollisionCount == nil { + r.EncodeNil() + } else { + yy27 := *x.CollisionCount + yym28 := z.EncBinary() + _ = yym28 + if false { + } else { + r.EncodeInt(int64(yy27)) + } + } + } else { + r.EncodeNil() + } + } else { + if yyq2[7] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("collisionCount")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.CollisionCount == nil { + r.EncodeNil() + } else { + yy29 := *x.CollisionCount + yym30 := z.EncBinary() + _ = yym30 + if false { + } else { + r.EncodeInt(int64(yy29)) + } + } + } + } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { @@ -2769,6 +2805,22 @@ func (x *StatefulSetStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) *((*string)(yyv16)) = r.DecodeString() } } + case "collisionCount": + if r.TryDecodeAsNil() { + if x.CollisionCount != nil { + x.CollisionCount = nil + } + } else { + if x.CollisionCount == nil { + x.CollisionCount = new(int64) + } + yym19 := z.DecBinary() + _ = yym19 + if false { + } else { + *((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64)) + } + } default: z.DecStructFieldNotFound(-1, yys3) } // end switch yys3 @@ -2780,16 +2832,16 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj18 int - var yyb18 bool - var yyhl18 bool = l >= 0 - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + var yyj20 int + var yyb20 bool + var yyhl20 bool = l >= 0 + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2802,20 +2854,20 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder if x.ObservedGeneration == nil { x.ObservedGeneration = new(int64) } - yym20 := z.DecBinary() - _ = yym20 + yym22 := z.DecBinary() + _ = yym22 if false { } else { *((*int64)(x.ObservedGeneration)) = int64(r.DecodeInt(64)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2823,29 +2875,7 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder if r.TryDecodeAsNil() { x.Replicas = 0 } else { - yyv21 := &x.Replicas - yym22 := z.DecBinary() - _ = yym22 - if false { - } else { - *((*int32)(yyv21)) = int32(r.DecodeInt(32)) - } - } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l - } else { - yyb18 = r.CheckBreak() - } - if yyb18 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.ReadyReplicas = 0 - } else { - yyv23 := &x.ReadyReplicas + yyv23 := &x.Replicas yym24 := z.DecBinary() _ = yym24 if false { @@ -2853,21 +2883,21 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*int32)(yyv23)) = int32(r.DecodeInt(32)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.CurrentReplicas = 0 + x.ReadyReplicas = 0 } else { - yyv25 := &x.CurrentReplicas + yyv25 := &x.ReadyReplicas yym26 := z.DecBinary() _ = yym26 if false { @@ -2875,21 +2905,21 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*int32)(yyv25)) = int32(r.DecodeInt(32)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.UpdatedReplicas = 0 + x.CurrentReplicas = 0 } else { - yyv27 := &x.UpdatedReplicas + yyv27 := &x.CurrentReplicas yym28 := z.DecBinary() _ = yym28 if false { @@ -2897,13 +2927,35 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*int32)(yyv27)) = int32(r.DecodeInt(32)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.UpdatedReplicas = 0 + } else { + yyv29 := &x.UpdatedReplicas + yym30 := z.DecBinary() + _ = yym30 + if false { + } else { + *((*int32)(yyv29)) = int32(r.DecodeInt(32)) + } + } + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2911,29 +2963,7 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder if r.TryDecodeAsNil() { x.CurrentRevision = "" } else { - yyv29 := &x.CurrentRevision - yym30 := z.DecBinary() - _ = yym30 - if false { - } else { - *((*string)(yyv29)) = r.DecodeString() - } - } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l - } else { - yyb18 = r.CheckBreak() - } - if yyb18 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.UpdateRevision = "" - } else { - yyv31 := &x.UpdateRevision + yyv31 := &x.CurrentRevision yym32 := z.DecBinary() _ = yym32 if false { @@ -2941,18 +2971,66 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*string)(yyv31)) = r.DecodeString() } } - for { - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.UpdateRevision = "" + } else { + yyv33 := &x.UpdateRevision + yym34 := z.DecBinary() + _ = yym34 + if false { } else { - yyb18 = r.CheckBreak() + *((*string)(yyv33)) = r.DecodeString() } - if yyb18 { + } + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + if x.CollisionCount != nil { + x.CollisionCount = nil + } + } else { + if x.CollisionCount == nil { + x.CollisionCount = new(int64) + } + yym36 := z.DecBinary() + _ = yym36 + if false { + } else { + *((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64)) + } + } + for { + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj18-1, "") + z.DecStructFieldNotFound(yyj20-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -7976,7 +8054,7 @@ func (x codecSelfer1234) decSliceStatefulSet(v *[]StatefulSet, d *codec1978.Deco yyrg1 := len(yyv1) > 0 yyv21 := yyv1 - yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1008) + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1016) if yyrt1 { if yyrl1 <= cap(yyv1) { yyv1 = yyv1[:yyrl1] diff --git a/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go index 00d1a617fcc..40fda1b6fee 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go @@ -238,6 +238,7 @@ var map_StatefulSetStatus = map[string]string{ "updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "collisionCount": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", } func (StatefulSetStatus) SwaggerDoc() map[string]string { diff --git a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go index 0531f834e73..4ee37fe9636 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go @@ -689,6 +689,15 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { **out = **in } } + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } return } diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go index a6550b091a5..88c7ef976d7 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go @@ -1422,6 +1422,11 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) i += copy(dAtA[i:], m.UpdateRevision) + if m.CollisionCount != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + } return i, nil } @@ -1901,6 +1906,9 @@ func (m *StatefulSetStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.UpdateRevision) n += 1 + l + sovGenerated(uint64(l)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } return n } @@ -2304,6 +2312,7 @@ func (this *StatefulSetStatus) String() string { `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, `}`, }, "") return s @@ -6658,6 +6667,26 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { } m.UpdateRevision = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -6901,142 +6930,142 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 2178 bytes of a gzipped FileDescriptorProto + // 2180 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x5b, 0x6f, 0x1b, 0xc7, 0x15, 0xd6, 0xf2, 0x22, 0x91, 0xa3, 0x88, 0xb2, 0x47, 0xaa, 0xc4, 0xc8, 0x2d, 0x25, 0x30, 0x81, 0x2d, 0xc7, 0xf1, 0xd2, 0x56, 0x2e, 0x48, 0x6c, 0x20, 0xad, 0x28, 0xa5, 0xb6, 0x03, 0x49, 0x56, 0x86, 0x92, 0x8b, 0xa6, 0x2d, 0xe0, 0x21, 0x39, 0xa6, 0x36, 0xda, 0x1b, 0xf6, 0x42, 0x84, 0xe8, - 0x4b, 0x9f, 0x0a, 0x14, 0x28, 0x90, 0x3c, 0xf7, 0x4f, 0xb4, 0x4f, 0x45, 0xd1, 0xbe, 0x15, 0x45, - 0xe1, 0x97, 0x02, 0x41, 0xfb, 0xd0, 0x3c, 0x09, 0x35, 0xf3, 0xd8, 0xfe, 0x82, 0x00, 0x05, 0x8a, - 0x99, 0x9d, 0xbd, 0xcc, 0x5e, 0xa4, 0xa5, 0x6a, 0xab, 0x85, 0xdf, 0xc4, 0x39, 0xdf, 0xf9, 0xe6, - 0xec, 0xcc, 0x99, 0x73, 0xbe, 0x9d, 0x15, 0xf8, 0xde, 0xf1, 0x7b, 0xb6, 0xac, 0x18, 0xad, 0x63, - 0xb7, 0x4b, 0x2c, 0x9d, 0x38, 0xc4, 0x6e, 0x0d, 0x89, 0xde, 0x37, 0xac, 0x16, 0x37, 0x60, 0x53, - 0x69, 0x61, 0xd3, 0xb4, 0x5b, 0xc3, 0xdb, 0x5d, 0xe2, 0xe0, 0x8d, 0xd6, 0x80, 0xe8, 0xc4, 0xc2, - 0x0e, 0xe9, 0xcb, 0xa6, 0x65, 0x38, 0x06, 0x5c, 0xf6, 0x80, 0x32, 0x36, 0x15, 0x99, 0x02, 0x65, - 0x0e, 0x5c, 0xb9, 0x39, 0x50, 0x9c, 0x23, 0xb7, 0x2b, 0xf7, 0x0c, 0xad, 0x35, 0x30, 0x06, 0x46, - 0x8b, 0xe1, 0xbb, 0xee, 0x13, 0xf6, 0x8b, 0xfd, 0x60, 0x7f, 0x79, 0x3c, 0x2b, 0xcd, 0xc8, 0x84, - 0x3d, 0xc3, 0x22, 0xad, 0xe1, 0xed, 0xf8, 0x5c, 0x2b, 0xd7, 0x23, 0x18, 0xd3, 0x50, 0x95, 0xde, - 0x88, 0x87, 0x95, 0x84, 0xbe, 0x1d, 0x42, 0x35, 0xdc, 0x3b, 0x52, 0x74, 0x62, 0x8d, 0x5a, 0xe6, - 0xf1, 0x80, 0x0e, 0xd8, 0x2d, 0x8d, 0x38, 0x38, 0x6d, 0x82, 0x56, 0x96, 0x97, 0xe5, 0xea, 0x8e, - 0xa2, 0x91, 0x84, 0xc3, 0xbb, 0x67, 0x39, 0xd8, 0xbd, 0x23, 0xa2, 0xe1, 0x84, 0xdf, 0x5b, 0x59, - 0x7e, 0xae, 0xa3, 0xa8, 0x2d, 0x45, 0x77, 0x6c, 0xc7, 0x8a, 0x3b, 0x35, 0x7f, 0x51, 0x00, 0xd5, - 0x6d, 0x4c, 0x34, 0x43, 0xef, 0x10, 0x07, 0x3e, 0x06, 0x15, 0xfa, 0x18, 0x7d, 0xec, 0xe0, 0xba, - 0xb4, 0x26, 0xad, 0xcf, 0x6e, 0xdc, 0x92, 0xc3, 0xbd, 0x08, 0x58, 0x65, 0xf3, 0x78, 0x40, 0x07, - 0x6c, 0x99, 0xa2, 0xe5, 0xe1, 0x6d, 0xf9, 0x61, 0xf7, 0x53, 0xd2, 0x73, 0x76, 0x89, 0x83, 0xdb, - 0xf0, 0xe9, 0xc9, 0xea, 0xd4, 0xf8, 0x64, 0x15, 0x84, 0x63, 0x28, 0x60, 0x85, 0xf7, 0x41, 0xc9, - 0x36, 0x49, 0xaf, 0x5e, 0x60, 0xec, 0x57, 0xe5, 0x8c, 0x9d, 0x96, 0x83, 0x98, 0x3a, 0x26, 0xe9, - 0xb5, 0x5f, 0xe1, 0x9c, 0x25, 0xfa, 0x0b, 0x31, 0x06, 0xb8, 0x0f, 0xa6, 0x6d, 0x07, 0x3b, 0xae, - 0x5d, 0x2f, 0x32, 0xae, 0xf5, 0x1c, 0x5c, 0x0c, 0xdf, 0xae, 0x71, 0xb6, 0x69, 0xef, 0x37, 0xe2, - 0x3c, 0xcd, 0xdf, 0x4a, 0x60, 0x2e, 0xc0, 0xee, 0x28, 0xb6, 0x03, 0x7f, 0x9c, 0x58, 0x0f, 0x39, - 0xdf, 0x7a, 0x50, 0x6f, 0xb6, 0x1a, 0x97, 0xf8, 0x5c, 0x15, 0x7f, 0x24, 0xb2, 0x16, 0xf7, 0x40, - 0x59, 0x71, 0x88, 0x66, 0xd7, 0x0b, 0x6b, 0xc5, 0xf5, 0xd9, 0x8d, 0xe6, 0xd9, 0x0f, 0xd0, 0x9e, - 0xe3, 0x74, 0xe5, 0x07, 0xd4, 0x11, 0x79, 0xfe, 0xcd, 0x2f, 0x4a, 0x91, 0xc0, 0xe9, 0x12, 0xc1, - 0x9f, 0x80, 0x8a, 0x4d, 0x54, 0xd2, 0x73, 0x0c, 0x8b, 0x07, 0xfe, 0x56, 0xce, 0xc0, 0x71, 0x97, - 0xa8, 0x1d, 0xee, 0xda, 0x7e, 0x85, 0x46, 0xee, 0xff, 0x42, 0x01, 0x25, 0xfc, 0x18, 0x54, 0x1c, - 0xa2, 0x99, 0x2a, 0x76, 0x08, 0xdf, 0xc9, 0xd7, 0xa2, 0xc1, 0xd3, 0xb3, 0x46, 0xc9, 0xf6, 0x8d, - 0xfe, 0x01, 0x87, 0xb1, 0x6d, 0x0c, 0x16, 0xc3, 0x1f, 0x45, 0x01, 0x0d, 0x34, 0x41, 0xcd, 0x35, - 0xfb, 0x14, 0xe9, 0xd0, 0xfc, 0x1c, 0x8c, 0xf8, 0xb6, 0xde, 0x3a, 0x7b, 0x55, 0x0e, 0x05, 0xbf, - 0xf6, 0x12, 0x9f, 0xa5, 0x26, 0x8e, 0xa3, 0x18, 0x3f, 0xdc, 0x04, 0xf3, 0x9a, 0xa2, 0x23, 0x82, - 0xfb, 0xa3, 0x0e, 0xe9, 0x19, 0x7a, 0xdf, 0xae, 0x97, 0xd6, 0xa4, 0xf5, 0x72, 0x7b, 0x99, 0x13, - 0xcc, 0xef, 0x8a, 0x66, 0x14, 0xc7, 0xc3, 0x8f, 0x00, 0xf4, 0x1f, 0xe0, 0x9e, 0x77, 0xb0, 0x14, - 0x43, 0xaf, 0x97, 0xd7, 0xa4, 0xf5, 0x62, 0x7b, 0x85, 0xb3, 0xc0, 0x83, 0x04, 0x02, 0xa5, 0x78, - 0xc1, 0x1d, 0xb0, 0x68, 0x91, 0xa1, 0x62, 0x2b, 0x86, 0x7e, 0x5f, 0xb1, 0x1d, 0xc3, 0x1a, 0xed, - 0x28, 0x9a, 0xe2, 0xd4, 0xa7, 0x59, 0x4c, 0xf5, 0xf1, 0xc9, 0xea, 0x22, 0x4a, 0xb1, 0xa3, 0x54, - 0xaf, 0xe6, 0x6f, 0xca, 0x60, 0x3e, 0x96, 0xf7, 0xf0, 0x11, 0x58, 0xea, 0xb9, 0x96, 0x45, 0x74, - 0x67, 0xcf, 0xd5, 0xba, 0xc4, 0xea, 0xf4, 0x8e, 0x48, 0xdf, 0x55, 0x49, 0x9f, 0xa5, 0x48, 0xb9, - 0xdd, 0xe0, 0x11, 0x2f, 0x6d, 0xa5, 0xa2, 0x50, 0x86, 0x37, 0x5d, 0x05, 0x9d, 0x0d, 0xed, 0x2a, - 0xb6, 0x1d, 0x70, 0x16, 0x18, 0x67, 0xb0, 0x0a, 0x7b, 0x09, 0x04, 0x4a, 0xf1, 0xa2, 0x31, 0xf6, - 0x89, 0xad, 0x58, 0xa4, 0x1f, 0x8f, 0xb1, 0x28, 0xc6, 0xb8, 0x9d, 0x8a, 0x42, 0x19, 0xde, 0xf0, - 0x1d, 0x30, 0xeb, 0xcd, 0xc6, 0xf6, 0x8f, 0x6f, 0xf4, 0x02, 0x27, 0x9b, 0xdd, 0x0b, 0x4d, 0x28, - 0x8a, 0xa3, 0x8f, 0x66, 0x74, 0x6d, 0x62, 0x0d, 0x49, 0x3f, 0x7b, 0x83, 0x1f, 0x26, 0x10, 0x28, - 0xc5, 0x8b, 0x3e, 0x9a, 0x97, 0x81, 0x89, 0x47, 0x9b, 0x16, 0x1f, 0xed, 0x30, 0x15, 0x85, 0x32, - 0xbc, 0x69, 0x1e, 0x7b, 0x21, 0x6f, 0x0e, 0xb1, 0xa2, 0xe2, 0xae, 0x4a, 0xea, 0x33, 0x62, 0x1e, - 0xef, 0x89, 0x66, 0x14, 0xc7, 0xc3, 0x7b, 0xe0, 0xb2, 0x37, 0x74, 0xa8, 0xe3, 0x80, 0xa4, 0xc2, - 0x48, 0x5e, 0xe5, 0x24, 0x97, 0xf7, 0xe2, 0x00, 0x94, 0xf4, 0x81, 0x77, 0x40, 0xad, 0x67, 0xa8, - 0x2a, 0xcb, 0xc7, 0x2d, 0xc3, 0xd5, 0x9d, 0x7a, 0x95, 0xad, 0x15, 0xa4, 0xe7, 0x71, 0x4b, 0xb0, - 0xa0, 0x18, 0xb2, 0xf9, 0x27, 0x09, 0x2c, 0x67, 0x9c, 0x69, 0xf8, 0x5d, 0x50, 0x72, 0x46, 0x26, - 0x61, 0x89, 0x5a, 0x6d, 0xdf, 0xf0, 0xdb, 0xc1, 0xc1, 0xc8, 0x24, 0xdf, 0x9c, 0xac, 0x5e, 0xc9, - 0x70, 0xa3, 0x66, 0xc4, 0x1c, 0xe1, 0x11, 0x98, 0xb3, 0xe8, 0x74, 0xfa, 0xc0, 0x83, 0xf0, 0xb2, - 0xd5, 0xca, 0xac, 0x2e, 0x28, 0x8a, 0x0e, 0x0b, 0xf0, 0xe5, 0xf1, 0xc9, 0xea, 0x9c, 0x60, 0x43, - 0x22, 0x71, 0xf3, 0x97, 0x05, 0x00, 0xb6, 0x89, 0xa9, 0x1a, 0x23, 0x8d, 0xe8, 0x17, 0xd1, 0x52, - 0x1f, 0x08, 0x2d, 0xf5, 0x5a, 0x76, 0xbd, 0x0c, 0x82, 0xca, 0xec, 0xa9, 0x1f, 0xc7, 0x7a, 0xea, - 0xf5, 0x3c, 0x64, 0xa7, 0x37, 0xd5, 0xbf, 0x17, 0xc1, 0x42, 0x08, 0xde, 0x32, 0xf4, 0xbe, 0xc2, - 0x4e, 0xc3, 0x5d, 0x61, 0x47, 0xaf, 0xc5, 0x76, 0x74, 0x39, 0xc5, 0x25, 0xb2, 0x9b, 0x3b, 0x41, - 0x9c, 0x05, 0xe6, 0xfe, 0xb6, 0x38, 0xf9, 0x37, 0x27, 0xab, 0x29, 0xd2, 0x4f, 0x0e, 0x98, 0xc4, - 0x10, 0xe1, 0x55, 0x30, 0x6d, 0x11, 0x6c, 0x1b, 0x3a, 0x2b, 0x0b, 0xd5, 0xf0, 0x51, 0x10, 0x1b, - 0x45, 0xdc, 0x0a, 0xaf, 0x83, 0x19, 0x8d, 0xd8, 0x36, 0x1e, 0x10, 0x56, 0x01, 0xaa, 0xed, 0x79, - 0x0e, 0x9c, 0xd9, 0xf5, 0x86, 0x91, 0x6f, 0x87, 0x9f, 0x82, 0x9a, 0x8a, 0x6d, 0x9e, 0x8e, 0x07, - 0x8a, 0x46, 0xd8, 0x19, 0x9f, 0xdd, 0x78, 0x23, 0xdf, 0xde, 0x53, 0x8f, 0xb0, 0x8f, 0xed, 0x08, - 0x4c, 0x28, 0xc6, 0x0c, 0x87, 0x00, 0xd2, 0x91, 0x03, 0x0b, 0xeb, 0xb6, 0xb7, 0x50, 0x74, 0xbe, - 0x99, 0x89, 0xe7, 0x0b, 0xea, 0xd9, 0x4e, 0x82, 0x0d, 0xa5, 0xcc, 0xd0, 0xfc, 0x9d, 0x04, 0x6a, - 0xe1, 0x36, 0x5d, 0x80, 0x5e, 0xba, 0x2f, 0xea, 0xa5, 0xd7, 0x72, 0x24, 0x67, 0x86, 0x60, 0xfa, - 0x57, 0x01, 0xc0, 0x10, 0x44, 0x8f, 0x73, 0x17, 0xf7, 0x8e, 0xe1, 0x1a, 0x28, 0xe9, 0x58, 0xf3, - 0x73, 0x32, 0x38, 0x20, 0x7b, 0x58, 0x23, 0x88, 0x59, 0xe0, 0xe7, 0x12, 0x80, 0xbc, 0x0c, 0x6f, - 0xea, 0xba, 0xe1, 0xb0, 0xca, 0xee, 0x07, 0xb4, 0x95, 0x23, 0x20, 0x7f, 0x2e, 0xf9, 0x30, 0xc1, - 0xf2, 0xa1, 0xee, 0x58, 0xa3, 0x70, 0x17, 0x92, 0x00, 0x94, 0x32, 0x35, 0xfc, 0x11, 0x00, 0x16, - 0xe7, 0x3c, 0x30, 0xf8, 0xb1, 0xbd, 0x76, 0x6a, 0x55, 0xa3, 0xd0, 0x2d, 0x43, 0x7f, 0xa2, 0x0c, - 0xc2, 0xc2, 0x82, 0x02, 0x0a, 0x14, 0xa1, 0x5b, 0xf9, 0x10, 0x2c, 0x67, 0xc4, 0x09, 0x2f, 0x81, - 0xe2, 0x31, 0x19, 0x79, 0x4b, 0x85, 0xe8, 0x9f, 0x70, 0x11, 0x94, 0x87, 0x58, 0x75, 0xbd, 0xd2, - 0x5a, 0x45, 0xde, 0x8f, 0x3b, 0x85, 0xf7, 0x24, 0x2a, 0x46, 0x6a, 0x62, 0xf5, 0x81, 0xeb, 0xa0, - 0x62, 0x11, 0x53, 0x55, 0x7a, 0xd8, 0xe6, 0xea, 0x83, 0x69, 0x4d, 0xc4, 0xc7, 0x50, 0x60, 0x15, - 0xa4, 0x6c, 0xe1, 0xc5, 0x4a, 0xd9, 0xe2, 0xf3, 0x91, 0xb2, 0x3f, 0x04, 0x15, 0xdb, 0x17, 0xb1, - 0x25, 0x46, 0x79, 0x23, 0x57, 0x1d, 0xe5, 0xfa, 0x35, 0xa0, 0x0e, 0x94, 0x6b, 0x40, 0x97, 0xa6, - 0x59, 0xcb, 0x13, 0x6a, 0xd6, 0xe7, 0xaa, 0x33, 0x69, 0xed, 0x34, 0xb1, 0x6b, 0x93, 0x3e, 0x2b, - 0x38, 0x95, 0xb0, 0x76, 0xee, 0xb3, 0x51, 0xc4, 0xad, 0xf0, 0x07, 0x42, 0x9a, 0x56, 0x26, 0x4b, - 0xd3, 0x5a, 0x76, 0x8a, 0xc2, 0x43, 0xb0, 0x6c, 0x5a, 0xc6, 0xc0, 0x22, 0xb6, 0xbd, 0x4d, 0x70, - 0x5f, 0x55, 0x74, 0xe2, 0xaf, 0x4c, 0x95, 0x3d, 0xd1, 0x95, 0xf1, 0xc9, 0xea, 0xf2, 0x7e, 0x3a, - 0x04, 0x65, 0xf9, 0x36, 0xff, 0x58, 0x02, 0x97, 0xe2, 0x3d, 0x2e, 0x43, 0x0d, 0x4a, 0xe7, 0x52, - 0x83, 0x6f, 0x46, 0x0e, 0x80, 0x27, 0x95, 0x83, 0x7d, 0x4f, 0x39, 0x04, 0x9b, 0x60, 0x9e, 0x9f, - 0x7d, 0xdf, 0xc8, 0xf5, 0x70, 0xb0, 0xef, 0x87, 0xa2, 0x19, 0xc5, 0xf1, 0x54, 0xe3, 0x85, 0xd2, - 0xcd, 0x27, 0x29, 0x89, 0x1a, 0x6f, 0x33, 0x0e, 0x40, 0x49, 0x1f, 0xb8, 0x0b, 0x16, 0x5c, 0x3d, - 0x49, 0xe5, 0xe5, 0xe1, 0x15, 0x4e, 0xb5, 0x70, 0x98, 0x84, 0xa0, 0x34, 0x3f, 0xf8, 0x18, 0x80, - 0x9e, 0xdf, 0x98, 0xed, 0xfa, 0x34, 0xab, 0xa4, 0x6f, 0xe6, 0x38, 0x2f, 0x41, 0x37, 0x0f, 0xab, - 0x58, 0x30, 0x64, 0xa3, 0x08, 0x27, 0xbc, 0x0b, 0xe6, 0x2c, 0x26, 0xed, 0xfd, 0x50, 0x3d, 0x79, - 0xfc, 0x2d, 0xee, 0x36, 0x87, 0xa2, 0x46, 0x24, 0x62, 0x53, 0x14, 0x6d, 0x25, 0xb7, 0xa2, 0xfd, - 0x83, 0x14, 0x6d, 0x33, 0x81, 0x98, 0xbd, 0x23, 0x48, 0x9f, 0xab, 0x31, 0xe9, 0xb3, 0x94, 0xf4, - 0x88, 0x28, 0x1f, 0x25, 0x5d, 0xc7, 0xde, 0xca, 0xa9, 0x63, 0xc3, 0xc6, 0x98, 0x4f, 0xc8, 0xf2, - 0x65, 0xb8, 0x98, 0xbb, 0xa1, 0xbc, 0x42, 0x36, 0x0c, 0xea, 0x39, 0x08, 0xd9, 0x08, 0xd9, 0xe9, - 0x42, 0xf6, 0x9f, 0x05, 0xb0, 0x10, 0x82, 0x73, 0x0b, 0xd9, 0x14, 0x97, 0x17, 0x26, 0x64, 0xd3, - 0x95, 0x60, 0xf1, 0x45, 0x2b, 0xc1, 0x17, 0x20, 0xa0, 0x99, 0xb8, 0x0c, 0x97, 0xee, 0xff, 0x49, - 0x5c, 0x86, 0x51, 0x65, 0x88, 0xcb, 0x5f, 0x17, 0xa2, 0xa1, 0xbf, 0xf4, 0x6a, 0xe7, 0xbf, 0xbf, - 0x46, 0x6b, 0xfe, 0xb9, 0x08, 0x2e, 0xc5, 0xcf, 0xa1, 0xd0, 0x20, 0xa5, 0x33, 0x1b, 0xe4, 0x3e, - 0x58, 0x7c, 0xe2, 0xaa, 0xea, 0x88, 0x2d, 0x43, 0xa4, 0x4b, 0x7a, 0xad, 0xf5, 0xdb, 0xdc, 0x73, - 0xf1, 0xfb, 0x29, 0x18, 0x94, 0xea, 0x99, 0xd1, 0xec, 0x8b, 0xe7, 0x6a, 0xf6, 0x89, 0x0e, 0x54, - 0x9a, 0xa0, 0x03, 0xa5, 0x36, 0xee, 0xf2, 0x39, 0x1a, 0xf7, 0x64, 0x9d, 0x36, 0xa5, 0x70, 0x9d, - 0xd5, 0x69, 0x9b, 0x1f, 0x80, 0x9a, 0x28, 0xdd, 0xbc, 0x5d, 0xf4, 0x74, 0x23, 0x17, 0x4a, 0x91, - 0x5d, 0xf4, 0xc6, 0x51, 0x80, 0x68, 0xfe, 0x5c, 0x02, 0x4b, 0xe9, 0x17, 0x2f, 0x50, 0x05, 0x35, - 0x0d, 0x7f, 0x16, 0xbd, 0x9f, 0x3a, 0xab, 0x09, 0xb9, 0x8e, 0xa2, 0xca, 0xde, 0x67, 0x0f, 0xf9, - 0x81, 0xee, 0x3c, 0xb4, 0x3a, 0x8e, 0xa5, 0xe8, 0x03, 0xaf, 0x73, 0xef, 0x0a, 0x5c, 0x28, 0xc6, - 0xdd, 0xfc, 0x5a, 0x02, 0xcb, 0x19, 0x9d, 0xf3, 0x62, 0x23, 0x81, 0x9f, 0x80, 0x8a, 0x86, 0x3f, - 0xeb, 0xb8, 0xd6, 0x20, 0xad, 0xd7, 0xe7, 0x9b, 0x87, 0x55, 0x83, 0x5d, 0xce, 0x82, 0x02, 0xbe, - 0xe6, 0x43, 0xb0, 0x26, 0x3c, 0x24, 0x3d, 0x79, 0xe4, 0x89, 0xab, 0xb2, 0x43, 0xc8, 0xc5, 0xca, - 0x0d, 0x50, 0x35, 0xb1, 0xe5, 0x28, 0x81, 0xd4, 0x2d, 0xb7, 0xe7, 0xc6, 0x27, 0xab, 0xd5, 0x7d, - 0x7f, 0x10, 0x85, 0xf6, 0xe6, 0xbf, 0x25, 0x50, 0xee, 0xf4, 0xb0, 0x4a, 0x2e, 0x40, 0x2d, 0x6c, - 0x0b, 0x6a, 0x21, 0xfb, 0xe3, 0x09, 0x8b, 0x27, 0x53, 0x28, 0xec, 0xc4, 0x84, 0xc2, 0xeb, 0x67, - 0xf0, 0x9c, 0xae, 0x11, 0xde, 0x07, 0xd5, 0x60, 0xba, 0xc9, 0x0a, 0x58, 0xf3, 0x57, 0x05, 0x30, - 0x1b, 0x99, 0x62, 0xc2, 0xf2, 0xf7, 0x58, 0x68, 0x1b, 0xf4, 0x60, 0x6f, 0xe4, 0x79, 0x10, 0xd9, - 0x6f, 0x11, 0xde, 0xdd, 0x43, 0xf8, 0xe6, 0x99, 0xec, 0x1c, 0x1f, 0x80, 0x9a, 0x83, 0xad, 0x01, - 0x71, 0x7c, 0x1b, 0x5b, 0xb0, 0x6a, 0x78, 0x4b, 0x75, 0x20, 0x58, 0x51, 0x0c, 0xbd, 0x72, 0x17, - 0xcc, 0x09, 0x93, 0x4d, 0x74, 0x81, 0xf0, 0x39, 0x5d, 0x9c, 0x30, 0x39, 0x2f, 0x20, 0xbb, 0x3e, - 0x12, 0xb2, 0x2b, 0xfb, 0xdb, 0x62, 0xf4, 0xc8, 0x64, 0xe5, 0x18, 0x8a, 0xe5, 0xd8, 0x1b, 0xb9, - 0xd8, 0x4e, 0xcf, 0xb4, 0xdf, 0x4b, 0x60, 0x3e, 0x82, 0xbe, 0x00, 0x81, 0xf4, 0x40, 0x14, 0x48, - 0xaf, 0xe7, 0x79, 0x88, 0x0c, 0x85, 0xf4, 0x97, 0xb2, 0x10, 0xfc, 0x4b, 0x2f, 0x91, 0x7e, 0x0a, - 0x16, 0x87, 0x86, 0xea, 0x6a, 0x64, 0x4b, 0xc5, 0x8a, 0xe6, 0x03, 0xa8, 0x0a, 0x28, 0xc6, 0xdf, - 0x4d, 0x02, 0x7a, 0x62, 0xd9, 0x8a, 0xed, 0x10, 0xdd, 0x79, 0x14, 0x7a, 0x86, 0x3a, 0xe6, 0x51, - 0x0a, 0x1d, 0x4a, 0x9d, 0x04, 0xbe, 0x03, 0x66, 0xa9, 0x1e, 0x51, 0x7a, 0x64, 0x0f, 0x6b, 0xbe, - 0xf0, 0x0e, 0xbe, 0x7c, 0x75, 0x42, 0x13, 0x8a, 0xe2, 0xe0, 0x11, 0x58, 0x30, 0x8d, 0xfe, 0x2e, - 0xd6, 0xf1, 0x80, 0xd0, 0xb6, 0xb7, 0xcf, 0xfe, 0x37, 0x82, 0xdd, 0x12, 0x55, 0xdb, 0xef, 0xfa, - 0x6f, 0xf9, 0xfb, 0x49, 0x08, 0x7d, 0xe9, 0x49, 0x19, 0x66, 0x2f, 0x3d, 0x69, 0x94, 0xd0, 0x4a, - 0x7c, 0xf9, 0xf5, 0xee, 0xae, 0x37, 0xf2, 0x64, 0xd8, 0x39, 0xbf, 0xfd, 0x66, 0x5d, 0x82, 0x55, - 0xce, 0xf5, 0xb1, 0xf5, 0x6f, 0x45, 0x70, 0x39, 0x71, 0x74, 0xff, 0x87, 0xb7, 0x45, 0x09, 0xb9, - 0x59, 0x9c, 0x40, 0x6e, 0x6e, 0x82, 0x79, 0xfe, 0x9d, 0x37, 0xa6, 0x56, 0x03, 0x3d, 0xbf, 0x25, - 0x9a, 0x51, 0x1c, 0x9f, 0x76, 0x5b, 0x55, 0x9e, 0xf0, 0xb6, 0x2a, 0x1a, 0x05, 0x97, 0x8f, 0x5e, - 0xea, 0x25, 0xa3, 0xe0, 0x2a, 0x32, 0x8e, 0xa7, 0x1d, 0xcb, 0x63, 0x0d, 0x18, 0x66, 0xc4, 0x8e, - 0x75, 0x28, 0x58, 0x51, 0x0c, 0xdd, 0xfc, 0xab, 0x04, 0x5e, 0xcd, 0xcc, 0x34, 0xb8, 0x29, 0xbc, - 0xf6, 0xdf, 0x8c, 0xbd, 0xf6, 0x7f, 0x27, 0xd3, 0x31, 0xf2, 0xf2, 0x6f, 0xa5, 0xdf, 0xe5, 0xbc, - 0x9f, 0xef, 0x2e, 0x27, 0x45, 0xac, 0x9d, 0x7d, 0xa9, 0xd3, 0xbe, 0xf9, 0xf4, 0x59, 0x63, 0xea, - 0xcb, 0x67, 0x8d, 0xa9, 0xaf, 0x9e, 0x35, 0xa6, 0x7e, 0x36, 0x6e, 0x48, 0x4f, 0xc7, 0x0d, 0xe9, - 0xcb, 0x71, 0x43, 0xfa, 0x6a, 0xdc, 0x90, 0xfe, 0x31, 0x6e, 0x48, 0x5f, 0x7c, 0xdd, 0x98, 0xfa, - 0x64, 0x86, 0xcf, 0xf8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8a, 0xc7, 0xc0, 0x83, 0xcc, 0x25, - 0x00, 0x00, + 0x4b, 0x9f, 0x0a, 0x14, 0x28, 0xe0, 0x3c, 0xf7, 0x4f, 0xb4, 0x4f, 0x45, 0xd1, 0xbe, 0x15, 0x45, + 0xe1, 0x97, 0x02, 0x41, 0x5f, 0x9a, 0x27, 0xa1, 0x66, 0x1e, 0xdb, 0x5f, 0x10, 0xa0, 0x40, 0x31, + 0xb3, 0xb3, 0x97, 0xd9, 0x8b, 0xb4, 0x54, 0x6c, 0xb5, 0xc8, 0x9b, 0x76, 0xce, 0x77, 0xbe, 0x39, + 0x3b, 0x73, 0xe6, 0x9c, 0x8f, 0xb3, 0x02, 0x3f, 0x38, 0x7e, 0xcf, 0x96, 0x15, 0xa3, 0x75, 0xec, + 0x76, 0x89, 0xa5, 0x13, 0x87, 0xd8, 0xad, 0x21, 0xd1, 0xfb, 0x86, 0xd5, 0xe2, 0x06, 0x6c, 0x2a, + 0x2d, 0x6c, 0x9a, 0x76, 0x6b, 0x78, 0xbb, 0x4b, 0x1c, 0xbc, 0xd1, 0x1a, 0x10, 0x9d, 0x58, 0xd8, + 0x21, 0x7d, 0xd9, 0xb4, 0x0c, 0xc7, 0x80, 0xcb, 0x1e, 0x50, 0xc6, 0xa6, 0x22, 0x53, 0xa0, 0xcc, + 0x81, 0x2b, 0x37, 0x07, 0x8a, 0x73, 0xe4, 0x76, 0xe5, 0x9e, 0xa1, 0xb5, 0x06, 0xc6, 0xc0, 0x68, + 0x31, 0x7c, 0xd7, 0x7d, 0xc2, 0x9e, 0xd8, 0x03, 0xfb, 0xcb, 0xe3, 0x59, 0x69, 0x46, 0x26, 0xec, + 0x19, 0x16, 0x69, 0x0d, 0x6f, 0xc7, 0xe7, 0x5a, 0xb9, 0x1e, 0xc1, 0x98, 0x86, 0xaa, 0xf4, 0x46, + 0x3c, 0xac, 0x24, 0xf4, 0xed, 0x10, 0xaa, 0xe1, 0xde, 0x91, 0xa2, 0x13, 0x6b, 0xd4, 0x32, 0x8f, + 0x07, 0x74, 0xc0, 0x6e, 0x69, 0xc4, 0xc1, 0x69, 0x13, 0xb4, 0xb2, 0xbc, 0x2c, 0x57, 0x77, 0x14, + 0x8d, 0x24, 0x1c, 0xde, 0x3d, 0xcb, 0xc1, 0xee, 0x1d, 0x11, 0x0d, 0x27, 0xfc, 0xde, 0xca, 0xf2, + 0x73, 0x1d, 0x45, 0x6d, 0x29, 0xba, 0x63, 0x3b, 0x56, 0xdc, 0xa9, 0xf9, 0xab, 0x02, 0xa8, 0x6e, + 0x63, 0xa2, 0x19, 0x7a, 0x87, 0x38, 0xf0, 0x31, 0xa8, 0xd0, 0xd7, 0xe8, 0x63, 0x07, 0xd7, 0xa5, + 0x35, 0x69, 0x7d, 0x76, 0xe3, 0x96, 0x1c, 0xee, 0x45, 0xc0, 0x2a, 0x9b, 0xc7, 0x03, 0x3a, 0x60, + 0xcb, 0x14, 0x2d, 0x0f, 0x6f, 0xcb, 0x0f, 0xbb, 0x9f, 0x92, 0x9e, 0xb3, 0x4b, 0x1c, 0xdc, 0x86, + 0xcf, 0x4e, 0x56, 0xa7, 0xc6, 0x27, 0xab, 0x20, 0x1c, 0x43, 0x01, 0x2b, 0xbc, 0x0f, 0x4a, 0xb6, + 0x49, 0x7a, 0xf5, 0x02, 0x63, 0xbf, 0x2a, 0x67, 0xec, 0xb4, 0x1c, 0xc4, 0xd4, 0x31, 0x49, 0xaf, + 0xfd, 0x0a, 0xe7, 0x2c, 0xd1, 0x27, 0xc4, 0x18, 0xe0, 0x3e, 0x98, 0xb6, 0x1d, 0xec, 0xb8, 0x76, + 0xbd, 0xc8, 0xb8, 0xd6, 0x73, 0x70, 0x31, 0x7c, 0xbb, 0xc6, 0xd9, 0xa6, 0xbd, 0x67, 0xc4, 0x79, + 0x9a, 0xbf, 0x97, 0xc0, 0x5c, 0x80, 0xdd, 0x51, 0x6c, 0x07, 0xfe, 0x34, 0xb1, 0x1e, 0x72, 0xbe, + 0xf5, 0xa0, 0xde, 0x6c, 0x35, 0x2e, 0xf1, 0xb9, 0x2a, 0xfe, 0x48, 0x64, 0x2d, 0xee, 0x81, 0xb2, + 0xe2, 0x10, 0xcd, 0xae, 0x17, 0xd6, 0x8a, 0xeb, 0xb3, 0x1b, 0xcd, 0xb3, 0x5f, 0xa0, 0x3d, 0xc7, + 0xe9, 0xca, 0x0f, 0xa8, 0x23, 0xf2, 0xfc, 0x9b, 0x9f, 0x97, 0x22, 0x81, 0xd3, 0x25, 0x82, 0x3f, + 0x03, 0x15, 0x9b, 0xa8, 0xa4, 0xe7, 0x18, 0x16, 0x0f, 0xfc, 0xad, 0x9c, 0x81, 0xe3, 0x2e, 0x51, + 0x3b, 0xdc, 0xb5, 0xfd, 0x0a, 0x8d, 0xdc, 0x7f, 0x42, 0x01, 0x25, 0xfc, 0x18, 0x54, 0x1c, 0xa2, + 0x99, 0x2a, 0x76, 0x08, 0xdf, 0xc9, 0xd7, 0xa2, 0xc1, 0xd3, 0xb3, 0x46, 0xc9, 0xf6, 0x8d, 0xfe, + 0x01, 0x87, 0xb1, 0x6d, 0x0c, 0x16, 0xc3, 0x1f, 0x45, 0x01, 0x0d, 0x34, 0x41, 0xcd, 0x35, 0xfb, + 0x14, 0xe9, 0xd0, 0xfc, 0x1c, 0x8c, 0xf8, 0xb6, 0xde, 0x3a, 0x7b, 0x55, 0x0e, 0x05, 0xbf, 0xf6, + 0x12, 0x9f, 0xa5, 0x26, 0x8e, 0xa3, 0x18, 0x3f, 0xdc, 0x04, 0xf3, 0x9a, 0xa2, 0x23, 0x82, 0xfb, + 0xa3, 0x0e, 0xe9, 0x19, 0x7a, 0xdf, 0xae, 0x97, 0xd6, 0xa4, 0xf5, 0x72, 0x7b, 0x99, 0x13, 0xcc, + 0xef, 0x8a, 0x66, 0x14, 0xc7, 0xc3, 0x8f, 0x00, 0xf4, 0x5f, 0xe0, 0x9e, 0x77, 0xb0, 0x14, 0x43, + 0xaf, 0x97, 0xd7, 0xa4, 0xf5, 0x62, 0x7b, 0x85, 0xb3, 0xc0, 0x83, 0x04, 0x02, 0xa5, 0x78, 0xc1, + 0x1d, 0xb0, 0x68, 0x91, 0xa1, 0x62, 0x2b, 0x86, 0x7e, 0x5f, 0xb1, 0x1d, 0xc3, 0x1a, 0xed, 0x28, + 0x9a, 0xe2, 0xd4, 0xa7, 0x59, 0x4c, 0xf5, 0xf1, 0xc9, 0xea, 0x22, 0x4a, 0xb1, 0xa3, 0x54, 0xaf, + 0xe6, 0xef, 0xca, 0x60, 0x3e, 0x96, 0xf7, 0xf0, 0x11, 0x58, 0xea, 0xb9, 0x96, 0x45, 0x74, 0x67, + 0xcf, 0xd5, 0xba, 0xc4, 0xea, 0xf4, 0x8e, 0x48, 0xdf, 0x55, 0x49, 0x9f, 0xa5, 0x48, 0xb9, 0xdd, + 0xe0, 0x11, 0x2f, 0x6d, 0xa5, 0xa2, 0x50, 0x86, 0x37, 0x5d, 0x05, 0x9d, 0x0d, 0xed, 0x2a, 0xb6, + 0x1d, 0x70, 0x16, 0x18, 0x67, 0xb0, 0x0a, 0x7b, 0x09, 0x04, 0x4a, 0xf1, 0xa2, 0x31, 0xf6, 0x89, + 0xad, 0x58, 0xa4, 0x1f, 0x8f, 0xb1, 0x28, 0xc6, 0xb8, 0x9d, 0x8a, 0x42, 0x19, 0xde, 0xf0, 0x1d, + 0x30, 0xeb, 0xcd, 0xc6, 0xf6, 0x8f, 0x6f, 0xf4, 0x02, 0x27, 0x9b, 0xdd, 0x0b, 0x4d, 0x28, 0x8a, + 0xa3, 0xaf, 0x66, 0x74, 0x6d, 0x62, 0x0d, 0x49, 0x3f, 0x7b, 0x83, 0x1f, 0x26, 0x10, 0x28, 0xc5, + 0x8b, 0xbe, 0x9a, 0x97, 0x81, 0x89, 0x57, 0x9b, 0x16, 0x5f, 0xed, 0x30, 0x15, 0x85, 0x32, 0xbc, + 0x69, 0x1e, 0x7b, 0x21, 0x6f, 0x0e, 0xb1, 0xa2, 0xe2, 0xae, 0x4a, 0xea, 0x33, 0x62, 0x1e, 0xef, + 0x89, 0x66, 0x14, 0xc7, 0xc3, 0x7b, 0xe0, 0xb2, 0x37, 0x74, 0xa8, 0xe3, 0x80, 0xa4, 0xc2, 0x48, + 0x5e, 0xe5, 0x24, 0x97, 0xf7, 0xe2, 0x00, 0x94, 0xf4, 0x81, 0x77, 0x40, 0xad, 0x67, 0xa8, 0x2a, + 0xcb, 0xc7, 0x2d, 0xc3, 0xd5, 0x9d, 0x7a, 0x95, 0xad, 0x15, 0xa4, 0xe7, 0x71, 0x4b, 0xb0, 0xa0, + 0x18, 0xb2, 0xf9, 0x17, 0x09, 0x2c, 0x67, 0x9c, 0x69, 0xf8, 0x7d, 0x50, 0x72, 0x46, 0x26, 0x61, + 0x89, 0x5a, 0x6d, 0xdf, 0xf0, 0xdb, 0xc1, 0xc1, 0xc8, 0x24, 0x5f, 0x9f, 0xac, 0x5e, 0xc9, 0x70, + 0xa3, 0x66, 0xc4, 0x1c, 0xe1, 0x11, 0x98, 0xb3, 0xe8, 0x74, 0xfa, 0xc0, 0x83, 0xf0, 0xb2, 0xd5, + 0xca, 0xac, 0x2e, 0x28, 0x8a, 0x0e, 0x0b, 0xf0, 0xe5, 0xf1, 0xc9, 0xea, 0x9c, 0x60, 0x43, 0x22, + 0x71, 0xf3, 0xd7, 0x05, 0x00, 0xb6, 0x89, 0xa9, 0x1a, 0x23, 0x8d, 0xe8, 0x17, 0xd1, 0x52, 0x1f, + 0x08, 0x2d, 0xf5, 0x5a, 0x76, 0xbd, 0x0c, 0x82, 0xca, 0xec, 0xa9, 0x1f, 0xc7, 0x7a, 0xea, 0xf5, + 0x3c, 0x64, 0xa7, 0x37, 0xd5, 0x7f, 0x14, 0xc1, 0x42, 0x08, 0xde, 0x32, 0xf4, 0xbe, 0xc2, 0x4e, + 0xc3, 0x5d, 0x61, 0x47, 0xaf, 0xc5, 0x76, 0x74, 0x39, 0xc5, 0x25, 0xb2, 0x9b, 0x3b, 0x41, 0x9c, + 0x05, 0xe6, 0xfe, 0xb6, 0x38, 0xf9, 0xd7, 0x27, 0xab, 0x29, 0xd2, 0x4f, 0x0e, 0x98, 0xc4, 0x10, + 0xe1, 0x55, 0x30, 0x6d, 0x11, 0x6c, 0x1b, 0x3a, 0x2b, 0x0b, 0xd5, 0xf0, 0x55, 0x10, 0x1b, 0x45, + 0xdc, 0x0a, 0xaf, 0x83, 0x19, 0x8d, 0xd8, 0x36, 0x1e, 0x10, 0x56, 0x01, 0xaa, 0xed, 0x79, 0x0e, + 0x9c, 0xd9, 0xf5, 0x86, 0x91, 0x6f, 0x87, 0x9f, 0x82, 0x9a, 0x8a, 0x6d, 0x9e, 0x8e, 0x07, 0x8a, + 0x46, 0xd8, 0x19, 0x9f, 0xdd, 0x78, 0x23, 0xdf, 0xde, 0x53, 0x8f, 0xb0, 0x8f, 0xed, 0x08, 0x4c, + 0x28, 0xc6, 0x0c, 0x87, 0x00, 0xd2, 0x91, 0x03, 0x0b, 0xeb, 0xb6, 0xb7, 0x50, 0x74, 0xbe, 0x99, + 0x89, 0xe7, 0x0b, 0xea, 0xd9, 0x4e, 0x82, 0x0d, 0xa5, 0xcc, 0xd0, 0xfc, 0x83, 0x04, 0x6a, 0xe1, + 0x36, 0x5d, 0x80, 0x5e, 0xba, 0x2f, 0xea, 0xa5, 0xd7, 0x72, 0x24, 0x67, 0x86, 0x60, 0xfa, 0x77, + 0x01, 0xc0, 0x10, 0x44, 0x8f, 0x73, 0x17, 0xf7, 0x8e, 0xe1, 0x1a, 0x28, 0xe9, 0x58, 0xf3, 0x73, + 0x32, 0x38, 0x20, 0x7b, 0x58, 0x23, 0x88, 0x59, 0xe0, 0x53, 0x09, 0x40, 0x5e, 0x86, 0x37, 0x75, + 0xdd, 0x70, 0x58, 0x65, 0xf7, 0x03, 0xda, 0xca, 0x11, 0x90, 0x3f, 0x97, 0x7c, 0x98, 0x60, 0xf9, + 0x50, 0x77, 0xac, 0x51, 0xb8, 0x0b, 0x49, 0x00, 0x4a, 0x99, 0x1a, 0xfe, 0x04, 0x00, 0x8b, 0x73, + 0x1e, 0x18, 0xfc, 0xd8, 0x5e, 0x3b, 0xb5, 0xaa, 0x51, 0xe8, 0x96, 0xa1, 0x3f, 0x51, 0x06, 0x61, + 0x61, 0x41, 0x01, 0x05, 0x8a, 0xd0, 0xad, 0x7c, 0x08, 0x96, 0x33, 0xe2, 0x84, 0x97, 0x40, 0xf1, + 0x98, 0x8c, 0xbc, 0xa5, 0x42, 0xf4, 0x4f, 0xb8, 0x08, 0xca, 0x43, 0xac, 0xba, 0x5e, 0x69, 0xad, + 0x22, 0xef, 0xe1, 0x4e, 0xe1, 0x3d, 0x89, 0x8a, 0x91, 0x9a, 0x58, 0x7d, 0xe0, 0x3a, 0xa8, 0x58, + 0xc4, 0x54, 0x95, 0x1e, 0xb6, 0xb9, 0xfa, 0x60, 0x5a, 0x13, 0xf1, 0x31, 0x14, 0x58, 0x05, 0x29, + 0x5b, 0x78, 0xb9, 0x52, 0xb6, 0xf8, 0x62, 0xa4, 0xec, 0x8f, 0x41, 0xc5, 0xf6, 0x45, 0x6c, 0x89, + 0x51, 0xde, 0xc8, 0x55, 0x47, 0xb9, 0x7e, 0x0d, 0xa8, 0x03, 0xe5, 0x1a, 0xd0, 0xa5, 0x69, 0xd6, + 0xf2, 0x84, 0x9a, 0xf5, 0x85, 0xea, 0x4c, 0x5a, 0x3b, 0x4d, 0xec, 0xda, 0xa4, 0xcf, 0x0a, 0x4e, + 0x25, 0xac, 0x9d, 0xfb, 0x6c, 0x14, 0x71, 0x2b, 0xfc, 0x91, 0x90, 0xa6, 0x95, 0xc9, 0xd2, 0xb4, + 0x96, 0x9d, 0xa2, 0xf0, 0x10, 0x2c, 0x9b, 0x96, 0x31, 0xb0, 0x88, 0x6d, 0x6f, 0x13, 0xdc, 0x57, + 0x15, 0x9d, 0xf8, 0x2b, 0x53, 0x65, 0x6f, 0x74, 0x65, 0x7c, 0xb2, 0xba, 0xbc, 0x9f, 0x0e, 0x41, + 0x59, 0xbe, 0xcd, 0x3f, 0x97, 0xc0, 0xa5, 0x78, 0x8f, 0xcb, 0x50, 0x83, 0xd2, 0xb9, 0xd4, 0xe0, + 0x9b, 0x91, 0x03, 0xe0, 0x49, 0xe5, 0x60, 0xdf, 0x53, 0x0e, 0xc1, 0x26, 0x98, 0xe7, 0x67, 0xdf, + 0x37, 0x72, 0x3d, 0x1c, 0xec, 0xfb, 0xa1, 0x68, 0x46, 0x71, 0x3c, 0xd5, 0x78, 0xa1, 0x74, 0xf3, + 0x49, 0x4a, 0xa2, 0xc6, 0xdb, 0x8c, 0x03, 0x50, 0xd2, 0x07, 0xee, 0x82, 0x05, 0x57, 0x4f, 0x52, + 0x79, 0x79, 0x78, 0x85, 0x53, 0x2d, 0x1c, 0x26, 0x21, 0x28, 0xcd, 0x0f, 0x3e, 0x06, 0xa0, 0xe7, + 0x37, 0x66, 0xbb, 0x3e, 0xcd, 0x2a, 0xe9, 0x9b, 0x39, 0xce, 0x4b, 0xd0, 0xcd, 0xc3, 0x2a, 0x16, + 0x0c, 0xd9, 0x28, 0xc2, 0x09, 0xef, 0x82, 0x39, 0x8b, 0x49, 0x7b, 0x3f, 0x54, 0x4f, 0x1e, 0x7f, + 0x87, 0xbb, 0xcd, 0xa1, 0xa8, 0x11, 0x89, 0xd8, 0x14, 0x45, 0x5b, 0xc9, 0xad, 0x68, 0xff, 0x24, + 0x45, 0xdb, 0x4c, 0x20, 0x66, 0xef, 0x08, 0xd2, 0xe7, 0x6a, 0x4c, 0xfa, 0x2c, 0x25, 0x3d, 0x22, + 0xca, 0x47, 0x49, 0xd7, 0xb1, 0xb7, 0x72, 0xea, 0xd8, 0xb0, 0x31, 0xe6, 0x13, 0xb2, 0x7c, 0x19, + 0x2e, 0xe6, 0x6e, 0x28, 0xaf, 0x90, 0x0d, 0x83, 0x7a, 0x01, 0x42, 0x36, 0x42, 0x76, 0xba, 0x90, + 0xfd, 0x57, 0x01, 0x2c, 0x84, 0xe0, 0xdc, 0x42, 0x36, 0xc5, 0xe5, 0xa5, 0x09, 0xd9, 0x74, 0x25, + 0x58, 0x7c, 0xd9, 0x4a, 0xf0, 0x25, 0x08, 0x68, 0x26, 0x2e, 0xc3, 0xa5, 0xfb, 0x7f, 0x12, 0x97, + 0x61, 0x54, 0x19, 0xe2, 0xf2, 0xb7, 0x85, 0x68, 0xe8, 0xdf, 0x7a, 0xb5, 0xf3, 0xcd, 0xaf, 0xd1, + 0x9a, 0x7f, 0x2d, 0x82, 0x4b, 0xf1, 0x73, 0x28, 0x34, 0x48, 0xe9, 0xcc, 0x06, 0xb9, 0x0f, 0x16, + 0x9f, 0xb8, 0xaa, 0x3a, 0x62, 0xcb, 0x10, 0xe9, 0x92, 0x5e, 0x6b, 0xfd, 0x2e, 0xf7, 0x5c, 0xfc, + 0x61, 0x0a, 0x06, 0xa5, 0x7a, 0x66, 0x34, 0xfb, 0xe2, 0xb9, 0x9a, 0x7d, 0xa2, 0x03, 0x95, 0x26, + 0xe8, 0x40, 0xa9, 0x8d, 0xbb, 0x7c, 0x8e, 0xc6, 0x3d, 0x59, 0xa7, 0x4d, 0x29, 0x5c, 0x67, 0x75, + 0xda, 0xe6, 0x07, 0xa0, 0x26, 0x4a, 0x37, 0x6f, 0x17, 0x3d, 0xdd, 0xc8, 0x85, 0x52, 0x64, 0x17, + 0xbd, 0x71, 0x14, 0x20, 0x9a, 0xbf, 0x94, 0xc0, 0x52, 0xfa, 0xc5, 0x0b, 0x54, 0x41, 0x4d, 0xc3, + 0x9f, 0x45, 0xef, 0xa7, 0xce, 0x6a, 0x42, 0xae, 0xa3, 0xa8, 0xb2, 0xf7, 0xd9, 0x43, 0x7e, 0xa0, + 0x3b, 0x0f, 0xad, 0x8e, 0x63, 0x29, 0xfa, 0xc0, 0xeb, 0xdc, 0xbb, 0x02, 0x17, 0x8a, 0x71, 0x37, + 0xbf, 0x92, 0xc0, 0x72, 0x46, 0xe7, 0xbc, 0xd8, 0x48, 0xe0, 0x27, 0xa0, 0xa2, 0xe1, 0xcf, 0x3a, + 0xae, 0x35, 0x48, 0xeb, 0xf5, 0xf9, 0xe6, 0x61, 0xd5, 0x60, 0x97, 0xb3, 0xa0, 0x80, 0xaf, 0xf9, + 0x10, 0xac, 0x09, 0x2f, 0x49, 0x4f, 0x1e, 0x79, 0xe2, 0xaa, 0xec, 0x10, 0x72, 0xb1, 0x72, 0x03, + 0x54, 0x4d, 0x6c, 0x39, 0x4a, 0x20, 0x75, 0xcb, 0xed, 0xb9, 0xf1, 0xc9, 0x6a, 0x75, 0xdf, 0x1f, + 0x44, 0xa1, 0xbd, 0xf9, 0x1f, 0x09, 0x94, 0x3b, 0x3d, 0xac, 0x92, 0x0b, 0x50, 0x0b, 0xdb, 0x82, + 0x5a, 0xc8, 0xfe, 0x78, 0xc2, 0xe2, 0xc9, 0x14, 0x0a, 0x3b, 0x31, 0xa1, 0xf0, 0xfa, 0x19, 0x3c, + 0xa7, 0x6b, 0x84, 0xf7, 0x41, 0x35, 0x98, 0x6e, 0xb2, 0x02, 0xd6, 0xfc, 0x4d, 0x01, 0xcc, 0x46, + 0xa6, 0x98, 0xb0, 0xfc, 0x3d, 0x16, 0xda, 0x06, 0x3d, 0xd8, 0x1b, 0x79, 0x5e, 0x44, 0xf6, 0x5b, + 0x84, 0x77, 0xf7, 0x10, 0xfe, 0xf2, 0x4c, 0x76, 0x8e, 0x0f, 0x40, 0xcd, 0xc1, 0xd6, 0x80, 0x38, + 0xbe, 0x8d, 0x2d, 0x58, 0x35, 0xbc, 0xa5, 0x3a, 0x10, 0xac, 0x28, 0x86, 0x5e, 0xb9, 0x0b, 0xe6, + 0x84, 0xc9, 0x26, 0xba, 0x40, 0x78, 0x4a, 0x17, 0x27, 0x4c, 0xce, 0x0b, 0xc8, 0xae, 0x8f, 0x84, + 0xec, 0xca, 0xfe, 0xb6, 0x18, 0x3d, 0x32, 0x59, 0x39, 0x86, 0x62, 0x39, 0xf6, 0x46, 0x2e, 0xb6, + 0xd3, 0x33, 0xed, 0x8f, 0x12, 0x98, 0x8f, 0xa0, 0x2f, 0x40, 0x20, 0x3d, 0x10, 0x05, 0xd2, 0xeb, + 0x79, 0x5e, 0x22, 0x43, 0x21, 0xfd, 0xad, 0x2c, 0x04, 0xff, 0xad, 0x97, 0x48, 0x3f, 0x07, 0x8b, + 0x43, 0x43, 0x75, 0x35, 0xb2, 0xa5, 0x62, 0x45, 0xf3, 0x01, 0x54, 0x05, 0x14, 0xe3, 0xbf, 0x4d, + 0x02, 0x7a, 0x62, 0xd9, 0x8a, 0xed, 0x10, 0xdd, 0x79, 0x14, 0x7a, 0x86, 0x3a, 0xe6, 0x51, 0x0a, + 0x1d, 0x4a, 0x9d, 0x04, 0xbe, 0x03, 0x66, 0xa9, 0x1e, 0x51, 0x7a, 0x64, 0x0f, 0x6b, 0xbe, 0xf0, + 0x0e, 0xbe, 0x7c, 0x75, 0x42, 0x13, 0x8a, 0xe2, 0xe0, 0x11, 0x58, 0x30, 0x8d, 0xfe, 0x2e, 0xd6, + 0xf1, 0x80, 0xd0, 0xb6, 0xb7, 0xcf, 0xfe, 0x37, 0x82, 0xdd, 0x12, 0x55, 0xdb, 0xef, 0xfa, 0xbf, + 0xf2, 0xf7, 0x93, 0x10, 0xfa, 0xa3, 0x27, 0x65, 0x98, 0xfd, 0xe8, 0x49, 0xa3, 0x84, 0x56, 0xe2, + 0xcb, 0xaf, 0x77, 0x77, 0xbd, 0x91, 0x27, 0xc3, 0xce, 0xf9, 0xed, 0x37, 0xeb, 0x12, 0xac, 0x72, + 0xae, 0x8f, 0xad, 0x4f, 0x4b, 0xe0, 0x72, 0xe2, 0xe8, 0xfe, 0x0f, 0x6f, 0x8b, 0x12, 0x72, 0xb3, + 0x38, 0x81, 0xdc, 0xdc, 0x04, 0xf3, 0xfc, 0x3b, 0x6f, 0x4c, 0xad, 0x06, 0x7a, 0x7e, 0x4b, 0x34, + 0xa3, 0x38, 0x3e, 0xed, 0xb6, 0xaa, 0x3c, 0xe1, 0x6d, 0x55, 0x34, 0x0a, 0x2e, 0x1f, 0xbd, 0xd4, + 0x4b, 0x46, 0xc1, 0x55, 0x64, 0x1c, 0x4f, 0x3b, 0x96, 0xc7, 0x1a, 0x30, 0xcc, 0x88, 0x1d, 0xeb, + 0x50, 0xb0, 0xa2, 0x18, 0xfa, 0x1b, 0x7d, 0xcb, 0xfc, 0xbb, 0x04, 0x5e, 0xcd, 0xcc, 0x52, 0xb8, + 0x29, 0x5c, 0x19, 0xdc, 0x8c, 0x5d, 0x19, 0x7c, 0x2f, 0xd3, 0x31, 0x72, 0x71, 0x60, 0xa5, 0xdf, + 0x03, 0xbd, 0x9f, 0xef, 0x1e, 0x28, 0x45, 0xe8, 0x9d, 0x7d, 0x21, 0xd4, 0xbe, 0xf9, 0xec, 0x79, + 0x63, 0xea, 0x8b, 0xe7, 0x8d, 0xa9, 0x2f, 0x9f, 0x37, 0xa6, 0x7e, 0x31, 0x6e, 0x48, 0xcf, 0xc6, + 0x0d, 0xe9, 0x8b, 0x71, 0x43, 0xfa, 0x72, 0xdc, 0x90, 0xfe, 0x39, 0x6e, 0x48, 0x9f, 0x7f, 0xd5, + 0x98, 0xfa, 0x64, 0x86, 0xcf, 0xf8, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x69, 0x9d, 0x8d, 0x07, + 0x08, 0x26, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.proto b/staging/src/k8s.io/api/apps/v1beta2/generated.proto index 1bc58370a3a..8a3ecd1709b 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.proto +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.proto @@ -690,6 +690,12 @@ message StatefulSetStatus { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) optional string updateRevision = 7; + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + optional int64 collisionCount = 9; } // WIP: This is not ready to be used and we plan to make breaking changes to it. diff --git a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go index c6f97f6c719..554e92be75c 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -349,6 +349,7 @@ var map_StatefulSetStatus = map[string]string{ "updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "collisionCount": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", } func (StatefulSetStatus) SwaggerDoc() map[string]string { diff --git a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go index bc2b9cd8167..ddc0a778e06 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go @@ -854,7 +854,7 @@ func (in *StatefulSet) DeepCopyInto(out *StatefulSet) { out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status + in.Status.DeepCopyInto(&out.Status) return } @@ -966,6 +966,15 @@ func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { *out = *in + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } return } From ad7012e9746784c2b1dd7643d54feff7800b1b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Wed, 9 Aug 2017 19:22:40 +0300 Subject: [PATCH 133/183] kubeadm: Upload configuration used at 'kubeadm init' time to ConfigMap for easier upgrades --- cmd/kubeadm/app/cmd/init.go | 6 ++ cmd/kubeadm/app/cmd/phases/certs.go | 20 +----- cmd/kubeadm/app/cmd/phases/kubeconfig.go | 20 +----- cmd/kubeadm/app/cmd/phases/phase.go | 1 + cmd/kubeadm/app/cmd/phases/uploadconfig.go | 58 ++++++++++++++++ cmd/kubeadm/app/constants/constants.go | 6 ++ cmd/kubeadm/app/phases/uploadconfig/BUILD | 38 +++++++++++ .../app/phases/uploadconfig/uploadconfig.go | 67 +++++++++++++++++++ cmd/kubeadm/app/util/config/masterconfig.go | 35 +++++++++- 9 files changed, 214 insertions(+), 37 deletions(-) create mode 100644 cmd/kubeadm/app/cmd/phases/uploadconfig.go create mode 100644 cmd/kubeadm/app/phases/uploadconfig/BUILD create mode 100644 cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index 63b972e4b0d..1cc3ae834fb 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -41,6 +41,7 @@ import ( markmasterphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster" selfhostingphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting" tokenphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/token" + uploadconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig" "k8s.io/kubernetes/cmd/kubeadm/app/preflight" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" @@ -266,6 +267,11 @@ func (i *Init) Run(out io.Writer) error { // PHASE 5: Install and deploy all addons, and configure things as necessary + // Upload currently used configuration to the cluster + if err := uploadconfigphase.UploadConfiguration(i.cfg, client); err != nil { + return err + } + // Create the necessary ServiceAccounts if err := apiconfigphase.CreateServiceAccounts(client); err != nil { return err diff --git a/cmd/kubeadm/app/cmd/phases/certs.go b/cmd/kubeadm/app/cmd/phases/certs.go index a06dd885853..aa8c23ce1be 100644 --- a/cmd/kubeadm/app/cmd/phases/certs.go +++ b/cmd/kubeadm/app/cmd/phases/certs.go @@ -25,7 +25,6 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" - "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" certphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs" "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil" @@ -132,24 +131,9 @@ func runCmdFunc(cmdFunc func(cfg *kubeadmapi.MasterConfiguration) error, cfgPath // are shared between sub commands and gets access to current value e.g. flags value. return func(cmd *cobra.Command, args []string) { - internalcfg := &kubeadmapi.MasterConfiguration{} - // Takes passed flags into account; the defaulting is executed once again enforcing assignement of - // static default values to cfg only for values not provided with flags - api.Scheme.Default(cfg) - api.Scheme.Convert(cfg, internalcfg, nil) - - // Loads configuration from config file, if provided - // Nb. --config overrides command line flags - err := configutil.TryLoadMasterConfiguration(*cfgPath, internalcfg) - kubeadmutil.CheckErr(err) - - // Applies dynamic defaults to settings not provided with flags - err = configutil.SetInitDynamicDefaults(internalcfg) - kubeadmutil.CheckErr(err) - - // Validates cfg (flags/configs + defaults + dynamic defaults) - err = validation.ValidateMasterConfiguration(internalcfg).ToAggregate() + // This call returns the ready-to-use configuration based on the configuration file that might or might not exist and the default cfg populated by flags + internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(*cfgPath, cfg) kubeadmutil.CheckErr(err) // Execute the cmdFunc diff --git a/cmd/kubeadm/app/cmd/phases/kubeconfig.go b/cmd/kubeadm/app/cmd/phases/kubeconfig.go index a009a5cb998..22197a41a86 100644 --- a/cmd/kubeadm/app/cmd/phases/kubeconfig.go +++ b/cmd/kubeadm/app/cmd/phases/kubeconfig.go @@ -24,7 +24,6 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" - "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" @@ -141,24 +140,9 @@ func runCmdFuncKubeConfig(cmdFunc func(outDir string, cfg *kubeadmapi.MasterConf // are shared between sub commands and gets access to current value e.g. flags value. return func(cmd *cobra.Command, args []string) { - internalcfg := &kubeadmapi.MasterConfiguration{} - // Takes passed flags into account; the defaulting is executed once again enforcing assignement of - // static default values to cfg only for values not provided with flags - api.Scheme.Default(cfg) - api.Scheme.Convert(cfg, internalcfg, nil) - - // Loads configuration from config file, if provided - // Nb. --config overrides command line flags - err := configutil.TryLoadMasterConfiguration(*cfgPath, internalcfg) - kubeadmutil.CheckErr(err) - - // Applies dynamic defaults to settings not provided with flags - err = configutil.SetInitDynamicDefaults(internalcfg) - kubeadmutil.CheckErr(err) - - // Validates cfg (flags/configs + defaults + dynamic defaults) - err = validation.ValidateMasterConfiguration(internalcfg).ToAggregate() + // This call returns the ready-to-use configuration based on the configuration file that might or might not exist and the default cfg populated by flags + internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(*cfgPath, cfg) kubeadmutil.CheckErr(err) // Execute the cmdFunc diff --git a/cmd/kubeadm/app/cmd/phases/phase.go b/cmd/kubeadm/app/cmd/phases/phase.go index e46414e6fea..eea17f2ac10 100644 --- a/cmd/kubeadm/app/cmd/phases/phase.go +++ b/cmd/kubeadm/app/cmd/phases/phase.go @@ -35,6 +35,7 @@ func NewCmdPhase(out io.Writer) *cobra.Command { cmd.AddCommand(NewCmdPreFlight()) cmd.AddCommand(NewCmdSelfhosting()) cmd.AddCommand(NewCmdMarkMaster()) + cmd.AddCommand(NewCmdUploadConfig()) return cmd } diff --git a/cmd/kubeadm/app/cmd/phases/uploadconfig.go b/cmd/kubeadm/app/cmd/phases/uploadconfig.go new file mode 100644 index 00000000000..bd2573f4f09 --- /dev/null +++ b/cmd/kubeadm/app/cmd/phases/uploadconfig.go @@ -0,0 +1,58 @@ +/* +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. +*/ + +package phases + +import ( + "fmt" + + "github.com/spf13/cobra" + + kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" + "k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig" + kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" + configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" + kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" +) + +// NewCmdUploadConfig returns the Cobra command for running the uploadconfig phase +func NewCmdUploadConfig() *cobra.Command { + var cfgPath, kubeConfigFile string + cmd := &cobra.Command{ + Use: "upload-config", + Short: "Upload the currently used configuration for kubeadm to a ConfigMap in the cluster for future use in reconfiguration and upgrades of the cluster.", + Aliases: []string{"uploadconfig"}, + Run: func(_ *cobra.Command, args []string) { + if len(cfgPath) == 0 { + kubeadmutil.CheckErr(fmt.Errorf("The --config flag is mandatory")) + } + client, err := kubeconfigutil.ClientSetFromFile(kubeConfigFile) + kubeadmutil.CheckErr(err) + + defaultcfg := &kubeadmapiext.MasterConfiguration{} + internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(cfgPath, defaultcfg) + kubeadmutil.CheckErr(err) + + err = uploadconfig.UploadConfiguration(internalcfg, client) + kubeadmutil.CheckErr(err) + }, + } + + cmd.Flags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") + cmd.Flags().StringVar(&cfgPath, "config", "", "Path to kubeadm config file (WARNING: Usage of a configuration file is experimental)") + + return cmd +} diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index fccc3ef92af..6f237f55895 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -96,6 +96,12 @@ const ( // It's copied over to kubeadm until it's merged in core: https://github.com/kubernetes/kubernetes/pull/39112 LabelNodeRoleMaster = "node-role.kubernetes.io/master" + // MasterConfigurationConfigMap specifies in what ConfigMap in the kube-system namespace the `kubeadm init` configuration should be stored + MasterConfigurationConfigMap = "kubeadm-config" + + // MasterConfigurationConfigMapKey specifies in what ConfigMap key the master configuration should be stored + MasterConfigurationConfigMapKey = "MasterConfiguration" + // MinExternalEtcdVersion indicates minimum external etcd version which kubeadm supports MinExternalEtcdVersion = "3.0.14" diff --git a/cmd/kubeadm/app/phases/uploadconfig/BUILD b/cmd/kubeadm/app/phases/uploadconfig/BUILD new file mode 100644 index 00000000000..bf15a3238d5 --- /dev/null +++ b/cmd/kubeadm/app/phases/uploadconfig/BUILD @@ -0,0 +1,38 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["saveconfig.go"], + tags = ["automanaged"], + deps = [ + "//cmd/kubeadm/app/apis/kubeadm:go_default_library", + "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", + "//cmd/kubeadm/app/constants:go_default_library", + "//pkg/api:go_default_library", + "//vendor/github.com/ghodss/yaml:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go b/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go new file mode 100644 index 00000000000..c6f0e39936d --- /dev/null +++ b/cmd/kubeadm/app/phases/uploadconfig/uploadconfig.go @@ -0,0 +1,67 @@ +/* +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. +*/ + +package uploadconfig + +import ( + "fmt" + + "github.com/ghodss/yaml" + + "k8s.io/api/core/v1" + apierrs "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + clientset "k8s.io/client-go/kubernetes" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" + "k8s.io/kubernetes/pkg/api" +) + +// UploadConfiguration saves the MasterConfiguration used for later reference (when upgrading for instance) +func UploadConfiguration(cfg *kubeadmapi.MasterConfiguration, client clientset.Interface) error { + + fmt.Printf("[uploadconfig] Storing the configuration used in ConfigMap %q in the %q Namespace\n", kubeadmconstants.MasterConfigurationConfigMap, metav1.NamespaceSystem) + + // Convert cfg to the external version as that's the only version of the API that can be deserialized later + externalcfg := &kubeadmapiext.MasterConfiguration{} + api.Scheme.Convert(cfg, externalcfg, nil) + + cfgYaml, err := yaml.Marshal(*externalcfg) + if err != nil { + return err + } + + cm := &v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: kubeadmconstants.MasterConfigurationConfigMap, + Namespace: metav1.NamespaceSystem, + }, + Data: map[string]string{ + kubeadmconstants.MasterConfigurationConfigMapKey: string(cfgYaml), + }, + } + + if _, err := client.CoreV1().ConfigMaps(cm.ObjectMeta.Namespace).Create(cm); err != nil { + if !apierrs.IsAlreadyExists(err) { + return err + } + if _, err := client.CoreV1().ConfigMaps(cm.ObjectMeta.Namespace).Update(cm); err != nil { + return err + } + } + return nil +} diff --git a/cmd/kubeadm/app/util/config/masterconfig.go b/cmd/kubeadm/app/util/config/masterconfig.go index f8b36532cc3..8cb6aaf018c 100644 --- a/cmd/kubeadm/app/util/config/masterconfig.go +++ b/cmd/kubeadm/app/util/config/masterconfig.go @@ -24,6 +24,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" netutil "k8s.io/apimachinery/pkg/util/net" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" + kubeadmapiext "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" + "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" tokenutil "k8s.io/kubernetes/cmd/kubeadm/app/util/token" @@ -72,7 +74,7 @@ func SetInitDynamicDefaults(cfg *kubeadmapi.MasterConfiguration) error { } // TryLoadMasterConfiguration tries to loads a Master configuration from the given file (if defined) -func TryLoadMasterConfiguration(cfgPath string, cfg *kubeadmapi.MasterConfiguration) error { +func TryLoadMasterConfiguration(cfgPath string, cfg *kubeadmapiext.MasterConfiguration) error { if cfgPath != "" { b, err := ioutil.ReadFile(cfgPath) @@ -86,3 +88,34 @@ func TryLoadMasterConfiguration(cfgPath string, cfg *kubeadmapi.MasterConfigurat return nil } + +// ConfigFileAndDefaultsToInternalConfig takes a path to a config file and a versioned configuration that can serve as the default config +// If cfgPath is specified, defaultversionedcfg will always get overridden. Otherwise, the default config (often populated by flags) will be used. +// Then the external, versioned configuration is defaulted and converted to the internal type. +// Right thereafter, the configuration is defaulted again with dynamic values (like IP addresses of a machine, etc) +// Lastly, the internal config is validated and returned. +func ConfigFileAndDefaultsToInternalConfig(cfgPath string, defaultversionedcfg *kubeadmapiext.MasterConfiguration) (*kubeadmapi.MasterConfiguration, error) { + internalcfg := &kubeadmapi.MasterConfiguration{} + + // Loads configuration from config file, if provided + // Nb. --config overrides command line flags + if err := TryLoadMasterConfiguration(cfgPath, defaultversionedcfg); err != nil { + return nil, err + } + + // Takes passed flags into account; the defaulting is executed once again enforcing assignement of + // static default values to cfg only for values not provided with flags + api.Scheme.Default(defaultversionedcfg) + api.Scheme.Convert(defaultversionedcfg, internalcfg, nil) + + // Applies dynamic defaults to settings not provided with flags + if err := SetInitDynamicDefaults(internalcfg); err != nil { + return nil, err + } + + // Validates cfg (flags/configs + defaults + dynamic defaults) + if err := validation.ValidateMasterConfiguration(internalcfg).ToAggregate(); err != nil { + return nil, err + } + return internalcfg, nil +} From 728d0f935583b01d13c398064faedd75fd7f0c7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Wed, 9 Aug 2017 19:31:16 +0300 Subject: [PATCH 134/183] autogenerated bazel --- cmd/kubeadm/app/BUILD | 1 + cmd/kubeadm/app/cmd/BUILD | 1 + cmd/kubeadm/app/cmd/phases/BUILD | 3 ++- cmd/kubeadm/app/phases/uploadconfig/BUILD | 2 +- cmd/kubeadm/app/util/config/BUILD | 2 ++ 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/cmd/kubeadm/app/BUILD b/cmd/kubeadm/app/BUILD index 3ede4d174f5..5688d5c6872 100644 --- a/cmd/kubeadm/app/BUILD +++ b/cmd/kubeadm/app/BUILD @@ -44,6 +44,7 @@ filegroup( "//cmd/kubeadm/app/phases/markmaster:all-srcs", "//cmd/kubeadm/app/phases/selfhosting:all-srcs", "//cmd/kubeadm/app/phases/token:all-srcs", + "//cmd/kubeadm/app/phases/uploadconfig:all-srcs", "//cmd/kubeadm/app/preflight:all-srcs", "//cmd/kubeadm/app/util:all-srcs", ], diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index d803edc9ae6..aa6e2c8a282 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -35,6 +35,7 @@ go_library( "//cmd/kubeadm/app/phases/markmaster:go_default_library", "//cmd/kubeadm/app/phases/selfhosting:go_default_library", "//cmd/kubeadm/app/phases/token:go_default_library", + "//cmd/kubeadm/app/phases/uploadconfig:go_default_library", "//cmd/kubeadm/app/preflight:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/config:go_default_library", diff --git a/cmd/kubeadm/app/cmd/phases/BUILD b/cmd/kubeadm/app/cmd/phases/BUILD index 5975ef330dc..df839cb8710 100644 --- a/cmd/kubeadm/app/cmd/phases/BUILD +++ b/cmd/kubeadm/app/cmd/phases/BUILD @@ -17,18 +17,19 @@ go_library( "phase.go", "preflight.go", "selfhosting.go", + "uploadconfig.go", ], tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", - "//cmd/kubeadm/app/apis/kubeadm/validation:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/phases/certs:go_default_library", "//cmd/kubeadm/app/phases/certs/pkiutil:go_default_library", "//cmd/kubeadm/app/phases/kubeconfig:go_default_library", "//cmd/kubeadm/app/phases/markmaster:go_default_library", "//cmd/kubeadm/app/phases/selfhosting:go_default_library", + "//cmd/kubeadm/app/phases/uploadconfig:go_default_library", "//cmd/kubeadm/app/preflight:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/config:go_default_library", diff --git a/cmd/kubeadm/app/phases/uploadconfig/BUILD b/cmd/kubeadm/app/phases/uploadconfig/BUILD index bf15a3238d5..f2117181897 100644 --- a/cmd/kubeadm/app/phases/uploadconfig/BUILD +++ b/cmd/kubeadm/app/phases/uploadconfig/BUILD @@ -9,7 +9,7 @@ load( go_library( name = "go_default_library", - srcs = ["saveconfig.go"], + srcs = ["uploadconfig.go"], tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", diff --git a/cmd/kubeadm/app/util/config/BUILD b/cmd/kubeadm/app/util/config/BUILD index cb06b9973c4..4b642ac95c4 100644 --- a/cmd/kubeadm/app/util/config/BUILD +++ b/cmd/kubeadm/app/util/config/BUILD @@ -14,6 +14,8 @@ go_library( tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", + "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", + "//cmd/kubeadm/app/apis/kubeadm/validation:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/token:go_default_library", From 782d87c405015d2a3abcf537e1b779fd76308039 Mon Sep 17 00:00:00 2001 From: Mik Vyatskov Date: Wed, 9 Aug 2017 19:14:41 +0200 Subject: [PATCH 135/183] Add explicit API kind and version to the audit policy file on GCE --- cluster/gce/gci/configure-helper.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index e6fbfa582ee..8658c2a7751 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -524,6 +524,8 @@ function create-master-audit-policy { - group: "storage.k8s.io"' cat <"${path}" +apiVersion: audit.k8s.io/v1alpha1 +kind: Policy rules: # The following requests were manually identified as high-volume and low-risk, # so drop them. From 60514d3d664244299b42e8f6af0c2212b0cee632 Mon Sep 17 00:00:00 2001 From: Dan Mace Date: Wed, 9 Aug 2017 13:32:32 -0400 Subject: [PATCH 136/183] Use zero TerminationGracePeriodSeconds in fixture Pods associated with the test JobTemplate should use a zero TerminationGracePeriodSeconds to ensure they're deleted immediately. This should improve test timing assumption consistency. --- test/e2e/apimachinery/garbage_collector.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/e2e/apimachinery/garbage_collector.go b/test/e2e/apimachinery/garbage_collector.go index 2d9a30faf12..25f4d45e571 100644 --- a/test/e2e/apimachinery/garbage_collector.go +++ b/test/e2e/apimachinery/garbage_collector.go @@ -283,7 +283,8 @@ func newCronJob(name, schedule string) *batchv2alpha1.CronJob { Completions: &completions, Template: v1.PodTemplateSpec{ Spec: v1.PodSpec{ - RestartPolicy: v1.RestartPolicyOnFailure, + RestartPolicy: v1.RestartPolicyOnFailure, + TerminationGracePeriodSeconds: &zero, Containers: []v1.Container{ { Name: "c", From 06d8f5fe4a58f0150a5702fed0bccc46ff5a845c Mon Sep 17 00:00:00 2001 From: Lantao Liu Date: Wed, 9 Aug 2017 18:08:29 +0000 Subject: [PATCH 137/183] Admit sysctls for other runtime. --- pkg/kubelet/sysctl/runtime.go | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/pkg/kubelet/sysctl/runtime.go b/pkg/kubelet/sysctl/runtime.go index 0fb032bd4e3..36d8e1db3ab 100644 --- a/pkg/kubelet/sysctl/runtime.go +++ b/pkg/kubelet/sysctl/runtime.go @@ -31,6 +31,7 @@ const ( dockerMinimumAPIVersion = "1.24.0" dockerTypeName = "docker" + rktTypeName = "rkt" ) // TODO: The admission logic in this file is runtime-dependent. It should be @@ -45,7 +46,8 @@ var _ lifecycle.PodAdmitHandler = &runtimeAdmitHandler{} // NewRuntimeAdmitHandler returns a sysctlRuntimeAdmitHandler which checks whether // the given runtime support sysctls. func NewRuntimeAdmitHandler(runtime container.Runtime) (*runtimeAdmitHandler, error) { - if runtime.Type() == dockerTypeName { + switch runtime.Type() { + case dockerTypeName: v, err := runtime.APIVersion() if err != nil { return nil, fmt.Errorf("failed to get runtime version: %v", err) @@ -70,16 +72,22 @@ func NewRuntimeAdmitHandler(runtime container.Runtime) (*runtimeAdmitHandler, er Message: "Docker before 1.12 does not support sysctls", }, }, nil + case rktTypeName: + return &runtimeAdmitHandler{ + result: lifecycle.PodAdmitResult{ + Admit: false, + Reason: UnsupportedReason, + Message: "Rkt does not support sysctls", + }, + }, nil + default: + // Return admit for other runtimes. + return &runtimeAdmitHandler{ + result: lifecycle.PodAdmitResult{ + Admit: true, + }, + }, nil } - - // for other runtimes like rkt sysctls are not supported - return &runtimeAdmitHandler{ - result: lifecycle.PodAdmitResult{ - Admit: false, - Reason: UnsupportedReason, - Message: fmt.Sprintf("runtime %v does not support sysctls", runtime.Type()), - }, - }, nil } // Admit checks whether the runtime supports sysctls. From e77830c71d173ba0f90338402b3fa7d030dce733 Mon Sep 17 00:00:00 2001 From: Jacob Beacham Date: Wed, 9 Aug 2017 11:30:35 -0700 Subject: [PATCH 138/183] New get-kube.sh option: KUBERNETES_SKIP_RELEASE_VALIDATION --- cluster/get-kube.sh | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/cluster/get-kube.sh b/cluster/get-kube.sh index 5ae6333eebb..1f910727e9f 100755 --- a/cluster/get-kube.sh +++ b/cluster/get-kube.sh @@ -56,6 +56,9 @@ # Set KUBERNETES_SKIP_DOWNLOAD to skip downloading a release. # Set KUBERNETES_SKIP_CONFIRM to skip the installation confirmation prompt. # Set KUBERNETES_SKIP_CREATE_CLUSTER to skip starting a cluster. +# Set KUBERNETES_SKIP_RELEASE_VALIDATION to skip trying to validate the +# Kubernetes release string. This implies that you know what you're doing +# and have set KUBERNETES_RELEASE and KUBERNETES_RELEASE_URL properly. set -o errexit set -o nounset @@ -179,13 +182,15 @@ release=${KUBERNETES_RELEASE:-"release/stable"} # Validate Kubernetes release version. # Translate a published version / (e.g. "release/stable") to version number. set_binary_version "${release}" -if [[ ${KUBE_VERSION} =~ ${KUBE_CI_VERSION_REGEX} ]]; then - # Override KUBERNETES_RELEASE_URL to point to the CI bucket; - # this will be used by get-kube-binaries.sh. - KUBERNETES_RELEASE_URL="${KUBERNETES_CI_RELEASE_URL}" -elif ! [[ ${KUBE_VERSION} =~ ${KUBE_RELEASE_VERSION_REGEX} ]]; then - echo "Version doesn't match regexp" >&2 - exit 1 +if [[ -z "${KUBERNETES_SKIP_RELEASE_VALIDATION-}" ]]; then + if [[ ${KUBE_VERSION} =~ ${KUBE_CI_VERSION_REGEX} ]]; then + # Override KUBERNETES_RELEASE_URL to point to the CI bucket; + # this will be used by get-kube-binaries.sh. + KUBERNETES_RELEASE_URL="${KUBERNETES_CI_RELEASE_URL}" + elif ! [[ ${KUBE_VERSION} =~ ${KUBE_RELEASE_VERSION_REGEX} ]]; then + echo "Version doesn't match regexp" >&2 + exit 1 + fi fi kubernetes_tar_url="${KUBERNETES_RELEASE_URL}/${KUBE_VERSION}/${file}" From a5987fe72c3d8f2e1db9ff09128db8d06c0eeb13 Mon Sep 17 00:00:00 2001 From: crimsonfaith91 Date: Mon, 7 Aug 2017 14:20:48 -0700 Subject: [PATCH 139/183] remove apps/v1beta2 defaulting codes for obj.Spec.Selector and obj.Labels --- pkg/apis/apps/v1beta2/defaults.go | 49 ------- pkg/apis/apps/v1beta2/defaults_test.go | 130 +----------------- .../etcd/etcd_storage_path_test.go | 4 +- 3 files changed, 3 insertions(+), 180 deletions(-) diff --git a/pkg/apis/apps/v1beta2/defaults.go b/pkg/apis/apps/v1beta2/defaults.go index db73c3e73ec..c93db681dad 100644 --- a/pkg/apis/apps/v1beta2/defaults.go +++ b/pkg/apis/apps/v1beta2/defaults.go @@ -18,7 +18,6 @@ package v1beta2 import ( appsv1beta2 "k8s.io/api/apps/v1beta2" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/util/intstr" ) @@ -28,19 +27,6 @@ func addDefaultingFuncs(scheme *runtime.Scheme) error { } func SetDefaults_DaemonSet(obj *appsv1beta2.DaemonSet) { - labels := obj.Spec.Template.Labels - - // TODO: support templates defined elsewhere when we support them in the API - if labels != nil { - if obj.Spec.Selector == nil { - obj.Spec.Selector = &metav1.LabelSelector{ - MatchLabels: labels, - } - } - if len(obj.Labels) == 0 { - obj.Labels = labels - } - } updateStrategy := &obj.Spec.UpdateStrategy if updateStrategy.Type == "" { updateStrategy.Type = appsv1beta2.RollingUpdateDaemonSetStrategyType @@ -81,17 +67,6 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) { *obj.Spec.UpdateStrategy.RollingUpdate.Partition = 0 } - labels := obj.Spec.Template.Labels - if labels != nil { - if obj.Spec.Selector == nil { - obj.Spec.Selector = &metav1.LabelSelector{ - MatchLabels: labels, - } - } - if len(obj.Labels) == 0 { - obj.Labels = labels - } - } if obj.Spec.Replicas == nil { obj.Spec.Replicas = new(int32) *obj.Spec.Replicas = 1 @@ -109,17 +84,6 @@ func SetDefaults_StatefulSet(obj *appsv1beta2.StatefulSet) { // - RevisionHistoryLimit set to 10 (not set in extensions) // - ProgressDeadlineSeconds set to 600s (not set in extensions) func SetDefaults_Deployment(obj *appsv1beta2.Deployment) { - // Default labels and selector to labels from pod template spec. - labels := obj.Spec.Template.Labels - - if labels != nil { - if obj.Spec.Selector == nil { - obj.Spec.Selector = &metav1.LabelSelector{MatchLabels: labels} - } - if len(obj.Labels) == 0 { - obj.Labels = labels - } - } // Set appsv1beta2.DeploymentSpec.Replicas to 1 if it is not set. if obj.Spec.Replicas == nil { obj.Spec.Replicas = new(int32) @@ -157,19 +121,6 @@ func SetDefaults_Deployment(obj *appsv1beta2.Deployment) { } func SetDefaults_ReplicaSet(obj *appsv1beta2.ReplicaSet) { - labels := obj.Spec.Template.Labels - - // TODO: support templates defined elsewhere when we support them in the API - if labels != nil { - if obj.Spec.Selector == nil { - obj.Spec.Selector = &metav1.LabelSelector{ - MatchLabels: labels, - } - } - if len(obj.Labels) == 0 { - obj.Labels = labels - } - } if obj.Spec.Replicas == nil { obj.Spec.Replicas = new(int32) *obj.Spec.Replicas = 1 diff --git a/pkg/apis/apps/v1beta2/defaults_test.go b/pkg/apis/apps/v1beta2/defaults_test.go index 3a24c811b73..19bef1c1893 100644 --- a/pkg/apis/apps/v1beta2/defaults_test.go +++ b/pkg/apis/apps/v1beta2/defaults_test.go @@ -73,9 +73,6 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { Labels: defaultLabels, }, Spec: appsv1beta2.DaemonSetSpec{ - Selector: &metav1.LabelSelector{ - MatchLabels: defaultLabels, - }, Template: defaultTemplate, UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, @@ -106,9 +103,6 @@ func TestSetDefaultDaemonSetSpec(t *testing.T) { }, }, Spec: appsv1beta2.DaemonSetSpec{ - Selector: &metav1.LabelSelector{ - MatchLabels: defaultLabels, - }, Template: defaultTemplate, UpdateStrategy: appsv1beta2.DaemonSetUpdateStrategy{ Type: appsv1beta2.RollingUpdateStatefulSetStrategyType, @@ -196,7 +190,7 @@ func TestSetDefaultStatefulSet(t *testing.T) { original *appsv1beta2.StatefulSet expected *appsv1beta2.StatefulSet }{ - { // Selector, labels and default update strategy + { // labels and default update strategy original: &appsv1beta2.StatefulSet{ Spec: appsv1beta2.StatefulSetSpec{ Template: defaultTemplate, @@ -207,9 +201,6 @@ func TestSetDefaultStatefulSet(t *testing.T) { Labels: defaultLabels, }, Spec: appsv1beta2.StatefulSetSpec{ - Selector: &metav1.LabelSelector{ - MatchLabels: defaultLabels, - }, Replicas: &defaultReplicas, Template: defaultTemplate, PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement, @@ -237,9 +228,6 @@ func TestSetDefaultStatefulSet(t *testing.T) { Labels: defaultLabels, }, Spec: appsv1beta2.StatefulSetSpec{ - Selector: &metav1.LabelSelector{ - MatchLabels: defaultLabels, - }, Replicas: &defaultReplicas, Template: defaultTemplate, PodManagementPolicy: appsv1beta2.OrderedReadyPodManagement, @@ -262,9 +250,6 @@ func TestSetDefaultStatefulSet(t *testing.T) { Labels: defaultLabels, }, Spec: appsv1beta2.StatefulSetSpec{ - Selector: &metav1.LabelSelector{ - MatchLabels: defaultLabels, - }, Replicas: &defaultReplicas, Template: defaultTemplate, PodManagementPolicy: appsv1beta2.ParallelPodManagement, @@ -458,119 +443,6 @@ func TestDefaultDeploymentAvailability(t *testing.T) { } } -func TestSetDefaultReplicaSet(t *testing.T) { - tests := []struct { - rs *appsv1beta2.ReplicaSet - expectLabels bool - expectSelector bool - }{ - { - rs: &appsv1beta2.ReplicaSet{ - Spec: appsv1beta2.ReplicaSetSpec{ - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - }, - expectLabels: true, - expectSelector: true, - }, - { - rs: &appsv1beta2.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "bar": "foo", - }, - }, - Spec: appsv1beta2.ReplicaSetSpec{ - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - }, - expectLabels: false, - expectSelector: true, - }, - { - rs: &appsv1beta2.ReplicaSet{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "bar": "foo", - }, - }, - Spec: appsv1beta2.ReplicaSetSpec{ - Selector: &metav1.LabelSelector{ - MatchLabels: map[string]string{ - "some": "other", - }, - }, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - }, - expectLabels: false, - expectSelector: false, - }, - { - rs: &appsv1beta2.ReplicaSet{ - Spec: appsv1beta2.ReplicaSetSpec{ - Selector: &metav1.LabelSelector{ - MatchLabels: map[string]string{ - "some": "other", - }, - }, - Template: v1.PodTemplateSpec{ - ObjectMeta: metav1.ObjectMeta{ - Labels: map[string]string{ - "foo": "bar", - }, - }, - }, - }, - }, - expectLabels: true, - expectSelector: false, - }, - } - - for _, test := range tests { - rs := test.rs - obj2 := roundTrip(t, runtime.Object(rs)) - rs2, ok := obj2.(*appsv1beta2.ReplicaSet) - if !ok { - t.Errorf("unexpected object: %v", rs2) - t.FailNow() - } - if test.expectSelector != reflect.DeepEqual(rs2.Spec.Selector.MatchLabels, rs2.Spec.Template.Labels) { - if test.expectSelector { - t.Errorf("expected: %v, got: %v", rs2.Spec.Template.Labels, rs2.Spec.Selector) - } else { - t.Errorf("unexpected equality: %v", rs.Spec.Selector) - } - } - if test.expectLabels != reflect.DeepEqual(rs2.Labels, rs2.Spec.Template.Labels) { - if test.expectLabels { - t.Errorf("expected: %v, got: %v", rs2.Spec.Template.Labels, rs2.Labels) - } else { - t.Errorf("unexpected equality: %v", rs.Labels) - } - } - } -} - func TestSetDefaultReplicaSetReplicas(t *testing.T) { tests := []struct { rs appsv1beta2.ReplicaSet diff --git a/test/integration/etcd/etcd_storage_path_test.go b/test/integration/etcd/etcd_storage_path_test.go index 61c87c83b2d..837b4295e63 100644 --- a/test/integration/etcd/etcd_storage_path_test.go +++ b/test/integration/etcd/etcd_storage_path_test.go @@ -133,7 +133,7 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { // k8s.io/kubernetes/pkg/apis/apps/v1beta1 gvr("apps", "v1beta1", "statefulsets"): { - stub: `{"metadata": {"name": "ss1"}, "spec": {"template": {"metadata": {"labels": {"a": "b"}}}}}`, + stub: `{"metadata": {"name": "ss1"}, "spec": {"selector": {"matchLabels": {"a": "b"}}, "template": {"metadata": {"labels": {"a": "b"}}}}}`, expectedEtcdPath: "/registry/statefulsets/etcdstoragepathtestnamespace/ss1", }, gvr("apps", "v1beta1", "deployments"): { @@ -149,7 +149,7 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { // k8s.io/kubernetes/pkg/apis/apps/v1beta2 gvr("apps", "v1beta2", "statefulsets"): { - stub: `{"metadata": {"name": "ss2"}, "spec": {"template": {"metadata": {"labels": {"a": "b"}}}}}`, + stub: `{"metadata": {"name": "ss2"}, "spec": {"selector": {"matchLabels": {"a": "b"}}, "template": {"metadata": {"labels": {"a": "b"}}}}}`, expectedEtcdPath: "/registry/statefulsets/etcdstoragepathtestnamespace/ss2", expectedGVK: gvkP("apps", "v1beta1", "StatefulSet"), }, From cb56558531f68bbe22c41eff545abb256d1cdcc1 Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Fri, 28 Jul 2017 09:11:24 -0700 Subject: [PATCH 140/183] csr: add resync to csr approver --- pkg/controller/certificates/approver/sarapprove.go | 10 ++++++++++ .../certificates/approver/sarapprove_test.go | 6 ++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/pkg/controller/certificates/approver/sarapprove.go b/pkg/controller/certificates/approver/sarapprove.go index fdcc8c8b312..66d5e28cd2c 100644 --- a/pkg/controller/certificates/approver/sarapprove.go +++ b/pkg/controller/certificates/approver/sarapprove.go @@ -91,10 +91,15 @@ func (a *sarApprover) handle(csr *capi.CertificateSigningRequest) error { return fmt.Errorf("unable to parse csr %q: %v", csr.Name, err) } + tried := []string{} + for _, r := range a.recognizers { if !r.recognize(csr, x509cr) { continue } + + tried = append(tried, r.permission.Subresource) + approved, err := a.authorize(csr, r.permission) if err != nil { return err @@ -108,6 +113,11 @@ func (a *sarApprover) handle(csr *capi.CertificateSigningRequest) error { return nil } } + + if len(tried) != 0 { + return fmt.Errorf("recognized csr %q as %v but subject access review was not approved", csr.Name, tried) + } + return nil } diff --git a/pkg/controller/certificates/approver/sarapprove_test.go b/pkg/controller/certificates/approver/sarapprove_test.go index 3dcc1d044fa..f17b9cebec4 100644 --- a/pkg/controller/certificates/approver/sarapprove_test.go +++ b/pkg/controller/certificates/approver/sarapprove_test.go @@ -89,6 +89,7 @@ func TestHandle(t *testing.T) { message string allowed bool recognized bool + err bool verify func(*testing.T, []testclient.Action) }{ { @@ -119,6 +120,7 @@ func TestHandle(t *testing.T) { } _ = as[0].(testclient.CreateActionImpl) }, + err: true, }, { recognized: true, @@ -155,7 +157,7 @@ func TestHandle(t *testing.T) { } for _, c := range cases { - t.Run(fmt.Sprintf("recognized:%v,allowed: %v", c.recognized, c.allowed), func(t *testing.T) { + t.Run(fmt.Sprintf("recognized:%v,allowed: %v,err: %v", c.recognized, c.allowed, c.err), func(t *testing.T) { client := &fake.Clientset{} client.AddReactor("create", "subjectaccessreviews", func(action testclient.Action) (handled bool, ret runtime.Object, err error) { return true, &authorization.SubjectAccessReview{ @@ -177,7 +179,7 @@ func TestHandle(t *testing.T) { }, } csr := makeTestCsr() - if err := approver.handle(csr); err != nil { + if err := approver.handle(csr); err != nil && !c.err { t.Errorf("unexpected err: %v", err) } c.verify(t, client.Actions()) From dd7be70a4ace846512e77e2331d55434955e37ab Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Wed, 26 Jul 2017 10:36:43 -0400 Subject: [PATCH 141/183] Add rbac.authorization.k8s.io/v1 --- cmd/kube-apiserver/app/aggregator.go | 1 + federation/pkg/kubefed/init/init_test.go | 4 +- hack/.golint_failures | 4 + hack/lib/init.sh | 1 + pkg/api/defaulting_test.go | 4 + pkg/apis/rbac/BUILD | 1 + pkg/apis/rbac/install/BUILD | 1 + pkg/apis/rbac/install/install.go | 16 +- pkg/apis/rbac/v1/BUILD | 42 ++++ pkg/apis/rbac/v1/defaults.go | 49 ++++ pkg/apis/rbac/v1/doc.go | 23 ++ pkg/apis/rbac/v1/helpers.go | 150 ++++++++++++ pkg/apis/rbac/v1/register.go | 44 ++++ pkg/generated/openapi/BUILD | 1 + pkg/master/master.go | 2 + pkg/registry/rbac/rest/BUILD | 1 + pkg/registry/rbac/rest/storage_rbac.go | 6 + staging/src/k8s.io/api/rbac/v1/BUILD | 31 +++ staging/src/k8s.io/api/rbac/v1/doc.go | 21 ++ staging/src/k8s.io/api/rbac/v1/register.go | 58 +++++ staging/src/k8s.io/api/rbac/v1/types.go | 219 ++++++++++++++++++ test/e2e/examples.go | 2 +- test/e2e/kubectl/kubectl.go | 2 +- test/e2e/network/ingress.go | 2 +- test/e2e/storage/volume_provisioning.go | 2 +- test/integration/auth/rbac_test.go | 5 +- .../etcd/etcd_storage_path_test.go | 23 ++ 27 files changed, 706 insertions(+), 9 deletions(-) create mode 100644 pkg/apis/rbac/v1/BUILD create mode 100644 pkg/apis/rbac/v1/defaults.go create mode 100644 pkg/apis/rbac/v1/doc.go create mode 100644 pkg/apis/rbac/v1/helpers.go create mode 100644 pkg/apis/rbac/v1/register.go create mode 100644 staging/src/k8s.io/api/rbac/v1/BUILD create mode 100644 staging/src/k8s.io/api/rbac/v1/doc.go create mode 100644 staging/src/k8s.io/api/rbac/v1/register.go create mode 100644 staging/src/k8s.io/api/rbac/v1/types.go diff --git a/cmd/kube-apiserver/app/aggregator.go b/cmd/kube-apiserver/app/aggregator.go index bf7530104da..6261a39fc42 100644 --- a/cmd/kube-apiserver/app/aggregator.go +++ b/cmd/kube-apiserver/app/aggregator.go @@ -186,6 +186,7 @@ var apiVersionPriorities = map[schema.GroupVersion]priority{ {Group: "certificates.k8s.io", Version: "v1beta1"}: {group: 17300, version: 9}, {Group: "networking.k8s.io", Version: "v1"}: {group: 17200, version: 15}, {Group: "policy", Version: "v1beta1"}: {group: 17100, version: 9}, + {Group: "rbac.authorization.k8s.io", Version: "v1"}: {group: 17000, version: 15}, {Group: "rbac.authorization.k8s.io", Version: "v1beta1"}: {group: 17000, version: 12}, {Group: "rbac.authorization.k8s.io", Version: "v1alpha1"}: {group: 17000, version: 9}, {Group: "settings.k8s.io", Version: "v1alpha1"}: {group: 16900, version: 9}, diff --git a/federation/pkg/kubefed/init/init_test.go b/federation/pkg/kubefed/init/init_test.go index 7fc902a1cf5..c6d5b1ea65e 100644 --- a/federation/pkg/kubefed/init/init_test.go +++ b/federation/pkg/kubefed/init/init_test.go @@ -783,7 +783,7 @@ func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, na role := rbacv1beta1.Role{ TypeMeta: metav1.TypeMeta{ Kind: "Role", - APIVersion: testapi.Rbac.GroupVersion().String(), + APIVersion: rbacv1beta1.SchemeGroupVersion.String(), }, ObjectMeta: metav1.ObjectMeta{ Name: "federation-system:federation-controller-manager", @@ -805,7 +805,7 @@ func fakeInitHostFactory(apiserverServiceType v1.ServiceType, federationName, na rolebinding := rbacv1beta1.RoleBinding{ TypeMeta: metav1.TypeMeta{ Kind: "RoleBinding", - APIVersion: testapi.Rbac.GroupVersion().String(), + APIVersion: rbacv1beta1.SchemeGroupVersion.String(), }, ObjectMeta: metav1.ObjectMeta{ Name: "federation-system:federation-controller-manager", diff --git a/hack/.golint_failures b/hack/.golint_failures index 57d2bc2b388..9a522b95192 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -133,6 +133,7 @@ pkg/apis/policy/v1alpha1 pkg/apis/policy/v1beta1 pkg/apis/policy/validation pkg/apis/rbac +pkg/apis/rbac/v1 pkg/apis/rbac/v1beta1 pkg/apis/rbac/validation pkg/apis/scheduling @@ -523,6 +524,7 @@ staging/src/k8s.io/api/extensions/v1beta1 staging/src/k8s.io/api/imagepolicy/v1alpha1 staging/src/k8s.io/api/networking/v1 staging/src/k8s.io/api/policy/v1beta1 +staging/src/k8s.io/api/rbac/v1 staging/src/k8s.io/api/rbac/v1alpha1 staging/src/k8s.io/api/rbac/v1beta1 staging/src/k8s.io/api/scheduling/v1alpha1 @@ -712,6 +714,8 @@ staging/src/k8s.io/client-go/kubernetes/typed/networking/v1 staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1 staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake +staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1 +staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1 diff --git a/hack/lib/init.sh b/hack/lib/init.sh index 324fcfcf9fc..a0c71b5d3de 100755 --- a/hack/lib/init.sh +++ b/hack/lib/init.sh @@ -69,6 +69,7 @@ extensions/v1beta1 \ imagepolicy.k8s.io/v1alpha1 \ networking.k8s.io/v1 \ policy/v1beta1 \ +rbac.authorization.k8s.io/v1 \ rbac.authorization.k8s.io/v1beta1 \ rbac.authorization.k8s.io/v1alpha1 \ scheduling.k8s.io/v1alpha1 \ diff --git a/pkg/api/defaulting_test.go b/pkg/api/defaulting_test.go index 562f1fda8b5..6d710b13184 100644 --- a/pkg/api/defaulting_test.go +++ b/pkg/api/defaulting_test.go @@ -128,6 +128,10 @@ func TestDefaulting(t *testing.T) { {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "ClusterRoleBindingList"}: {}, {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBinding"}: {}, {Group: "rbac.authorization.k8s.io", Version: "v1beta1", Kind: "RoleBindingList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBindingList"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBinding"}: {}, + {Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBindingList"}: {}, {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPreset"}: {}, {Group: "settings.k8s.io", Version: "v1alpha1", Kind: "PodPresetList"}: {}, {Group: "admissionregistration.k8s.io", Version: "v1alpha1", Kind: "InitializerConfiguration"}: {}, diff --git a/pkg/apis/rbac/BUILD b/pkg/apis/rbac/BUILD index 05d8e56eb3d..06ac7a23f48 100644 --- a/pkg/apis/rbac/BUILD +++ b/pkg/apis/rbac/BUILD @@ -38,6 +38,7 @@ filegroup( srcs = [ ":package-srcs", "//pkg/apis/rbac/install:all-srcs", + "//pkg/apis/rbac/v1:all-srcs", "//pkg/apis/rbac/v1alpha1:all-srcs", "//pkg/apis/rbac/v1beta1:all-srcs", "//pkg/apis/rbac/validation:all-srcs", diff --git a/pkg/apis/rbac/install/BUILD b/pkg/apis/rbac/install/BUILD index 17e4a91250e..9ffec7d76de 100644 --- a/pkg/apis/rbac/install/BUILD +++ b/pkg/apis/rbac/install/BUILD @@ -14,6 +14,7 @@ go_library( deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", + "//pkg/apis/rbac/v1:go_default_library", "//pkg/apis/rbac/v1alpha1:go_default_library", "//pkg/apis/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/pkg/apis/rbac/install/install.go b/pkg/apis/rbac/install/install.go index 4d3c6b61a8e..c787bfacb9d 100644 --- a/pkg/apis/rbac/install/install.go +++ b/pkg/apis/rbac/install/install.go @@ -25,6 +25,7 @@ import ( "k8s.io/apimachinery/pkg/util/sets" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/rbac" + "k8s.io/kubernetes/pkg/apis/rbac/v1" "k8s.io/kubernetes/pkg/apis/rbac/v1alpha1" "k8s.io/kubernetes/pkg/apis/rbac/v1beta1" ) @@ -37,13 +38,24 @@ func init() { func Install(groupFactoryRegistry announced.APIGroupFactoryRegistry, registry *registered.APIRegistrationManager, scheme *runtime.Scheme) { if err := announced.NewGroupMetaFactory( &announced.GroupMetaFactoryArgs{ - GroupName: rbac.GroupName, - VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version, v1alpha1.SchemeGroupVersion.Version}, + GroupName: rbac.GroupName, + // Rollout plan: + // 1.8: + // * announce deprecation of v1alpha1 (people should use v1beta1 or v1) + // 1.9 (once all version-skewed API servers in an HA cluster are capable of reading/writing v1 to etcd): + // * move v1 to the beginning + // * add RBAC objects to update-storage-objects.sh + // * update TestEtcdStoragePath to expect objects to be stored in v1 + // * document that RBAC storage objects should be migrated to ensure storage is a v1-level (via update-storage-objects.sh or otherwise) + // 1.10 (once all stored objects are at v1): + // * remove v1alpha1 + VersionPreferenceOrder: []string{v1beta1.SchemeGroupVersion.Version, v1.SchemeGroupVersion.Version, v1alpha1.SchemeGroupVersion.Version}, ImportPrefix: "k8s.io/api/rbac", RootScopedKinds: sets.NewString("ClusterRole", "ClusterRoleBinding"), AddInternalObjectsToScheme: rbac.AddToScheme, }, announced.VersionToSchemeFunc{ + v1.SchemeGroupVersion.Version: v1.AddToScheme, v1beta1.SchemeGroupVersion.Version: v1beta1.AddToScheme, v1alpha1.SchemeGroupVersion.Version: v1alpha1.AddToScheme, }, diff --git a/pkg/apis/rbac/v1/BUILD b/pkg/apis/rbac/v1/BUILD new file mode 100644 index 00000000000..049e992f706 --- /dev/null +++ b/pkg/apis/rbac/v1/BUILD @@ -0,0 +1,42 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "defaults.go", + "doc.go", + "helpers.go", + "register.go", + "zz_generated.conversion.go", + "zz_generated.defaults.go", + ], + tags = ["automanaged"], + deps = [ + "//pkg/apis/rbac:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/rbac/v1/defaults.go b/pkg/apis/rbac/v1/defaults.go new file mode 100644 index 00000000000..7d285a8574c --- /dev/null +++ b/pkg/apis/rbac/v1/defaults.go @@ -0,0 +1,49 @@ +/* +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. +*/ + +package v1 + +import ( + rbacv1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/runtime" +) + +func addDefaultingFuncs(scheme *runtime.Scheme) error { + return RegisterDefaults(scheme) +} + +func SetDefaults_ClusterRoleBinding(obj *rbacv1.ClusterRoleBinding) { + if len(obj.RoleRef.APIGroup) == 0 { + obj.RoleRef.APIGroup = GroupName + } +} +func SetDefaults_RoleBinding(obj *rbacv1.RoleBinding) { + if len(obj.RoleRef.APIGroup) == 0 { + obj.RoleRef.APIGroup = GroupName + } +} +func SetDefaults_Subject(obj *rbacv1.Subject) { + if len(obj.APIGroup) == 0 { + switch obj.Kind { + case rbacv1.ServiceAccountKind: + obj.APIGroup = "" + case rbacv1.UserKind: + obj.APIGroup = GroupName + case rbacv1.GroupKind: + obj.APIGroup = GroupName + } + } +} diff --git a/pkg/apis/rbac/v1/doc.go b/pkg/apis/rbac/v1/doc.go new file mode 100644 index 00000000000..6dec982b781 --- /dev/null +++ b/pkg/apis/rbac/v1/doc.go @@ -0,0 +1,23 @@ +/* +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. +*/ + +// +k8s:conversion-gen=k8s.io/kubernetes/pkg/apis/rbac +// +k8s:conversion-gen-external-types=../../../../vendor/k8s.io/api/rbac/v1 +// +k8s:defaulter-gen=TypeMeta +// +k8s:defaulter-gen-input=../../../../vendor/k8s.io/api/rbac/v1 + +// +groupName=rbac.authorization.k8s.io +package v1 // import "k8s.io/kubernetes/pkg/apis/rbac/v1" diff --git a/pkg/apis/rbac/v1/helpers.go b/pkg/apis/rbac/v1/helpers.go new file mode 100644 index 00000000000..02484796905 --- /dev/null +++ b/pkg/apis/rbac/v1/helpers.go @@ -0,0 +1,150 @@ +/* +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. +*/ + +package v1 + +import ( + "fmt" + + rbacv1 "k8s.io/api/rbac/v1" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +k8s:deepcopy-gen=false +// PolicyRuleBuilder let's us attach methods. A no-no for API types. +// We use it to construct rules in code. It's more compact than trying to write them +// out in a literal and allows us to perform some basic checking during construction +type PolicyRuleBuilder struct { + PolicyRule rbacv1.PolicyRule `protobuf:"bytes,1,opt,name=policyRule"` +} + +func NewRule(verbs ...string) *PolicyRuleBuilder { + return &PolicyRuleBuilder{ + PolicyRule: rbacv1.PolicyRule{Verbs: verbs}, + } +} + +func (r *PolicyRuleBuilder) Groups(groups ...string) *PolicyRuleBuilder { + r.PolicyRule.APIGroups = append(r.PolicyRule.APIGroups, groups...) + return r +} + +func (r *PolicyRuleBuilder) Resources(resources ...string) *PolicyRuleBuilder { + r.PolicyRule.Resources = append(r.PolicyRule.Resources, resources...) + return r +} + +func (r *PolicyRuleBuilder) Names(names ...string) *PolicyRuleBuilder { + r.PolicyRule.ResourceNames = append(r.PolicyRule.ResourceNames, names...) + return r +} + +func (r *PolicyRuleBuilder) URLs(urls ...string) *PolicyRuleBuilder { + r.PolicyRule.NonResourceURLs = append(r.PolicyRule.NonResourceURLs, urls...) + return r +} + +func (r *PolicyRuleBuilder) RuleOrDie() rbacv1.PolicyRule { + ret, err := r.Rule() + if err != nil { + panic(err) + } + return ret +} + +func (r *PolicyRuleBuilder) Rule() (rbacv1.PolicyRule, error) { + if len(r.PolicyRule.Verbs) == 0 { + return rbacv1.PolicyRule{}, fmt.Errorf("verbs are required: %#v", r.PolicyRule) + } + + switch { + case len(r.PolicyRule.NonResourceURLs) > 0: + if len(r.PolicyRule.APIGroups) != 0 || len(r.PolicyRule.Resources) != 0 || len(r.PolicyRule.ResourceNames) != 0 { + return rbacv1.PolicyRule{}, fmt.Errorf("non-resource rule may not have apiGroups, resources, or resourceNames: %#v", r.PolicyRule) + } + case len(r.PolicyRule.Resources) > 0: + if len(r.PolicyRule.NonResourceURLs) != 0 { + return rbacv1.PolicyRule{}, fmt.Errorf("resource rule may not have nonResourceURLs: %#v", r.PolicyRule) + } + if len(r.PolicyRule.APIGroups) == 0 { + // this a common bug + return rbacv1.PolicyRule{}, fmt.Errorf("resource rule must have apiGroups: %#v", r.PolicyRule) + } + default: + return rbacv1.PolicyRule{}, fmt.Errorf("a rule must have either nonResourceURLs or resources: %#v", r.PolicyRule) + } + + return r.PolicyRule, nil +} + +// +k8s:deepcopy-gen=false +// ClusterRoleBindingBuilder let's us attach methods. A no-no for API types. +// We use it to construct bindings in code. It's more compact than trying to write them +// out in a literal. +type ClusterRoleBindingBuilder struct { + ClusterRoleBinding rbacv1.ClusterRoleBinding `protobuf:"bytes,1,opt,name=clusterRoleBinding"` +} + +func NewClusterBinding(clusterRoleName string) *ClusterRoleBindingBuilder { + return &ClusterRoleBindingBuilder{ + ClusterRoleBinding: rbacv1.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{Name: clusterRoleName}, + RoleRef: rbacv1.RoleRef{ + APIGroup: GroupName, + Kind: "ClusterRole", + Name: clusterRoleName, + }, + }, + } +} + +func (r *ClusterRoleBindingBuilder) Groups(groups ...string) *ClusterRoleBindingBuilder { + for _, group := range groups { + r.ClusterRoleBinding.Subjects = append(r.ClusterRoleBinding.Subjects, rbacv1.Subject{Kind: rbacv1.GroupKind, Name: group}) + } + return r +} + +func (r *ClusterRoleBindingBuilder) Users(users ...string) *ClusterRoleBindingBuilder { + for _, user := range users { + r.ClusterRoleBinding.Subjects = append(r.ClusterRoleBinding.Subjects, rbacv1.Subject{Kind: rbacv1.UserKind, Name: user}) + } + return r +} + +func (r *ClusterRoleBindingBuilder) SAs(namespace string, serviceAccountNames ...string) *ClusterRoleBindingBuilder { + for _, saName := range serviceAccountNames { + r.ClusterRoleBinding.Subjects = append(r.ClusterRoleBinding.Subjects, rbacv1.Subject{Kind: rbacv1.ServiceAccountKind, Namespace: namespace, Name: saName}) + } + return r +} + +func (r *ClusterRoleBindingBuilder) BindingOrDie() rbacv1.ClusterRoleBinding { + ret, err := r.Binding() + if err != nil { + panic(err) + } + return ret +} + +func (r *ClusterRoleBindingBuilder) Binding() (rbacv1.ClusterRoleBinding, error) { + if len(r.ClusterRoleBinding.Subjects) == 0 { + return rbacv1.ClusterRoleBinding{}, fmt.Errorf("subjects are required: %#v", r.ClusterRoleBinding) + } + + return r.ClusterRoleBinding, nil +} diff --git a/pkg/apis/rbac/v1/register.go b/pkg/apis/rbac/v1/register.go new file mode 100644 index 00000000000..ae138c88837 --- /dev/null +++ b/pkg/apis/rbac/v1/register.go @@ -0,0 +1,44 @@ +/* +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. +*/ + +package v1 + +import ( + rbacv1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +const GroupName = "rbac.authorization.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + localSchemeBuilder = &rbacv1.SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + // We only register manually written functions here. The registration of the + // generated functions takes place in the generated files. The separation + // makes the code compile even when the generated files are missing. + localSchemeBuilder.Register(addDefaultingFuncs) +} diff --git a/pkg/generated/openapi/BUILD b/pkg/generated/openapi/BUILD index 6d867fedab7..280367f267b 100644 --- a/pkg/generated/openapi/BUILD +++ b/pkg/generated/openapi/BUILD @@ -34,6 +34,7 @@ openapi_library( "k8s.io/api/imagepolicy/v1alpha1", "k8s.io/api/networking/v1", "k8s.io/api/policy/v1beta1", + "k8s.io/api/rbac/v1", "k8s.io/api/rbac/v1alpha1", "k8s.io/api/rbac/v1beta1", "k8s.io/api/scheduling/v1alpha1", diff --git a/pkg/master/master.go b/pkg/master/master.go index 22886c75020..107c4aabd09 100644 --- a/pkg/master/master.go +++ b/pkg/master/master.go @@ -36,6 +36,7 @@ import ( extensionsapiv1beta1 "k8s.io/api/extensions/v1beta1" networkingapiv1 "k8s.io/api/networking/v1" policyapiv1beta1 "k8s.io/api/policy/v1beta1" + rbacv1 "k8s.io/api/rbac/v1" rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" rbacv1beta1 "k8s.io/api/rbac/v1beta1" schedulingapiv1alpha1 "k8s.io/api/scheduling/v1alpha1" @@ -392,6 +393,7 @@ func DefaultAPIResourceConfigSource() *serverstorage.ResourceConfig { // TODO: enable apps/v1beta2 by default before 1.8 release, after the API changes are done // appsv1beta2.SchemeGroupVersion, policyapiv1beta1.SchemeGroupVersion, + rbacv1.SchemeGroupVersion, rbacv1beta1.SchemeGroupVersion, // Don't copy this pattern. We enable rbac/v1alpha1 and settings/v1laph1 // by default only because they were enabled in previous releases. diff --git a/pkg/registry/rbac/rest/BUILD b/pkg/registry/rbac/rest/BUILD index 38d373335f6..4bb65571784 100644 --- a/pkg/registry/rbac/rest/BUILD +++ b/pkg/registry/rbac/rest/BUILD @@ -33,6 +33,7 @@ go_library( "//pkg/registry/rbac/validation:go_default_library", "//plugin/pkg/auth/authorizer/rbac/bootstrappolicy:go_default_library", "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/registry/rbac/rest/storage_rbac.go b/pkg/registry/rbac/rest/storage_rbac.go index cdb38b5328b..663f6233a09 100644 --- a/pkg/registry/rbac/rest/storage_rbac.go +++ b/pkg/registry/rbac/rest/storage_rbac.go @@ -23,6 +23,7 @@ import ( "github.com/golang/glog" + rbacapiv1 "k8s.io/api/rbac/v1" rbacapiv1alpha1 "k8s.io/api/rbac/v1alpha1" rbacapiv1beta1 "k8s.io/api/rbac/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -73,6 +74,11 @@ func (p RESTStorageProvider) NewRESTStorage(apiResourceConfigSource serverstorag apiGroupInfo.VersionedResourcesStorageMap[rbacapiv1alpha1.SchemeGroupVersion.Version] = p.storage(rbacapiv1alpha1.SchemeGroupVersion, apiResourceConfigSource, restOptionsGetter) apiGroupInfo.GroupMeta.GroupVersion = rbacapiv1alpha1.SchemeGroupVersion } + // TODO: move this after v1beta1 in 1.9, so RBAC objects write to storage in v1 + if apiResourceConfigSource.AnyResourcesForVersionEnabled(rbacapiv1.SchemeGroupVersion) { + apiGroupInfo.VersionedResourcesStorageMap[rbacapiv1.SchemeGroupVersion.Version] = p.storage(rbacapiv1.SchemeGroupVersion, apiResourceConfigSource, restOptionsGetter) + apiGroupInfo.GroupMeta.GroupVersion = rbacapiv1.SchemeGroupVersion + } if apiResourceConfigSource.AnyResourcesForVersionEnabled(rbacapiv1beta1.SchemeGroupVersion) { apiGroupInfo.VersionedResourcesStorageMap[rbacapiv1beta1.SchemeGroupVersion.Version] = p.storage(rbacapiv1beta1.SchemeGroupVersion, apiResourceConfigSource, restOptionsGetter) apiGroupInfo.GroupMeta.GroupVersion = rbacapiv1beta1.SchemeGroupVersion diff --git a/staging/src/k8s.io/api/rbac/v1/BUILD b/staging/src/k8s.io/api/rbac/v1/BUILD new file mode 100644 index 00000000000..78423d91765 --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/BUILD @@ -0,0 +1,31 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "generated.pb.go", + "register.go", + "types.generated.go", + "types.go", + "types_swagger_doc_generated.go", + "zz_generated.deepcopy.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor/github.com/gogo/protobuf/proto:go_default_library", + "//vendor/github.com/ugorji/go/codec:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + ], +) diff --git a/staging/src/k8s.io/api/rbac/v1/doc.go b/staging/src/k8s.io/api/rbac/v1/doc.go new file mode 100644 index 00000000000..737261a097f --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/doc.go @@ -0,0 +1,21 @@ +/* +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. +*/ + +// +k8s:deepcopy-gen=package,register +// +k8s:openapi-gen=true + +// +groupName=rbac.authorization.k8s.io +package v1 // import "k8s.io/api/rbac/v1" diff --git a/staging/src/k8s.io/api/rbac/v1/register.go b/staging/src/k8s.io/api/rbac/v1/register.go new file mode 100644 index 00000000000..7336b5455e6 --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/register.go @@ -0,0 +1,58 @@ +/* +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. +*/ + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +const GroupName = "rbac.authorization.k8s.io" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1"} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + // TODO: move SchemeBuilder with zz_generated.deepcopy.go to k8s.io/api. + // localSchemeBuilder and AddToScheme will stay in k8s.io/kubernetes. + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + localSchemeBuilder = &SchemeBuilder + AddToScheme = localSchemeBuilder.AddToScheme +) + +// Adds the list of known types to api.Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Role{}, + &RoleBinding{}, + &RoleBindingList{}, + &RoleList{}, + + &ClusterRole{}, + &ClusterRoleBinding{}, + &ClusterRoleBindingList{}, + &ClusterRoleList{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/staging/src/k8s.io/api/rbac/v1/types.go b/staging/src/k8s.io/api/rbac/v1/types.go new file mode 100644 index 00000000000..8dbd1a8b89a --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/types.go @@ -0,0 +1,219 @@ +/* +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. +*/ + +package v1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// Authorization is calculated against +// 1. evaluation of ClusterRoleBindings - short circuit on match +// 2. evaluation of RoleBindings in the namespace requested - short circuit on match +// 3. deny by default + +const ( + APIGroupAll = "*" + ResourceAll = "*" + VerbAll = "*" + NonResourceAll = "*" + + GroupKind = "Group" + ServiceAccountKind = "ServiceAccount" + UserKind = "User" + + // AutoUpdateAnnotationKey is the name of an annotation which prevents reconciliation if set to "false" + AutoUpdateAnnotationKey = "rbac.authorization.kubernetes.io/autoupdate" +) + +// Authorization is calculated against +// 1. evaluation of ClusterRoleBindings - short circuit on match +// 2. evaluation of RoleBindings in the namespace requested - short circuit on match +// 3. deny by default + +// PolicyRule holds information that describes a policy rule, but does not contain information +// about who the rule applies to or which namespace the rule applies to. +type PolicyRule struct { + // Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. + Verbs []string `json:"verbs" protobuf:"bytes,1,rep,name=verbs"` + + // APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of + // the enumerated resources in any API group will be allowed. + // +optional + APIGroups []string `json:"apiGroups,omitempty" protobuf:"bytes,2,rep,name=apiGroups"` + // Resources is a list of resources this rule applies to. ResourceAll represents all resources. + // +optional + Resources []string `json:"resources,omitempty" protobuf:"bytes,3,rep,name=resources"` + // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + // +optional + ResourceNames []string `json:"resourceNames,omitempty" protobuf:"bytes,4,rep,name=resourceNames"` + + // NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path + // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. + // Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both. + // +optional + NonResourceURLs []string `json:"nonResourceURLs,omitempty" protobuf:"bytes,5,rep,name=nonResourceURLs"` +} + +// Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, +// or a value for non-objects such as user and group names. +type Subject struct { + // Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + // If the Authorizer does not recognized the kind value, the Authorizer should report an error. + Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` + // APIGroup holds the API group of the referenced subject. + // Defaults to "" for ServiceAccount subjects. + // Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + // +optional + APIGroup string `json:"apiGroup,omitempty" protobuf:"bytes,2,opt.name=apiGroup"` + // Name of the object being referenced. + Name string `json:"name" protobuf:"bytes,3,opt,name=name"` + // Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + // the Authorizer should report an error. + // +optional + Namespace string `json:"namespace,omitempty" protobuf:"bytes,4,opt,name=namespace"` +} + +// RoleRef contains information that points to the role being used +type RoleRef struct { + // APIGroup is the group for the resource being referenced + APIGroup string `json:"apiGroup" protobuf:"bytes,1,opt,name=apiGroup"` + // Kind is the type of resource being referenced + Kind string `json:"kind" protobuf:"bytes,2,opt,name=kind"` + // Name is the name of resource being referenced + Name string `json:"name" protobuf:"bytes,3,opt,name=name"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. +type Role struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Rules holds all the PolicyRules for this Role + Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` +} + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. +// It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given +// namespace only have effect in that namespace. +type RoleBinding struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Subjects holds references to the objects the role applies to. + Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + + // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. + // If the RoleRef cannot be resolved, the Authorizer must return an error. + RoleRef RoleRef `json:"roleRef" protobuf:"bytes,3,opt,name=roleRef"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// RoleBindingList is a collection of RoleBindings +type RoleBindingList struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is a list of RoleBindings + Items []RoleBinding `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// RoleList is a collection of Roles +type RoleList struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is a list of Roles + Items []Role `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. +type ClusterRole struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Rules holds all the PolicyRules for this ClusterRole + Rules []PolicyRule `json:"rules" protobuf:"bytes,2,rep,name=rules"` +} + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, +// and adds who information via Subject. +type ClusterRoleBinding struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Subjects holds references to the objects the role applies to. + Subjects []Subject `json:"subjects" protobuf:"bytes,2,rep,name=subjects"` + + // RoleRef can only reference a ClusterRole in the global namespace. + // If the RoleRef cannot be resolved, the Authorizer must return an error. + RoleRef RoleRef `json:"roleRef" protobuf:"bytes,3,opt,name=roleRef"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ClusterRoleBindingList is a collection of ClusterRoleBindings +type ClusterRoleBindingList struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is a list of ClusterRoleBindings + Items []ClusterRoleBinding `json:"items" protobuf:"bytes,2,rep,name=items"` +} + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// ClusterRoleList is a collection of ClusterRoles +type ClusterRoleList struct { + metav1.TypeMeta `json:",inline"` + // Standard object's metadata. + // +optional + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` + + // Items is a list of ClusterRoles + Items []ClusterRole `json:"items" protobuf:"bytes,2,rep,name=items"` +} diff --git a/test/e2e/examples.go b/test/e2e/examples.go index c3c06521f84..ed7e9931090 100644 --- a/test/e2e/examples.go +++ b/test/e2e/examples.go @@ -72,7 +72,7 @@ var _ = framework.KubeDescribe("[Feature:Example]", func() { // this test wants powerful permissions. Since the namespace names are unique, we can leave this // lying around so we don't have to race any caches - framework.BindClusterRoleInNamespace(c.Rbac(), "edit", f.Namespace.Name, + framework.BindClusterRoleInNamespace(c.RbacV1beta1(), "edit", f.Namespace.Name, rbacv1beta1.Subject{Kind: rbacv1beta1.ServiceAccountKind, Namespace: f.Namespace.Name, Name: "default"}) err := framework.WaitForAuthorizationUpdate(c.AuthorizationV1beta1(), diff --git a/test/e2e/kubectl/kubectl.go b/test/e2e/kubectl/kubectl.go index 0a5d54d1073..f002b5c9e06 100644 --- a/test/e2e/kubectl/kubectl.go +++ b/test/e2e/kubectl/kubectl.go @@ -614,7 +614,7 @@ var _ = SIGDescribe("Kubectl client", func() { It("should handle in-cluster config", func() { By("adding rbac permissions") // grant the view permission widely to allow inspection of the `invalid` namespace and the default namespace - framework.BindClusterRole(f.ClientSet.Rbac(), "view", f.Namespace.Name, + framework.BindClusterRole(f.ClientSet.RbacV1beta1(), "view", f.Namespace.Name, rbacv1beta1.Subject{Kind: rbacv1beta1.ServiceAccountKind, Namespace: f.Namespace.Name, Name: "default"}) err := framework.WaitForAuthorizationUpdate(f.ClientSet.AuthorizationV1beta1(), diff --git a/test/e2e/network/ingress.go b/test/e2e/network/ingress.go index 14bed30dbe4..607ac4d3dbf 100644 --- a/test/e2e/network/ingress.go +++ b/test/e2e/network/ingress.go @@ -48,7 +48,7 @@ var _ = SIGDescribe("Loadbalancing: L7", func() { // this test wants powerful permissions. Since the namespace names are unique, we can leave this // lying around so we don't have to race any caches - framework.BindClusterRole(jig.Client.Rbac(), "cluster-admin", f.Namespace.Name, + framework.BindClusterRole(jig.Client.RbacV1beta1(), "cluster-admin", f.Namespace.Name, rbacv1beta1.Subject{Kind: rbacv1beta1.ServiceAccountKind, Namespace: f.Namespace.Name, Name: "default"}) err := framework.WaitForAuthorizationUpdate(jig.Client.AuthorizationV1beta1(), diff --git a/test/e2e/storage/volume_provisioning.go b/test/e2e/storage/volume_provisioning.go index b6f0f62e460..5b038f8dbc7 100644 --- a/test/e2e/storage/volume_provisioning.go +++ b/test/e2e/storage/volume_provisioning.go @@ -521,7 +521,7 @@ var _ = SIGDescribe("Dynamic Provisioning", func() { It("should let an external dynamic provisioner create and delete persistent volumes [Slow]", func() { // external dynamic provisioner pods need additional permissions provided by the // persistent-volume-provisioner role - framework.BindClusterRole(c.Rbac(), "system:persistent-volume-provisioner", ns, + framework.BindClusterRole(c.RbacV1beta1(), "system:persistent-volume-provisioner", ns, rbacv1beta1.Subject{Kind: rbacv1beta1.ServiceAccountKind, Namespace: ns, Name: "default"}) err := framework.WaitForAuthorizationUpdate(c.AuthorizationV1beta1(), diff --git a/test/integration/auth/rbac_test.go b/test/integration/auth/rbac_test.go index 36283a2afc3..58093392b0b 100644 --- a/test/integration/auth/rbac_test.go +++ b/test/integration/auth/rbac_test.go @@ -162,9 +162,12 @@ func (s statusCode) String() string { // Declare a set of raw objects to use. var ( + // Make a role binding with the version enabled in testapi.Rbac + // This assumes testapi is using rbac.authorization.k8s.io/v1beta1 or rbac.authorization.k8s.io/v1, which are identical in structure. + // TODO: rework or remove testapi usage to allow writing integration tests that don't depend on envvars writeJobsRoleBinding = ` { - "apiVersion": "rbac.authorization.k8s.io/v1beta1", + "apiVersion": "` + testapi.Rbac.GroupVersion().String() + `", "kind": "RoleBinding", "metadata": { "name": "pi"%s diff --git a/test/integration/etcd/etcd_storage_path_test.go b/test/integration/etcd/etcd_storage_path_test.go index 61c87c83b2d..7611c7cd656 100644 --- a/test/integration/etcd/etcd_storage_path_test.go +++ b/test/integration/etcd/etcd_storage_path_test.go @@ -317,6 +317,29 @@ var etcdStorageData = map[schema.GroupVersionResource]struct { }, // -- + // k8s.io/kubernetes/pkg/apis/rbac/v1 + gvr("rbac.authorization.k8s.io", "v1", "roles"): { + stub: `{"metadata": {"name": "role3"}, "rules": [{"apiGroups": ["v1"], "resources": ["events"], "verbs": ["watch"]}]}`, + expectedEtcdPath: "/registry/roles/etcdstoragepathtestnamespace/role3", + expectedGVK: gvkP("rbac.authorization.k8s.io", "v1beta1", "Role"), + }, + gvr("rbac.authorization.k8s.io", "v1", "clusterroles"): { + stub: `{"metadata": {"name": "crole3"}, "rules": [{"nonResourceURLs": ["/version"], "verbs": ["get"]}]}`, + expectedEtcdPath: "/registry/clusterroles/crole3", + expectedGVK: gvkP("rbac.authorization.k8s.io", "v1beta1", "ClusterRole"), + }, + gvr("rbac.authorization.k8s.io", "v1", "rolebindings"): { + stub: `{"metadata": {"name": "roleb3"}, "roleRef": {"apiGroup": "rbac.authorization.k8s.io", "kind": "ClusterRole", "name": "somecr"}, "subjects": [{"apiVersion": "rbac.authorization.k8s.io/v1alpha1", "kind": "Group", "name": "system:authenticated"}]}`, + expectedEtcdPath: "/registry/rolebindings/etcdstoragepathtestnamespace/roleb3", + expectedGVK: gvkP("rbac.authorization.k8s.io", "v1beta1", "RoleBinding"), + }, + gvr("rbac.authorization.k8s.io", "v1", "clusterrolebindings"): { + stub: `{"metadata": {"name": "croleb3"}, "roleRef": {"apiGroup": "rbac.authorization.k8s.io", "kind": "ClusterRole", "name": "somecr"}, "subjects": [{"apiVersion": "rbac.authorization.k8s.io/v1alpha1", "kind": "Group", "name": "system:authenticated"}]}`, + expectedEtcdPath: "/registry/clusterrolebindings/croleb3", + expectedGVK: gvkP("rbac.authorization.k8s.io", "v1beta1", "ClusterRoleBinding"), + }, + // -- + // k8s.io/kubernetes/pkg/apis/admissionregistration/v1alpha1 gvr("admissionregistration.k8s.io", "v1alpha1", "initializerconfigurations"): { stub: `{"metadata":{"name":"ic1"},"initializers":[{"name":"initializer.k8s.io","rules":[{"apiGroups":["group"],"apiVersions":["version"],"resources":["resource"]}],"failurePolicy":"Ignore"}]}`, From 06c49423edf0cae626e5e8d9cd7c3f8cce07ae03 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Wed, 26 Jul 2017 11:11:55 -0400 Subject: [PATCH 142/183] Generated files --- api/openapi-spec/swagger.json | 3303 +++++++++ .../rbac.authorization.k8s.io_v1.json | 3652 ++++++++++ api/swagger-spec/resourceListing.json | 4 + .../v1/definitions.html | 1867 +++++ .../v1/operations.html | 6182 +++++++++++++++++ federation/apis/openapi-spec/swagger.json | 10 + pkg/apis/rbac/v1/zz_generated.conversion.go | 364 + pkg/apis/rbac/v1/zz_generated.defaults.go | 67 + pkg/master/BUILD | 1 + staging/BUILD | 2 + staging/src/k8s.io/api/rbac/v1/BUILD | 13 + .../src/k8s.io/api/rbac/v1/generated.pb.go | 2555 +++++++ .../src/k8s.io/api/rbac/v1/generated.proto | 182 + .../src/k8s.io/api/rbac/v1/types.generated.go | 4879 +++++++++++++ .../rbac/v1/types_swagger_doc_generated.go | 148 + .../api/rbac/v1/zz_generated.deepcopy.go | 427 ++ staging/src/k8s.io/client-go/informers/BUILD | 1 + .../src/k8s.io/client-go/informers/generic.go | 11 + .../src/k8s.io/client-go/informers/rbac/BUILD | 2 + .../client-go/informers/rbac/interface.go | 8 + .../k8s.io/client-go/informers/rbac/v1/BUILD | 43 + .../informers/rbac/v1/clusterrole.go | 73 + .../informers/rbac/v1/clusterrolebinding.go | 73 + .../client-go/informers/rbac/v1/interface.go | 64 + .../client-go/informers/rbac/v1/role.go | 73 + .../informers/rbac/v1/rolebinding.go | 73 + staging/src/k8s.io/client-go/kubernetes/BUILD | 2 + .../k8s.io/client-go/kubernetes/clientset.go | 26 +- .../k8s.io/client-go/kubernetes/fake/BUILD | 3 + .../kubernetes/fake/clientset_generated.go | 17 +- .../client-go/kubernetes/fake/register.go | 2 + .../k8s.io/client-go/kubernetes/scheme/BUILD | 1 + .../client-go/kubernetes/scheme/register.go | 2 + .../client-go/kubernetes/typed/rbac/v1/BUILD | 47 + .../kubernetes/typed/rbac/v1/clusterrole.go | 145 + .../typed/rbac/v1/clusterrolebinding.go | 145 + .../client-go/kubernetes/typed/rbac/v1/doc.go | 20 + .../kubernetes/typed/rbac/v1/fake/BUILD | 45 + .../kubernetes/typed/rbac/v1/fake/doc.go | 20 + .../typed/rbac/v1/fake/fake_clusterrole.go | 118 + .../rbac/v1/fake/fake_clusterrolebinding.go | 118 + .../typed/rbac/v1/fake/fake_rbac_client.go | 50 + .../typed/rbac/v1/fake/fake_role.go | 126 + .../typed/rbac/v1/fake/fake_rolebinding.go | 126 + .../typed/rbac/v1/generated_expansion.go | 25 + .../kubernetes/typed/rbac/v1/rbac_client.go | 103 + .../kubernetes/typed/rbac/v1/role.go | 155 + .../kubernetes/typed/rbac/v1/rolebinding.go | 155 + .../k8s.io/client-go/listers/rbac/v1/BUILD | 40 + .../client-go/listers/rbac/v1/clusterrole.go | 67 + .../listers/rbac/v1/clusterrolebinding.go | 67 + .../listers/rbac/v1/expansion_generated.go | 43 + .../k8s.io/client-go/listers/rbac/v1/role.go | 94 + .../client-go/listers/rbac/v1/rolebinding.go | 94 + 54 files changed, 25922 insertions(+), 11 deletions(-) create mode 100644 api/swagger-spec/rbac.authorization.k8s.io_v1.json create mode 100755 docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html create mode 100755 docs/api-reference/rbac.authorization.k8s.io/v1/operations.html create mode 100644 pkg/apis/rbac/v1/zz_generated.conversion.go create mode 100644 pkg/apis/rbac/v1/zz_generated.defaults.go create mode 100644 staging/src/k8s.io/api/rbac/v1/generated.pb.go create mode 100644 staging/src/k8s.io/api/rbac/v1/generated.proto create mode 100644 staging/src/k8s.io/api/rbac/v1/types.generated.go create mode 100644 staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go create mode 100644 staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go create mode 100644 staging/src/k8s.io/client-go/informers/rbac/v1/BUILD create mode 100644 staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go create mode 100644 staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go create mode 100644 staging/src/k8s.io/client-go/informers/rbac/v1/interface.go create mode 100644 staging/src/k8s.io/client-go/informers/rbac/v1/role.go create mode 100644 staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go create mode 100644 staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go create mode 100644 staging/src/k8s.io/client-go/listers/rbac/v1/BUILD create mode 100644 staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go create mode 100644 staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go create mode 100644 staging/src/k8s.io/client-go/listers/rbac/v1/expansion_generated.go create mode 100644 staging/src/k8s.io/client-go/listers/rbac/v1/role.go create mode 100644 staging/src/k8s.io/client-go/listers/rbac/v1/rolebinding.go diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 3f3c4f8808f..941e422bc73 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -41857,6 +41857,2927 @@ } } }, + "/apis/rbac.authorization.k8s.io/v1/": { + "get": { + "description": "get available resources", + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "getRbacAuthorizationV1APIResources", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + } + } + }, + "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings": { + "get": { + "description": "list or watch objects of kind ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "listRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "post": { + "description": "create a ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "createRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "delete": { + "description": "delete collection of ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1CollectionClusterRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}": { + "get": { + "description": "read the specified ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "readRbacAuthorizationV1ClusterRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "put": { + "description": "replace the specified ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "replaceRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "delete": { + "description": "delete a ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified ClusterRoleBinding", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "patchRbacAuthorizationV1ClusterRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/clusterroles": { + "get": { + "description": "list or watch objects of kind ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "listRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "post": { + "description": "create a ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "createRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "delete": { + "description": "delete collection of ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1CollectionClusterRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}": { + "get": { + "description": "read the specified ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "readRbacAuthorizationV1ClusterRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "put": { + "description": "replace the specified ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "replaceRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "delete": { + "description": "delete a ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified ClusterRole", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "patchRbacAuthorizationV1ClusterRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRole", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings": { + "get": { + "description": "list or watch objects of kind RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "listRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "post": { + "description": "create a RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "createRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "delete": { + "description": "delete collection of RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRoleBinding", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}": { + "get": { + "description": "read the specified RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "readRbacAuthorizationV1NamespacedRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "put": { + "description": "replace the specified RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "replaceRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "delete": { + "description": "delete a RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified RoleBinding", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "patchRbacAuthorizationV1NamespacedRoleBinding", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the RoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles": { + "get": { + "description": "list or watch objects of kind Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "listRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "post": { + "description": "create a Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "createRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "delete": { + "description": "delete collection of Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1CollectionNamespacedRole", + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}": { + "get": { + "description": "read the specified Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "readRbacAuthorizationV1NamespacedRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "put": { + "description": "replace the specified Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "replaceRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "delete": { + "description": "delete a Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "deleteRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions" + } + }, + { + "uniqueItems": true, + "type": "integer", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "name": "gracePeriodSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "name": "orphanDependents", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "name": "propagationPolicy", + "in": "query" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "patch": { + "description": "partially update the specified Role", + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "patchRbacAuthorizationV1NamespacedRole", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Patch" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "name of the Role", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/rolebindings": { + "get": { + "description": "list or watch objects of kind RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "listRbacAuthorizationV1RoleBindingForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/roles": { + "get": { + "description": "list or watch objects of kind Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "listRbacAuthorizationV1RoleForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings": { + "get": { + "description": "watch individual changes to a list of ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1ClusterRoleBindingList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}": { + "get": { + "description": "watch changes to an object of kind ClusterRoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1ClusterRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles": { + "get": { + "description": "watch individual changes to a list of ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1ClusterRoleList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}": { + "get": { + "description": "watch changes to an object of kind ClusterRole", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1ClusterRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the ClusterRole", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings": { + "get": { + "description": "watch individual changes to a list of RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1NamespacedRoleBindingList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}": { + "get": { + "description": "watch changes to an object of kind RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1NamespacedRoleBinding", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the RoleBinding", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles": { + "get": { + "description": "watch individual changes to a list of Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1NamespacedRoleList", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}": { + "get": { + "description": "watch changes to an object of kind Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1NamespacedRole", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "name of the Role", + "name": "name", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "object name and auth scope, such as for teams and projects", + "name": "namespace", + "in": "path", + "required": true + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings": { + "get": { + "description": "watch individual changes to a list of RoleBinding", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1RoleBindingListForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, + "/apis/rbac.authorization.k8s.io/v1/watch/roles": { + "get": { + "description": "watch individual changes to a list of Role", + "consumes": [ + "*/*" + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "schemes": [ + "https" + ], + "tags": [ + "rbacAuthorization_v1" + ], + "operationId": "watchRbacAuthorizationV1RoleListForAllNamespaces", + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + }, + "parameters": [ + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "name": "fieldSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "If true, partially initialized resources are included in the response.", + "name": "includeUninitialized", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "name": "labelSelector", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "If 'true', then the output is pretty printed.", + "name": "pretty", + "in": "query" + }, + { + "uniqueItems": true, + "type": "string", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "name": "resourceVersion", + "in": "query" + }, + { + "uniqueItems": true, + "type": "integer", + "description": "Timeout for the list/watch call.", + "name": "timeoutSeconds", + "in": "query" + }, + { + "uniqueItems": true, + "type": "boolean", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "name": "watch", + "in": "query" + } + ] + }, "/apis/rbac.authorization.k8s.io/v1alpha1/": { "get": { "description": "get available resources", @@ -59802,6 +62723,378 @@ } } }, + "io.k8s.api.rbac.v1.ClusterRole": { + "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "required": [ + "rules" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "rules": { + "description": "Rules holds all the PolicyRules for this ClusterRole", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRole", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleBinding": { + "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", + "required": [ + "subjects", + "roleRef" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "roleRef": { + "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef" + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleBindingList": { + "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of ClusterRoleBindings", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRoleBinding" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.ClusterRoleList": { + "description": "ClusterRoleList is a collection of ClusterRoles", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of ClusterRoles", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.ClusterRole" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "ClusterRoleList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.PolicyRule": { + "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", + "required": [ + "verbs" + ], + "properties": { + "apiGroups": { + "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", + "type": "array", + "items": { + "type": "string" + } + }, + "nonResourceURLs": { + "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", + "type": "array", + "items": { + "type": "string" + } + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", + "type": "array", + "items": { + "type": "string" + } + }, + "verbs": { + "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "io.k8s.api.rbac.v1.Role": { + "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", + "required": [ + "rules" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "rules": { + "description": "Rules holds all the PolicyRules for this Role", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "Role", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleBinding": { + "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", + "required": [ + "subjects", + "roleRef" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta" + }, + "roleRef": { + "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleRef" + }, + "subjects": { + "description": "Subjects holds references to the objects the role applies to.", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" + } + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleBindingList": { + "description": "RoleBindingList is a collection of RoleBindings", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of RoleBindings", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.RoleBinding" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleList": { + "description": "RoleList is a collection of Roles", + "required": [ + "items" + ], + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources", + "type": "string" + }, + "items": { + "description": "Items is a list of Roles", + "type": "array", + "items": { + "$ref": "#/definitions/io.k8s.api.rbac.v1.Role" + } + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "description": "Standard object's metadata.", + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta" + } + }, + "x-kubernetes-group-version-kind": [ + { + "group": "rbac.authorization.k8s.io", + "kind": "RoleList", + "version": "v1" + } + ] + }, + "io.k8s.api.rbac.v1.RoleRef": { + "description": "RoleRef contains information that points to the role being used", + "required": [ + "apiGroup", + "kind", + "name" + ], + "properties": { + "apiGroup": { + "description": "APIGroup is the group for the resource being referenced", + "type": "string" + }, + "kind": { + "description": "Kind is the type of resource being referenced", + "type": "string" + }, + "name": { + "description": "Name is the name of resource being referenced", + "type": "string" + } + } + }, + "io.k8s.api.rbac.v1.Subject": { + "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", + "required": [ + "kind", + "name" + ], + "properties": { + "apiGroup": { + "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", + "type": "string" + }, + "kind": { + "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", + "type": "string" + }, + "name": { + "description": "Name of the object being referenced.", + "type": "string" + }, + "namespace": { + "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", + "type": "string" + } + } + }, "io.k8s.api.rbac.v1alpha1.ClusterRole": { "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", "required": [ @@ -61188,6 +64481,11 @@ "kind": "DeleteOptions", "version": "v1beta1" }, + { + "group": "rbac.authorization.k8s.io", + "kind": "DeleteOptions", + "version": "v1" + }, { "group": "rbac.authorization.k8s.io", "kind": "DeleteOptions", @@ -61686,6 +64984,11 @@ "kind": "WatchEvent", "version": "v1beta1" }, + { + "group": "rbac.authorization.k8s.io", + "kind": "WatchEvent", + "version": "v1" + }, { "group": "rbac.authorization.k8s.io", "kind": "WatchEvent", diff --git a/api/swagger-spec/rbac.authorization.k8s.io_v1.json b/api/swagger-spec/rbac.authorization.k8s.io_v1.json new file mode 100644 index 00000000000..45e4af03bc4 --- /dev/null +++ b/api/swagger-spec/rbac.authorization.k8s.io_v1.json @@ -0,0 +1,3652 @@ +{ + "swaggerVersion": "1.2", + "apiVersion": "rbac.authorization.k8s.io/v1", + "basePath": "https://10.10.10.10:6443", + "resourcePath": "/apis/rbac.authorization.k8s.io/v1", + "info": { + "title": "", + "description": "" + }, + "apis": [ + { + "path": "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.ClusterRoleBindingList", + "method": "GET", + "summary": "list or watch objects of kind ClusterRoleBinding", + "nickname": "listClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRoleBindingList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ClusterRoleBinding", + "method": "POST", + "summary": "create a ClusterRoleBinding", + "nickname": "createClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.ClusterRoleBinding", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of ClusterRoleBinding", + "nickname": "deletecollectionClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of ClusterRoleBinding", + "nickname": "watchClusterRoleBindingList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.ClusterRoleBinding", + "method": "GET", + "summary": "read the specified ClusterRoleBinding", + "nickname": "readClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ClusterRoleBinding", + "method": "PUT", + "summary": "replace the specified ClusterRoleBinding", + "nickname": "replaceClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.ClusterRoleBinding", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ClusterRoleBinding", + "method": "PATCH", + "summary": "partially update the specified ClusterRoleBinding", + "nickname": "patchClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a ClusterRoleBinding", + "nickname": "deleteClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind ClusterRoleBinding", + "nickname": "watchClusterRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/clusterroles", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.ClusterRoleList", + "method": "GET", + "summary": "list or watch objects of kind ClusterRole", + "nickname": "listClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRoleList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ClusterRole", + "method": "POST", + "summary": "create a ClusterRole", + "nickname": "createClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.ClusterRole", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRole" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of ClusterRole", + "nickname": "deletecollectionClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of ClusterRole", + "nickname": "watchClusterRoleList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/clusterroles/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.ClusterRole", + "method": "GET", + "summary": "read the specified ClusterRole", + "nickname": "readClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRole", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRole" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ClusterRole", + "method": "PUT", + "summary": "replace the specified ClusterRole", + "nickname": "replaceClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.ClusterRole", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRole", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRole" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.ClusterRole", + "method": "PATCH", + "summary": "partially update the specified ClusterRole", + "nickname": "patchClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRole", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.ClusterRole" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a ClusterRole", + "nickname": "deleteClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRole", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind ClusterRole", + "nickname": "watchClusterRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the ClusterRole", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.RoleBindingList", + "method": "GET", + "summary": "list or watch objects of kind RoleBinding", + "nickname": "listNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleBindingList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.RoleBinding", + "method": "POST", + "summary": "create a RoleBinding", + "nickname": "createNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.RoleBinding", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of RoleBinding", + "nickname": "deletecollectionNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of RoleBinding", + "nickname": "watchNamespacedRoleBindingList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.RoleBinding", + "method": "GET", + "summary": "read the specified RoleBinding", + "nickname": "readNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the RoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.RoleBinding", + "method": "PUT", + "summary": "replace the specified RoleBinding", + "nickname": "replaceNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.RoleBinding", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the RoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.RoleBinding", + "method": "PATCH", + "summary": "partially update the specified RoleBinding", + "nickname": "patchNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the RoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleBinding" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a RoleBinding", + "nickname": "deleteNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the RoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind RoleBinding", + "nickname": "watchNamespacedRoleBinding", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the RoleBinding", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/rolebindings", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.RoleBindingList", + "method": "GET", + "summary": "list or watch objects of kind RoleBinding", + "nickname": "listRoleBindingForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleBindingList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/rolebindings", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of RoleBinding", + "nickname": "watchRoleBindingListForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.RoleList", + "method": "GET", + "summary": "list or watch objects of kind Role", + "nickname": "listNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Role", + "method": "POST", + "summary": "create a Role", + "nickname": "createNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Role", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Role" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete collection of Role", + "nickname": "deletecollectionNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of Role", + "nickname": "watchNamespacedRoleList", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.Role", + "method": "GET", + "summary": "read the specified Role", + "nickname": "readNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Role", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Role" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Role", + "method": "PUT", + "summary": "replace the specified Role", + "nickname": "replaceNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Role", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Role", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Role" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + }, + { + "type": "v1.Role", + "method": "PATCH", + "summary": "partially update the specified Role", + "nickname": "patchNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.Patch", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Role", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Role" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json" + ] + }, + { + "type": "v1.Status", + "method": "DELETE", + "summary": "delete a Role", + "nickname": "deleteNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "v1.DeleteOptions", + "paramType": "body", + "name": "body", + "description": "", + "required": true, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "gracePeriodSeconds", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "orphanDependents", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "propagationPolicy", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Role", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.Status" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch changes to an object of kind Role", + "nickname": "watchNamespacedRole", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "namespace", + "description": "object name and auth scope, such as for teams and projects", + "required": true, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "path", + "name": "name", + "description": "name of the Role", + "required": true, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/roles", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.RoleList", + "method": "GET", + "summary": "list or watch objects of kind Role", + "nickname": "listRoleForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.RoleList" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1/watch/roles", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.WatchEvent", + "method": "GET", + "summary": "watch individual changes to a list of Role", + "nickname": "watchRoleListForAllNamespaces", + "parameters": [ + { + "type": "string", + "paramType": "query", + "name": "pretty", + "description": "If 'true', then the output is pretty printed.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "labelSelector", + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "fieldSelector", + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "includeUninitialized", + "description": "If true, partially initialized resources are included in the response.", + "required": false, + "allowMultiple": false + }, + { + "type": "boolean", + "paramType": "query", + "name": "watch", + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "required": false, + "allowMultiple": false + }, + { + "type": "string", + "paramType": "query", + "name": "resourceVersion", + "description": "When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it's 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.", + "required": false, + "allowMultiple": false + }, + { + "type": "integer", + "paramType": "query", + "name": "timeoutSeconds", + "description": "Timeout for the list/watch call.", + "required": false, + "allowMultiple": false + } + ], + "responseMessages": [ + { + "code": 200, + "message": "OK", + "responseModel": "v1.WatchEvent" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "consumes": [ + "*/*" + ] + } + ] + }, + { + "path": "/apis/rbac.authorization.k8s.io/v1", + "description": "API at /apis/rbac.authorization.k8s.io/v1", + "operations": [ + { + "type": "v1.APIResourceList", + "method": "GET", + "summary": "get available resources", + "nickname": "getAPIResources", + "parameters": [], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ] + } + ] + } + ], + "models": { + "v1.ClusterRoleBindingList": { + "id": "v1.ClusterRoleBindingList", + "description": "ClusterRoleBindingList is a collection of ClusterRoleBindings", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard object's metadata." + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.ClusterRoleBinding" + }, + "description": "Items is a list of ClusterRoleBindings" + } + } + }, + "v1.ListMeta": { + "id": "v1.ListMeta", + "description": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.", + "properties": { + "selfLink": { + "type": "string", + "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." + }, + "resourceVersion": { + "type": "string", + "description": "String that identifies the server's internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" + } + } + }, + "v1.ClusterRoleBinding": { + "id": "v1.ClusterRoleBinding", + "description": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", + "required": [ + "subjects", + "roleRef" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "subjects": { + "type": "array", + "items": { + "$ref": "v1.Subject" + }, + "description": "Subjects holds references to the objects the role applies to." + }, + "roleRef": { + "$ref": "v1.RoleRef", + "description": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." + } + } + }, + "v1.ObjectMeta": { + "id": "v1.ObjectMeta", + "description": "ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", + "properties": { + "name": { + "type": "string", + "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names" + }, + "generateName": { + "type": "string", + "description": "GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.\n\nIf this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).\n\nApplied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency" + }, + "namespace": { + "type": "string", + "description": "Namespace defines the space within each name must be unique. An empty namespace is equivalent to the \"default\" namespace, but \"default\" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.\n\nMust be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces" + }, + "selfLink": { + "type": "string", + "description": "SelfLink is a URL representing this object. Populated by the system. Read-only." + }, + "uid": { + "type": "string", + "description": "UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.\n\nPopulated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + }, + "resourceVersion": { + "type": "string", + "description": "An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.\n\nPopulated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency" + }, + "generation": { + "type": "integer", + "format": "int64", + "description": "A sequence number representing a specific generation of the desired state. Populated by the system. Read-only." + }, + "creationTimestamp": { + "type": "string", + "description": "CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.\n\nPopulated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "deletionTimestamp": { + "type": "string", + "description": "DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.\n\nPopulated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata" + }, + "deletionGracePeriodSeconds": { + "type": "integer", + "format": "int64", + "description": "Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only." + }, + "labels": { + "type": "object", + "description": "Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels" + }, + "annotations": { + "type": "object", + "description": "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations" + }, + "ownerReferences": { + "type": "array", + "items": { + "$ref": "v1.OwnerReference" + }, + "description": "List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller." + }, + "initializers": { + "$ref": "v1.Initializers", + "description": "An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.\n\nWhen an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user." + }, + "finalizers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed." + }, + "clusterName": { + "type": "string", + "description": "The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request." + } + } + }, + "v1.OwnerReference": { + "id": "v1.OwnerReference", + "description": "OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.", + "required": [ + "apiVersion", + "kind", + "name", + "uid" + ], + "properties": { + "apiVersion": { + "type": "string", + "description": "API version of the referent." + }, + "kind": { + "type": "string", + "description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "name": { + "type": "string", + "description": "Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names" + }, + "uid": { + "type": "string", + "description": "UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + }, + "controller": { + "type": "boolean", + "description": "If true, this reference points to the managing controller." + }, + "blockOwnerDeletion": { + "type": "boolean", + "description": "If true, AND if the owner has the \"foregroundDeletion\" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs \"delete\" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned." + } + } + }, + "v1.Initializers": { + "id": "v1.Initializers", + "description": "Initializers tracks the progress of initialization.", + "required": [ + "pending" + ], + "properties": { + "pending": { + "type": "array", + "items": { + "$ref": "v1.Initializer" + }, + "description": "Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients." + }, + "result": { + "$ref": "v1.Status", + "description": "If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion." + } + } + }, + "v1.Initializer": { + "id": "v1.Initializer", + "description": "Initializer is information about an initializer that has not yet completed.", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string", + "description": "name of the process that is responsible for initializing this object." + } + } + }, + "v1.Status": { + "id": "v1.Status", + "description": "Status is a return value for calls that don't return other objects.", + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "status": { + "type": "string", + "description": "Status of the operation. One of: \"Success\" or \"Failure\". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status" + }, + "message": { + "type": "string", + "description": "A human-readable description of the status of this operation." + }, + "reason": { + "type": "string", + "description": "A machine-readable description of why this operation is in the \"Failure\" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it." + }, + "details": { + "$ref": "v1.StatusDetails", + "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." + }, + "code": { + "type": "integer", + "format": "int32", + "description": "Suggested HTTP return code for this status, 0 if not set." + } + } + }, + "v1.StatusDetails": { + "id": "v1.StatusDetails", + "description": "StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.", + "properties": { + "name": { + "type": "string", + "description": "The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described)." + }, + "group": { + "type": "string", + "description": "The group attribute of the resource associated with the status StatusReason." + }, + "kind": { + "type": "string", + "description": "The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "uid": { + "type": "string", + "description": "UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids" + }, + "causes": { + "type": "array", + "items": { + "$ref": "v1.StatusCause" + }, + "description": "The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes." + }, + "retryAfterSeconds": { + "type": "integer", + "format": "int32", + "description": "If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action." + } + } + }, + "v1.StatusCause": { + "id": "v1.StatusCause", + "description": "StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.", + "properties": { + "reason": { + "type": "string", + "description": "A machine-readable description of the cause of the error. If this value is empty there is no information available." + }, + "message": { + "type": "string", + "description": "A human-readable description of the cause of the error. This field may be presented as-is to a reader." + }, + "field": { + "type": "string", + "description": "The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.\n\nExamples:\n \"name\" - the field \"name\" on the current resource\n \"items[0].name\" - the field \"name\" on the first array entry in \"items\"" + } + } + }, + "v1.Subject": { + "id": "v1.Subject", + "description": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", + "required": [ + "kind", + "name" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error." + }, + "apiGroup": { + "type": "string", + "description": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects." + }, + "name": { + "type": "string", + "description": "Name of the object being referenced." + }, + "namespace": { + "type": "string", + "description": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error." + } + } + }, + "v1.RoleRef": { + "id": "v1.RoleRef", + "description": "RoleRef contains information that points to the role being used", + "required": [ + "apiGroup", + "kind", + "name" + ], + "properties": { + "apiGroup": { + "type": "string", + "description": "APIGroup is the group for the resource being referenced" + }, + "kind": { + "type": "string", + "description": "Kind is the type of resource being referenced" + }, + "name": { + "type": "string", + "description": "Name is the name of resource being referenced" + } + } + }, + "v1.WatchEvent": { + "id": "v1.WatchEvent", + "required": [ + "type", + "object" + ], + "properties": { + "type": { + "type": "string" + }, + "object": { + "type": "string" + } + } + }, + "v1.Patch": { + "id": "v1.Patch", + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "properties": {} + }, + "v1.DeleteOptions": { + "id": "v1.DeleteOptions", + "description": "DeleteOptions may be provided when deleting an API object.", + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "gracePeriodSeconds": { + "type": "integer", + "format": "int64", + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately." + }, + "preconditions": { + "$ref": "v1.Preconditions", + "description": "Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned." + }, + "orphanDependents": { + "type": "boolean", + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both." + }, + "propagationPolicy": { + "$ref": "v1.DeletionPropagation", + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy." + } + } + }, + "v1.Preconditions": { + "id": "v1.Preconditions", + "description": "Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.", + "properties": { + "uid": { + "$ref": "types.UID", + "description": "Specifies the target UID." + } + } + }, + "types.UID": { + "id": "types.UID", + "properties": {} + }, + "v1.DeletionPropagation": { + "id": "v1.DeletionPropagation", + "properties": {} + }, + "v1.ClusterRoleList": { + "id": "v1.ClusterRoleList", + "description": "ClusterRoleList is a collection of ClusterRoles", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard object's metadata." + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.ClusterRole" + }, + "description": "Items is a list of ClusterRoles" + } + } + }, + "v1.ClusterRole": { + "id": "v1.ClusterRole", + "description": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "required": [ + "rules" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "type": "array", + "items": { + "$ref": "v1.PolicyRule" + }, + "description": "Rules holds all the PolicyRules for this ClusterRole" + } + } + }, + "v1.PolicyRule": { + "id": "v1.PolicyRule", + "description": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", + "required": [ + "verbs" + ], + "properties": { + "verbs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds." + }, + "apiGroups": { + "type": "array", + "items": { + "type": "string" + }, + "description": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed." + }, + "resources": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Resources is a list of resources this rule applies to. ResourceAll represents all resources." + }, + "resourceNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed." + }, + "nonResourceURLs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both." + } + } + }, + "v1.RoleBindingList": { + "id": "v1.RoleBindingList", + "description": "RoleBindingList is a collection of RoleBindings", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard object's metadata." + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.RoleBinding" + }, + "description": "Items is a list of RoleBindings" + } + } + }, + "v1.RoleBinding": { + "id": "v1.RoleBinding", + "description": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", + "required": [ + "subjects", + "roleRef" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "subjects": { + "type": "array", + "items": { + "$ref": "v1.Subject" + }, + "description": "Subjects holds references to the objects the role applies to." + }, + "roleRef": { + "$ref": "v1.RoleRef", + "description": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error." + } + } + }, + "v1.RoleList": { + "id": "v1.RoleList", + "description": "RoleList is a collection of Roles", + "required": [ + "items" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ListMeta", + "description": "Standard object's metadata." + }, + "items": { + "type": "array", + "items": { + "$ref": "v1.Role" + }, + "description": "Items is a list of Roles" + } + } + }, + "v1.Role": { + "id": "v1.Role", + "description": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", + "required": [ + "rules" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "metadata": { + "$ref": "v1.ObjectMeta", + "description": "Standard object's metadata." + }, + "rules": { + "type": "array", + "items": { + "$ref": "v1.PolicyRule" + }, + "description": "Rules holds all the PolicyRules for this Role" + } + } + }, + "v1.APIResourceList": { + "id": "v1.APIResourceList", + "description": "APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.", + "required": [ + "groupVersion", + "resources" + ], + "properties": { + "kind": { + "type": "string", + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds" + }, + "apiVersion": { + "type": "string", + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources" + }, + "groupVersion": { + "type": "string", + "description": "groupVersion is the group and version this APIResourceList is for." + }, + "resources": { + "type": "array", + "items": { + "$ref": "v1.APIResource" + }, + "description": "resources contains the name of the resources and if they are namespaced." + } + } + }, + "v1.APIResource": { + "id": "v1.APIResource", + "description": "APIResource specifies the name of a resource and whether it is namespaced.", + "required": [ + "name", + "singularName", + "namespaced", + "kind", + "verbs" + ], + "properties": { + "name": { + "type": "string", + "description": "name is the plural name of the resource." + }, + "singularName": { + "type": "string", + "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface." + }, + "namespaced": { + "type": "boolean", + "description": "namespaced indicates if a resource is namespaced or not." + }, + "kind": { + "type": "string", + "description": "kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')" + }, + "verbs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)" + }, + "shortNames": { + "type": "array", + "items": { + "type": "string" + }, + "description": "shortNames is a list of suggested short names of the resource." + }, + "categories": { + "type": "array", + "items": { + "type": "string" + }, + "description": "categories is a list of the grouped resources this resource belongs to (e.g. 'all')" + } + } + } + } + } diff --git a/api/swagger-spec/resourceListing.json b/api/swagger-spec/resourceListing.json index c632996ff14..9bb4a865b45 100644 --- a/api/swagger-spec/resourceListing.json +++ b/api/swagger-spec/resourceListing.json @@ -105,6 +105,10 @@ "path": "/apis/rbac.authorization.k8s.io/v1beta1", "description": "API at /apis/rbac.authorization.k8s.io/v1beta1" }, + { + "path": "/apis/rbac.authorization.k8s.io/v1", + "description": "API at /apis/rbac.authorization.k8s.io/v1" + }, { "path": "/apis/rbac.authorization.k8s.io/v1alpha1", "description": "API at /apis/rbac.authorization.k8s.io/v1alpha1" diff --git a/docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html b/docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html new file mode 100755 index 00000000000..a24d8879625 --- /dev/null +++ b/docs/api-reference/rbac.authorization.k8s.io/v1/definitions.html @@ -0,0 +1,1867 @@ + + + + + + +Top Level API Objects + + + + +
    + +
    +

    Definitions

    +
    +
    +

    v1.APIResourceList

    +
    +

    APIResourceList is a list of APIResource, it is used to expose the name of the resources supported in a specific group and version, and if the resource is namespaced.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    groupVersion

    groupVersion is the group and version this APIResourceList is for.

    true

    string

    resources

    resources contains the name of the resources and if they are namespaced.

    true

    v1.APIResource array

    + +
    +
    +

    v1.Patch

    +
    +

    Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.

    +
    +
    +
    +

    v1.ClusterRoleBinding

    +
    +

    ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    subjects

    Subjects holds references to the objects the role applies to.

    true

    v1.Subject array

    roleRef

    RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.

    true

    v1.RoleRef

    + +
    +
    +

    v1.DeleteOptions

    +
    +

    DeleteOptions may be provided when deleting an API object.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int64)

    preconditions

    Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.

    false

    v1.Preconditions

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    false

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    v1.DeletionPropagation

    + +
    +
    +

    v1.ListMeta

    +
    +

    ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    selfLink

    SelfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    resourceVersion

    String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    + +
    +
    +

    v1.StatusDetails

    +
    +

    StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    name

    The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).

    false

    string

    group

    The group attribute of the resource associated with the status StatusReason.

    false

    string

    kind

    The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    uid

    UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    false

    string

    causes

    The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.

    false

    v1.StatusCause array

    retryAfterSeconds

    If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.

    false

    integer (int32)

    + +
    +
    +

    v1.RoleRef

    +
    +

    RoleRef contains information that points to the role being used

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    apiGroup

    APIGroup is the group for the resource being referenced

    true

    string

    kind

    Kind is the type of resource being referenced

    true

    string

    name

    Name is the name of resource being referenced

    true

    string

    + +
    +
    +

    v1.RoleBindingList

    +
    +

    RoleBindingList is a collection of RoleBindings

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of RoleBindings

    true

    v1.RoleBinding array

    + +
    +
    +

    v1.Preconditions

    +
    +

    Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    uid

    Specifies the target UID.

    false

    types.UID

    + +
    +
    +

    v1.Initializers

    +
    +

    Initializers tracks the progress of initialization.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    pending

    Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

    true

    v1.Initializer array

    result

    If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

    false

    v1.Status

    + +
    +
    +

    v1.Initializer

    +
    +

    Initializer is information about an initializer that has not yet completed.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    name

    name of the process that is responsible for initializing this object.

    true

    string

    + +
    +
    +

    v1.ClusterRole

    +
    +

    ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    rules

    Rules holds all the PolicyRules for this ClusterRole

    true

    v1.PolicyRule array

    + +
    +
    +

    v1.Status

    +
    +

    Status is a return value for calls that don’t return other objects.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    v1.ListMeta

    status

    Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

    false

    string

    message

    A human-readable description of the status of this operation.

    false

    string

    reason

    A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.

    false

    string

    details

    Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.

    false

    v1.StatusDetails

    code

    Suggested HTTP return code for this status, 0 if not set.

    false

    integer (int32)

    + +
    +
    +

    v1.Subject

    +
    +

    Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". If the Authorizer does not recognized the kind value, the Authorizer should report an error.

    true

    string

    apiGroup

    APIGroup holds the API group of the referenced subject. Defaults to "" for ServiceAccount subjects. Defaults to "rbac.authorization.k8s.io" for User and Group subjects.

    false

    string

    name

    Name of the object being referenced.

    true

    string

    namespace

    Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty the Authorizer should report an error.

    false

    string

    + +
    +
    +

    v1.WatchEvent

    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    type

    true

    string

    object

    true

    string

    + +
    +
    +

    v1.RoleBinding

    +
    +

    RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    subjects

    Subjects holds references to the objects the role applies to.

    true

    v1.Subject array

    roleRef

    RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.

    true

    v1.RoleRef

    + +
    +
    +

    v1.ObjectMeta

    +
    +

    ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    name

    Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    false

    string

    generateName

    GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.
    +
    +If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).
    +
    +Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

    false

    string

    namespace

    Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty.
    +
    +Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces

    false

    string

    selfLink

    SelfLink is a URL representing this object. Populated by the system. Read-only.

    false

    string

    uid

    UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations.
    +
    +Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    false

    string

    resourceVersion

    An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.
    +
    +Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

    false

    string

    generation

    A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.

    false

    integer (int64)

    creationTimestamp

    CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
    +
    +Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    string

    deletionTimestamp

    DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.
    +
    +Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

    false

    string

    deletionGracePeriodSeconds

    Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.

    false

    integer (int64)

    labels

    Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

    false

    object

    annotations

    Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

    false

    object

    ownerReferences

    List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.

    false

    v1.OwnerReference array

    initializers

    An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
    +
    +When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

    false

    v1.Initializers

    finalizers

    Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

    false

    string array

    clusterName

    The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.

    false

    string

    + +
    +
    +

    v1.OwnerReference

    +
    +

    OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    apiVersion

    API version of the referent.

    true

    string

    kind

    Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    true

    string

    name

    Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

    true

    string

    uid

    UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

    true

    string

    controller

    If true, this reference points to the managing controller.

    false

    boolean

    false

    blockOwnerDeletion

    If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.

    false

    boolean

    false

    + +
    +
    +

    v1.ClusterRoleBindingList

    +
    +

    ClusterRoleBindingList is a collection of ClusterRoleBindings

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of ClusterRoleBindings

    true

    v1.ClusterRoleBinding array

    + +
    +
    +

    v1.Role

    +
    +

    Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ObjectMeta

    rules

    Rules holds all the PolicyRules for this Role

    true

    v1.PolicyRule array

    + +
    +
    +

    v1.APIResource

    +
    +

    APIResource specifies the name of a resource and whether it is namespaced.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    name

    name is the plural name of the resource.

    true

    string

    singularName

    singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

    true

    string

    namespaced

    namespaced indicates if a resource is namespaced or not.

    true

    boolean

    false

    kind

    kind is the kind for the resource (e.g. Foo is the kind for a resource foo)

    true

    string

    verbs

    verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)

    true

    string array

    shortNames

    shortNames is a list of suggested short names of the resource.

    false

    string array

    categories

    categories is a list of the grouped resources this resource belongs to (e.g. all)

    false

    string array

    + +
    +
    +

    v1.ClusterRoleList

    +
    +

    ClusterRoleList is a collection of ClusterRoles

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of ClusterRoles

    true

    v1.ClusterRole array

    + +
    +
    +

    types.UID

    + +
    +
    +

    v1.RoleList

    +
    +

    RoleList is a collection of Roles

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    kind

    Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

    false

    string

    apiVersion

    APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

    false

    string

    metadata

    Standard object’s metadata.

    false

    v1.ListMeta

    items

    Items is a list of Roles

    true

    v1.Role array

    + +
    +
    +

    v1.StatusCause

    +
    +

    StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    reason

    A machine-readable description of the cause of the error. If this value is empty there is no information available.

    false

    string

    message

    A human-readable description of the cause of the error. This field may be presented as-is to a reader.

    false

    string

    field

    The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional.
    +
    +Examples:
    + "name" - the field "name" on the current resource
    + "items[0].name" - the field "name" on the first array entry in "items"

    false

    string

    + +
    +
    +

    v1.DeletionPropagation

    + +
    +
    +

    v1.PolicyRule

    +
    +

    PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.

    +
    + +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameDescriptionRequiredSchemaDefault

    verbs

    Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.

    true

    string array

    apiGroups

    APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.

    false

    string array

    resources

    Resources is a list of resources this rule applies to. ResourceAll represents all resources.

    false

    string array

    resourceNames

    ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.

    false

    string array

    nonResourceURLs

    NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both.

    false

    string array

    + +
    +
    +

    any

    +
    +

    Represents an untyped JSON map - see the description of the field for more info about the structure of this object.

    +
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/docs/api-reference/rbac.authorization.k8s.io/v1/operations.html b/docs/api-reference/rbac.authorization.k8s.io/v1/operations.html new file mode 100755 index 00000000000..4832546ae3a --- /dev/null +++ b/docs/api-reference/rbac.authorization.k8s.io/v1/operations.html @@ -0,0 +1,6182 @@ + + + + + + +Operations + + + + +
    +
    +

    Operations

    +
    +
    +

    get available resources

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1
    +
    +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    default

    success

    v1.APIResourceList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind ClusterRoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRoleBindingList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of ClusterRoleBinding

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/clusterrolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    create a ClusterRoleBinding

    +
    +
    +
    POST /apis/rbac.authorization.k8s.io/v1/clusterrolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ClusterRoleBinding

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    read the specified ClusterRoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    name

    name of the ClusterRoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified ClusterRoleBinding

    +
    +
    +
    PUT /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ClusterRoleBinding

    PathParameter

    name

    name of the ClusterRoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete a ClusterRoleBinding

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    name

    name of the ClusterRoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified ClusterRoleBinding

    +
    +
    +
    PATCH /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    name

    name of the ClusterRoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind ClusterRole

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/clusterroles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRoleList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of ClusterRole

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    create a ClusterRole

    +
    +
    +
    POST /apis/rbac.authorization.k8s.io/v1/clusterroles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ClusterRole

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRole

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    read the specified ClusterRole

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/clusterroles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    name

    name of the ClusterRole

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRole

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified ClusterRole

    +
    +
    +
    PUT /apis/rbac.authorization.k8s.io/v1/clusterroles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.ClusterRole

    PathParameter

    name

    name of the ClusterRole

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRole

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete a ClusterRole

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/clusterroles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    name

    name of the ClusterRole

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified ClusterRole

    +
    +
    +
    PATCH /apis/rbac.authorization.k8s.io/v1/clusterroles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    name

    name of the ClusterRole

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.ClusterRole

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind RoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleBindingList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of RoleBinding

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    create a RoleBinding

    +
    +
    +
    POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.RoleBinding

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    read the specified RoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the RoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified RoleBinding

    +
    +
    +
    PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.RoleBinding

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the RoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete a RoleBinding

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the RoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified RoleBinding

    +
    +
    +
    PATCH /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/rolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the RoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleBinding

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind Role

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete collection of Role

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    create a Role

    +
    +
    +
    POST /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Role

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Role

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    read the specified Role

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Role

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Role

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    replace the specified Role

    +
    +
    +
    PUT /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Role

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Role

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Role

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    delete a Role

    +
    +
    +
    DELETE /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.DeleteOptions

    QueryParameter

    gracePeriodSeconds

    The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.

    false

    integer (int32)

    QueryParameter

    orphanDependents

    Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object’s finalizers list. Either this field or PropagationPolicy may be set, but not both.

    false

    boolean

    QueryParameter

    propagationPolicy

    Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

    false

    string

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Role

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Status

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    partially update the specified Role

    +
    +
    +
    PATCH /apis/rbac.authorization.k8s.io/v1/namespaces/{namespace}/roles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    BodyParameter

    body

    true

    v1.Patch

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Role

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.Role

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      application/json-patch+json

      +
    • +
    • +

      application/merge-patch+json

      +
    • +
    • +

      application/strategic-merge-patch+json

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind RoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/rolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleBindingList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    list or watch objects of kind Role

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/roles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.RoleList

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of ClusterRoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind ClusterRoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/clusterrolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    name

    name of the ClusterRoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of ClusterRole

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/clusterroles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind ClusterRole

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/clusterroles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    name

    name of the ClusterRole

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of RoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind RoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/rolebindings/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the RoleBinding

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of Role

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch changes to an object of kind Role

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/namespaces/{namespace}/roles/{name}
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    PathParameter

    namespace

    object name and auth scope, such as for teams and projects

    true

    string

    PathParameter

    name

    name of the Role

    true

    string

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of RoleBinding

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/rolebindings
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +

    watch individual changes to a list of Role

    +
    +
    +
    GET /apis/rbac.authorization.k8s.io/v1/watch/roles
    +
    +
    +
    +

    Parameters

    + ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TypeNameDescriptionRequiredSchemaDefault

    QueryParameter

    pretty

    If true, then the output is pretty printed.

    false

    string

    QueryParameter

    labelSelector

    A selector to restrict the list of returned objects by their labels. Defaults to everything.

    false

    string

    QueryParameter

    fieldSelector

    A selector to restrict the list of returned objects by their fields. Defaults to everything.

    false

    string

    QueryParameter

    includeUninitialized

    If true, partially initialized resources are included in the response.

    false

    boolean

    QueryParameter

    watch

    Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

    false

    boolean

    QueryParameter

    resourceVersion

    When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

    false

    string

    QueryParameter

    timeoutSeconds

    Timeout for the list/watch call.

    false

    integer (int32)

    + +
    +
    +

    Responses

    + +++++ + + + + + + + + + + + + + + +
    HTTP CodeDescriptionSchema

    200

    success

    v1.WatchEvent

    + +
    +
    +

    Consumes

    +
    +
      +
    • +

      /

      +
    • +
    +
    +
    +
    +

    Produces

    +
    +
      +
    • +

      application/json

      +
    • +
    • +

      application/yaml

      +
    • +
    • +

      application/vnd.kubernetes.protobuf

      +
    • +
    • +

      application/json;stream=watch

      +
    • +
    • +

      application/vnd.kubernetes.protobuf;stream=watch

      +
    • +
    +
    +
    +
    +

    Tags

    +
    +
      +
    • +

      apisrbac.authorization.k8s.iov1

      +
    • +
    +
    +
    +
    +
    +
    +
    + + + \ No newline at end of file diff --git a/federation/apis/openapi-spec/swagger.json b/federation/apis/openapi-spec/swagger.json index ec66398aa0d..c753b85715b 100644 --- a/federation/apis/openapi-spec/swagger.json +++ b/federation/apis/openapi-spec/swagger.json @@ -13325,6 +13325,11 @@ "version": "v1beta1", "kind": "DeleteOptions" }, + { + "group": "rbac.authorization.k8s.io", + "version": "v1", + "kind": "DeleteOptions" + }, { "group": "rbac.authorization.k8s.io", "version": "v1alpha1", @@ -13823,6 +13828,11 @@ "version": "v1beta1", "kind": "WatchEvent" }, + { + "group": "rbac.authorization.k8s.io", + "version": "v1", + "kind": "WatchEvent" + }, { "group": "rbac.authorization.k8s.io", "version": "v1alpha1", diff --git a/pkg/apis/rbac/v1/zz_generated.conversion.go b/pkg/apis/rbac/v1/zz_generated.conversion.go new file mode 100644 index 00000000000..dab304a2127 --- /dev/null +++ b/pkg/apis/rbac/v1/zz_generated.conversion.go @@ -0,0 +1,364 @@ +// +build !ignore_autogenerated + +/* +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. +*/ + +// This file was autogenerated by conversion-gen. Do not edit it manually! + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + rbac "k8s.io/kubernetes/pkg/apis/rbac" + unsafe "unsafe" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(scheme *runtime.Scheme) error { + return scheme.AddGeneratedConversionFuncs( + Convert_v1_ClusterRole_To_rbac_ClusterRole, + Convert_rbac_ClusterRole_To_v1_ClusterRole, + Convert_v1_ClusterRoleBinding_To_rbac_ClusterRoleBinding, + Convert_rbac_ClusterRoleBinding_To_v1_ClusterRoleBinding, + Convert_v1_ClusterRoleBindingList_To_rbac_ClusterRoleBindingList, + Convert_rbac_ClusterRoleBindingList_To_v1_ClusterRoleBindingList, + Convert_v1_ClusterRoleList_To_rbac_ClusterRoleList, + Convert_rbac_ClusterRoleList_To_v1_ClusterRoleList, + Convert_v1_PolicyRule_To_rbac_PolicyRule, + Convert_rbac_PolicyRule_To_v1_PolicyRule, + Convert_v1_Role_To_rbac_Role, + Convert_rbac_Role_To_v1_Role, + Convert_v1_RoleBinding_To_rbac_RoleBinding, + Convert_rbac_RoleBinding_To_v1_RoleBinding, + Convert_v1_RoleBindingList_To_rbac_RoleBindingList, + Convert_rbac_RoleBindingList_To_v1_RoleBindingList, + Convert_v1_RoleList_To_rbac_RoleList, + Convert_rbac_RoleList_To_v1_RoleList, + Convert_v1_RoleRef_To_rbac_RoleRef, + Convert_rbac_RoleRef_To_v1_RoleRef, + Convert_v1_Subject_To_rbac_Subject, + Convert_rbac_Subject_To_v1_Subject, + ) +} + +func autoConvert_v1_ClusterRole_To_rbac_ClusterRole(in *v1.ClusterRole, out *rbac.ClusterRole, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Rules = *(*[]rbac.PolicyRule)(unsafe.Pointer(&in.Rules)) + return nil +} + +// Convert_v1_ClusterRole_To_rbac_ClusterRole is an autogenerated conversion function. +func Convert_v1_ClusterRole_To_rbac_ClusterRole(in *v1.ClusterRole, out *rbac.ClusterRole, s conversion.Scope) error { + return autoConvert_v1_ClusterRole_To_rbac_ClusterRole(in, out, s) +} + +func autoConvert_rbac_ClusterRole_To_v1_ClusterRole(in *rbac.ClusterRole, out *v1.ClusterRole, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if in.Rules == nil { + out.Rules = make([]v1.PolicyRule, 0) + } else { + out.Rules = *(*[]v1.PolicyRule)(unsafe.Pointer(&in.Rules)) + } + return nil +} + +// Convert_rbac_ClusterRole_To_v1_ClusterRole is an autogenerated conversion function. +func Convert_rbac_ClusterRole_To_v1_ClusterRole(in *rbac.ClusterRole, out *v1.ClusterRole, s conversion.Scope) error { + return autoConvert_rbac_ClusterRole_To_v1_ClusterRole(in, out, s) +} + +func autoConvert_v1_ClusterRoleBinding_To_rbac_ClusterRoleBinding(in *v1.ClusterRoleBinding, out *rbac.ClusterRoleBinding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Subjects = *(*[]rbac.Subject)(unsafe.Pointer(&in.Subjects)) + if err := Convert_v1_RoleRef_To_rbac_RoleRef(&in.RoleRef, &out.RoleRef, s); err != nil { + return err + } + return nil +} + +// Convert_v1_ClusterRoleBinding_To_rbac_ClusterRoleBinding is an autogenerated conversion function. +func Convert_v1_ClusterRoleBinding_To_rbac_ClusterRoleBinding(in *v1.ClusterRoleBinding, out *rbac.ClusterRoleBinding, s conversion.Scope) error { + return autoConvert_v1_ClusterRoleBinding_To_rbac_ClusterRoleBinding(in, out, s) +} + +func autoConvert_rbac_ClusterRoleBinding_To_v1_ClusterRoleBinding(in *rbac.ClusterRoleBinding, out *v1.ClusterRoleBinding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if in.Subjects == nil { + out.Subjects = make([]v1.Subject, 0) + } else { + out.Subjects = *(*[]v1.Subject)(unsafe.Pointer(&in.Subjects)) + } + if err := Convert_rbac_RoleRef_To_v1_RoleRef(&in.RoleRef, &out.RoleRef, s); err != nil { + return err + } + return nil +} + +// Convert_rbac_ClusterRoleBinding_To_v1_ClusterRoleBinding is an autogenerated conversion function. +func Convert_rbac_ClusterRoleBinding_To_v1_ClusterRoleBinding(in *rbac.ClusterRoleBinding, out *v1.ClusterRoleBinding, s conversion.Scope) error { + return autoConvert_rbac_ClusterRoleBinding_To_v1_ClusterRoleBinding(in, out, s) +} + +func autoConvert_v1_ClusterRoleBindingList_To_rbac_ClusterRoleBindingList(in *v1.ClusterRoleBindingList, out *rbac.ClusterRoleBindingList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]rbac.ClusterRoleBinding)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_ClusterRoleBindingList_To_rbac_ClusterRoleBindingList is an autogenerated conversion function. +func Convert_v1_ClusterRoleBindingList_To_rbac_ClusterRoleBindingList(in *v1.ClusterRoleBindingList, out *rbac.ClusterRoleBindingList, s conversion.Scope) error { + return autoConvert_v1_ClusterRoleBindingList_To_rbac_ClusterRoleBindingList(in, out, s) +} + +func autoConvert_rbac_ClusterRoleBindingList_To_v1_ClusterRoleBindingList(in *rbac.ClusterRoleBindingList, out *v1.ClusterRoleBindingList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items == nil { + out.Items = make([]v1.ClusterRoleBinding, 0) + } else { + out.Items = *(*[]v1.ClusterRoleBinding)(unsafe.Pointer(&in.Items)) + } + return nil +} + +// Convert_rbac_ClusterRoleBindingList_To_v1_ClusterRoleBindingList is an autogenerated conversion function. +func Convert_rbac_ClusterRoleBindingList_To_v1_ClusterRoleBindingList(in *rbac.ClusterRoleBindingList, out *v1.ClusterRoleBindingList, s conversion.Scope) error { + return autoConvert_rbac_ClusterRoleBindingList_To_v1_ClusterRoleBindingList(in, out, s) +} + +func autoConvert_v1_ClusterRoleList_To_rbac_ClusterRoleList(in *v1.ClusterRoleList, out *rbac.ClusterRoleList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]rbac.ClusterRole)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_ClusterRoleList_To_rbac_ClusterRoleList is an autogenerated conversion function. +func Convert_v1_ClusterRoleList_To_rbac_ClusterRoleList(in *v1.ClusterRoleList, out *rbac.ClusterRoleList, s conversion.Scope) error { + return autoConvert_v1_ClusterRoleList_To_rbac_ClusterRoleList(in, out, s) +} + +func autoConvert_rbac_ClusterRoleList_To_v1_ClusterRoleList(in *rbac.ClusterRoleList, out *v1.ClusterRoleList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items == nil { + out.Items = make([]v1.ClusterRole, 0) + } else { + out.Items = *(*[]v1.ClusterRole)(unsafe.Pointer(&in.Items)) + } + return nil +} + +// Convert_rbac_ClusterRoleList_To_v1_ClusterRoleList is an autogenerated conversion function. +func Convert_rbac_ClusterRoleList_To_v1_ClusterRoleList(in *rbac.ClusterRoleList, out *v1.ClusterRoleList, s conversion.Scope) error { + return autoConvert_rbac_ClusterRoleList_To_v1_ClusterRoleList(in, out, s) +} + +func autoConvert_v1_PolicyRule_To_rbac_PolicyRule(in *v1.PolicyRule, out *rbac.PolicyRule, s conversion.Scope) error { + out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) + out.APIGroups = *(*[]string)(unsafe.Pointer(&in.APIGroups)) + out.Resources = *(*[]string)(unsafe.Pointer(&in.Resources)) + out.ResourceNames = *(*[]string)(unsafe.Pointer(&in.ResourceNames)) + out.NonResourceURLs = *(*[]string)(unsafe.Pointer(&in.NonResourceURLs)) + return nil +} + +// Convert_v1_PolicyRule_To_rbac_PolicyRule is an autogenerated conversion function. +func Convert_v1_PolicyRule_To_rbac_PolicyRule(in *v1.PolicyRule, out *rbac.PolicyRule, s conversion.Scope) error { + return autoConvert_v1_PolicyRule_To_rbac_PolicyRule(in, out, s) +} + +func autoConvert_rbac_PolicyRule_To_v1_PolicyRule(in *rbac.PolicyRule, out *v1.PolicyRule, s conversion.Scope) error { + if in.Verbs == nil { + out.Verbs = make([]string, 0) + } else { + out.Verbs = *(*[]string)(unsafe.Pointer(&in.Verbs)) + } + out.APIGroups = *(*[]string)(unsafe.Pointer(&in.APIGroups)) + out.Resources = *(*[]string)(unsafe.Pointer(&in.Resources)) + out.ResourceNames = *(*[]string)(unsafe.Pointer(&in.ResourceNames)) + out.NonResourceURLs = *(*[]string)(unsafe.Pointer(&in.NonResourceURLs)) + return nil +} + +// Convert_rbac_PolicyRule_To_v1_PolicyRule is an autogenerated conversion function. +func Convert_rbac_PolicyRule_To_v1_PolicyRule(in *rbac.PolicyRule, out *v1.PolicyRule, s conversion.Scope) error { + return autoConvert_rbac_PolicyRule_To_v1_PolicyRule(in, out, s) +} + +func autoConvert_v1_Role_To_rbac_Role(in *v1.Role, out *rbac.Role, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Rules = *(*[]rbac.PolicyRule)(unsafe.Pointer(&in.Rules)) + return nil +} + +// Convert_v1_Role_To_rbac_Role is an autogenerated conversion function. +func Convert_v1_Role_To_rbac_Role(in *v1.Role, out *rbac.Role, s conversion.Scope) error { + return autoConvert_v1_Role_To_rbac_Role(in, out, s) +} + +func autoConvert_rbac_Role_To_v1_Role(in *rbac.Role, out *v1.Role, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if in.Rules == nil { + out.Rules = make([]v1.PolicyRule, 0) + } else { + out.Rules = *(*[]v1.PolicyRule)(unsafe.Pointer(&in.Rules)) + } + return nil +} + +// Convert_rbac_Role_To_v1_Role is an autogenerated conversion function. +func Convert_rbac_Role_To_v1_Role(in *rbac.Role, out *v1.Role, s conversion.Scope) error { + return autoConvert_rbac_Role_To_v1_Role(in, out, s) +} + +func autoConvert_v1_RoleBinding_To_rbac_RoleBinding(in *v1.RoleBinding, out *rbac.RoleBinding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + out.Subjects = *(*[]rbac.Subject)(unsafe.Pointer(&in.Subjects)) + if err := Convert_v1_RoleRef_To_rbac_RoleRef(&in.RoleRef, &out.RoleRef, s); err != nil { + return err + } + return nil +} + +// Convert_v1_RoleBinding_To_rbac_RoleBinding is an autogenerated conversion function. +func Convert_v1_RoleBinding_To_rbac_RoleBinding(in *v1.RoleBinding, out *rbac.RoleBinding, s conversion.Scope) error { + return autoConvert_v1_RoleBinding_To_rbac_RoleBinding(in, out, s) +} + +func autoConvert_rbac_RoleBinding_To_v1_RoleBinding(in *rbac.RoleBinding, out *v1.RoleBinding, s conversion.Scope) error { + out.ObjectMeta = in.ObjectMeta + if in.Subjects == nil { + out.Subjects = make([]v1.Subject, 0) + } else { + out.Subjects = *(*[]v1.Subject)(unsafe.Pointer(&in.Subjects)) + } + if err := Convert_rbac_RoleRef_To_v1_RoleRef(&in.RoleRef, &out.RoleRef, s); err != nil { + return err + } + return nil +} + +// Convert_rbac_RoleBinding_To_v1_RoleBinding is an autogenerated conversion function. +func Convert_rbac_RoleBinding_To_v1_RoleBinding(in *rbac.RoleBinding, out *v1.RoleBinding, s conversion.Scope) error { + return autoConvert_rbac_RoleBinding_To_v1_RoleBinding(in, out, s) +} + +func autoConvert_v1_RoleBindingList_To_rbac_RoleBindingList(in *v1.RoleBindingList, out *rbac.RoleBindingList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]rbac.RoleBinding)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_RoleBindingList_To_rbac_RoleBindingList is an autogenerated conversion function. +func Convert_v1_RoleBindingList_To_rbac_RoleBindingList(in *v1.RoleBindingList, out *rbac.RoleBindingList, s conversion.Scope) error { + return autoConvert_v1_RoleBindingList_To_rbac_RoleBindingList(in, out, s) +} + +func autoConvert_rbac_RoleBindingList_To_v1_RoleBindingList(in *rbac.RoleBindingList, out *v1.RoleBindingList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items == nil { + out.Items = make([]v1.RoleBinding, 0) + } else { + out.Items = *(*[]v1.RoleBinding)(unsafe.Pointer(&in.Items)) + } + return nil +} + +// Convert_rbac_RoleBindingList_To_v1_RoleBindingList is an autogenerated conversion function. +func Convert_rbac_RoleBindingList_To_v1_RoleBindingList(in *rbac.RoleBindingList, out *v1.RoleBindingList, s conversion.Scope) error { + return autoConvert_rbac_RoleBindingList_To_v1_RoleBindingList(in, out, s) +} + +func autoConvert_v1_RoleList_To_rbac_RoleList(in *v1.RoleList, out *rbac.RoleList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + out.Items = *(*[]rbac.Role)(unsafe.Pointer(&in.Items)) + return nil +} + +// Convert_v1_RoleList_To_rbac_RoleList is an autogenerated conversion function. +func Convert_v1_RoleList_To_rbac_RoleList(in *v1.RoleList, out *rbac.RoleList, s conversion.Scope) error { + return autoConvert_v1_RoleList_To_rbac_RoleList(in, out, s) +} + +func autoConvert_rbac_RoleList_To_v1_RoleList(in *rbac.RoleList, out *v1.RoleList, s conversion.Scope) error { + out.ListMeta = in.ListMeta + if in.Items == nil { + out.Items = make([]v1.Role, 0) + } else { + out.Items = *(*[]v1.Role)(unsafe.Pointer(&in.Items)) + } + return nil +} + +// Convert_rbac_RoleList_To_v1_RoleList is an autogenerated conversion function. +func Convert_rbac_RoleList_To_v1_RoleList(in *rbac.RoleList, out *v1.RoleList, s conversion.Scope) error { + return autoConvert_rbac_RoleList_To_v1_RoleList(in, out, s) +} + +func autoConvert_v1_RoleRef_To_rbac_RoleRef(in *v1.RoleRef, out *rbac.RoleRef, s conversion.Scope) error { + out.APIGroup = in.APIGroup + out.Kind = in.Kind + out.Name = in.Name + return nil +} + +// Convert_v1_RoleRef_To_rbac_RoleRef is an autogenerated conversion function. +func Convert_v1_RoleRef_To_rbac_RoleRef(in *v1.RoleRef, out *rbac.RoleRef, s conversion.Scope) error { + return autoConvert_v1_RoleRef_To_rbac_RoleRef(in, out, s) +} + +func autoConvert_rbac_RoleRef_To_v1_RoleRef(in *rbac.RoleRef, out *v1.RoleRef, s conversion.Scope) error { + out.APIGroup = in.APIGroup + out.Kind = in.Kind + out.Name = in.Name + return nil +} + +// Convert_rbac_RoleRef_To_v1_RoleRef is an autogenerated conversion function. +func Convert_rbac_RoleRef_To_v1_RoleRef(in *rbac.RoleRef, out *v1.RoleRef, s conversion.Scope) error { + return autoConvert_rbac_RoleRef_To_v1_RoleRef(in, out, s) +} + +func autoConvert_v1_Subject_To_rbac_Subject(in *v1.Subject, out *rbac.Subject, s conversion.Scope) error { + out.Kind = in.Kind + out.APIGroup = in.APIGroup + out.Name = in.Name + out.Namespace = in.Namespace + return nil +} + +// Convert_v1_Subject_To_rbac_Subject is an autogenerated conversion function. +func Convert_v1_Subject_To_rbac_Subject(in *v1.Subject, out *rbac.Subject, s conversion.Scope) error { + return autoConvert_v1_Subject_To_rbac_Subject(in, out, s) +} + +func autoConvert_rbac_Subject_To_v1_Subject(in *rbac.Subject, out *v1.Subject, s conversion.Scope) error { + out.Kind = in.Kind + out.APIGroup = in.APIGroup + out.Name = in.Name + out.Namespace = in.Namespace + return nil +} + +// Convert_rbac_Subject_To_v1_Subject is an autogenerated conversion function. +func Convert_rbac_Subject_To_v1_Subject(in *rbac.Subject, out *v1.Subject, s conversion.Scope) error { + return autoConvert_rbac_Subject_To_v1_Subject(in, out, s) +} diff --git a/pkg/apis/rbac/v1/zz_generated.defaults.go b/pkg/apis/rbac/v1/zz_generated.defaults.go new file mode 100644 index 00000000000..756d155b33b --- /dev/null +++ b/pkg/apis/rbac/v1/zz_generated.defaults.go @@ -0,0 +1,67 @@ +// +build !ignore_autogenerated + +/* +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. +*/ + +// This file was autogenerated by defaulter-gen. Do not edit it manually! + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + scheme.AddTypeDefaultingFunc(&v1.ClusterRoleBinding{}, func(obj interface{}) { SetObjectDefaults_ClusterRoleBinding(obj.(*v1.ClusterRoleBinding)) }) + scheme.AddTypeDefaultingFunc(&v1.ClusterRoleBindingList{}, func(obj interface{}) { SetObjectDefaults_ClusterRoleBindingList(obj.(*v1.ClusterRoleBindingList)) }) + scheme.AddTypeDefaultingFunc(&v1.RoleBinding{}, func(obj interface{}) { SetObjectDefaults_RoleBinding(obj.(*v1.RoleBinding)) }) + scheme.AddTypeDefaultingFunc(&v1.RoleBindingList{}, func(obj interface{}) { SetObjectDefaults_RoleBindingList(obj.(*v1.RoleBindingList)) }) + return nil +} + +func SetObjectDefaults_ClusterRoleBinding(in *v1.ClusterRoleBinding) { + SetDefaults_ClusterRoleBinding(in) + for i := range in.Subjects { + a := &in.Subjects[i] + SetDefaults_Subject(a) + } +} + +func SetObjectDefaults_ClusterRoleBindingList(in *v1.ClusterRoleBindingList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_ClusterRoleBinding(a) + } +} + +func SetObjectDefaults_RoleBinding(in *v1.RoleBinding) { + SetDefaults_RoleBinding(in) + for i := range in.Subjects { + a := &in.Subjects[i] + SetDefaults_Subject(a) + } +} + +func SetObjectDefaults_RoleBindingList(in *v1.RoleBindingList) { + for i := range in.Items { + a := &in.Items[i] + SetObjectDefaults_RoleBinding(a) + } +} diff --git a/pkg/master/BUILD b/pkg/master/BUILD index 54de9a3e371..7bb0fbd3605 100644 --- a/pkg/master/BUILD +++ b/pkg/master/BUILD @@ -80,6 +80,7 @@ go_library( "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", diff --git a/staging/BUILD b/staging/BUILD index f86f9b10acb..69d43d45536 100644 --- a/staging/BUILD +++ b/staging/BUILD @@ -50,6 +50,7 @@ filegroup( "//staging/src/k8s.io/api/imagepolicy/v1alpha1:all-srcs", "//staging/src/k8s.io/api/networking/v1:all-srcs", "//staging/src/k8s.io/api/policy/v1beta1:all-srcs", + "//staging/src/k8s.io/api/rbac/v1:all-srcs", "//staging/src/k8s.io/api/rbac/v1alpha1:all-srcs", "//staging/src/k8s.io/api/rbac/v1beta1:all-srcs", "//staging/src/k8s.io/api/scheduling/v1alpha1:all-srcs", @@ -163,6 +164,7 @@ filegroup( "//staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/listers/networking/v1:all-srcs", "//staging/src/k8s.io/client-go/listers/policy/v1beta1:all-srcs", + "//staging/src/k8s.io/client-go/listers/rbac/v1:all-srcs", "//staging/src/k8s.io/client-go/listers/rbac/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/listers/rbac/v1beta1:all-srcs", "//staging/src/k8s.io/client-go/listers/scheduling/v1alpha1:all-srcs", diff --git a/staging/src/k8s.io/api/rbac/v1/BUILD b/staging/src/k8s.io/api/rbac/v1/BUILD index 78423d91765..9ca847dc73e 100644 --- a/staging/src/k8s.io/api/rbac/v1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1/BUILD @@ -29,3 +29,16 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", ], ) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/api/rbac/v1/generated.pb.go b/staging/src/k8s.io/api/rbac/v1/generated.pb.go new file mode 100644 index 00000000000..dba0ec95bef --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/generated.pb.go @@ -0,0 +1,2555 @@ +/* +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. +*/ + +// Code generated by protoc-gen-gogo. +// source: k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1/generated.proto +// DO NOT EDIT! + +/* + Package v1 is a generated protocol buffer package. + + It is generated from these files: + k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1/generated.proto + + It has these top-level messages: + ClusterRole + ClusterRoleBinding + ClusterRoleBindingList + ClusterRoleList + PolicyRule + Role + RoleBinding + RoleBindingList + RoleList + RoleRef + Subject +*/ +package v1 + +import proto "github.com/gogo/protobuf/proto" +import fmt "fmt" +import math "math" + +import strings "strings" +import reflect "reflect" + +import io "io" + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package + +func (m *ClusterRole) Reset() { *m = ClusterRole{} } +func (*ClusterRole) ProtoMessage() {} +func (*ClusterRole) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{0} } + +func (m *ClusterRoleBinding) Reset() { *m = ClusterRoleBinding{} } +func (*ClusterRoleBinding) ProtoMessage() {} +func (*ClusterRoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{1} } + +func (m *ClusterRoleBindingList) Reset() { *m = ClusterRoleBindingList{} } +func (*ClusterRoleBindingList) ProtoMessage() {} +func (*ClusterRoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{2} } + +func (m *ClusterRoleList) Reset() { *m = ClusterRoleList{} } +func (*ClusterRoleList) ProtoMessage() {} +func (*ClusterRoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{3} } + +func (m *PolicyRule) Reset() { *m = PolicyRule{} } +func (*PolicyRule) ProtoMessage() {} +func (*PolicyRule) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } + +func (m *Role) Reset() { *m = Role{} } +func (*Role) ProtoMessage() {} +func (*Role) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } + +func (m *RoleBinding) Reset() { *m = RoleBinding{} } +func (*RoleBinding) ProtoMessage() {} +func (*RoleBinding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } + +func (m *RoleBindingList) Reset() { *m = RoleBindingList{} } +func (*RoleBindingList) ProtoMessage() {} +func (*RoleBindingList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } + +func (m *RoleList) Reset() { *m = RoleList{} } +func (*RoleList) ProtoMessage() {} +func (*RoleList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } + +func (m *RoleRef) Reset() { *m = RoleRef{} } +func (*RoleRef) ProtoMessage() {} +func (*RoleRef) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } + +func (m *Subject) Reset() { *m = Subject{} } +func (*Subject) ProtoMessage() {} +func (*Subject) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } + +func init() { + proto.RegisterType((*ClusterRole)(nil), "k8s.io.api.rbac.v1.ClusterRole") + proto.RegisterType((*ClusterRoleBinding)(nil), "k8s.io.api.rbac.v1.ClusterRoleBinding") + proto.RegisterType((*ClusterRoleBindingList)(nil), "k8s.io.api.rbac.v1.ClusterRoleBindingList") + proto.RegisterType((*ClusterRoleList)(nil), "k8s.io.api.rbac.v1.ClusterRoleList") + proto.RegisterType((*PolicyRule)(nil), "k8s.io.api.rbac.v1.PolicyRule") + proto.RegisterType((*Role)(nil), "k8s.io.api.rbac.v1.Role") + proto.RegisterType((*RoleBinding)(nil), "k8s.io.api.rbac.v1.RoleBinding") + proto.RegisterType((*RoleBindingList)(nil), "k8s.io.api.rbac.v1.RoleBindingList") + proto.RegisterType((*RoleList)(nil), "k8s.io.api.rbac.v1.RoleList") + proto.RegisterType((*RoleRef)(nil), "k8s.io.api.rbac.v1.RoleRef") + proto.RegisterType((*Subject)(nil), "k8s.io.api.rbac.v1.Subject") +} +func (m *ClusterRole) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterRole) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n1, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n1 + if len(m.Rules) > 0 { + for _, msg := range m.Rules { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *ClusterRoleBinding) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterRoleBinding) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n2, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n2 + if len(m.Subjects) > 0 { + for _, msg := range m.Subjects { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) + n3, err := m.RoleRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n3 + return i, nil +} + +func (m *ClusterRoleBindingList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterRoleBindingList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n4, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n4 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *ClusterRoleList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterRoleList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n5, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n5 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *PolicyRule) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PolicyRule) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + if len(m.Verbs) > 0 { + for _, s := range m.Verbs { + dAtA[i] = 0xa + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.APIGroups) > 0 { + for _, s := range m.APIGroups { + dAtA[i] = 0x12 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.Resources) > 0 { + for _, s := range m.Resources { + dAtA[i] = 0x1a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.ResourceNames) > 0 { + for _, s := range m.ResourceNames { + dAtA[i] = 0x22 + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + if len(m.NonResourceURLs) > 0 { + for _, s := range m.NonResourceURLs { + dAtA[i] = 0x2a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } + return i, nil +} + +func (m *Role) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Role) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n6, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n6 + if len(m.Rules) > 0 { + for _, msg := range m.Rules { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RoleBinding) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RoleBinding) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ObjectMeta.Size())) + n7, err := m.ObjectMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n7 + if len(m.Subjects) > 0 { + for _, msg := range m.Subjects { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.RoleRef.Size())) + n8, err := m.RoleRef.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n8 + return i, nil +} + +func (m *RoleBindingList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RoleBindingList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n9, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n9 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RoleList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RoleList) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(m.ListMeta.Size())) + n10, err := m.ListMeta.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n10 + if len(m.Items) > 0 { + for _, msg := range m.Items { + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(msg.Size())) + n, err := msg.MarshalTo(dAtA[i:]) + if err != nil { + return 0, err + } + i += n + } + } + return i, nil +} + +func (m *RoleRef) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *RoleRef) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup))) + i += copy(dAtA[i:], m.APIGroup) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i += copy(dAtA[i:], m.Kind) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + return i, nil +} + +func (m *Subject) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Subject) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i += copy(dAtA[i:], m.Kind) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIGroup))) + i += copy(dAtA[i:], m.APIGroup) + dAtA[i] = 0x1a + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i += copy(dAtA[i:], m.Name) + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Namespace))) + i += copy(dAtA[i:], m.Namespace) + return i, nil +} + +func encodeFixed64Generated(dAtA []byte, offset int, v uint64) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + dAtA[offset+4] = uint8(v >> 32) + dAtA[offset+5] = uint8(v >> 40) + dAtA[offset+6] = uint8(v >> 48) + dAtA[offset+7] = uint8(v >> 56) + return offset + 8 +} +func encodeFixed32Generated(dAtA []byte, offset int, v uint32) int { + dAtA[offset] = uint8(v) + dAtA[offset+1] = uint8(v >> 8) + dAtA[offset+2] = uint8(v >> 16) + dAtA[offset+3] = uint8(v >> 24) + return offset + 4 +} +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return offset + 1 +} +func (m *ClusterRole) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Rules) > 0 { + for _, e := range m.Rules { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ClusterRoleBinding) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Subjects) > 0 { + for _, e := range m.Subjects { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = m.RoleRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ClusterRoleBindingList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ClusterRoleList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PolicyRule) Size() (n int) { + var l int + _ = l + if len(m.Verbs) > 0 { + for _, s := range m.Verbs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.APIGroups) > 0 { + for _, s := range m.APIGroups { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Resources) > 0 { + for _, s := range m.Resources { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.ResourceNames) > 0 { + for _, s := range m.ResourceNames { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.NonResourceURLs) > 0 { + for _, s := range m.NonResourceURLs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *Role) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Rules) > 0 { + for _, e := range m.Rules { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RoleBinding) Size() (n int) { + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Subjects) > 0 { + for _, e := range m.Subjects { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = m.RoleRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *RoleBindingList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RoleList) Size() (n int) { + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *RoleRef) Size() (n int) { + var l int + _ = l + l = len(m.APIGroup) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Subject) Size() (n int) { + var l int + _ = l + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.APIGroup) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + for { + n++ + x >>= 7 + if x == 0 { + break + } + } + return n +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *ClusterRole) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterRole{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ClusterRoleBinding) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterRoleBinding{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Subjects:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Subjects), "Subject", "Subject", 1), `&`, ``, 1) + `,`, + `RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), "RoleRef", "RoleRef", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ClusterRoleBindingList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterRoleBindingList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "ClusterRoleBinding", "ClusterRoleBinding", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ClusterRoleList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterRoleList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "ClusterRole", "ClusterRole", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PolicyRule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&PolicyRule{`, + `Verbs:` + fmt.Sprintf("%v", this.Verbs) + `,`, + `APIGroups:` + fmt.Sprintf("%v", this.APIGroups) + `,`, + `Resources:` + fmt.Sprintf("%v", this.Resources) + `,`, + `ResourceNames:` + fmt.Sprintf("%v", this.ResourceNames) + `,`, + `NonResourceURLs:` + fmt.Sprintf("%v", this.NonResourceURLs) + `,`, + `}`, + }, "") + return s +} +func (this *Role) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Role{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Rules:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Rules), "PolicyRule", "PolicyRule", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RoleBinding) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RoleBinding{`, + `ObjectMeta:` + strings.Replace(strings.Replace(this.ObjectMeta.String(), "ObjectMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Subjects:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Subjects), "Subject", "Subject", 1), `&`, ``, 1) + `,`, + `RoleRef:` + strings.Replace(strings.Replace(this.RoleRef.String(), "RoleRef", "RoleRef", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RoleBindingList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RoleBindingList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "RoleBinding", "RoleBinding", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RoleList) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RoleList{`, + `ListMeta:` + strings.Replace(strings.Replace(this.ListMeta.String(), "ListMeta", "k8s_io_apimachinery_pkg_apis_meta_v1.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Items), "Role", "Role", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *RoleRef) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&RoleRef{`, + `APIGroup:` + fmt.Sprintf("%v", this.APIGroup) + `,`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `}`, + }, "") + return s +} +func (this *Subject) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Subject{`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `APIGroup:` + fmt.Sprintf("%v", this.APIGroup) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Namespace:` + fmt.Sprintf("%v", this.Namespace) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *ClusterRole) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterRole: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterRole: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rules = append(m.Rules, PolicyRule{}) + if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterRoleBinding) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterRoleBinding: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterRoleBinding: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Subjects", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Subjects = append(m.Subjects, Subject{}) + if err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterRoleBindingList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterRoleBindingList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterRoleBindingList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ClusterRoleBinding{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterRoleList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterRoleList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterRoleList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ClusterRole{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PolicyRule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PolicyRule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PolicyRule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Verbs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Verbs = append(m.Verbs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroups", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIGroups = append(m.APIGroups, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ResourceNames", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ResourceNames = append(m.ResourceNames, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NonResourceURLs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NonResourceURLs = append(m.NonResourceURLs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Role) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Role: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Role: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Rules", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Rules = append(m.Rules, PolicyRule{}) + if err := m.Rules[len(m.Rules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RoleBinding) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RoleBinding: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RoleBinding: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Subjects", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Subjects = append(m.Subjects, Subject{}) + if err := m.Subjects[len(m.Subjects)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RoleRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RoleRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RoleBindingList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RoleBindingList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RoleBindingList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, RoleBinding{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RoleList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RoleList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RoleList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Role{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *RoleRef) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: RoleRef: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: RoleRef: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroup", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIGroup = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Subject) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Subject: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Subject: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIGroup", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIGroup = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Namespace = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(dAtA[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/api/rbac/v1/generated.proto", fileDescriptorGenerated) +} + +var fileDescriptorGenerated = []byte{ + // 751 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x94, 0xcd, 0x6e, 0xd3, 0x4a, + 0x14, 0xc7, 0xe3, 0x7c, 0x28, 0xf1, 0xe4, 0x46, 0xb9, 0xf5, 0x95, 0xee, 0xb5, 0x2a, 0x5d, 0x27, + 0x0a, 0x2c, 0x2a, 0x95, 0xda, 0xb4, 0x20, 0x60, 0x83, 0x04, 0x66, 0x01, 0x55, 0x4b, 0xa8, 0x06, + 0xc1, 0x02, 0xb1, 0x60, 0xe2, 0x4c, 0xd3, 0x21, 0xf1, 0x87, 0x66, 0xc6, 0x91, 0x2a, 0x36, 0x3c, + 0x00, 0x0b, 0x24, 0x5e, 0x83, 0x15, 0x3b, 0x78, 0x82, 0x2c, 0xbb, 0xec, 0x2a, 0xa2, 0xe6, 0x41, + 0x40, 0x33, 0xb6, 0xe3, 0xa4, 0x69, 0xda, 0xac, 0x22, 0x21, 0xb1, 0x4a, 0xe6, 0x9c, 0xdf, 0xf9, + 0x9f, 0x0f, 0xcf, 0x1c, 0xf0, 0xa0, 0x7f, 0x8f, 0x99, 0xc4, 0xb7, 0xfa, 0x61, 0x07, 0x53, 0x0f, + 0x73, 0xcc, 0xac, 0x21, 0xf6, 0xba, 0x3e, 0xb5, 0x12, 0x07, 0x0a, 0x88, 0x45, 0x3b, 0xc8, 0xb1, + 0x86, 0xdb, 0x1d, 0xcc, 0xd1, 0xb6, 0xd5, 0xc3, 0x1e, 0xa6, 0x88, 0xe3, 0xae, 0x19, 0x50, 0x9f, + 0xfb, 0xda, 0x7f, 0x31, 0x68, 0xa2, 0x80, 0x98, 0x02, 0x34, 0x13, 0x70, 0x7d, 0xab, 0x47, 0xf8, + 0x51, 0xd8, 0x31, 0x1d, 0xdf, 0xb5, 0x7a, 0x7e, 0xcf, 0xb7, 0x24, 0xdf, 0x09, 0x0f, 0xe5, 0x49, + 0x1e, 0xe4, 0xbf, 0x58, 0x67, 0xfd, 0x76, 0x96, 0xd0, 0x45, 0xce, 0x11, 0xf1, 0x30, 0x3d, 0xb6, + 0x82, 0x7e, 0x4f, 0x18, 0x98, 0xe5, 0x62, 0x8e, 0xac, 0xe1, 0x5c, 0xf6, 0x75, 0x6b, 0x51, 0x14, + 0x0d, 0x3d, 0x4e, 0x5c, 0x3c, 0x17, 0x70, 0xe7, 0xaa, 0x00, 0xe6, 0x1c, 0x61, 0x17, 0xcd, 0xc5, + 0xdd, 0x5a, 0x14, 0x17, 0x72, 0x32, 0xb0, 0x88, 0xc7, 0x19, 0xa7, 0xe7, 0x83, 0x5a, 0x5f, 0x15, + 0x50, 0x7d, 0x34, 0x08, 0x19, 0xc7, 0x14, 0xfa, 0x03, 0xac, 0xbd, 0x01, 0x15, 0xd1, 0x48, 0x17, + 0x71, 0xa4, 0x2b, 0x4d, 0x65, 0xa3, 0xba, 0x73, 0xd3, 0xcc, 0xc6, 0x37, 0xd1, 0x35, 0x83, 0x7e, + 0x4f, 0x18, 0x98, 0x29, 0x68, 0x73, 0xb8, 0x6d, 0x3e, 0xeb, 0xbc, 0xc5, 0x0e, 0x7f, 0x8a, 0x39, + 0xb2, 0xb5, 0xd1, 0xb8, 0x91, 0x8b, 0xc6, 0x0d, 0x90, 0xd9, 0xe0, 0x44, 0x55, 0x7b, 0x02, 0x4a, + 0x34, 0x1c, 0x60, 0xa6, 0xe7, 0x9b, 0x85, 0x8d, 0xea, 0xce, 0x35, 0x73, 0xc1, 0xd7, 0x31, 0x0f, + 0xfc, 0x01, 0x71, 0x8e, 0x61, 0x38, 0xc0, 0x76, 0x2d, 0x51, 0x2c, 0x89, 0x13, 0x83, 0xb1, 0x40, + 0xeb, 0x53, 0x1e, 0x68, 0x53, 0xb5, 0xdb, 0xc4, 0xeb, 0x12, 0xaf, 0xb7, 0x82, 0x16, 0xda, 0xa0, + 0xc2, 0x42, 0xe9, 0x48, 0xbb, 0x68, 0x2e, 0xec, 0xe2, 0x79, 0x0c, 0xda, 0x7f, 0x27, 0x8a, 0x95, + 0xc4, 0xc0, 0xe0, 0x44, 0x43, 0xdb, 0x03, 0x65, 0xea, 0x0f, 0x30, 0xc4, 0x87, 0x7a, 0x41, 0x16, + 0xbc, 0x58, 0x0e, 0xc6, 0x9c, 0x5d, 0x4f, 0xe4, 0xca, 0x89, 0x01, 0xa6, 0x0a, 0xad, 0x91, 0x02, + 0xfe, 0x9d, 0x9f, 0xca, 0x3e, 0x61, 0x5c, 0x7b, 0x3d, 0x37, 0x19, 0x73, 0xb9, 0xc9, 0x88, 0x68, + 0x39, 0x97, 0x49, 0x17, 0xa9, 0x65, 0x6a, 0x2a, 0x07, 0xa0, 0x44, 0x38, 0x76, 0xd3, 0x91, 0x6c, + 0x2e, 0xec, 0x61, 0xbe, 0xba, 0xec, 0x03, 0xef, 0x0a, 0x05, 0x18, 0x0b, 0xb5, 0xbe, 0x29, 0xa0, + 0x3e, 0x05, 0xaf, 0xa0, 0x87, 0xdd, 0xd9, 0x1e, 0xae, 0x2f, 0xd5, 0xc3, 0xc5, 0xc5, 0xff, 0x54, + 0x00, 0xc8, 0xae, 0xb0, 0xd6, 0x00, 0xa5, 0x21, 0xa6, 0x1d, 0xa6, 0x2b, 0xcd, 0xc2, 0x86, 0x6a, + 0xab, 0x82, 0x7f, 0x29, 0x0c, 0x30, 0xb6, 0x6b, 0x9b, 0x40, 0x45, 0x01, 0x79, 0x4c, 0xfd, 0x30, + 0x88, 0xd3, 0xab, 0x76, 0x2d, 0x1a, 0x37, 0xd4, 0x87, 0x07, 0xbb, 0xb1, 0x11, 0x66, 0x7e, 0x01, + 0x53, 0xcc, 0xfc, 0x90, 0x3a, 0x98, 0xe9, 0x85, 0x0c, 0x86, 0xa9, 0x11, 0x66, 0x7e, 0xed, 0x2e, + 0xa8, 0xa5, 0x87, 0x36, 0x72, 0x31, 0xd3, 0x8b, 0x32, 0x60, 0x2d, 0x1a, 0x37, 0x6a, 0x70, 0xda, + 0x01, 0x67, 0x39, 0xed, 0x3e, 0xa8, 0x7b, 0xbe, 0x97, 0x22, 0x2f, 0xe0, 0x3e, 0xd3, 0x4b, 0x32, + 0xf4, 0x9f, 0x68, 0xdc, 0xa8, 0xb7, 0x67, 0x5d, 0xf0, 0x3c, 0xdb, 0xfa, 0xa2, 0x80, 0xe2, 0x6f, + 0xb7, 0x54, 0x3e, 0xe4, 0x41, 0xf5, 0xcf, 0x36, 0x99, 0x6c, 0x13, 0xf1, 0x04, 0x57, 0xbb, 0x46, + 0x96, 0x7e, 0x82, 0x57, 0xef, 0x8f, 0xcf, 0x0a, 0xa8, 0xac, 0x68, 0x71, 0xd8, 0xb3, 0x55, 0xff, + 0x7f, 0x79, 0xd5, 0x17, 0x97, 0xfb, 0x0e, 0xa4, 0xf3, 0xd7, 0x6e, 0x80, 0x4a, 0xfa, 0xd8, 0x65, + 0xb1, 0x6a, 0x96, 0x3c, 0xdd, 0x07, 0x70, 0x42, 0x68, 0x4d, 0x50, 0xec, 0x13, 0xaf, 0xab, 0xe7, + 0x25, 0xf9, 0x57, 0x42, 0x16, 0xf7, 0x88, 0xd7, 0x85, 0xd2, 0x23, 0x08, 0x0f, 0xb9, 0x58, 0x5e, + 0x88, 0x29, 0x42, 0x3c, 0x73, 0x28, 0x3d, 0x62, 0x56, 0xe5, 0xe4, 0x32, 0x4d, 0xf4, 0x94, 0x85, + 0x7a, 0xd3, 0xf5, 0xe5, 0x97, 0xa9, 0xef, 0xf2, 0xec, 0x9a, 0x05, 0x54, 0xf1, 0xcb, 0x02, 0xe4, + 0x60, 0xbd, 0x28, 0xb1, 0xb5, 0x04, 0x53, 0xdb, 0xa9, 0x03, 0x66, 0x8c, 0xbd, 0x35, 0x3a, 0x33, + 0x72, 0x27, 0x67, 0x46, 0xee, 0xf4, 0xcc, 0xc8, 0xbd, 0x8f, 0x0c, 0x65, 0x14, 0x19, 0xca, 0x49, + 0x64, 0x28, 0xa7, 0x91, 0xa1, 0x7c, 0x8f, 0x0c, 0xe5, 0xe3, 0x0f, 0x23, 0xf7, 0xaa, 0x9c, 0x4c, + 0xfd, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x74, 0x24, 0x6a, 0xfa, 0x45, 0x0a, 0x00, 0x00, +} diff --git a/staging/src/k8s.io/api/rbac/v1/generated.proto b/staging/src/k8s.io/api/rbac/v1/generated.proto new file mode 100644 index 00000000000..29aa3d5eebd --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/generated.proto @@ -0,0 +1,182 @@ +/* +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. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package k8s.io.api.rbac.v1; + +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1"; + +// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding. +message ClusterRole { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Rules holds all the PolicyRules for this ClusterRole + repeated PolicyRule rules = 2; +} + +// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, +// and adds who information via Subject. +message ClusterRoleBinding { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Subjects holds references to the objects the role applies to. + repeated Subject subjects = 2; + + // RoleRef can only reference a ClusterRole in the global namespace. + // If the RoleRef cannot be resolved, the Authorizer must return an error. + optional RoleRef roleRef = 3; +} + +// ClusterRoleBindingList is a collection of ClusterRoleBindings +message ClusterRoleBindingList { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of ClusterRoleBindings + repeated ClusterRoleBinding items = 2; +} + +// ClusterRoleList is a collection of ClusterRoles +message ClusterRoleList { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of ClusterRoles + repeated ClusterRole items = 2; +} + +// PolicyRule holds information that describes a policy rule, but does not contain information +// about who the rule applies to or which namespace the rule applies to. +message PolicyRule { + // Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds. + repeated string verbs = 1; + + // APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of + // the enumerated resources in any API group will be allowed. + // +optional + repeated string apiGroups = 2; + + // Resources is a list of resources this rule applies to. ResourceAll represents all resources. + // +optional + repeated string resources = 3; + + // ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. + // +optional + repeated string resourceNames = 4; + + // NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path + // Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. + // Rules can either apply to API resources (such as "pods" or "secrets") or non-resource URL paths (such as "/api"), but not both. + // +optional + repeated string nonResourceURLs = 5; +} + +// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding. +message Role { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Rules holds all the PolicyRules for this Role + repeated PolicyRule rules = 2; +} + +// RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. +// It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given +// namespace only have effect in that namespace. +message RoleBinding { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Subjects holds references to the objects the role applies to. + repeated Subject subjects = 2; + + // RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. + // If the RoleRef cannot be resolved, the Authorizer must return an error. + optional RoleRef roleRef = 3; +} + +// RoleBindingList is a collection of RoleBindings +message RoleBindingList { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of RoleBindings + repeated RoleBinding items = 2; +} + +// RoleList is a collection of Roles +message RoleList { + // Standard object's metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is a list of Roles + repeated Role items = 2; +} + +// RoleRef contains information that points to the role being used +message RoleRef { + // APIGroup is the group for the resource being referenced + optional string apiGroup = 1; + + // Kind is the type of resource being referenced + optional string kind = 2; + + // Name is the name of resource being referenced + optional string name = 3; +} + +// Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, +// or a value for non-objects such as user and group names. +message Subject { + // Kind of object being referenced. Values defined by this API group are "User", "Group", and "ServiceAccount". + // If the Authorizer does not recognized the kind value, the Authorizer should report an error. + optional string kind = 1; + + // APIGroup holds the API group of the referenced subject. + // Defaults to "" for ServiceAccount subjects. + // Defaults to "rbac.authorization.k8s.io" for User and Group subjects. + // +optional + optional string apiGroup = 2; + + // Name of the object being referenced. + optional string name = 3; + + // Namespace of the referenced object. If the object kind is non-namespace, such as "User" or "Group", and this value is not empty + // the Authorizer should report an error. + // +optional + optional string namespace = 4; +} + diff --git a/staging/src/k8s.io/api/rbac/v1/types.generated.go b/staging/src/k8s.io/api/rbac/v1/types.generated.go new file mode 100644 index 00000000000..b24a993e2f8 --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/types.generated.go @@ -0,0 +1,4879 @@ +/* +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. +*/ + +// ************************************************************ +// DO NOT EDIT. +// THIS FILE IS AUTO-GENERATED BY codecgen. +// ************************************************************ + +package v1 + +import ( + "errors" + "fmt" + codec1978 "github.com/ugorji/go/codec" + pkg1_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + pkg2_types "k8s.io/apimachinery/pkg/types" + "reflect" + "runtime" + time "time" +) + +const ( + // ----- content types ---- + codecSelferC_UTF81234 = 1 + codecSelferC_RAW1234 = 0 + // ----- value types used ---- + codecSelferValueTypeArray1234 = 10 + codecSelferValueTypeMap1234 = 9 + // ----- containerStateValues ---- + codecSelfer_containerMapKey1234 = 2 + codecSelfer_containerMapValue1234 = 3 + codecSelfer_containerMapEnd1234 = 4 + codecSelfer_containerArrayElem1234 = 6 + codecSelfer_containerArrayEnd1234 = 7 +) + +var ( + codecSelferBitsize1234 = uint8(reflect.TypeOf(uint(0)).Bits()) + codecSelferOnlyMapOrArrayEncodeToStructErr1234 = errors.New(`only encoded map or array can be decoded into a struct`) +) + +type codecSelfer1234 struct{} + +func init() { + if codec1978.GenVersion != 5 { + _, file, _, _ := runtime.Caller(0) + err := fmt.Errorf("codecgen version mismatch: current: %v, need %v. Re-generate file: %v", + 5, codec1978.GenVersion, file) + panic(err) + } + if false { // reference the types, but skip this branch at build/run time + var v0 pkg1_v1.TypeMeta + var v1 pkg2_types.UID + var v2 time.Time + _, _, _ = v0, v1, v2 + } +} + +func (x *PolicyRule) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [5]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[1] = len(x.APIGroups) != 0 + yyq2[2] = len(x.Resources) != 0 + yyq2[3] = len(x.ResourceNames) != 0 + yyq2[4] = len(x.NonResourceURLs) != 0 + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(5) + } else { + yynn2 = 1 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Verbs == nil { + r.EncodeNil() + } else { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + z.F.EncSliceStringV(x.Verbs, false, e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("verbs")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Verbs == nil { + r.EncodeNil() + } else { + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + z.F.EncSliceStringV(x.Verbs, false, e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + if x.APIGroups == nil { + r.EncodeNil() + } else { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + z.F.EncSliceStringV(x.APIGroups, false, e) + } + } + } else { + r.EncodeNil() + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiGroups")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.APIGroups == nil { + r.EncodeNil() + } else { + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + z.F.EncSliceStringV(x.APIGroups, false, e) + } + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + if x.Resources == nil { + r.EncodeNil() + } else { + yym10 := z.EncBinary() + _ = yym10 + if false { + } else { + z.F.EncSliceStringV(x.Resources, false, e) + } + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("resources")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Resources == nil { + r.EncodeNil() + } else { + yym11 := z.EncBinary() + _ = yym11 + if false { + } else { + z.F.EncSliceStringV(x.Resources, false, e) + } + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[3] { + if x.ResourceNames == nil { + r.EncodeNil() + } else { + yym13 := z.EncBinary() + _ = yym13 + if false { + } else { + z.F.EncSliceStringV(x.ResourceNames, false, e) + } + } + } else { + r.EncodeNil() + } + } else { + if yyq2[3] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("resourceNames")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.ResourceNames == nil { + r.EncodeNil() + } else { + yym14 := z.EncBinary() + _ = yym14 + if false { + } else { + z.F.EncSliceStringV(x.ResourceNames, false, e) + } + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[4] { + if x.NonResourceURLs == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + z.F.EncSliceStringV(x.NonResourceURLs, false, e) + } + } + } else { + r.EncodeNil() + } + } else { + if yyq2[4] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("nonResourceURLs")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.NonResourceURLs == nil { + r.EncodeNil() + } else { + yym17 := z.EncBinary() + _ = yym17 + if false { + } else { + z.F.EncSliceStringV(x.NonResourceURLs, false, e) + } + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *PolicyRule) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *PolicyRule) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "verbs": + if r.TryDecodeAsNil() { + x.Verbs = nil + } else { + yyv4 := &x.Verbs + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + z.F.DecSliceStringX(yyv4, false, d) + } + } + case "apiGroups": + if r.TryDecodeAsNil() { + x.APIGroups = nil + } else { + yyv6 := &x.APIGroups + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + z.F.DecSliceStringX(yyv6, false, d) + } + } + case "resources": + if r.TryDecodeAsNil() { + x.Resources = nil + } else { + yyv8 := &x.Resources + yym9 := z.DecBinary() + _ = yym9 + if false { + } else { + z.F.DecSliceStringX(yyv8, false, d) + } + } + case "resourceNames": + if r.TryDecodeAsNil() { + x.ResourceNames = nil + } else { + yyv10 := &x.ResourceNames + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + z.F.DecSliceStringX(yyv10, false, d) + } + } + case "nonResourceURLs": + if r.TryDecodeAsNil() { + x.NonResourceURLs = nil + } else { + yyv12 := &x.NonResourceURLs + yym13 := z.DecBinary() + _ = yym13 + if false { + } else { + z.F.DecSliceStringX(yyv12, false, d) + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *PolicyRule) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj14 int + var yyb14 bool + var yyhl14 bool = l >= 0 + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l + } else { + yyb14 = r.CheckBreak() + } + if yyb14 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Verbs = nil + } else { + yyv15 := &x.Verbs + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + z.F.DecSliceStringX(yyv15, false, d) + } + } + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l + } else { + yyb14 = r.CheckBreak() + } + if yyb14 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIGroups = nil + } else { + yyv17 := &x.APIGroups + yym18 := z.DecBinary() + _ = yym18 + if false { + } else { + z.F.DecSliceStringX(yyv17, false, d) + } + } + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l + } else { + yyb14 = r.CheckBreak() + } + if yyb14 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Resources = nil + } else { + yyv19 := &x.Resources + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + z.F.DecSliceStringX(yyv19, false, d) + } + } + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l + } else { + yyb14 = r.CheckBreak() + } + if yyb14 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ResourceNames = nil + } else { + yyv21 := &x.ResourceNames + yym22 := z.DecBinary() + _ = yym22 + if false { + } else { + z.F.DecSliceStringX(yyv21, false, d) + } + } + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l + } else { + yyb14 = r.CheckBreak() + } + if yyb14 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.NonResourceURLs = nil + } else { + yyv23 := &x.NonResourceURLs + yym24 := z.DecBinary() + _ = yym24 + if false { + } else { + z.F.DecSliceStringX(yyv23, false, d) + } + } + for { + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l + } else { + yyb14 = r.CheckBreak() + } + if yyb14 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj14-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *Subject) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[1] = x.APIGroup != "" + yyq2[3] = x.Namespace != "" + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 2 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiGroup")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym10 := z.EncBinary() + _ = yym10 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Name)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("name")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym11 := z.EncBinary() + _ = yym11 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Name)) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[3] { + yym13 := z.EncBinary() + _ = yym13 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Namespace)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[3] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("namespace")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym14 := z.EncBinary() + _ = yym14 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Namespace)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *Subject) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *Subject) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiGroup": + if r.TryDecodeAsNil() { + x.APIGroup = "" + } else { + yyv6 := &x.APIGroup + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "name": + if r.TryDecodeAsNil() { + x.Name = "" + } else { + yyv8 := &x.Name + yym9 := z.DecBinary() + _ = yym9 + if false { + } else { + *((*string)(yyv8)) = r.DecodeString() + } + } + case "namespace": + if r.TryDecodeAsNil() { + x.Namespace = "" + } else { + yyv10 := &x.Namespace + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + *((*string)(yyv10)) = r.DecodeString() + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *Subject) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIGroup = "" + } else { + yyv15 := &x.APIGroup + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Name = "" + } else { + yyv17 := &x.Name + yym18 := z.DecBinary() + _ = yym18 + if false { + } else { + *((*string)(yyv17)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Namespace = "" + } else { + yyv19 := &x.Namespace + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + *((*string)(yyv19)) = r.DecodeString() + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *RoleRef) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [3]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(3) + } else { + yynn2 = 3 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiGroup")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIGroup)) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym10 := z.EncBinary() + _ = yym10 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Name)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("name")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym11 := z.EncBinary() + _ = yym11 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Name)) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *RoleRef) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *RoleRef) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "apiGroup": + if r.TryDecodeAsNil() { + x.APIGroup = "" + } else { + yyv4 := &x.APIGroup + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv6 := &x.Kind + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "name": + if r.TryDecodeAsNil() { + x.Name = "" + } else { + yyv8 := &x.Name + yym9 := z.DecBinary() + _ = yym9 + if false { + } else { + *((*string)(yyv8)) = r.DecodeString() + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *RoleRef) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj10 int + var yyb10 bool + var yyhl10 bool = l >= 0 + yyj10++ + if yyhl10 { + yyb10 = yyj10 > l + } else { + yyb10 = r.CheckBreak() + } + if yyb10 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIGroup = "" + } else { + yyv11 := &x.APIGroup + yym12 := z.DecBinary() + _ = yym12 + if false { + } else { + *((*string)(yyv11)) = r.DecodeString() + } + } + yyj10++ + if yyhl10 { + yyb10 = yyj10 > l + } else { + yyb10 = r.CheckBreak() + } + if yyb10 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj10++ + if yyhl10 { + yyb10 = yyj10 > l + } else { + yyb10 = r.CheckBreak() + } + if yyb10 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Name = "" + } else { + yyv15 := &x.Name + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + for { + yyj10++ + if yyhl10 { + yyb10 = yyj10 > l + } else { + yyb10 = r.CheckBreak() + } + if yyb10 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj10-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *Role) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 1 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ObjectMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ObjectMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Rules == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSlicePolicyRule(([]PolicyRule)(x.Rules), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("rules")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Rules == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSlicePolicyRule(([]PolicyRule)(x.Rules), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *Role) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *Role) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv8 := &x.ObjectMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "rules": + if r.TryDecodeAsNil() { + x.Rules = nil + } else { + yyv10 := &x.Rules + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSlicePolicyRule((*[]PolicyRule)(yyv10), d) + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *Role) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv15 := &x.APIVersion + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv17 := &x.ObjectMeta + yym18 := z.DecBinary() + _ = yym18 + if false { + } else if z.HasExtensions() && z.DecExt(yyv17) { + } else { + z.DecFallback(yyv17, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Rules = nil + } else { + yyv19 := &x.Rules + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + h.decSlicePolicyRule((*[]PolicyRule)(yyv19), d) + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *RoleBinding) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [5]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(5) + } else { + yynn2 = 2 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ObjectMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ObjectMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Subjects == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSliceSubject(([]Subject)(x.Subjects), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("subjects")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Subjects == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSliceSubject(([]Subject)(x.Subjects), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy18 := &x.RoleRef + yy18.CodecEncodeSelf(e) + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("roleRef")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy20 := &x.RoleRef + yy20.CodecEncodeSelf(e) + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *RoleBinding) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *RoleBinding) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv8 := &x.ObjectMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "subjects": + if r.TryDecodeAsNil() { + x.Subjects = nil + } else { + yyv10 := &x.Subjects + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSliceSubject((*[]Subject)(yyv10), d) + } + } + case "roleRef": + if r.TryDecodeAsNil() { + x.RoleRef = RoleRef{} + } else { + yyv12 := &x.RoleRef + yyv12.CodecDecodeSelf(d) + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *RoleBinding) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj13 int + var yyb13 bool + var yyhl13 bool = l >= 0 + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv14 := &x.Kind + yym15 := z.DecBinary() + _ = yym15 + if false { + } else { + *((*string)(yyv14)) = r.DecodeString() + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv16 := &x.APIVersion + yym17 := z.DecBinary() + _ = yym17 + if false { + } else { + *((*string)(yyv16)) = r.DecodeString() + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv18 := &x.ObjectMeta + yym19 := z.DecBinary() + _ = yym19 + if false { + } else if z.HasExtensions() && z.DecExt(yyv18) { + } else { + z.DecFallback(yyv18, false) + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Subjects = nil + } else { + yyv20 := &x.Subjects + yym21 := z.DecBinary() + _ = yym21 + if false { + } else { + h.decSliceSubject((*[]Subject)(yyv20), d) + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.RoleRef = RoleRef{} + } else { + yyv22 := &x.RoleRef + yyv22.CodecDecodeSelf(d) + } + for { + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj13-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *RoleBindingList) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 1 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ListMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ListMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSliceRoleBinding(([]RoleBinding)(x.Items), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("items")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSliceRoleBinding(([]RoleBinding)(x.Items), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *RoleBindingList) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *RoleBindingList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv8 := &x.ListMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "items": + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv10 := &x.Items + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSliceRoleBinding((*[]RoleBinding)(yyv10), d) + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *RoleBindingList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv15 := &x.APIVersion + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv17 := &x.ListMeta + yym18 := z.DecBinary() + _ = yym18 + if false { + } else if z.HasExtensions() && z.DecExt(yyv17) { + } else { + z.DecFallback(yyv17, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv19 := &x.Items + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + h.decSliceRoleBinding((*[]RoleBinding)(yyv19), d) + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *RoleList) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 1 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ListMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ListMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSliceRole(([]Role)(x.Items), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("items")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSliceRole(([]Role)(x.Items), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *RoleList) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *RoleList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv8 := &x.ListMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "items": + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv10 := &x.Items + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSliceRole((*[]Role)(yyv10), d) + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *RoleList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv15 := &x.APIVersion + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv17 := &x.ListMeta + yym18 := z.DecBinary() + _ = yym18 + if false { + } else if z.HasExtensions() && z.DecExt(yyv17) { + } else { + z.DecFallback(yyv17, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv19 := &x.Items + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + h.decSliceRole((*[]Role)(yyv19), d) + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *ClusterRole) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 1 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ObjectMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ObjectMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Rules == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSlicePolicyRule(([]PolicyRule)(x.Rules), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("rules")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Rules == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSlicePolicyRule(([]PolicyRule)(x.Rules), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *ClusterRole) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *ClusterRole) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv8 := &x.ObjectMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "rules": + if r.TryDecodeAsNil() { + x.Rules = nil + } else { + yyv10 := &x.Rules + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSlicePolicyRule((*[]PolicyRule)(yyv10), d) + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *ClusterRole) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv15 := &x.APIVersion + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv17 := &x.ObjectMeta + yym18 := z.DecBinary() + _ = yym18 + if false { + } else if z.HasExtensions() && z.DecExt(yyv17) { + } else { + z.DecFallback(yyv17, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Rules = nil + } else { + yyv19 := &x.Rules + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + h.decSlicePolicyRule((*[]PolicyRule)(yyv19), d) + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *ClusterRoleBinding) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [5]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(5) + } else { + yynn2 = 2 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ObjectMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ObjectMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Subjects == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSliceSubject(([]Subject)(x.Subjects), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("subjects")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Subjects == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSliceSubject(([]Subject)(x.Subjects), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy18 := &x.RoleRef + yy18.CodecEncodeSelf(e) + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("roleRef")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy20 := &x.RoleRef + yy20.CodecEncodeSelf(e) + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *ClusterRoleBinding) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *ClusterRoleBinding) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv8 := &x.ObjectMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "subjects": + if r.TryDecodeAsNil() { + x.Subjects = nil + } else { + yyv10 := &x.Subjects + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSliceSubject((*[]Subject)(yyv10), d) + } + } + case "roleRef": + if r.TryDecodeAsNil() { + x.RoleRef = RoleRef{} + } else { + yyv12 := &x.RoleRef + yyv12.CodecDecodeSelf(d) + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *ClusterRoleBinding) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj13 int + var yyb13 bool + var yyhl13 bool = l >= 0 + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv14 := &x.Kind + yym15 := z.DecBinary() + _ = yym15 + if false { + } else { + *((*string)(yyv14)) = r.DecodeString() + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv16 := &x.APIVersion + yym17 := z.DecBinary() + _ = yym17 + if false { + } else { + *((*string)(yyv16)) = r.DecodeString() + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ObjectMeta = pkg1_v1.ObjectMeta{} + } else { + yyv18 := &x.ObjectMeta + yym19 := z.DecBinary() + _ = yym19 + if false { + } else if z.HasExtensions() && z.DecExt(yyv18) { + } else { + z.DecFallback(yyv18, false) + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Subjects = nil + } else { + yyv20 := &x.Subjects + yym21 := z.DecBinary() + _ = yym21 + if false { + } else { + h.decSliceSubject((*[]Subject)(yyv20), d) + } + } + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.RoleRef = RoleRef{} + } else { + yyv22 := &x.RoleRef + yyv22.CodecDecodeSelf(d) + } + for { + yyj13++ + if yyhl13 { + yyb13 = yyj13 > l + } else { + yyb13 = r.CheckBreak() + } + if yyb13 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj13-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *ClusterRoleBindingList) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 1 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ListMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ListMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSliceClusterRoleBinding(([]ClusterRoleBinding)(x.Items), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("items")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSliceClusterRoleBinding(([]ClusterRoleBinding)(x.Items), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *ClusterRoleBindingList) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *ClusterRoleBindingList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv8 := &x.ListMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "items": + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv10 := &x.Items + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSliceClusterRoleBinding((*[]ClusterRoleBinding)(yyv10), d) + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *ClusterRoleBindingList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv15 := &x.APIVersion + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv17 := &x.ListMeta + yym18 := z.DecBinary() + _ = yym18 + if false { + } else if z.HasExtensions() && z.DecExt(yyv17) { + } else { + z.DecFallback(yyv17, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv19 := &x.Items + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + h.decSliceClusterRoleBinding((*[]ClusterRoleBinding)(yyv19), d) + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x *ClusterRoleList) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[0] = x.Kind != "" + yyq2[1] = x.APIVersion != "" + yyq2[2] = true + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 1 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[0] { + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("kind")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.Kind)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[1] { + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } else { + r.EncodeString(codecSelferC_UTF81234, "") + } + } else { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("apiVersion")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yy10 := &x.ListMeta + yym11 := z.EncBinary() + _ = yym11 + if false { + } else if z.HasExtensions() && z.EncExt(yy10) { + } else { + z.EncFallback(yy10) + } + } else { + r.EncodeNil() + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("metadata")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yy12 := &x.ListMeta + yym13 := z.EncBinary() + _ = yym13 + if false { + } else if z.HasExtensions() && z.EncExt(yy12) { + } else { + z.EncFallback(yy12) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym15 := z.EncBinary() + _ = yym15 + if false { + } else { + h.encSliceClusterRole(([]ClusterRole)(x.Items), e) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("items")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Items == nil { + r.EncodeNil() + } else { + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + h.encSliceClusterRole(([]ClusterRole)(x.Items), e) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *ClusterRoleList) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *ClusterRoleList) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "kind": + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv4 := &x.Kind + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "apiVersion": + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv6 := &x.APIVersion + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "metadata": + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv8 := &x.ListMeta + yym9 := z.DecBinary() + _ = yym9 + if false { + } else if z.HasExtensions() && z.DecExt(yyv8) { + } else { + z.DecFallback(yyv8, false) + } + } + case "items": + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv10 := &x.Items + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + h.decSliceClusterRole((*[]ClusterRole)(yyv10), d) + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *ClusterRoleList) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Kind = "" + } else { + yyv13 := &x.Kind + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.APIVersion = "" + } else { + yyv15 := &x.APIVersion + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ListMeta = pkg1_v1.ListMeta{} + } else { + yyv17 := &x.ListMeta + yym18 := z.DecBinary() + _ = yym18 + if false { + } else if z.HasExtensions() && z.DecExt(yyv17) { + } else { + z.DecFallback(yyv17, false) + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.Items = nil + } else { + yyv19 := &x.Items + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + h.decSliceClusterRole((*[]ClusterRole)(yyv19), d) + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) encSlicePolicyRule(v []PolicyRule, e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + r.EncodeArrayStart(len(v)) + for _, yyv1 := range v { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy2 := &yyv1 + yy2.CodecEncodeSelf(e) + } + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) decSlicePolicyRule(v *[]PolicyRule, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + + yyv1 := *v + yyh1, yyl1 := z.DecSliceHelperStart() + var yyc1 bool + _ = yyc1 + if yyl1 == 0 { + if yyv1 == nil { + yyv1 = []PolicyRule{} + yyc1 = true + } else if len(yyv1) != 0 { + yyv1 = yyv1[:0] + yyc1 = true + } + } else if yyl1 > 0 { + var yyrr1, yyrl1 int + var yyrt1 bool + _, _ = yyrl1, yyrt1 + yyrr1 = yyl1 // len(yyv1) + if yyl1 > cap(yyv1) { + + yyrg1 := len(yyv1) > 0 + yyv21 := yyv1 + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 120) + if yyrt1 { + if yyrl1 <= cap(yyv1) { + yyv1 = yyv1[:yyrl1] + } else { + yyv1 = make([]PolicyRule, yyrl1) + } + } else { + yyv1 = make([]PolicyRule, yyrl1) + } + yyc1 = true + yyrr1 = len(yyv1) + if yyrg1 { + copy(yyv1, yyv21) + } + } else if yyl1 != len(yyv1) { + yyv1 = yyv1[:yyl1] + yyc1 = true + } + yyj1 := 0 + for ; yyj1 < yyrr1; yyj1++ { + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = PolicyRule{} + } else { + yyv2 := &yyv1[yyj1] + yyv2.CodecDecodeSelf(d) + } + + } + if yyrt1 { + for ; yyj1 < yyl1; yyj1++ { + yyv1 = append(yyv1, PolicyRule{}) + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = PolicyRule{} + } else { + yyv3 := &yyv1[yyj1] + yyv3.CodecDecodeSelf(d) + } + + } + } + + } else { + yyj1 := 0 + for ; !r.CheckBreak(); yyj1++ { + + if yyj1 >= len(yyv1) { + yyv1 = append(yyv1, PolicyRule{}) // var yyz1 PolicyRule + yyc1 = true + } + yyh1.ElemContainerState(yyj1) + if yyj1 < len(yyv1) { + if r.TryDecodeAsNil() { + yyv1[yyj1] = PolicyRule{} + } else { + yyv4 := &yyv1[yyj1] + yyv4.CodecDecodeSelf(d) + } + + } else { + z.DecSwallow() + } + + } + if yyj1 < len(yyv1) { + yyv1 = yyv1[:yyj1] + yyc1 = true + } else if yyj1 == 0 && yyv1 == nil { + yyv1 = []PolicyRule{} + yyc1 = true + } + } + yyh1.End() + if yyc1 { + *v = yyv1 + } +} + +func (x codecSelfer1234) encSliceSubject(v []Subject, e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + r.EncodeArrayStart(len(v)) + for _, yyv1 := range v { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy2 := &yyv1 + yy2.CodecEncodeSelf(e) + } + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) decSliceSubject(v *[]Subject, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + + yyv1 := *v + yyh1, yyl1 := z.DecSliceHelperStart() + var yyc1 bool + _ = yyc1 + if yyl1 == 0 { + if yyv1 == nil { + yyv1 = []Subject{} + yyc1 = true + } else if len(yyv1) != 0 { + yyv1 = yyv1[:0] + yyc1 = true + } + } else if yyl1 > 0 { + var yyrr1, yyrl1 int + var yyrt1 bool + _, _ = yyrl1, yyrt1 + yyrr1 = yyl1 // len(yyv1) + if yyl1 > cap(yyv1) { + + yyrg1 := len(yyv1) > 0 + yyv21 := yyv1 + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 64) + if yyrt1 { + if yyrl1 <= cap(yyv1) { + yyv1 = yyv1[:yyrl1] + } else { + yyv1 = make([]Subject, yyrl1) + } + } else { + yyv1 = make([]Subject, yyrl1) + } + yyc1 = true + yyrr1 = len(yyv1) + if yyrg1 { + copy(yyv1, yyv21) + } + } else if yyl1 != len(yyv1) { + yyv1 = yyv1[:yyl1] + yyc1 = true + } + yyj1 := 0 + for ; yyj1 < yyrr1; yyj1++ { + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = Subject{} + } else { + yyv2 := &yyv1[yyj1] + yyv2.CodecDecodeSelf(d) + } + + } + if yyrt1 { + for ; yyj1 < yyl1; yyj1++ { + yyv1 = append(yyv1, Subject{}) + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = Subject{} + } else { + yyv3 := &yyv1[yyj1] + yyv3.CodecDecodeSelf(d) + } + + } + } + + } else { + yyj1 := 0 + for ; !r.CheckBreak(); yyj1++ { + + if yyj1 >= len(yyv1) { + yyv1 = append(yyv1, Subject{}) // var yyz1 Subject + yyc1 = true + } + yyh1.ElemContainerState(yyj1) + if yyj1 < len(yyv1) { + if r.TryDecodeAsNil() { + yyv1[yyj1] = Subject{} + } else { + yyv4 := &yyv1[yyj1] + yyv4.CodecDecodeSelf(d) + } + + } else { + z.DecSwallow() + } + + } + if yyj1 < len(yyv1) { + yyv1 = yyv1[:yyj1] + yyc1 = true + } else if yyj1 == 0 && yyv1 == nil { + yyv1 = []Subject{} + yyc1 = true + } + } + yyh1.End() + if yyc1 { + *v = yyv1 + } +} + +func (x codecSelfer1234) encSliceRoleBinding(v []RoleBinding, e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + r.EncodeArrayStart(len(v)) + for _, yyv1 := range v { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy2 := &yyv1 + yy2.CodecEncodeSelf(e) + } + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) decSliceRoleBinding(v *[]RoleBinding, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + + yyv1 := *v + yyh1, yyl1 := z.DecSliceHelperStart() + var yyc1 bool + _ = yyc1 + if yyl1 == 0 { + if yyv1 == nil { + yyv1 = []RoleBinding{} + yyc1 = true + } else if len(yyv1) != 0 { + yyv1 = yyv1[:0] + yyc1 = true + } + } else if yyl1 > 0 { + var yyrr1, yyrl1 int + var yyrt1 bool + _, _ = yyrl1, yyrt1 + yyrr1 = yyl1 // len(yyv1) + if yyl1 > cap(yyv1) { + + yyrg1 := len(yyv1) > 0 + yyv21 := yyv1 + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 336) + if yyrt1 { + if yyrl1 <= cap(yyv1) { + yyv1 = yyv1[:yyrl1] + } else { + yyv1 = make([]RoleBinding, yyrl1) + } + } else { + yyv1 = make([]RoleBinding, yyrl1) + } + yyc1 = true + yyrr1 = len(yyv1) + if yyrg1 { + copy(yyv1, yyv21) + } + } else if yyl1 != len(yyv1) { + yyv1 = yyv1[:yyl1] + yyc1 = true + } + yyj1 := 0 + for ; yyj1 < yyrr1; yyj1++ { + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = RoleBinding{} + } else { + yyv2 := &yyv1[yyj1] + yyv2.CodecDecodeSelf(d) + } + + } + if yyrt1 { + for ; yyj1 < yyl1; yyj1++ { + yyv1 = append(yyv1, RoleBinding{}) + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = RoleBinding{} + } else { + yyv3 := &yyv1[yyj1] + yyv3.CodecDecodeSelf(d) + } + + } + } + + } else { + yyj1 := 0 + for ; !r.CheckBreak(); yyj1++ { + + if yyj1 >= len(yyv1) { + yyv1 = append(yyv1, RoleBinding{}) // var yyz1 RoleBinding + yyc1 = true + } + yyh1.ElemContainerState(yyj1) + if yyj1 < len(yyv1) { + if r.TryDecodeAsNil() { + yyv1[yyj1] = RoleBinding{} + } else { + yyv4 := &yyv1[yyj1] + yyv4.CodecDecodeSelf(d) + } + + } else { + z.DecSwallow() + } + + } + if yyj1 < len(yyv1) { + yyv1 = yyv1[:yyj1] + yyc1 = true + } else if yyj1 == 0 && yyv1 == nil { + yyv1 = []RoleBinding{} + yyc1 = true + } + } + yyh1.End() + if yyc1 { + *v = yyv1 + } +} + +func (x codecSelfer1234) encSliceRole(v []Role, e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + r.EncodeArrayStart(len(v)) + for _, yyv1 := range v { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy2 := &yyv1 + yy2.CodecEncodeSelf(e) + } + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) decSliceRole(v *[]Role, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + + yyv1 := *v + yyh1, yyl1 := z.DecSliceHelperStart() + var yyc1 bool + _ = yyc1 + if yyl1 == 0 { + if yyv1 == nil { + yyv1 = []Role{} + yyc1 = true + } else if len(yyv1) != 0 { + yyv1 = yyv1[:0] + yyc1 = true + } + } else if yyl1 > 0 { + var yyrr1, yyrl1 int + var yyrt1 bool + _, _ = yyrl1, yyrt1 + yyrr1 = yyl1 // len(yyv1) + if yyl1 > cap(yyv1) { + + yyrg1 := len(yyv1) > 0 + yyv21 := yyv1 + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 288) + if yyrt1 { + if yyrl1 <= cap(yyv1) { + yyv1 = yyv1[:yyrl1] + } else { + yyv1 = make([]Role, yyrl1) + } + } else { + yyv1 = make([]Role, yyrl1) + } + yyc1 = true + yyrr1 = len(yyv1) + if yyrg1 { + copy(yyv1, yyv21) + } + } else if yyl1 != len(yyv1) { + yyv1 = yyv1[:yyl1] + yyc1 = true + } + yyj1 := 0 + for ; yyj1 < yyrr1; yyj1++ { + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = Role{} + } else { + yyv2 := &yyv1[yyj1] + yyv2.CodecDecodeSelf(d) + } + + } + if yyrt1 { + for ; yyj1 < yyl1; yyj1++ { + yyv1 = append(yyv1, Role{}) + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = Role{} + } else { + yyv3 := &yyv1[yyj1] + yyv3.CodecDecodeSelf(d) + } + + } + } + + } else { + yyj1 := 0 + for ; !r.CheckBreak(); yyj1++ { + + if yyj1 >= len(yyv1) { + yyv1 = append(yyv1, Role{}) // var yyz1 Role + yyc1 = true + } + yyh1.ElemContainerState(yyj1) + if yyj1 < len(yyv1) { + if r.TryDecodeAsNil() { + yyv1[yyj1] = Role{} + } else { + yyv4 := &yyv1[yyj1] + yyv4.CodecDecodeSelf(d) + } + + } else { + z.DecSwallow() + } + + } + if yyj1 < len(yyv1) { + yyv1 = yyv1[:yyj1] + yyc1 = true + } else if yyj1 == 0 && yyv1 == nil { + yyv1 = []Role{} + yyc1 = true + } + } + yyh1.End() + if yyc1 { + *v = yyv1 + } +} + +func (x codecSelfer1234) encSliceClusterRoleBinding(v []ClusterRoleBinding, e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + r.EncodeArrayStart(len(v)) + for _, yyv1 := range v { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy2 := &yyv1 + yy2.CodecEncodeSelf(e) + } + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) decSliceClusterRoleBinding(v *[]ClusterRoleBinding, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + + yyv1 := *v + yyh1, yyl1 := z.DecSliceHelperStart() + var yyc1 bool + _ = yyc1 + if yyl1 == 0 { + if yyv1 == nil { + yyv1 = []ClusterRoleBinding{} + yyc1 = true + } else if len(yyv1) != 0 { + yyv1 = yyv1[:0] + yyc1 = true + } + } else if yyl1 > 0 { + var yyrr1, yyrl1 int + var yyrt1 bool + _, _ = yyrl1, yyrt1 + yyrr1 = yyl1 // len(yyv1) + if yyl1 > cap(yyv1) { + + yyrg1 := len(yyv1) > 0 + yyv21 := yyv1 + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 336) + if yyrt1 { + if yyrl1 <= cap(yyv1) { + yyv1 = yyv1[:yyrl1] + } else { + yyv1 = make([]ClusterRoleBinding, yyrl1) + } + } else { + yyv1 = make([]ClusterRoleBinding, yyrl1) + } + yyc1 = true + yyrr1 = len(yyv1) + if yyrg1 { + copy(yyv1, yyv21) + } + } else if yyl1 != len(yyv1) { + yyv1 = yyv1[:yyl1] + yyc1 = true + } + yyj1 := 0 + for ; yyj1 < yyrr1; yyj1++ { + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = ClusterRoleBinding{} + } else { + yyv2 := &yyv1[yyj1] + yyv2.CodecDecodeSelf(d) + } + + } + if yyrt1 { + for ; yyj1 < yyl1; yyj1++ { + yyv1 = append(yyv1, ClusterRoleBinding{}) + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = ClusterRoleBinding{} + } else { + yyv3 := &yyv1[yyj1] + yyv3.CodecDecodeSelf(d) + } + + } + } + + } else { + yyj1 := 0 + for ; !r.CheckBreak(); yyj1++ { + + if yyj1 >= len(yyv1) { + yyv1 = append(yyv1, ClusterRoleBinding{}) // var yyz1 ClusterRoleBinding + yyc1 = true + } + yyh1.ElemContainerState(yyj1) + if yyj1 < len(yyv1) { + if r.TryDecodeAsNil() { + yyv1[yyj1] = ClusterRoleBinding{} + } else { + yyv4 := &yyv1[yyj1] + yyv4.CodecDecodeSelf(d) + } + + } else { + z.DecSwallow() + } + + } + if yyj1 < len(yyv1) { + yyv1 = yyv1[:yyj1] + yyc1 = true + } else if yyj1 == 0 && yyv1 == nil { + yyv1 = []ClusterRoleBinding{} + yyc1 = true + } + } + yyh1.End() + if yyc1 { + *v = yyv1 + } +} + +func (x codecSelfer1234) encSliceClusterRole(v []ClusterRole, e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + r.EncodeArrayStart(len(v)) + for _, yyv1 := range v { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yy2 := &yyv1 + yy2.CodecEncodeSelf(e) + } + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) +} + +func (x codecSelfer1234) decSliceClusterRole(v *[]ClusterRole, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + + yyv1 := *v + yyh1, yyl1 := z.DecSliceHelperStart() + var yyc1 bool + _ = yyc1 + if yyl1 == 0 { + if yyv1 == nil { + yyv1 = []ClusterRole{} + yyc1 = true + } else if len(yyv1) != 0 { + yyv1 = yyv1[:0] + yyc1 = true + } + } else if yyl1 > 0 { + var yyrr1, yyrl1 int + var yyrt1 bool + _, _ = yyrl1, yyrt1 + yyrr1 = yyl1 // len(yyv1) + if yyl1 > cap(yyv1) { + + yyrg1 := len(yyv1) > 0 + yyv21 := yyv1 + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 288) + if yyrt1 { + if yyrl1 <= cap(yyv1) { + yyv1 = yyv1[:yyrl1] + } else { + yyv1 = make([]ClusterRole, yyrl1) + } + } else { + yyv1 = make([]ClusterRole, yyrl1) + } + yyc1 = true + yyrr1 = len(yyv1) + if yyrg1 { + copy(yyv1, yyv21) + } + } else if yyl1 != len(yyv1) { + yyv1 = yyv1[:yyl1] + yyc1 = true + } + yyj1 := 0 + for ; yyj1 < yyrr1; yyj1++ { + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = ClusterRole{} + } else { + yyv2 := &yyv1[yyj1] + yyv2.CodecDecodeSelf(d) + } + + } + if yyrt1 { + for ; yyj1 < yyl1; yyj1++ { + yyv1 = append(yyv1, ClusterRole{}) + yyh1.ElemContainerState(yyj1) + if r.TryDecodeAsNil() { + yyv1[yyj1] = ClusterRole{} + } else { + yyv3 := &yyv1[yyj1] + yyv3.CodecDecodeSelf(d) + } + + } + } + + } else { + yyj1 := 0 + for ; !r.CheckBreak(); yyj1++ { + + if yyj1 >= len(yyv1) { + yyv1 = append(yyv1, ClusterRole{}) // var yyz1 ClusterRole + yyc1 = true + } + yyh1.ElemContainerState(yyj1) + if yyj1 < len(yyv1) { + if r.TryDecodeAsNil() { + yyv1[yyj1] = ClusterRole{} + } else { + yyv4 := &yyv1[yyj1] + yyv4.CodecDecodeSelf(d) + } + + } else { + z.DecSwallow() + } + + } + if yyj1 < len(yyv1) { + yyv1 = yyv1[:yyj1] + yyc1 = true + } else if yyj1 == 0 && yyv1 == nil { + yyv1 = []ClusterRole{} + yyc1 = true + } + } + yyh1.End() + if yyc1 { + *v = yyv1 + } +} diff --git a/staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go new file mode 100644 index 00000000000..7770d4085b1 --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/types_swagger_doc_generated.go @@ -0,0 +1,148 @@ +/* +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 v1 + +// This file contains a collection of methods that can be used from go-restful to +// generate Swagger API documentation for its models. Please read this PR for more +// information on the implementation: https://github.com/emicklei/go-restful/pull/215 +// +// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if +// they are on one line! For multiple line or blocks that you want to ignore use ---. +// Any context after a --- is ignored. +// +// Those methods can be generated by using hack/update-generated-swagger-docs.sh + +// AUTO-GENERATED FUNCTIONS START HERE +var map_ClusterRole = map[string]string{ + "": "ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding or ClusterRoleBinding.", + "metadata": "Standard object's metadata.", + "rules": "Rules holds all the PolicyRules for this ClusterRole", +} + +func (ClusterRole) SwaggerDoc() map[string]string { + return map_ClusterRole +} + +var map_ClusterRoleBinding = map[string]string{ + "": "ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole in the global namespace, and adds who information via Subject.", + "metadata": "Standard object's metadata.", + "subjects": "Subjects holds references to the objects the role applies to.", + "roleRef": "RoleRef can only reference a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", +} + +func (ClusterRoleBinding) SwaggerDoc() map[string]string { + return map_ClusterRoleBinding +} + +var map_ClusterRoleBindingList = map[string]string{ + "": "ClusterRoleBindingList is a collection of ClusterRoleBindings", + "metadata": "Standard object's metadata.", + "items": "Items is a list of ClusterRoleBindings", +} + +func (ClusterRoleBindingList) SwaggerDoc() map[string]string { + return map_ClusterRoleBindingList +} + +var map_ClusterRoleList = map[string]string{ + "": "ClusterRoleList is a collection of ClusterRoles", + "metadata": "Standard object's metadata.", + "items": "Items is a list of ClusterRoles", +} + +func (ClusterRoleList) SwaggerDoc() map[string]string { + return map_ClusterRoleList +} + +var map_PolicyRule = map[string]string{ + "": "PolicyRule holds information that describes a policy rule, but does not contain information about who the rule applies to or which namespace the rule applies to.", + "verbs": "Verbs is a list of Verbs that apply to ALL the ResourceKinds and AttributeRestrictions contained in this rule. VerbAll represents all kinds.", + "apiGroups": "APIGroups is the name of the APIGroup that contains the resources. If multiple API groups are specified, any action requested against one of the enumerated resources in any API group will be allowed.", + "resources": "Resources is a list of resources this rule applies to. ResourceAll represents all resources.", + "resourceNames": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "nonResourceURLs": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", +} + +func (PolicyRule) SwaggerDoc() map[string]string { + return map_PolicyRule +} + +var map_Role = map[string]string{ + "": "Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a RoleBinding.", + "metadata": "Standard object's metadata.", + "rules": "Rules holds all the PolicyRules for this Role", +} + +func (Role) SwaggerDoc() map[string]string { + return map_Role +} + +var map_RoleBinding = map[string]string{ + "": "RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only have effect in that namespace.", + "metadata": "Standard object's metadata.", + "subjects": "Subjects holds references to the objects the role applies to.", + "roleRef": "RoleRef can reference a Role in the current namespace or a ClusterRole in the global namespace. If the RoleRef cannot be resolved, the Authorizer must return an error.", +} + +func (RoleBinding) SwaggerDoc() map[string]string { + return map_RoleBinding +} + +var map_RoleBindingList = map[string]string{ + "": "RoleBindingList is a collection of RoleBindings", + "metadata": "Standard object's metadata.", + "items": "Items is a list of RoleBindings", +} + +func (RoleBindingList) SwaggerDoc() map[string]string { + return map_RoleBindingList +} + +var map_RoleList = map[string]string{ + "": "RoleList is a collection of Roles", + "metadata": "Standard object's metadata.", + "items": "Items is a list of Roles", +} + +func (RoleList) SwaggerDoc() map[string]string { + return map_RoleList +} + +var map_RoleRef = map[string]string{ + "": "RoleRef contains information that points to the role being used", + "apiGroup": "APIGroup is the group for the resource being referenced", + "kind": "Kind is the type of resource being referenced", + "name": "Name is the name of resource being referenced", +} + +func (RoleRef) SwaggerDoc() map[string]string { + return map_RoleRef +} + +var map_Subject = map[string]string{ + "": "Subject contains a reference to the object or user identities a role binding applies to. This can either hold a direct API object reference, or a value for non-objects such as user and group names.", + "kind": "Kind of object being referenced. Values defined by this API group are \"User\", \"Group\", and \"ServiceAccount\". If the Authorizer does not recognized the kind value, the Authorizer should report an error.", + "apiGroup": "APIGroup holds the API group of the referenced subject. Defaults to \"\" for ServiceAccount subjects. Defaults to \"rbac.authorization.k8s.io\" for User and Group subjects.", + "name": "Name of the object being referenced.", + "namespace": "Namespace of the referenced object. If the object kind is non-namespace, such as \"User\" or \"Group\", and this value is not empty the Authorizer should report an error.", +} + +func (Subject) SwaggerDoc() map[string]string { + return map_Subject +} + +// AUTO-GENERATED FUNCTIONS END HERE diff --git a/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go new file mode 100644 index 00000000000..7ffc81869d2 --- /dev/null +++ b/staging/src/k8s.io/api/rbac/v1/zz_generated.deepcopy.go @@ -0,0 +1,427 @@ +// +build !ignore_autogenerated + +/* +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. +*/ + +// This file was autogenerated by deepcopy-gen. Do not edit it manually! + +package v1 + +import ( + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" + reflect "reflect" +) + +func init() { + SchemeBuilder.Register(RegisterDeepCopies) +} + +// RegisterDeepCopies adds deep-copy functions to the given scheme. Public +// to allow building arbitrary schemes. +// +// Deprecated: deepcopy registration will go away when static deepcopy is fully implemented. +func RegisterDeepCopies(scheme *runtime.Scheme) error { + return scheme.AddGeneratedDeepCopyFuncs( + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ClusterRole).DeepCopyInto(out.(*ClusterRole)) + return nil + }, InType: reflect.TypeOf(&ClusterRole{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ClusterRoleBinding).DeepCopyInto(out.(*ClusterRoleBinding)) + return nil + }, InType: reflect.TypeOf(&ClusterRoleBinding{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ClusterRoleBindingList).DeepCopyInto(out.(*ClusterRoleBindingList)) + return nil + }, InType: reflect.TypeOf(&ClusterRoleBindingList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*ClusterRoleList).DeepCopyInto(out.(*ClusterRoleList)) + return nil + }, InType: reflect.TypeOf(&ClusterRoleList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*PolicyRule).DeepCopyInto(out.(*PolicyRule)) + return nil + }, InType: reflect.TypeOf(&PolicyRule{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Role).DeepCopyInto(out.(*Role)) + return nil + }, InType: reflect.TypeOf(&Role{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RoleBinding).DeepCopyInto(out.(*RoleBinding)) + return nil + }, InType: reflect.TypeOf(&RoleBinding{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RoleBindingList).DeepCopyInto(out.(*RoleBindingList)) + return nil + }, InType: reflect.TypeOf(&RoleBindingList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RoleList).DeepCopyInto(out.(*RoleList)) + return nil + }, InType: reflect.TypeOf(&RoleList{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*RoleRef).DeepCopyInto(out.(*RoleRef)) + return nil + }, InType: reflect.TypeOf(&RoleRef{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*Subject).DeepCopyInto(out.(*Subject)) + return nil + }, InType: reflect.TypeOf(&Subject{})}, + ) +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterRole) DeepCopyInto(out *ClusterRole) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PolicyRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRole. +func (in *ClusterRole) DeepCopy() *ClusterRole { + if in == nil { + return nil + } + out := new(ClusterRole) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterRole) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterRoleBinding) DeepCopyInto(out *ClusterRoleBinding) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Subjects != nil { + in, out := &in.Subjects, &out.Subjects + *out = make([]Subject, len(*in)) + copy(*out, *in) + } + out.RoleRef = in.RoleRef + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBinding. +func (in *ClusterRoleBinding) DeepCopy() *ClusterRoleBinding { + if in == nil { + return nil + } + out := new(ClusterRoleBinding) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterRoleBinding) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterRoleBindingList) DeepCopyInto(out *ClusterRoleBindingList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ClusterRoleBinding, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleBindingList. +func (in *ClusterRoleBindingList) DeepCopy() *ClusterRoleBindingList { + if in == nil { + return nil + } + out := new(ClusterRoleBindingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterRoleBindingList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterRoleList) DeepCopyInto(out *ClusterRoleList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ClusterRole, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterRoleList. +func (in *ClusterRoleList) DeepCopy() *ClusterRoleList { + if in == nil { + return nil + } + out := new(ClusterRoleList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterRoleList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyRule) DeepCopyInto(out *PolicyRule) { + *out = *in + if in.Verbs != nil { + in, out := &in.Verbs, &out.Verbs + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.APIGroups != nil { + in, out := &in.APIGroups, &out.APIGroups + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ResourceNames != nil { + in, out := &in.ResourceNames, &out.ResourceNames + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.NonResourceURLs != nil { + in, out := &in.NonResourceURLs, &out.NonResourceURLs + *out = make([]string, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyRule. +func (in *PolicyRule) DeepCopy() *PolicyRule { + if in == nil { + return nil + } + out := new(PolicyRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Role) DeepCopyInto(out *Role) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PolicyRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Role. +func (in *Role) DeepCopy() *Role { + if in == nil { + return nil + } + out := new(Role) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Role) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleBinding) DeepCopyInto(out *RoleBinding) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + if in.Subjects != nil { + in, out := &in.Subjects, &out.Subjects + *out = make([]Subject, len(*in)) + copy(*out, *in) + } + out.RoleRef = in.RoleRef + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBinding. +func (in *RoleBinding) DeepCopy() *RoleBinding { + if in == nil { + return nil + } + out := new(RoleBinding) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleBinding) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleBindingList) DeepCopyInto(out *RoleBindingList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RoleBinding, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleBindingList. +func (in *RoleBindingList) DeepCopy() *RoleBindingList { + if in == nil { + return nil + } + out := new(RoleBindingList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleBindingList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleList) DeepCopyInto(out *RoleList) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ListMeta = in.ListMeta + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Role, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleList. +func (in *RoleList) DeepCopy() *RoleList { + if in == nil { + return nil + } + out := new(RoleList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } else { + return nil + } +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleRef) DeepCopyInto(out *RoleRef) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleRef. +func (in *RoleRef) DeepCopy() *RoleRef { + if in == nil { + return nil + } + out := new(RoleRef) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Subject) DeepCopyInto(out *Subject) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Subject. +func (in *Subject) DeepCopy() *Subject { + if in == nil { + return nil + } + out := new(Subject) + in.DeepCopyInto(out) + return out +} diff --git a/staging/src/k8s.io/client-go/informers/BUILD b/staging/src/k8s.io/client-go/informers/BUILD index 8a757b8c4e3..f945ced0e3f 100644 --- a/staging/src/k8s.io/client-go/informers/BUILD +++ b/staging/src/k8s.io/client-go/informers/BUILD @@ -27,6 +27,7 @@ go_library( "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/generic.go b/staging/src/k8s.io/client-go/informers/generic.go index dd41f2df0c1..2a0096e2d32 100644 --- a/staging/src/k8s.io/client-go/informers/generic.go +++ b/staging/src/k8s.io/client-go/informers/generic.go @@ -32,6 +32,7 @@ import ( extensions_v1beta1 "k8s.io/api/extensions/v1beta1" networking_v1 "k8s.io/api/networking/v1" policy_v1beta1 "k8s.io/api/policy/v1beta1" + rbac_v1 "k8s.io/api/rbac/v1" rbac_v1alpha1 "k8s.io/api/rbac/v1alpha1" rbac_v1beta1 "k8s.io/api/rbac/v1beta1" scheduling_v1alpha1 "k8s.io/api/scheduling/v1alpha1" @@ -168,6 +169,16 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case policy_v1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"): return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil + // Group=Rbac, Version=V1 + case rbac_v1.SchemeGroupVersion.WithResource("clusterroles"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoles().Informer()}, nil + case rbac_v1.SchemeGroupVersion.WithResource("clusterrolebindings"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoleBindings().Informer()}, nil + case rbac_v1.SchemeGroupVersion.WithResource("roles"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().Roles().Informer()}, nil + case rbac_v1.SchemeGroupVersion.WithResource("rolebindings"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().RoleBindings().Informer()}, nil + // Group=Rbac, Version=V1alpha1 case rbac_v1alpha1.SchemeGroupVersion.WithResource("clusterroles"): return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoles().Informer()}, nil diff --git a/staging/src/k8s.io/client-go/informers/rbac/BUILD b/staging/src/k8s.io/client-go/informers/rbac/BUILD index 0da9a778ee8..637dd1530eb 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/BUILD @@ -13,6 +13,7 @@ go_library( tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", + "//vendor/k8s.io/client-go/informers/rbac/v1:go_default_library", "//vendor/k8s.io/client-go/informers/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/informers/rbac/v1beta1:go_default_library", ], @@ -29,6 +30,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//staging/src/k8s.io/client-go/informers/rbac/v1:all-srcs", "//staging/src/k8s.io/client-go/informers/rbac/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/informers/rbac/v1beta1:all-srcs", ], diff --git a/staging/src/k8s.io/client-go/informers/rbac/interface.go b/staging/src/k8s.io/client-go/informers/rbac/interface.go index 5bd1f29d95d..dfa6fcb4c89 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/interface.go +++ b/staging/src/k8s.io/client-go/informers/rbac/interface.go @@ -20,12 +20,15 @@ package rbac import ( internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + v1 "k8s.io/client-go/informers/rbac/v1" v1alpha1 "k8s.io/client-go/informers/rbac/v1alpha1" v1beta1 "k8s.io/client-go/informers/rbac/v1beta1" ) // Interface provides access to each of this group's versions. type Interface interface { + // V1 provides access to shared informers for resources in V1. + V1() v1.Interface // V1alpha1 provides access to shared informers for resources in V1alpha1. V1alpha1() v1alpha1.Interface // V1beta1 provides access to shared informers for resources in V1beta1. @@ -41,6 +44,11 @@ func New(f internalinterfaces.SharedInformerFactory) Interface { return &group{f} } +// V1 returns a new v1.Interface. +func (g *group) V1() v1.Interface { + return v1.New(g.SharedInformerFactory) +} + // V1alpha1 returns a new v1alpha1.Interface. func (g *group) V1alpha1() v1alpha1.Interface { return v1alpha1.New(g.SharedInformerFactory) diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD b/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD new file mode 100644 index 00000000000..c29b5df29ae --- /dev/null +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD @@ -0,0 +1,43 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "clusterrole.go", + "clusterrolebinding.go", + "interface.go", + "role.go", + "rolebinding.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/listers/rbac/v1:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go b/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go new file mode 100644 index 00000000000..1d1f9340425 --- /dev/null +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrole.go @@ -0,0 +1,73 @@ +/* +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. +*/ + +// This file was automatically generated by informer-gen + +package v1 + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/rbac/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// ClusterRoleInformer provides access to a shared informer and lister for +// ClusterRoles. +type ClusterRoleInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.ClusterRoleLister +} + +type clusterRoleInformer struct { + factory internalinterfaces.SharedInformerFactory +} + +// NewClusterRoleInformer constructs a new informer for ClusterRole type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + return client.RbacV1().ClusterRoles().List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + return client.RbacV1().ClusterRoles().Watch(options) + }, + }, + &rbac_v1.ClusterRole{}, + resyncPeriod, + indexers, + ) +} + +func defaultClusterRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewClusterRoleInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +} + +func (f *clusterRoleInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&rbac_v1.ClusterRole{}, defaultClusterRoleInformer) +} + +func (f *clusterRoleInformer) Lister() v1.ClusterRoleLister { + return v1.NewClusterRoleLister(f.Informer().GetIndexer()) +} diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go b/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go new file mode 100644 index 00000000000..1c8cdda8965 --- /dev/null +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/clusterrolebinding.go @@ -0,0 +1,73 @@ +/* +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. +*/ + +// This file was automatically generated by informer-gen + +package v1 + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/rbac/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// ClusterRoleBindingInformer provides access to a shared informer and lister for +// ClusterRoleBindings. +type ClusterRoleBindingInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.ClusterRoleBindingLister +} + +type clusterRoleBindingInformer struct { + factory internalinterfaces.SharedInformerFactory +} + +// NewClusterRoleBindingInformer constructs a new informer for ClusterRoleBinding type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + return client.RbacV1().ClusterRoleBindings().List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + return client.RbacV1().ClusterRoleBindings().Watch(options) + }, + }, + &rbac_v1.ClusterRoleBinding{}, + resyncPeriod, + indexers, + ) +} + +func defaultClusterRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewClusterRoleBindingInformer(client, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +} + +func (f *clusterRoleBindingInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&rbac_v1.ClusterRoleBinding{}, defaultClusterRoleBindingInformer) +} + +func (f *clusterRoleBindingInformer) Lister() v1.ClusterRoleBindingLister { + return v1.NewClusterRoleBindingLister(f.Informer().GetIndexer()) +} diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/interface.go b/staging/src/k8s.io/client-go/informers/rbac/v1/interface.go new file mode 100644 index 00000000000..38900ef1e2e --- /dev/null +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/interface.go @@ -0,0 +1,64 @@ +/* +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. +*/ + +// This file was automatically generated by informer-gen + +package v1 + +import ( + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" +) + +// Interface provides access to all the informers in this group version. +type Interface interface { + // ClusterRoles returns a ClusterRoleInformer. + ClusterRoles() ClusterRoleInformer + // ClusterRoleBindings returns a ClusterRoleBindingInformer. + ClusterRoleBindings() ClusterRoleBindingInformer + // Roles returns a RoleInformer. + Roles() RoleInformer + // RoleBindings returns a RoleBindingInformer. + RoleBindings() RoleBindingInformer +} + +type version struct { + internalinterfaces.SharedInformerFactory +} + +// New returns a new Interface. +func New(f internalinterfaces.SharedInformerFactory) Interface { + return &version{f} +} + +// ClusterRoles returns a ClusterRoleInformer. +func (v *version) ClusterRoles() ClusterRoleInformer { + return &clusterRoleInformer{factory: v.SharedInformerFactory} +} + +// ClusterRoleBindings returns a ClusterRoleBindingInformer. +func (v *version) ClusterRoleBindings() ClusterRoleBindingInformer { + return &clusterRoleBindingInformer{factory: v.SharedInformerFactory} +} + +// Roles returns a RoleInformer. +func (v *version) Roles() RoleInformer { + return &roleInformer{factory: v.SharedInformerFactory} +} + +// RoleBindings returns a RoleBindingInformer. +func (v *version) RoleBindings() RoleBindingInformer { + return &roleBindingInformer{factory: v.SharedInformerFactory} +} diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/role.go b/staging/src/k8s.io/client-go/informers/rbac/v1/role.go new file mode 100644 index 00000000000..79f33eabc3b --- /dev/null +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/role.go @@ -0,0 +1,73 @@ +/* +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. +*/ + +// This file was automatically generated by informer-gen + +package v1 + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/rbac/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// RoleInformer provides access to a shared informer and lister for +// Roles. +type RoleInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.RoleLister +} + +type roleInformer struct { + factory internalinterfaces.SharedInformerFactory +} + +// NewRoleInformer constructs a new informer for Role type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewRoleInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + return client.RbacV1().Roles(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + return client.RbacV1().Roles(namespace).Watch(options) + }, + }, + &rbac_v1.Role{}, + resyncPeriod, + indexers, + ) +} + +func defaultRoleInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewRoleInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +} + +func (f *roleInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&rbac_v1.Role{}, defaultRoleInformer) +} + +func (f *roleInformer) Lister() v1.RoleLister { + return v1.NewRoleLister(f.Informer().GetIndexer()) +} diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go b/staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go new file mode 100644 index 00000000000..71548e1a372 --- /dev/null +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/rolebinding.go @@ -0,0 +1,73 @@ +/* +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. +*/ + +// This file was automatically generated by informer-gen + +package v1 + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + watch "k8s.io/apimachinery/pkg/watch" + internalinterfaces "k8s.io/client-go/informers/internalinterfaces" + kubernetes "k8s.io/client-go/kubernetes" + v1 "k8s.io/client-go/listers/rbac/v1" + cache "k8s.io/client-go/tools/cache" + time "time" +) + +// RoleBindingInformer provides access to a shared informer and lister for +// RoleBindings. +type RoleBindingInformer interface { + Informer() cache.SharedIndexInformer + Lister() v1.RoleBindingLister +} + +type roleBindingInformer struct { + factory internalinterfaces.SharedInformerFactory +} + +// NewRoleBindingInformer constructs a new informer for RoleBinding type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewRoleBindingInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return cache.NewSharedIndexInformer( + &cache.ListWatch{ + ListFunc: func(options meta_v1.ListOptions) (runtime.Object, error) { + return client.RbacV1().RoleBindings(namespace).List(options) + }, + WatchFunc: func(options meta_v1.ListOptions) (watch.Interface, error) { + return client.RbacV1().RoleBindings(namespace).Watch(options) + }, + }, + &rbac_v1.RoleBinding{}, + resyncPeriod, + indexers, + ) +} + +func defaultRoleBindingInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewRoleBindingInformer(client, meta_v1.NamespaceAll, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}) +} + +func (f *roleBindingInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&rbac_v1.RoleBinding{}, defaultRoleBindingInformer) +} + +func (f *roleBindingInformer) Lister() v1.RoleBindingLister { + return v1.NewRoleBindingLister(f.Informer().GetIndexer()) +} diff --git a/staging/src/k8s.io/client-go/kubernetes/BUILD b/staging/src/k8s.io/client-go/kubernetes/BUILD index 5e9ee80ab55..699b56d0684 100644 --- a/staging/src/k8s.io/client-go/kubernetes/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/BUILD @@ -34,6 +34,7 @@ go_library( "//vendor/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/networking/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:go_default_library", @@ -74,6 +75,7 @@ filegroup( "//staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/networking/v1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1:all-srcs", + "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1:all-srcs", "//staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1:all-srcs", diff --git a/staging/src/k8s.io/client-go/kubernetes/clientset.go b/staging/src/k8s.io/client-go/kubernetes/clientset.go index a22cf6534fe..00a0358e840 100644 --- a/staging/src/k8s.io/client-go/kubernetes/clientset.go +++ b/staging/src/k8s.io/client-go/kubernetes/clientset.go @@ -35,6 +35,7 @@ import ( extensionsv1beta1 "k8s.io/client-go/kubernetes/typed/extensions/v1beta1" networkingv1 "k8s.io/client-go/kubernetes/typed/networking/v1" policyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1" + rbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" rbacv1alpha1 "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1" rbacv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1" schedulingv1alpha1 "k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1" @@ -85,9 +86,10 @@ type Interface interface { PolicyV1beta1() policyv1beta1.PolicyV1beta1Interface // Deprecated: please explicitly pick a version if possible. Policy() policyv1beta1.PolicyV1beta1Interface - RbacV1beta1() rbacv1beta1.RbacV1beta1Interface + RbacV1() rbacv1.RbacV1Interface // Deprecated: please explicitly pick a version if possible. - Rbac() rbacv1beta1.RbacV1beta1Interface + Rbac() rbacv1.RbacV1Interface + RbacV1beta1() rbacv1beta1.RbacV1beta1Interface RbacV1alpha1() rbacv1alpha1.RbacV1alpha1Interface SchedulingV1alpha1() schedulingv1alpha1.SchedulingV1alpha1Interface // Deprecated: please explicitly pick a version if possible. @@ -121,6 +123,7 @@ type Clientset struct { extensionsV1beta1 *extensionsv1beta1.ExtensionsV1beta1Client networkingV1 *networkingv1.NetworkingV1Client policyV1beta1 *policyv1beta1.PolicyV1beta1Client + rbacV1 *rbacv1.RbacV1Client rbacV1beta1 *rbacv1beta1.RbacV1beta1Client rbacV1alpha1 *rbacv1alpha1.RbacV1alpha1Client schedulingV1alpha1 *schedulingv1alpha1.SchedulingV1alpha1Client @@ -275,14 +278,19 @@ func (c *Clientset) Policy() policyv1beta1.PolicyV1beta1Interface { return c.policyV1beta1 } -// RbacV1beta1 retrieves the RbacV1beta1Client -func (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface { - return c.rbacV1beta1 +// RbacV1 retrieves the RbacV1Client +func (c *Clientset) RbacV1() rbacv1.RbacV1Interface { + return c.rbacV1 } // Deprecated: Rbac retrieves the default version of RbacClient. // Please explicitly pick a version. -func (c *Clientset) Rbac() rbacv1beta1.RbacV1beta1Interface { +func (c *Clientset) Rbac() rbacv1.RbacV1Interface { + return c.rbacV1 +} + +// RbacV1beta1 retrieves the RbacV1beta1Client +func (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface { return c.rbacV1beta1 } @@ -409,6 +417,10 @@ func NewForConfig(c *rest.Config) (*Clientset, error) { if err != nil { return nil, err } + cs.rbacV1, err = rbacv1.NewForConfig(&configShallowCopy) + if err != nil { + return nil, err + } cs.rbacV1beta1, err = rbacv1beta1.NewForConfig(&configShallowCopy) if err != nil { return nil, err @@ -462,6 +474,7 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { cs.extensionsV1beta1 = extensionsv1beta1.NewForConfigOrDie(c) cs.networkingV1 = networkingv1.NewForConfigOrDie(c) cs.policyV1beta1 = policyv1beta1.NewForConfigOrDie(c) + cs.rbacV1 = rbacv1.NewForConfigOrDie(c) cs.rbacV1beta1 = rbacv1beta1.NewForConfigOrDie(c) cs.rbacV1alpha1 = rbacv1alpha1.NewForConfigOrDie(c) cs.schedulingV1alpha1 = schedulingv1alpha1.NewForConfigOrDie(c) @@ -492,6 +505,7 @@ func New(c rest.Interface) *Clientset { cs.extensionsV1beta1 = extensionsv1beta1.New(c) cs.networkingV1 = networkingv1.New(c) cs.policyV1beta1 = policyv1beta1.New(c) + cs.rbacV1 = rbacv1.New(c) cs.rbacV1beta1 = rbacv1beta1.New(c) cs.rbacV1alpha1 = rbacv1alpha1.New(c) cs.schedulingV1alpha1 = schedulingv1alpha1.New(c) diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/fake/BUILD index 4bc21a52178..0ee6c907697 100644 --- a/staging/src/k8s.io/client-go/kubernetes/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/fake/BUILD @@ -32,6 +32,7 @@ go_library( "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", @@ -78,6 +79,8 @@ go_library( "//vendor/k8s.io/client-go/kubernetes/typed/networking/v1/fake:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1/fake:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go b/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go index f72305948af..f9c7cacf14f 100644 --- a/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go +++ b/staging/src/k8s.io/client-go/kubernetes/fake/clientset_generated.go @@ -54,6 +54,8 @@ import ( fakenetworkingv1 "k8s.io/client-go/kubernetes/typed/networking/v1/fake" policyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1" fakepolicyv1beta1 "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake" + rbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1" + fakerbacv1 "k8s.io/client-go/kubernetes/typed/rbac/v1/fake" rbacv1alpha1 "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1" fakerbacv1alpha1 "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake" rbacv1beta1 "k8s.io/client-go/kubernetes/typed/rbac/v1beta1" @@ -237,13 +239,18 @@ func (c *Clientset) Policy() policyv1beta1.PolicyV1beta1Interface { return &fakepolicyv1beta1.FakePolicyV1beta1{Fake: &c.Fake} } -// RbacV1beta1 retrieves the RbacV1beta1Client -func (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface { - return &fakerbacv1beta1.FakeRbacV1beta1{Fake: &c.Fake} +// RbacV1 retrieves the RbacV1Client +func (c *Clientset) RbacV1() rbacv1.RbacV1Interface { + return &fakerbacv1.FakeRbacV1{Fake: &c.Fake} } -// Rbac retrieves the RbacV1beta1Client -func (c *Clientset) Rbac() rbacv1beta1.RbacV1beta1Interface { +// Rbac retrieves the RbacV1Client +func (c *Clientset) Rbac() rbacv1.RbacV1Interface { + return &fakerbacv1.FakeRbacV1{Fake: &c.Fake} +} + +// RbacV1beta1 retrieves the RbacV1beta1Client +func (c *Clientset) RbacV1beta1() rbacv1beta1.RbacV1beta1Interface { return &fakerbacv1beta1.FakeRbacV1beta1{Fake: &c.Fake} } diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/register.go b/staging/src/k8s.io/client-go/kubernetes/fake/register.go index dda0c855820..3cec690586c 100644 --- a/staging/src/k8s.io/client-go/kubernetes/fake/register.go +++ b/staging/src/k8s.io/client-go/kubernetes/fake/register.go @@ -33,6 +33,7 @@ import ( extensionsv1beta1 "k8s.io/api/extensions/v1beta1" networkingv1 "k8s.io/api/networking/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" + rbacv1 "k8s.io/api/rbac/v1" rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" rbacv1beta1 "k8s.io/api/rbac/v1beta1" schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" @@ -85,6 +86,7 @@ func AddToScheme(scheme *runtime.Scheme) { extensionsv1beta1.AddToScheme(scheme) networkingv1.AddToScheme(scheme) policyv1beta1.AddToScheme(scheme) + rbacv1.AddToScheme(scheme) rbacv1beta1.AddToScheme(scheme) rbacv1alpha1.AddToScheme(scheme) schedulingv1alpha1.AddToScheme(scheme) diff --git a/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD b/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD index c6e316f0cd3..6d873397224 100644 --- a/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD @@ -31,6 +31,7 @@ go_library( "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", + "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/scheme/register.go b/staging/src/k8s.io/client-go/kubernetes/scheme/register.go index 15ed880a586..57fe2e0ef8b 100644 --- a/staging/src/k8s.io/client-go/kubernetes/scheme/register.go +++ b/staging/src/k8s.io/client-go/kubernetes/scheme/register.go @@ -33,6 +33,7 @@ import ( extensionsv1beta1 "k8s.io/api/extensions/v1beta1" networkingv1 "k8s.io/api/networking/v1" policyv1beta1 "k8s.io/api/policy/v1beta1" + rbacv1 "k8s.io/api/rbac/v1" rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" rbacv1beta1 "k8s.io/api/rbac/v1beta1" schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1" @@ -85,6 +86,7 @@ func AddToScheme(scheme *runtime.Scheme) { extensionsv1beta1.AddToScheme(scheme) networkingv1.AddToScheme(scheme) policyv1beta1.AddToScheme(scheme) + rbacv1.AddToScheme(scheme) rbacv1beta1.AddToScheme(scheme) rbacv1alpha1.AddToScheme(scheme) schedulingv1alpha1.AddToScheme(scheme) diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD new file mode 100644 index 00000000000..e5d02ec8adc --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD @@ -0,0 +1,47 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "clusterrole.go", + "clusterrolebinding.go", + "doc.go", + "generated_expansion.go", + "rbac_client.go", + "role.go", + "rolebinding.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [ + ":package-srcs", + "//staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake:all-srcs", + ], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go new file mode 100644 index 00000000000..e0ea45148e0 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrole.go @@ -0,0 +1,145 @@ +/* +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. +*/ + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// ClusterRolesGetter has a method to return a ClusterRoleInterface. +// A group's client should implement this interface. +type ClusterRolesGetter interface { + ClusterRoles() ClusterRoleInterface +} + +// ClusterRoleInterface has methods to work with ClusterRole resources. +type ClusterRoleInterface interface { + Create(*v1.ClusterRole) (*v1.ClusterRole, error) + Update(*v1.ClusterRole) (*v1.ClusterRole, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.ClusterRole, error) + List(opts meta_v1.ListOptions) (*v1.ClusterRoleList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterRole, err error) + ClusterRoleExpansion +} + +// clusterRoles implements ClusterRoleInterface +type clusterRoles struct { + client rest.Interface +} + +// newClusterRoles returns a ClusterRoles +func newClusterRoles(c *RbacV1Client) *clusterRoles { + return &clusterRoles{ + client: c.RESTClient(), + } +} + +// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any. +func (c *clusterRoles) Get(name string, options meta_v1.GetOptions) (result *v1.ClusterRole, err error) { + result = &v1.ClusterRole{} + err = c.client.Get(). + Resource("clusterroles"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. +func (c *clusterRoles) List(opts meta_v1.ListOptions) (result *v1.ClusterRoleList, err error) { + result = &v1.ClusterRoleList{} + err = c.client.Get(). + Resource("clusterroles"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested clusterRoles. +func (c *clusterRoles) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("clusterroles"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a clusterRole and creates it. Returns the server's representation of the clusterRole, and an error, if there is any. +func (c *clusterRoles) Create(clusterRole *v1.ClusterRole) (result *v1.ClusterRole, err error) { + result = &v1.ClusterRole{} + err = c.client.Post(). + Resource("clusterroles"). + Body(clusterRole). + Do(). + Into(result) + return +} + +// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any. +func (c *clusterRoles) Update(clusterRole *v1.ClusterRole) (result *v1.ClusterRole, err error) { + result = &v1.ClusterRole{} + err = c.client.Put(). + Resource("clusterroles"). + Name(clusterRole.Name). + Body(clusterRole). + Do(). + Into(result) + return +} + +// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs. +func (c *clusterRoles) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Resource("clusterroles"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *clusterRoles) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Resource("clusterroles"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched clusterRole. +func (c *clusterRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterRole, err error) { + result = &v1.ClusterRole{} + err = c.client.Patch(pt). + Resource("clusterroles"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go new file mode 100644 index 00000000000..11b2e216533 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/clusterrolebinding.go @@ -0,0 +1,145 @@ +/* +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. +*/ + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// ClusterRoleBindingsGetter has a method to return a ClusterRoleBindingInterface. +// A group's client should implement this interface. +type ClusterRoleBindingsGetter interface { + ClusterRoleBindings() ClusterRoleBindingInterface +} + +// ClusterRoleBindingInterface has methods to work with ClusterRoleBinding resources. +type ClusterRoleBindingInterface interface { + Create(*v1.ClusterRoleBinding) (*v1.ClusterRoleBinding, error) + Update(*v1.ClusterRoleBinding) (*v1.ClusterRoleBinding, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.ClusterRoleBinding, error) + List(opts meta_v1.ListOptions) (*v1.ClusterRoleBindingList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterRoleBinding, err error) + ClusterRoleBindingExpansion +} + +// clusterRoleBindings implements ClusterRoleBindingInterface +type clusterRoleBindings struct { + client rest.Interface +} + +// newClusterRoleBindings returns a ClusterRoleBindings +func newClusterRoleBindings(c *RbacV1Client) *clusterRoleBindings { + return &clusterRoleBindings{ + client: c.RESTClient(), + } +} + +// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any. +func (c *clusterRoleBindings) Get(name string, options meta_v1.GetOptions) (result *v1.ClusterRoleBinding, err error) { + result = &v1.ClusterRoleBinding{} + err = c.client.Get(). + Resource("clusterrolebindings"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. +func (c *clusterRoleBindings) List(opts meta_v1.ListOptions) (result *v1.ClusterRoleBindingList, err error) { + result = &v1.ClusterRoleBindingList{} + err = c.client.Get(). + Resource("clusterrolebindings"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested clusterRoleBindings. +func (c *clusterRoleBindings) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Resource("clusterrolebindings"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a clusterRoleBinding and creates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. +func (c *clusterRoleBindings) Create(clusterRoleBinding *v1.ClusterRoleBinding) (result *v1.ClusterRoleBinding, err error) { + result = &v1.ClusterRoleBinding{} + err = c.client.Post(). + Resource("clusterrolebindings"). + Body(clusterRoleBinding). + Do(). + Into(result) + return +} + +// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. +func (c *clusterRoleBindings) Update(clusterRoleBinding *v1.ClusterRoleBinding) (result *v1.ClusterRoleBinding, err error) { + result = &v1.ClusterRoleBinding{} + err = c.client.Put(). + Resource("clusterrolebindings"). + Name(clusterRoleBinding.Name). + Body(clusterRoleBinding). + Do(). + Into(result) + return +} + +// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs. +func (c *clusterRoleBindings) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Resource("clusterrolebindings"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *clusterRoleBindings) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Resource("clusterrolebindings"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched clusterRoleBinding. +func (c *clusterRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.ClusterRoleBinding, err error) { + result = &v1.ClusterRoleBinding{} + err = c.client.Patch(pt). + Resource("clusterrolebindings"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go new file mode 100644 index 00000000000..54673bfa738 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/doc.go @@ -0,0 +1,20 @@ +/* +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. +*/ + +// This package is generated by client-gen with custom arguments. + +// This package has the automatically generated typed clients. +package v1 diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD new file mode 100644 index 00000000000..2cdb8322d83 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD @@ -0,0 +1,45 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "doc.go", + "fake_clusterrole.go", + "fake_clusterrolebinding.go", + "fake_rbac_client.go", + "fake_role.go", + "fake_rolebinding.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/rbac/v1:go_default_library", + "//vendor/k8s.io/client-go/rest:go_default_library", + "//vendor/k8s.io/client-go/testing:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go new file mode 100644 index 00000000000..c6548330a0d --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/doc.go @@ -0,0 +1,20 @@ +/* +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. +*/ + +// This package is generated by client-gen with custom arguments. + +// Package fake has the automatically generated clients. +package fake diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go new file mode 100644 index 00000000000..645126f2c81 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrole.go @@ -0,0 +1,118 @@ +/* +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. +*/ + +package fake + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeClusterRoles implements ClusterRoleInterface +type FakeClusterRoles struct { + Fake *FakeRbacV1 +} + +var clusterrolesResource = schema.GroupVersionResource{Group: "rbac.authorization.k8s.io", Version: "v1", Resource: "clusterroles"} + +var clusterrolesKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRole"} + +// Get takes name of the clusterRole, and returns the corresponding clusterRole object, and an error if there is any. +func (c *FakeClusterRoles) Get(name string, options v1.GetOptions) (result *rbac_v1.ClusterRole, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(clusterrolesResource, name), &rbac_v1.ClusterRole{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRole), err +} + +// List takes label and field selectors, and returns the list of ClusterRoles that match those selectors. +func (c *FakeClusterRoles) List(opts v1.ListOptions) (result *rbac_v1.ClusterRoleList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(clusterrolesResource, clusterrolesKind, opts), &rbac_v1.ClusterRoleList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &rbac_v1.ClusterRoleList{} + for _, item := range obj.(*rbac_v1.ClusterRoleList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested clusterRoles. +func (c *FakeClusterRoles) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(clusterrolesResource, opts)) +} + +// Create takes the representation of a clusterRole and creates it. Returns the server's representation of the clusterRole, and an error, if there is any. +func (c *FakeClusterRoles) Create(clusterRole *rbac_v1.ClusterRole) (result *rbac_v1.ClusterRole, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(clusterrolesResource, clusterRole), &rbac_v1.ClusterRole{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRole), err +} + +// Update takes the representation of a clusterRole and updates it. Returns the server's representation of the clusterRole, and an error, if there is any. +func (c *FakeClusterRoles) Update(clusterRole *rbac_v1.ClusterRole) (result *rbac_v1.ClusterRole, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(clusterrolesResource, clusterRole), &rbac_v1.ClusterRole{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRole), err +} + +// Delete takes name of the clusterRole and deletes it. Returns an error if one occurs. +func (c *FakeClusterRoles) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(clusterrolesResource, name), &rbac_v1.ClusterRole{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeClusterRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(clusterrolesResource, listOptions) + + _, err := c.Fake.Invokes(action, &rbac_v1.ClusterRoleList{}) + return err +} + +// Patch applies the patch and returns the patched clusterRole. +func (c *FakeClusterRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.ClusterRole, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolesResource, name, data, subresources...), &rbac_v1.ClusterRole{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRole), err +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go new file mode 100644 index 00000000000..a9c0bb08917 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_clusterrolebinding.go @@ -0,0 +1,118 @@ +/* +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. +*/ + +package fake + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeClusterRoleBindings implements ClusterRoleBindingInterface +type FakeClusterRoleBindings struct { + Fake *FakeRbacV1 +} + +var clusterrolebindingsResource = schema.GroupVersionResource{Group: "rbac.authorization.k8s.io", Version: "v1", Resource: "clusterrolebindings"} + +var clusterrolebindingsKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "ClusterRoleBinding"} + +// Get takes name of the clusterRoleBinding, and returns the corresponding clusterRoleBinding object, and an error if there is any. +func (c *FakeClusterRoleBindings) Get(name string, options v1.GetOptions) (result *rbac_v1.ClusterRoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootGetAction(clusterrolebindingsResource, name), &rbac_v1.ClusterRoleBinding{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRoleBinding), err +} + +// List takes label and field selectors, and returns the list of ClusterRoleBindings that match those selectors. +func (c *FakeClusterRoleBindings) List(opts v1.ListOptions) (result *rbac_v1.ClusterRoleBindingList, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootListAction(clusterrolebindingsResource, clusterrolebindingsKind, opts), &rbac_v1.ClusterRoleBindingList{}) + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &rbac_v1.ClusterRoleBindingList{} + for _, item := range obj.(*rbac_v1.ClusterRoleBindingList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested clusterRoleBindings. +func (c *FakeClusterRoleBindings) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewRootWatchAction(clusterrolebindingsResource, opts)) +} + +// Create takes the representation of a clusterRoleBinding and creates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. +func (c *FakeClusterRoleBindings) Create(clusterRoleBinding *rbac_v1.ClusterRoleBinding) (result *rbac_v1.ClusterRoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootCreateAction(clusterrolebindingsResource, clusterRoleBinding), &rbac_v1.ClusterRoleBinding{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRoleBinding), err +} + +// Update takes the representation of a clusterRoleBinding and updates it. Returns the server's representation of the clusterRoleBinding, and an error, if there is any. +func (c *FakeClusterRoleBindings) Update(clusterRoleBinding *rbac_v1.ClusterRoleBinding) (result *rbac_v1.ClusterRoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootUpdateAction(clusterrolebindingsResource, clusterRoleBinding), &rbac_v1.ClusterRoleBinding{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRoleBinding), err +} + +// Delete takes name of the clusterRoleBinding and deletes it. Returns an error if one occurs. +func (c *FakeClusterRoleBindings) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewRootDeleteAction(clusterrolebindingsResource, name), &rbac_v1.ClusterRoleBinding{}) + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeClusterRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewRootDeleteCollectionAction(clusterrolebindingsResource, listOptions) + + _, err := c.Fake.Invokes(action, &rbac_v1.ClusterRoleBindingList{}) + return err +} + +// Patch applies the patch and returns the patched clusterRoleBinding. +func (c *FakeClusterRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.ClusterRoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewRootPatchSubresourceAction(clusterrolebindingsResource, name, data, subresources...), &rbac_v1.ClusterRoleBinding{}) + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.ClusterRoleBinding), err +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go new file mode 100644 index 00000000000..cddaf6d5067 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rbac_client.go @@ -0,0 +1,50 @@ +/* +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. +*/ + +package fake + +import ( + v1 "k8s.io/client-go/kubernetes/typed/rbac/v1" + rest "k8s.io/client-go/rest" + testing "k8s.io/client-go/testing" +) + +type FakeRbacV1 struct { + *testing.Fake +} + +func (c *FakeRbacV1) ClusterRoles() v1.ClusterRoleInterface { + return &FakeClusterRoles{c} +} + +func (c *FakeRbacV1) ClusterRoleBindings() v1.ClusterRoleBindingInterface { + return &FakeClusterRoleBindings{c} +} + +func (c *FakeRbacV1) Roles(namespace string) v1.RoleInterface { + return &FakeRoles{c, namespace} +} + +func (c *FakeRbacV1) RoleBindings(namespace string) v1.RoleBindingInterface { + return &FakeRoleBindings{c, namespace} +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *FakeRbacV1) RESTClient() rest.Interface { + var ret *rest.RESTClient + return ret +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go new file mode 100644 index 00000000000..f64ede63897 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_role.go @@ -0,0 +1,126 @@ +/* +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. +*/ + +package fake + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeRoles implements RoleInterface +type FakeRoles struct { + Fake *FakeRbacV1 + ns string +} + +var rolesResource = schema.GroupVersionResource{Group: "rbac.authorization.k8s.io", Version: "v1", Resource: "roles"} + +var rolesKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "Role"} + +// Get takes name of the role, and returns the corresponding role object, and an error if there is any. +func (c *FakeRoles) Get(name string, options v1.GetOptions) (result *rbac_v1.Role, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(rolesResource, c.ns, name), &rbac_v1.Role{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.Role), err +} + +// List takes label and field selectors, and returns the list of Roles that match those selectors. +func (c *FakeRoles) List(opts v1.ListOptions) (result *rbac_v1.RoleList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(rolesResource, rolesKind, c.ns, opts), &rbac_v1.RoleList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &rbac_v1.RoleList{} + for _, item := range obj.(*rbac_v1.RoleList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested roles. +func (c *FakeRoles) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(rolesResource, c.ns, opts)) + +} + +// Create takes the representation of a role and creates it. Returns the server's representation of the role, and an error, if there is any. +func (c *FakeRoles) Create(role *rbac_v1.Role) (result *rbac_v1.Role, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(rolesResource, c.ns, role), &rbac_v1.Role{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.Role), err +} + +// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any. +func (c *FakeRoles) Update(role *rbac_v1.Role) (result *rbac_v1.Role, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(rolesResource, c.ns, role), &rbac_v1.Role{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.Role), err +} + +// Delete takes name of the role and deletes it. Returns an error if one occurs. +func (c *FakeRoles) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(rolesResource, c.ns, name), &rbac_v1.Role{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeRoles) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(rolesResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &rbac_v1.RoleList{}) + return err +} + +// Patch applies the patch and returns the patched role. +func (c *FakeRoles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.Role, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolesResource, c.ns, name, data, subresources...), &rbac_v1.Role{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.Role), err +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go new file mode 100644 index 00000000000..e499cf95b31 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/fake_rolebinding.go @@ -0,0 +1,126 @@ +/* +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. +*/ + +package fake + +import ( + rbac_v1 "k8s.io/api/rbac/v1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + labels "k8s.io/apimachinery/pkg/labels" + schema "k8s.io/apimachinery/pkg/runtime/schema" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + testing "k8s.io/client-go/testing" +) + +// FakeRoleBindings implements RoleBindingInterface +type FakeRoleBindings struct { + Fake *FakeRbacV1 + ns string +} + +var rolebindingsResource = schema.GroupVersionResource{Group: "rbac.authorization.k8s.io", Version: "v1", Resource: "rolebindings"} + +var rolebindingsKind = schema.GroupVersionKind{Group: "rbac.authorization.k8s.io", Version: "v1", Kind: "RoleBinding"} + +// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any. +func (c *FakeRoleBindings) Get(name string, options v1.GetOptions) (result *rbac_v1.RoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewGetAction(rolebindingsResource, c.ns, name), &rbac_v1.RoleBinding{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.RoleBinding), err +} + +// List takes label and field selectors, and returns the list of RoleBindings that match those selectors. +func (c *FakeRoleBindings) List(opts v1.ListOptions) (result *rbac_v1.RoleBindingList, err error) { + obj, err := c.Fake. + Invokes(testing.NewListAction(rolebindingsResource, rolebindingsKind, c.ns, opts), &rbac_v1.RoleBindingList{}) + + if obj == nil { + return nil, err + } + + label, _, _ := testing.ExtractFromListOptions(opts) + if label == nil { + label = labels.Everything() + } + list := &rbac_v1.RoleBindingList{} + for _, item := range obj.(*rbac_v1.RoleBindingList).Items { + if label.Matches(labels.Set(item.Labels)) { + list.Items = append(list.Items, item) + } + } + return list, err +} + +// Watch returns a watch.Interface that watches the requested roleBindings. +func (c *FakeRoleBindings) Watch(opts v1.ListOptions) (watch.Interface, error) { + return c.Fake. + InvokesWatch(testing.NewWatchAction(rolebindingsResource, c.ns, opts)) + +} + +// Create takes the representation of a roleBinding and creates it. Returns the server's representation of the roleBinding, and an error, if there is any. +func (c *FakeRoleBindings) Create(roleBinding *rbac_v1.RoleBinding) (result *rbac_v1.RoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewCreateAction(rolebindingsResource, c.ns, roleBinding), &rbac_v1.RoleBinding{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.RoleBinding), err +} + +// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any. +func (c *FakeRoleBindings) Update(roleBinding *rbac_v1.RoleBinding) (result *rbac_v1.RoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewUpdateAction(rolebindingsResource, c.ns, roleBinding), &rbac_v1.RoleBinding{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.RoleBinding), err +} + +// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs. +func (c *FakeRoleBindings) Delete(name string, options *v1.DeleteOptions) error { + _, err := c.Fake. + Invokes(testing.NewDeleteAction(rolebindingsResource, c.ns, name), &rbac_v1.RoleBinding{}) + + return err +} + +// DeleteCollection deletes a collection of objects. +func (c *FakeRoleBindings) DeleteCollection(options *v1.DeleteOptions, listOptions v1.ListOptions) error { + action := testing.NewDeleteCollectionAction(rolebindingsResource, c.ns, listOptions) + + _, err := c.Fake.Invokes(action, &rbac_v1.RoleBindingList{}) + return err +} + +// Patch applies the patch and returns the patched roleBinding. +func (c *FakeRoleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *rbac_v1.RoleBinding, err error) { + obj, err := c.Fake. + Invokes(testing.NewPatchSubresourceAction(rolebindingsResource, c.ns, name, data, subresources...), &rbac_v1.RoleBinding{}) + + if obj == nil { + return nil, err + } + return obj.(*rbac_v1.RoleBinding), err +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go new file mode 100644 index 00000000000..aa3df0df2fc --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/generated_expansion.go @@ -0,0 +1,25 @@ +/* +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. +*/ + +package v1 + +type ClusterRoleExpansion interface{} + +type ClusterRoleBindingExpansion interface{} + +type RoleExpansion interface{} + +type RoleBindingExpansion interface{} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go new file mode 100644 index 00000000000..dd0a0cb0dc5 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rbac_client.go @@ -0,0 +1,103 @@ +/* +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. +*/ + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + serializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +type RbacV1Interface interface { + RESTClient() rest.Interface + ClusterRolesGetter + ClusterRoleBindingsGetter + RolesGetter + RoleBindingsGetter +} + +// RbacV1Client is used to interact with features provided by the rbac.authorization.k8s.io group. +type RbacV1Client struct { + restClient rest.Interface +} + +func (c *RbacV1Client) ClusterRoles() ClusterRoleInterface { + return newClusterRoles(c) +} + +func (c *RbacV1Client) ClusterRoleBindings() ClusterRoleBindingInterface { + return newClusterRoleBindings(c) +} + +func (c *RbacV1Client) Roles(namespace string) RoleInterface { + return newRoles(c, namespace) +} + +func (c *RbacV1Client) RoleBindings(namespace string) RoleBindingInterface { + return newRoleBindings(c, namespace) +} + +// NewForConfig creates a new RbacV1Client for the given config. +func NewForConfig(c *rest.Config) (*RbacV1Client, error) { + config := *c + if err := setConfigDefaults(&config); err != nil { + return nil, err + } + client, err := rest.RESTClientFor(&config) + if err != nil { + return nil, err + } + return &RbacV1Client{client}, nil +} + +// NewForConfigOrDie creates a new RbacV1Client for the given config and +// panics if there is an error in the config. +func NewForConfigOrDie(c *rest.Config) *RbacV1Client { + client, err := NewForConfig(c) + if err != nil { + panic(err) + } + return client +} + +// New creates a new RbacV1Client for the given RESTClient. +func New(c rest.Interface) *RbacV1Client { + return &RbacV1Client{c} +} + +func setConfigDefaults(config *rest.Config) error { + gv := v1.SchemeGroupVersion + config.GroupVersion = &gv + config.APIPath = "/apis" + config.NegotiatedSerializer = serializer.DirectCodecFactory{CodecFactory: scheme.Codecs} + + if config.UserAgent == "" { + config.UserAgent = rest.DefaultKubernetesUserAgent() + } + + return nil +} + +// RESTClient returns a RESTClient that is used to communicate +// with API server by this client implementation. +func (c *RbacV1Client) RESTClient() rest.Interface { + if c == nil { + return nil + } + return c.restClient +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go new file mode 100644 index 00000000000..d83e722b734 --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/role.go @@ -0,0 +1,155 @@ +/* +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. +*/ + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// RolesGetter has a method to return a RoleInterface. +// A group's client should implement this interface. +type RolesGetter interface { + Roles(namespace string) RoleInterface +} + +// RoleInterface has methods to work with Role resources. +type RoleInterface interface { + Create(*v1.Role) (*v1.Role, error) + Update(*v1.Role) (*v1.Role, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.Role, error) + List(opts meta_v1.ListOptions) (*v1.RoleList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Role, err error) + RoleExpansion +} + +// roles implements RoleInterface +type roles struct { + client rest.Interface + ns string +} + +// newRoles returns a Roles +func newRoles(c *RbacV1Client, namespace string) *roles { + return &roles{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the role, and returns the corresponding role object, and an error if there is any. +func (c *roles) Get(name string, options meta_v1.GetOptions) (result *v1.Role, err error) { + result = &v1.Role{} + err = c.client.Get(). + Namespace(c.ns). + Resource("roles"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of Roles that match those selectors. +func (c *roles) List(opts meta_v1.ListOptions) (result *v1.RoleList, err error) { + result = &v1.RoleList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("roles"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested roles. +func (c *roles) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("roles"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a role and creates it. Returns the server's representation of the role, and an error, if there is any. +func (c *roles) Create(role *v1.Role) (result *v1.Role, err error) { + result = &v1.Role{} + err = c.client.Post(). + Namespace(c.ns). + Resource("roles"). + Body(role). + Do(). + Into(result) + return +} + +// Update takes the representation of a role and updates it. Returns the server's representation of the role, and an error, if there is any. +func (c *roles) Update(role *v1.Role) (result *v1.Role, err error) { + result = &v1.Role{} + err = c.client.Put(). + Namespace(c.ns). + Resource("roles"). + Name(role.Name). + Body(role). + Do(). + Into(result) + return +} + +// Delete takes name of the role and deletes it. Returns an error if one occurs. +func (c *roles) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("roles"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *roles) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("roles"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched role. +func (c *roles) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.Role, err error) { + result = &v1.Role{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("roles"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go new file mode 100644 index 00000000000..a424365807f --- /dev/null +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/rolebinding.go @@ -0,0 +1,155 @@ +/* +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. +*/ + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + scheme "k8s.io/client-go/kubernetes/scheme" + rest "k8s.io/client-go/rest" +) + +// RoleBindingsGetter has a method to return a RoleBindingInterface. +// A group's client should implement this interface. +type RoleBindingsGetter interface { + RoleBindings(namespace string) RoleBindingInterface +} + +// RoleBindingInterface has methods to work with RoleBinding resources. +type RoleBindingInterface interface { + Create(*v1.RoleBinding) (*v1.RoleBinding, error) + Update(*v1.RoleBinding) (*v1.RoleBinding, error) + Delete(name string, options *meta_v1.DeleteOptions) error + DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error + Get(name string, options meta_v1.GetOptions) (*v1.RoleBinding, error) + List(opts meta_v1.ListOptions) (*v1.RoleBindingList, error) + Watch(opts meta_v1.ListOptions) (watch.Interface, error) + Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.RoleBinding, err error) + RoleBindingExpansion +} + +// roleBindings implements RoleBindingInterface +type roleBindings struct { + client rest.Interface + ns string +} + +// newRoleBindings returns a RoleBindings +func newRoleBindings(c *RbacV1Client, namespace string) *roleBindings { + return &roleBindings{ + client: c.RESTClient(), + ns: namespace, + } +} + +// Get takes name of the roleBinding, and returns the corresponding roleBinding object, and an error if there is any. +func (c *roleBindings) Get(name string, options meta_v1.GetOptions) (result *v1.RoleBinding, err error) { + result = &v1.RoleBinding{} + err = c.client.Get(). + Namespace(c.ns). + Resource("rolebindings"). + Name(name). + VersionedParams(&options, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// List takes label and field selectors, and returns the list of RoleBindings that match those selectors. +func (c *roleBindings) List(opts meta_v1.ListOptions) (result *v1.RoleBindingList, err error) { + result = &v1.RoleBindingList{} + err = c.client.Get(). + Namespace(c.ns). + Resource("rolebindings"). + VersionedParams(&opts, scheme.ParameterCodec). + Do(). + Into(result) + return +} + +// Watch returns a watch.Interface that watches the requested roleBindings. +func (c *roleBindings) Watch(opts meta_v1.ListOptions) (watch.Interface, error) { + opts.Watch = true + return c.client.Get(). + Namespace(c.ns). + Resource("rolebindings"). + VersionedParams(&opts, scheme.ParameterCodec). + Watch() +} + +// Create takes the representation of a roleBinding and creates it. Returns the server's representation of the roleBinding, and an error, if there is any. +func (c *roleBindings) Create(roleBinding *v1.RoleBinding) (result *v1.RoleBinding, err error) { + result = &v1.RoleBinding{} + err = c.client.Post(). + Namespace(c.ns). + Resource("rolebindings"). + Body(roleBinding). + Do(). + Into(result) + return +} + +// Update takes the representation of a roleBinding and updates it. Returns the server's representation of the roleBinding, and an error, if there is any. +func (c *roleBindings) Update(roleBinding *v1.RoleBinding) (result *v1.RoleBinding, err error) { + result = &v1.RoleBinding{} + err = c.client.Put(). + Namespace(c.ns). + Resource("rolebindings"). + Name(roleBinding.Name). + Body(roleBinding). + Do(). + Into(result) + return +} + +// Delete takes name of the roleBinding and deletes it. Returns an error if one occurs. +func (c *roleBindings) Delete(name string, options *meta_v1.DeleteOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("rolebindings"). + Name(name). + Body(options). + Do(). + Error() +} + +// DeleteCollection deletes a collection of objects. +func (c *roleBindings) DeleteCollection(options *meta_v1.DeleteOptions, listOptions meta_v1.ListOptions) error { + return c.client.Delete(). + Namespace(c.ns). + Resource("rolebindings"). + VersionedParams(&listOptions, scheme.ParameterCodec). + Body(options). + Do(). + Error() +} + +// Patch applies the patch and returns the patched roleBinding. +func (c *roleBindings) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.RoleBinding, err error) { + result = &v1.RoleBinding{} + err = c.client.Patch(pt). + Namespace(c.ns). + Resource("rolebindings"). + SubResource(subresources...). + Name(name). + Body(data). + Do(). + Into(result) + return +} diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD b/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD new file mode 100644 index 00000000000..a5613b08204 --- /dev/null +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD @@ -0,0 +1,40 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = [ + "clusterrole.go", + "clusterrolebinding.go", + "expansion_generated.go", + "role.go", + "rolebinding.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/api/rbac/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go b/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go new file mode 100644 index 00000000000..f95d063bef3 --- /dev/null +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrole.go @@ -0,0 +1,67 @@ +/* +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. +*/ + +// This file was automatically generated by lister-gen + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/api/errors" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ClusterRoleLister helps list ClusterRoles. +type ClusterRoleLister interface { + // List lists all ClusterRoles in the indexer. + List(selector labels.Selector) (ret []*v1.ClusterRole, err error) + // Get retrieves the ClusterRole from the index for a given name. + Get(name string) (*v1.ClusterRole, error) + ClusterRoleListerExpansion +} + +// clusterRoleLister implements the ClusterRoleLister interface. +type clusterRoleLister struct { + indexer cache.Indexer +} + +// NewClusterRoleLister returns a new ClusterRoleLister. +func NewClusterRoleLister(indexer cache.Indexer) ClusterRoleLister { + return &clusterRoleLister{indexer: indexer} +} + +// List lists all ClusterRoles in the indexer. +func (s *clusterRoleLister) List(selector labels.Selector) (ret []*v1.ClusterRole, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.ClusterRole)) + }) + return ret, err +} + +// Get retrieves the ClusterRole from the index for a given name. +func (s *clusterRoleLister) Get(name string) (*v1.ClusterRole, error) { + key := &v1.ClusterRole{ObjectMeta: meta_v1.ObjectMeta{Name: name}} + obj, exists, err := s.indexer.Get(key) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("clusterrole"), name) + } + return obj.(*v1.ClusterRole), nil +} diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go b/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go new file mode 100644 index 00000000000..cce8a0f4870 --- /dev/null +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/clusterrolebinding.go @@ -0,0 +1,67 @@ +/* +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. +*/ + +// This file was automatically generated by lister-gen + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/api/errors" + meta_v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// ClusterRoleBindingLister helps list ClusterRoleBindings. +type ClusterRoleBindingLister interface { + // List lists all ClusterRoleBindings in the indexer. + List(selector labels.Selector) (ret []*v1.ClusterRoleBinding, err error) + // Get retrieves the ClusterRoleBinding from the index for a given name. + Get(name string) (*v1.ClusterRoleBinding, error) + ClusterRoleBindingListerExpansion +} + +// clusterRoleBindingLister implements the ClusterRoleBindingLister interface. +type clusterRoleBindingLister struct { + indexer cache.Indexer +} + +// NewClusterRoleBindingLister returns a new ClusterRoleBindingLister. +func NewClusterRoleBindingLister(indexer cache.Indexer) ClusterRoleBindingLister { + return &clusterRoleBindingLister{indexer: indexer} +} + +// List lists all ClusterRoleBindings in the indexer. +func (s *clusterRoleBindingLister) List(selector labels.Selector) (ret []*v1.ClusterRoleBinding, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.ClusterRoleBinding)) + }) + return ret, err +} + +// Get retrieves the ClusterRoleBinding from the index for a given name. +func (s *clusterRoleBindingLister) Get(name string) (*v1.ClusterRoleBinding, error) { + key := &v1.ClusterRoleBinding{ObjectMeta: meta_v1.ObjectMeta{Name: name}} + obj, exists, err := s.indexer.Get(key) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("clusterrolebinding"), name) + } + return obj.(*v1.ClusterRoleBinding), nil +} diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/expansion_generated.go b/staging/src/k8s.io/client-go/listers/rbac/v1/expansion_generated.go new file mode 100644 index 00000000000..4d9872d3e25 --- /dev/null +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/expansion_generated.go @@ -0,0 +1,43 @@ +/* +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. +*/ + +// This file was automatically generated by lister-gen + +package v1 + +// ClusterRoleListerExpansion allows custom methods to be added to +// ClusterRoleLister. +type ClusterRoleListerExpansion interface{} + +// ClusterRoleBindingListerExpansion allows custom methods to be added to +// ClusterRoleBindingLister. +type ClusterRoleBindingListerExpansion interface{} + +// RoleListerExpansion allows custom methods to be added to +// RoleLister. +type RoleListerExpansion interface{} + +// RoleNamespaceListerExpansion allows custom methods to be added to +// RoleNamespaceLister. +type RoleNamespaceListerExpansion interface{} + +// RoleBindingListerExpansion allows custom methods to be added to +// RoleBindingLister. +type RoleBindingListerExpansion interface{} + +// RoleBindingNamespaceListerExpansion allows custom methods to be added to +// RoleBindingNamespaceLister. +type RoleBindingNamespaceListerExpansion interface{} diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/role.go b/staging/src/k8s.io/client-go/listers/rbac/v1/role.go new file mode 100644 index 00000000000..8d7625dbe30 --- /dev/null +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/role.go @@ -0,0 +1,94 @@ +/* +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. +*/ + +// This file was automatically generated by lister-gen + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// RoleLister helps list Roles. +type RoleLister interface { + // List lists all Roles in the indexer. + List(selector labels.Selector) (ret []*v1.Role, err error) + // Roles returns an object that can list and get Roles. + Roles(namespace string) RoleNamespaceLister + RoleListerExpansion +} + +// roleLister implements the RoleLister interface. +type roleLister struct { + indexer cache.Indexer +} + +// NewRoleLister returns a new RoleLister. +func NewRoleLister(indexer cache.Indexer) RoleLister { + return &roleLister{indexer: indexer} +} + +// List lists all Roles in the indexer. +func (s *roleLister) List(selector labels.Selector) (ret []*v1.Role, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.Role)) + }) + return ret, err +} + +// Roles returns an object that can list and get Roles. +func (s *roleLister) Roles(namespace string) RoleNamespaceLister { + return roleNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// RoleNamespaceLister helps list and get Roles. +type RoleNamespaceLister interface { + // List lists all Roles in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.Role, err error) + // Get retrieves the Role from the indexer for a given namespace and name. + Get(name string) (*v1.Role, error) + RoleNamespaceListerExpansion +} + +// roleNamespaceLister implements the RoleNamespaceLister +// interface. +type roleNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all Roles in the indexer for a given namespace. +func (s roleNamespaceLister) List(selector labels.Selector) (ret []*v1.Role, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.Role)) + }) + return ret, err +} + +// Get retrieves the Role from the indexer for a given namespace and name. +func (s roleNamespaceLister) Get(name string) (*v1.Role, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("role"), name) + } + return obj.(*v1.Role), nil +} diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/rolebinding.go b/staging/src/k8s.io/client-go/listers/rbac/v1/rolebinding.go new file mode 100644 index 00000000000..b8209d85120 --- /dev/null +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/rolebinding.go @@ -0,0 +1,94 @@ +/* +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. +*/ + +// This file was automatically generated by lister-gen + +package v1 + +import ( + v1 "k8s.io/api/rbac/v1" + "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/tools/cache" +) + +// RoleBindingLister helps list RoleBindings. +type RoleBindingLister interface { + // List lists all RoleBindings in the indexer. + List(selector labels.Selector) (ret []*v1.RoleBinding, err error) + // RoleBindings returns an object that can list and get RoleBindings. + RoleBindings(namespace string) RoleBindingNamespaceLister + RoleBindingListerExpansion +} + +// roleBindingLister implements the RoleBindingLister interface. +type roleBindingLister struct { + indexer cache.Indexer +} + +// NewRoleBindingLister returns a new RoleBindingLister. +func NewRoleBindingLister(indexer cache.Indexer) RoleBindingLister { + return &roleBindingLister{indexer: indexer} +} + +// List lists all RoleBindings in the indexer. +func (s *roleBindingLister) List(selector labels.Selector) (ret []*v1.RoleBinding, err error) { + err = cache.ListAll(s.indexer, selector, func(m interface{}) { + ret = append(ret, m.(*v1.RoleBinding)) + }) + return ret, err +} + +// RoleBindings returns an object that can list and get RoleBindings. +func (s *roleBindingLister) RoleBindings(namespace string) RoleBindingNamespaceLister { + return roleBindingNamespaceLister{indexer: s.indexer, namespace: namespace} +} + +// RoleBindingNamespaceLister helps list and get RoleBindings. +type RoleBindingNamespaceLister interface { + // List lists all RoleBindings in the indexer for a given namespace. + List(selector labels.Selector) (ret []*v1.RoleBinding, err error) + // Get retrieves the RoleBinding from the indexer for a given namespace and name. + Get(name string) (*v1.RoleBinding, error) + RoleBindingNamespaceListerExpansion +} + +// roleBindingNamespaceLister implements the RoleBindingNamespaceLister +// interface. +type roleBindingNamespaceLister struct { + indexer cache.Indexer + namespace string +} + +// List lists all RoleBindings in the indexer for a given namespace. +func (s roleBindingNamespaceLister) List(selector labels.Selector) (ret []*v1.RoleBinding, err error) { + err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { + ret = append(ret, m.(*v1.RoleBinding)) + }) + return ret, err +} + +// Get retrieves the RoleBinding from the indexer for a given namespace and name. +func (s roleBindingNamespaceLister) Get(name string) (*v1.RoleBinding, error) { + obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) + if err != nil { + return nil, err + } + if !exists { + return nil, errors.NewNotFound(v1.Resource("rolebinding"), name) + } + return obj.(*v1.RoleBinding), nil +} From 509af53cbd707467f184467b4579e3dc7feacbbe Mon Sep 17 00:00:00 2001 From: Kenneth Owens Date: Wed, 9 Aug 2017 15:17:56 -0700 Subject: [PATCH 143/183] Adds v1.Service.PublishUnreadyAddresses and deprecates service.alpha.kubernetes.io/tolerate-unready-endpoints --- pkg/api/types.go | 12 ++++++++++++ pkg/controller/endpoint/endpoints_controller.go | 2 ++ staging/src/k8s.io/api/core/v1/types.go | 12 ++++++++++++ 3 files changed, 26 insertions(+) diff --git a/pkg/api/types.go b/pkg/api/types.go index 7d6e767f3f2..e6d637f0c82 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -2722,6 +2722,18 @@ type ServiceSpec struct { // and ExternalTrafficPolicy is set to Local. // +optional HealthCheckNodePort int32 + + // publishNotReadyAddresses, when set to true, indicates that DNS implementations + // must publish the notReadyAddresses of subsets for the Endpoints associated with + // the Service. The default value is false. + // The primary use case for setting this field is to use a StatefulSet's Headless Service + // to propagate SRV records for its Pods without respect to their readiness for purpose + // of peer discovery. + // This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints + // when that annotation is deprecated and all clients have been converted to use this + // field. + // +optional + PublishNotReadyAddresses bool } type ServicePort struct { diff --git a/pkg/controller/endpoint/endpoints_controller.go b/pkg/controller/endpoint/endpoints_controller.go index f1cea8b39b0..78bdf615d3f 100644 --- a/pkg/controller/endpoint/endpoints_controller.go +++ b/pkg/controller/endpoint/endpoints_controller.go @@ -63,6 +63,8 @@ const ( // receiving traffic for the Service from the moment the kubelet starts all // containers in the pod and marks it "Running", till the kubelet stops all // containers and deletes the pod from the apiserver. + // This field is deprecated. v1.Service.PublishNotReadyAddresses will replace it + // subsequent releases. TolerateUnreadyEndpointsAnnotation = "service.alpha.kubernetes.io/tolerate-unready-endpoints" ) diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index 287710e04e8..6b79e441e9d 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -3070,6 +3070,18 @@ type ServiceSpec struct { // and ExternalTrafficPolicy is set to Local. // +optional HealthCheckNodePort int32 `json:"healthCheckNodePort,omitempty" protobuf:"bytes,12,opt,name=healthCheckNodePort"` + + // publishNotReadyAddresses, when set to true, indicates that DNS implementations + // must publish the notReadyAddresses of subsets for the Endpoints associated with + // the Service. The default value is false. + // The primary use case for setting this field is to use a StatefulSet's Headless Service + // to propagate SRV records for its Pods without respect to their readiness for purpose + // of peer discovery. + // This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints + // when that annotation is deprecated and all clients have been converted to use this + // field. + // +optional + PublishNotReadyAddresses bool `json:"publishNotReadyAddresses,omitempty" protobuf:"varint,13,opt,name=publishNotReadyAddresses"` } // ServicePort contains information on service's port. From 8fb609ba78f7ec7f0c20cdf962172fe62d35c0fb Mon Sep 17 00:00:00 2001 From: Kenneth Owens Date: Wed, 9 Aug 2017 15:19:47 -0700 Subject: [PATCH 144/183] generated code --- api/openapi-spec/swagger.json | 4 + api/swagger-spec/v1.json | 4 + .../apps/v1beta2/definitions.html | 2 +- docs/api-reference/v1/definitions.html | 7 + federation/apis/openapi-spec/swagger.json | 4 + federation/apis/swagger-spec/v1.json | 4 + .../docs/api-reference/v1/definitions.html | 7 + pkg/api/v1/zz_generated.conversion.go | 2 + .../src/k8s.io/api/core/v1/generated.pb.go | 1466 +++++++++-------- .../src/k8s.io/api/core/v1/generated.proto | 12 + .../src/k8s.io/api/core/v1/types.generated.go | 268 +-- .../core/v1/types_swagger_doc_generated.go | 1 + 12 files changed, 959 insertions(+), 822 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index f8c179fa342..9101e356c43 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -56963,6 +56963,10 @@ "x-kubernetes-patch-merge-key": "port", "x-kubernetes-patch-strategy": "merge" }, + "publishNotReadyAddresses": { + "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.", + "type": "boolean" + }, "selector": { "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", "type": "object", diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index 823626f51e5..fa4d81f5575 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -21811,6 +21811,10 @@ "type": "integer", "format": "int32", "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local." + }, + "publishNotReadyAddresses": { + "type": "boolean", + "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field." } } }, diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html index 42167c7ead0..ec3ea9b7884 100755 --- a/docs/api-reference/apps/v1beta2/definitions.html +++ b/docs/api-reference/apps/v1beta2/definitions.html @@ -7260,7 +7260,7 @@ Examples:
    diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html index 8fc6cf75a70..99906a231fc 100755 --- a/docs/api-reference/v1/definitions.html +++ b/docs/api-reference/v1/definitions.html @@ -10082,6 +10082,13 @@ Examples:

    integer (int32)

    + +

    publishNotReadyAddresses

    +

    publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet’s Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.

    +

    false

    +

    boolean

    +

    false

    + diff --git a/federation/apis/openapi-spec/swagger.json b/federation/apis/openapi-spec/swagger.json index ec66398aa0d..e34518e0093 100644 --- a/federation/apis/openapi-spec/swagger.json +++ b/federation/apis/openapi-spec/swagger.json @@ -11850,6 +11850,10 @@ "x-kubernetes-patch-merge-key": "port", "x-kubernetes-patch-strategy": "merge" }, + "publishNotReadyAddresses": { + "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.", + "type": "boolean" + }, "selector": { "description": "Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/", "type": "object", diff --git a/federation/apis/swagger-spec/v1.json b/federation/apis/swagger-spec/v1.json index ecff7047267..de5cbc562de 100644 --- a/federation/apis/swagger-spec/v1.json +++ b/federation/apis/swagger-spec/v1.json @@ -5124,6 +5124,10 @@ "type": "integer", "format": "int32", "description": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local." + }, + "publishNotReadyAddresses": { + "type": "boolean", + "description": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field." } } }, diff --git a/federation/docs/api-reference/v1/definitions.html b/federation/docs/api-reference/v1/definitions.html index 155a431941e..b4ba4127bbd 100755 --- a/federation/docs/api-reference/v1/definitions.html +++ b/federation/docs/api-reference/v1/definitions.html @@ -2226,6 +2226,13 @@ When an object is created, the system will populate this list with the current s

    integer (int32)

    + +

    publishNotReadyAddresses

    +

    publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet’s Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.

    +

    false

    +

    boolean

    +

    false

    + diff --git a/pkg/api/v1/zz_generated.conversion.go b/pkg/api/v1/zz_generated.conversion.go index 540d0a4e79f..3f33d035af2 100644 --- a/pkg/api/v1/zz_generated.conversion.go +++ b/pkg/api/v1/zz_generated.conversion.go @@ -4839,6 +4839,7 @@ func autoConvert_v1_ServiceSpec_To_api_ServiceSpec(in *v1.ServiceSpec, out *api. out.ExternalName = in.ExternalName out.ExternalTrafficPolicy = api.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) out.HealthCheckNodePort = in.HealthCheckNodePort + out.PublishNotReadyAddresses = in.PublishNotReadyAddresses return nil } @@ -4859,6 +4860,7 @@ func autoConvert_api_ServiceSpec_To_v1_ServiceSpec(in *api.ServiceSpec, out *v1. out.LoadBalancerSourceRanges = *(*[]string)(unsafe.Pointer(&in.LoadBalancerSourceRanges)) out.ExternalTrafficPolicy = v1.ServiceExternalTrafficPolicyType(in.ExternalTrafficPolicy) out.HealthCheckNodePort = in.HealthCheckNodePort + out.PublishNotReadyAddresses = in.PublishNotReadyAddresses return nil } diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index 862017b4032..95e78680b27 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -8787,6 +8787,14 @@ func (m *ServiceSpec) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0x60 i++ i = encodeVarintGenerated(dAtA, i, uint64(m.HealthCheckNodePort)) + dAtA[i] = 0x68 + i++ + if m.PublishNotReadyAddresses { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ return i, nil } @@ -12331,6 +12339,7 @@ func (m *ServiceSpec) Size() (n int) { l = len(m.ExternalTrafficPolicy) n += 1 + l + sovGenerated(uint64(l)) n += 1 + sovGenerated(uint64(m.HealthCheckNodePort)) + n += 2 return n } @@ -14875,6 +14884,7 @@ func (this *ServiceSpec) String() string { `ExternalName:` + fmt.Sprintf("%v", this.ExternalName) + `,`, `ExternalTrafficPolicy:` + fmt.Sprintf("%v", this.ExternalTrafficPolicy) + `,`, `HealthCheckNodePort:` + fmt.Sprintf("%v", this.HealthCheckNodePort) + `,`, + `PublishNotReadyAddresses:` + fmt.Sprintf("%v", this.PublishNotReadyAddresses) + `,`, `}`, }, "") return s @@ -41898,6 +41908,26 @@ func (m *ServiceSpec) Unmarshal(dAtA []byte) error { break } } + case 13: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PublishNotReadyAddresses", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.PublishNotReadyAddresses = bool(v != 0) default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -44680,722 +44710,724 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 11472 bytes of a gzipped FileDescriptorProto + // 11500 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xd7, - 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0xb1, 0xcb, 0x59, 0x90, 0x5c, 0x2c, 0x9b, - 0x12, 0xb9, 0x7c, 0x01, 0xe6, 0x92, 0x94, 0x28, 0x91, 0xa2, 0x04, 0x60, 0x80, 0x5d, 0x70, 0x5f, - 0xc3, 0x3b, 0xd8, 0xa5, 0x49, 0xd1, 0xb4, 0x7a, 0xa7, 0x2f, 0x80, 0x26, 0x1a, 0xdd, 0xc3, 0xee, - 0x1e, 0xec, 0x82, 0x65, 0x55, 0x7d, 0x9f, 0x22, 0x2b, 0x0f, 0xf9, 0x87, 0x2b, 0xe5, 0x4a, 0x1c, - 0x4b, 0xe5, 0x54, 0xe5, 0x51, 0xb6, 0xa2, 0x24, 0x65, 0x47, 0x8e, 0x1f, 0x92, 0x53, 0x49, 0x9c, - 0x47, 0x49, 0x7f, 0x1c, 0xfb, 0x47, 0x4a, 0xaa, 0x4a, 0x05, 0xb6, 0xa0, 0xaa, 0xa4, 0xf2, 0x23, - 0xa9, 0xbc, 0xfe, 0x18, 0x71, 0xa2, 0xd4, 0x7d, 0xf6, 0xbd, 0x3d, 0xdd, 0x33, 0x83, 0x25, 0x16, - 0xa4, 0x54, 0xf9, 0x37, 0x73, 0xce, 0xb9, 0xe7, 0xde, 0xbe, 0x8f, 0x73, 0xcf, 0x39, 0xf7, 0xdc, - 0x73, 0xe1, 0xa5, 0xed, 0x17, 0xe3, 0x79, 0x2f, 0x5c, 0xd8, 0x6e, 0xdf, 0x26, 0x51, 0x40, 0x12, - 0x12, 0x2f, 0xec, 0x92, 0xc0, 0x0d, 0xa3, 0x05, 0x81, 0x70, 0x5a, 0xde, 0x42, 0x33, 0x8c, 0xc8, - 0xc2, 0xee, 0xb3, 0x0b, 0x9b, 0x24, 0x20, 0x91, 0x93, 0x10, 0x77, 0xbe, 0x15, 0x85, 0x49, 0x88, - 0x10, 0xa7, 0x99, 0x77, 0x5a, 0xde, 0x3c, 0xa5, 0x99, 0xdf, 0x7d, 0x76, 0xf6, 0x99, 0x4d, 0x2f, - 0xd9, 0x6a, 0xdf, 0x9e, 0x6f, 0x86, 0x3b, 0x0b, 0x9b, 0xe1, 0x66, 0xb8, 0xc0, 0x48, 0x6f, 0xb7, - 0x37, 0xd8, 0x3f, 0xf6, 0x87, 0xfd, 0xe2, 0x2c, 0x66, 0x9f, 0x4f, 0xab, 0xd9, 0x71, 0x9a, 0x5b, - 0x5e, 0x40, 0xa2, 0xbd, 0x85, 0xd6, 0xf6, 0x26, 0xab, 0x37, 0x22, 0x71, 0xd8, 0x8e, 0x9a, 0x24, - 0x5b, 0x71, 0xd7, 0x52, 0xf1, 0xc2, 0x0e, 0x49, 0x9c, 0x9c, 0xe6, 0xce, 0x2e, 0x14, 0x95, 0x8a, - 0xda, 0x41, 0xe2, 0xed, 0x74, 0x56, 0xf3, 0xf1, 0x5e, 0x05, 0xe2, 0xe6, 0x16, 0xd9, 0x71, 0x3a, - 0xca, 0x3d, 0x57, 0x54, 0xae, 0x9d, 0x78, 0xfe, 0x82, 0x17, 0x24, 0x71, 0x12, 0x65, 0x0b, 0xd9, - 0xdf, 0xb3, 0xe0, 0xfc, 0xe2, 0xeb, 0x8d, 0x15, 0xdf, 0x89, 0x13, 0xaf, 0xb9, 0xe4, 0x87, 0xcd, - 0xed, 0x46, 0x12, 0x46, 0xe4, 0x56, 0xe8, 0xb7, 0x77, 0x48, 0x83, 0x75, 0x04, 0x7a, 0x1a, 0x46, - 0x76, 0xd9, 0xff, 0xb5, 0x5a, 0xd5, 0x3a, 0x6f, 0x5d, 0xa8, 0x2c, 0x4d, 0x7d, 0x67, 0x7f, 0xee, - 0x23, 0x07, 0xfb, 0x73, 0x23, 0xb7, 0x04, 0x1c, 0x2b, 0x0a, 0xf4, 0x18, 0x0c, 0x6d, 0xc4, 0xeb, - 0x7b, 0x2d, 0x52, 0x2d, 0x31, 0xda, 0x09, 0x41, 0x3b, 0xb4, 0xda, 0xa0, 0x50, 0x2c, 0xb0, 0x68, - 0x01, 0x2a, 0x2d, 0x27, 0x4a, 0xbc, 0xc4, 0x0b, 0x83, 0x6a, 0xf9, 0xbc, 0x75, 0x61, 0x70, 0x69, - 0x5a, 0x90, 0x56, 0xea, 0x12, 0x81, 0x53, 0x1a, 0xda, 0x8c, 0x88, 0x38, 0xee, 0x8d, 0xc0, 0xdf, - 0xab, 0x0e, 0x9c, 0xb7, 0x2e, 0x8c, 0xa4, 0xcd, 0xc0, 0x02, 0x8e, 0x15, 0x85, 0xfd, 0x2b, 0x25, - 0x18, 0x59, 0xdc, 0xd8, 0xf0, 0x02, 0x2f, 0xd9, 0x43, 0xb7, 0x60, 0x2c, 0x08, 0x5d, 0x22, 0xff, - 0xb3, 0xaf, 0x18, 0xbd, 0x78, 0x7e, 0xbe, 0x73, 0x2a, 0xcd, 0x5f, 0xd7, 0xe8, 0x96, 0xa6, 0x0e, - 0xf6, 0xe7, 0xc6, 0x74, 0x08, 0x36, 0xf8, 0x20, 0x0c, 0xa3, 0xad, 0xd0, 0x55, 0x6c, 0x4b, 0x8c, - 0xed, 0x5c, 0x1e, 0xdb, 0x7a, 0x4a, 0xb6, 0x34, 0x79, 0xb0, 0x3f, 0x37, 0xaa, 0x01, 0xb0, 0xce, - 0x04, 0xdd, 0x86, 0x49, 0xfa, 0x37, 0x48, 0x3c, 0xc5, 0xb7, 0xcc, 0xf8, 0x3e, 0x5a, 0xc4, 0x57, - 0x23, 0x5d, 0x3a, 0x75, 0xb0, 0x3f, 0x37, 0x99, 0x01, 0xe2, 0x2c, 0x43, 0xfb, 0x3d, 0x98, 0x58, - 0x4c, 0x12, 0xa7, 0xb9, 0x45, 0x5c, 0x3e, 0x82, 0xe8, 0x79, 0x18, 0x08, 0x9c, 0x1d, 0x22, 0xc6, - 0xf7, 0xbc, 0xe8, 0xd8, 0x81, 0xeb, 0xce, 0x0e, 0x39, 0xdc, 0x9f, 0x9b, 0xba, 0x19, 0x78, 0xef, - 0xb6, 0xc5, 0xac, 0xa0, 0x30, 0xcc, 0xa8, 0xd1, 0x45, 0x00, 0x97, 0xec, 0x7a, 0x4d, 0x52, 0x77, - 0x92, 0x2d, 0x31, 0xde, 0x48, 0x94, 0x85, 0x9a, 0xc2, 0x60, 0x8d, 0xca, 0xbe, 0x0b, 0x95, 0xc5, - 0xdd, 0xd0, 0x73, 0xeb, 0xa1, 0x1b, 0xa3, 0x6d, 0x98, 0x6c, 0x45, 0x64, 0x83, 0x44, 0x0a, 0x54, - 0xb5, 0xce, 0x97, 0x2f, 0x8c, 0x5e, 0xbc, 0x90, 0xfb, 0xb1, 0x26, 0xe9, 0x4a, 0x90, 0x44, 0x7b, - 0x4b, 0x0f, 0x88, 0xfa, 0x26, 0x33, 0x58, 0x9c, 0xe5, 0x6c, 0xff, 0xcb, 0x12, 0x9c, 0x5e, 0x7c, - 0xaf, 0x1d, 0x91, 0x9a, 0x17, 0x6f, 0x67, 0x67, 0xb8, 0xeb, 0xc5, 0xdb, 0xd7, 0xd3, 0x1e, 0x50, - 0x53, 0xab, 0x26, 0xe0, 0x58, 0x51, 0xa0, 0x67, 0x60, 0x98, 0xfe, 0xbe, 0x89, 0xd7, 0xc4, 0x27, - 0x9f, 0x12, 0xc4, 0xa3, 0x35, 0x27, 0x71, 0x6a, 0x1c, 0x85, 0x25, 0x0d, 0xba, 0x06, 0xa3, 0x4d, - 0xb6, 0x20, 0x37, 0xaf, 0x85, 0x2e, 0x61, 0x83, 0x59, 0x59, 0x7a, 0x8a, 0x92, 0x2f, 0xa7, 0xe0, - 0xc3, 0xfd, 0xb9, 0x2a, 0x6f, 0x9b, 0x60, 0xa1, 0xe1, 0xb0, 0x5e, 0x1e, 0xd9, 0x6a, 0x7d, 0x0d, - 0x30, 0x4e, 0x90, 0xb3, 0xb6, 0x2e, 0x68, 0x4b, 0x65, 0x90, 0x2d, 0x95, 0xb1, 0xfc, 0x65, 0x82, - 0x9e, 0x85, 0x81, 0x6d, 0x2f, 0x70, 0xab, 0x43, 0x8c, 0xd7, 0xc3, 0x74, 0xcc, 0xaf, 0x78, 0x81, - 0x7b, 0xb8, 0x3f, 0x37, 0x6d, 0x34, 0x87, 0x02, 0x31, 0x23, 0xb5, 0xff, 0x9e, 0x25, 0xba, 0x71, - 0xd5, 0xf3, 0x4d, 0x41, 0x71, 0x11, 0x20, 0x26, 0xcd, 0x88, 0x24, 0x5a, 0x47, 0xaa, 0xe9, 0xd0, - 0x50, 0x18, 0xac, 0x51, 0x51, 0x31, 0x10, 0x6f, 0x39, 0x11, 0x9b, 0x55, 0xa2, 0x3b, 0x95, 0x18, - 0x68, 0x48, 0x04, 0x4e, 0x69, 0x0c, 0x31, 0x50, 0xee, 0x29, 0x06, 0x7e, 0xd7, 0x82, 0xe1, 0x25, - 0x2f, 0x70, 0xbd, 0x60, 0x13, 0x7d, 0x1e, 0x46, 0xa8, 0x94, 0x76, 0x9d, 0xc4, 0x11, 0x12, 0xe0, - 0xa7, 0xb4, 0x59, 0xa6, 0x84, 0xe6, 0x7c, 0x6b, 0x7b, 0x93, 0x02, 0xe2, 0x79, 0x4a, 0x4d, 0xe7, - 0xdd, 0x8d, 0xdb, 0xef, 0x90, 0x66, 0x72, 0x8d, 0x24, 0x4e, 0xfa, 0x39, 0x29, 0x0c, 0x2b, 0xae, - 0xe8, 0x0a, 0x0c, 0x25, 0x4e, 0xb4, 0x49, 0x12, 0x21, 0x0a, 0x72, 0x97, 0x2c, 0x2f, 0x89, 0xe9, - 0xdc, 0x24, 0x41, 0x93, 0xa4, 0x02, 0x72, 0x9d, 0x15, 0xc5, 0x82, 0x85, 0xdd, 0x84, 0xb1, 0x65, - 0xa7, 0xe5, 0xdc, 0xf6, 0x7c, 0x2f, 0xf1, 0x48, 0x8c, 0x1e, 0x87, 0xb2, 0xe3, 0xba, 0x6c, 0x7d, - 0x54, 0x96, 0x4e, 0x1f, 0xec, 0xcf, 0x95, 0x17, 0x5d, 0x3a, 0x50, 0xa0, 0xa8, 0xf6, 0x30, 0xa5, - 0x40, 0x4f, 0xc2, 0x80, 0x1b, 0x85, 0xad, 0x6a, 0x89, 0x51, 0x9e, 0xa1, 0x63, 0x5a, 0x8b, 0xc2, - 0x56, 0x86, 0x94, 0xd1, 0xd8, 0xdf, 0x2e, 0x01, 0x5a, 0x26, 0xad, 0xad, 0xd5, 0x86, 0x31, 0x92, - 0x17, 0x60, 0x64, 0x27, 0x0c, 0xbc, 0x24, 0x8c, 0x62, 0x51, 0x21, 0x9b, 0x40, 0xd7, 0x04, 0x0c, - 0x2b, 0x2c, 0x3a, 0x0f, 0x03, 0xad, 0x74, 0xf1, 0x8f, 0x49, 0xc1, 0xc1, 0x96, 0x3d, 0xc3, 0x50, - 0x8a, 0x76, 0x4c, 0x22, 0x31, 0xf1, 0x15, 0xc5, 0xcd, 0x98, 0x44, 0x98, 0x61, 0xd2, 0x79, 0x43, - 0x67, 0x94, 0x98, 0xd6, 0x99, 0x79, 0x43, 0x31, 0x58, 0xa3, 0x42, 0x37, 0xa1, 0xc2, 0xff, 0x61, - 0xb2, 0xc1, 0xe6, 0x78, 0x81, 0xcc, 0xb8, 0x1a, 0x36, 0x1d, 0x3f, 0xdb, 0xe5, 0xe3, 0x6c, 0x76, - 0xc9, 0xe2, 0x38, 0xe5, 0x64, 0xcc, 0xae, 0xa1, 0x9e, 0xb3, 0xeb, 0x97, 0x2d, 0x40, 0xcb, 0x5e, - 0xe0, 0x92, 0xe8, 0x04, 0x36, 0xcc, 0xa3, 0x4d, 0xfc, 0x7f, 0x47, 0x9b, 0x16, 0xee, 0xb4, 0xc2, - 0x80, 0x04, 0xc9, 0x72, 0x18, 0xb8, 0x7c, 0x13, 0xfd, 0x14, 0x0c, 0x24, 0xb4, 0x2a, 0xde, 0xac, - 0xc7, 0xe4, 0x60, 0xd0, 0x0a, 0x0e, 0xf7, 0xe7, 0xce, 0x74, 0x96, 0x60, 0x4d, 0x60, 0x65, 0xd0, - 0x27, 0x61, 0x28, 0x4e, 0x9c, 0xa4, 0x1d, 0x8b, 0x86, 0x3e, 0x22, 0x1b, 0xda, 0x60, 0xd0, 0xc3, - 0xfd, 0xb9, 0x49, 0x55, 0x8c, 0x83, 0xb0, 0x28, 0x80, 0x9e, 0x80, 0xe1, 0x1d, 0x12, 0xc7, 0xce, - 0xa6, 0x94, 0x7f, 0x93, 0xa2, 0xec, 0xf0, 0x35, 0x0e, 0xc6, 0x12, 0x8f, 0x1e, 0x85, 0x41, 0x12, - 0x45, 0x61, 0x24, 0xe6, 0xc1, 0xb8, 0x20, 0x1c, 0x5c, 0xa1, 0x40, 0xcc, 0x71, 0xf6, 0xbf, 0xb1, - 0x60, 0x52, 0xb5, 0x95, 0xd7, 0x75, 0x02, 0xcb, 0xfb, 0x4d, 0x80, 0xa6, 0xfc, 0xc0, 0x98, 0x2d, - 0xaf, 0xd1, 0x8b, 0x8f, 0xe5, 0x4d, 0xba, 0xce, 0x6e, 0x4c, 0x39, 0x2b, 0x50, 0x8c, 0x35, 0x6e, - 0xf6, 0x3f, 0xb1, 0xe0, 0x54, 0xe6, 0x8b, 0xae, 0x7a, 0x71, 0x82, 0xde, 0xea, 0xf8, 0xaa, 0xf9, - 0xfe, 0xbe, 0x8a, 0x96, 0x66, 0xdf, 0xa4, 0x66, 0x89, 0x84, 0x68, 0x5f, 0x74, 0x19, 0x06, 0xbd, - 0x84, 0xec, 0xc8, 0x8f, 0x79, 0xb4, 0xeb, 0xc7, 0xf0, 0x56, 0xa5, 0x23, 0xb2, 0x46, 0x4b, 0x62, - 0xce, 0xc0, 0xfe, 0x6f, 0x16, 0x54, 0x96, 0xc3, 0x60, 0xc3, 0xdb, 0xbc, 0xe6, 0xb4, 0x4e, 0x60, - 0x2c, 0xd6, 0x60, 0x80, 0x71, 0xe7, 0x0d, 0x7f, 0x3c, 0xbf, 0xe1, 0xa2, 0x39, 0xf3, 0x74, 0x17, - 0xe3, 0xda, 0x82, 0x12, 0x3f, 0x14, 0x84, 0x19, 0x8b, 0xd9, 0x4f, 0x40, 0x45, 0x11, 0xa0, 0x29, - 0x28, 0x6f, 0x13, 0xae, 0x21, 0x56, 0x30, 0xfd, 0x89, 0x66, 0x60, 0x70, 0xd7, 0xf1, 0xdb, 0x62, - 0x79, 0x62, 0xfe, 0xe7, 0x53, 0xa5, 0x17, 0x2d, 0xfb, 0x5b, 0x6c, 0x8d, 0x89, 0x4a, 0x56, 0x82, - 0x5d, 0xb1, 0xfc, 0xdf, 0x83, 0x19, 0x3f, 0x47, 0xea, 0x88, 0x8e, 0xe8, 0x5f, 0x4a, 0x3d, 0x24, - 0xda, 0x3a, 0x93, 0x87, 0xc5, 0xb9, 0x75, 0x50, 0xc1, 0x1d, 0xb6, 0xe8, 0x8c, 0x72, 0x7c, 0xd6, - 0x5e, 0xb1, 0xf3, 0xdf, 0x10, 0x30, 0xac, 0xb0, 0x54, 0x40, 0xcc, 0xa8, 0xc6, 0x5f, 0x21, 0x7b, - 0x0d, 0xe2, 0x93, 0x66, 0x12, 0x46, 0x1f, 0x68, 0xf3, 0x1f, 0xe6, 0xbd, 0xcf, 0xe5, 0xcb, 0xa8, - 0x60, 0x50, 0xbe, 0x42, 0xf6, 0xf8, 0x50, 0xe8, 0x5f, 0x57, 0xee, 0xfa, 0x75, 0xbf, 0x69, 0xc1, - 0xb8, 0xfa, 0xba, 0x13, 0x58, 0x48, 0x4b, 0xe6, 0x42, 0x7a, 0xb8, 0xeb, 0x7c, 0x2c, 0x58, 0x42, - 0x3f, 0x62, 0x22, 0x40, 0xd0, 0xd4, 0xa3, 0x90, 0x76, 0x0d, 0x95, 0xd9, 0x1f, 0xe4, 0x80, 0xf4, - 0xf3, 0x5d, 0x57, 0xc8, 0xde, 0x7a, 0x48, 0x37, 0xfc, 0xfc, 0xef, 0x32, 0x46, 0x6d, 0xa0, 0xeb, - 0xa8, 0xfd, 0x56, 0x09, 0x4e, 0xab, 0x1e, 0x30, 0xb6, 0xd4, 0x1f, 0xf7, 0x3e, 0x78, 0x16, 0x46, - 0x5d, 0xb2, 0xe1, 0xb4, 0xfd, 0x44, 0x19, 0x01, 0x83, 0xdc, 0x10, 0xac, 0xa5, 0x60, 0xac, 0xd3, - 0x1c, 0xa1, 0xdb, 0xfe, 0x15, 0x30, 0xd9, 0x9b, 0x38, 0x74, 0x06, 0x53, 0x7d, 0x4b, 0x33, 0xe5, - 0xc6, 0x74, 0x53, 0x4e, 0x98, 0x6d, 0x8f, 0xc2, 0xa0, 0xb7, 0x43, 0xf7, 0xe2, 0x92, 0xb9, 0xc5, - 0xae, 0x51, 0x20, 0xe6, 0x38, 0xf4, 0x31, 0x18, 0x6e, 0x86, 0x3b, 0x3b, 0x4e, 0xe0, 0x56, 0xcb, - 0x4c, 0x03, 0x1c, 0xa5, 0xdb, 0xf5, 0x32, 0x07, 0x61, 0x89, 0x43, 0x0f, 0xc1, 0x80, 0x13, 0x6d, - 0xc6, 0xd5, 0x01, 0x46, 0x33, 0x42, 0x6b, 0x5a, 0x8c, 0x36, 0x63, 0xcc, 0xa0, 0x54, 0xb3, 0xbb, - 0x13, 0x46, 0xdb, 0x5e, 0xb0, 0x59, 0xf3, 0x22, 0xa6, 0xa6, 0x69, 0x9a, 0xdd, 0xeb, 0x0a, 0x83, - 0x35, 0x2a, 0xb4, 0x0a, 0x83, 0xad, 0x30, 0x4a, 0xe2, 0xea, 0x10, 0xeb, 0xee, 0x47, 0x0a, 0x96, - 0x12, 0xff, 0xda, 0x7a, 0x18, 0x25, 0xe9, 0x07, 0xd0, 0x7f, 0x31, 0xe6, 0xc5, 0xd1, 0x27, 0xa1, - 0x4c, 0x82, 0xdd, 0xea, 0x30, 0xe3, 0x32, 0x9b, 0xc7, 0x65, 0x25, 0xd8, 0xbd, 0xe5, 0x44, 0xa9, - 0x9c, 0x59, 0x09, 0x76, 0x31, 0x2d, 0x83, 0xde, 0x80, 0x8a, 0x74, 0x03, 0xc5, 0xd5, 0x91, 0xe2, - 0x29, 0x86, 0x05, 0x11, 0x26, 0xef, 0xb6, 0xbd, 0x88, 0xec, 0x90, 0x20, 0x89, 0x53, 0xf3, 0x45, - 0x62, 0x63, 0x9c, 0x72, 0x43, 0x6f, 0xc0, 0x18, 0xd7, 0xfc, 0xae, 0x85, 0xed, 0x20, 0x89, 0xab, - 0x15, 0xd6, 0xbc, 0x5c, 0x9f, 0xc1, 0xad, 0x94, 0x6e, 0x69, 0x46, 0x30, 0x1d, 0xd3, 0x80, 0x31, - 0x36, 0x58, 0x21, 0x0c, 0xe3, 0xbe, 0xb7, 0x4b, 0x02, 0x12, 0xc7, 0xf5, 0x28, 0xbc, 0x4d, 0xaa, - 0xc0, 0x5a, 0x7e, 0x36, 0xdf, 0x94, 0x0e, 0x6f, 0x93, 0xa5, 0xe9, 0x83, 0xfd, 0xb9, 0xf1, 0xab, - 0x7a, 0x19, 0x6c, 0xb2, 0x40, 0x37, 0x61, 0x82, 0xaa, 0x94, 0x5e, 0xca, 0x74, 0xb4, 0x17, 0x53, - 0x74, 0xb0, 0x3f, 0x37, 0x81, 0x8d, 0x42, 0x38, 0xc3, 0x04, 0xbd, 0x0a, 0x15, 0xdf, 0xdb, 0x20, - 0xcd, 0xbd, 0xa6, 0x4f, 0xaa, 0x63, 0x8c, 0x63, 0xee, 0xb2, 0xba, 0x2a, 0x89, 0xb8, 0xca, 0xae, - 0xfe, 0xe2, 0xb4, 0x38, 0xba, 0x05, 0x67, 0x12, 0x12, 0xed, 0x78, 0x81, 0x43, 0x97, 0x83, 0xd0, - 0x27, 0x99, 0x43, 0x62, 0x9c, 0xcd, 0xb7, 0x73, 0xa2, 0xeb, 0xce, 0xac, 0xe7, 0x52, 0xe1, 0x82, - 0xd2, 0xe8, 0x06, 0x4c, 0xb2, 0x95, 0x50, 0x6f, 0xfb, 0x7e, 0x3d, 0xf4, 0xbd, 0xe6, 0x5e, 0x75, - 0x82, 0x31, 0xfc, 0x98, 0xf4, 0x38, 0xac, 0x99, 0x68, 0x6a, 0x60, 0xa5, 0xff, 0x70, 0xb6, 0x34, - 0xba, 0x0d, 0x93, 0x31, 0x69, 0xb6, 0x23, 0x2f, 0xd9, 0xa3, 0xf3, 0x97, 0xdc, 0x4d, 0xaa, 0x93, - 0xc5, 0x66, 0x62, 0xc3, 0x24, 0xe5, 0x9e, 0x9d, 0x0c, 0x10, 0x67, 0x19, 0xd2, 0xa5, 0x1d, 0x27, - 0xae, 0x17, 0x54, 0xa7, 0x98, 0xc4, 0x50, 0x2b, 0xa3, 0x41, 0x81, 0x98, 0xe3, 0x98, 0xcd, 0x4d, - 0x7f, 0xdc, 0xa0, 0x12, 0x74, 0x9a, 0x11, 0xa6, 0x36, 0xb7, 0x44, 0xe0, 0x94, 0x86, 0x6e, 0xcb, - 0x49, 0xb2, 0x57, 0x45, 0x8c, 0x54, 0x2d, 0x97, 0xf5, 0xf5, 0x37, 0x30, 0x85, 0xa3, 0xab, 0x30, - 0x4c, 0x82, 0xdd, 0xd5, 0x28, 0xdc, 0xa9, 0x9e, 0x2a, 0x5e, 0xb3, 0x2b, 0x9c, 0x84, 0x0b, 0xf4, - 0xd4, 0x00, 0x10, 0x60, 0x2c, 0x59, 0xa0, 0xbb, 0x50, 0xcd, 0x19, 0x11, 0x3e, 0x00, 0x33, 0x6c, - 0x00, 0x5e, 0x16, 0x65, 0xab, 0xeb, 0x05, 0x74, 0x87, 0x5d, 0x70, 0xb8, 0x90, 0xbb, 0x7d, 0x1b, - 0x26, 0x94, 0x60, 0x61, 0x63, 0x8b, 0xe6, 0x60, 0x90, 0x4a, 0x4c, 0x69, 0x04, 0x57, 0x68, 0x57, - 0x52, 0x41, 0x1a, 0x63, 0x0e, 0x67, 0x5d, 0xe9, 0xbd, 0x47, 0x96, 0xf6, 0x12, 0xc2, 0xcd, 0xa2, - 0xb2, 0xd6, 0x95, 0x12, 0x81, 0x53, 0x1a, 0xfb, 0xff, 0x70, 0xc5, 0x24, 0x95, 0x5e, 0x7d, 0xc8, - 0xeb, 0xa7, 0x61, 0x64, 0x2b, 0x8c, 0x13, 0x4a, 0xcd, 0xea, 0x18, 0x4c, 0x55, 0x91, 0xcb, 0x02, - 0x8e, 0x15, 0x05, 0x7a, 0x09, 0xc6, 0x9b, 0x7a, 0x05, 0x62, 0xb3, 0x39, 0x2d, 0x8a, 0x98, 0xb5, - 0x63, 0x93, 0x16, 0xbd, 0x08, 0x23, 0xcc, 0x33, 0xdc, 0x0c, 0x7d, 0x61, 0x80, 0xc9, 0x1d, 0x73, - 0xa4, 0x2e, 0xe0, 0x87, 0xda, 0x6f, 0xac, 0xa8, 0xa9, 0x19, 0x4b, 0x9b, 0xb0, 0x56, 0x17, 0x62, - 0x5e, 0x99, 0xb1, 0x97, 0x19, 0x14, 0x0b, 0xac, 0xfd, 0x57, 0x4b, 0x5a, 0x2f, 0x53, 0x93, 0x82, - 0xa0, 0x3a, 0x0c, 0xdf, 0x71, 0xbc, 0xc4, 0x0b, 0x36, 0xc5, 0x7e, 0xfe, 0x44, 0x57, 0x99, 0xcf, - 0x0a, 0xbd, 0xce, 0x0b, 0xf0, 0x5d, 0x49, 0xfc, 0xc1, 0x92, 0x0d, 0xe5, 0x18, 0xb5, 0x83, 0x80, - 0x72, 0x2c, 0xf5, 0xcb, 0x11, 0xf3, 0x02, 0x9c, 0xa3, 0xf8, 0x83, 0x25, 0x1b, 0xf4, 0x16, 0x80, - 0x9c, 0x37, 0xc4, 0x15, 0x1e, 0xd9, 0xa7, 0x7b, 0x33, 0x5d, 0x57, 0x65, 0x96, 0x26, 0xe8, 0x9e, - 0x97, 0xfe, 0xc7, 0x1a, 0x3f, 0x3b, 0x61, 0x7a, 0x4f, 0x67, 0x63, 0xd0, 0xe7, 0xe8, 0x52, 0x75, - 0xa2, 0x84, 0xb8, 0x8b, 0x89, 0xe8, 0x9c, 0x27, 0xfb, 0x53, 0x5b, 0xd7, 0xbd, 0x1d, 0xa2, 0x2f, - 0x6b, 0xc1, 0x04, 0xa7, 0xfc, 0xec, 0xdf, 0x29, 0x43, 0xb5, 0xa8, 0xb9, 0x74, 0xd2, 0x91, 0xbb, - 0x5e, 0xb2, 0x4c, 0xd5, 0x15, 0xcb, 0x9c, 0x74, 0x2b, 0x02, 0x8e, 0x15, 0x05, 0x1d, 0xfd, 0xd8, - 0xdb, 0x94, 0x56, 0xc7, 0x60, 0x3a, 0xfa, 0x0d, 0x06, 0xc5, 0x02, 0x4b, 0xe9, 0x22, 0xe2, 0xc4, - 0xc2, 0xe5, 0xaf, 0xcd, 0x12, 0xcc, 0xa0, 0x58, 0x60, 0x75, 0x87, 0xc1, 0x40, 0x0f, 0x87, 0x81, - 0xd1, 0x45, 0x83, 0xc7, 0xdb, 0x45, 0xe8, 0x6d, 0x80, 0x0d, 0x2f, 0xf0, 0xe2, 0x2d, 0xc6, 0x7d, - 0xe8, 0xc8, 0xdc, 0x95, 0xb2, 0xb3, 0xaa, 0xb8, 0x60, 0x8d, 0x23, 0x7a, 0x01, 0x46, 0xd5, 0x02, - 0x5c, 0xab, 0x55, 0x87, 0x4d, 0x7f, 0x72, 0x2a, 0x8d, 0x6a, 0x58, 0xa7, 0xb3, 0xdf, 0xc9, 0xce, - 0x17, 0xb1, 0x02, 0xb4, 0xfe, 0xb5, 0xfa, 0xed, 0xdf, 0x52, 0xf7, 0xfe, 0xb5, 0xff, 0xa0, 0x0c, - 0x93, 0x46, 0x65, 0xed, 0xb8, 0x0f, 0x99, 0x75, 0x89, 0x6e, 0x44, 0x4e, 0x42, 0xc4, 0xfa, 0xb3, - 0x7b, 0x2f, 0x15, 0x7d, 0xb3, 0xa2, 0x2b, 0x80, 0x97, 0x47, 0x6f, 0x43, 0xc5, 0x77, 0x62, 0xe6, - 0x7c, 0x20, 0x62, 0xdd, 0xf5, 0xc3, 0x2c, 0x55, 0xf4, 0x9d, 0x38, 0xd1, 0xf6, 0x02, 0xce, 0x3b, - 0x65, 0x49, 0x77, 0x4c, 0xaa, 0x9c, 0xc8, 0x33, 0x25, 0xd5, 0x08, 0xaa, 0xc1, 0xec, 0x61, 0x8e, - 0x43, 0x2f, 0xc2, 0x58, 0x44, 0xd8, 0xac, 0x58, 0xa6, 0xba, 0x16, 0x9b, 0x66, 0x83, 0xa9, 0x52, - 0x86, 0x35, 0x1c, 0x36, 0x28, 0x53, 0x5d, 0x7b, 0xa8, 0x8b, 0xae, 0xfd, 0x04, 0x0c, 0xb3, 0x1f, - 0x6a, 0x06, 0xa8, 0xd1, 0x58, 0xe3, 0x60, 0x2c, 0xf1, 0xd9, 0x09, 0x33, 0xd2, 0xe7, 0x84, 0x79, - 0x12, 0x26, 0x6a, 0x0e, 0xd9, 0x09, 0x83, 0x95, 0xc0, 0x6d, 0x85, 0x5e, 0x90, 0xa0, 0x2a, 0x0c, - 0xb0, 0xdd, 0x81, 0xaf, 0xed, 0x01, 0xca, 0x01, 0x0f, 0x50, 0xcd, 0xd9, 0xfe, 0xe3, 0x12, 0x8c, - 0xd7, 0x88, 0x4f, 0x12, 0xc2, 0x6d, 0x8d, 0x18, 0xad, 0x02, 0xda, 0x8c, 0x9c, 0x26, 0xa9, 0x93, - 0xc8, 0x0b, 0xdd, 0x06, 0x69, 0x86, 0x01, 0x3b, 0xa9, 0xa1, 0xdb, 0xdd, 0x99, 0x83, 0xfd, 0x39, - 0x74, 0xa9, 0x03, 0x8b, 0x73, 0x4a, 0xa0, 0x37, 0x61, 0xbc, 0x15, 0x11, 0xc3, 0x87, 0x66, 0x15, - 0xa9, 0x0b, 0x75, 0x9d, 0x90, 0x6b, 0xaa, 0x06, 0x08, 0x9b, 0xac, 0xd0, 0x67, 0x61, 0x2a, 0x8c, - 0x5a, 0x5b, 0x4e, 0x50, 0x23, 0x2d, 0x12, 0xb8, 0x54, 0x15, 0x17, 0x3e, 0x82, 0x99, 0x83, 0xfd, - 0xb9, 0xa9, 0x1b, 0x19, 0x1c, 0xee, 0xa0, 0x46, 0x6f, 0xc2, 0x74, 0x2b, 0x0a, 0x5b, 0xce, 0x26, - 0x9b, 0x28, 0x42, 0xe3, 0xe0, 0xd2, 0xe7, 0xe9, 0x83, 0xfd, 0xb9, 0xe9, 0x7a, 0x16, 0x79, 0xb8, - 0x3f, 0x77, 0x8a, 0x75, 0x14, 0x85, 0xa4, 0x48, 0xdc, 0xc9, 0xc6, 0xde, 0x84, 0xd3, 0xb5, 0xf0, - 0x4e, 0x70, 0xc7, 0x89, 0xdc, 0xc5, 0xfa, 0x9a, 0x66, 0xdc, 0x5f, 0x97, 0xc6, 0x25, 0x3f, 0xf7, - 0xca, 0xdd, 0xa7, 0xb4, 0x92, 0x5c, 0xfd, 0x5f, 0xf5, 0x7c, 0x52, 0xe0, 0x44, 0xf8, 0xeb, 0x25, - 0xa3, 0xa6, 0x94, 0x5e, 0x79, 0xea, 0xad, 0x42, 0x4f, 0xfd, 0x6b, 0x30, 0xb2, 0xe1, 0x11, 0xdf, - 0xc5, 0x64, 0x43, 0x8c, 0xcc, 0xe3, 0xc5, 0x07, 0x18, 0xab, 0x94, 0x52, 0x3a, 0x8d, 0xb8, 0x69, - 0xba, 0x2a, 0x0a, 0x63, 0xc5, 0x06, 0x6d, 0xc3, 0x94, 0xb4, 0x7d, 0x24, 0x56, 0x2c, 0xe2, 0x27, - 0xba, 0x19, 0x54, 0x26, 0x73, 0x36, 0x80, 0x38, 0xc3, 0x06, 0x77, 0x30, 0xa6, 0xb6, 0xe8, 0x0e, - 0xdd, 0xae, 0x06, 0xd8, 0x94, 0x66, 0xb6, 0x28, 0x33, 0xab, 0x19, 0xd4, 0xfe, 0x9a, 0x05, 0x0f, - 0x74, 0xf4, 0x8c, 0x70, 0x2f, 0x1c, 0xf3, 0x28, 0x64, 0xcd, 0xfd, 0x52, 0x6f, 0x73, 0xdf, 0xfe, - 0x0d, 0x0b, 0x66, 0x56, 0x76, 0x5a, 0xc9, 0x5e, 0xcd, 0x33, 0x4f, 0x13, 0x3e, 0x01, 0x43, 0x3b, - 0xc4, 0xf5, 0xda, 0x3b, 0x62, 0xe4, 0xe6, 0xa4, 0x48, 0xbf, 0xc6, 0xa0, 0x87, 0xfb, 0x73, 0xe3, - 0x8d, 0x24, 0x8c, 0x9c, 0x4d, 0xc2, 0x01, 0x58, 0x90, 0xa3, 0x9f, 0xe5, 0xba, 0xe9, 0x55, 0x6f, - 0xc7, 0x93, 0x07, 0x52, 0x5d, 0x5d, 0x5e, 0xf3, 0xb2, 0x43, 0xe7, 0x5f, 0x6b, 0x3b, 0x41, 0xe2, - 0x25, 0x7b, 0xa6, 0x2e, 0xcb, 0x18, 0xe1, 0x94, 0xa7, 0xfd, 0x3d, 0x0b, 0x26, 0xa5, 0x3c, 0x59, - 0x74, 0xdd, 0x88, 0xc4, 0x31, 0x9a, 0x85, 0x92, 0xd7, 0x12, 0x2d, 0x05, 0x51, 0xba, 0xb4, 0x56, - 0xc7, 0x25, 0xaf, 0x85, 0xea, 0x50, 0xe1, 0x67, 0x5b, 0xe9, 0x04, 0xeb, 0xeb, 0x84, 0x8c, 0xd9, - 0x7e, 0xeb, 0xb2, 0x24, 0x4e, 0x99, 0x48, 0xcd, 0x98, 0xed, 0x45, 0x65, 0xf3, 0xa4, 0xe5, 0xb2, - 0x80, 0x63, 0x45, 0x81, 0x2e, 0xc0, 0x48, 0x10, 0xba, 0xfc, 0xa8, 0x91, 0xaf, 0x6b, 0x36, 0x6d, - 0xaf, 0x0b, 0x18, 0x56, 0x58, 0xfb, 0x17, 0x2c, 0x18, 0x93, 0x5f, 0xd6, 0xa7, 0x92, 0x4e, 0x97, - 0x57, 0xaa, 0xa0, 0xa7, 0xcb, 0x8b, 0x2a, 0xd9, 0x0c, 0x63, 0xe8, 0xd6, 0xe5, 0xa3, 0xe8, 0xd6, - 0xf6, 0x57, 0x4b, 0x30, 0x21, 0x9b, 0xd3, 0x68, 0xdf, 0x8e, 0x49, 0x82, 0xd6, 0xa1, 0xe2, 0xf0, - 0x2e, 0x27, 0x72, 0xd6, 0x3e, 0x9a, 0x6f, 0x75, 0x19, 0xe3, 0x93, 0x8e, 0xe8, 0xa2, 0x2c, 0x8d, - 0x53, 0x46, 0xc8, 0x87, 0xe9, 0x20, 0x4c, 0xd8, 0xd6, 0xa7, 0xf0, 0xdd, 0xce, 0x06, 0xb2, 0xdc, - 0xcf, 0x0a, 0xee, 0xd3, 0xd7, 0xb3, 0x5c, 0x70, 0x27, 0x63, 0xb4, 0x22, 0x3d, 0x3d, 0x65, 0x56, - 0xc3, 0xf9, 0x6e, 0x35, 0x14, 0x3b, 0x7a, 0xec, 0xdf, 0xb7, 0xa0, 0x22, 0xc9, 0x4e, 0xe2, 0x18, - 0xe8, 0x1a, 0x0c, 0xc7, 0x6c, 0x10, 0x64, 0xd7, 0xd8, 0xdd, 0x1a, 0xce, 0xc7, 0x2b, 0xdd, 0xd1, - 0xf9, 0xff, 0x18, 0x4b, 0x1e, 0xcc, 0x55, 0xad, 0x9a, 0xff, 0x21, 0x71, 0x55, 0xab, 0xf6, 0x14, - 0xec, 0x32, 0xff, 0x91, 0xb5, 0x59, 0xb3, 0xe7, 0xa9, 0xe2, 0xd9, 0x8a, 0xc8, 0x86, 0x77, 0x37, - 0xab, 0x78, 0xd6, 0x19, 0x14, 0x0b, 0x2c, 0x7a, 0x0b, 0xc6, 0x9a, 0xd2, 0xc3, 0x9b, 0x8a, 0x81, - 0xc7, 0xba, 0xfa, 0xcb, 0xd5, 0xd1, 0x0a, 0x0f, 0xc8, 0x59, 0xd6, 0xca, 0x63, 0x83, 0x1b, 0x95, - 0x30, 0xe9, 0xa9, 0x70, 0xb9, 0xab, 0x73, 0x25, 0x22, 0x49, 0xca, 0xb7, 0xf0, 0x40, 0xd8, 0xfe, - 0x55, 0x0b, 0x86, 0xb8, 0x9f, 0xb0, 0x3f, 0xc7, 0xaa, 0x76, 0x54, 0x94, 0xf6, 0xdd, 0x2d, 0x0a, - 0x14, 0x27, 0x47, 0xe8, 0x1a, 0x54, 0xd8, 0x0f, 0xe6, 0x2f, 0x29, 0x17, 0x47, 0x22, 0xf1, 0x5a, - 0xf5, 0x06, 0xde, 0x92, 0xc5, 0x70, 0xca, 0xc1, 0xfe, 0xa5, 0x32, 0x15, 0x55, 0x29, 0xa9, 0xb1, - 0x8b, 0x5b, 0xf7, 0x6f, 0x17, 0x2f, 0xdd, 0xaf, 0x5d, 0x7c, 0x13, 0x26, 0x9b, 0xda, 0xb9, 0x54, - 0x3a, 0x92, 0x17, 0xba, 0x4e, 0x12, 0xed, 0x08, 0x8b, 0xfb, 0xca, 0x96, 0x4d, 0x26, 0x38, 0xcb, - 0x15, 0x7d, 0x0e, 0xc6, 0xf8, 0x38, 0x8b, 0x5a, 0x06, 0x58, 0x2d, 0x1f, 0x2b, 0x9e, 0x2f, 0x7a, - 0x15, 0x6c, 0x26, 0x36, 0xb4, 0xe2, 0xd8, 0x60, 0x66, 0x7f, 0x79, 0x10, 0x06, 0x57, 0x76, 0x49, - 0x90, 0x9c, 0x80, 0x40, 0x6a, 0xc2, 0x84, 0x17, 0xec, 0x86, 0xfe, 0x2e, 0x71, 0x39, 0xfe, 0x28, - 0x9b, 0xeb, 0x19, 0xc1, 0x7a, 0x62, 0xcd, 0x60, 0x81, 0x33, 0x2c, 0xef, 0x87, 0xe5, 0x7e, 0x09, - 0x86, 0xf8, 0xd8, 0x0b, 0xb3, 0x3d, 0xd7, 0x0b, 0xce, 0x3a, 0x51, 0xac, 0x82, 0xd4, 0xab, 0xc0, - 0xdd, 0xee, 0xa2, 0x38, 0x7a, 0x07, 0x26, 0x36, 0xbc, 0x28, 0x4e, 0xa8, 0xc9, 0x1d, 0x27, 0xce, - 0x4e, 0xeb, 0x1e, 0x2c, 0x75, 0xd5, 0x0f, 0xab, 0x06, 0x27, 0x9c, 0xe1, 0x8c, 0x36, 0x61, 0x9c, - 0x1a, 0x8f, 0x69, 0x55, 0xc3, 0x47, 0xae, 0x4a, 0xb9, 0xe2, 0xae, 0xea, 0x8c, 0xb0, 0xc9, 0x97, - 0x0a, 0x93, 0x26, 0x33, 0x36, 0x47, 0x98, 0x46, 0xa1, 0x84, 0x09, 0xb7, 0x32, 0x39, 0x8e, 0xca, - 0x24, 0x16, 0xcf, 0x51, 0x31, 0x65, 0x52, 0x1a, 0xb5, 0x61, 0x7f, 0x9d, 0xee, 0x8e, 0xb4, 0x0f, - 0x4f, 0x60, 0x6b, 0x79, 0xc5, 0xdc, 0x5a, 0xce, 0x16, 0x8e, 0x67, 0xc1, 0xb6, 0xf2, 0x79, 0x18, - 0xd5, 0x86, 0x1b, 0x2d, 0x40, 0xa5, 0x29, 0x83, 0x0f, 0x84, 0xd4, 0x55, 0xea, 0x8b, 0x8a, 0x4a, - 0xc0, 0x29, 0x0d, 0xed, 0x0d, 0xaa, 0xec, 0x65, 0x83, 0x91, 0xa8, 0x2a, 0x88, 0x19, 0xc6, 0x7e, - 0x0e, 0x60, 0xe5, 0x2e, 0x69, 0x2e, 0x72, 0xe3, 0x4b, 0x3b, 0xe3, 0xb2, 0x8a, 0xcf, 0xb8, 0xe8, - 0x0e, 0x3d, 0xb1, 0xba, 0x6c, 0x28, 0xe5, 0xf3, 0x00, 0x5c, 0x0b, 0x7d, 0xfd, 0xf5, 0xeb, 0xd2, - 0x3b, 0xcc, 0x1d, 0x7c, 0x0a, 0x8a, 0x35, 0x0a, 0x74, 0x16, 0xca, 0x7e, 0x3b, 0x10, 0xca, 0xe1, - 0xf0, 0xc1, 0xfe, 0x5c, 0xf9, 0x6a, 0x3b, 0xc0, 0x14, 0xa6, 0xc5, 0xff, 0x94, 0xfb, 0x8e, 0xff, - 0xe9, 0x1d, 0xff, 0xfa, 0xff, 0x97, 0x61, 0x6a, 0xd5, 0x27, 0x77, 0x8d, 0x56, 0x3f, 0x06, 0x43, - 0x6e, 0xe4, 0xed, 0x92, 0x28, 0xbb, 0x49, 0xd7, 0x18, 0x14, 0x0b, 0x6c, 0xdf, 0x21, 0x49, 0x37, - 0x3b, 0xb7, 0xdb, 0xe3, 0x0e, 0xc2, 0xea, 0xf9, 0xa5, 0xe8, 0x2d, 0x18, 0xe6, 0x27, 0xa1, 0x71, - 0x75, 0x90, 0x4d, 0xbb, 0x67, 0xf3, 0x9a, 0x90, 0xed, 0x8b, 0x79, 0xe1, 0xdb, 0xe0, 0x61, 0x21, - 0x4a, 0x46, 0x09, 0x28, 0x96, 0x2c, 0x67, 0x3f, 0x05, 0x63, 0x3a, 0xe5, 0x91, 0xe2, 0x43, 0xfe, - 0x82, 0x05, 0xa7, 0x56, 0xfd, 0xb0, 0xb9, 0x9d, 0x89, 0x0f, 0x7b, 0x01, 0x46, 0xe9, 0x72, 0x89, - 0x8d, 0x40, 0x49, 0x23, 0x88, 0x54, 0xa0, 0xb0, 0x4e, 0xa7, 0x15, 0xbb, 0x79, 0x73, 0xad, 0x96, - 0x17, 0x7b, 0x2a, 0x50, 0x58, 0xa7, 0xb3, 0xff, 0xd0, 0x82, 0x87, 0x2f, 0x2d, 0xaf, 0xd4, 0x49, - 0x14, 0x7b, 0x71, 0x42, 0x82, 0xa4, 0x23, 0xfc, 0x95, 0xea, 0x6e, 0xae, 0xd6, 0x94, 0x54, 0x77, - 0xab, 0xb1, 0x56, 0x08, 0xec, 0x87, 0x25, 0xb4, 0xfb, 0xd7, 0x2d, 0x38, 0x75, 0xc9, 0x4b, 0x30, - 0x69, 0x85, 0xd9, 0xf0, 0xd3, 0x88, 0xb4, 0xc2, 0xd8, 0x4b, 0xc2, 0x68, 0x2f, 0x1b, 0x7e, 0x8a, - 0x15, 0x06, 0x6b, 0x54, 0xbc, 0xe6, 0x5d, 0x2f, 0xa6, 0x2d, 0x2d, 0x99, 0x06, 0x24, 0x16, 0x70, - 0xac, 0x28, 0xe8, 0x87, 0xb9, 0x5e, 0xc4, 0x14, 0x80, 0x3d, 0xb1, 0x5a, 0xd5, 0x87, 0xd5, 0x24, - 0x02, 0xa7, 0x34, 0xf6, 0xd7, 0x2c, 0x38, 0x7d, 0xc9, 0x6f, 0xc7, 0x09, 0x89, 0x36, 0x62, 0xa3, - 0xb1, 0xcf, 0x41, 0x85, 0x48, 0x25, 0x5b, 0xb4, 0x55, 0x6d, 0x0b, 0x4a, 0xfb, 0xe6, 0xb1, 0xaf, - 0x8a, 0xae, 0x8f, 0x60, 0xcb, 0xa3, 0x05, 0x09, 0x7e, 0xb3, 0x04, 0xe3, 0x97, 0xd7, 0xd7, 0xeb, - 0x97, 0x48, 0x22, 0x24, 0x62, 0x6f, 0x27, 0x11, 0xd6, 0xec, 0xdc, 0x6e, 0xaa, 0x4c, 0x3b, 0xf1, - 0xfc, 0x79, 0x7e, 0xed, 0x60, 0x7e, 0x2d, 0x48, 0x6e, 0x44, 0x8d, 0x24, 0xf2, 0x82, 0xcd, 0x5c, - 0xcb, 0x58, 0xca, 0xed, 0x72, 0x91, 0xdc, 0x46, 0xcf, 0xc1, 0x10, 0xbb, 0xf7, 0x20, 0x95, 0x8a, - 0x07, 0x95, 0x26, 0xc0, 0xa0, 0x87, 0xfb, 0x73, 0x95, 0x9b, 0x78, 0x8d, 0xff, 0xc1, 0x82, 0x14, - 0xdd, 0x84, 0xd1, 0xad, 0x24, 0x69, 0x5d, 0x26, 0x8e, 0x4b, 0x22, 0x29, 0x1d, 0xce, 0xe5, 0x49, - 0x07, 0xda, 0x09, 0x9c, 0x2c, 0x5d, 0x50, 0x29, 0x2c, 0xc6, 0x3a, 0x1f, 0xbb, 0x01, 0x90, 0xe2, - 0x8e, 0xc9, 0x2a, 0xb0, 0x7f, 0x68, 0xc1, 0xf0, 0x65, 0x27, 0x70, 0x7d, 0x12, 0xa1, 0x97, 0x61, - 0x80, 0xdc, 0x25, 0x4d, 0xb1, 0x41, 0xe7, 0x36, 0x38, 0xdd, 0xc4, 0xb8, 0x9f, 0x8b, 0xfe, 0xc7, - 0xac, 0x14, 0xba, 0x0c, 0xc3, 0xb4, 0xb5, 0x97, 0x54, 0x14, 0xf2, 0x23, 0x45, 0x5f, 0xac, 0x86, - 0x9d, 0xef, 0x7b, 0x02, 0x84, 0x65, 0x71, 0xe6, 0xaf, 0x69, 0xb6, 0x1a, 0x54, 0x80, 0x25, 0xdd, - 0xac, 0xa9, 0xf5, 0xe5, 0x3a, 0x27, 0x12, 0xdc, 0xb8, 0xbf, 0x46, 0x02, 0x71, 0xca, 0xc4, 0x5e, - 0x87, 0x0a, 0x1d, 0xd4, 0x45, 0xdf, 0x73, 0xba, 0xbb, 0x8a, 0x9e, 0x82, 0x8a, 0x74, 0xdb, 0xc4, - 0x22, 0x90, 0x99, 0x71, 0x95, 0x5e, 0x9d, 0x18, 0xa7, 0x78, 0xfb, 0x45, 0x98, 0x61, 0xe7, 0xa0, - 0x4e, 0xb2, 0x65, 0xac, 0xb1, 0x9e, 0x93, 0xd9, 0xfe, 0xc6, 0x00, 0x4c, 0xaf, 0x35, 0x96, 0x1b, - 0xa6, 0x37, 0xf0, 0x45, 0x18, 0xe3, 0x5b, 0x37, 0x9d, 0xa2, 0x8e, 0x2f, 0xca, 0x2b, 0x6f, 0xff, - 0xba, 0x86, 0xc3, 0x06, 0x25, 0x7a, 0x18, 0xca, 0xde, 0xbb, 0x41, 0x36, 0x7e, 0x6d, 0xed, 0xb5, - 0xeb, 0x98, 0xc2, 0x29, 0x9a, 0x6a, 0x01, 0x5c, 0x24, 0x2a, 0xb4, 0xd2, 0x04, 0x5e, 0x81, 0x09, - 0x2f, 0x6e, 0xc6, 0xde, 0x5a, 0x40, 0xe5, 0x85, 0xd3, 0x94, 0x93, 0x3d, 0x55, 0xd1, 0x69, 0x53, - 0x15, 0x16, 0x67, 0xa8, 0x35, 0xf9, 0x3c, 0xd8, 0xb7, 0x26, 0xd1, 0x33, 0xc8, 0x99, 0x2a, 0x49, - 0x2d, 0xf6, 0x75, 0x31, 0x8b, 0xa5, 0x11, 0x4a, 0x12, 0xff, 0xe0, 0x18, 0x4b, 0x1c, 0xba, 0x04, - 0xd3, 0xcd, 0x2d, 0xa7, 0xb5, 0xd8, 0x4e, 0xb6, 0x6a, 0x5e, 0xdc, 0x0c, 0x77, 0x49, 0xb4, 0xc7, - 0x54, 0xd7, 0x91, 0xd4, 0x2b, 0xa4, 0x10, 0xcb, 0x97, 0x17, 0xeb, 0x94, 0x12, 0x77, 0x96, 0x31, - 0x95, 0x0a, 0x38, 0x36, 0xa5, 0x62, 0x11, 0x26, 0x65, 0x5d, 0x0d, 0x12, 0x33, 0x81, 0x3f, 0xca, - 0x5a, 0xa7, 0x2e, 0x90, 0x08, 0xb0, 0x6a, 0x5b, 0x96, 0xde, 0x7e, 0x07, 0x2a, 0x2a, 0xce, 0x4b, - 0x86, 0x2a, 0x5a, 0x05, 0xa1, 0x8a, 0xbd, 0x45, 0xb5, 0xf4, 0x56, 0x97, 0x73, 0xbd, 0xd5, 0x7f, - 0xc3, 0x82, 0x34, 0xdc, 0x05, 0x5d, 0x86, 0x4a, 0x2b, 0x64, 0x27, 0x56, 0x91, 0x3c, 0x06, 0x7e, - 0x30, 0x77, 0x55, 0x73, 0x09, 0xc2, 0xbb, 0xa1, 0x2e, 0x4b, 0xe0, 0xb4, 0x30, 0x5a, 0x82, 0xe1, - 0x56, 0x44, 0x1a, 0x09, 0xbb, 0x1f, 0xd0, 0x93, 0x0f, 0x1f, 0x6a, 0x4e, 0x8f, 0x65, 0x41, 0xfb, - 0xb7, 0x2c, 0x00, 0xee, 0x0c, 0x76, 0x82, 0x4d, 0x72, 0x02, 0x06, 0x6e, 0x0d, 0x06, 0xe2, 0x16, - 0x69, 0x76, 0x3b, 0x4b, 0x4c, 0xdb, 0xd3, 0x68, 0x91, 0x66, 0xda, 0xe1, 0xf4, 0x1f, 0x66, 0xa5, - 0xed, 0x9f, 0x07, 0x98, 0x48, 0xc9, 0xa8, 0xe1, 0x81, 0x9e, 0x31, 0xc2, 0xe1, 0xcf, 0x66, 0xc2, - 0xe1, 0x2b, 0x8c, 0x5a, 0x8b, 0x80, 0x7f, 0x07, 0xca, 0x3b, 0xce, 0x5d, 0x61, 0xdd, 0x3c, 0xd5, - 0xbd, 0x19, 0x94, 0xff, 0xfc, 0x35, 0xe7, 0x2e, 0x57, 0x30, 0x9f, 0x92, 0x13, 0xe4, 0x9a, 0x73, - 0xf7, 0x90, 0x9f, 0x18, 0x32, 0x59, 0x43, 0x8d, 0xa8, 0x2f, 0xfe, 0x49, 0xfa, 0x9f, 0x6d, 0x1b, - 0xb4, 0x12, 0x56, 0x97, 0x17, 0x08, 0xd7, 0x68, 0x5f, 0x75, 0x79, 0x41, 0xb6, 0x2e, 0x2f, 0xe8, - 0xa3, 0x2e, 0x2f, 0x40, 0xef, 0xc1, 0xb0, 0x38, 0x8a, 0x60, 0x71, 0x7c, 0xa3, 0x17, 0x17, 0xfa, - 0xa8, 0x4f, 0x9c, 0x64, 0xf0, 0x3a, 0x17, 0xa4, 0x02, 0x2d, 0xa0, 0x3d, 0xeb, 0x95, 0x15, 0xa2, - 0xbf, 0x66, 0xc1, 0x84, 0xf8, 0x8d, 0xc9, 0xbb, 0x6d, 0x12, 0x27, 0x62, 0xa3, 0xfe, 0x78, 0xff, - 0x6d, 0x10, 0x05, 0x79, 0x53, 0x3e, 0x2e, 0xa5, 0xa5, 0x89, 0xec, 0xd9, 0xa2, 0x4c, 0x2b, 0xd0, - 0x3f, 0xb4, 0x60, 0x66, 0xc7, 0xb9, 0xcb, 0x6b, 0xe4, 0x30, 0xec, 0x24, 0x5e, 0x28, 0xe2, 0x12, - 0x5f, 0xee, 0x6f, 0xf8, 0x3b, 0x8a, 0xf3, 0x46, 0xca, 0x10, 0xa6, 0x99, 0x3c, 0x92, 0x9e, 0x4d, - 0xcd, 0x6d, 0xd7, 0xec, 0x06, 0x8c, 0xc8, 0xf9, 0x96, 0x63, 0xa6, 0xd4, 0x74, 0x2d, 0xe4, 0xc8, - 0x27, 0x41, 0x9a, 0x59, 0xc3, 0xea, 0x11, 0x73, 0xed, 0xbe, 0xd6, 0xf3, 0x0e, 0x8c, 0xe9, 0x73, - 0xec, 0xbe, 0xd6, 0xf5, 0x2e, 0x9c, 0xca, 0x99, 0x4b, 0xf7, 0xb5, 0xca, 0x3b, 0x70, 0xb6, 0x70, - 0x7e, 0xdc, 0xcf, 0x8a, 0xed, 0x6f, 0x5a, 0xba, 0x1c, 0x3c, 0x01, 0xb7, 0xd0, 0xb2, 0xe9, 0x16, - 0x3a, 0xd7, 0x7d, 0xe5, 0x14, 0xf8, 0x86, 0xde, 0xd2, 0x1b, 0x4d, 0xa5, 0x3a, 0x7a, 0x15, 0x86, - 0x7c, 0x0a, 0x91, 0xe7, 0x5f, 0x76, 0xef, 0x15, 0x99, 0xaa, 0x44, 0x0c, 0x1e, 0x63, 0xc1, 0xc1, - 0xfe, 0x5d, 0x0b, 0x06, 0x4e, 0xa0, 0x27, 0xb0, 0xd9, 0x13, 0xcf, 0x14, 0xb2, 0x16, 0x97, 0xbd, - 0xe7, 0xb1, 0x73, 0x67, 0xe5, 0x6e, 0x42, 0x82, 0x98, 0xe9, 0xd5, 0xb9, 0x1d, 0xf3, 0xbf, 0x4b, - 0x30, 0x4a, 0xab, 0x92, 0xc1, 0x1a, 0x2f, 0xc1, 0xb8, 0xef, 0xdc, 0x26, 0xbe, 0x74, 0x55, 0x67, - 0xad, 0xcb, 0xab, 0x3a, 0x12, 0x9b, 0xb4, 0xb4, 0xf0, 0x86, 0xee, 0xb5, 0x17, 0xfa, 0x8b, 0x2a, - 0x6c, 0xb8, 0xf4, 0xb1, 0x49, 0x4b, 0x0d, 0x9d, 0x3b, 0x4e, 0xd2, 0xdc, 0x12, 0x96, 0xa7, 0x6a, - 0xee, 0xeb, 0x14, 0x88, 0x39, 0x8e, 0xea, 0x61, 0x72, 0x76, 0xde, 0x22, 0x11, 0xd3, 0xc3, 0xb8, - 0x96, 0xab, 0xf4, 0x30, 0x6c, 0xa2, 0x71, 0x96, 0x1e, 0x7d, 0x0a, 0x26, 0x68, 0xe7, 0x84, 0xed, - 0x44, 0x86, 0xa2, 0x0c, 0xb2, 0x50, 0x14, 0x16, 0x79, 0xbc, 0x6e, 0x60, 0x70, 0x86, 0x12, 0xd5, - 0x61, 0xc6, 0x0b, 0x9a, 0x7e, 0xdb, 0x25, 0x37, 0x03, 0x2f, 0xf0, 0x12, 0xcf, 0xf1, 0xbd, 0xf7, - 0x88, 0x2b, 0xf4, 0x60, 0x15, 0x35, 0xb4, 0x96, 0x43, 0x83, 0x73, 0x4b, 0xda, 0x3f, 0x0b, 0xa7, - 0xae, 0x86, 0x8e, 0xbb, 0xe4, 0xf8, 0x4e, 0xd0, 0x24, 0xd1, 0x5a, 0xb0, 0xd9, 0xf3, 0x20, 0x5c, - 0x3f, 0xb6, 0x2e, 0xf5, 0x3a, 0xb6, 0xb6, 0xb7, 0x00, 0xe9, 0x15, 0x88, 0x10, 0x2c, 0x0c, 0xc3, - 0x1e, 0xaf, 0x4a, 0x4c, 0xff, 0xc7, 0xf3, 0x95, 0xe4, 0x8e, 0x96, 0x69, 0xc1, 0x45, 0x1c, 0x80, - 0x25, 0x23, 0x6a, 0x48, 0xe5, 0x69, 0xd5, 0xbd, 0x6d, 0x5c, 0xfb, 0x05, 0x98, 0x66, 0x25, 0x8f, - 0x68, 0x7f, 0xfd, 0x65, 0x0b, 0x26, 0xaf, 0x67, 0xee, 0x9e, 0x3e, 0x06, 0x43, 0x31, 0x89, 0x72, - 0x9c, 0x94, 0x0d, 0x06, 0xc5, 0x02, 0x7b, 0xec, 0xce, 0x90, 0x1f, 0x59, 0x50, 0x61, 0xb1, 0xbd, - 0x2d, 0x6a, 0x4b, 0xdd, 0x7f, 0xa5, 0x76, 0xd9, 0x50, 0x6a, 0x73, 0x8d, 0x74, 0xd5, 0x9c, 0x22, - 0x9d, 0x16, 0x5d, 0x51, 0x77, 0x32, 0xbb, 0xd8, 0xe7, 0x29, 0x1b, 0x7e, 0x83, 0x6f, 0xc2, 0xbc, - 0xb8, 0x29, 0x6f, 0x69, 0xb2, 0x93, 0x68, 0x45, 0xfb, 0x21, 0x39, 0x89, 0x56, 0xed, 0x29, 0x90, - 0x7e, 0x75, 0xad, 0xc9, 0x6c, 0x57, 0xf8, 0x0c, 0x8b, 0xd8, 0x64, 0x6b, 0x53, 0x5d, 0x5e, 0x9e, - 0x13, 0x11, 0x98, 0x02, 0x7a, 0xc8, 0x04, 0x99, 0xf8, 0xc7, 0x6f, 0xa4, 0xa7, 0x45, 0xec, 0xcb, - 0x30, 0x99, 0xe9, 0x30, 0xf4, 0x02, 0x0c, 0xb6, 0xb6, 0x9c, 0x98, 0x64, 0x22, 0x70, 0x06, 0xeb, - 0x14, 0x78, 0xb8, 0x3f, 0x37, 0xa1, 0x0a, 0x30, 0x08, 0xe6, 0xd4, 0xf6, 0x7f, 0xb5, 0x60, 0xe0, - 0x7a, 0xe8, 0x9e, 0xc4, 0x64, 0x7a, 0xc5, 0x98, 0x4c, 0x0f, 0x15, 0x65, 0xb6, 0x28, 0x9c, 0x47, - 0xab, 0x99, 0x79, 0x74, 0xae, 0x90, 0x43, 0xf7, 0x29, 0xb4, 0x03, 0xa3, 0x2c, 0x5f, 0x86, 0x88, - 0x06, 0x7a, 0xce, 0xb0, 0xaf, 0xe6, 0x32, 0xf6, 0xd5, 0xa4, 0x46, 0xaa, 0x59, 0x59, 0x4f, 0xc0, - 0xb0, 0x88, 0x48, 0xc9, 0xc6, 0xa6, 0x0a, 0x5a, 0x2c, 0xf1, 0xf6, 0xaf, 0x96, 0xc1, 0xc8, 0xcf, - 0x81, 0x7e, 0xdf, 0x82, 0xf9, 0x88, 0xdf, 0xc6, 0x71, 0x6b, 0xed, 0xc8, 0x0b, 0x36, 0x1b, 0xcd, - 0x2d, 0xe2, 0xb6, 0x7d, 0x2f, 0xd8, 0x5c, 0xdb, 0x0c, 0x42, 0x05, 0x5e, 0xb9, 0x4b, 0x9a, 0x6d, - 0xe6, 0xa0, 0xee, 0x91, 0x0c, 0x44, 0x9d, 0xf8, 0x5e, 0x3c, 0xd8, 0x9f, 0x9b, 0xc7, 0x47, 0xe2, - 0x8d, 0x8f, 0xd8, 0x16, 0xf4, 0x87, 0x16, 0x2c, 0xf0, 0xb4, 0x15, 0xfd, 0xb7, 0xbf, 0x8b, 0x35, - 0x5a, 0x97, 0xac, 0x52, 0x26, 0xeb, 0x24, 0xda, 0x59, 0xfa, 0x84, 0xe8, 0xd0, 0x85, 0xfa, 0xd1, - 0xea, 0xc2, 0x47, 0x6d, 0x9c, 0xfd, 0xcf, 0xcb, 0x30, 0x4e, 0x7b, 0x31, 0xbd, 0x81, 0xfe, 0x82, - 0x31, 0x25, 0x1e, 0xc9, 0x4c, 0x89, 0x69, 0x83, 0xf8, 0x78, 0x2e, 0x9f, 0xc7, 0x30, 0xed, 0x3b, - 0x71, 0x72, 0x99, 0x38, 0x51, 0x72, 0x9b, 0x38, 0xec, 0x88, 0x55, 0x4c, 0xf3, 0xa3, 0x9c, 0xda, - 0x2a, 0x2f, 0xd6, 0xd5, 0x2c, 0x33, 0xdc, 0xc9, 0x1f, 0xed, 0x02, 0x62, 0xc7, 0xb9, 0x91, 0x13, - 0xc4, 0xfc, 0x5b, 0x3c, 0xe1, 0xbc, 0x3e, 0x5a, 0xad, 0xb3, 0xa2, 0x56, 0x74, 0xb5, 0x83, 0x1b, - 0xce, 0xa9, 0x41, 0x3b, 0xa6, 0x1f, 0xec, 0xf7, 0x98, 0x7e, 0xa8, 0x47, 0x00, 0xf8, 0x0e, 0x4c, - 0x89, 0x51, 0xd9, 0xf0, 0x36, 0xc5, 0x26, 0xfd, 0x46, 0x26, 0x8c, 0xc7, 0xea, 0x3f, 0xe0, 0xa0, - 0x47, 0x0c, 0x8f, 0xfd, 0x73, 0x70, 0x8a, 0x56, 0x67, 0x86, 0x2b, 0xc7, 0x88, 0xc0, 0xe4, 0x76, - 0xfb, 0x36, 0xf1, 0x49, 0x22, 0x61, 0xa2, 0xd2, 0x5c, 0xb5, 0xdf, 0x2c, 0x9d, 0xea, 0x96, 0x57, - 0x4c, 0x16, 0x38, 0xcb, 0xd3, 0xfe, 0x35, 0x0b, 0x58, 0x40, 0xe0, 0x09, 0x6c, 0x7f, 0x9f, 0x36, - 0xb7, 0xbf, 0x6a, 0x91, 0x04, 0x2a, 0xd8, 0xf9, 0x9e, 0xe7, 0xc3, 0x52, 0x8f, 0xc2, 0xbb, 0x7b, - 0x52, 0xf7, 0xef, 0xad, 0x71, 0xfd, 0x2f, 0x8b, 0x2f, 0x48, 0x75, 0x39, 0x11, 0x7d, 0x01, 0x46, - 0x9a, 0x4e, 0xcb, 0x69, 0xf2, 0xc4, 0x48, 0x85, 0xde, 0x1f, 0xa3, 0xd0, 0xfc, 0xb2, 0x28, 0xc1, - 0xbd, 0x19, 0x3f, 0x25, 0xbf, 0x52, 0x82, 0x7b, 0x7a, 0x30, 0x54, 0x95, 0xb3, 0xdb, 0x30, 0x6e, - 0x30, 0xbb, 0xaf, 0xa6, 0xef, 0x17, 0xf8, 0x76, 0xa1, 0x2c, 0x96, 0x1d, 0x98, 0x0e, 0xb4, 0xff, - 0x54, 0x38, 0x4a, 0x75, 0xfa, 0xa3, 0xbd, 0x36, 0x04, 0x26, 0x49, 0xb5, 0x80, 0xc7, 0x0c, 0x1b, - 0xdc, 0xc9, 0xd9, 0xfe, 0x5b, 0x16, 0x3c, 0xa0, 0x13, 0x6a, 0xf7, 0x46, 0x7b, 0xf9, 0x93, 0x6b, - 0x30, 0x12, 0xb6, 0x48, 0xe4, 0xa4, 0x36, 0xd9, 0x05, 0xd9, 0xe9, 0x37, 0x04, 0xfc, 0x70, 0x7f, - 0x6e, 0x46, 0xe7, 0x2e, 0xe1, 0x58, 0x95, 0x44, 0x36, 0x0c, 0xb1, 0xce, 0x88, 0xc5, 0x9d, 0x5e, - 0x96, 0x3c, 0x88, 0x9d, 0x43, 0xc5, 0x58, 0x60, 0xec, 0x9f, 0xb7, 0xf8, 0xc4, 0xd2, 0x9b, 0x8e, - 0xde, 0x85, 0xa9, 0x1d, 0x6a, 0xbe, 0xad, 0xdc, 0x6d, 0x45, 0xdc, 0x1b, 0x2e, 0xfb, 0xe9, 0xa9, - 0x5e, 0xfd, 0xa4, 0x7d, 0xe4, 0x52, 0x55, 0xb4, 0x79, 0xea, 0x5a, 0x86, 0x19, 0xee, 0x60, 0x6f, - 0xff, 0x59, 0x89, 0xaf, 0x44, 0xa6, 0xd5, 0x3d, 0x01, 0xc3, 0xad, 0xd0, 0x5d, 0x5e, 0xab, 0x61, - 0xd1, 0x43, 0x4a, 0x5c, 0xd5, 0x39, 0x18, 0x4b, 0x3c, 0xba, 0x08, 0x40, 0xee, 0x26, 0x24, 0x0a, - 0x1c, 0x5f, 0x9d, 0x92, 0x2b, 0xe5, 0x69, 0x45, 0x61, 0xb0, 0x46, 0x45, 0xcb, 0xb4, 0xa2, 0x70, - 0xd7, 0x73, 0xd9, 0xa5, 0x8a, 0xb2, 0x59, 0xa6, 0xae, 0x30, 0x58, 0xa3, 0xa2, 0xa6, 0x72, 0x3b, - 0x88, 0xf9, 0x06, 0xe8, 0xdc, 0x16, 0x89, 0x6b, 0x46, 0x52, 0x53, 0xf9, 0xa6, 0x8e, 0xc4, 0x26, - 0x2d, 0x5a, 0x84, 0xa1, 0xc4, 0x61, 0x67, 0xbf, 0x83, 0xc5, 0xa1, 0x32, 0xeb, 0x94, 0x42, 0xcf, - 0x0f, 0x44, 0x0b, 0x60, 0x51, 0x10, 0xbd, 0x29, 0x45, 0x30, 0x17, 0xc9, 0x22, 0xe4, 0xa9, 0x70, - 0xda, 0xea, 0xe2, 0x5b, 0x97, 0xc1, 0x22, 0x94, 0xca, 0xe0, 0x65, 0x7f, 0xa9, 0x02, 0x90, 0x6a, - 0x7b, 0xe8, 0xbd, 0x0e, 0x11, 0xf1, 0x74, 0x77, 0xfd, 0xf0, 0xf8, 0xe4, 0x03, 0xfa, 0xb2, 0x05, - 0xa3, 0x8e, 0xef, 0x87, 0x4d, 0x27, 0x61, 0xbd, 0x5c, 0xea, 0x2e, 0xa2, 0x44, 0xfd, 0x8b, 0x69, - 0x09, 0xde, 0x84, 0xe7, 0xe4, 0xb1, 0xae, 0x86, 0xe9, 0xd9, 0x0a, 0xbd, 0x62, 0xf4, 0x53, 0xd2, - 0x08, 0xe0, 0xd3, 0x63, 0x36, 0x6b, 0x04, 0x54, 0x98, 0x34, 0xd6, 0xf4, 0x7f, 0x74, 0xd3, 0xc8, - 0x17, 0x33, 0x50, 0x7c, 0x35, 0xd6, 0x50, 0x7a, 0x7a, 0xa5, 0x8a, 0x41, 0x75, 0x3d, 0xf4, 0x7b, - 0xb0, 0xf8, 0xfe, 0xb8, 0xa6, 0x5d, 0xf7, 0x08, 0xfb, 0x7e, 0x07, 0x26, 0x5d, 0x73, 0xbb, 0x15, - 0xb3, 0xe9, 0xf1, 0x22, 0xbe, 0x99, 0xdd, 0x39, 0xdd, 0x60, 0x33, 0x08, 0x9c, 0x65, 0x8c, 0xea, - 0x3c, 0x08, 0x7f, 0x2d, 0xd8, 0x08, 0x45, 0xe8, 0x9c, 0x5d, 0x38, 0x96, 0x7b, 0x71, 0x42, 0x76, - 0x28, 0x65, 0xba, 0x8f, 0x5e, 0x17, 0x65, 0xb1, 0xe2, 0x82, 0x5e, 0x85, 0x21, 0x76, 0x3b, 0x2a, - 0xae, 0x8e, 0x14, 0xfb, 0x01, 0xcd, 0x8b, 0xbd, 0xe9, 0xa2, 0x62, 0x7f, 0x63, 0x2c, 0x38, 0xa0, - 0xcb, 0xf2, 0x7a, 0x7e, 0xbc, 0x16, 0xdc, 0x8c, 0x09, 0xbb, 0x9e, 0x5f, 0x59, 0xfa, 0x68, 0x7a, - 0xf3, 0x9e, 0xc3, 0x73, 0x73, 0xe2, 0x19, 0x25, 0xa9, 0xbe, 0x22, 0xfe, 0xcb, 0x54, 0x7b, 0x55, - 0x28, 0x6e, 0x9e, 0x99, 0x8e, 0x2f, 0xed, 0xce, 0x5b, 0x26, 0x0b, 0x9c, 0xe5, 0x79, 0xa2, 0xdb, - 0xe7, 0x6c, 0x00, 0x53, 0xd9, 0x85, 0x75, 0x5f, 0xb7, 0xeb, 0x1f, 0x0e, 0xc0, 0x84, 0x39, 0x11, - 0xd0, 0x02, 0x54, 0x04, 0x13, 0x95, 0x5c, 0x4b, 0xcd, 0xed, 0x6b, 0x12, 0x81, 0x53, 0x1a, 0x96, - 0x5c, 0x8c, 0x15, 0xd7, 0x82, 0xa6, 0xd2, 0xe4, 0x62, 0x0a, 0x83, 0x35, 0x2a, 0xaa, 0x44, 0xdf, - 0x0e, 0xc3, 0x44, 0x6d, 0x05, 0x6a, 0xb6, 0x2c, 0x31, 0x28, 0x16, 0x58, 0xba, 0x05, 0x6c, 0x93, - 0x28, 0x20, 0xbe, 0xe9, 0xc9, 0x54, 0x5b, 0xc0, 0x15, 0x1d, 0x89, 0x4d, 0x5a, 0xba, 0xa5, 0x85, - 0x31, 0x9b, 0x7e, 0x42, 0x55, 0x4f, 0x83, 0xd0, 0x1a, 0xfc, 0x76, 0xa0, 0xc4, 0xa3, 0x37, 0xe0, - 0x01, 0x75, 0x99, 0x0f, 0x73, 0xcf, 0xb0, 0xac, 0x71, 0xc8, 0xb0, 0xac, 0x1f, 0x58, 0xce, 0x27, - 0xc3, 0x45, 0xe5, 0xd1, 0x2b, 0x30, 0x21, 0x54, 0x60, 0xc9, 0x71, 0xd8, 0x8c, 0x39, 0xb8, 0x62, - 0x60, 0x71, 0x86, 0x1a, 0xd5, 0x60, 0x8a, 0x42, 0x98, 0x16, 0x2a, 0x39, 0xf0, 0x4b, 0x89, 0x6a, - 0xaf, 0xbf, 0x92, 0xc1, 0xe3, 0x8e, 0x12, 0x68, 0x11, 0x26, 0xb9, 0x8e, 0x42, 0x6d, 0x4a, 0x36, - 0x0e, 0x22, 0xa2, 0x55, 0x2d, 0x84, 0x1b, 0x26, 0x1a, 0x67, 0xe9, 0xd1, 0x8b, 0x30, 0xe6, 0x44, - 0xcd, 0x2d, 0x2f, 0x21, 0xcd, 0xa4, 0x1d, 0xf1, 0xe4, 0x17, 0x5a, 0xd0, 0xc6, 0xa2, 0x86, 0xc3, - 0x06, 0xa5, 0xfd, 0x1e, 0x9c, 0xca, 0x09, 0x86, 0xa7, 0x13, 0xc7, 0x69, 0x79, 0xf2, 0x9b, 0x32, - 0xe1, 0x64, 0x8b, 0xf5, 0x35, 0xf9, 0x35, 0x1a, 0x15, 0x9d, 0x9d, 0xcc, 0x25, 0xae, 0xe5, 0xc3, - 0x54, 0xb3, 0x73, 0x55, 0x22, 0x70, 0x4a, 0x63, 0x7f, 0x17, 0x40, 0x73, 0xe8, 0xf4, 0x11, 0x4c, - 0xf4, 0x22, 0x8c, 0xc9, 0x24, 0xae, 0x5a, 0xca, 0x44, 0xf5, 0x99, 0x97, 0x34, 0x1c, 0x36, 0x28, - 0x69, 0xdb, 0x02, 0xe9, 0xa6, 0xca, 0x06, 0xaf, 0x29, 0xff, 0x15, 0x4e, 0x69, 0xd0, 0xd3, 0x30, - 0x12, 0x13, 0x7f, 0xe3, 0xaa, 0x17, 0x6c, 0x8b, 0x89, 0xad, 0xa4, 0x70, 0x43, 0xc0, 0xb1, 0xa2, - 0x40, 0x4b, 0x50, 0x6e, 0x7b, 0xae, 0x98, 0xca, 0x72, 0xc3, 0x2f, 0xdf, 0x5c, 0xab, 0x1d, 0xee, - 0xcf, 0x3d, 0x52, 0x94, 0x9b, 0x96, 0x9a, 0xf6, 0xf1, 0x3c, 0x5d, 0x7e, 0xb4, 0x70, 0xde, 0xd9, - 0xc0, 0xd0, 0x11, 0xcf, 0x06, 0x2e, 0x02, 0x88, 0xaf, 0x96, 0x73, 0xb9, 0x9c, 0x8e, 0xda, 0x25, - 0x85, 0xc1, 0x1a, 0x15, 0x8a, 0x61, 0xba, 0x19, 0x11, 0x47, 0xda, 0xd0, 0x3c, 0xac, 0x7b, 0xe4, - 0xde, 0x1d, 0x04, 0xcb, 0x59, 0x66, 0xb8, 0x93, 0x3f, 0x0a, 0x61, 0xda, 0x15, 0x77, 0x47, 0xd3, - 0x4a, 0x2b, 0x47, 0x8f, 0x25, 0x67, 0x71, 0x35, 0x59, 0x46, 0xb8, 0x93, 0x37, 0x7a, 0x1b, 0x66, - 0x25, 0xb0, 0xf3, 0xba, 0x2e, 0x5b, 0x2e, 0xe5, 0xa5, 0x73, 0x07, 0xfb, 0x73, 0xb3, 0xb5, 0x42, - 0x2a, 0xdc, 0x85, 0x03, 0xc2, 0x30, 0xc4, 0xce, 0x92, 0xe2, 0xea, 0x28, 0xdb, 0xe7, 0x9e, 0x2c, - 0x76, 0x06, 0xd0, 0xb9, 0x3e, 0xcf, 0xce, 0xa1, 0x44, 0xfc, 0x6d, 0x7a, 0x2c, 0xc7, 0x80, 0x58, - 0x70, 0x42, 0x1b, 0x30, 0xea, 0x04, 0x41, 0x98, 0x38, 0x5c, 0x85, 0x1a, 0x2b, 0xd6, 0xfd, 0x34, - 0xc6, 0x8b, 0x69, 0x09, 0xce, 0x5d, 0x85, 0xf4, 0x69, 0x18, 0xac, 0x33, 0x46, 0x77, 0x60, 0x32, - 0xbc, 0x43, 0x85, 0xa3, 0xf4, 0x52, 0xc4, 0xd5, 0x71, 0x56, 0xd7, 0xf3, 0x7d, 0xfa, 0x69, 0x8d, - 0xc2, 0x9a, 0xd4, 0x32, 0x99, 0xe2, 0x6c, 0x2d, 0x68, 0xde, 0xf0, 0x56, 0x4f, 0xa4, 0x71, 0xe4, - 0xa9, 0xb7, 0x5a, 0x77, 0x4e, 0xb3, 0xeb, 0xdf, 0x3c, 0x9e, 0x94, 0xad, 0xfe, 0xc9, 0xcc, 0xf5, - 0xef, 0x14, 0x85, 0x75, 0x3a, 0xb4, 0x05, 0x63, 0xe9, 0x91, 0x55, 0x14, 0xb3, 0xec, 0x30, 0xa3, - 0x17, 0x2f, 0xf6, 0xf7, 0x71, 0x6b, 0x5a, 0x49, 0x6e, 0x39, 0xe8, 0x10, 0x6c, 0x70, 0x9e, 0xfd, - 0x24, 0x8c, 0x6a, 0x03, 0x7b, 0x94, 0x70, 0xe9, 0xd9, 0x57, 0x60, 0x2a, 0x3b, 0x74, 0x47, 0x0a, - 0xb7, 0xfe, 0xef, 0x25, 0x98, 0xcc, 0x39, 0xb9, 0x62, 0xf9, 0x6d, 0x33, 0x02, 0x35, 0x4d, 0x67, - 0x6b, 0x8a, 0xc5, 0x52, 0x1f, 0x62, 0x51, 0xca, 0xe8, 0x72, 0xa1, 0x8c, 0x16, 0xa2, 0x70, 0xe0, - 0xfd, 0x88, 0x42, 0x73, 0xf7, 0x19, 0xec, 0x6b, 0xf7, 0x39, 0x06, 0xf1, 0x69, 0x6c, 0x60, 0xc3, - 0x7d, 0x6c, 0x60, 0xbf, 0x54, 0x82, 0xa9, 0x34, 0xb4, 0x5c, 0x64, 0x93, 0xbe, 0xff, 0xe7, 0x1d, - 0xaf, 0x1a, 0xe7, 0x1d, 0xf9, 0xd9, 0xa2, 0x33, 0xad, 0x2a, 0x3c, 0xfb, 0xc0, 0x99, 0xb3, 0x8f, - 0x27, 0xfb, 0xe2, 0xd6, 0xfd, 0x1c, 0xe4, 0x6f, 0x97, 0xe0, 0x74, 0xb6, 0xc8, 0xb2, 0xef, 0x78, - 0x3b, 0x27, 0xd0, 0x37, 0x37, 0x8c, 0xbe, 0x79, 0xa6, 0x9f, 0xaf, 0x61, 0x4d, 0x2b, 0xec, 0xa0, - 0xd7, 0x33, 0x1d, 0xb4, 0xd0, 0x3f, 0xcb, 0xee, 0xbd, 0xf4, 0x5d, 0x0b, 0xce, 0xe6, 0x96, 0x3b, - 0x01, 0xef, 0xeb, 0x75, 0xd3, 0xfb, 0xfa, 0x44, 0xdf, 0xdf, 0x54, 0xe0, 0x8e, 0xfd, 0x5a, 0xb9, - 0xe0, 0x5b, 0x98, 0xff, 0xea, 0x06, 0x8c, 0x3a, 0xcd, 0x26, 0x89, 0xe3, 0x6b, 0xa1, 0xab, 0xd2, - 0x49, 0x3d, 0xc3, 0xf6, 0xa4, 0x14, 0x7c, 0xb8, 0x3f, 0x37, 0x9b, 0x65, 0x91, 0xa2, 0xb1, 0xce, - 0xc1, 0x4c, 0x51, 0x57, 0x3a, 0xd6, 0x14, 0x75, 0x17, 0x01, 0x76, 0x95, 0x55, 0x9b, 0x75, 0x86, - 0x69, 0xf6, 0xae, 0x46, 0x85, 0x7e, 0x86, 0xe9, 0x8a, 0x3c, 0x64, 0x84, 0x1f, 0x72, 0x3c, 0xd7, - 0xe7, 0x58, 0xe9, 0xe1, 0x27, 0xfc, 0x02, 0xaa, 0x72, 0x1c, 0x2a, 0x96, 0xe8, 0xb3, 0x30, 0x15, - 0xf3, 0x1c, 0x07, 0xcb, 0xbe, 0x13, 0xb3, 0x7b, 0x11, 0x42, 0x26, 0xb2, 0x5b, 0xa5, 0x8d, 0x0c, - 0x0e, 0x77, 0x50, 0xdb, 0x7f, 0xbf, 0x0c, 0x0f, 0x76, 0x99, 0xa2, 0x68, 0xd1, 0x3c, 0xe2, 0x7d, - 0x2a, 0xeb, 0xdd, 0x99, 0xcd, 0x2d, 0x6c, 0xb8, 0x7b, 0x32, 0x63, 0x5c, 0x7a, 0xdf, 0x63, 0xfc, - 0x15, 0x4b, 0xf3, 0xbb, 0xf1, 0x40, 0xd0, 0x4f, 0x1f, 0x71, 0xe9, 0xfd, 0xb8, 0x3a, 0xea, 0xbf, - 0x68, 0xc1, 0x23, 0xb9, 0x9f, 0x65, 0x84, 0x8a, 0x2c, 0x40, 0xa5, 0x49, 0x81, 0xda, 0xdd, 0xa5, - 0xf4, 0x82, 0xa0, 0x44, 0xe0, 0x94, 0xc6, 0x88, 0x08, 0x29, 0xf5, 0x8c, 0x08, 0xf9, 0xa7, 0x16, - 0xcc, 0x64, 0x1b, 0x71, 0x02, 0x92, 0x69, 0xcd, 0x94, 0x4c, 0x1f, 0xed, 0x67, 0xc8, 0x0b, 0x84, - 0xd2, 0xbf, 0x9d, 0x80, 0x33, 0x1d, 0x3b, 0x17, 0xef, 0xbb, 0x5d, 0x98, 0xde, 0x64, 0x2a, 0xbc, - 0x76, 0x2b, 0x4c, 0x7c, 0x4c, 0xee, 0x05, 0xba, 0xae, 0x57, 0xc8, 0xb8, 0x19, 0xd2, 0x41, 0x82, - 0x3b, 0xab, 0x40, 0x5f, 0xb4, 0x60, 0xc6, 0xb9, 0x13, 0x77, 0x3c, 0x39, 0x22, 0xe6, 0xcc, 0xf3, - 0xb9, 0xde, 0xb1, 0x1e, 0x4f, 0x94, 0x2c, 0x55, 0x0f, 0xf6, 0xe7, 0x66, 0xf2, 0xa8, 0x70, 0x6e, - 0x5d, 0x08, 0x8b, 0x8c, 0x7a, 0x54, 0xcb, 0xe9, 0x72, 0x6f, 0x31, 0xef, 0x56, 0x09, 0x97, 0x51, - 0x12, 0x83, 0x15, 0x1f, 0x74, 0x0b, 0x2a, 0x9b, 0xf2, 0xaa, 0x97, 0x90, 0x81, 0xb9, 0x9b, 0x4a, - 0xee, 0x7d, 0x30, 0x1e, 0xb1, 0xaf, 0x50, 0x38, 0x65, 0x85, 0x5e, 0x81, 0x72, 0xb0, 0x11, 0x8b, - 0x2b, 0xd2, 0xf9, 0xf1, 0x3d, 0x66, 0x04, 0x15, 0xbf, 0x5f, 0x7a, 0x7d, 0xb5, 0x81, 0x69, 0x41, - 0x5a, 0x3e, 0xba, 0xed, 0x0a, 0x87, 0x6e, 0x6e, 0x79, 0xbc, 0x54, 0xeb, 0x2c, 0x8f, 0x97, 0x6a, - 0x98, 0x16, 0x44, 0xab, 0x30, 0xc8, 0xee, 0x99, 0x08, 0x6f, 0x6d, 0xee, 0xfd, 0xf8, 0x8e, 0x3b, - 0x34, 0x3c, 0x55, 0x22, 0x03, 0x63, 0x5e, 0x1c, 0xbd, 0x0a, 0x43, 0x4d, 0x96, 0x2b, 0x5f, 0x98, - 0xd6, 0xf9, 0x39, 0x1f, 0x3a, 0xb2, 0xe9, 0xf3, 0x33, 0x2a, 0x0e, 0xc7, 0x82, 0x03, 0xe3, 0x45, - 0x5a, 0x5b, 0x1b, 0xb1, 0xb0, 0x98, 0xf3, 0x79, 0x75, 0xbc, 0x6b, 0x20, 0x78, 0x31, 0x38, 0x16, - 0x1c, 0xd0, 0xa7, 0xa0, 0xb4, 0xd1, 0x14, 0x17, 0x4d, 0x72, 0x7d, 0xb3, 0xe6, 0xd5, 0xdf, 0xa5, - 0xa1, 0x83, 0xfd, 0xb9, 0xd2, 0xea, 0x32, 0x2e, 0x6d, 0x34, 0xd1, 0x75, 0x18, 0xde, 0xe0, 0x17, - 0x3c, 0x45, 0x5e, 0xd4, 0xc7, 0xf3, 0xef, 0x9e, 0x76, 0xdc, 0x01, 0xe5, 0x37, 0x2b, 0x04, 0x02, - 0x4b, 0x26, 0x68, 0x1d, 0x60, 0x43, 0x5d, 0x54, 0x15, 0x89, 0x51, 0x3f, 0xda, 0xcf, 0x75, 0x56, - 0x61, 0x34, 0x2a, 0x28, 0xd6, 0xf8, 0xd0, 0x99, 0xe9, 0xc8, 0x07, 0x3b, 0x58, 0x52, 0xd4, 0x82, - 0x99, 0x99, 0xfb, 0xaa, 0x07, 0x9f, 0x99, 0x0a, 0x85, 0x53, 0x56, 0x68, 0x1b, 0xc6, 0x77, 0xe3, - 0xd6, 0x16, 0x91, 0x8b, 0x91, 0xe5, 0x47, 0x35, 0xcd, 0xca, 0x34, 0x99, 0xad, 0x20, 0xf4, 0xa2, - 0xa4, 0xed, 0xf8, 0x1d, 0xf2, 0x83, 0xe5, 0xf7, 0xba, 0xa5, 0x33, 0xc3, 0x26, 0x6f, 0xda, 0xd5, - 0xef, 0xb6, 0xc3, 0xdb, 0x7b, 0x09, 0x11, 0x59, 0x53, 0x73, 0xbb, 0xfa, 0x35, 0x4e, 0xd2, 0xd9, - 0xd5, 0x02, 0x81, 0x25, 0x13, 0xd5, 0x29, 0x4c, 0xee, 0x4d, 0xf5, 0xe8, 0x94, 0x8e, 0xf6, 0xa6, - 0x9d, 0xc2, 0xe4, 0x5c, 0xca, 0x8a, 0xc9, 0xb7, 0xd6, 0x56, 0x98, 0x84, 0x41, 0x46, 0xb6, 0x4e, - 0x17, 0xcb, 0xb7, 0x7a, 0x0e, 0x7d, 0xa7, 0x7c, 0xcb, 0xa3, 0xc2, 0xb9, 0x75, 0x21, 0x17, 0x26, - 0x5a, 0x61, 0x94, 0xdc, 0x09, 0x23, 0x39, 0x97, 0x50, 0x17, 0x43, 0xc9, 0xa0, 0x14, 0x35, 0xb2, - 0x58, 0x5a, 0x13, 0x83, 0x33, 0x3c, 0xe9, 0x90, 0xc4, 0x4d, 0xc7, 0x27, 0x6b, 0x37, 0xaa, 0xa7, - 0x8a, 0x87, 0xa4, 0xc1, 0x49, 0x3a, 0x87, 0x44, 0x20, 0xb0, 0x64, 0x42, 0x25, 0x0d, 0x4b, 0xc0, - 0xcd, 0xd2, 0xbc, 0x16, 0x48, 0x9a, 0x8e, 0x28, 0x53, 0x2e, 0x69, 0x18, 0x18, 0xf3, 0xe2, 0xe8, - 0xf3, 0x50, 0x11, 0xfa, 0x5f, 0x18, 0x57, 0x4f, 0x77, 0x68, 0xa3, 0x69, 0xcb, 0x38, 0xd1, 0x8d, - 0x46, 0xfe, 0x16, 0x29, 0x2e, 0x93, 0x49, 0x22, 0x9c, 0x32, 0xb5, 0xbf, 0x34, 0xd4, 0xa9, 0x19, - 0x30, 0x3d, 0xff, 0x4b, 0x56, 0xc7, 0x51, 0xe9, 0xc7, 0xfb, 0x35, 0x4e, 0x8f, 0xf1, 0xd0, 0xf4, - 0x8b, 0x16, 0x9c, 0x69, 0xe5, 0x7e, 0x94, 0xd8, 0x66, 0xfb, 0xb3, 0x71, 0x79, 0x37, 0xa8, 0x04, - 0xca, 0xf9, 0x78, 0x5c, 0x50, 0x53, 0x56, 0x1f, 0x2e, 0xbf, 0x6f, 0x7d, 0xf8, 0x1a, 0x8c, 0x30, - 0x55, 0x2e, 0x4d, 0xd6, 0xd2, 0x57, 0xc0, 0x11, 0xdb, 0xb0, 0x97, 0x45, 0x41, 0xac, 0x58, 0xa0, - 0x5f, 0xb0, 0xe0, 0xe1, 0x6c, 0xd3, 0x31, 0x61, 0x68, 0x91, 0xfc, 0x8f, 0x9b, 0x18, 0xab, 0xe2, - 0xfb, 0x1f, 0xae, 0x77, 0x23, 0x3e, 0xec, 0x45, 0x80, 0xbb, 0x57, 0x86, 0x6a, 0x39, 0x36, 0xce, - 0x90, 0x79, 0x92, 0xd2, 0xdb, 0xce, 0x39, 0x59, 0x2d, 0xfd, 0xeb, 0x56, 0x8e, 0x7a, 0xc9, 0xed, - 0xa9, 0x97, 0x4d, 0x7b, 0xea, 0xb1, 0xac, 0x3d, 0xd5, 0xe1, 0x1d, 0x31, 0x4c, 0xa9, 0xfe, 0xd3, - 0x93, 0xf6, 0x9b, 0x97, 0xc6, 0xf6, 0xe1, 0x7c, 0x2f, 0x31, 0xcb, 0xc2, 0xa7, 0x5c, 0x75, 0xae, - 0x98, 0x86, 0x4f, 0xb9, 0x6b, 0x35, 0xcc, 0x30, 0xfd, 0xa6, 0x40, 0xb0, 0xff, 0xb3, 0x05, 0xe5, - 0x7a, 0xe8, 0x9e, 0x80, 0xb7, 0xe7, 0xd3, 0x86, 0xb7, 0xe7, 0xc1, 0x82, 0x47, 0xe2, 0x0a, 0x7d, - 0x3b, 0x2b, 0x19, 0xdf, 0xce, 0xc3, 0x45, 0x0c, 0xba, 0x7b, 0x72, 0xfe, 0x4e, 0x19, 0xf4, 0x27, - 0xed, 0xd0, 0xbf, 0xb8, 0x97, 0x38, 0xdc, 0x72, 0xb7, 0x57, 0xee, 0x04, 0x67, 0x16, 0x75, 0x25, - 0xaf, 0xf8, 0xfd, 0x98, 0x85, 0xe3, 0xbe, 0x4e, 0xbc, 0xcd, 0xad, 0x84, 0xb8, 0xd9, 0xcf, 0x39, - 0xb9, 0x70, 0xdc, 0xff, 0x60, 0xc1, 0x64, 0xa6, 0x76, 0xe4, 0xe7, 0xdd, 0x17, 0xba, 0x47, 0xff, - 0xcd, 0x74, 0xcf, 0x0b, 0x46, 0xf3, 0x00, 0xca, 0x95, 0x2e, 0x7d, 0x24, 0x4c, 0x77, 0x55, 0xbe, - 0xf6, 0x18, 0x6b, 0x14, 0xe8, 0x05, 0x18, 0x4d, 0xc2, 0x56, 0xe8, 0x87, 0x9b, 0x7b, 0x57, 0x88, - 0x4c, 0xba, 0xa1, 0x0e, 0x3c, 0xd6, 0x53, 0x14, 0xd6, 0xe9, 0xec, 0x5f, 0x2f, 0x43, 0xf6, 0x19, - 0xc4, 0xff, 0x37, 0x27, 0x3f, 0x9c, 0x73, 0xf2, 0x7b, 0x16, 0x4c, 0xd1, 0xda, 0x59, 0x44, 0x8b, - 0x0c, 0x64, 0x55, 0xef, 0x18, 0x58, 0x5d, 0xde, 0x31, 0x78, 0x8c, 0xca, 0x2e, 0x37, 0x6c, 0x27, - 0xc2, 0x97, 0xa3, 0x09, 0x27, 0x0a, 0xc5, 0x02, 0x2b, 0xe8, 0x48, 0x14, 0x89, 0x5b, 0x40, 0x3a, - 0x1d, 0x89, 0x22, 0x2c, 0xb0, 0xf2, 0x99, 0x83, 0x81, 0x82, 0x67, 0x0e, 0x58, 0x3a, 0x2a, 0x11, - 0x45, 0x21, 0x54, 0x03, 0x2d, 0x1d, 0x95, 0x0c, 0xaf, 0x48, 0x69, 0xec, 0x6f, 0x96, 0x61, 0xac, - 0x1e, 0xba, 0x69, 0xec, 0xfb, 0xf3, 0x46, 0xec, 0xfb, 0xf9, 0x4c, 0xec, 0xfb, 0x94, 0x4e, 0x7b, - 0x3c, 0xa1, 0xef, 0x22, 0x59, 0x19, 0x7b, 0x74, 0xe3, 0x1e, 0xc3, 0xde, 0x8d, 0x64, 0x65, 0x8a, - 0x11, 0x36, 0xf9, 0xfe, 0x24, 0x85, 0xbb, 0xff, 0xb9, 0x05, 0x13, 0xf5, 0xd0, 0xa5, 0x13, 0xf4, - 0x27, 0x69, 0x36, 0xea, 0xc9, 0xce, 0x86, 0xba, 0x24, 0x3b, 0xfb, 0xbb, 0x16, 0x0c, 0xd7, 0x43, - 0xf7, 0x04, 0xfc, 0x9c, 0x2f, 0x9b, 0x7e, 0xce, 0x07, 0x0a, 0xa4, 0x6c, 0x81, 0x6b, 0xf3, 0xb7, - 0xcb, 0x30, 0x4e, 0xdb, 0x19, 0x6e, 0xca, 0x51, 0x32, 0x7a, 0xc4, 0xea, 0xa3, 0x47, 0xa8, 0x32, - 0x17, 0xfa, 0x7e, 0x78, 0x27, 0x3b, 0x62, 0xab, 0x0c, 0x8a, 0x05, 0x16, 0x3d, 0x0d, 0x23, 0xad, - 0x88, 0xec, 0x7a, 0x61, 0x3b, 0xce, 0xde, 0x23, 0xac, 0x0b, 0x38, 0x56, 0x14, 0xe8, 0x79, 0x18, - 0x8b, 0xbd, 0xa0, 0x49, 0x64, 0x64, 0xc5, 0x00, 0x8b, 0xac, 0xe0, 0xf9, 0x22, 0x35, 0x38, 0x36, - 0xa8, 0xd0, 0xeb, 0x50, 0x61, 0xff, 0xd9, 0xba, 0x39, 0xfa, 0x2b, 0x06, 0xdc, 0x54, 0x95, 0x0c, - 0x70, 0xca, 0x0b, 0x5d, 0x04, 0x48, 0x64, 0x0c, 0x48, 0x2c, 0xae, 0xb9, 0x2a, 0x8d, 0x52, 0x45, - 0x87, 0xc4, 0x58, 0xa3, 0x42, 0x4f, 0x41, 0x25, 0x71, 0x3c, 0xff, 0xaa, 0x17, 0x90, 0x58, 0xc4, - 0xd0, 0x88, 0x1c, 0xcc, 0x02, 0x88, 0x53, 0x3c, 0xdd, 0xd1, 0xd9, 0x25, 0x6a, 0xfe, 0x06, 0xca, - 0x08, 0xa3, 0x66, 0x3b, 0xfa, 0x55, 0x05, 0xc5, 0x1a, 0x85, 0xfd, 0x22, 0x9c, 0xae, 0x87, 0x6e, - 0x3d, 0x8c, 0x92, 0xd5, 0x30, 0xba, 0xe3, 0x44, 0xae, 0x1c, 0xbf, 0x39, 0x99, 0x0e, 0x98, 0xee, - 0xba, 0x83, 0xdc, 0xae, 0x37, 0x12, 0xfd, 0x3e, 0xc7, 0xf6, 0xf4, 0x23, 0x5e, 0x78, 0xf8, 0xd7, - 0x25, 0x40, 0x75, 0x16, 0xa5, 0x62, 0x3c, 0x94, 0xf3, 0x36, 0x4c, 0xc4, 0xe4, 0xaa, 0x17, 0xb4, - 0xef, 0x0a, 0x56, 0xdd, 0x6e, 0x93, 0x34, 0x56, 0x74, 0x4a, 0xee, 0x1b, 0x31, 0x61, 0x38, 0xc3, - 0x8d, 0x76, 0x61, 0xd4, 0x0e, 0x16, 0xe3, 0x9b, 0x31, 0x89, 0xc4, 0xc3, 0x30, 0xac, 0x0b, 0xb1, - 0x04, 0xe2, 0x14, 0x4f, 0xa7, 0x0c, 0xfb, 0x73, 0x3d, 0x0c, 0x70, 0x18, 0x26, 0x72, 0x92, 0xb1, - 0xa7, 0x05, 0x34, 0x38, 0x36, 0xa8, 0xd0, 0x2a, 0xa0, 0xb8, 0xdd, 0x6a, 0xf9, 0xec, 0x50, 0xcf, - 0xf1, 0x2f, 0x45, 0x61, 0xbb, 0xc5, 0xc3, 0x8c, 0x45, 0x56, 0xfe, 0x46, 0x07, 0x16, 0xe7, 0x94, - 0xa0, 0x82, 0x61, 0x23, 0x66, 0xbf, 0xc5, 0x3d, 0x6a, 0xee, 0x9b, 0x6c, 0x30, 0x10, 0x96, 0x38, - 0xfb, 0x0b, 0x6c, 0x33, 0x63, 0xef, 0x79, 0x24, 0xed, 0x88, 0xa0, 0x1d, 0x18, 0x6f, 0xb1, 0x0d, - 0x2b, 0x89, 0x42, 0xdf, 0x27, 0x52, 0x6f, 0xbc, 0xb7, 0x88, 0x19, 0x9e, 0xdf, 0x5f, 0x67, 0x87, - 0x4d, 0xee, 0xf6, 0x97, 0x26, 0x99, 0x5c, 0x6a, 0x70, 0xa3, 0x65, 0x58, 0xc4, 0xc1, 0x0a, 0x0d, - 0x6d, 0xb6, 0xf8, 0xfd, 0xac, 0x54, 0xd2, 0x8b, 0x58, 0x5a, 0x2c, 0xcb, 0xa2, 0xd7, 0x58, 0x7c, - 0x36, 0x17, 0x06, 0xbd, 0x5e, 0xee, 0xe3, 0x54, 0x46, 0x6c, 0xb6, 0x28, 0x88, 0x35, 0x26, 0xe8, - 0x2a, 0x8c, 0x8b, 0xe7, 0x1f, 0x84, 0x0b, 0xa1, 0x6c, 0x98, 0xbf, 0xe3, 0x58, 0x47, 0x1e, 0x66, - 0x01, 0xd8, 0x2c, 0x8c, 0x36, 0xe1, 0x61, 0xed, 0xb1, 0xa2, 0x9c, 0xa8, 0x2d, 0x2e, 0x5b, 0x1e, - 0x39, 0xd8, 0x9f, 0x7b, 0x78, 0xbd, 0x1b, 0x21, 0xee, 0xce, 0x07, 0xdd, 0x80, 0xd3, 0x4e, 0x33, - 0xf1, 0x76, 0x49, 0x8d, 0x38, 0xae, 0xef, 0x05, 0xc4, 0xbc, 0x58, 0x7f, 0xf6, 0x60, 0x7f, 0xee, - 0xf4, 0x62, 0x1e, 0x01, 0xce, 0x2f, 0x87, 0x5e, 0x86, 0x8a, 0x1b, 0xc4, 0xa2, 0x0f, 0x86, 0x8c, - 0x77, 0xb8, 0x2a, 0xb5, 0xeb, 0x0d, 0xf5, 0xfd, 0xe9, 0x1f, 0x9c, 0x16, 0x40, 0x9b, 0xfc, 0xbd, - 0x76, 0x65, 0x91, 0x0c, 0x77, 0x64, 0x4b, 0xc8, 0xda, 0xb6, 0xc6, 0x8d, 0x13, 0xee, 0x3f, 0x53, - 0x31, 0x91, 0xc6, 0x65, 0x14, 0x83, 0x31, 0x7a, 0x15, 0x50, 0x4c, 0xa2, 0x5d, 0xaf, 0x49, 0x16, - 0x9b, 0x2c, 0xa1, 0x2a, 0xf3, 0xba, 0x8c, 0x18, 0x01, 0xfe, 0xa8, 0xd1, 0x41, 0x81, 0x73, 0x4a, - 0xa1, 0xcb, 0x54, 0xa2, 0xe8, 0x50, 0x11, 0xc2, 0x2a, 0xd5, 0xbc, 0x6a, 0x8d, 0xb4, 0x22, 0xd2, - 0x74, 0x12, 0xe2, 0x9a, 0x1c, 0x71, 0xa6, 0x1c, 0xdd, 0x6f, 0x54, 0x9e, 0x7a, 0x30, 0x03, 0x2f, - 0x3b, 0x73, 0xd5, 0x53, 0x0b, 0x69, 0x2b, 0x8c, 0x93, 0xeb, 0x24, 0xb9, 0x13, 0x46, 0xdb, 0x22, - 0xa9, 0x55, 0x9a, 0xc5, 0x2e, 0x45, 0x61, 0x9d, 0x8e, 0x6a, 0x44, 0xec, 0xe8, 0x6a, 0xad, 0xc6, - 0xce, 0x19, 0x46, 0xd2, 0x75, 0x72, 0x99, 0x83, 0xb1, 0xc4, 0x4b, 0xd2, 0xb5, 0xfa, 0x32, 0x3b, - 0x3d, 0xc8, 0x90, 0xae, 0xd5, 0x97, 0xb1, 0xc4, 0x23, 0xd2, 0xf9, 0xc6, 0xd9, 0x44, 0xf1, 0x09, - 0x4d, 0xa7, 0x5c, 0xee, 0xf3, 0x99, 0xb3, 0x00, 0xa6, 0xd4, 0xeb, 0x6a, 0x3c, 0xdb, 0x57, 0x5c, - 0x9d, 0x2c, 0x7e, 0x38, 0x3e, 0x37, 0x55, 0x98, 0xf2, 0xaa, 0xad, 0x65, 0x38, 0xe1, 0x0e, 0xde, - 0x46, 0xc2, 0x86, 0xa9, 0x9e, 0xef, 0x0c, 0x2c, 0x40, 0x25, 0x6e, 0xdf, 0x76, 0xc3, 0x1d, 0xc7, - 0x0b, 0x98, 0xdb, 0x5f, 0x7f, 0xd3, 0x5c, 0x22, 0x70, 0x4a, 0x83, 0x56, 0x61, 0xc4, 0x91, 0x8f, - 0xfd, 0xa3, 0xe2, 0x1b, 0xdc, 0xea, 0x95, 0x7f, 0xe6, 0xd1, 0x54, 0xcf, 0xfb, 0xab, 0xb2, 0xe8, - 0x25, 0x18, 0x17, 0x97, 0x8c, 0x44, 0x7c, 0xe0, 0x29, 0x33, 0x1e, 0xbd, 0xa1, 0x23, 0xb1, 0x49, - 0x8b, 0x7e, 0x06, 0x26, 0x28, 0x97, 0x54, 0xb0, 0x55, 0x67, 0xfa, 0x91, 0x88, 0x5a, 0xfe, 0x68, - 0xbd, 0x30, 0xce, 0x30, 0x43, 0x2e, 0x3c, 0xe4, 0xb4, 0x93, 0x70, 0x87, 0xce, 0x70, 0x73, 0xfe, - 0xaf, 0x87, 0xdb, 0x24, 0x60, 0x7e, 0xfa, 0x91, 0xa5, 0xf3, 0x07, 0xfb, 0x73, 0x0f, 0x2d, 0x76, - 0xa1, 0xc3, 0x5d, 0xb9, 0xa0, 0x9b, 0x30, 0x9a, 0x84, 0xbe, 0x08, 0xec, 0x8d, 0xab, 0x67, 0x8a, - 0x13, 0xce, 0xac, 0x2b, 0x32, 0xdd, 0x9d, 0xa0, 0x8a, 0x62, 0x9d, 0x0f, 0x5a, 0xe7, 0x6b, 0x8c, - 0xe5, 0x2d, 0x24, 0x71, 0xf5, 0x81, 0xe2, 0x8e, 0x51, 0xe9, 0x0d, 0xcd, 0x25, 0x28, 0x4a, 0x62, - 0x9d, 0x0d, 0xba, 0x04, 0xd3, 0xad, 0xc8, 0x0b, 0xd9, 0xc4, 0x56, 0x2e, 0xdf, 0xaa, 0x91, 0x8a, - 0x6c, 0xba, 0x9e, 0x25, 0xc0, 0x9d, 0x65, 0xd0, 0x05, 0xaa, 0xa0, 0x72, 0x60, 0xf5, 0x2c, 0x7f, - 0x7f, 0x82, 0x2b, 0xa7, 0x1c, 0x86, 0x15, 0x76, 0xf6, 0x33, 0x30, 0xdd, 0x21, 0x29, 0x8f, 0x14, - 0x64, 0xf9, 0x1b, 0x83, 0x50, 0x51, 0xee, 0x40, 0xb4, 0x60, 0x7a, 0x79, 0xcf, 0x66, 0xbd, 0xbc, - 0x23, 0x54, 0x5f, 0xd3, 0x1d, 0xbb, 0xeb, 0x39, 0x4f, 0x68, 0x9f, 0x2f, 0x10, 0x0d, 0xfd, 0xdf, - 0x88, 0x3a, 0xc2, 0xf3, 0xe2, 0xa9, 0xc1, 0x38, 0xd0, 0xd5, 0x60, 0xec, 0xf3, 0x39, 0x3b, 0x6a, - 0x1a, 0xb6, 0x42, 0x77, 0xad, 0x9e, 0x7d, 0xdf, 0xa9, 0x4e, 0x81, 0x98, 0xe3, 0x98, 0x72, 0x4f, - 0xb7, 0x75, 0xa6, 0xdc, 0x0f, 0xdf, 0xa3, 0x72, 0x2f, 0x19, 0xe0, 0x94, 0x17, 0xf2, 0x61, 0xba, - 0x69, 0x3e, 0xcd, 0xa5, 0x6e, 0x41, 0x3d, 0xda, 0xf3, 0x91, 0xac, 0xb6, 0xf6, 0x5e, 0xc7, 0x72, - 0x96, 0x0b, 0xee, 0x64, 0x8c, 0x5e, 0x82, 0x91, 0x77, 0xc3, 0x98, 0x4d, 0x3b, 0xb1, 0xb7, 0xc9, - 0x7b, 0x27, 0x23, 0xaf, 0xdd, 0x68, 0x30, 0xf8, 0xe1, 0xfe, 0xdc, 0x68, 0x3d, 0x74, 0xe5, 0x5f, - 0xac, 0x0a, 0xa0, 0xbb, 0x70, 0xda, 0x90, 0x08, 0xaa, 0xb9, 0xd0, 0x7f, 0x73, 0x1f, 0x16, 0xd5, - 0x9d, 0x5e, 0xcb, 0xe3, 0x84, 0xf3, 0x2b, 0xb0, 0xbf, 0xc5, 0x9d, 0x9e, 0xc2, 0x35, 0x42, 0xe2, - 0xb6, 0x7f, 0x12, 0x49, 0xf9, 0x57, 0x0c, 0xaf, 0xcd, 0x3d, 0x3b, 0xd6, 0xff, 0xc0, 0x62, 0x8e, - 0xf5, 0x75, 0xb2, 0xd3, 0xf2, 0x9d, 0xe4, 0x24, 0x42, 0x6b, 0x5f, 0x83, 0x91, 0x44, 0xd4, 0xd6, - 0xed, 0x1d, 0x01, 0xad, 0x51, 0xec, 0x70, 0x41, 0x6d, 0x88, 0x12, 0x8a, 0x15, 0x1b, 0xfb, 0x1f, - 0xf3, 0x11, 0x90, 0x98, 0x13, 0xf0, 0x2d, 0xd4, 0x4c, 0xdf, 0xc2, 0x5c, 0x8f, 0x2f, 0x28, 0xf0, - 0x31, 0xfc, 0x23, 0xb3, 0xdd, 0xcc, 0xf6, 0xf8, 0xb0, 0x9f, 0xe8, 0xd8, 0xbf, 0x62, 0xc1, 0x4c, - 0xde, 0x91, 0x3e, 0x55, 0x62, 0xb8, 0xe5, 0xa3, 0x4e, 0xb8, 0x54, 0x0f, 0xde, 0x12, 0x70, 0xac, - 0x28, 0xfa, 0x4e, 0xf6, 0x7d, 0xb4, 0x24, 0x4b, 0x37, 0xc0, 0x7c, 0xc5, 0x0d, 0xbd, 0xc2, 0x63, - 0xe5, 0x2d, 0xf5, 0xcc, 0xda, 0xd1, 0xe2, 0xe4, 0xed, 0x6f, 0x94, 0x60, 0x86, 0xbb, 0xa8, 0x17, - 0x77, 0x43, 0xcf, 0xad, 0x87, 0xae, 0xb8, 0x39, 0xf0, 0x26, 0x8c, 0xb5, 0x34, 0x73, 0xb5, 0x5b, - 0x9a, 0x17, 0xdd, 0xac, 0x4d, 0xcd, 0x06, 0x1d, 0x8a, 0x0d, 0x5e, 0xc8, 0x85, 0x31, 0xb2, 0xeb, - 0x35, 0x95, 0x9f, 0xb3, 0x74, 0x64, 0x91, 0xae, 0x6a, 0x59, 0xd1, 0xf8, 0x60, 0x83, 0xeb, 0x7d, - 0x78, 0x71, 0xc3, 0xfe, 0xaa, 0x05, 0x0f, 0x14, 0x24, 0x85, 0xa1, 0xd5, 0xdd, 0x61, 0x87, 0x01, - 0xe2, 0x49, 0x40, 0x55, 0x1d, 0x3f, 0x22, 0xc0, 0x02, 0x8b, 0x7e, 0x1a, 0x80, 0xbb, 0xf8, 0xd9, - 0x03, 0xec, 0xa5, 0xee, 0xb7, 0xce, 0x8d, 0x64, 0x09, 0xda, 0x8d, 0x7a, 0xf5, 0xe4, 0xba, 0xc6, - 0xcb, 0xfe, 0xb5, 0x32, 0x0c, 0xf2, 0xf7, 0xa1, 0x57, 0x61, 0x78, 0x8b, 0xa7, 0xa0, 0xed, 0x27, - 0xdb, 0x6d, 0x6a, 0x8e, 0x70, 0x00, 0x96, 0x85, 0xd1, 0x35, 0x38, 0x25, 0x6e, 0xa7, 0xd4, 0x88, - 0xef, 0xec, 0x49, 0xab, 0x96, 0x3f, 0xc3, 0x20, 0x73, 0x88, 0x9f, 0x5a, 0xeb, 0x24, 0xc1, 0x79, - 0xe5, 0xd0, 0x2b, 0x1d, 0x89, 0xe7, 0x78, 0xf2, 0x5e, 0xa5, 0x03, 0xf7, 0x48, 0x3e, 0xf7, 0x12, - 0x8c, 0xb7, 0x3a, 0xec, 0x77, 0xed, 0x69, 0x5e, 0xd3, 0x66, 0x37, 0x69, 0x59, 0x7c, 0x40, 0x9b, - 0x45, 0x43, 0xac, 0x6f, 0x45, 0x24, 0xde, 0x0a, 0x7d, 0x57, 0xbc, 0x43, 0x99, 0xc6, 0x07, 0x64, - 0xf0, 0xb8, 0xa3, 0x04, 0xe5, 0xb2, 0xe1, 0x78, 0x7e, 0x3b, 0x22, 0x29, 0x97, 0x21, 0x93, 0xcb, - 0x6a, 0x06, 0x8f, 0x3b, 0x4a, 0xd0, 0x79, 0x74, 0x5a, 0x3c, 0x62, 0x28, 0xef, 0x2c, 0xab, 0xa0, - 0x8f, 0x61, 0x19, 0x95, 0xde, 0x25, 0x8f, 0x86, 0x38, 0xf2, 0x57, 0xcf, 0x20, 0x6a, 0xcf, 0x63, - 0x89, 0x78, 0x74, 0xc9, 0xe5, 0x5e, 0x9e, 0xd2, 0xfb, 0x53, 0x0b, 0x4e, 0xe5, 0x04, 0x82, 0x71, - 0x51, 0xb5, 0xe9, 0xc5, 0x89, 0x7a, 0x1e, 0x40, 0x13, 0x55, 0x1c, 0x8e, 0x15, 0x05, 0x5d, 0x0f, - 0x5c, 0x18, 0x66, 0x05, 0xa0, 0x08, 0xde, 0x10, 0xd8, 0xa3, 0x09, 0x40, 0x74, 0x1e, 0x06, 0xda, - 0x31, 0x89, 0xe4, 0xfb, 0x73, 0x52, 0x7e, 0x33, 0x8f, 0x20, 0xc3, 0x50, 0x8d, 0x72, 0x53, 0x39, - 0xe3, 0x34, 0x8d, 0x92, 0xbb, 0xe3, 0x38, 0xce, 0xfe, 0x4a, 0x19, 0x26, 0x33, 0x61, 0x9b, 0xb4, - 0x21, 0x3b, 0x61, 0xe0, 0x25, 0xa1, 0xca, 0x7b, 0xc6, 0xd3, 0x3c, 0x90, 0xd6, 0xd6, 0x35, 0x01, - 0xc7, 0x8a, 0x02, 0x3d, 0x26, 0x1f, 0x26, 0xcd, 0x3e, 0x7b, 0xb0, 0x54, 0x33, 0xde, 0x26, 0xed, - 0xf7, 0x79, 0x92, 0x47, 0x61, 0xa0, 0x15, 0xaa, 0x57, 0xa3, 0xd5, 0x78, 0xe2, 0xa5, 0x5a, 0x3d, - 0x0c, 0x7d, 0xcc, 0x90, 0xe8, 0x63, 0xe2, 0xeb, 0x33, 0xe7, 0x15, 0xd8, 0x71, 0xc3, 0x58, 0xeb, - 0x82, 0x27, 0x60, 0x78, 0x9b, 0xec, 0x45, 0x5e, 0xb0, 0x99, 0x3d, 0xad, 0xb9, 0xc2, 0xc1, 0x58, - 0xe2, 0xcd, 0x6c, 0xe1, 0xc3, 0xf7, 0xe5, 0x09, 0x92, 0x91, 0x9e, 0xbb, 0xda, 0x6f, 0x5b, 0x30, - 0xc9, 0x72, 0x8c, 0x8a, 0xdb, 0xf1, 0x5e, 0x18, 0x9c, 0x80, 0x9e, 0xf0, 0x28, 0x0c, 0x46, 0xb4, - 0xd2, 0xec, 0xbb, 0x02, 0xac, 0x25, 0x98, 0xe3, 0xd0, 0x43, 0x30, 0xc0, 0x9a, 0x40, 0x07, 0x6f, - 0x8c, 0x67, 0x19, 0xaf, 0x39, 0x89, 0x83, 0x19, 0x94, 0x5d, 0x53, 0xc2, 0xa4, 0xe5, 0x7b, 0xbc, - 0xd1, 0xa9, 0xbb, 0xf5, 0xc3, 0x71, 0x4d, 0x29, 0xb7, 0x69, 0xef, 0xef, 0x9a, 0x52, 0x3e, 0xcb, - 0xee, 0x3a, 0xf8, 0x7f, 0x29, 0xc1, 0xb9, 0xdc, 0x72, 0xe9, 0xc9, 0xee, 0xaa, 0x71, 0xb2, 0x7b, - 0x31, 0x73, 0xb2, 0x6b, 0x77, 0x2f, 0x7d, 0x3c, 0x67, 0xbd, 0xf9, 0x47, 0xb0, 0xe5, 0x13, 0x3c, - 0x82, 0x1d, 0xe8, 0x57, 0x4d, 0x19, 0xec, 0xa1, 0xa6, 0x7c, 0xd7, 0x82, 0xb3, 0xb9, 0x5d, 0xf6, - 0x21, 0xb9, 0x17, 0x96, 0xdb, 0xb6, 0x02, 0x1b, 0xe2, 0x47, 0xa5, 0x82, 0x6f, 0x61, 0xd6, 0xc4, - 0x05, 0x2a, 0x67, 0x18, 0x32, 0x16, 0x6a, 0xd7, 0x18, 0x97, 0x31, 0x1c, 0x86, 0x15, 0x16, 0x79, - 0xda, 0x0d, 0x2b, 0xde, 0xb4, 0x97, 0x8e, 0xb4, 0x64, 0xe6, 0x4d, 0xef, 0xb8, 0x7e, 0x95, 0x3f, - 0x7b, 0xdb, 0xea, 0x9a, 0x66, 0x01, 0x96, 0xfb, 0xb7, 0x00, 0xc7, 0xf2, 0xad, 0x3f, 0xb4, 0x08, - 0x93, 0x3b, 0x5e, 0xc0, 0xde, 0xfe, 0x34, 0xf5, 0x1e, 0x75, 0x2d, 0xf5, 0x9a, 0x89, 0xc6, 0x59, - 0xfa, 0xd9, 0x97, 0x60, 0xfc, 0xde, 0x5d, 0x56, 0xdf, 0x2b, 0xc3, 0x83, 0x5d, 0x96, 0x3d, 0x97, - 0xf5, 0xc6, 0x18, 0x68, 0xb2, 0xbe, 0x63, 0x1c, 0xea, 0x30, 0xb3, 0xd1, 0xf6, 0xfd, 0x3d, 0x16, - 0xe5, 0x44, 0x5c, 0x49, 0x21, 0x14, 0x13, 0x95, 0x40, 0x78, 0x35, 0x87, 0x06, 0xe7, 0x96, 0x44, - 0xaf, 0x02, 0x0a, 0x6f, 0xb3, 0xa4, 0xb6, 0x6e, 0x9a, 0xa0, 0x80, 0x75, 0x7c, 0x39, 0x5d, 0x8c, - 0x37, 0x3a, 0x28, 0x70, 0x4e, 0x29, 0xaa, 0x61, 0xb2, 0x17, 0xcb, 0x55, 0xb3, 0x32, 0x1a, 0x26, - 0xd6, 0x91, 0xd8, 0xa4, 0x45, 0x97, 0x60, 0xda, 0xd9, 0x75, 0x3c, 0x9e, 0xb0, 0x4a, 0x32, 0xe0, - 0x2a, 0xa6, 0x72, 0x14, 0x2d, 0x66, 0x09, 0x70, 0x67, 0x19, 0xb4, 0x61, 0x78, 0xf9, 0x78, 0xbe, - 0xfc, 0x8b, 0x7d, 0xcf, 0xd6, 0xbe, 0xfd, 0x7e, 0xf6, 0xbf, 0xb7, 0xe8, 0xf6, 0x95, 0xf3, 0xd8, - 0x24, 0xed, 0x07, 0xe5, 0xbf, 0xd2, 0x6e, 0x87, 0xa9, 0x7e, 0x58, 0xd6, 0x91, 0xd8, 0xa4, 0xe5, - 0x13, 0x22, 0x4e, 0xc3, 0xa5, 0x0d, 0x3d, 0x51, 0x5c, 0xa7, 0x54, 0x14, 0xe8, 0x0d, 0x18, 0x76, - 0xbd, 0x5d, 0x2f, 0x0e, 0x23, 0xb1, 0x58, 0x8e, 0xfa, 0xc8, 0xb2, 0x92, 0x83, 0x35, 0xce, 0x06, - 0x4b, 0x7e, 0xf6, 0x57, 0x4a, 0x30, 0x2e, 0x6b, 0x7c, 0xad, 0x1d, 0x26, 0xce, 0x09, 0x6c, 0xcb, - 0x97, 0x8c, 0x6d, 0xf9, 0x63, 0xdd, 0xee, 0x94, 0xb2, 0x26, 0x15, 0x6e, 0xc7, 0x37, 0x32, 0xdb, - 0xf1, 0xe3, 0xbd, 0x59, 0x75, 0xdf, 0x86, 0x7f, 0xcf, 0x82, 0x69, 0x83, 0xfe, 0x04, 0x76, 0x83, - 0x55, 0x73, 0x37, 0x78, 0xa4, 0xe7, 0x37, 0x14, 0xec, 0x02, 0x5f, 0x2f, 0x65, 0xda, 0xce, 0xa4, - 0xff, 0xbb, 0x30, 0xb0, 0xe5, 0x44, 0x6e, 0xb7, 0xb4, 0x8b, 0x1d, 0x85, 0xe6, 0x2f, 0x3b, 0x91, - 0xcb, 0x65, 0xf8, 0xd3, 0xea, 0xa1, 0x2c, 0x27, 0x72, 0x7b, 0xde, 0x0e, 0x60, 0x55, 0xa1, 0x17, - 0x61, 0x28, 0x6e, 0x86, 0x2d, 0x15, 0x7b, 0x79, 0x9e, 0x3f, 0xa2, 0x45, 0x21, 0x87, 0xfb, 0x73, - 0xc8, 0xac, 0x8e, 0x82, 0xb1, 0xa0, 0x9f, 0xdd, 0x84, 0x8a, 0xaa, 0xfa, 0xbe, 0x46, 0x95, 0xff, - 0x71, 0x19, 0x4e, 0xe5, 0xcc, 0x0b, 0x14, 0x1b, 0xbd, 0xf5, 0x6c, 0x9f, 0xd3, 0xe9, 0x7d, 0xf6, - 0x57, 0xcc, 0x2c, 0x16, 0x57, 0x8c, 0x7f, 0xdf, 0x95, 0xde, 0x8c, 0x49, 0xb6, 0x52, 0x0a, 0xea, - 0x5d, 0x29, 0xad, 0xec, 0xc4, 0xba, 0x9a, 0x56, 0xa4, 0x5a, 0x7a, 0x5f, 0xc7, 0xf4, 0x7f, 0x94, - 0x61, 0x26, 0xef, 0x2a, 0x3a, 0xfa, 0xb9, 0xcc, 0x23, 0x0e, 0xcf, 0xf7, 0x7b, 0x89, 0x9d, 0xbf, - 0xec, 0x20, 0x32, 0xbc, 0xcc, 0x9b, 0xcf, 0x3a, 0xf4, 0xec, 0x66, 0x51, 0x27, 0xbb, 0xae, 0x13, - 0xf1, 0xc7, 0x37, 0xe4, 0x12, 0xff, 0x78, 0xdf, 0x0d, 0x10, 0xaf, 0x76, 0xc4, 0x99, 0xeb, 0x3a, - 0x12, 0xdc, 0xfb, 0xba, 0x8e, 0xac, 0x79, 0xd6, 0x83, 0x51, 0xed, 0x6b, 0xee, 0xeb, 0x88, 0x6f, - 0xd3, 0x1d, 0x45, 0x6b, 0xf7, 0x7d, 0x1d, 0xf5, 0xaf, 0x5a, 0x90, 0x89, 0x93, 0x52, 0xfe, 0x0f, - 0xab, 0xd0, 0xff, 0x71, 0x1e, 0x06, 0xa2, 0xd0, 0x27, 0xd9, 0xbc, 0xfe, 0x38, 0xf4, 0x09, 0x66, - 0x18, 0xf5, 0xe8, 0x6d, 0xb9, 0xe8, 0xd1, 0x5b, 0x6a, 0x1a, 0xfb, 0x64, 0x97, 0x48, 0x6f, 0x84, - 0x92, 0xc9, 0x57, 0x29, 0x10, 0x73, 0x9c, 0xfd, 0x9b, 0x03, 0x70, 0x2a, 0xe7, 0x72, 0x1a, 0x35, - 0x54, 0x36, 0x9d, 0x84, 0xdc, 0x71, 0xf6, 0xb2, 0xb9, 0x46, 0x2f, 0x71, 0x30, 0x96, 0x78, 0x16, - 0xcb, 0xc9, 0xd3, 0x95, 0x65, 0x7c, 0x44, 0x22, 0x4b, 0x99, 0xc0, 0xde, 0xaf, 0x87, 0x52, 0x2f, - 0x02, 0xc4, 0xb1, 0xbf, 0x12, 0x50, 0xe5, 0xcb, 0x15, 0x91, 0xa2, 0x69, 0x6e, 0xbb, 0xc6, 0x55, - 0x81, 0xc1, 0x1a, 0x15, 0xaa, 0xc1, 0x54, 0x2b, 0x0a, 0x13, 0xee, 0x77, 0xab, 0xf1, 0x18, 0x85, - 0x41, 0xf3, 0x9a, 0x51, 0x3d, 0x83, 0xc7, 0x1d, 0x25, 0xd0, 0x0b, 0x30, 0x2a, 0xae, 0x1e, 0xd5, - 0xc3, 0xd0, 0x17, 0x5e, 0x1a, 0x75, 0xe2, 0xdd, 0x48, 0x51, 0x58, 0xa7, 0xd3, 0x8a, 0x31, 0x67, - 0xde, 0x70, 0x6e, 0x31, 0xee, 0xd0, 0xd3, 0xe8, 0x32, 0x19, 0x29, 0x46, 0xfa, 0xca, 0x48, 0x91, - 0xfa, 0xad, 0x2a, 0x7d, 0x9f, 0x5f, 0x40, 0x4f, 0x4f, 0xcf, 0xb7, 0xca, 0x30, 0xc4, 0x87, 0xe2, - 0x04, 0x54, 0xb1, 0x55, 0xe1, 0xbb, 0xe9, 0x92, 0x07, 0x80, 0xb7, 0x65, 0xbe, 0xe6, 0x24, 0x0e, - 0x17, 0x43, 0x6a, 0x35, 0xa4, 0x5e, 0x1e, 0x34, 0x6f, 0xac, 0x97, 0xd9, 0x8c, 0x73, 0x02, 0x38, - 0x0f, 0x6d, 0xf5, 0xbc, 0x0d, 0x10, 0xb3, 0xc7, 0x3a, 0x29, 0x0f, 0x91, 0xb7, 0xf4, 0xc9, 0x2e, - 0xb5, 0x37, 0x14, 0x31, 0x6f, 0x43, 0x3a, 0x05, 0x15, 0x02, 0x6b, 0x1c, 0x67, 0x3f, 0x01, 0x15, - 0x45, 0xdc, 0xcb, 0x92, 0x1b, 0xd3, 0x85, 0xd7, 0xa7, 0x61, 0x32, 0x53, 0xd7, 0x91, 0x0c, 0xc1, - 0xdf, 0xb1, 0x60, 0x32, 0xf3, 0xf2, 0x3f, 0x7a, 0x0f, 0x66, 0xfc, 0x9c, 0x45, 0x27, 0x46, 0xb4, - 0xff, 0x45, 0xaa, 0x0c, 0xbf, 0x3c, 0x2c, 0xce, 0xad, 0x83, 0x1a, 0xff, 0xfc, 0x99, 0x61, 0xc7, - 0x17, 0x11, 0xc8, 0x63, 0x3c, 0x9f, 0x33, 0x87, 0x61, 0x85, 0xb5, 0xbf, 0x6f, 0xc1, 0x74, 0xc7, - 0x1b, 0xf4, 0x1f, 0x68, 0xdb, 0x45, 0xba, 0xea, 0x52, 0x41, 0xba, 0x6a, 0xfd, 0xd3, 0xca, 0x5d, - 0x3f, 0xed, 0x1b, 0x16, 0x88, 0x19, 0x78, 0x02, 0xea, 0xfc, 0x67, 0x4c, 0x75, 0x7e, 0xb6, 0x78, - 0x52, 0x17, 0xe8, 0xf1, 0x7f, 0x6e, 0xc1, 0x14, 0x27, 0x48, 0x0f, 0x2f, 0x3e, 0xd0, 0x71, 0xe8, - 0xe7, 0x0d, 0x15, 0xf5, 0x68, 0x65, 0xfe, 0x47, 0x19, 0x83, 0x35, 0xd0, 0x75, 0xb0, 0xfe, 0x93, - 0x05, 0x88, 0x7f, 0x7e, 0xf6, 0xe5, 0x65, 0xbe, 0x29, 0x69, 0xa6, 0x76, 0x2a, 0x04, 0x14, 0x06, - 0x6b, 0x54, 0xc7, 0xd2, 0xf0, 0xcc, 0xd9, 0x50, 0xb9, 0xf7, 0xd9, 0xd0, 0x11, 0xbe, 0xf5, 0xaf, - 0x0c, 0x40, 0x36, 0x10, 0x11, 0xdd, 0x82, 0xb1, 0xa6, 0xd3, 0x72, 0x6e, 0x7b, 0xbe, 0x97, 0x78, - 0x24, 0xee, 0x76, 0xa8, 0xbc, 0xac, 0xd1, 0x89, 0x83, 0x18, 0x0d, 0x82, 0x0d, 0x3e, 0x68, 0x1e, - 0xa0, 0x15, 0x79, 0xbb, 0x9e, 0x4f, 0x36, 0x99, 0xad, 0xc1, 0x6e, 0x23, 0xf0, 0x93, 0x52, 0x09, - 0xc5, 0x1a, 0x45, 0x4e, 0xf4, 0x7a, 0xf9, 0xfe, 0x45, 0xaf, 0x0f, 0x1c, 0x31, 0x7a, 0x7d, 0xb0, - 0xaf, 0xe8, 0x75, 0x0c, 0x67, 0xe4, 0xae, 0x4a, 0xff, 0xaf, 0x7a, 0x3e, 0x11, 0xaa, 0x14, 0xbf, - 0xa3, 0x30, 0x7b, 0xb0, 0x3f, 0x77, 0x06, 0xe7, 0x52, 0xe0, 0x82, 0x92, 0xe8, 0xa7, 0xa1, 0xea, - 0xf8, 0x7e, 0x78, 0x47, 0xf5, 0xda, 0x4a, 0xdc, 0x74, 0xfc, 0x34, 0x15, 0xe8, 0xc8, 0xd2, 0x43, - 0x07, 0xfb, 0x73, 0xd5, 0xc5, 0x02, 0x1a, 0x5c, 0x58, 0xda, 0xde, 0x86, 0x53, 0x0d, 0x12, 0xc9, - 0x87, 0xc0, 0xd4, 0xea, 0x5b, 0x87, 0x4a, 0x94, 0x59, 0xee, 0x7d, 0x5d, 0x49, 0xd7, 0x12, 0x70, - 0xc9, 0xe5, 0x9d, 0x32, 0xb2, 0xff, 0xcc, 0x82, 0x61, 0x11, 0xdc, 0x78, 0x02, 0x5a, 0xc6, 0xa2, - 0xe1, 0xf0, 0x99, 0xcb, 0x17, 0x89, 0xac, 0x31, 0x85, 0xae, 0x9e, 0xb5, 0x8c, 0xab, 0xe7, 0x91, - 0x6e, 0x4c, 0xba, 0x3b, 0x79, 0x7e, 0xb9, 0x0c, 0x13, 0x66, 0x60, 0xe7, 0x09, 0x74, 0xc1, 0x75, - 0x18, 0x8e, 0x45, 0x14, 0x71, 0xa9, 0x38, 0x1a, 0x2d, 0x3b, 0x88, 0xe9, 0x99, 0xb5, 0x88, 0x1b, - 0x96, 0x4c, 0x72, 0xc3, 0x93, 0xcb, 0xf7, 0x31, 0x3c, 0xb9, 0x57, 0x6c, 0xed, 0xc0, 0x71, 0xc4, - 0xd6, 0xda, 0xdf, 0x66, 0xc2, 0x5f, 0x87, 0x9f, 0xc0, 0x8e, 0x7d, 0xc9, 0xdc, 0x26, 0xec, 0x2e, - 0x33, 0x4b, 0x34, 0xaa, 0x60, 0xe7, 0xfe, 0x07, 0x16, 0x8c, 0x0a, 0xc2, 0x13, 0x68, 0xf6, 0x67, - 0xcd, 0x66, 0x3f, 0xd8, 0xa5, 0xd9, 0x05, 0xed, 0xfd, 0x9b, 0x25, 0xd5, 0xde, 0xba, 0x78, 0x23, - 0xbf, 0x67, 0x6a, 0xe8, 0x11, 0x6a, 0xa7, 0x85, 0xcd, 0xd0, 0x17, 0x7a, 0xd9, 0x43, 0xe9, 0x35, - 0x35, 0x0e, 0x3f, 0xd4, 0x7e, 0x63, 0x45, 0xcd, 0x6e, 0x51, 0x85, 0x51, 0x22, 0x36, 0xd0, 0xbc, - 0x17, 0xfa, 0x5d, 0x80, 0xf4, 0xa1, 0x73, 0x71, 0xaf, 0xf3, 0xe8, 0x6f, 0xff, 0xa7, 0xf7, 0xce, - 0x14, 0x2f, 0xac, 0xf1, 0x95, 0x17, 0x1f, 0x58, 0x1d, 0x83, 0xe6, 0x49, 0xcc, 0x75, 0x01, 0xc7, - 0x8a, 0xc2, 0xfe, 0x04, 0x93, 0xc9, 0xac, 0x83, 0x8e, 0x76, 0x25, 0xec, 0x7f, 0x0e, 0xa9, 0xae, - 0x65, 0x6e, 0xd8, 0x9a, 0x7e, 0xf1, 0xac, 0xbb, 0x08, 0xa4, 0x15, 0xeb, 0x41, 0xbe, 0xe9, 0xed, - 0x34, 0xf4, 0xb9, 0x8e, 0x03, 0xba, 0x67, 0x7a, 0xc8, 0xd2, 0x23, 0x1c, 0xc9, 0xb1, 0x4c, 0x77, - 0x2c, 0x23, 0xd8, 0x5a, 0x3d, 0x9b, 0xbc, 0x7b, 0x59, 0x22, 0x70, 0x4a, 0x83, 0x16, 0x84, 0xcd, - 0xc7, 0x1d, 0x20, 0x0f, 0x66, 0x6c, 0x3e, 0xf9, 0xf9, 0x9a, 0xd1, 0xf7, 0x2c, 0x8c, 0xaa, 0x07, - 0x51, 0xea, 0xfc, 0x5d, 0x89, 0x0a, 0xd7, 0xa5, 0x56, 0x52, 0x30, 0xd6, 0x69, 0xd0, 0x3a, 0x4c, - 0xc6, 0xfc, 0xb5, 0x16, 0x79, 0x17, 0x41, 0x58, 0xf4, 0x4f, 0x66, 0x9e, 0x54, 0x97, 0xe8, 0x43, - 0x06, 0xe2, 0x8b, 0x55, 0xde, 0x5e, 0xc8, 0xb2, 0x40, 0xaf, 0xc0, 0x84, 0xaf, 0xbf, 0x5a, 0x59, - 0x17, 0x06, 0xbf, 0x0a, 0xb2, 0x32, 0xde, 0xb4, 0xac, 0xe3, 0x0c, 0x35, 0x55, 0x02, 0x74, 0x88, - 0x48, 0x52, 0xe3, 0x04, 0x9b, 0x24, 0x16, 0xcf, 0x39, 0x30, 0x25, 0xe0, 0x6a, 0x01, 0x0d, 0x2e, - 0x2c, 0x8d, 0x5e, 0x84, 0x31, 0xf9, 0xf9, 0xda, 0xdd, 0x9c, 0x34, 0x94, 0x4f, 0xc3, 0x61, 0x83, - 0x12, 0xdd, 0x81, 0xd3, 0xf2, 0xff, 0x7a, 0xe4, 0x6c, 0x6c, 0x78, 0x4d, 0x71, 0x35, 0x6a, 0x94, - 0xb1, 0x58, 0x94, 0x71, 0xcd, 0x2b, 0x79, 0x44, 0x87, 0xfb, 0x73, 0xe7, 0x45, 0xaf, 0xe5, 0xe2, - 0xd9, 0x20, 0xe6, 0xf3, 0x47, 0xd7, 0xe0, 0xd4, 0x16, 0x71, 0xfc, 0x64, 0x6b, 0x79, 0x8b, 0x34, - 0xb7, 0xe5, 0x22, 0x62, 0x37, 0x7e, 0xb4, 0x00, 0xb8, 0xcb, 0x9d, 0x24, 0x38, 0xaf, 0xdc, 0xfb, - 0x3b, 0x87, 0x7d, 0x97, 0x16, 0xd6, 0x74, 0x00, 0xf4, 0x79, 0x18, 0xd3, 0xfb, 0x5a, 0x88, 0xe1, - 0xc7, 0x7a, 0xbd, 0x63, 0x2a, 0x34, 0x08, 0xd5, 0xef, 0x3a, 0x0e, 0x1b, 0x1c, 0xed, 0x7f, 0x56, - 0x82, 0xb9, 0x1e, 0x59, 0x9e, 0x32, 0xce, 0x25, 0xab, 0x2f, 0xe7, 0xd2, 0xa2, 0x7c, 0xdc, 0xe3, - 0x7a, 0x26, 0x75, 0x74, 0xe6, 0xe1, 0x8e, 0x34, 0x81, 0x74, 0x96, 0xbe, 0xef, 0xb8, 0x2a, 0xdd, - 0x3f, 0x35, 0xd0, 0x33, 0xbc, 0xac, 0xae, 0x3b, 0x1a, 0x07, 0xfb, 0x57, 0x48, 0x0b, 0x7d, 0x8c, - 0xf6, 0xb7, 0x4b, 0x70, 0x5a, 0x75, 0xe1, 0x4f, 0x6e, 0xc7, 0xdd, 0xec, 0xec, 0xb8, 0x63, 0xf0, - 0xd0, 0xda, 0x37, 0x60, 0xa8, 0xb1, 0x17, 0x37, 0x13, 0xbf, 0x8f, 0xfd, 0xfb, 0x51, 0x63, 0xe5, - 0xa4, 0xbb, 0x0c, 0x7b, 0x9f, 0x4b, 0x2c, 0x24, 0xfb, 0x2f, 0x5a, 0x30, 0xb9, 0xbe, 0x5c, 0x6f, - 0x84, 0xcd, 0x6d, 0x92, 0x2c, 0x72, 0xff, 0x03, 0x16, 0xdb, 0xb7, 0x75, 0x8f, 0xdb, 0x72, 0xde, - 0x86, 0x7f, 0x1e, 0x06, 0xb6, 0xc2, 0x38, 0xc9, 0x7a, 0xe1, 0x2f, 0x87, 0x71, 0x82, 0x19, 0xc6, - 0xfe, 0x13, 0x0b, 0x06, 0xd9, 0x93, 0x54, 0xbd, 0x9e, 0x2e, 0xeb, 0xe7, 0xbb, 0xd0, 0x0b, 0x30, - 0x44, 0x36, 0x36, 0x48, 0x33, 0x11, 0xa3, 0x2a, 0xaf, 0x7a, 0x0c, 0xad, 0x30, 0x28, 0xdd, 0xb3, - 0x58, 0x65, 0xfc, 0x2f, 0x16, 0xc4, 0xe8, 0x73, 0x50, 0x49, 0xbc, 0x1d, 0xb2, 0xe8, 0xba, 0xc2, - 0x01, 0x7e, 0xb4, 0x58, 0x27, 0xb5, 0x87, 0xae, 0x4b, 0x26, 0x38, 0xe5, 0x67, 0xff, 0x62, 0x09, - 0x20, 0xbd, 0x12, 0xd6, 0xeb, 0x33, 0x97, 0x3a, 0x5e, 0x68, 0x7b, 0x2c, 0xe7, 0x85, 0x36, 0x94, - 0x32, 0xcc, 0x79, 0x9f, 0x4d, 0x75, 0x55, 0xb9, 0xaf, 0xae, 0x1a, 0x38, 0x4a, 0x57, 0x2d, 0xc3, - 0x74, 0x7a, 0xa5, 0xcd, 0xbc, 0xdf, 0xcb, 0xb2, 0xb7, 0xae, 0x67, 0x91, 0xb8, 0x93, 0xde, 0xfe, - 0xb2, 0x05, 0x22, 0xfe, 0xb5, 0x8f, 0x09, 0xfd, 0xa6, 0x7c, 0x4c, 0xc9, 0x48, 0x3d, 0x77, 0xbe, - 0x38, 0x20, 0x58, 0x24, 0x9c, 0x53, 0x92, 0xdd, 0x48, 0x33, 0x67, 0xf0, 0xb2, 0x7f, 0xcf, 0x82, - 0x51, 0x8e, 0xbe, 0xc6, 0x8c, 0xc4, 0xde, 0xad, 0x39, 0x52, 0xee, 0x5f, 0xf6, 0xce, 0x10, 0x65, - 0xac, 0x52, 0xc4, 0xea, 0xef, 0x0c, 0x49, 0x04, 0x4e, 0x69, 0xd0, 0x13, 0x30, 0x1c, 0xb7, 0x6f, - 0x33, 0xf2, 0x4c, 0x08, 0x6c, 0x83, 0x83, 0xb1, 0xc4, 0xd3, 0x79, 0x35, 0x95, 0x8d, 0x80, 0x46, - 0x97, 0x61, 0x88, 0x8b, 0x0d, 0xb1, 0x8c, 0xbb, 0xb8, 0xfb, 0xb5, 0xb8, 0x69, 0xe0, 0x0f, 0x63, - 0x33, 0x71, 0x23, 0xca, 0xa3, 0xb7, 0x60, 0xd4, 0x0d, 0xef, 0x04, 0x77, 0x9c, 0xc8, 0x5d, 0xac, - 0xaf, 0x89, 0x5e, 0xcf, 0x8d, 0x63, 0xab, 0xa5, 0x64, 0x7a, 0x2c, 0x36, 0x73, 0xa0, 0xa5, 0x28, - 0xac, 0xb3, 0x43, 0xeb, 0x2c, 0xcb, 0x06, 0x7f, 0xae, 0xb3, 0x5b, 0x64, 0x87, 0x7a, 0xe1, 0x53, - 0xe3, 0x3c, 0x2e, 0x52, 0x71, 0x88, 0xc7, 0x3e, 0x53, 0x46, 0xf6, 0x17, 0x4f, 0x81, 0x31, 0xda, - 0x46, 0x86, 0x5e, 0xeb, 0x98, 0x32, 0xf4, 0x62, 0x18, 0x21, 0x3b, 0xad, 0x64, 0xaf, 0xe6, 0x45, - 0xdd, 0x52, 0xa6, 0xaf, 0x08, 0x9a, 0x4e, 0x9e, 0x12, 0x83, 0x15, 0x9f, 0xfc, 0x34, 0xca, 0xe5, - 0x0f, 0x30, 0x8d, 0xf2, 0xc0, 0x09, 0xa6, 0x51, 0xbe, 0x0e, 0xc3, 0x9b, 0x5e, 0x82, 0x49, 0x2b, - 0x14, 0x5b, 0x66, 0xee, 0x4c, 0xb8, 0xc4, 0x49, 0x3a, 0x13, 0x80, 0x0a, 0x04, 0x96, 0x4c, 0xd0, - 0xab, 0x6a, 0x0d, 0x0c, 0x15, 0xab, 0x82, 0x9d, 0xfe, 0xe7, 0xdc, 0x55, 0x20, 0xd2, 0x26, 0x0f, - 0xdf, 0x6b, 0xda, 0x64, 0x95, 0xf6, 0x78, 0xe4, 0xfd, 0xa5, 0x3d, 0x36, 0xd2, 0x42, 0x57, 0x8e, - 0x2f, 0x2d, 0xf4, 0x97, 0x2d, 0x38, 0xdd, 0xca, 0xcb, 0x90, 0x2e, 0x52, 0x19, 0xbf, 0xd0, 0x77, - 0xa6, 0x78, 0xa3, 0x42, 0x96, 0xea, 0x21, 0x97, 0x0c, 0xe7, 0x57, 0x27, 0xf3, 0x4b, 0x8f, 0xde, - 0x6b, 0x7e, 0xe9, 0xfb, 0x93, 0xf3, 0x38, 0xcd, 0x36, 0x3d, 0x7e, 0x8c, 0xd9, 0xa6, 0x27, 0xde, - 0x77, 0xb6, 0x69, 0x2d, 0x63, 0xf4, 0xe4, 0x71, 0x64, 0x8c, 0x7e, 0xdb, 0x14, 0xf6, 0x3c, 0x91, - 0xf1, 0x53, 0x3d, 0x84, 0xbd, 0xc1, 0xb7, 0xbb, 0xb8, 0xe7, 0xd9, 0xb1, 0xa7, 0xef, 0x29, 0x3b, - 0xb6, 0x91, 0x77, 0x1a, 0x1d, 0x5f, 0xde, 0xe9, 0x5b, 0xfa, 0x16, 0x74, 0xaa, 0x98, 0xaf, 0xda, - 0x69, 0x3a, 0xf9, 0xe6, 0x6d, 0x42, 0x9d, 0xf9, 0xac, 0x67, 0x4e, 0x26, 0x9f, 0xf5, 0xe9, 0x63, - 0xcf, 0x67, 0x7d, 0xe6, 0x04, 0xf2, 0x59, 0x3f, 0xf0, 0x81, 0xe6, 0xb3, 0xae, 0xde, 0xdf, 0x7c, - 0xd6, 0x67, 0x8f, 0x23, 0x9f, 0xf5, 0x2d, 0xa8, 0xb4, 0xe4, 0x25, 0xb9, 0xea, 0x6c, 0xf1, 0x90, - 0xe4, 0xde, 0xa4, 0xe3, 0x43, 0xa2, 0x50, 0x38, 0x65, 0x45, 0xf9, 0xa6, 0xf9, 0xad, 0x1f, 0x2c, - 0xe6, 0x9b, 0x6b, 0xb6, 0x77, 0xc9, 0x6a, 0xfd, 0x97, 0x4a, 0x70, 0xae, 0xfb, 0xbc, 0x4e, 0x6d, - 0xfe, 0x7a, 0xea, 0x62, 0xcd, 0xd8, 0xfc, 0x4c, 0xe9, 0xd2, 0xa8, 0xfa, 0xbe, 0x49, 0x7c, 0x09, - 0xa6, 0x55, 0xac, 0x90, 0xef, 0x35, 0xf7, 0xb4, 0xe7, 0x67, 0x54, 0xf8, 0x79, 0x23, 0x4b, 0x80, - 0x3b, 0xcb, 0xa0, 0x45, 0x98, 0x34, 0x80, 0x6b, 0x35, 0xa1, 0x92, 0x2b, 0x27, 0x43, 0xc3, 0x44, - 0xe3, 0x2c, 0xbd, 0xfd, 0x75, 0x0b, 0x1e, 0x28, 0x48, 0x8d, 0xd9, 0xf7, 0x45, 0xd9, 0x0d, 0x98, - 0x6c, 0x99, 0x45, 0x7b, 0xdc, 0xa7, 0x37, 0x12, 0x70, 0xaa, 0xb6, 0x66, 0x10, 0x38, 0xcb, 0x74, - 0xe9, 0xc2, 0x77, 0x7e, 0x70, 0xee, 0x23, 0x7f, 0xf4, 0x83, 0x73, 0x1f, 0xf9, 0xfe, 0x0f, 0xce, - 0x7d, 0xe4, 0xff, 0x3b, 0x38, 0x67, 0x7d, 0xe7, 0xe0, 0x9c, 0xf5, 0x47, 0x07, 0xe7, 0xac, 0xef, - 0x1f, 0x9c, 0xb3, 0xfe, 0xf4, 0xe0, 0x9c, 0xf5, 0x8b, 0x3f, 0x3c, 0xf7, 0x91, 0x37, 0x4b, 0xbb, - 0xcf, 0xfe, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x91, 0x0b, 0xbd, 0x79, 0xc9, 0x00, 0x00, + 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0x1f, 0x9c, 0x05, 0xc9, 0xc5, 0xb2, 0x29, + 0x91, 0xcb, 0x17, 0x60, 0x2e, 0x49, 0x89, 0x12, 0x29, 0x4a, 0x00, 0x06, 0xd8, 0x05, 0xf7, 0x35, + 0xbc, 0x83, 0x5d, 0x9a, 0x14, 0x4d, 0xab, 0x31, 0x7d, 0x01, 0x34, 0xd1, 0xe8, 0x1e, 0x76, 0xf7, + 0x60, 0x17, 0x2c, 0xab, 0xea, 0xfb, 0x14, 0x59, 0x79, 0xc8, 0x3f, 0x5c, 0x29, 0x57, 0xe2, 0x58, + 0x2a, 0xa7, 0x2a, 0x8f, 0xb2, 0x15, 0x25, 0x29, 0x3b, 0x72, 0xfc, 0x90, 0x9c, 0x4a, 0xe2, 0x3c, + 0x4a, 0xfa, 0xe3, 0xd8, 0xa9, 0x4a, 0x49, 0x55, 0xa9, 0xc0, 0x16, 0x54, 0x95, 0x54, 0x7e, 0x24, + 0x95, 0xc7, 0x2f, 0x23, 0x4e, 0x94, 0xba, 0xcf, 0xbe, 0xb7, 0xa7, 0x7b, 0x66, 0xb0, 0xc4, 0x82, + 0x94, 0x2a, 0xff, 0x66, 0xce, 0x39, 0xf7, 0xdc, 0xdb, 0xf7, 0x71, 0xee, 0x39, 0xe7, 0x9e, 0x7b, + 0x2e, 0xbc, 0xb4, 0xfd, 0x62, 0x3c, 0xe7, 0x85, 0xf3, 0xdb, 0xed, 0x75, 0x12, 0x05, 0x24, 0x21, + 0xf1, 0xfc, 0x2e, 0x09, 0xdc, 0x30, 0x9a, 0x17, 0x08, 0xa7, 0xe5, 0xcd, 0x37, 0xc3, 0x88, 0xcc, + 0xef, 0x3e, 0x3b, 0xbf, 0x49, 0x02, 0x12, 0x39, 0x09, 0x71, 0xe7, 0x5a, 0x51, 0x98, 0x84, 0x08, + 0x71, 0x9a, 0x39, 0xa7, 0xe5, 0xcd, 0x51, 0x9a, 0xb9, 0xdd, 0x67, 0x67, 0x9e, 0xd9, 0xf4, 0x92, + 0xad, 0xf6, 0xfa, 0x5c, 0x33, 0xdc, 0x99, 0xdf, 0x0c, 0x37, 0xc3, 0x79, 0x46, 0xba, 0xde, 0xde, + 0x60, 0xff, 0xd8, 0x1f, 0xf6, 0x8b, 0xb3, 0x98, 0x79, 0x3e, 0xad, 0x66, 0xc7, 0x69, 0x6e, 0x79, + 0x01, 0x89, 0xf6, 0xe6, 0x5b, 0xdb, 0x9b, 0xac, 0xde, 0x88, 0xc4, 0x61, 0x3b, 0x6a, 0x92, 0x6c, + 0xc5, 0x5d, 0x4b, 0xc5, 0xf3, 0x3b, 0x24, 0x71, 0x72, 0x9a, 0x3b, 0x33, 0x5f, 0x54, 0x2a, 0x6a, + 0x07, 0x89, 0xb7, 0xd3, 0x59, 0xcd, 0xc7, 0x7b, 0x15, 0x88, 0x9b, 0x5b, 0x64, 0xc7, 0xe9, 0x28, + 0xf7, 0x5c, 0x51, 0xb9, 0x76, 0xe2, 0xf9, 0xf3, 0x5e, 0x90, 0xc4, 0x49, 0x94, 0x2d, 0x64, 0x7f, + 0xcf, 0x82, 0x0b, 0x0b, 0xaf, 0x37, 0x96, 0x7d, 0x27, 0x4e, 0xbc, 0xe6, 0xa2, 0x1f, 0x36, 0xb7, + 0x1b, 0x49, 0x18, 0x91, 0xdb, 0xa1, 0xdf, 0xde, 0x21, 0x0d, 0xd6, 0x11, 0xe8, 0x69, 0x18, 0xd9, + 0x65, 0xff, 0x57, 0x6b, 0x55, 0xeb, 0x82, 0x75, 0xb1, 0xb2, 0x38, 0xf5, 0x9d, 0xfd, 0xd9, 0x8f, + 0x1c, 0xec, 0xcf, 0x8e, 0xdc, 0x16, 0x70, 0xac, 0x28, 0xd0, 0x63, 0x30, 0xb4, 0x11, 0xaf, 0xed, + 0xb5, 0x48, 0xb5, 0xc4, 0x68, 0x27, 0x04, 0xed, 0xd0, 0x4a, 0x83, 0x42, 0xb1, 0xc0, 0xa2, 0x79, + 0xa8, 0xb4, 0x9c, 0x28, 0xf1, 0x12, 0x2f, 0x0c, 0xaa, 0xe5, 0x0b, 0xd6, 0xc5, 0xc1, 0xc5, 0x69, + 0x41, 0x5a, 0xa9, 0x4b, 0x04, 0x4e, 0x69, 0x68, 0x33, 0x22, 0xe2, 0xb8, 0x37, 0x03, 0x7f, 0xaf, + 0x3a, 0x70, 0xc1, 0xba, 0x38, 0x92, 0x36, 0x03, 0x0b, 0x38, 0x56, 0x14, 0xf6, 0xaf, 0x94, 0x60, + 0x64, 0x61, 0x63, 0xc3, 0x0b, 0xbc, 0x64, 0x0f, 0xdd, 0x86, 0xb1, 0x20, 0x74, 0x89, 0xfc, 0xcf, + 0xbe, 0x62, 0xf4, 0xd2, 0x85, 0xb9, 0xce, 0xa9, 0x34, 0x77, 0x43, 0xa3, 0x5b, 0x9c, 0x3a, 0xd8, + 0x9f, 0x1d, 0xd3, 0x21, 0xd8, 0xe0, 0x83, 0x30, 0x8c, 0xb6, 0x42, 0x57, 0xb1, 0x2d, 0x31, 0xb6, + 0xb3, 0x79, 0x6c, 0xeb, 0x29, 0xd9, 0xe2, 0xe4, 0xc1, 0xfe, 0xec, 0xa8, 0x06, 0xc0, 0x3a, 0x13, + 0xb4, 0x0e, 0x93, 0xf4, 0x6f, 0x90, 0x78, 0x8a, 0x6f, 0x99, 0xf1, 0x7d, 0xb4, 0x88, 0xaf, 0x46, + 0xba, 0x78, 0xea, 0x60, 0x7f, 0x76, 0x32, 0x03, 0xc4, 0x59, 0x86, 0xf6, 0x7b, 0x30, 0xb1, 0x90, + 0x24, 0x4e, 0x73, 0x8b, 0xb8, 0x7c, 0x04, 0xd1, 0xf3, 0x30, 0x10, 0x38, 0x3b, 0x44, 0x8c, 0xef, + 0x05, 0xd1, 0xb1, 0x03, 0x37, 0x9c, 0x1d, 0x72, 0xb8, 0x3f, 0x3b, 0x75, 0x2b, 0xf0, 0xde, 0x6d, + 0x8b, 0x59, 0x41, 0x61, 0x98, 0x51, 0xa3, 0x4b, 0x00, 0x2e, 0xd9, 0xf5, 0x9a, 0xa4, 0xee, 0x24, + 0x5b, 0x62, 0xbc, 0x91, 0x28, 0x0b, 0x35, 0x85, 0xc1, 0x1a, 0x95, 0x7d, 0x17, 0x2a, 0x0b, 0xbb, + 0xa1, 0xe7, 0xd6, 0x43, 0x37, 0x46, 0xdb, 0x30, 0xd9, 0x8a, 0xc8, 0x06, 0x89, 0x14, 0xa8, 0x6a, + 0x5d, 0x28, 0x5f, 0x1c, 0xbd, 0x74, 0x31, 0xf7, 0x63, 0x4d, 0xd2, 0xe5, 0x20, 0x89, 0xf6, 0x16, + 0x1f, 0x10, 0xf5, 0x4d, 0x66, 0xb0, 0x38, 0xcb, 0xd9, 0xfe, 0x97, 0x25, 0x38, 0xb3, 0xf0, 0x5e, + 0x3b, 0x22, 0x35, 0x2f, 0xde, 0xce, 0xce, 0x70, 0xd7, 0x8b, 0xb7, 0x6f, 0xa4, 0x3d, 0xa0, 0xa6, + 0x56, 0x4d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc0, 0x30, 0xfd, 0x7d, 0x0b, 0xaf, 0x8a, 0x4f, 0x3e, + 0x25, 0x88, 0x47, 0x6b, 0x4e, 0xe2, 0xd4, 0x38, 0x0a, 0x4b, 0x1a, 0x74, 0x1d, 0x46, 0x9b, 0x6c, + 0x41, 0x6e, 0x5e, 0x0f, 0x5d, 0xc2, 0x06, 0xb3, 0xb2, 0xf8, 0x14, 0x25, 0x5f, 0x4a, 0xc1, 0x87, + 0xfb, 0xb3, 0x55, 0xde, 0x36, 0xc1, 0x42, 0xc3, 0x61, 0xbd, 0x3c, 0xb2, 0xd5, 0xfa, 0x1a, 0x60, + 0x9c, 0x20, 0x67, 0x6d, 0x5d, 0xd4, 0x96, 0xca, 0x20, 0x5b, 0x2a, 0x63, 0xf9, 0xcb, 0x04, 0x3d, + 0x0b, 0x03, 0xdb, 0x5e, 0xe0, 0x56, 0x87, 0x18, 0xaf, 0x87, 0xe9, 0x98, 0x5f, 0xf5, 0x02, 0xf7, + 0x70, 0x7f, 0x76, 0xda, 0x68, 0x0e, 0x05, 0x62, 0x46, 0x6a, 0xff, 0x3d, 0x4b, 0x74, 0xe3, 0x8a, + 0xe7, 0x9b, 0x82, 0xe2, 0x12, 0x40, 0x4c, 0x9a, 0x11, 0x49, 0xb4, 0x8e, 0x54, 0xd3, 0xa1, 0xa1, + 0x30, 0x58, 0xa3, 0xa2, 0x62, 0x20, 0xde, 0x72, 0x22, 0x36, 0xab, 0x44, 0x77, 0x2a, 0x31, 0xd0, + 0x90, 0x08, 0x9c, 0xd2, 0x18, 0x62, 0xa0, 0xdc, 0x53, 0x0c, 0xfc, 0xae, 0x05, 0xc3, 0x8b, 0x5e, + 0xe0, 0x7a, 0xc1, 0x26, 0xfa, 0x3c, 0x8c, 0x50, 0x29, 0xed, 0x3a, 0x89, 0x23, 0x24, 0xc0, 0x4f, + 0x69, 0xb3, 0x4c, 0x09, 0xcd, 0xb9, 0xd6, 0xf6, 0x26, 0x05, 0xc4, 0x73, 0x94, 0x9a, 0xce, 0xbb, + 0x9b, 0xeb, 0xef, 0x90, 0x66, 0x72, 0x9d, 0x24, 0x4e, 0xfa, 0x39, 0x29, 0x0c, 0x2b, 0xae, 0xe8, + 0x2a, 0x0c, 0x25, 0x4e, 0xb4, 0x49, 0x12, 0x21, 0x0a, 0x72, 0x97, 0x2c, 0x2f, 0x89, 0xe9, 0xdc, + 0x24, 0x41, 0x93, 0xa4, 0x02, 0x72, 0x8d, 0x15, 0xc5, 0x82, 0x85, 0xdd, 0x84, 0xb1, 0x25, 0xa7, + 0xe5, 0xac, 0x7b, 0xbe, 0x97, 0x78, 0x24, 0x46, 0x8f, 0x43, 0xd9, 0x71, 0x5d, 0xb6, 0x3e, 0x2a, + 0x8b, 0x67, 0x0e, 0xf6, 0x67, 0xcb, 0x0b, 0x2e, 0x1d, 0x28, 0x50, 0x54, 0x7b, 0x98, 0x52, 0xa0, + 0x27, 0x61, 0xc0, 0x8d, 0xc2, 0x56, 0xb5, 0xc4, 0x28, 0xcf, 0xd2, 0x31, 0xad, 0x45, 0x61, 0x2b, + 0x43, 0xca, 0x68, 0xec, 0x6f, 0x97, 0x00, 0x2d, 0x91, 0xd6, 0xd6, 0x4a, 0xc3, 0x18, 0xc9, 0x8b, + 0x30, 0xb2, 0x13, 0x06, 0x5e, 0x12, 0x46, 0xb1, 0xa8, 0x90, 0x4d, 0xa0, 0xeb, 0x02, 0x86, 0x15, + 0x16, 0x5d, 0x80, 0x81, 0x56, 0xba, 0xf8, 0xc7, 0xa4, 0xe0, 0x60, 0xcb, 0x9e, 0x61, 0x28, 0x45, + 0x3b, 0x26, 0x91, 0x98, 0xf8, 0x8a, 0xe2, 0x56, 0x4c, 0x22, 0xcc, 0x30, 0xe9, 0xbc, 0xa1, 0x33, + 0x4a, 0x4c, 0xeb, 0xcc, 0xbc, 0xa1, 0x18, 0xac, 0x51, 0xa1, 0x5b, 0x50, 0xe1, 0xff, 0x30, 0xd9, + 0x60, 0x73, 0xbc, 0x40, 0x66, 0x5c, 0x0b, 0x9b, 0x8e, 0x9f, 0xed, 0xf2, 0x71, 0x36, 0xbb, 0x64, + 0x71, 0x9c, 0x72, 0x32, 0x66, 0xd7, 0x50, 0xcf, 0xd9, 0xf5, 0xcb, 0x16, 0xa0, 0x25, 0x2f, 0x70, + 0x49, 0x74, 0x02, 0x1b, 0xe6, 0xd1, 0x26, 0xfe, 0xbf, 0xa7, 0x4d, 0x0b, 0x77, 0x5a, 0x61, 0x40, + 0x82, 0x64, 0x29, 0x0c, 0x5c, 0xbe, 0x89, 0x7e, 0x0a, 0x06, 0x12, 0x5a, 0x15, 0x6f, 0xd6, 0x63, + 0x72, 0x30, 0x68, 0x05, 0x87, 0xfb, 0xb3, 0x67, 0x3b, 0x4b, 0xb0, 0x26, 0xb0, 0x32, 0xe8, 0x93, + 0x30, 0x14, 0x27, 0x4e, 0xd2, 0x8e, 0x45, 0x43, 0x1f, 0x91, 0x0d, 0x6d, 0x30, 0xe8, 0xe1, 0xfe, + 0xec, 0xa4, 0x2a, 0xc6, 0x41, 0x58, 0x14, 0x40, 0x4f, 0xc0, 0xf0, 0x0e, 0x89, 0x63, 0x67, 0x53, + 0xca, 0xbf, 0x49, 0x51, 0x76, 0xf8, 0x3a, 0x07, 0x63, 0x89, 0x47, 0x8f, 0xc2, 0x20, 0x89, 0xa2, + 0x30, 0x12, 0xf3, 0x60, 0x5c, 0x10, 0x0e, 0x2e, 0x53, 0x20, 0xe6, 0x38, 0xfb, 0xdf, 0x58, 0x30, + 0xa9, 0xda, 0xca, 0xeb, 0x3a, 0x81, 0xe5, 0xfd, 0x26, 0x40, 0x53, 0x7e, 0x60, 0xcc, 0x96, 0xd7, + 0xe8, 0xa5, 0xc7, 0xf2, 0x26, 0x5d, 0x67, 0x37, 0xa6, 0x9c, 0x15, 0x28, 0xc6, 0x1a, 0x37, 0xfb, + 0x9f, 0x58, 0x70, 0x2a, 0xf3, 0x45, 0xd7, 0xbc, 0x38, 0x41, 0x6f, 0x75, 0x7c, 0xd5, 0x5c, 0x7f, + 0x5f, 0x45, 0x4b, 0xb3, 0x6f, 0x52, 0xb3, 0x44, 0x42, 0xb4, 0x2f, 0xba, 0x02, 0x83, 0x5e, 0x42, + 0x76, 0xe4, 0xc7, 0x3c, 0xda, 0xf5, 0x63, 0x78, 0xab, 0xd2, 0x11, 0x59, 0xa5, 0x25, 0x31, 0x67, + 0x60, 0xff, 0x77, 0x0b, 0x2a, 0x4b, 0x61, 0xb0, 0xe1, 0x6d, 0x5e, 0x77, 0x5a, 0x27, 0x30, 0x16, + 0xab, 0x30, 0xc0, 0xb8, 0xf3, 0x86, 0x3f, 0x9e, 0xdf, 0x70, 0xd1, 0x9c, 0x39, 0xba, 0x8b, 0x71, + 0x6d, 0x41, 0x89, 0x1f, 0x0a, 0xc2, 0x8c, 0xc5, 0xcc, 0x27, 0xa0, 0xa2, 0x08, 0xd0, 0x14, 0x94, + 0xb7, 0x09, 0xd7, 0x10, 0x2b, 0x98, 0xfe, 0x44, 0xa7, 0x61, 0x70, 0xd7, 0xf1, 0xdb, 0x62, 0x79, + 0x62, 0xfe, 0xe7, 0x53, 0xa5, 0x17, 0x2d, 0xfb, 0x5b, 0x6c, 0x8d, 0x89, 0x4a, 0x96, 0x83, 0x5d, + 0xb1, 0xfc, 0xdf, 0x83, 0xd3, 0x7e, 0x8e, 0xd4, 0x11, 0x1d, 0xd1, 0xbf, 0x94, 0x7a, 0x48, 0xb4, + 0xf5, 0x74, 0x1e, 0x16, 0xe7, 0xd6, 0x41, 0x05, 0x77, 0xd8, 0xa2, 0x33, 0xca, 0xf1, 0x59, 0x7b, + 0xc5, 0xce, 0x7f, 0x53, 0xc0, 0xb0, 0xc2, 0x52, 0x01, 0x71, 0x5a, 0x35, 0xfe, 0x2a, 0xd9, 0x6b, + 0x10, 0x9f, 0x34, 0x93, 0x30, 0xfa, 0x40, 0x9b, 0xff, 0x30, 0xef, 0x7d, 0x2e, 0x5f, 0x46, 0x05, + 0x83, 0xf2, 0x55, 0xb2, 0xc7, 0x87, 0x42, 0xff, 0xba, 0x72, 0xd7, 0xaf, 0xfb, 0x4d, 0x0b, 0xc6, + 0xd5, 0xd7, 0x9d, 0xc0, 0x42, 0x5a, 0x34, 0x17, 0xd2, 0xc3, 0x5d, 0xe7, 0x63, 0xc1, 0x12, 0xfa, + 0x11, 0x13, 0x01, 0x82, 0xa6, 0x1e, 0x85, 0xb4, 0x6b, 0xa8, 0xcc, 0xfe, 0x20, 0x07, 0xa4, 0x9f, + 0xef, 0xba, 0x4a, 0xf6, 0xd6, 0x42, 0xba, 0xe1, 0xe7, 0x7f, 0x97, 0x31, 0x6a, 0x03, 0x5d, 0x47, + 0xed, 0xb7, 0x4a, 0x70, 0x46, 0xf5, 0x80, 0xb1, 0xa5, 0xfe, 0xb8, 0xf7, 0xc1, 0xb3, 0x30, 0xea, + 0x92, 0x0d, 0xa7, 0xed, 0x27, 0xca, 0x08, 0x18, 0xe4, 0x86, 0x60, 0x2d, 0x05, 0x63, 0x9d, 0xe6, + 0x08, 0xdd, 0xf6, 0xaf, 0x80, 0xc9, 0xde, 0xc4, 0xa1, 0x33, 0x98, 0xea, 0x5b, 0x9a, 0x29, 0x37, + 0xa6, 0x9b, 0x72, 0xc2, 0x6c, 0x7b, 0x14, 0x06, 0xbd, 0x1d, 0xba, 0x17, 0x97, 0xcc, 0x2d, 0x76, + 0x95, 0x02, 0x31, 0xc7, 0xa1, 0x8f, 0xc1, 0x70, 0x33, 0xdc, 0xd9, 0x71, 0x02, 0xb7, 0x5a, 0x66, + 0x1a, 0xe0, 0x28, 0xdd, 0xae, 0x97, 0x38, 0x08, 0x4b, 0x1c, 0x7a, 0x08, 0x06, 0x9c, 0x68, 0x33, + 0xae, 0x0e, 0x30, 0x9a, 0x11, 0x5a, 0xd3, 0x42, 0xb4, 0x19, 0x63, 0x06, 0xa5, 0x9a, 0xdd, 0x9d, + 0x30, 0xda, 0xf6, 0x82, 0xcd, 0x9a, 0x17, 0x31, 0x35, 0x4d, 0xd3, 0xec, 0x5e, 0x57, 0x18, 0xac, + 0x51, 0xa1, 0x15, 0x18, 0x6c, 0x85, 0x51, 0x12, 0x57, 0x87, 0x58, 0x77, 0x3f, 0x52, 0xb0, 0x94, + 0xf8, 0xd7, 0xd6, 0xc3, 0x28, 0x49, 0x3f, 0x80, 0xfe, 0x8b, 0x31, 0x2f, 0x8e, 0x3e, 0x09, 0x65, + 0x12, 0xec, 0x56, 0x87, 0x19, 0x97, 0x99, 0x3c, 0x2e, 0xcb, 0xc1, 0xee, 0x6d, 0x27, 0x4a, 0xe5, + 0xcc, 0x72, 0xb0, 0x8b, 0x69, 0x19, 0xf4, 0x06, 0x54, 0xa4, 0x1b, 0x28, 0xae, 0x8e, 0x14, 0x4f, + 0x31, 0x2c, 0x88, 0x30, 0x79, 0xb7, 0xed, 0x45, 0x64, 0x87, 0x04, 0x49, 0x9c, 0x9a, 0x2f, 0x12, + 0x1b, 0xe3, 0x94, 0x1b, 0x7a, 0x03, 0xc6, 0xb8, 0xe6, 0x77, 0x3d, 0x6c, 0x07, 0x49, 0x5c, 0xad, + 0xb0, 0xe6, 0xe5, 0xfa, 0x0c, 0x6e, 0xa7, 0x74, 0x8b, 0xa7, 0x05, 0xd3, 0x31, 0x0d, 0x18, 0x63, + 0x83, 0x15, 0xc2, 0x30, 0xee, 0x7b, 0xbb, 0x24, 0x20, 0x71, 0x5c, 0x8f, 0xc2, 0x75, 0x52, 0x05, + 0xd6, 0xf2, 0x73, 0xf9, 0xa6, 0x74, 0xb8, 0x4e, 0x16, 0xa7, 0x0f, 0xf6, 0x67, 0xc7, 0xaf, 0xe9, + 0x65, 0xb0, 0xc9, 0x02, 0xdd, 0x82, 0x09, 0xaa, 0x52, 0x7a, 0x29, 0xd3, 0xd1, 0x5e, 0x4c, 0xd1, + 0xc1, 0xfe, 0xec, 0x04, 0x36, 0x0a, 0xe1, 0x0c, 0x13, 0xf4, 0x2a, 0x54, 0x7c, 0x6f, 0x83, 0x34, + 0xf7, 0x9a, 0x3e, 0xa9, 0x8e, 0x31, 0x8e, 0xb9, 0xcb, 0xea, 0x9a, 0x24, 0xe2, 0x2a, 0xbb, 0xfa, + 0x8b, 0xd3, 0xe2, 0xe8, 0x36, 0x9c, 0x4d, 0x48, 0xb4, 0xe3, 0x05, 0x0e, 0x5d, 0x0e, 0x42, 0x9f, + 0x64, 0x0e, 0x89, 0x71, 0x36, 0xdf, 0xce, 0x8b, 0xae, 0x3b, 0xbb, 0x96, 0x4b, 0x85, 0x0b, 0x4a, + 0xa3, 0x9b, 0x30, 0xc9, 0x56, 0x42, 0xbd, 0xed, 0xfb, 0xf5, 0xd0, 0xf7, 0x9a, 0x7b, 0xd5, 0x09, + 0xc6, 0xf0, 0x63, 0xd2, 0xe3, 0xb0, 0x6a, 0xa2, 0xa9, 0x81, 0x95, 0xfe, 0xc3, 0xd9, 0xd2, 0x68, + 0x1d, 0x26, 0x63, 0xd2, 0x6c, 0x47, 0x5e, 0xb2, 0x47, 0xe7, 0x2f, 0xb9, 0x9b, 0x54, 0x27, 0x8b, + 0xcd, 0xc4, 0x86, 0x49, 0xca, 0x3d, 0x3b, 0x19, 0x20, 0xce, 0x32, 0xa4, 0x4b, 0x3b, 0x4e, 0x5c, + 0x2f, 0xa8, 0x4e, 0x31, 0x89, 0xa1, 0x56, 0x46, 0x83, 0x02, 0x31, 0xc7, 0x31, 0x9b, 0x9b, 0xfe, + 0xb8, 0x49, 0x25, 0xe8, 0x34, 0x23, 0x4c, 0x6d, 0x6e, 0x89, 0xc0, 0x29, 0x0d, 0xdd, 0x96, 0x93, + 0x64, 0xaf, 0x8a, 0x18, 0xa9, 0x5a, 0x2e, 0x6b, 0x6b, 0x6f, 0x60, 0x0a, 0x47, 0xd7, 0x60, 0x98, + 0x04, 0xbb, 0x2b, 0x51, 0xb8, 0x53, 0x3d, 0x55, 0xbc, 0x66, 0x97, 0x39, 0x09, 0x17, 0xe8, 0xa9, + 0x01, 0x20, 0xc0, 0x58, 0xb2, 0x40, 0x77, 0xa1, 0x9a, 0x33, 0x22, 0x7c, 0x00, 0x4e, 0xb3, 0x01, + 0x78, 0x59, 0x94, 0xad, 0xae, 0x15, 0xd0, 0x1d, 0x76, 0xc1, 0xe1, 0x42, 0xee, 0xf6, 0x3a, 0x4c, + 0x28, 0xc1, 0xc2, 0xc6, 0x16, 0xcd, 0xc2, 0x20, 0x95, 0x98, 0xd2, 0x08, 0xae, 0xd0, 0xae, 0xa4, + 0x82, 0x34, 0xc6, 0x1c, 0xce, 0xba, 0xd2, 0x7b, 0x8f, 0x2c, 0xee, 0x25, 0x84, 0x9b, 0x45, 0x65, + 0xad, 0x2b, 0x25, 0x02, 0xa7, 0x34, 0xf6, 0xff, 0xe1, 0x8a, 0x49, 0x2a, 0xbd, 0xfa, 0x90, 0xd7, + 0x4f, 0xc3, 0xc8, 0x56, 0x18, 0x27, 0x94, 0x9a, 0xd5, 0x31, 0x98, 0xaa, 0x22, 0x57, 0x04, 0x1c, + 0x2b, 0x0a, 0xf4, 0x12, 0x8c, 0x37, 0xf5, 0x0a, 0xc4, 0x66, 0x73, 0x46, 0x14, 0x31, 0x6b, 0xc7, + 0x26, 0x2d, 0x7a, 0x11, 0x46, 0x98, 0x67, 0xb8, 0x19, 0xfa, 0xc2, 0x00, 0x93, 0x3b, 0xe6, 0x48, + 0x5d, 0xc0, 0x0f, 0xb5, 0xdf, 0x58, 0x51, 0x53, 0x33, 0x96, 0x36, 0x61, 0xb5, 0x2e, 0xc4, 0xbc, + 0x32, 0x63, 0xaf, 0x30, 0x28, 0x16, 0x58, 0xfb, 0xaf, 0x96, 0xb4, 0x5e, 0xa6, 0x26, 0x05, 0x41, + 0x75, 0x18, 0xbe, 0xe3, 0x78, 0x89, 0x17, 0x6c, 0x8a, 0xfd, 0xfc, 0x89, 0xae, 0x32, 0x9f, 0x15, + 0x7a, 0x9d, 0x17, 0xe0, 0xbb, 0x92, 0xf8, 0x83, 0x25, 0x1b, 0xca, 0x31, 0x6a, 0x07, 0x01, 0xe5, + 0x58, 0xea, 0x97, 0x23, 0xe6, 0x05, 0x38, 0x47, 0xf1, 0x07, 0x4b, 0x36, 0xe8, 0x2d, 0x00, 0x39, + 0x6f, 0x88, 0x2b, 0x3c, 0xb2, 0x4f, 0xf7, 0x66, 0xba, 0xa6, 0xca, 0x2c, 0x4e, 0xd0, 0x3d, 0x2f, + 0xfd, 0x8f, 0x35, 0x7e, 0x76, 0xc2, 0xf4, 0x9e, 0xce, 0xc6, 0xa0, 0xcf, 0xd1, 0xa5, 0xea, 0x44, + 0x09, 0x71, 0x17, 0x12, 0xd1, 0x39, 0x4f, 0xf6, 0xa7, 0xb6, 0xae, 0x79, 0x3b, 0x44, 0x5f, 0xd6, + 0x82, 0x09, 0x4e, 0xf9, 0xd9, 0xbf, 0x53, 0x86, 0x6a, 0x51, 0x73, 0xe9, 0xa4, 0x23, 0x77, 0xbd, + 0x64, 0x89, 0xaa, 0x2b, 0x96, 0x39, 0xe9, 0x96, 0x05, 0x1c, 0x2b, 0x0a, 0x3a, 0xfa, 0xb1, 0xb7, + 0x29, 0xad, 0x8e, 0xc1, 0x74, 0xf4, 0x1b, 0x0c, 0x8a, 0x05, 0x96, 0xd2, 0x45, 0xc4, 0x89, 0x85, + 0xcb, 0x5f, 0x9b, 0x25, 0x98, 0x41, 0xb1, 0xc0, 0xea, 0x0e, 0x83, 0x81, 0x1e, 0x0e, 0x03, 0xa3, + 0x8b, 0x06, 0x8f, 0xb7, 0x8b, 0xd0, 0xdb, 0x00, 0x1b, 0x5e, 0xe0, 0xc5, 0x5b, 0x8c, 0xfb, 0xd0, + 0x91, 0xb9, 0x2b, 0x65, 0x67, 0x45, 0x71, 0xc1, 0x1a, 0x47, 0xf4, 0x02, 0x8c, 0xaa, 0x05, 0xb8, + 0x5a, 0xab, 0x0e, 0x9b, 0xfe, 0xe4, 0x54, 0x1a, 0xd5, 0xb0, 0x4e, 0x67, 0xbf, 0x93, 0x9d, 0x2f, + 0x62, 0x05, 0x68, 0xfd, 0x6b, 0xf5, 0xdb, 0xbf, 0xa5, 0xee, 0xfd, 0x6b, 0xff, 0x41, 0x19, 0x26, + 0x8d, 0xca, 0xda, 0x71, 0x1f, 0x32, 0xeb, 0x32, 0xdd, 0x88, 0x9c, 0x84, 0x88, 0xf5, 0x67, 0xf7, + 0x5e, 0x2a, 0xfa, 0x66, 0x45, 0x57, 0x00, 0x2f, 0x8f, 0xde, 0x86, 0x8a, 0xef, 0xc4, 0xcc, 0xf9, + 0x40, 0xc4, 0xba, 0xeb, 0x87, 0x59, 0xaa, 0xe8, 0x3b, 0x71, 0xa2, 0xed, 0x05, 0x9c, 0x77, 0xca, + 0x92, 0xee, 0x98, 0x54, 0x39, 0x91, 0x67, 0x4a, 0xaa, 0x11, 0x54, 0x83, 0xd9, 0xc3, 0x1c, 0x87, + 0x5e, 0x84, 0xb1, 0x88, 0xb0, 0x59, 0xb1, 0x44, 0x75, 0x2d, 0x36, 0xcd, 0x06, 0x53, 0xa5, 0x0c, + 0x6b, 0x38, 0x6c, 0x50, 0xa6, 0xba, 0xf6, 0x50, 0x17, 0x5d, 0xfb, 0x09, 0x18, 0x66, 0x3f, 0xd4, + 0x0c, 0x50, 0xa3, 0xb1, 0xca, 0xc1, 0x58, 0xe2, 0xb3, 0x13, 0x66, 0xa4, 0xcf, 0x09, 0xf3, 0x24, + 0x4c, 0xd4, 0x1c, 0xb2, 0x13, 0x06, 0xcb, 0x81, 0xdb, 0x0a, 0xbd, 0x20, 0x41, 0x55, 0x18, 0x60, + 0xbb, 0x03, 0x5f, 0xdb, 0x03, 0x94, 0x03, 0x1e, 0xa0, 0x9a, 0xb3, 0xfd, 0xc7, 0x25, 0x18, 0xaf, + 0x11, 0x9f, 0x24, 0x84, 0xdb, 0x1a, 0x31, 0x5a, 0x01, 0xb4, 0x19, 0x39, 0x4d, 0x52, 0x27, 0x91, + 0x17, 0xba, 0x0d, 0xd2, 0x0c, 0x03, 0x76, 0x52, 0x43, 0xb7, 0xbb, 0xb3, 0x07, 0xfb, 0xb3, 0xe8, + 0x72, 0x07, 0x16, 0xe7, 0x94, 0x40, 0x6f, 0xc2, 0x78, 0x2b, 0x22, 0x86, 0x0f, 0xcd, 0x2a, 0x52, + 0x17, 0xea, 0x3a, 0x21, 0xd7, 0x54, 0x0d, 0x10, 0x36, 0x59, 0xa1, 0xcf, 0xc2, 0x54, 0x18, 0xb5, + 0xb6, 0x9c, 0xa0, 0x46, 0x5a, 0x24, 0x70, 0xa9, 0x2a, 0x2e, 0x7c, 0x04, 0xa7, 0x0f, 0xf6, 0x67, + 0xa7, 0x6e, 0x66, 0x70, 0xb8, 0x83, 0x1a, 0xbd, 0x09, 0xd3, 0xad, 0x28, 0x6c, 0x39, 0x9b, 0x6c, + 0xa2, 0x08, 0x8d, 0x83, 0x4b, 0x9f, 0xa7, 0x0f, 0xf6, 0x67, 0xa7, 0xeb, 0x59, 0xe4, 0xe1, 0xfe, + 0xec, 0x29, 0xd6, 0x51, 0x14, 0x92, 0x22, 0x71, 0x27, 0x1b, 0x7b, 0x13, 0xce, 0xd4, 0xc2, 0x3b, + 0xc1, 0x1d, 0x27, 0x72, 0x17, 0xea, 0xab, 0x9a, 0x71, 0x7f, 0x43, 0x1a, 0x97, 0xfc, 0xdc, 0x2b, + 0x77, 0x9f, 0xd2, 0x4a, 0x72, 0xf5, 0x7f, 0xc5, 0xf3, 0x49, 0x81, 0x13, 0xe1, 0xaf, 0x97, 0x8c, + 0x9a, 0x52, 0x7a, 0xe5, 0xa9, 0xb7, 0x0a, 0x3d, 0xf5, 0xaf, 0xc1, 0xc8, 0x86, 0x47, 0x7c, 0x17, + 0x93, 0x0d, 0x31, 0x32, 0x8f, 0x17, 0x1f, 0x60, 0xac, 0x50, 0x4a, 0xe9, 0x34, 0xe2, 0xa6, 0xe9, + 0x8a, 0x28, 0x8c, 0x15, 0x1b, 0xb4, 0x0d, 0x53, 0xd2, 0xf6, 0x91, 0x58, 0xb1, 0x88, 0x9f, 0xe8, + 0x66, 0x50, 0x99, 0xcc, 0xd9, 0x00, 0xe2, 0x0c, 0x1b, 0xdc, 0xc1, 0x98, 0xda, 0xa2, 0x3b, 0x74, + 0xbb, 0x1a, 0x60, 0x53, 0x9a, 0xd9, 0xa2, 0xcc, 0xac, 0x66, 0x50, 0xfb, 0x6b, 0x16, 0x3c, 0xd0, + 0xd1, 0x33, 0xc2, 0xbd, 0x70, 0xcc, 0xa3, 0x90, 0x35, 0xf7, 0x4b, 0xbd, 0xcd, 0x7d, 0xfb, 0x37, + 0x2c, 0x38, 0xbd, 0xbc, 0xd3, 0x4a, 0xf6, 0x6a, 0x9e, 0x79, 0x9a, 0xf0, 0x09, 0x18, 0xda, 0x21, + 0xae, 0xd7, 0xde, 0x11, 0x23, 0x37, 0x2b, 0x45, 0xfa, 0x75, 0x06, 0x3d, 0xdc, 0x9f, 0x1d, 0x6f, + 0x24, 0x61, 0xe4, 0x6c, 0x12, 0x0e, 0xc0, 0x82, 0x1c, 0xfd, 0x2c, 0xd7, 0x4d, 0xaf, 0x79, 0x3b, + 0x9e, 0x3c, 0x90, 0xea, 0xea, 0xf2, 0x9a, 0x93, 0x1d, 0x3a, 0xf7, 0x5a, 0xdb, 0x09, 0x12, 0x2f, + 0xd9, 0x33, 0x75, 0x59, 0xc6, 0x08, 0xa7, 0x3c, 0xed, 0xef, 0x59, 0x30, 0x29, 0xe5, 0xc9, 0x82, + 0xeb, 0x46, 0x24, 0x8e, 0xd1, 0x0c, 0x94, 0xbc, 0x96, 0x68, 0x29, 0x88, 0xd2, 0xa5, 0xd5, 0x3a, + 0x2e, 0x79, 0x2d, 0x54, 0x87, 0x0a, 0x3f, 0xdb, 0x4a, 0x27, 0x58, 0x5f, 0x27, 0x64, 0xcc, 0xf6, + 0x5b, 0x93, 0x25, 0x71, 0xca, 0x44, 0x6a, 0xc6, 0x6c, 0x2f, 0x2a, 0x9b, 0x27, 0x2d, 0x57, 0x04, + 0x1c, 0x2b, 0x0a, 0x74, 0x11, 0x46, 0x82, 0xd0, 0xe5, 0x47, 0x8d, 0x7c, 0x5d, 0xb3, 0x69, 0x7b, + 0x43, 0xc0, 0xb0, 0xc2, 0xda, 0xbf, 0x60, 0xc1, 0x98, 0xfc, 0xb2, 0x3e, 0x95, 0x74, 0xba, 0xbc, + 0x52, 0x05, 0x3d, 0x5d, 0x5e, 0x54, 0xc9, 0x66, 0x18, 0x43, 0xb7, 0x2e, 0x1f, 0x45, 0xb7, 0xb6, + 0xbf, 0x5a, 0x82, 0x09, 0xd9, 0x9c, 0x46, 0x7b, 0x3d, 0x26, 0x09, 0x5a, 0x83, 0x8a, 0xc3, 0xbb, + 0x9c, 0xc8, 0x59, 0xfb, 0x68, 0xbe, 0xd5, 0x65, 0x8c, 0x4f, 0x3a, 0xa2, 0x0b, 0xb2, 0x34, 0x4e, + 0x19, 0x21, 0x1f, 0xa6, 0x83, 0x30, 0x61, 0x5b, 0x9f, 0xc2, 0x77, 0x3b, 0x1b, 0xc8, 0x72, 0x3f, + 0x27, 0xb8, 0x4f, 0xdf, 0xc8, 0x72, 0xc1, 0x9d, 0x8c, 0xd1, 0xb2, 0xf4, 0xf4, 0x94, 0x59, 0x0d, + 0x17, 0xba, 0xd5, 0x50, 0xec, 0xe8, 0xb1, 0x7f, 0xdf, 0x82, 0x8a, 0x24, 0x3b, 0x89, 0x63, 0xa0, + 0xeb, 0x30, 0x1c, 0xb3, 0x41, 0x90, 0x5d, 0x63, 0x77, 0x6b, 0x38, 0x1f, 0xaf, 0x74, 0x47, 0xe7, + 0xff, 0x63, 0x2c, 0x79, 0x30, 0x57, 0xb5, 0x6a, 0xfe, 0x87, 0xc4, 0x55, 0xad, 0xda, 0x53, 0xb0, + 0xcb, 0xfc, 0x27, 0xd6, 0x66, 0xcd, 0x9e, 0xa7, 0x8a, 0x67, 0x2b, 0x22, 0x1b, 0xde, 0xdd, 0xac, + 0xe2, 0x59, 0x67, 0x50, 0x2c, 0xb0, 0xe8, 0x2d, 0x18, 0x6b, 0x4a, 0x0f, 0x6f, 0x2a, 0x06, 0x1e, + 0xeb, 0xea, 0x2f, 0x57, 0x47, 0x2b, 0x3c, 0x20, 0x67, 0x49, 0x2b, 0x8f, 0x0d, 0x6e, 0x54, 0xc2, + 0xa4, 0xa7, 0xc2, 0xe5, 0xae, 0xce, 0x95, 0x88, 0x24, 0x29, 0xdf, 0xc2, 0x03, 0x61, 0xfb, 0x57, + 0x2d, 0x18, 0xe2, 0x7e, 0xc2, 0xfe, 0x1c, 0xab, 0xda, 0x51, 0x51, 0xda, 0x77, 0xb7, 0x29, 0x50, + 0x9c, 0x1c, 0xa1, 0xeb, 0x50, 0x61, 0x3f, 0x98, 0xbf, 0xa4, 0x5c, 0x1c, 0x89, 0xc4, 0x6b, 0xd5, + 0x1b, 0x78, 0x5b, 0x16, 0xc3, 0x29, 0x07, 0xfb, 0x97, 0xca, 0x54, 0x54, 0xa5, 0xa4, 0xc6, 0x2e, + 0x6e, 0xdd, 0xbf, 0x5d, 0xbc, 0x74, 0xbf, 0x76, 0xf1, 0x4d, 0x98, 0x6c, 0x6a, 0xe7, 0x52, 0xe9, + 0x48, 0x5e, 0xec, 0x3a, 0x49, 0xb4, 0x23, 0x2c, 0xee, 0x2b, 0x5b, 0x32, 0x99, 0xe0, 0x2c, 0x57, + 0xf4, 0x39, 0x18, 0xe3, 0xe3, 0x2c, 0x6a, 0x19, 0x60, 0xb5, 0x7c, 0xac, 0x78, 0xbe, 0xe8, 0x55, + 0xb0, 0x99, 0xd8, 0xd0, 0x8a, 0x63, 0x83, 0x99, 0xfd, 0xe5, 0x41, 0x18, 0x5c, 0xde, 0x25, 0x41, + 0x72, 0x02, 0x02, 0xa9, 0x09, 0x13, 0x5e, 0xb0, 0x1b, 0xfa, 0xbb, 0xc4, 0xe5, 0xf8, 0xa3, 0x6c, + 0xae, 0x67, 0x05, 0xeb, 0x89, 0x55, 0x83, 0x05, 0xce, 0xb0, 0xbc, 0x1f, 0x96, 0xfb, 0x65, 0x18, + 0xe2, 0x63, 0x2f, 0xcc, 0xf6, 0x5c, 0x2f, 0x38, 0xeb, 0x44, 0xb1, 0x0a, 0x52, 0xaf, 0x02, 0x77, + 0xbb, 0x8b, 0xe2, 0xe8, 0x1d, 0x98, 0xd8, 0xf0, 0xa2, 0x38, 0xa1, 0x26, 0x77, 0x9c, 0x38, 0x3b, + 0xad, 0x7b, 0xb0, 0xd4, 0x55, 0x3f, 0xac, 0x18, 0x9c, 0x70, 0x86, 0x33, 0xda, 0x84, 0x71, 0x6a, + 0x3c, 0xa6, 0x55, 0x0d, 0x1f, 0xb9, 0x2a, 0xe5, 0x8a, 0xbb, 0xa6, 0x33, 0xc2, 0x26, 0x5f, 0x2a, + 0x4c, 0x9a, 0xcc, 0xd8, 0x1c, 0x61, 0x1a, 0x85, 0x12, 0x26, 0xdc, 0xca, 0xe4, 0x38, 0x2a, 0x93, + 0x58, 0x3c, 0x47, 0xc5, 0x94, 0x49, 0x69, 0xd4, 0x86, 0xfd, 0x75, 0xba, 0x3b, 0xd2, 0x3e, 0x3c, + 0x81, 0xad, 0xe5, 0x15, 0x73, 0x6b, 0x39, 0x57, 0x38, 0x9e, 0x05, 0xdb, 0xca, 0xe7, 0x61, 0x54, + 0x1b, 0x6e, 0x34, 0x0f, 0x95, 0xa6, 0x0c, 0x3e, 0x10, 0x52, 0x57, 0xa9, 0x2f, 0x2a, 0x2a, 0x01, + 0xa7, 0x34, 0xb4, 0x37, 0xa8, 0xb2, 0x97, 0x0d, 0x46, 0xa2, 0xaa, 0x20, 0x66, 0x18, 0xfb, 0x39, + 0x80, 0xe5, 0xbb, 0xa4, 0xb9, 0xc0, 0x8d, 0x2f, 0xed, 0x8c, 0xcb, 0x2a, 0x3e, 0xe3, 0xa2, 0x3b, + 0xf4, 0xc4, 0xca, 0x92, 0xa1, 0x94, 0xcf, 0x01, 0x70, 0x2d, 0xf4, 0xf5, 0xd7, 0x6f, 0x48, 0xef, + 0x30, 0x77, 0xf0, 0x29, 0x28, 0xd6, 0x28, 0xd0, 0x39, 0x28, 0xfb, 0xed, 0x40, 0x28, 0x87, 0xc3, + 0x07, 0xfb, 0xb3, 0xe5, 0x6b, 0xed, 0x00, 0x53, 0x98, 0x16, 0xff, 0x53, 0xee, 0x3b, 0xfe, 0xa7, + 0x77, 0xfc, 0xeb, 0xff, 0x5f, 0x86, 0xa9, 0x15, 0x9f, 0xdc, 0x35, 0x5a, 0xfd, 0x18, 0x0c, 0xb9, + 0x91, 0xb7, 0x4b, 0xa2, 0xec, 0x26, 0x5d, 0x63, 0x50, 0x2c, 0xb0, 0x7d, 0x87, 0x24, 0xdd, 0xea, + 0xdc, 0x6e, 0x8f, 0x3b, 0x08, 0xab, 0xe7, 0x97, 0xa2, 0xb7, 0x60, 0x98, 0x9f, 0x84, 0xc6, 0xd5, + 0x41, 0x36, 0xed, 0x9e, 0xcd, 0x6b, 0x42, 0xb6, 0x2f, 0xe6, 0x84, 0x6f, 0x83, 0x87, 0x85, 0x28, + 0x19, 0x25, 0xa0, 0x58, 0xb2, 0x9c, 0xf9, 0x14, 0x8c, 0xe9, 0x94, 0x47, 0x8a, 0x0f, 0xf9, 0x0b, + 0x16, 0x9c, 0x5a, 0xf1, 0xc3, 0xe6, 0x76, 0x26, 0x3e, 0xec, 0x05, 0x18, 0xa5, 0xcb, 0x25, 0x36, + 0x02, 0x25, 0x8d, 0x20, 0x52, 0x81, 0xc2, 0x3a, 0x9d, 0x56, 0xec, 0xd6, 0xad, 0xd5, 0x5a, 0x5e, + 0xec, 0xa9, 0x40, 0x61, 0x9d, 0xce, 0xfe, 0x43, 0x0b, 0x1e, 0xbe, 0xbc, 0xb4, 0x5c, 0x27, 0x51, + 0xec, 0xc5, 0x09, 0x09, 0x92, 0x8e, 0xf0, 0x57, 0xaa, 0xbb, 0xb9, 0x5a, 0x53, 0x52, 0xdd, 0xad, + 0xc6, 0x5a, 0x21, 0xb0, 0x1f, 0x96, 0xd0, 0xee, 0x5f, 0xb7, 0xe0, 0xd4, 0x65, 0x2f, 0xc1, 0xa4, + 0x15, 0x66, 0xc3, 0x4f, 0x23, 0xd2, 0x0a, 0x63, 0x2f, 0x09, 0xa3, 0xbd, 0x6c, 0xf8, 0x29, 0x56, + 0x18, 0xac, 0x51, 0xf1, 0x9a, 0x77, 0xbd, 0x98, 0xb6, 0xb4, 0x64, 0x1a, 0x90, 0x58, 0xc0, 0xb1, + 0xa2, 0xa0, 0x1f, 0xe6, 0x7a, 0x11, 0x53, 0x00, 0xf6, 0xc4, 0x6a, 0x55, 0x1f, 0x56, 0x93, 0x08, + 0x9c, 0xd2, 0xd8, 0x5f, 0xb3, 0xe0, 0xcc, 0x65, 0xbf, 0x1d, 0x27, 0x24, 0xda, 0x88, 0x8d, 0xc6, + 0x3e, 0x07, 0x15, 0x22, 0x95, 0x6c, 0xd1, 0x56, 0xb5, 0x2d, 0x28, 0xed, 0x9b, 0xc7, 0xbe, 0x2a, + 0xba, 0x3e, 0x82, 0x2d, 0x8f, 0x16, 0x24, 0xf8, 0xcd, 0x12, 0x8c, 0x5f, 0x59, 0x5b, 0xab, 0x5f, + 0x26, 0x89, 0x90, 0x88, 0xbd, 0x9d, 0x44, 0x58, 0xb3, 0x73, 0xbb, 0xa9, 0x32, 0xed, 0xc4, 0xf3, + 0xe7, 0xf8, 0xb5, 0x83, 0xb9, 0xd5, 0x20, 0xb9, 0x19, 0x35, 0x92, 0xc8, 0x0b, 0x36, 0x73, 0x2d, + 0x63, 0x29, 0xb7, 0xcb, 0x45, 0x72, 0x1b, 0x3d, 0x07, 0x43, 0xec, 0xde, 0x83, 0x54, 0x2a, 0x1e, + 0x54, 0x9a, 0x00, 0x83, 0x1e, 0xee, 0xcf, 0x56, 0x6e, 0xe1, 0x55, 0xfe, 0x07, 0x0b, 0x52, 0x74, + 0x0b, 0x46, 0xb7, 0x92, 0xa4, 0x75, 0x85, 0x38, 0x2e, 0x89, 0xa4, 0x74, 0x38, 0x9f, 0x27, 0x1d, + 0x68, 0x27, 0x70, 0xb2, 0x74, 0x41, 0xa5, 0xb0, 0x18, 0xeb, 0x7c, 0xec, 0x06, 0x40, 0x8a, 0x3b, + 0x26, 0xab, 0xc0, 0xfe, 0xa1, 0x05, 0xc3, 0x57, 0x9c, 0xc0, 0xf5, 0x49, 0x84, 0x5e, 0x86, 0x01, + 0x72, 0x97, 0x34, 0xc5, 0x06, 0x9d, 0xdb, 0xe0, 0x74, 0x13, 0xe3, 0x7e, 0x2e, 0xfa, 0x1f, 0xb3, + 0x52, 0xe8, 0x0a, 0x0c, 0xd3, 0xd6, 0x5e, 0x56, 0x51, 0xc8, 0x8f, 0x14, 0x7d, 0xb1, 0x1a, 0x76, + 0xbe, 0xef, 0x09, 0x10, 0x96, 0xc5, 0x99, 0xbf, 0xa6, 0xd9, 0x6a, 0x50, 0x01, 0x96, 0x74, 0xb3, + 0xa6, 0xd6, 0x96, 0xea, 0x9c, 0x48, 0x70, 0xe3, 0xfe, 0x1a, 0x09, 0xc4, 0x29, 0x13, 0x7b, 0x0d, + 0x2a, 0x74, 0x50, 0x17, 0x7c, 0xcf, 0xe9, 0xee, 0x2a, 0x7a, 0x0a, 0x2a, 0xd2, 0x6d, 0x13, 0x8b, + 0x40, 0x66, 0xc6, 0x55, 0x7a, 0x75, 0x62, 0x9c, 0xe2, 0xed, 0x17, 0xe1, 0x34, 0x3b, 0x07, 0x75, + 0x92, 0x2d, 0x63, 0x8d, 0xf5, 0x9c, 0xcc, 0xf6, 0x37, 0x06, 0x60, 0x7a, 0xb5, 0xb1, 0xd4, 0x30, + 0xbd, 0x81, 0x2f, 0xc2, 0x18, 0xdf, 0xba, 0xe9, 0x14, 0x75, 0x7c, 0x51, 0x5e, 0x79, 0xfb, 0xd7, + 0x34, 0x1c, 0x36, 0x28, 0xd1, 0xc3, 0x50, 0xf6, 0xde, 0x0d, 0xb2, 0xf1, 0x6b, 0xab, 0xaf, 0xdd, + 0xc0, 0x14, 0x4e, 0xd1, 0x54, 0x0b, 0xe0, 0x22, 0x51, 0xa1, 0x95, 0x26, 0xf0, 0x0a, 0x4c, 0x78, + 0x71, 0x33, 0xf6, 0x56, 0x03, 0x2a, 0x2f, 0x9c, 0xa6, 0x9c, 0xec, 0xa9, 0x8a, 0x4e, 0x9b, 0xaa, + 0xb0, 0x38, 0x43, 0xad, 0xc9, 0xe7, 0xc1, 0xbe, 0x35, 0x89, 0x9e, 0x41, 0xce, 0x54, 0x49, 0x6a, + 0xb1, 0xaf, 0x8b, 0x59, 0x2c, 0x8d, 0x50, 0x92, 0xf8, 0x07, 0xc7, 0x58, 0xe2, 0xd0, 0x65, 0x98, + 0x6e, 0x6e, 0x39, 0xad, 0x85, 0x76, 0xb2, 0x55, 0xf3, 0xe2, 0x66, 0xb8, 0x4b, 0xa2, 0x3d, 0xa6, + 0xba, 0x8e, 0xa4, 0x5e, 0x21, 0x85, 0x58, 0xba, 0xb2, 0x50, 0xa7, 0x94, 0xb8, 0xb3, 0x8c, 0xa9, + 0x54, 0xc0, 0xb1, 0x29, 0x15, 0x0b, 0x30, 0x29, 0xeb, 0x6a, 0x90, 0x98, 0x09, 0xfc, 0x51, 0xd6, + 0x3a, 0x75, 0x81, 0x44, 0x80, 0x55, 0xdb, 0xb2, 0xf4, 0xf6, 0x3b, 0x50, 0x51, 0x71, 0x5e, 0x32, + 0x54, 0xd1, 0x2a, 0x08, 0x55, 0xec, 0x2d, 0xaa, 0xa5, 0xb7, 0xba, 0x9c, 0xeb, 0xad, 0xfe, 0x1b, + 0x16, 0xa4, 0xe1, 0x2e, 0xe8, 0x0a, 0x54, 0x5a, 0x21, 0x3b, 0xb1, 0x8a, 0xe4, 0x31, 0xf0, 0x83, + 0xb9, 0xab, 0x9a, 0x4b, 0x10, 0xde, 0x0d, 0x75, 0x59, 0x02, 0xa7, 0x85, 0xd1, 0x22, 0x0c, 0xb7, + 0x22, 0xd2, 0x48, 0xd8, 0xfd, 0x80, 0x9e, 0x7c, 0xf8, 0x50, 0x73, 0x7a, 0x2c, 0x0b, 0xda, 0xbf, + 0x65, 0x01, 0x70, 0x67, 0xb0, 0x13, 0x6c, 0x92, 0x13, 0x30, 0x70, 0x6b, 0x30, 0x10, 0xb7, 0x48, + 0xb3, 0xdb, 0x59, 0x62, 0xda, 0x9e, 0x46, 0x8b, 0x34, 0xd3, 0x0e, 0xa7, 0xff, 0x30, 0x2b, 0x6d, + 0xff, 0x3c, 0xc0, 0x44, 0x4a, 0x46, 0x0d, 0x0f, 0xf4, 0x8c, 0x11, 0x0e, 0x7f, 0x2e, 0x13, 0x0e, + 0x5f, 0x61, 0xd4, 0x5a, 0x04, 0xfc, 0x3b, 0x50, 0xde, 0x71, 0xee, 0x0a, 0xeb, 0xe6, 0xa9, 0xee, + 0xcd, 0xa0, 0xfc, 0xe7, 0xae, 0x3b, 0x77, 0xb9, 0x82, 0xf9, 0x94, 0x9c, 0x20, 0xd7, 0x9d, 0xbb, + 0x87, 0xfc, 0xc4, 0x90, 0xc9, 0x1a, 0x6a, 0x44, 0x7d, 0xf1, 0x4f, 0xd2, 0xff, 0x6c, 0xdb, 0xa0, + 0x95, 0xb0, 0xba, 0xbc, 0x40, 0xb8, 0x46, 0xfb, 0xaa, 0xcb, 0x0b, 0xb2, 0x75, 0x79, 0x41, 0x1f, + 0x75, 0x79, 0x01, 0x7a, 0x0f, 0x86, 0xc5, 0x51, 0x04, 0x8b, 0xe3, 0x1b, 0xbd, 0x34, 0xdf, 0x47, + 0x7d, 0xe2, 0x24, 0x83, 0xd7, 0x39, 0x2f, 0x15, 0x68, 0x01, 0xed, 0x59, 0xaf, 0xac, 0x10, 0xfd, + 0x35, 0x0b, 0x26, 0xc4, 0x6f, 0x4c, 0xde, 0x6d, 0x93, 0x38, 0x11, 0x1b, 0xf5, 0xc7, 0xfb, 0x6f, + 0x83, 0x28, 0xc8, 0x9b, 0xf2, 0x71, 0x29, 0x2d, 0x4d, 0x64, 0xcf, 0x16, 0x65, 0x5a, 0x81, 0xfe, + 0xa1, 0x05, 0xa7, 0x77, 0x9c, 0xbb, 0xbc, 0x46, 0x0e, 0xc3, 0x4e, 0xe2, 0x85, 0x22, 0x2e, 0xf1, + 0xe5, 0xfe, 0x86, 0xbf, 0xa3, 0x38, 0x6f, 0xa4, 0x0c, 0x61, 0x3a, 0x9d, 0x47, 0xd2, 0xb3, 0xa9, + 0xb9, 0xed, 0x9a, 0xd9, 0x80, 0x11, 0x39, 0xdf, 0x72, 0xcc, 0x94, 0x9a, 0xae, 0x85, 0x1c, 0xf9, + 0x24, 0x48, 0x33, 0x6b, 0x58, 0x3d, 0x62, 0xae, 0xdd, 0xd7, 0x7a, 0xde, 0x81, 0x31, 0x7d, 0x8e, + 0xdd, 0xd7, 0xba, 0xde, 0x85, 0x53, 0x39, 0x73, 0xe9, 0xbe, 0x56, 0x79, 0x07, 0xce, 0x15, 0xce, + 0x8f, 0xfb, 0x59, 0xb1, 0xfd, 0x4d, 0x4b, 0x97, 0x83, 0x27, 0xe0, 0x16, 0x5a, 0x32, 0xdd, 0x42, + 0xe7, 0xbb, 0xaf, 0x9c, 0x02, 0xdf, 0xd0, 0x5b, 0x7a, 0xa3, 0xa9, 0x54, 0x47, 0xaf, 0xc2, 0x90, + 0x4f, 0x21, 0xf2, 0xfc, 0xcb, 0xee, 0xbd, 0x22, 0x53, 0x95, 0x88, 0xc1, 0x63, 0x2c, 0x38, 0xd8, + 0xbf, 0x6b, 0xc1, 0xc0, 0x09, 0xf4, 0x04, 0x36, 0x7b, 0xe2, 0x99, 0x42, 0xd6, 0xe2, 0xb2, 0xf7, + 0x1c, 0x76, 0xee, 0x2c, 0xdf, 0x4d, 0x48, 0x10, 0x33, 0xbd, 0x3a, 0xb7, 0x63, 0xfe, 0x77, 0x09, + 0x46, 0x69, 0x55, 0x32, 0x58, 0xe3, 0x25, 0x18, 0xf7, 0x9d, 0x75, 0xe2, 0x4b, 0x57, 0x75, 0xd6, + 0xba, 0xbc, 0xa6, 0x23, 0xb1, 0x49, 0x4b, 0x0b, 0x6f, 0xe8, 0x5e, 0x7b, 0xa1, 0xbf, 0xa8, 0xc2, + 0x86, 0x4b, 0x1f, 0x9b, 0xb4, 0xd4, 0xd0, 0xb9, 0xe3, 0x24, 0xcd, 0x2d, 0x61, 0x79, 0xaa, 0xe6, + 0xbe, 0x4e, 0x81, 0x98, 0xe3, 0xa8, 0x1e, 0x26, 0x67, 0xe7, 0x6d, 0x12, 0x31, 0x3d, 0x8c, 0x6b, + 0xb9, 0x4a, 0x0f, 0xc3, 0x26, 0x1a, 0x67, 0xe9, 0xd1, 0xa7, 0x60, 0x82, 0x76, 0x4e, 0xd8, 0x4e, + 0x64, 0x28, 0xca, 0x20, 0x0b, 0x45, 0x61, 0x91, 0xc7, 0x6b, 0x06, 0x06, 0x67, 0x28, 0x51, 0x1d, + 0x4e, 0x7b, 0x41, 0xd3, 0x6f, 0xbb, 0xe4, 0x56, 0xe0, 0x05, 0x5e, 0xe2, 0x39, 0xbe, 0xf7, 0x1e, + 0x71, 0x85, 0x1e, 0xac, 0xa2, 0x86, 0x56, 0x73, 0x68, 0x70, 0x6e, 0x49, 0xfb, 0x67, 0xe1, 0xd4, + 0xb5, 0xd0, 0x71, 0x17, 0x1d, 0xdf, 0x09, 0x9a, 0x24, 0x5a, 0x0d, 0x36, 0x7b, 0x1e, 0x84, 0xeb, + 0xc7, 0xd6, 0xa5, 0x5e, 0xc7, 0xd6, 0xf6, 0x16, 0x20, 0xbd, 0x02, 0x11, 0x82, 0x85, 0x61, 0xd8, + 0xe3, 0x55, 0x89, 0xe9, 0xff, 0x78, 0xbe, 0x92, 0xdc, 0xd1, 0x32, 0x2d, 0xb8, 0x88, 0x03, 0xb0, + 0x64, 0x44, 0x0d, 0xa9, 0x3c, 0xad, 0xba, 0xb7, 0x8d, 0x6b, 0xbf, 0x00, 0xd3, 0xac, 0xe4, 0x11, + 0xed, 0xaf, 0xbf, 0x6c, 0xc1, 0xe4, 0x8d, 0xcc, 0xdd, 0xd3, 0xc7, 0x60, 0x28, 0x26, 0x51, 0x8e, + 0x93, 0xb2, 0xc1, 0xa0, 0x58, 0x60, 0x8f, 0xdd, 0x19, 0xf2, 0x23, 0x0b, 0x2a, 0x2c, 0xb6, 0xb7, + 0x45, 0x6d, 0xa9, 0xfb, 0xaf, 0xd4, 0x2e, 0x19, 0x4a, 0x6d, 0xae, 0x91, 0xae, 0x9a, 0x53, 0xa4, + 0xd3, 0xa2, 0xab, 0xea, 0x4e, 0x66, 0x17, 0xfb, 0x3c, 0x65, 0xc3, 0x6f, 0xf0, 0x4d, 0x98, 0x17, + 0x37, 0xe5, 0x2d, 0x4d, 0x76, 0x12, 0xad, 0x68, 0x3f, 0x24, 0x27, 0xd1, 0xaa, 0x3d, 0x05, 0xd2, + 0xaf, 0xae, 0x35, 0x99, 0xed, 0x0a, 0x9f, 0x61, 0x11, 0x9b, 0x6c, 0x6d, 0xaa, 0xcb, 0xcb, 0xb3, + 0x22, 0x02, 0x53, 0x40, 0x0f, 0x99, 0x20, 0x13, 0xff, 0xf8, 0x8d, 0xf4, 0xb4, 0x88, 0x7d, 0x05, + 0x26, 0x33, 0x1d, 0x86, 0x5e, 0x80, 0xc1, 0xd6, 0x96, 0x13, 0x93, 0x4c, 0x04, 0xce, 0x60, 0x9d, + 0x02, 0x0f, 0xf7, 0x67, 0x27, 0x54, 0x01, 0x06, 0xc1, 0x9c, 0xda, 0xfe, 0x6f, 0x16, 0x0c, 0xdc, + 0x08, 0xdd, 0x93, 0x98, 0x4c, 0xaf, 0x18, 0x93, 0xe9, 0xa1, 0xa2, 0xcc, 0x16, 0x85, 0xf3, 0x68, + 0x25, 0x33, 0x8f, 0xce, 0x17, 0x72, 0xe8, 0x3e, 0x85, 0x76, 0x60, 0x94, 0xe5, 0xcb, 0x10, 0xd1, + 0x40, 0xcf, 0x19, 0xf6, 0xd5, 0x6c, 0xc6, 0xbe, 0x9a, 0xd4, 0x48, 0x35, 0x2b, 0xeb, 0x09, 0x18, + 0x16, 0x11, 0x29, 0xd9, 0xd8, 0x54, 0x41, 0x8b, 0x25, 0xde, 0xfe, 0xd5, 0x32, 0x18, 0xf9, 0x39, + 0xd0, 0xef, 0x5b, 0x30, 0x17, 0xf1, 0xdb, 0x38, 0x6e, 0xad, 0x1d, 0x79, 0xc1, 0x66, 0xa3, 0xb9, + 0x45, 0xdc, 0xb6, 0xef, 0x05, 0x9b, 0xab, 0x9b, 0x41, 0xa8, 0xc0, 0xcb, 0x77, 0x49, 0xb3, 0xcd, + 0x1c, 0xd4, 0x3d, 0x92, 0x81, 0xa8, 0x13, 0xdf, 0x4b, 0x07, 0xfb, 0xb3, 0x73, 0xf8, 0x48, 0xbc, + 0xf1, 0x11, 0xdb, 0x82, 0xfe, 0xd0, 0x82, 0x79, 0x9e, 0xb6, 0xa2, 0xff, 0xf6, 0x77, 0xb1, 0x46, + 0xeb, 0x92, 0x55, 0xca, 0x64, 0x8d, 0x44, 0x3b, 0x8b, 0x9f, 0x10, 0x1d, 0x3a, 0x5f, 0x3f, 0x5a, + 0x5d, 0xf8, 0xa8, 0x8d, 0xb3, 0xff, 0x79, 0x19, 0xc6, 0x69, 0x2f, 0xa6, 0x37, 0xd0, 0x5f, 0x30, + 0xa6, 0xc4, 0x23, 0x99, 0x29, 0x31, 0x6d, 0x10, 0x1f, 0xcf, 0xe5, 0xf3, 0x18, 0xa6, 0x7d, 0x27, + 0x4e, 0xae, 0x10, 0x27, 0x4a, 0xd6, 0x89, 0xc3, 0x8e, 0x58, 0xc5, 0x34, 0x3f, 0xca, 0xa9, 0xad, + 0xf2, 0x62, 0x5d, 0xcb, 0x32, 0xc3, 0x9d, 0xfc, 0xd1, 0x2e, 0x20, 0x76, 0x9c, 0x1b, 0x39, 0x41, + 0xcc, 0xbf, 0xc5, 0x13, 0xce, 0xeb, 0xa3, 0xd5, 0x3a, 0x23, 0x6a, 0x45, 0xd7, 0x3a, 0xb8, 0xe1, + 0x9c, 0x1a, 0xb4, 0x63, 0xfa, 0xc1, 0x7e, 0x8f, 0xe9, 0x87, 0x7a, 0x04, 0x80, 0xef, 0xc0, 0x94, + 0x18, 0x95, 0x0d, 0x6f, 0x53, 0x6c, 0xd2, 0x6f, 0x64, 0xc2, 0x78, 0xac, 0xfe, 0x03, 0x0e, 0x7a, + 0xc4, 0xf0, 0xd8, 0x3f, 0x07, 0xa7, 0x68, 0x75, 0x66, 0xb8, 0x72, 0x8c, 0x08, 0x4c, 0x6e, 0xb7, + 0xd7, 0x89, 0x4f, 0x12, 0x09, 0x13, 0x95, 0xe6, 0xaa, 0xfd, 0x66, 0xe9, 0x54, 0xb7, 0xbc, 0x6a, + 0xb2, 0xc0, 0x59, 0x9e, 0xf6, 0xaf, 0x59, 0xc0, 0x02, 0x02, 0x4f, 0x60, 0xfb, 0xfb, 0xb4, 0xb9, + 0xfd, 0x55, 0x8b, 0x24, 0x50, 0xc1, 0xce, 0xf7, 0x3c, 0x1f, 0x96, 0x7a, 0x14, 0xde, 0xdd, 0x93, + 0xba, 0x7f, 0x6f, 0x8d, 0xeb, 0x7f, 0x59, 0x7c, 0x41, 0xaa, 0xcb, 0x89, 0xe8, 0x0b, 0x30, 0xd2, + 0x74, 0x5a, 0x4e, 0x93, 0x27, 0x46, 0x2a, 0xf4, 0xfe, 0x18, 0x85, 0xe6, 0x96, 0x44, 0x09, 0xee, + 0xcd, 0xf8, 0x29, 0xf9, 0x95, 0x12, 0xdc, 0xd3, 0x83, 0xa1, 0xaa, 0x9c, 0xd9, 0x86, 0x71, 0x83, + 0xd9, 0x7d, 0x35, 0x7d, 0xbf, 0xc0, 0xb7, 0x0b, 0x65, 0xb1, 0xec, 0xc0, 0x74, 0xa0, 0xfd, 0xa7, + 0xc2, 0x51, 0xaa, 0xd3, 0x1f, 0xed, 0xb5, 0x21, 0x30, 0x49, 0xaa, 0x05, 0x3c, 0x66, 0xd8, 0xe0, + 0x4e, 0xce, 0xf6, 0xdf, 0xb2, 0xe0, 0x01, 0x9d, 0x50, 0xbb, 0x37, 0xda, 0xcb, 0x9f, 0x5c, 0x83, + 0x91, 0xb0, 0x45, 0x22, 0x27, 0xb5, 0xc9, 0x2e, 0xca, 0x4e, 0xbf, 0x29, 0xe0, 0x87, 0xfb, 0xb3, + 0xa7, 0x75, 0xee, 0x12, 0x8e, 0x55, 0x49, 0x64, 0xc3, 0x10, 0xeb, 0x8c, 0x58, 0xdc, 0xe9, 0x65, + 0xc9, 0x83, 0xd8, 0x39, 0x54, 0x8c, 0x05, 0xc6, 0xfe, 0x79, 0x8b, 0x4f, 0x2c, 0xbd, 0xe9, 0xe8, + 0x5d, 0x98, 0xda, 0xa1, 0xe6, 0xdb, 0xf2, 0xdd, 0x56, 0xc4, 0xbd, 0xe1, 0xb2, 0x9f, 0x9e, 0xea, + 0xd5, 0x4f, 0xda, 0x47, 0x2e, 0x56, 0x45, 0x9b, 0xa7, 0xae, 0x67, 0x98, 0xe1, 0x0e, 0xf6, 0xf6, + 0x9f, 0x95, 0xf8, 0x4a, 0x64, 0x5a, 0xdd, 0x13, 0x30, 0xdc, 0x0a, 0xdd, 0xa5, 0xd5, 0x1a, 0x16, + 0x3d, 0xa4, 0xc4, 0x55, 0x9d, 0x83, 0xb1, 0xc4, 0xa3, 0x4b, 0x00, 0xe4, 0x6e, 0x42, 0xa2, 0xc0, + 0xf1, 0xd5, 0x29, 0xb9, 0x52, 0x9e, 0x96, 0x15, 0x06, 0x6b, 0x54, 0xb4, 0x4c, 0x2b, 0x0a, 0x77, + 0x3d, 0x97, 0x5d, 0xaa, 0x28, 0x9b, 0x65, 0xea, 0x0a, 0x83, 0x35, 0x2a, 0x6a, 0x2a, 0xb7, 0x83, + 0x98, 0x6f, 0x80, 0xce, 0xba, 0x48, 0x5c, 0x33, 0x92, 0x9a, 0xca, 0xb7, 0x74, 0x24, 0x36, 0x69, + 0xd1, 0x02, 0x0c, 0x25, 0x0e, 0x3b, 0xfb, 0x1d, 0x2c, 0x0e, 0x95, 0x59, 0xa3, 0x14, 0x7a, 0x7e, + 0x20, 0x5a, 0x00, 0x8b, 0x82, 0xe8, 0x4d, 0x29, 0x82, 0xb9, 0x48, 0x16, 0x21, 0x4f, 0x85, 0xd3, + 0x56, 0x17, 0xdf, 0xba, 0x0c, 0x16, 0xa1, 0x54, 0x06, 0x2f, 0xfb, 0x4b, 0x15, 0x80, 0x54, 0xdb, + 0x43, 0xef, 0x75, 0x88, 0x88, 0xa7, 0xbb, 0xeb, 0x87, 0xc7, 0x27, 0x1f, 0xd0, 0x97, 0x2d, 0x18, + 0x75, 0x7c, 0x3f, 0x6c, 0x3a, 0x09, 0xeb, 0xe5, 0x52, 0x77, 0x11, 0x25, 0xea, 0x5f, 0x48, 0x4b, + 0xf0, 0x26, 0x3c, 0x27, 0x8f, 0x75, 0x35, 0x4c, 0xcf, 0x56, 0xe8, 0x15, 0xa3, 0x9f, 0x92, 0x46, + 0x00, 0x9f, 0x1e, 0x33, 0x59, 0x23, 0xa0, 0xc2, 0xa4, 0xb1, 0xa6, 0xff, 0xa3, 0x5b, 0x46, 0xbe, + 0x98, 0x81, 0xe2, 0xab, 0xb1, 0x86, 0xd2, 0xd3, 0x2b, 0x55, 0x0c, 0xaa, 0xeb, 0xa1, 0xdf, 0x83, + 0xc5, 0xf7, 0xc7, 0x35, 0xed, 0xba, 0x47, 0xd8, 0xf7, 0x3b, 0x30, 0xe9, 0x9a, 0xdb, 0xad, 0x98, + 0x4d, 0x8f, 0x17, 0xf1, 0xcd, 0xec, 0xce, 0xe9, 0x06, 0x9b, 0x41, 0xe0, 0x2c, 0x63, 0x54, 0xe7, + 0x41, 0xf8, 0xab, 0xc1, 0x46, 0x28, 0x42, 0xe7, 0xec, 0xc2, 0xb1, 0xdc, 0x8b, 0x13, 0xb2, 0x43, + 0x29, 0xd3, 0x7d, 0xf4, 0x86, 0x28, 0x8b, 0x15, 0x17, 0xf4, 0x2a, 0x0c, 0xb1, 0xdb, 0x51, 0x71, + 0x75, 0xa4, 0xd8, 0x0f, 0x68, 0x5e, 0xec, 0x4d, 0x17, 0x15, 0xfb, 0x1b, 0x63, 0xc1, 0x01, 0x5d, + 0x91, 0xd7, 0xf3, 0xe3, 0xd5, 0xe0, 0x56, 0x4c, 0xd8, 0xf5, 0xfc, 0xca, 0xe2, 0x47, 0xd3, 0x9b, + 0xf7, 0x1c, 0x9e, 0x9b, 0x13, 0xcf, 0x28, 0x49, 0xf5, 0x15, 0xf1, 0x5f, 0xa6, 0xda, 0xab, 0x42, + 0x71, 0xf3, 0xcc, 0x74, 0x7c, 0x69, 0x77, 0xde, 0x36, 0x59, 0xe0, 0x2c, 0xcf, 0x13, 0xdd, 0x3e, + 0x67, 0x02, 0x98, 0xca, 0x2e, 0xac, 0xfb, 0xba, 0x5d, 0xff, 0x70, 0x00, 0x26, 0xcc, 0x89, 0x80, + 0xe6, 0xa1, 0x22, 0x98, 0xa8, 0xe4, 0x5a, 0x6a, 0x6e, 0x5f, 0x97, 0x08, 0x9c, 0xd2, 0xb0, 0xe4, + 0x62, 0xac, 0xb8, 0x16, 0x34, 0x95, 0x26, 0x17, 0x53, 0x18, 0xac, 0x51, 0x51, 0x25, 0x7a, 0x3d, + 0x0c, 0x13, 0xb5, 0x15, 0xa8, 0xd9, 0xb2, 0xc8, 0xa0, 0x58, 0x60, 0xe9, 0x16, 0xb0, 0x4d, 0xa2, + 0x80, 0xf8, 0xa6, 0x27, 0x53, 0x6d, 0x01, 0x57, 0x75, 0x24, 0x36, 0x69, 0xe9, 0x96, 0x16, 0xc6, + 0x6c, 0xfa, 0x09, 0x55, 0x3d, 0x0d, 0x42, 0x6b, 0xf0, 0xdb, 0x81, 0x12, 0x8f, 0xde, 0x80, 0x07, + 0xd4, 0x65, 0x3e, 0xcc, 0x3d, 0xc3, 0xb2, 0xc6, 0x21, 0xc3, 0xb2, 0x7e, 0x60, 0x29, 0x9f, 0x0c, + 0x17, 0x95, 0x47, 0xaf, 0xc0, 0x84, 0x50, 0x81, 0x25, 0xc7, 0x61, 0x33, 0xe6, 0xe0, 0xaa, 0x81, + 0xc5, 0x19, 0x6a, 0x54, 0x83, 0x29, 0x0a, 0x61, 0x5a, 0xa8, 0xe4, 0xc0, 0x2f, 0x25, 0xaa, 0xbd, + 0xfe, 0x6a, 0x06, 0x8f, 0x3b, 0x4a, 0xa0, 0x05, 0x98, 0xe4, 0x3a, 0x0a, 0xb5, 0x29, 0xd9, 0x38, + 0x88, 0x88, 0x56, 0xb5, 0x10, 0x6e, 0x9a, 0x68, 0x9c, 0xa5, 0x47, 0x2f, 0xc2, 0x98, 0x13, 0x35, + 0xb7, 0xbc, 0x84, 0x34, 0x93, 0x76, 0xc4, 0x93, 0x5f, 0x68, 0x41, 0x1b, 0x0b, 0x1a, 0x0e, 0x1b, + 0x94, 0xf6, 0x7b, 0x70, 0x2a, 0x27, 0x18, 0x9e, 0x4e, 0x1c, 0xa7, 0xe5, 0xc9, 0x6f, 0xca, 0x84, + 0x93, 0x2d, 0xd4, 0x57, 0xe5, 0xd7, 0x68, 0x54, 0x74, 0x76, 0x32, 0x97, 0xb8, 0x96, 0x0f, 0x53, + 0xcd, 0xce, 0x15, 0x89, 0xc0, 0x29, 0x8d, 0xfd, 0x5d, 0x00, 0xcd, 0xa1, 0xd3, 0x47, 0x30, 0xd1, + 0x8b, 0x30, 0x26, 0x93, 0xb8, 0x6a, 0x29, 0x13, 0xd5, 0x67, 0x5e, 0xd6, 0x70, 0xd8, 0xa0, 0xa4, + 0x6d, 0x0b, 0xa4, 0x9b, 0x2a, 0x1b, 0xbc, 0xa6, 0xfc, 0x57, 0x38, 0xa5, 0x41, 0x4f, 0xc3, 0x48, + 0x4c, 0xfc, 0x8d, 0x6b, 0x5e, 0xb0, 0x2d, 0x26, 0xb6, 0x92, 0xc2, 0x0d, 0x01, 0xc7, 0x8a, 0x02, + 0x2d, 0x42, 0xb9, 0xed, 0xb9, 0x62, 0x2a, 0xcb, 0x0d, 0xbf, 0x7c, 0x6b, 0xb5, 0x76, 0xb8, 0x3f, + 0xfb, 0x48, 0x51, 0x6e, 0x5a, 0x6a, 0xda, 0xc7, 0x73, 0x74, 0xf9, 0xd1, 0xc2, 0x79, 0x67, 0x03, + 0x43, 0x47, 0x3c, 0x1b, 0xb8, 0x04, 0x20, 0xbe, 0x5a, 0xce, 0xe5, 0x72, 0x3a, 0x6a, 0x97, 0x15, + 0x06, 0x6b, 0x54, 0x28, 0x86, 0xe9, 0x66, 0x44, 0x1c, 0x69, 0x43, 0xf3, 0xb0, 0xee, 0x91, 0x7b, + 0x77, 0x10, 0x2c, 0x65, 0x99, 0xe1, 0x4e, 0xfe, 0x28, 0x84, 0x69, 0x57, 0xdc, 0x1d, 0x4d, 0x2b, + 0xad, 0x1c, 0x3d, 0x96, 0x9c, 0xc5, 0xd5, 0x64, 0x19, 0xe1, 0x4e, 0xde, 0xe8, 0x6d, 0x98, 0x91, + 0xc0, 0xce, 0xeb, 0xba, 0x6c, 0xb9, 0x94, 0x17, 0xcf, 0x1f, 0xec, 0xcf, 0xce, 0xd4, 0x0a, 0xa9, + 0x70, 0x17, 0x0e, 0x08, 0xc3, 0x10, 0x3b, 0x4b, 0x8a, 0xab, 0xa3, 0x6c, 0x9f, 0x7b, 0xb2, 0xd8, + 0x19, 0x40, 0xe7, 0xfa, 0x1c, 0x3b, 0x87, 0x12, 0xf1, 0xb7, 0xe9, 0xb1, 0x1c, 0x03, 0x62, 0xc1, + 0x09, 0x6d, 0xc0, 0xa8, 0x13, 0x04, 0x61, 0xe2, 0x70, 0x15, 0x6a, 0xac, 0x58, 0xf7, 0xd3, 0x18, + 0x2f, 0xa4, 0x25, 0x38, 0x77, 0x15, 0xd2, 0xa7, 0x61, 0xb0, 0xce, 0x18, 0xdd, 0x81, 0xc9, 0xf0, + 0x0e, 0x15, 0x8e, 0xd2, 0x4b, 0x11, 0x57, 0xc7, 0x59, 0x5d, 0xcf, 0xf7, 0xe9, 0xa7, 0x35, 0x0a, + 0x6b, 0x52, 0xcb, 0x64, 0x8a, 0xb3, 0xb5, 0xa0, 0x39, 0xc3, 0x5b, 0x3d, 0x91, 0xc6, 0x91, 0xa7, + 0xde, 0x6a, 0xdd, 0x39, 0xcd, 0xae, 0x7f, 0xf3, 0x78, 0x52, 0xb6, 0xfa, 0x27, 0x33, 0xd7, 0xbf, + 0x53, 0x14, 0xd6, 0xe9, 0xd0, 0x16, 0x8c, 0xa5, 0x47, 0x56, 0x51, 0xcc, 0xb2, 0xc3, 0x8c, 0x5e, + 0xba, 0xd4, 0xdf, 0xc7, 0xad, 0x6a, 0x25, 0xb9, 0xe5, 0xa0, 0x43, 0xb0, 0xc1, 0x79, 0xe6, 0x93, + 0x30, 0xaa, 0x0d, 0xec, 0x51, 0xc2, 0xa5, 0x67, 0x5e, 0x81, 0xa9, 0xec, 0xd0, 0x1d, 0x29, 0xdc, + 0xfa, 0x7f, 0x94, 0x60, 0x32, 0xe7, 0xe4, 0x8a, 0xe5, 0xb7, 0xcd, 0x08, 0xd4, 0x34, 0x9d, 0xad, + 0x29, 0x16, 0x4b, 0x7d, 0x88, 0x45, 0x29, 0xa3, 0xcb, 0x85, 0x32, 0x5a, 0x88, 0xc2, 0x81, 0xf7, + 0x23, 0x0a, 0xcd, 0xdd, 0x67, 0xb0, 0xaf, 0xdd, 0xe7, 0x18, 0xc4, 0xa7, 0xb1, 0x81, 0x0d, 0xf7, + 0xb1, 0x81, 0xfd, 0x52, 0x09, 0xa6, 0xd2, 0xd0, 0x72, 0x91, 0x4d, 0xfa, 0xfe, 0x9f, 0x77, 0xbc, + 0x6a, 0x9c, 0x77, 0xe4, 0x67, 0x8b, 0xce, 0xb4, 0xaa, 0xf0, 0xec, 0x03, 0x67, 0xce, 0x3e, 0x9e, + 0xec, 0x8b, 0x5b, 0xf7, 0x73, 0x90, 0xbf, 0x5d, 0x82, 0x33, 0xd9, 0x22, 0x4b, 0xbe, 0xe3, 0xed, + 0x9c, 0x40, 0xdf, 0xdc, 0x34, 0xfa, 0xe6, 0x99, 0x7e, 0xbe, 0x86, 0x35, 0xad, 0xb0, 0x83, 0x5e, + 0xcf, 0x74, 0xd0, 0x7c, 0xff, 0x2c, 0xbb, 0xf7, 0xd2, 0x77, 0x2d, 0x38, 0x97, 0x5b, 0xee, 0x04, + 0xbc, 0xaf, 0x37, 0x4c, 0xef, 0xeb, 0x13, 0x7d, 0x7f, 0x53, 0x81, 0x3b, 0xf6, 0x6b, 0xe5, 0x82, + 0x6f, 0x61, 0xfe, 0xab, 0x9b, 0x30, 0xea, 0x34, 0x9b, 0x24, 0x8e, 0xaf, 0x87, 0xae, 0x4a, 0x27, + 0xf5, 0x0c, 0xdb, 0x93, 0x52, 0xf0, 0xe1, 0xfe, 0xec, 0x4c, 0x96, 0x45, 0x8a, 0xc6, 0x3a, 0x07, + 0x33, 0x45, 0x5d, 0xe9, 0x58, 0x53, 0xd4, 0x5d, 0x02, 0xd8, 0x55, 0x56, 0x6d, 0xd6, 0x19, 0xa6, + 0xd9, 0xbb, 0x1a, 0x15, 0xfa, 0x19, 0xa6, 0x2b, 0xf2, 0x90, 0x11, 0x7e, 0xc8, 0xf1, 0x5c, 0x9f, + 0x63, 0xa5, 0x87, 0x9f, 0xf0, 0x0b, 0xa8, 0xca, 0x71, 0xa8, 0x58, 0xa2, 0xcf, 0xc2, 0x54, 0xcc, + 0x73, 0x1c, 0x2c, 0xf9, 0x4e, 0xcc, 0xee, 0x45, 0x08, 0x99, 0xc8, 0x6e, 0x95, 0x36, 0x32, 0x38, + 0xdc, 0x41, 0x6d, 0xff, 0xfd, 0x32, 0x3c, 0xd8, 0x65, 0x8a, 0xa2, 0x05, 0xf3, 0x88, 0xf7, 0xa9, + 0xac, 0x77, 0x67, 0x26, 0xb7, 0xb0, 0xe1, 0xee, 0xc9, 0x8c, 0x71, 0xe9, 0x7d, 0x8f, 0xf1, 0x57, + 0x2c, 0xcd, 0xef, 0xc6, 0x03, 0x41, 0x3f, 0x7d, 0xc4, 0xa5, 0xf7, 0xe3, 0xea, 0xa8, 0xff, 0xa2, + 0x05, 0x8f, 0xe4, 0x7e, 0x96, 0x11, 0x2a, 0x32, 0x0f, 0x95, 0x26, 0x05, 0x6a, 0x77, 0x97, 0xd2, + 0x0b, 0x82, 0x12, 0x81, 0x53, 0x1a, 0x23, 0x22, 0xa4, 0xd4, 0x33, 0x22, 0xe4, 0x9f, 0x5a, 0x70, + 0x3a, 0xdb, 0x88, 0x13, 0x90, 0x4c, 0xab, 0xa6, 0x64, 0xfa, 0x68, 0x3f, 0x43, 0x5e, 0x20, 0x94, + 0xfe, 0xdd, 0x04, 0x9c, 0xed, 0xd8, 0xb9, 0x78, 0xdf, 0xed, 0xc2, 0xf4, 0x26, 0x53, 0xe1, 0xb5, + 0x5b, 0x61, 0xe2, 0x63, 0x72, 0x2f, 0xd0, 0x75, 0xbd, 0x42, 0xc6, 0xcd, 0x90, 0x0e, 0x12, 0xdc, + 0x59, 0x05, 0xfa, 0xa2, 0x05, 0xa7, 0x9d, 0x3b, 0x71, 0xc7, 0x93, 0x23, 0x62, 0xce, 0x3c, 0x9f, + 0xeb, 0x1d, 0xeb, 0xf1, 0x44, 0xc9, 0x62, 0xf5, 0x60, 0x7f, 0xf6, 0x74, 0x1e, 0x15, 0xce, 0xad, + 0x0b, 0x61, 0x91, 0x51, 0x8f, 0x6a, 0x39, 0x5d, 0xee, 0x2d, 0xe6, 0xdd, 0x2a, 0xe1, 0x32, 0x4a, + 0x62, 0xb0, 0xe2, 0x83, 0x6e, 0x43, 0x65, 0x53, 0x5e, 0xf5, 0x12, 0x32, 0x30, 0x77, 0x53, 0xc9, + 0xbd, 0x0f, 0xc6, 0x23, 0xf6, 0x15, 0x0a, 0xa7, 0xac, 0xd0, 0x2b, 0x50, 0x0e, 0x36, 0x62, 0x71, + 0x45, 0x3a, 0x3f, 0xbe, 0xc7, 0x8c, 0xa0, 0xe2, 0xf7, 0x4b, 0x6f, 0xac, 0x34, 0x30, 0x2d, 0x48, + 0xcb, 0x47, 0xeb, 0xae, 0x70, 0xe8, 0xe6, 0x96, 0xc7, 0x8b, 0xb5, 0xce, 0xf2, 0x78, 0xb1, 0x86, + 0x69, 0x41, 0xb4, 0x02, 0x83, 0xec, 0x9e, 0x89, 0xf0, 0xd6, 0xe6, 0xde, 0x8f, 0xef, 0xb8, 0x43, + 0xc3, 0x53, 0x25, 0x32, 0x30, 0xe6, 0xc5, 0xd1, 0xab, 0x30, 0xd4, 0x64, 0xb9, 0xf2, 0x85, 0x69, + 0x9d, 0x9f, 0xf3, 0xa1, 0x23, 0x9b, 0x3e, 0x3f, 0xa3, 0xe2, 0x70, 0x2c, 0x38, 0x30, 0x5e, 0xa4, + 0xb5, 0xb5, 0x11, 0x0b, 0x8b, 0x39, 0x9f, 0x57, 0xc7, 0xbb, 0x06, 0x82, 0x17, 0x83, 0x63, 0xc1, + 0x01, 0x7d, 0x0a, 0x4a, 0x1b, 0x4d, 0x71, 0xd1, 0x24, 0xd7, 0x37, 0x6b, 0x5e, 0xfd, 0x5d, 0x1c, + 0x3a, 0xd8, 0x9f, 0x2d, 0xad, 0x2c, 0xe1, 0xd2, 0x46, 0x13, 0xdd, 0x80, 0xe1, 0x0d, 0x7e, 0xc1, + 0x53, 0xe4, 0x45, 0x7d, 0x3c, 0xff, 0xee, 0x69, 0xc7, 0x1d, 0x50, 0x7e, 0xb3, 0x42, 0x20, 0xb0, + 0x64, 0x82, 0xd6, 0x00, 0x36, 0xd4, 0x45, 0x55, 0x91, 0x18, 0xf5, 0xa3, 0xfd, 0x5c, 0x67, 0x15, + 0x46, 0xa3, 0x82, 0x62, 0x8d, 0x0f, 0x9d, 0x99, 0x8e, 0x7c, 0xb0, 0x83, 0x25, 0x45, 0x2d, 0x98, + 0x99, 0xb9, 0xaf, 0x7a, 0xf0, 0x99, 0xa9, 0x50, 0x38, 0x65, 0x85, 0xb6, 0x61, 0x7c, 0x37, 0x6e, + 0x6d, 0x11, 0xb9, 0x18, 0x59, 0x7e, 0x54, 0xd3, 0xac, 0x4c, 0x93, 0xd9, 0x0a, 0x42, 0x2f, 0x4a, + 0xda, 0x8e, 0xdf, 0x21, 0x3f, 0x58, 0x7e, 0xaf, 0xdb, 0x3a, 0x33, 0x6c, 0xf2, 0xa6, 0x5d, 0xfd, + 0x6e, 0x3b, 0x5c, 0xdf, 0x4b, 0x88, 0xc8, 0x9a, 0x9a, 0xdb, 0xd5, 0xaf, 0x71, 0x92, 0xce, 0xae, + 0x16, 0x08, 0x2c, 0x99, 0xa8, 0x4e, 0x61, 0x72, 0x6f, 0xaa, 0x47, 0xa7, 0x74, 0xb4, 0x37, 0xed, + 0x14, 0x26, 0xe7, 0x52, 0x56, 0x4c, 0xbe, 0xb5, 0xb6, 0xc2, 0x24, 0x0c, 0x32, 0xb2, 0x75, 0xba, + 0x58, 0xbe, 0xd5, 0x73, 0xe8, 0x3b, 0xe5, 0x5b, 0x1e, 0x15, 0xce, 0xad, 0x0b, 0xb9, 0x30, 0xd1, + 0x0a, 0xa3, 0xe4, 0x4e, 0x18, 0xc9, 0xb9, 0x84, 0xba, 0x18, 0x4a, 0x06, 0xa5, 0xa8, 0x91, 0xc5, + 0xd2, 0x9a, 0x18, 0x9c, 0xe1, 0x49, 0x87, 0x24, 0x6e, 0x3a, 0x3e, 0x59, 0xbd, 0x59, 0x3d, 0x55, + 0x3c, 0x24, 0x0d, 0x4e, 0xd2, 0x39, 0x24, 0x02, 0x81, 0x25, 0x13, 0x2a, 0x69, 0x58, 0x02, 0x6e, + 0x96, 0xe6, 0xb5, 0x40, 0xd2, 0x74, 0x44, 0x99, 0x72, 0x49, 0xc3, 0xc0, 0x98, 0x17, 0x47, 0x9f, + 0x87, 0x8a, 0xd0, 0xff, 0xc2, 0xb8, 0x7a, 0xa6, 0x43, 0x1b, 0x4d, 0x5b, 0xc6, 0x89, 0x6e, 0x36, + 0xf2, 0xb7, 0x48, 0x71, 0x99, 0x4c, 0x12, 0xe1, 0x94, 0xa9, 0xfd, 0xa5, 0xa1, 0x4e, 0xcd, 0x80, + 0xe9, 0xf9, 0x5f, 0xb2, 0x3a, 0x8e, 0x4a, 0x3f, 0xde, 0xaf, 0x71, 0x7a, 0x8c, 0x87, 0xa6, 0x5f, + 0xb4, 0xe0, 0x6c, 0x2b, 0xf7, 0xa3, 0xc4, 0x36, 0xdb, 0x9f, 0x8d, 0xcb, 0xbb, 0x41, 0x25, 0x50, + 0xce, 0xc7, 0xe3, 0x82, 0x9a, 0xb2, 0xfa, 0x70, 0xf9, 0x7d, 0xeb, 0xc3, 0xd7, 0x61, 0x84, 0xa9, + 0x72, 0x69, 0xb2, 0x96, 0xbe, 0x02, 0x8e, 0xd8, 0x86, 0xbd, 0x24, 0x0a, 0x62, 0xc5, 0x02, 0xfd, + 0x82, 0x05, 0x0f, 0x67, 0x9b, 0x8e, 0x09, 0x43, 0x8b, 0xe4, 0x7f, 0xdc, 0xc4, 0x58, 0x11, 0xdf, + 0xff, 0x70, 0xbd, 0x1b, 0xf1, 0x61, 0x2f, 0x02, 0xdc, 0xbd, 0x32, 0x54, 0xcb, 0xb1, 0x71, 0x86, + 0xcc, 0x93, 0x94, 0xde, 0x76, 0xce, 0xc9, 0x6a, 0xe9, 0x5f, 0xb7, 0x72, 0xd4, 0x4b, 0x6e, 0x4f, + 0xbd, 0x6c, 0xda, 0x53, 0x8f, 0x65, 0xed, 0xa9, 0x0e, 0xef, 0x88, 0x61, 0x4a, 0xf5, 0x9f, 0x9e, + 0xb4, 0xdf, 0xbc, 0x34, 0xb6, 0x0f, 0x17, 0x7a, 0x89, 0x59, 0x16, 0x3e, 0xe5, 0xaa, 0x73, 0xc5, + 0x34, 0x7c, 0xca, 0x5d, 0xad, 0x61, 0x86, 0xe9, 0x37, 0x05, 0x82, 0xfd, 0x5f, 0x2c, 0x28, 0xd7, + 0x43, 0xf7, 0x04, 0xbc, 0x3d, 0x9f, 0x36, 0xbc, 0x3d, 0x0f, 0x16, 0x3c, 0x12, 0x57, 0xe8, 0xdb, + 0x59, 0xce, 0xf8, 0x76, 0x1e, 0x2e, 0x62, 0xd0, 0xdd, 0x93, 0xf3, 0x77, 0xca, 0xa0, 0x3f, 0x69, + 0x87, 0xfe, 0xc5, 0xbd, 0xc4, 0xe1, 0x96, 0xbb, 0xbd, 0x72, 0x27, 0x38, 0xb3, 0xa8, 0x2b, 0x79, + 0xc5, 0xef, 0xc7, 0x2c, 0x1c, 0xf7, 0x75, 0xe2, 0x6d, 0x6e, 0x25, 0xc4, 0xcd, 0x7e, 0xce, 0xc9, + 0x85, 0xe3, 0xfe, 0x47, 0x0b, 0x26, 0x33, 0xb5, 0x23, 0x3f, 0xef, 0xbe, 0xd0, 0x3d, 0xfa, 0x6f, + 0xa6, 0x7b, 0x5e, 0x30, 0x9a, 0x03, 0x50, 0xae, 0x74, 0xe9, 0x23, 0x61, 0xba, 0xab, 0xf2, 0xb5, + 0xc7, 0x58, 0xa3, 0x40, 0x2f, 0xc0, 0x68, 0x12, 0xb6, 0x42, 0x3f, 0xdc, 0xdc, 0xbb, 0x4a, 0x64, + 0xd2, 0x0d, 0x75, 0xe0, 0xb1, 0x96, 0xa2, 0xb0, 0x4e, 0x67, 0xff, 0x7a, 0x19, 0xb2, 0xcf, 0x20, + 0xfe, 0xbf, 0x39, 0xf9, 0xe1, 0x9c, 0x93, 0xdf, 0xb3, 0x60, 0x8a, 0xd6, 0xce, 0x22, 0x5a, 0x64, + 0x20, 0xab, 0x7a, 0xc7, 0xc0, 0xea, 0xf2, 0x8e, 0xc1, 0x63, 0x54, 0x76, 0xb9, 0x61, 0x3b, 0x11, + 0xbe, 0x1c, 0x4d, 0x38, 0x51, 0x28, 0x16, 0x58, 0x41, 0x47, 0xa2, 0x48, 0xdc, 0x02, 0xd2, 0xe9, + 0x48, 0x14, 0x61, 0x81, 0x95, 0xcf, 0x1c, 0x0c, 0x14, 0x3c, 0x73, 0xc0, 0xd2, 0x51, 0x89, 0x28, + 0x0a, 0xa1, 0x1a, 0x68, 0xe9, 0xa8, 0x64, 0x78, 0x45, 0x4a, 0x63, 0x7f, 0xb3, 0x0c, 0x63, 0xf5, + 0xd0, 0x4d, 0x63, 0xdf, 0x9f, 0x37, 0x62, 0xdf, 0x2f, 0x64, 0x62, 0xdf, 0xa7, 0x74, 0xda, 0xe3, + 0x09, 0x7d, 0x17, 0xc9, 0xca, 0xd8, 0xa3, 0x1b, 0xf7, 0x18, 0xf6, 0x6e, 0x24, 0x2b, 0x53, 0x8c, + 0xb0, 0xc9, 0xf7, 0x27, 0x29, 0xdc, 0xfd, 0xcf, 0x2d, 0x98, 0xa8, 0x87, 0x2e, 0x9d, 0xa0, 0x3f, + 0x49, 0xb3, 0x51, 0x4f, 0x76, 0x36, 0xd4, 0x25, 0xd9, 0xd9, 0xdf, 0xb5, 0x60, 0xb8, 0x1e, 0xba, + 0x27, 0xe0, 0xe7, 0x7c, 0xd9, 0xf4, 0x73, 0x3e, 0x50, 0x20, 0x65, 0x0b, 0x5c, 0x9b, 0xbf, 0x5d, + 0x86, 0x71, 0xda, 0xce, 0x70, 0x53, 0x8e, 0x92, 0xd1, 0x23, 0x56, 0x1f, 0x3d, 0x42, 0x95, 0xb9, + 0xd0, 0xf7, 0xc3, 0x3b, 0xd9, 0x11, 0x5b, 0x61, 0x50, 0x2c, 0xb0, 0xe8, 0x69, 0x18, 0x69, 0x45, + 0x64, 0xd7, 0x0b, 0xdb, 0x71, 0xf6, 0x1e, 0x61, 0x5d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc3, 0x58, + 0xec, 0x05, 0x4d, 0x22, 0x23, 0x2b, 0x06, 0x58, 0x64, 0x05, 0xcf, 0x17, 0xa9, 0xc1, 0xb1, 0x41, + 0x85, 0x5e, 0x87, 0x0a, 0xfb, 0xcf, 0xd6, 0xcd, 0xd1, 0x5f, 0x31, 0xe0, 0xa6, 0xaa, 0x64, 0x80, + 0x53, 0x5e, 0xe8, 0x12, 0x40, 0x22, 0x63, 0x40, 0x62, 0x71, 0xcd, 0x55, 0x69, 0x94, 0x2a, 0x3a, + 0x24, 0xc6, 0x1a, 0x15, 0x7a, 0x0a, 0x2a, 0x89, 0xe3, 0xf9, 0xd7, 0xbc, 0x80, 0xc4, 0x22, 0x86, + 0x46, 0xe4, 0x60, 0x16, 0x40, 0x9c, 0xe2, 0xe9, 0x8e, 0xce, 0x2e, 0x51, 0xf3, 0x37, 0x50, 0x46, + 0x18, 0x35, 0xdb, 0xd1, 0xaf, 0x29, 0x28, 0xd6, 0x28, 0xec, 0x17, 0xe1, 0x4c, 0x3d, 0x74, 0xeb, + 0x61, 0x94, 0xac, 0x84, 0xd1, 0x1d, 0x27, 0x72, 0xe5, 0xf8, 0xcd, 0xca, 0x74, 0xc0, 0x74, 0xd7, + 0x1d, 0xe4, 0x76, 0xbd, 0x91, 0xe8, 0xf7, 0x39, 0xb6, 0xa7, 0x1f, 0xf1, 0xc2, 0xc3, 0xbf, 0x2e, + 0x01, 0xaa, 0xb3, 0x28, 0x15, 0xe3, 0xa1, 0x9c, 0xb7, 0x61, 0x22, 0x26, 0xd7, 0xbc, 0xa0, 0x7d, + 0x57, 0xb0, 0xea, 0x76, 0x9b, 0xa4, 0xb1, 0xac, 0x53, 0x72, 0xdf, 0x88, 0x09, 0xc3, 0x19, 0x6e, + 0xb4, 0x0b, 0xa3, 0x76, 0xb0, 0x10, 0xdf, 0x8a, 0x49, 0x24, 0x1e, 0x86, 0x61, 0x5d, 0x88, 0x25, + 0x10, 0xa7, 0x78, 0x3a, 0x65, 0xd8, 0x9f, 0x1b, 0x61, 0x80, 0xc3, 0x30, 0x91, 0x93, 0x8c, 0x3d, + 0x2d, 0xa0, 0xc1, 0xb1, 0x41, 0x85, 0x56, 0x00, 0xc5, 0xed, 0x56, 0xcb, 0x67, 0x87, 0x7a, 0x8e, + 0x7f, 0x39, 0x0a, 0xdb, 0x2d, 0x1e, 0x66, 0x2c, 0xb2, 0xf2, 0x37, 0x3a, 0xb0, 0x38, 0xa7, 0x04, + 0x15, 0x0c, 0x1b, 0x31, 0xfb, 0x2d, 0xee, 0x51, 0x73, 0xdf, 0x64, 0x83, 0x81, 0xb0, 0xc4, 0xd9, + 0x5f, 0x60, 0x9b, 0x19, 0x7b, 0xcf, 0x23, 0x69, 0x47, 0x04, 0xed, 0xc0, 0x78, 0x8b, 0x6d, 0x58, + 0x49, 0x14, 0xfa, 0x3e, 0x91, 0x7a, 0xe3, 0xbd, 0x45, 0xcc, 0xf0, 0xfc, 0xfe, 0x3a, 0x3b, 0x6c, + 0x72, 0xb7, 0xbf, 0x34, 0xc9, 0xe4, 0x52, 0x83, 0x1b, 0x2d, 0xc3, 0x22, 0x0e, 0x56, 0x68, 0x68, + 0x33, 0xc5, 0xef, 0x67, 0xa5, 0x92, 0x5e, 0xc4, 0xd2, 0x62, 0x59, 0x16, 0xbd, 0xc6, 0xe2, 0xb3, + 0xb9, 0x30, 0xe8, 0xf5, 0x72, 0x1f, 0xa7, 0x32, 0x62, 0xb3, 0x45, 0x41, 0xac, 0x31, 0x41, 0xd7, + 0x60, 0x5c, 0x3c, 0xff, 0x20, 0x5c, 0x08, 0x65, 0xc3, 0xfc, 0x1d, 0xc7, 0x3a, 0xf2, 0x30, 0x0b, + 0xc0, 0x66, 0x61, 0xb4, 0x09, 0x0f, 0x6b, 0x8f, 0x15, 0xe5, 0x44, 0x6d, 0x71, 0xd9, 0xf2, 0xc8, + 0xc1, 0xfe, 0xec, 0xc3, 0x6b, 0xdd, 0x08, 0x71, 0x77, 0x3e, 0xe8, 0x26, 0x9c, 0x71, 0x9a, 0x89, + 0xb7, 0x4b, 0x6a, 0xc4, 0x71, 0x7d, 0x2f, 0x20, 0xe6, 0xc5, 0xfa, 0x73, 0x07, 0xfb, 0xb3, 0x67, + 0x16, 0xf2, 0x08, 0x70, 0x7e, 0x39, 0xf4, 0x32, 0x54, 0xdc, 0x20, 0x16, 0x7d, 0x30, 0x64, 0xbc, + 0xc3, 0x55, 0xa9, 0xdd, 0x68, 0xa8, 0xef, 0x4f, 0xff, 0xe0, 0xb4, 0x00, 0xda, 0xe4, 0xef, 0xb5, + 0x2b, 0x8b, 0x64, 0xb8, 0x23, 0x5b, 0x42, 0xd6, 0xb6, 0x35, 0x6e, 0x9c, 0x70, 0xff, 0x99, 0x8a, + 0x89, 0x34, 0x2e, 0xa3, 0x18, 0x8c, 0xd1, 0xab, 0x80, 0x62, 0x12, 0xed, 0x7a, 0x4d, 0xb2, 0xd0, + 0x64, 0x09, 0x55, 0x99, 0xd7, 0x65, 0xc4, 0x08, 0xf0, 0x47, 0x8d, 0x0e, 0x0a, 0x9c, 0x53, 0x0a, + 0x5d, 0xa1, 0x12, 0x45, 0x87, 0x8a, 0x10, 0x56, 0xa9, 0xe6, 0x55, 0x6b, 0xa4, 0x15, 0x91, 0xa6, + 0x93, 0x10, 0xd7, 0xe4, 0x88, 0x33, 0xe5, 0xe8, 0x7e, 0xa3, 0xf2, 0xd4, 0x83, 0x19, 0x78, 0xd9, + 0x99, 0xab, 0x9e, 0x5a, 0x48, 0x5b, 0x61, 0x9c, 0xdc, 0x20, 0xc9, 0x9d, 0x30, 0xda, 0x16, 0x49, + 0xad, 0xd2, 0x2c, 0x76, 0x29, 0x0a, 0xeb, 0x74, 0x54, 0x23, 0x62, 0x47, 0x57, 0xab, 0x35, 0x76, + 0xce, 0x30, 0x92, 0xae, 0x93, 0x2b, 0x1c, 0x8c, 0x25, 0x5e, 0x92, 0xae, 0xd6, 0x97, 0xd8, 0xe9, + 0x41, 0x86, 0x74, 0xb5, 0xbe, 0x84, 0x25, 0x1e, 0x91, 0xce, 0x37, 0xce, 0x26, 0x8a, 0x4f, 0x68, + 0x3a, 0xe5, 0x72, 0x9f, 0xcf, 0x9c, 0x05, 0x30, 0xa5, 0x5e, 0x57, 0xe3, 0xd9, 0xbe, 0xe2, 0xea, + 0x64, 0xf1, 0xc3, 0xf1, 0xb9, 0xa9, 0xc2, 0x94, 0x57, 0x6d, 0x35, 0xc3, 0x09, 0x77, 0xf0, 0x36, + 0x12, 0x36, 0x4c, 0xf5, 0x7c, 0x67, 0x60, 0x1e, 0x2a, 0x71, 0x7b, 0xdd, 0x0d, 0x77, 0x1c, 0x2f, + 0x60, 0x6e, 0x7f, 0xfd, 0x4d, 0x73, 0x89, 0xc0, 0x29, 0x0d, 0x5a, 0x81, 0x11, 0x47, 0x3e, 0xf6, + 0x8f, 0x8a, 0x6f, 0x70, 0xab, 0x57, 0xfe, 0x99, 0x47, 0x53, 0x3d, 0xef, 0xaf, 0xca, 0xa2, 0x97, + 0x60, 0x5c, 0x5c, 0x32, 0x12, 0xf1, 0x81, 0xa7, 0xcc, 0x78, 0xf4, 0x86, 0x8e, 0xc4, 0x26, 0x2d, + 0xfa, 0x19, 0x98, 0xa0, 0x5c, 0x52, 0xc1, 0x56, 0x3d, 0xdd, 0x8f, 0x44, 0xd4, 0xf2, 0x47, 0xeb, + 0x85, 0x71, 0x86, 0x19, 0x72, 0xe1, 0x21, 0xa7, 0x9d, 0x84, 0x3b, 0x74, 0x86, 0x9b, 0xf3, 0x7f, + 0x2d, 0xdc, 0x26, 0x01, 0xf3, 0xd3, 0x8f, 0x2c, 0x5e, 0x38, 0xd8, 0x9f, 0x7d, 0x68, 0xa1, 0x0b, + 0x1d, 0xee, 0xca, 0x05, 0xdd, 0x82, 0xd1, 0x24, 0xf4, 0x45, 0x60, 0x6f, 0x5c, 0x3d, 0x5b, 0x9c, + 0x70, 0x66, 0x4d, 0x91, 0xe9, 0xee, 0x04, 0x55, 0x14, 0xeb, 0x7c, 0xd0, 0x1a, 0x5f, 0x63, 0x2c, + 0x6f, 0x21, 0x89, 0xab, 0x0f, 0x14, 0x77, 0x8c, 0x4a, 0x6f, 0x68, 0x2e, 0x41, 0x51, 0x12, 0xeb, + 0x6c, 0xd0, 0x65, 0x98, 0x6e, 0x45, 0x5e, 0xc8, 0x26, 0xb6, 0x72, 0xf9, 0x56, 0x8d, 0x54, 0x64, + 0xd3, 0xf5, 0x2c, 0x01, 0xee, 0x2c, 0x83, 0x2e, 0x52, 0x05, 0x95, 0x03, 0xab, 0xe7, 0xf8, 0xfb, + 0x13, 0x5c, 0x39, 0xe5, 0x30, 0xac, 0xb0, 0x33, 0x9f, 0x81, 0xe9, 0x0e, 0x49, 0x79, 0xa4, 0x20, + 0xcb, 0xdf, 0x18, 0x84, 0x8a, 0x72, 0x07, 0xa2, 0x79, 0xd3, 0xcb, 0x7b, 0x2e, 0xeb, 0xe5, 0x1d, + 0xa1, 0xfa, 0x9a, 0xee, 0xd8, 0x5d, 0xcb, 0x79, 0x42, 0xfb, 0x42, 0x81, 0x68, 0xe8, 0xff, 0x46, + 0xd4, 0x11, 0x9e, 0x17, 0x4f, 0x0d, 0xc6, 0x81, 0xae, 0x06, 0x63, 0x9f, 0xcf, 0xd9, 0x51, 0xd3, + 0xb0, 0x15, 0xba, 0xab, 0xf5, 0xec, 0xfb, 0x4e, 0x75, 0x0a, 0xc4, 0x1c, 0xc7, 0x94, 0x7b, 0xba, + 0xad, 0x33, 0xe5, 0x7e, 0xf8, 0x1e, 0x95, 0x7b, 0xc9, 0x00, 0xa7, 0xbc, 0x90, 0x0f, 0xd3, 0x4d, + 0xf3, 0x69, 0x2e, 0x75, 0x0b, 0xea, 0xd1, 0x9e, 0x8f, 0x64, 0xb5, 0xb5, 0xf7, 0x3a, 0x96, 0xb2, + 0x5c, 0x70, 0x27, 0x63, 0xf4, 0x12, 0x8c, 0xbc, 0x1b, 0xc6, 0x6c, 0xda, 0x89, 0xbd, 0x4d, 0xde, + 0x3b, 0x19, 0x79, 0xed, 0x66, 0x83, 0xc1, 0x0f, 0xf7, 0x67, 0x47, 0xeb, 0xa1, 0x2b, 0xff, 0x62, + 0x55, 0x00, 0xdd, 0x85, 0x33, 0x86, 0x44, 0x50, 0xcd, 0x85, 0xfe, 0x9b, 0xfb, 0xb0, 0xa8, 0xee, + 0xcc, 0x6a, 0x1e, 0x27, 0x9c, 0x5f, 0x81, 0xfd, 0x2d, 0xee, 0xf4, 0x14, 0xae, 0x11, 0x12, 0xb7, + 0xfd, 0x93, 0x48, 0xca, 0xbf, 0x6c, 0x78, 0x6d, 0xee, 0xd9, 0xb1, 0xfe, 0x07, 0x16, 0x73, 0xac, + 0xaf, 0x91, 0x9d, 0x96, 0xef, 0x24, 0x27, 0x11, 0x5a, 0xfb, 0x1a, 0x8c, 0x24, 0xa2, 0xb6, 0x6e, + 0xef, 0x08, 0x68, 0x8d, 0x62, 0x87, 0x0b, 0x6a, 0x43, 0x94, 0x50, 0xac, 0xd8, 0xd8, 0xff, 0x98, + 0x8f, 0x80, 0xc4, 0x9c, 0x80, 0x6f, 0xa1, 0x66, 0xfa, 0x16, 0x66, 0x7b, 0x7c, 0x41, 0x81, 0x8f, + 0xe1, 0x1f, 0x99, 0xed, 0x66, 0xb6, 0xc7, 0x87, 0xfd, 0x44, 0xc7, 0xfe, 0x15, 0x0b, 0x4e, 0xe7, + 0x1d, 0xe9, 0x53, 0x25, 0x86, 0x5b, 0x3e, 0xea, 0x84, 0x4b, 0xf5, 0xe0, 0x6d, 0x01, 0xc7, 0x8a, + 0xa2, 0xef, 0x64, 0xdf, 0x47, 0x4b, 0xb2, 0x74, 0x13, 0xcc, 0x57, 0xdc, 0xd0, 0x2b, 0x3c, 0x56, + 0xde, 0x52, 0xcf, 0xac, 0x1d, 0x2d, 0x4e, 0xde, 0xfe, 0x46, 0x09, 0x4e, 0x73, 0x17, 0xf5, 0xc2, + 0x6e, 0xe8, 0xb9, 0xf5, 0xd0, 0x15, 0x37, 0x07, 0xde, 0x84, 0xb1, 0x96, 0x66, 0xae, 0x76, 0x4b, + 0xf3, 0xa2, 0x9b, 0xb5, 0xa9, 0xd9, 0xa0, 0x43, 0xb1, 0xc1, 0x0b, 0xb9, 0x30, 0x46, 0x76, 0xbd, + 0xa6, 0xf2, 0x73, 0x96, 0x8e, 0x2c, 0xd2, 0x55, 0x2d, 0xcb, 0x1a, 0x1f, 0x6c, 0x70, 0xbd, 0x0f, + 0x2f, 0x6e, 0xd8, 0x5f, 0xb5, 0xe0, 0x81, 0x82, 0xa4, 0x30, 0xb4, 0xba, 0x3b, 0xec, 0x30, 0x40, + 0x3c, 0x09, 0xa8, 0xaa, 0xe3, 0x47, 0x04, 0x58, 0x60, 0xd1, 0x4f, 0x03, 0x70, 0x17, 0x3f, 0x7b, + 0x80, 0xbd, 0xd4, 0xfd, 0xd6, 0xb9, 0x91, 0x2c, 0x41, 0xbb, 0x51, 0xaf, 0x9e, 0x5c, 0xd7, 0x78, + 0xd9, 0xbf, 0x56, 0x86, 0x41, 0xfe, 0x3e, 0xf4, 0x0a, 0x0c, 0x6f, 0xf1, 0x14, 0xb4, 0xfd, 0x64, + 0xbb, 0x4d, 0xcd, 0x11, 0x0e, 0xc0, 0xb2, 0x30, 0xba, 0x0e, 0xa7, 0xc4, 0xed, 0x94, 0x1a, 0xf1, + 0x9d, 0x3d, 0x69, 0xd5, 0xf2, 0x67, 0x18, 0x64, 0x0e, 0xf1, 0x53, 0xab, 0x9d, 0x24, 0x38, 0xaf, + 0x1c, 0x7a, 0xa5, 0x23, 0xf1, 0x1c, 0x4f, 0xde, 0xab, 0x74, 0xe0, 0x1e, 0xc9, 0xe7, 0x5e, 0x82, + 0xf1, 0x56, 0x87, 0xfd, 0xae, 0x3d, 0xcd, 0x6b, 0xda, 0xec, 0x26, 0x2d, 0x8b, 0x0f, 0x68, 0xb3, + 0x68, 0x88, 0xb5, 0xad, 0x88, 0xc4, 0x5b, 0xa1, 0xef, 0x8a, 0x77, 0x28, 0xd3, 0xf8, 0x80, 0x0c, + 0x1e, 0x77, 0x94, 0xa0, 0x5c, 0x36, 0x1c, 0xcf, 0x6f, 0x47, 0x24, 0xe5, 0x32, 0x64, 0x72, 0x59, + 0xc9, 0xe0, 0x71, 0x47, 0x09, 0x3a, 0x8f, 0xce, 0x88, 0x47, 0x0c, 0xe5, 0x9d, 0x65, 0x15, 0xf4, + 0x31, 0x2c, 0xa3, 0xd2, 0xbb, 0xe4, 0xd1, 0x10, 0x47, 0xfe, 0xea, 0x19, 0x44, 0xed, 0x79, 0x2c, + 0x11, 0x8f, 0x2e, 0xb9, 0xdc, 0xcb, 0x53, 0x7a, 0x7f, 0x6a, 0xc1, 0xa9, 0x9c, 0x40, 0x30, 0x2e, + 0xaa, 0x36, 0xbd, 0x38, 0x51, 0xcf, 0x03, 0x68, 0xa2, 0x8a, 0xc3, 0xb1, 0xa2, 0xa0, 0xeb, 0x81, + 0x0b, 0xc3, 0xac, 0x00, 0x14, 0xc1, 0x1b, 0x02, 0x7b, 0x34, 0x01, 0x88, 0x2e, 0xc0, 0x40, 0x3b, + 0x26, 0x91, 0x7c, 0x7f, 0x4e, 0xca, 0x6f, 0xe6, 0x11, 0x64, 0x18, 0xaa, 0x51, 0x6e, 0x2a, 0x67, + 0x9c, 0xa6, 0x51, 0x72, 0x77, 0x1c, 0xc7, 0xd9, 0x5f, 0x29, 0xc3, 0x64, 0x26, 0x6c, 0x93, 0x36, + 0x64, 0x27, 0x0c, 0xbc, 0x24, 0x54, 0x79, 0xcf, 0x78, 0x9a, 0x07, 0xd2, 0xda, 0xba, 0x2e, 0xe0, + 0x58, 0x51, 0xa0, 0xc7, 0xe4, 0xc3, 0xa4, 0xd9, 0x67, 0x0f, 0x16, 0x6b, 0xc6, 0xdb, 0xa4, 0xfd, + 0x3e, 0x4f, 0xf2, 0x28, 0x0c, 0xb4, 0x42, 0xf5, 0x6a, 0xb4, 0x1a, 0x4f, 0xbc, 0x58, 0xab, 0x87, + 0xa1, 0x8f, 0x19, 0x12, 0x7d, 0x4c, 0x7c, 0x7d, 0xe6, 0xbc, 0x02, 0x3b, 0x6e, 0x18, 0x6b, 0x5d, + 0xf0, 0x04, 0x0c, 0x6f, 0x93, 0xbd, 0xc8, 0x0b, 0x36, 0xb3, 0xa7, 0x35, 0x57, 0x39, 0x18, 0x4b, + 0xbc, 0x99, 0x2d, 0x7c, 0xf8, 0xbe, 0x3c, 0x41, 0x32, 0xd2, 0x73, 0x57, 0xfb, 0x6d, 0x0b, 0x26, + 0x59, 0x8e, 0x51, 0x71, 0x3b, 0xde, 0x0b, 0x83, 0x13, 0xd0, 0x13, 0x1e, 0x85, 0xc1, 0x88, 0x56, + 0x9a, 0x7d, 0x57, 0x80, 0xb5, 0x04, 0x73, 0x1c, 0x7a, 0x08, 0x06, 0x58, 0x13, 0xe8, 0xe0, 0x8d, + 0xf1, 0x2c, 0xe3, 0x35, 0x27, 0x71, 0x30, 0x83, 0xb2, 0x6b, 0x4a, 0x98, 0xb4, 0x7c, 0x8f, 0x37, + 0x3a, 0x75, 0xb7, 0x7e, 0x38, 0xae, 0x29, 0xe5, 0x36, 0xed, 0xfd, 0x5d, 0x53, 0xca, 0x67, 0xd9, + 0x5d, 0x07, 0xff, 0xaf, 0x25, 0x38, 0x9f, 0x5b, 0x2e, 0x3d, 0xd9, 0x5d, 0x31, 0x4e, 0x76, 0x2f, + 0x65, 0x4e, 0x76, 0xed, 0xee, 0xa5, 0x8f, 0xe7, 0xac, 0x37, 0xff, 0x08, 0xb6, 0x7c, 0x82, 0x47, + 0xb0, 0x03, 0xfd, 0xaa, 0x29, 0x83, 0x3d, 0xd4, 0x94, 0xef, 0x5a, 0x70, 0x2e, 0xb7, 0xcb, 0x3e, + 0x24, 0xf7, 0xc2, 0x72, 0xdb, 0x56, 0x60, 0x43, 0xfc, 0xa8, 0x54, 0xf0, 0x2d, 0xcc, 0x9a, 0xb8, + 0x48, 0xe5, 0x0c, 0x43, 0xc6, 0x42, 0xed, 0x1a, 0xe3, 0x32, 0x86, 0xc3, 0xb0, 0xc2, 0x22, 0x4f, + 0xbb, 0x61, 0xc5, 0x9b, 0xf6, 0xd2, 0x91, 0x96, 0xcc, 0x9c, 0xe9, 0x1d, 0xd7, 0xaf, 0xf2, 0x67, + 0x6f, 0x5b, 0x5d, 0xd7, 0x2c, 0xc0, 0x72, 0xff, 0x16, 0xe0, 0x58, 0xbe, 0xf5, 0x87, 0x16, 0x60, + 0x72, 0xc7, 0x0b, 0xd8, 0xdb, 0x9f, 0xa6, 0xde, 0xa3, 0xae, 0xa5, 0x5e, 0x37, 0xd1, 0x38, 0x4b, + 0x3f, 0xf3, 0x12, 0x8c, 0xdf, 0xbb, 0xcb, 0xea, 0x7b, 0x65, 0x78, 0xb0, 0xcb, 0xb2, 0xe7, 0xb2, + 0xde, 0x18, 0x03, 0x4d, 0xd6, 0x77, 0x8c, 0x43, 0x1d, 0x4e, 0x6f, 0xb4, 0x7d, 0x7f, 0x8f, 0x45, + 0x39, 0x11, 0x57, 0x52, 0x08, 0xc5, 0x44, 0x25, 0x10, 0x5e, 0xc9, 0xa1, 0xc1, 0xb9, 0x25, 0xd1, + 0xab, 0x80, 0xc2, 0x75, 0x96, 0xd4, 0xd6, 0x4d, 0x13, 0x14, 0xb0, 0x8e, 0x2f, 0xa7, 0x8b, 0xf1, + 0x66, 0x07, 0x05, 0xce, 0x29, 0x45, 0x35, 0x4c, 0xf6, 0x62, 0xb9, 0x6a, 0x56, 0x46, 0xc3, 0xc4, + 0x3a, 0x12, 0x9b, 0xb4, 0xe8, 0x32, 0x4c, 0x3b, 0xbb, 0x8e, 0xc7, 0x13, 0x56, 0x49, 0x06, 0x5c, + 0xc5, 0x54, 0x8e, 0xa2, 0x85, 0x2c, 0x01, 0xee, 0x2c, 0x83, 0x36, 0x0c, 0x2f, 0x1f, 0xcf, 0x97, + 0x7f, 0xa9, 0xef, 0xd9, 0xda, 0xb7, 0xdf, 0xcf, 0xfe, 0x0f, 0x16, 0xdd, 0xbe, 0x72, 0x1e, 0x9b, + 0xa4, 0xfd, 0xa0, 0xfc, 0x57, 0xda, 0xed, 0x30, 0xd5, 0x0f, 0x4b, 0x3a, 0x12, 0x9b, 0xb4, 0x7c, + 0x42, 0xc4, 0x69, 0xb8, 0xb4, 0xa1, 0x27, 0x8a, 0xeb, 0x94, 0x8a, 0x02, 0xbd, 0x01, 0xc3, 0xae, + 0xb7, 0xeb, 0xc5, 0x61, 0x24, 0x16, 0xcb, 0x51, 0x1f, 0x59, 0x56, 0x72, 0xb0, 0xc6, 0xd9, 0x60, + 0xc9, 0xcf, 0xfe, 0x4a, 0x09, 0xc6, 0x65, 0x8d, 0xaf, 0xb5, 0xc3, 0xc4, 0x39, 0x81, 0x6d, 0xf9, + 0xb2, 0xb1, 0x2d, 0x7f, 0xac, 0xdb, 0x9d, 0x52, 0xd6, 0xa4, 0xc2, 0xed, 0xf8, 0x66, 0x66, 0x3b, + 0x7e, 0xbc, 0x37, 0xab, 0xee, 0xdb, 0xf0, 0xef, 0x59, 0x30, 0x6d, 0xd0, 0x9f, 0xc0, 0x6e, 0xb0, + 0x62, 0xee, 0x06, 0x8f, 0xf4, 0xfc, 0x86, 0x82, 0x5d, 0xe0, 0xeb, 0xa5, 0x4c, 0xdb, 0x99, 0xf4, + 0x7f, 0x17, 0x06, 0xb6, 0x9c, 0xc8, 0xed, 0x96, 0x76, 0xb1, 0xa3, 0xd0, 0xdc, 0x15, 0x27, 0x72, + 0xb9, 0x0c, 0x7f, 0x5a, 0x3d, 0x94, 0xe5, 0x44, 0x6e, 0xcf, 0xdb, 0x01, 0xac, 0x2a, 0xf4, 0x22, + 0x0c, 0xc5, 0xcd, 0xb0, 0xa5, 0x62, 0x2f, 0x2f, 0xf0, 0x47, 0xb4, 0x28, 0xe4, 0x70, 0x7f, 0x16, + 0x99, 0xd5, 0x51, 0x30, 0x16, 0xf4, 0x33, 0x9b, 0x50, 0x51, 0x55, 0xdf, 0xd7, 0xa8, 0xf2, 0x3f, + 0x2e, 0xc3, 0xa9, 0x9c, 0x79, 0x81, 0x62, 0xa3, 0xb7, 0x9e, 0xed, 0x73, 0x3a, 0xbd, 0xcf, 0xfe, + 0x8a, 0x99, 0xc5, 0xe2, 0x8a, 0xf1, 0xef, 0xbb, 0xd2, 0x5b, 0x31, 0xc9, 0x56, 0x4a, 0x41, 0xbd, + 0x2b, 0xa5, 0x95, 0x9d, 0x58, 0x57, 0xd3, 0x8a, 0x54, 0x4b, 0xef, 0xeb, 0x98, 0xfe, 0xcf, 0x32, + 0x9c, 0xce, 0xbb, 0x8a, 0x8e, 0x7e, 0x2e, 0xf3, 0x88, 0xc3, 0xf3, 0xfd, 0x5e, 0x62, 0xe7, 0x2f, + 0x3b, 0x88, 0x0c, 0x2f, 0x73, 0xe6, 0xb3, 0x0e, 0x3d, 0xbb, 0x59, 0xd4, 0xc9, 0xae, 0xeb, 0x44, + 0xfc, 0xf1, 0x0d, 0xb9, 0xc4, 0x3f, 0xde, 0x77, 0x03, 0xc4, 0xab, 0x1d, 0x71, 0xe6, 0xba, 0x8e, + 0x04, 0xf7, 0xbe, 0xae, 0x23, 0x6b, 0x9e, 0xf1, 0x60, 0x54, 0xfb, 0x9a, 0xfb, 0x3a, 0xe2, 0xdb, + 0x74, 0x47, 0xd1, 0xda, 0x7d, 0x5f, 0x47, 0xfd, 0xab, 0x16, 0x64, 0xe2, 0xa4, 0x94, 0xff, 0xc3, + 0x2a, 0xf4, 0x7f, 0x5c, 0x80, 0x81, 0x28, 0xf4, 0x49, 0x36, 0xaf, 0x3f, 0x0e, 0x7d, 0x82, 0x19, + 0x46, 0x3d, 0x7a, 0x5b, 0x2e, 0x7a, 0xf4, 0x96, 0x9a, 0xc6, 0x3e, 0xd9, 0x25, 0xd2, 0x1b, 0xa1, + 0x64, 0xf2, 0x35, 0x0a, 0xc4, 0x1c, 0x67, 0xff, 0xe6, 0x00, 0x9c, 0xca, 0xb9, 0x9c, 0x46, 0x0d, + 0x95, 0x4d, 0x27, 0x21, 0x77, 0x9c, 0xbd, 0x6c, 0xae, 0xd1, 0xcb, 0x1c, 0x8c, 0x25, 0x9e, 0xc5, + 0x72, 0xf2, 0x74, 0x65, 0x19, 0x1f, 0x91, 0xc8, 0x52, 0x26, 0xb0, 0xf7, 0xeb, 0xa1, 0xd4, 0x4b, + 0x00, 0x71, 0xec, 0x2f, 0x07, 0x54, 0xf9, 0x72, 0x45, 0xa4, 0x68, 0x9a, 0xdb, 0xae, 0x71, 0x4d, + 0x60, 0xb0, 0x46, 0x85, 0x6a, 0x30, 0xd5, 0x8a, 0xc2, 0x84, 0xfb, 0xdd, 0x6a, 0x3c, 0x46, 0x61, + 0xd0, 0xbc, 0x66, 0x54, 0xcf, 0xe0, 0x71, 0x47, 0x09, 0xf4, 0x02, 0x8c, 0x8a, 0xab, 0x47, 0xf5, + 0x30, 0xf4, 0x85, 0x97, 0x46, 0x9d, 0x78, 0x37, 0x52, 0x14, 0xd6, 0xe9, 0xb4, 0x62, 0xcc, 0x99, + 0x37, 0x9c, 0x5b, 0x8c, 0x3b, 0xf4, 0x34, 0xba, 0x4c, 0x46, 0x8a, 0x91, 0xbe, 0x32, 0x52, 0xa4, + 0x7e, 0xab, 0x4a, 0xdf, 0xe7, 0x17, 0xd0, 0xd3, 0xd3, 0xf3, 0xad, 0x32, 0x0c, 0xf1, 0xa1, 0x38, + 0x01, 0x55, 0x6c, 0x45, 0xf8, 0x6e, 0xba, 0xe4, 0x01, 0xe0, 0x6d, 0x99, 0xab, 0x39, 0x89, 0xc3, + 0xc5, 0x90, 0x5a, 0x0d, 0xa9, 0x97, 0x07, 0xcd, 0x19, 0xeb, 0x65, 0x26, 0xe3, 0x9c, 0x00, 0xce, + 0x43, 0x5b, 0x3d, 0x6f, 0x03, 0xc4, 0xec, 0xb1, 0x4e, 0xca, 0x43, 0xe4, 0x2d, 0x7d, 0xb2, 0x4b, + 0xed, 0x0d, 0x45, 0xcc, 0xdb, 0x90, 0x4e, 0x41, 0x85, 0xc0, 0x1a, 0xc7, 0x99, 0x4f, 0x40, 0x45, + 0x11, 0xf7, 0xb2, 0xe4, 0xc6, 0x74, 0xe1, 0xf5, 0x69, 0x98, 0xcc, 0xd4, 0x75, 0x24, 0x43, 0xf0, + 0x77, 0x2c, 0x98, 0xcc, 0xbc, 0xfc, 0x8f, 0xde, 0x83, 0xd3, 0x7e, 0xce, 0xa2, 0x13, 0x23, 0xda, + 0xff, 0x22, 0x55, 0x86, 0x5f, 0x1e, 0x16, 0xe7, 0xd6, 0x41, 0x8d, 0x7f, 0xfe, 0xcc, 0xb0, 0xe3, + 0x8b, 0x08, 0xe4, 0x31, 0x9e, 0xcf, 0x99, 0xc3, 0xb0, 0xc2, 0xda, 0xdf, 0xb7, 0x60, 0xba, 0xe3, + 0x0d, 0xfa, 0x0f, 0xb4, 0xed, 0x22, 0x5d, 0x75, 0xa9, 0x20, 0x5d, 0xb5, 0xfe, 0x69, 0xe5, 0xae, + 0x9f, 0xf6, 0x0d, 0x0b, 0xc4, 0x0c, 0x3c, 0x01, 0x75, 0xfe, 0x33, 0xa6, 0x3a, 0x3f, 0x53, 0x3c, + 0xa9, 0x0b, 0xf4, 0xf8, 0x3f, 0xb7, 0x60, 0x8a, 0x13, 0xa4, 0x87, 0x17, 0x1f, 0xe8, 0x38, 0xf4, + 0xf3, 0x86, 0x8a, 0x7a, 0xb4, 0x32, 0xff, 0xa3, 0x8c, 0xc1, 0x1a, 0xe8, 0x3a, 0x58, 0xff, 0xd9, + 0x02, 0xc4, 0x3f, 0x3f, 0xfb, 0xf2, 0x32, 0xdf, 0x94, 0x34, 0x53, 0x3b, 0x15, 0x02, 0x0a, 0x83, + 0x35, 0xaa, 0x63, 0x69, 0x78, 0xe6, 0x6c, 0xa8, 0xdc, 0xfb, 0x6c, 0xe8, 0x08, 0xdf, 0xfa, 0x57, + 0x06, 0x20, 0x1b, 0x88, 0x88, 0x6e, 0xc3, 0x58, 0xd3, 0x69, 0x39, 0xeb, 0x9e, 0xef, 0x25, 0x1e, + 0x89, 0xbb, 0x1d, 0x2a, 0x2f, 0x69, 0x74, 0xe2, 0x20, 0x46, 0x83, 0x60, 0x83, 0x0f, 0x9a, 0x03, + 0x68, 0x45, 0xde, 0xae, 0xe7, 0x93, 0x4d, 0x66, 0x6b, 0xb0, 0xdb, 0x08, 0xfc, 0xa4, 0x54, 0x42, + 0xb1, 0x46, 0x91, 0x13, 0xbd, 0x5e, 0xbe, 0x7f, 0xd1, 0xeb, 0x03, 0x47, 0x8c, 0x5e, 0x1f, 0xec, + 0x2b, 0x7a, 0x1d, 0xc3, 0x59, 0xb9, 0xab, 0xd2, 0xff, 0x2b, 0x9e, 0x4f, 0x84, 0x2a, 0xc5, 0xef, + 0x28, 0xcc, 0x1c, 0xec, 0xcf, 0x9e, 0xc5, 0xb9, 0x14, 0xb8, 0xa0, 0x24, 0xfa, 0x69, 0xa8, 0x3a, + 0xbe, 0x1f, 0xde, 0x51, 0xbd, 0xb6, 0x1c, 0x37, 0x1d, 0x3f, 0x4d, 0x05, 0x3a, 0xb2, 0xf8, 0xd0, + 0xc1, 0xfe, 0x6c, 0x75, 0xa1, 0x80, 0x06, 0x17, 0x96, 0xb6, 0xb7, 0xe1, 0x54, 0x83, 0x44, 0xf2, + 0x21, 0x30, 0xb5, 0xfa, 0xd6, 0xa0, 0x12, 0x65, 0x96, 0x7b, 0x5f, 0x57, 0xd2, 0xb5, 0x04, 0x5c, + 0x72, 0x79, 0xa7, 0x8c, 0xec, 0x3f, 0xb3, 0x60, 0x58, 0x04, 0x37, 0x9e, 0x80, 0x96, 0xb1, 0x60, + 0x38, 0x7c, 0x66, 0xf3, 0x45, 0x22, 0x6b, 0x4c, 0xa1, 0xab, 0x67, 0x35, 0xe3, 0xea, 0x79, 0xa4, + 0x1b, 0x93, 0xee, 0x4e, 0x9e, 0x5f, 0x2e, 0xc3, 0x84, 0x19, 0xd8, 0x79, 0x02, 0x5d, 0x70, 0x03, + 0x86, 0x63, 0x11, 0x45, 0x5c, 0x2a, 0x8e, 0x46, 0xcb, 0x0e, 0x62, 0x7a, 0x66, 0x2d, 0xe2, 0x86, + 0x25, 0x93, 0xdc, 0xf0, 0xe4, 0xf2, 0x7d, 0x0c, 0x4f, 0xee, 0x15, 0x5b, 0x3b, 0x70, 0x1c, 0xb1, + 0xb5, 0xf6, 0xb7, 0x99, 0xf0, 0xd7, 0xe1, 0x27, 0xb0, 0x63, 0x5f, 0x36, 0xb7, 0x09, 0xbb, 0xcb, + 0xcc, 0x12, 0x8d, 0x2a, 0xd8, 0xb9, 0xff, 0x81, 0x05, 0xa3, 0x82, 0xf0, 0x04, 0x9a, 0xfd, 0x59, + 0xb3, 0xd9, 0x0f, 0x76, 0x69, 0x76, 0x41, 0x7b, 0xff, 0x66, 0x49, 0xb5, 0xb7, 0x2e, 0xde, 0xc8, + 0xef, 0x99, 0x1a, 0x7a, 0x84, 0xda, 0x69, 0x61, 0x33, 0xf4, 0x85, 0x5e, 0xf6, 0x50, 0x7a, 0x4d, + 0x8d, 0xc3, 0x0f, 0xb5, 0xdf, 0x58, 0x51, 0xb3, 0x5b, 0x54, 0x61, 0x94, 0x88, 0x0d, 0x34, 0xef, + 0x85, 0x7e, 0x17, 0x20, 0x7d, 0xe8, 0x5c, 0xdc, 0xeb, 0x3c, 0xfa, 0xdb, 0xff, 0xe9, 0xbd, 0x33, + 0xc5, 0x0b, 0x6b, 0x7c, 0xe5, 0xc5, 0x07, 0x56, 0xc7, 0xa0, 0x79, 0x12, 0x73, 0x43, 0xc0, 0xb1, + 0xa2, 0xb0, 0x3f, 0xc1, 0x64, 0x32, 0xeb, 0xa0, 0xa3, 0x5d, 0x09, 0xfb, 0xb7, 0xc3, 0xaa, 0x6b, + 0x99, 0x1b, 0xb6, 0xa6, 0x5f, 0x3c, 0xeb, 0x2e, 0x02, 0x69, 0xc5, 0x7a, 0x90, 0x6f, 0x7a, 0x3b, + 0x0d, 0x7d, 0xae, 0xe3, 0x80, 0xee, 0x99, 0x1e, 0xb2, 0xf4, 0x08, 0x47, 0x72, 0x2c, 0xd3, 0x1d, + 0xcb, 0x08, 0xb6, 0x5a, 0xcf, 0x26, 0xef, 0x5e, 0x92, 0x08, 0x9c, 0xd2, 0xa0, 0x79, 0x61, 0xf3, + 0x71, 0x07, 0xc8, 0x83, 0x19, 0x9b, 0x4f, 0x7e, 0xbe, 0x66, 0xf4, 0x3d, 0x0b, 0xa3, 0xea, 0x41, + 0x94, 0x3a, 0x7f, 0x57, 0xa2, 0xc2, 0x75, 0xa9, 0xe5, 0x14, 0x8c, 0x75, 0x1a, 0xb4, 0x06, 0x93, + 0x31, 0x7f, 0xad, 0x45, 0xde, 0x45, 0x10, 0x16, 0xfd, 0x93, 0x99, 0x27, 0xd5, 0x25, 0xfa, 0x90, + 0x81, 0xf8, 0x62, 0x95, 0xb7, 0x17, 0xb2, 0x2c, 0xd0, 0x2b, 0x30, 0xe1, 0xeb, 0xaf, 0x56, 0xd6, + 0x85, 0xc1, 0xaf, 0x82, 0xac, 0x8c, 0x37, 0x2d, 0xeb, 0x38, 0x43, 0x4d, 0x95, 0x00, 0x1d, 0x22, + 0x92, 0xd4, 0x38, 0xc1, 0x26, 0x89, 0xc5, 0x73, 0x0e, 0x4c, 0x09, 0xb8, 0x56, 0x40, 0x83, 0x0b, + 0x4b, 0xa3, 0x17, 0x61, 0x4c, 0x7e, 0xbe, 0x76, 0x37, 0x27, 0x0d, 0xe5, 0xd3, 0x70, 0xd8, 0xa0, + 0x44, 0x77, 0xe0, 0x8c, 0xfc, 0xbf, 0x16, 0x39, 0x1b, 0x1b, 0x5e, 0x53, 0x5c, 0x8d, 0x1a, 0x65, + 0x2c, 0x16, 0x64, 0x5c, 0xf3, 0x72, 0x1e, 0xd1, 0xe1, 0xfe, 0xec, 0x05, 0xd1, 0x6b, 0xb9, 0x78, + 0x36, 0x88, 0xf9, 0xfc, 0xd1, 0x75, 0x38, 0xb5, 0x45, 0x1c, 0x3f, 0xd9, 0x5a, 0xda, 0x22, 0xcd, + 0x6d, 0xb9, 0x88, 0xd8, 0x8d, 0x1f, 0x2d, 0x00, 0xee, 0x4a, 0x27, 0x09, 0xce, 0x2b, 0x87, 0xde, + 0x82, 0x6a, 0xab, 0xbd, 0xee, 0x7b, 0xf1, 0xd6, 0x8d, 0x30, 0x61, 0x67, 0x89, 0xea, 0x3d, 0x11, + 0x71, 0x35, 0x48, 0xdd, 0x76, 0xaa, 0x17, 0xd0, 0xe1, 0x42, 0x0e, 0xef, 0xef, 0x94, 0xf7, 0x5d, + 0x5a, 0x58, 0xd3, 0x30, 0xd0, 0xe7, 0x61, 0x4c, 0x1f, 0x49, 0x21, 0xe4, 0x1f, 0xeb, 0xf5, 0x4a, + 0xaa, 0xd0, 0x4f, 0xd4, 0xa8, 0xea, 0x38, 0x6c, 0x70, 0xb4, 0xff, 0x59, 0x09, 0x66, 0x7b, 0xe4, + 0x90, 0xca, 0xb8, 0xae, 0xac, 0xbe, 0x5c, 0x57, 0x0b, 0xf2, 0xe9, 0x90, 0x1b, 0x99, 0xc4, 0xd4, + 0x99, 0x67, 0x41, 0xd2, 0xf4, 0xd4, 0x59, 0xfa, 0xbe, 0xa3, 0xb6, 0x74, 0xef, 0xd7, 0x40, 0xcf, + 0xe0, 0xb5, 0xba, 0xee, 0xc6, 0x1c, 0xec, 0x5f, 0xdd, 0x2d, 0xf4, 0x60, 0xda, 0xdf, 0x2e, 0xc1, + 0x19, 0xd5, 0x85, 0x3f, 0xb9, 0x1d, 0x77, 0xab, 0xb3, 0xe3, 0x8e, 0xc1, 0xff, 0x6b, 0xdf, 0x84, + 0xa1, 0xc6, 0x5e, 0xdc, 0x4c, 0xfc, 0x3e, 0xb4, 0x83, 0x47, 0x8d, 0x95, 0x93, 0xee, 0x61, 0xec, + 0xf5, 0x2f, 0xb1, 0x90, 0xec, 0xbf, 0x68, 0xc1, 0xe4, 0xda, 0x52, 0xbd, 0x11, 0x36, 0xb7, 0x49, + 0xb2, 0xc0, 0xbd, 0x1b, 0x58, 0x28, 0x07, 0xd6, 0x3d, 0x6e, 0xfa, 0x79, 0xea, 0xc4, 0x05, 0x18, + 0xd8, 0x0a, 0xe3, 0x24, 0xeb, 0xe3, 0xbf, 0x12, 0xc6, 0x09, 0x66, 0x18, 0xfb, 0x4f, 0x2c, 0x18, + 0x64, 0x0f, 0x5e, 0xf5, 0x7a, 0x18, 0xad, 0x9f, 0xef, 0x42, 0x2f, 0xc0, 0x10, 0xd9, 0xd8, 0x20, + 0xcd, 0x44, 0x8c, 0xaa, 0xbc, 0x48, 0x32, 0xb4, 0xcc, 0xa0, 0x74, 0x47, 0x64, 0x95, 0xf1, 0xbf, + 0x58, 0x10, 0xa3, 0xcf, 0x41, 0x25, 0xf1, 0x76, 0xc8, 0x82, 0xeb, 0x0a, 0xf7, 0xfa, 0xd1, 0x22, + 0xa9, 0xd4, 0x0e, 0xbd, 0x26, 0x99, 0xe0, 0x94, 0x9f, 0xfd, 0x8b, 0x25, 0x80, 0xf4, 0xc2, 0x59, + 0xaf, 0xcf, 0x5c, 0xec, 0x78, 0xff, 0xed, 0xb1, 0x9c, 0xf7, 0xdf, 0x50, 0xca, 0x30, 0xe7, 0xf5, + 0x37, 0xd5, 0x55, 0xe5, 0xbe, 0xba, 0x6a, 0xe0, 0x28, 0x5d, 0xb5, 0x04, 0xd3, 0xe9, 0x85, 0x39, + 0xf3, 0xf6, 0x30, 0xcb, 0x0d, 0xbb, 0x96, 0x45, 0xe2, 0x4e, 0x7a, 0xfb, 0xcb, 0x16, 0x88, 0xe8, + 0xda, 0x3e, 0x26, 0xf4, 0x9b, 0xf2, 0xa9, 0x26, 0x23, 0xb1, 0xdd, 0x85, 0xe2, 0x70, 0x63, 0x91, + 0xce, 0x4e, 0x49, 0x76, 0x23, 0x89, 0x9d, 0xc1, 0xcb, 0xfe, 0x3d, 0x0b, 0x46, 0x39, 0xfa, 0x3a, + 0x33, 0x41, 0x7b, 0xb7, 0xe6, 0x48, 0x99, 0x85, 0xd9, 0x2b, 0x46, 0x94, 0xb1, 0x4a, 0x40, 0xab, + 0xbf, 0x62, 0x24, 0x11, 0x38, 0xa5, 0x41, 0x4f, 0xc0, 0x70, 0xdc, 0x5e, 0x67, 0xe4, 0x99, 0x00, + 0xdb, 0x06, 0x07, 0x63, 0x89, 0xa7, 0xf3, 0x6a, 0x2a, 0x1b, 0x5f, 0x8d, 0xae, 0xc0, 0x10, 0x17, + 0x1b, 0x62, 0x19, 0x77, 0x39, 0x4c, 0xd0, 0xa2, 0xb2, 0x81, 0x3f, 0xbb, 0xcd, 0xc4, 0x8d, 0x28, + 0x8f, 0xde, 0x82, 0x51, 0x37, 0xbc, 0x13, 0xdc, 0x71, 0x22, 0x77, 0xa1, 0xbe, 0x2a, 0x7a, 0x3d, + 0x37, 0x4a, 0xae, 0x96, 0x92, 0xe9, 0x91, 0xde, 0xcc, 0x3d, 0x97, 0xa2, 0xb0, 0xce, 0x0e, 0xad, + 0xb1, 0x1c, 0x1e, 0xfc, 0x31, 0xd0, 0x6e, 0x71, 0x23, 0xea, 0xfd, 0x50, 0x8d, 0xf3, 0xb8, 0x48, + 0xf4, 0x21, 0x9e, 0x12, 0x4d, 0x19, 0xd9, 0x5f, 0x3c, 0x05, 0xc6, 0x68, 0x1b, 0xf9, 0x7f, 0xad, + 0x63, 0xca, 0xff, 0x8b, 0x61, 0x84, 0xec, 0xb4, 0x92, 0xbd, 0x9a, 0x17, 0x75, 0x4b, 0xc8, 0xbe, + 0x2c, 0x68, 0x3a, 0x79, 0x4a, 0x0c, 0x56, 0x7c, 0xf2, 0x93, 0x34, 0x97, 0x3f, 0xc0, 0x24, 0xcd, + 0x03, 0x27, 0x98, 0xa4, 0xf9, 0x06, 0x0c, 0x6f, 0x7a, 0x09, 0x26, 0xad, 0x50, 0x6c, 0x99, 0xb9, + 0x33, 0xe1, 0x32, 0x27, 0xe9, 0x4c, 0x2f, 0x2a, 0x10, 0x58, 0x32, 0x41, 0xaf, 0xaa, 0x35, 0x30, + 0x54, 0xac, 0x0a, 0x76, 0x7a, 0xb7, 0x73, 0x57, 0x81, 0x48, 0xca, 0x3c, 0x7c, 0xaf, 0x49, 0x99, + 0x55, 0x52, 0xe5, 0x91, 0xf7, 0x97, 0x54, 0xd9, 0x48, 0x3a, 0x5d, 0x39, 0xbe, 0xa4, 0xd3, 0x5f, + 0xb6, 0xe0, 0x4c, 0x2b, 0x2f, 0xff, 0xba, 0x48, 0x94, 0xfc, 0x42, 0xdf, 0x79, 0xe8, 0x8d, 0x0a, + 0x59, 0x22, 0x89, 0x5c, 0x32, 0x9c, 0x5f, 0x9d, 0xcc, 0x5e, 0x3d, 0x7a, 0xaf, 0xd9, 0xab, 0xef, + 0x4f, 0x46, 0xe5, 0x34, 0x97, 0xf5, 0xf8, 0x31, 0xe6, 0xb2, 0x9e, 0x78, 0xdf, 0xb9, 0xac, 0xb5, + 0x7c, 0xd4, 0x93, 0xc7, 0x91, 0x8f, 0xfa, 0x6d, 0x53, 0xd8, 0xf3, 0x34, 0xc9, 0x4f, 0xf5, 0x10, + 0xf6, 0x06, 0xdf, 0xee, 0xe2, 0x9e, 0xe7, 0xde, 0x9e, 0xbe, 0xa7, 0xdc, 0xdb, 0x46, 0x56, 0x6b, + 0x74, 0x7c, 0x59, 0xad, 0x6f, 0xeb, 0x5b, 0xd0, 0xa9, 0x62, 0xbe, 0x6a, 0xa7, 0xe9, 0xe4, 0x9b, + 0xb7, 0x09, 0x75, 0x66, 0xcb, 0x3e, 0x7d, 0x32, 0xd9, 0xb2, 0xcf, 0x1c, 0x7b, 0xb6, 0xec, 0xb3, + 0x27, 0x90, 0x2d, 0xfb, 0x81, 0x0f, 0x34, 0x5b, 0x76, 0xf5, 0xfe, 0x66, 0xcb, 0x3e, 0x77, 0x1c, + 0xd9, 0xb2, 0x6f, 0x43, 0xa5, 0x25, 0xaf, 0xe0, 0x55, 0x67, 0x8a, 0x87, 0x24, 0xf7, 0x9e, 0x1e, + 0x1f, 0x12, 0x85, 0xc2, 0x29, 0x2b, 0xca, 0x37, 0xcd, 0x9e, 0xfd, 0x60, 0x31, 0xdf, 0x5c, 0xb3, + 0xbd, 0x4b, 0xce, 0xec, 0xbf, 0x54, 0x82, 0xf3, 0xdd, 0xe7, 0x75, 0x6a, 0xf3, 0xd7, 0x53, 0x07, + 0x6e, 0xc6, 0xe6, 0x67, 0x4a, 0x97, 0x46, 0xd5, 0xf7, 0x3d, 0xe5, 0xcb, 0x30, 0xad, 0x22, 0x91, + 0x7c, 0xaf, 0xb9, 0xa7, 0x3d, 0x6e, 0xa3, 0x82, 0xdb, 0x1b, 0x59, 0x02, 0xdc, 0x59, 0x06, 0x2d, + 0xc0, 0xa4, 0x01, 0x5c, 0xad, 0x09, 0x95, 0x5c, 0x39, 0x19, 0x1a, 0x26, 0x1a, 0x67, 0xe9, 0xed, + 0xaf, 0x5b, 0xf0, 0x40, 0x41, 0xe2, 0xcd, 0xbe, 0xaf, 0xe1, 0x6e, 0xc0, 0x64, 0xcb, 0x2c, 0xda, + 0xe3, 0xb6, 0xbe, 0x91, 0xde, 0x53, 0xb5, 0x35, 0x83, 0xc0, 0x59, 0xa6, 0x8b, 0x17, 0xbf, 0xf3, + 0x83, 0xf3, 0x1f, 0xf9, 0xa3, 0x1f, 0x9c, 0xff, 0xc8, 0xf7, 0x7f, 0x70, 0xfe, 0x23, 0xff, 0xdf, + 0xc1, 0x79, 0xeb, 0x3b, 0x07, 0xe7, 0xad, 0x3f, 0x3a, 0x38, 0x6f, 0x7d, 0xff, 0xe0, 0xbc, 0xf5, + 0xa7, 0x07, 0xe7, 0xad, 0x5f, 0xfc, 0xe1, 0xf9, 0x8f, 0xbc, 0x59, 0xda, 0x7d, 0xf6, 0xff, 0x06, + 0x00, 0x00, 0xff, 0xff, 0xb3, 0x2e, 0x6d, 0x84, 0xd7, 0xc9, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index 88066314353..60ec75b5f10 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -3790,6 +3790,18 @@ message ServiceSpec { // and ExternalTrafficPolicy is set to Local. // +optional optional int32 healthCheckNodePort = 12; + + // publishNotReadyAddresses, when set to true, indicates that DNS implementations + // must publish the notReadyAddresses of subsets for the Endpoints associated with + // the Service. The default value is false. + // The primary use case for setting this field is to use a StatefulSet's Headless Service + // to propagate SRV records for its Pods without respect to their readiness for purpose + // of peer discovery. + // This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints + // when that annotation is deprecated and all clients have been converted to use this + // field. + // +optional + optional bool publishNotReadyAddresses = 13; } // ServiceStatus represents the current status of a service. diff --git a/staging/src/k8s.io/api/core/v1/types.generated.go b/staging/src/k8s.io/api/core/v1/types.generated.go index e4bf3dbd6b3..df9f41bc213 100644 --- a/staging/src/k8s.io/api/core/v1/types.generated.go +++ b/staging/src/k8s.io/api/core/v1/types.generated.go @@ -43713,7 +43713,7 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [11]bool + var yyq2 [12]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false yyq2[0] = len(x.Ports) != 0 @@ -43727,9 +43727,10 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) { yyq2[8] = x.ExternalName != "" yyq2[9] = x.ExternalTrafficPolicy != "" yyq2[10] = x.HealthCheckNodePort != 0 + yyq2[11] = x.PublishNotReadyAddresses != false var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(11) + r.EncodeArrayStart(12) } else { yynn2 = 0 for _, b := range yyq2 { @@ -44017,6 +44018,31 @@ func (x *ServiceSpec) CodecEncodeSelf(e *codec1978.Encoder) { } } } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[11] { + yym37 := z.EncBinary() + _ = yym37 + if false { + } else { + r.EncodeBool(bool(x.PublishNotReadyAddresses)) + } + } else { + r.EncodeBool(false) + } + } else { + if yyq2[11] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("publishNotReadyAddresses")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym38 := z.EncBinary() + _ = yym38 + if false { + } else { + r.EncodeBool(bool(x.PublishNotReadyAddresses)) + } + } + } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { @@ -44195,6 +44221,18 @@ func (x *ServiceSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { *((*int32)(yyv21)) = int32(r.DecodeInt(32)) } } + case "publishNotReadyAddresses": + if r.TryDecodeAsNil() { + x.PublishNotReadyAddresses = false + } else { + yyv23 := &x.PublishNotReadyAddresses + yym24 := z.DecBinary() + _ = yym24 + if false { + } else { + *((*bool)(yyv23)) = r.DecodeBool() + } + } default: z.DecStructFieldNotFound(-1, yys3) } // end switch yys3 @@ -44206,16 +44244,16 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj23 int - var yyb23 bool - var yyhl23 bool = l >= 0 - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + var yyj25 int + var yyb25 bool + var yyhl25 bool = l >= 0 + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44223,21 +44261,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.Ports = nil } else { - yyv24 := &x.Ports - yym25 := z.DecBinary() - _ = yym25 + yyv26 := &x.Ports + yym27 := z.DecBinary() + _ = yym27 if false { } else { - h.decSliceServicePort((*[]ServicePort)(yyv24), d) + h.decSliceServicePort((*[]ServicePort)(yyv26), d) } } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44245,21 +44283,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.Selector = nil } else { - yyv26 := &x.Selector - yym27 := z.DecBinary() - _ = yym27 + yyv28 := &x.Selector + yym29 := z.DecBinary() + _ = yym29 if false { } else { - z.F.DecMapStringStringX(yyv26, false, d) + z.F.DecMapStringStringX(yyv28, false, d) } } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44267,21 +44305,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.ClusterIP = "" } else { - yyv28 := &x.ClusterIP - yym29 := z.DecBinary() - _ = yym29 + yyv30 := &x.ClusterIP + yym31 := z.DecBinary() + _ = yym31 if false { } else { - *((*string)(yyv28)) = r.DecodeString() + *((*string)(yyv30)) = r.DecodeString() } } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44289,16 +44327,16 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.Type = "" } else { - yyv30 := &x.Type - yyv30.CodecDecodeSelf(d) + yyv32 := &x.Type + yyv32.CodecDecodeSelf(d) } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44306,21 +44344,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.ExternalIPs = nil } else { - yyv31 := &x.ExternalIPs - yym32 := z.DecBinary() - _ = yym32 + yyv33 := &x.ExternalIPs + yym34 := z.DecBinary() + _ = yym34 if false { } else { - z.F.DecSliceStringX(yyv31, false, d) + z.F.DecSliceStringX(yyv33, false, d) } } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44328,16 +44366,16 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.SessionAffinity = "" } else { - yyv33 := &x.SessionAffinity - yyv33.CodecDecodeSelf(d) + yyv35 := &x.SessionAffinity + yyv35.CodecDecodeSelf(d) } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44345,21 +44383,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.LoadBalancerIP = "" } else { - yyv34 := &x.LoadBalancerIP - yym35 := z.DecBinary() - _ = yym35 + yyv36 := &x.LoadBalancerIP + yym37 := z.DecBinary() + _ = yym37 if false { } else { - *((*string)(yyv34)) = r.DecodeString() + *((*string)(yyv36)) = r.DecodeString() } } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44367,21 +44405,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.LoadBalancerSourceRanges = nil } else { - yyv36 := &x.LoadBalancerSourceRanges - yym37 := z.DecBinary() - _ = yym37 + yyv38 := &x.LoadBalancerSourceRanges + yym39 := z.DecBinary() + _ = yym39 if false { } else { - z.F.DecSliceStringX(yyv36, false, d) + z.F.DecSliceStringX(yyv38, false, d) } } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44389,21 +44427,21 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.ExternalName = "" } else { - yyv38 := &x.ExternalName - yym39 := z.DecBinary() - _ = yym39 + yyv40 := &x.ExternalName + yym41 := z.DecBinary() + _ = yym41 if false { } else { - *((*string)(yyv38)) = r.DecodeString() + *((*string)(yyv40)) = r.DecodeString() } } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44411,16 +44449,16 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.ExternalTrafficPolicy = "" } else { - yyv40 := &x.ExternalTrafficPolicy - yyv40.CodecDecodeSelf(d) + yyv42 := &x.ExternalTrafficPolicy + yyv42.CodecDecodeSelf(d) } - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -44428,26 +44466,48 @@ func (x *ServiceSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.HealthCheckNodePort = 0 } else { - yyv41 := &x.HealthCheckNodePort - yym42 := z.DecBinary() - _ = yym42 + yyv43 := &x.HealthCheckNodePort + yym44 := z.DecBinary() + _ = yym44 if false { } else { - *((*int32)(yyv41)) = int32(r.DecodeInt(32)) + *((*int32)(yyv43)) = int32(r.DecodeInt(32)) + } + } + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l + } else { + yyb25 = r.CheckBreak() + } + if yyb25 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.PublishNotReadyAddresses = false + } else { + yyv45 := &x.PublishNotReadyAddresses + yym46 := z.DecBinary() + _ = yym46 + if false { + } else { + *((*bool)(yyv45)) = r.DecodeBool() } } for { - yyj23++ - if yyhl23 { - yyb23 = yyj23 > l + yyj25++ + if yyhl25 { + yyb25 = yyj25 > l } else { - yyb23 = r.CheckBreak() + yyb25 = r.CheckBreak() } - if yyb23 { + if yyb25 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj23-1, "") + z.DecStructFieldNotFound(yyj25-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index bde3a23dc8c..a702310fb45 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -1873,6 +1873,7 @@ var map_ServiceSpec = map[string]string{ "externalName": "externalName is the external reference that kubedns or equivalent will return as a CNAME record for this service. No proxying will be involved. Must be a valid DNS name and requires Type to be ExternalName.", "externalTrafficPolicy": "externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. \"Local\" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. \"Cluster\" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.", "healthCheckNodePort": "healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.", + "publishNotReadyAddresses": "publishNotReadyAddresses, when set to true, indicates that DNS implementations must publish the notReadyAddresses of subsets for the Endpoints associated with the Service. The default value is false. The primary use case for setting this field is to use a StatefulSet's Headless Service to propagate SRV records for its Pods without respect to their readiness for purpose of peer discovery. This field will replace the service.alpha.kubernetes.io/tolerate-unready-endpoints when that annotation is deprecated and all clients have been converted to use this field.", } func (ServiceSpec) SwaggerDoc() map[string]string { From 5cfc724b9ea908eb8b444ca1366a51f4d15a3f2a Mon Sep 17 00:00:00 2001 From: shashidharatd Date: Wed, 9 Aug 2017 11:27:04 +0530 Subject: [PATCH 145/183] Simplify hack/verify-flags-underscore.py --- hack/verify-flags-underscore.py | 145 ++------------------------------ 1 file changed, 5 insertions(+), 140 deletions(-) diff --git a/hack/verify-flags-underscore.py b/hack/verify-flags-underscore.py index 073864b25f1..de9aa65699e 100755 --- a/hack/verify-flags-underscore.py +++ b/hack/verify-flags-underscore.py @@ -25,7 +25,6 @@ import argparse parser = argparse.ArgumentParser() parser.add_argument("filenames", help="list of files to check, all files if unspecified", nargs='*') -parser.add_argument("-e", "--skip-exceptions", help="ignore hack/verify-flags/exceptions.txt and print all output", action="store_true") args = parser.parse_args() # Cargo culted from http://stackoverflow.com/questions/898669/how-can-i-detect-if-a-file-is-binary-non-text-in-python @@ -81,77 +80,10 @@ def get_all_files(rootdir): all_files.append(pathname) return all_files -def normalize_files(rootdir, files): - newfiles = [] - a = ['Godeps', '_gopath', 'third_party', '.git', 'exceptions.txt', 'known-flags.txt'] - for f in files: - if any(x in f for x in a): - continue - if f.endswith(".svg"): - continue - if f.endswith(".gliffy"): - continue - if f.endswith(".md"): - continue - if f.endswith(".yaml"): - continue - newfiles.append(f) - for i, f in enumerate(newfiles): - if not os.path.isabs(f): - newfiles[i] = os.path.join(rootdir, f) - return newfiles - -def line_has_bad_flag(line, flagre): - results = flagre.findall(line) - for result in results: - if not "_" in result: - return False - # this should exclude many cases where jinja2 templates use kube flags - # as variables, except it uses _ for the variable name - if "{% set" + result + "= \"" in line: - return False - if "pillar[" + result + "]" in line: - return False - if "grains" + result in line: - return False - # something common in juju variables... - if "template_data[" + result + "]" in line: - return False - return True - return False - -def check_known_flags(rootdir): - pathname = os.path.join(rootdir, "hack/verify-flags/known-flags.txt") - f = open(pathname, 'r') - flags = set(f.read().splitlines()) - f.close() - - illegal_known_flags = set() - for flag in flags: - if len(flag) > 0: - if not "-" in flag: - illegal_known_flags.add(flag) - - if len(illegal_known_flags) != 0: - print("All flags in hack/verify-flags/known-flags.txt should contain character -, found these flags without -") - l = list(illegal_known_flags) - l.sort() - print("%s" % "\n".join(l)) - sys.exit(1) - - -# The list of files might not be the whole repo. If someone only changed a -# couple of files we don't want to run all of the golang files looking for -# flags. Instead load the list of flags from hack/verify-flags/known-flags.txt -# If running the golang files finds a new flag not in that file, return an -# error and tell the user to add the flag to the flag list. -def get_flags(rootdir, files): - # preload the 'known' flags - pathname = os.path.join(rootdir, "hack/verify-flags/known-flags.txt") - f = open(pathname, 'r') - flags = set(f.read().splitlines()) - f.close() - +# Collects all the flags used in golang files and verifies the flags do +# not contain underscore. If any flag needs to be excluded from this check, +# need to add that flag in hack/verify-flags/excluded-flags.txt. +def check_underscore_in_flags(rootdir, files): # preload the 'known' flags which don't follow the - standard pathname = os.path.join(rootdir, "hack/verify-flags/excluded-flags.txt") f = open(pathname, 'r') @@ -165,7 +97,6 @@ def get_flags(rootdir, files): re.compile('.Duration[P]?\("([^"]*)",[^,]+,[^)]+\)'), re.compile('.StringSlice[P]?\("([^"]*)",[^,]+,[^)]+\)') ] - new_flags = set() new_excluded_flags = set() # walk all the files looking for any flags being declared for pathname in files: @@ -182,10 +113,6 @@ def get_flags(rootdir, files): continue if "_" in flag: new_excluded_flags.add(flag) - if not "-" in flag: - continue - if flag not in flags: - new_flags.add(flag) if len(new_excluded_flags) != 0: print("Found a flag declared with an _ but which is not explicitly listed as a valid flag name in hack/verify-flags/excluded-flags.txt") print("Are you certain this flag should not have been declared with an - instead?") @@ -193,79 +120,17 @@ def get_flags(rootdir, files): l.sort() print("%s" % "\n".join(l)) sys.exit(1) - if len(new_flags) != 0: - print("Found flags with character - in golang files not in the list of known flags. Please add these to hack/verify-flags/known-flags.txt") - l = list(new_flags) - l.sort() - print("%s" % "\n".join(l)) - sys.exit(1) - return list(flags) - -def flags_to_re(flags): - """turn the list of all flags we found into a regex find both - and _ versions""" - dashRE = re.compile('[-_]') - flagREs = [] - for flag in flags: - # turn all flag names into regexs which will find both types - newre = dashRE.sub('[-_]', flag) - # only match if there is not a leading or trailing alphanumeric character - flagREs.append("[^\w${]" + newre + "[^\w]") - # turn that list of regex strings into a single large RE - flagRE = "|".join(flagREs) - flagRE = re.compile(flagRE) - return flagRE - -def load_exceptions(rootdir): - exceptions = set() - if args.skip_exceptions: - return exceptions - exception_filename = os.path.join(rootdir, "hack/verify-flags/exceptions.txt") - exception_file = open(exception_filename, 'r') - for exception in exception_file.read().splitlines(): - out = exception.split(":", 1) - if len(out) != 2: - print("Invalid line in exceptions file: %s" % exception) - continue - filename = out[0] - line = out[1] - exceptions.add((filename, line)) - return exceptions def main(): rootdir = os.path.dirname(__file__) + "/../" rootdir = os.path.abspath(rootdir) - exceptions = load_exceptions(rootdir) - if len(args.filenames) > 0: files = args.filenames else: files = get_all_files(rootdir) - files = normalize_files(rootdir, files) - check_known_flags(rootdir) - - flags = get_flags(rootdir, files) - flagRE = flags_to_re(flags) - - bad_lines = [] - # walk all the file looking for any flag that was declared and now has an _ - for pathname in files: - relname = os.path.relpath(pathname, rootdir) - f = open(pathname, 'r') - for line in f.read().splitlines(): - if line_has_bad_flag(line, flagRE): - if (relname, line) not in exceptions: - bad_lines.append((relname, line)) - f.close() - - if len(bad_lines) != 0: - if not args.skip_exceptions: - print("Found illegal 'flag' usage. If these are false negatives you should run `hack/verify-flags-underscore.py -e > hack/verify-flags/exceptions.txt` to update the list.") - bad_lines.sort() - for (relname, line) in bad_lines: - print("%s:%s" % (relname, line)) - return 1 + check_underscore_in_flags(rootdir, files) if __name__ == "__main__": sys.exit(main()) From 37dd1219e236df8326639a96a8885ae15e7a0560 Mon Sep 17 00:00:00 2001 From: shashidharatd Date: Wed, 9 Aug 2017 11:28:48 +0530 Subject: [PATCH 146/183] Remove redundant files --- hack/verify-flags/exceptions.txt | 175 ------- hack/verify-flags/known-flags.txt | 741 ------------------------------ 2 files changed, 916 deletions(-) delete mode 100644 hack/verify-flags/exceptions.txt delete mode 100644 hack/verify-flags/known-flags.txt diff --git a/hack/verify-flags/exceptions.txt b/hack/verify-flags/exceptions.txt deleted file mode 100644 index 18b60054c16..00000000000 --- a/hack/verify-flags/exceptions.txt +++ /dev/null @@ -1,175 +0,0 @@ -Vagrantfile: node_ip = $node_ips[n] -cluster/addons/addon-manager/kube-addons.sh:# Create admission_control objects if defined before any other addon services. If the limits -cluster/aws/templates/configure-vm-aws.sh: # We set the hostname_override to the full EC2 private dns name -cluster/aws/templates/configure-vm-aws.sh: api_servers: '${API_SERVERS}' -cluster/aws/templates/configure-vm-aws.sh: env-to-grains "hostname_override" -cluster/aws/templates/configure-vm-aws.sh: env-to-grains "runtime_config" -cluster/aws/templates/configure-vm-aws.sh: kubelet_api_servers: '${KUBELET_APISERVER}' -cluster/centos/config-default.sh: etcd_servers="${prefix}http://${master_ip}:2379" -cluster/centos/config-default.sh: local etcd_servers="" -cluster/centos/util.sh: local node_ip=${node#*@} -cluster/gce/configure-vm.sh: advertise_address: '${EXTERNAL_IP}' -cluster/gce/configure-vm.sh: api_servers: '${KUBERNETES_MASTER_NAME}' -cluster/gce/configure-vm.sh: cloud_config: ${CLOUD_CONFIG} -cluster/gce/configure-vm.sh: env-to-grains "feature_gates" -cluster/gce/configure-vm.sh: env-to-grains "runtime_config" -cluster/gce/configure-vm.sh: kubelet_api_servers: '${KUBELET_APISERVER}' -cluster/gce/container-linux/configure-helper.sh: authorization_mode+=",ABAC" -cluster/gce/container-linux/configure-helper.sh: authorization_mode+=",Webhook" -cluster/gce/container-linux/configure-helper.sh: grep -o "{{ *pillar\.get('storage_backend', '\(.*\)') *}}" | \ -cluster/gce/container-linux/configure-helper.sh: sed -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@\1@g") -cluster/gce/container-linux/configure-helper.sh: sed -i -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@${STORAGE_BACKEND}@g" "${temp_file}" -cluster/gce/container-linux/configure-helper.sh: sed -i -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@\1@g" "${temp_file}" -cluster/gce/container-linux/configure-helper.sh: local api_servers="--master=https://${KUBERNETES_MASTER_NAME}" -cluster/gce/container-linux/configure-helper.sh: local authorization_mode="RBAC" -cluster/gce/container-linux/configure-helper.sh: sed -i -e "s@{{pillar\['allow_privileged'\]}}@true@g" "${src_file}" -cluster/gce/gci/configure-helper.sh: authorization_mode+=",ABAC" -cluster/gce/gci/configure-helper.sh: authorization_mode+=",Webhook" -cluster/gce/gci/configure-helper.sh: grep -o "{{ *pillar\.get('storage_backend', '\(.*\)') *}}" | \ -cluster/gce/gci/configure-helper.sh: sed -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@\1@g") -cluster/gce/gci/configure-helper.sh: sed -i -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@${STORAGE_BACKEND}@g" "${temp_file}" -cluster/gce/gci/configure-helper.sh: sed -i -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@\1@g" "${temp_file}" -cluster/gce/gci/configure-helper.sh: local api_servers="--master=https://${KUBERNETES_MASTER_NAME}" -cluster/gce/gci/configure-helper.sh: local authorization_mode="RBAC" -cluster/gce/gci/configure-helper.sh: sed -i -e "s@{{pillar\['allow_privileged'\]}}@true@g" "${src_file}" -cluster/gce/trusty/configure-helper.sh: grep -o "{{ *pillar\.get('storage_backend', '\(.*\)') *}}" | \ -cluster/gce/trusty/configure-helper.sh: sed -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@\1@g") -cluster/gce/trusty/configure-helper.sh: sed -i -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@${STORAGE_BACKEND}@g" "${temp_file}" -cluster/gce/trusty/configure-helper.sh: sed -i -e "s@{{ *pillar\.get('storage_backend', '\(.*\)') *}}@\1@g" "${temp_file}" -cluster/gce/trusty/configure-helper.sh: sed -i -e "s@{{pillar\['allow_privileged'\]}}@true@g" "${src_file}" -cluster/gce/util.sh: local node_ip=$(gcloud compute instances describe --project "${PROJECT}" --zone "${ZONE}" \ -cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py: context['pillar'] = {'num_nodes': get_node_count()} -cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py: ca_cert_path = layer_options.get('ca_certificate_path') -cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py: cluster_dns.set_dns_info(53, hookenv.config('dns_domain'), dns_ip) -cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py: ip = service_cidr().split('/')[0] -cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py: ip = service_cidr().split('/')[0] -cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py:def send_cluster_dns_detail(cluster_dns): -cluster/juju/layers/kubernetes-master/reactive/kubernetes_master.py:def service_cidr(): -cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py: context.update({'kube_api_endpoint': ','.join(api_servers), -cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py: ca_cert_path = layer_options.get('ca_certificate_path') -cluster/juju/layers/kubernetes-worker/reactive/kubernetes_worker.py:def configure_worker_services(api_servers, dns, cluster_cidr): -cluster/lib/logging.sh: local source_file=${BASH_SOURCE[$frame_no]} -cluster/lib/logging.sh: local source_file=${BASH_SOURCE[$stack_skip]} -cluster/log-dump/log-dump.sh:readonly report_dir="${1:-_artifacts}" -cluster/photon-controller/templates/salt-master.sh: api_servers: $MASTER_NAME -cluster/photon-controller/templates/salt-minion.sh: hostname_override: $(ip route get 1.1.1.1 | awk '{print $7}') -cluster/photon-controller/util.sh: node_ip=$(${PHOTON} vm networks "${node_id}" | grep -i $'\t'"00:0C:29" | grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -1 | awk -F'\t' '{print $3}') -cluster/photon-controller/util.sh: local cert_dir="/srv/kubernetes" -cluster/photon-controller/util.sh: node_name=${1} -cluster/photon-controller/util.sh: ssh_key=$(ssh-add -L | head -1) -cluster/rackspace/util.sh: local node_ip=$(nova show --minimal ${NODE_NAMES[$i]} \ -cluster/saltbase/salt/cluster-autoscaler/cluster-autoscaler.manifest:{% set params = pillar['autoscaler_mig_config'] + " " + cloud_config -%} -cluster/saltbase/salt/etcd/etcd.manifest: "value": "{{ pillar.get('storage_backend', 'etcd3') }}" -cluster/saltbase/salt/etcd/etcd.manifest:{% if pillar.get('storage_backend', 'etcd3') == 'etcd3' -%} -cluster/saltbase/salt/kube-admission-controls/init.sls:{% if 'LimitRanger' in pillar.get('admission_control', '') %} -cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest:{% set params = address + " " + storage_backend + " " + storage_media_type + " " + etcd_servers + " " + etcd_servers_overrides + " " + cloud_provider + " " + cloud_config + " " + runtime_config + " " + feature_gates + " " + admission_control + " " + max_requests_inflight + " " + target_ram_mb + " " + service_cluster_ip_range + " " + client_ca_file + basic_auth_file + " " + min_request_timeout + " " + enable_garbage_collector + " " + etcd_quorum_read + " " + audit_log -%} -cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest:{% if pillar.get('enable_hostpath_provisioner', '').lower() == 'true' -%} -cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest:{% set params = "--master=127.0.0.1:8080" + " " + cluster_name + " " + cluster_cidr + " " + allocate_node_cidrs + " " + service_cluster_ip_range + " " + terminated_pod_gc + " " + enable_garbage_collector + " " + cloud_provider + " " + cloud_config + " " + service_account_key + " " + log_level + " " + root_ca_file -%} -cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest:{% set params = params + " " + feature_gates -%} -cluster/saltbase/salt/kube-proxy/kube-proxy.manifest: - echo -998 > /proc/$$$/oom_score_adj && kube-proxy {{api_servers_with_port}} {{kubeconfig}} {{cluster_cidr}} --resource-container="" {{params}} 1>>/var/log/kube-proxy.log 2>&1 -cluster/saltbase/salt/kube-proxy/kube-proxy.manifest: {% set api_servers_with_port = api_servers + ":6443" -%} -cluster/saltbase/salt/kube-proxy/kube-proxy.manifest: {% set api_servers_with_port = api_servers -%} -cluster/saltbase/salt/kube-proxy/kube-proxy.manifest: {% set cluster_cidr=" --cluster-cidr=" + pillar['cluster_cidr'] %} -cluster/saltbase/salt/kube-proxy/kube-proxy.manifest:{% set params = log_level + " " + feature_gates + " " + test_args -%} -cluster/saltbase/salt/kube-scheduler/kube-scheduler.manifest:{% set params = params + log_level + " " + feature_gates + " " + scheduling_algorithm_provider -%} -cluster/saltbase/salt/kubelet/default: {% set api_servers_with_port = api_servers + ":6443" -%} -cluster/saltbase/salt/kubelet/default: {% set api_servers_with_port = api_servers -%} -cluster/saltbase/salt/kubelet/default: {% set enable_custom_metrics="--enable-custom-metrics=" + pillar['enable_custom_metrics'] %} -cluster/saltbase/salt/kubelet/default: {% set eviction_hard="--eviction-hard=" + pillar['eviction_hard'] %} -cluster/saltbase/salt/kubelet/default: {% set kubelet_port="--port=" + pillar['kubelet_port'] %} -cluster/saltbase/salt/kubelet/default: {% set node_labels="--node-labels=" + pillar['node_labels'] %} -cluster/saltbase/salt/kubelet/default:{% if grains['feature_gates'] is defined -%} -cluster/saltbase/salt/kubelet/default:{% if pillar.get('non_masquerade_cidr','') -%} -cluster/saltbase/salt/opencontrail-networking-master/init.sls: - 'SERVICE_CLUSTER_IP_RANGE': '{{ pillar.get('service_cluster_ip_range') }}' -cluster/saltbase/salt/opencontrail-networking-minion/init.sls: - 'SERVICE_CLUSTER_IP_RANGE': '{{ pillar.get('service_cluster_ip_range') }}' -cluster/saltbase/salt/supervisor/supervisor_watcher.sh:# Apply oom_score_adj: -901 to processes -cluster/ubuntu/util.sh: local node_ip=${1} -cluster/vagrant/provision-utils.sh: api_servers: '$(echo "$MASTER_IP" | sed -e "s/'/''/g")' -cluster/vagrant/provision-utils.sh: node_ip: '$(echo "$MASTER_IP" | sed -e "s/'/''/g")' -cluster/vagrant/provision-utils.sh: runtime_config: '$(echo "$RUNTIME_CONFIG" | sed -e "s/'/''/g")' -examples/cluster-dns/images/frontend/client.py: service_address = socket.gethostbyname(hostname) -examples/storage/cassandra/image/files/jvm.options:# information in cassandra.yaml (such as listen_address). -examples/storage/cassandra/image/files/jvm.options:#-Dcassandra.replace_address=listen_address or broadcast_address of dead node -examples/storage/cassandra/image/files/run.sh: cluster_name \ -examples/storage/cassandra/image/files/run.sh: listen_address \ -examples/storage/vitess/env.sh: node_ip=$(get_node_ip) -federation/cluster/common.sh: local cert_dir="${kube_temp}/easy-rsa-master/easyrsa3" -federation/deploy/config.json.sample: "cloud_provider": "gce", -federation/deploy/config.json.sample: "cloud_provider": "gce", -federation/deploy/config.json.sample: "cloud_provider": "gce", -federation/deploy/config.json.sample: "cluster_cidr": "10.180.0.0/14", -federation/deploy/config.json.sample: "cluster_cidr": "10.184.0.0/14", -federation/deploy/config.json.sample: "cluster_cidr": "10.188.0.0/14", -federation/deploy/config.json.sample: "cluster_name": "cluster1-kubernetes", -federation/deploy/config.json.sample: "cluster_name": "cluster2-kubernetes", -federation/deploy/config.json.sample: "cluster_name": "cluster3-kubernetes", -federation/deploy/config.json.sample: "kubernetes_version": "v1.4.0" -federation/deploy/config.json.sample: "kubernetes_version": "v1.4.0" -federation/deploy/config.json.sample: "kubernetes_version": "v1.4.0" -federation/deploy/config.json.sample: "num_nodes": 3, -federation/deploy/config.json.sample: "num_nodes": 3, -federation/deploy/config.json.sample: "num_nodes": 3, -hack/lib/util.sh: local api_port=$5 -hack/local-up-cluster.sh: advertise_address="--advertise_address=${API_HOST_IP}" -hack/local-up-cluster.sh: runtime_config="--runtime-config=${RUNTIME_CONFIG}" -hack/local-up-cluster.sh: advertise_address="" -hack/local-up-cluster.sh: runtime_config="" -hack/make-rules/test-e2e-node.sh: image_project=${IMAGE_PROJECT:-"google-containers"} -hack/make-rules/test-e2e-node.sh: delete_instances=${DELETE_INSTANCES:-"false"} -hack/make-rules/test-e2e-node.sh: image_project=${IMAGE_PROJECT:-"kubernetes-node-e2e-images"} -hack/test-update-storage-objects.sh: local storage_backend=${1:-"${STORAGE_BACKEND_ETCD2}"} -hack/test-update-storage-objects.sh: local storage_media_type=${3:-""} -hack/test-update-storage-objects.sh: local storage_versions=${2:-""} -hack/test-update-storage-objects.sh: source_file=${test_data[0]} -hack/test-update-storage-objects.sh:# source_file,resource,namespace,name,old_version,new_version -pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go: ContainerPort int32 `protobuf:"varint,2,opt,name=container_port,json=containerPort,proto3" json:"container_port,omitempty"` -pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go: OomScoreAdj int64 `protobuf:"varint,5,opt,name=oom_score_adj,json=oomScoreAdj,proto3" json:"oom_score_adj,omitempty"` -pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go: PodCidr string `protobuf:"bytes,1,opt,name=pod_cidr,json=podCidr,proto3" json:"pod_cidr,omitempty"` -pkg/kubelet/apis/cri/v1alpha1/runtime/api.pb.go: RuntimeConfig *RuntimeConfig `protobuf:"bytes,1,opt,name=runtime_config,json=runtimeConfig" json:"runtime_config,omitempty"` -pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto: RuntimeConfig runtime_config = 1; -pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto: int32 container_port = 2; -pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto: int64 oom_score_adj = 5; -pkg/kubelet/apis/cri/v1alpha1/runtime/api.proto: string pod_cidr = 1; -pkg/kubelet/cm/container_manager_linux.go: glog.V(3).Infof("Failed to apply oom_score_adj %d for pid %d: %v", oomScoreAdj, pid, err) -pkg/kubelet/cm/container_manager_linux.go: glog.V(5).Infof("attempting to apply oom_score_adj of %d to pid %d", oomScoreAdj, pid) -pkg/kubelet/dockershim/docker_checkpoint.go: ContainerPort *int32 `json:"container_port,omitempty"` -pkg/kubelet/network/hairpin/hairpin.go: hairpinModeRelativePath = "hairpin_mode" -pkg/kubelet/qos/policy_test.go: t.Errorf("oom_score_adj should be between %d and %d, but was %d", test.lowOOMScoreAdj, test.highOOMScoreAdj, oomScoreAdj) -pkg/kubelet/qos/policy_test.go: highOOMScoreAdj int // The min oom_score_adj score the container should be assigned. -pkg/kubelet/qos/policy_test.go: lowOOMScoreAdj int // The max oom_score_adj score the container should be assigned. -pkg/util/oom/oom_linux.go: return fmt.Errorf("invalid PID %d specified for oom_score_adj", pid) -pkg/util/oom/oom_linux.go: oomScoreAdjPath := path.Join("/proc", pidStr, "oom_score_adj") -pkg/util/oom/oom_linux.go:// Writes 'value' to /proc//oom_score_adj for all processes in cgroup cgroupName. -pkg/util/oom/oom_linux.go:// Writes 'value' to /proc//oom_score_adj. PID = 0 means self -test/e2e/common/configmap.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/configmap-volume/data-1"}, -test/e2e/common/configmap.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/configmap-volumes/create/data-1"}, -test/e2e/common/configmap.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/configmap-volumes/delete/data-1"}, -test/e2e/common/configmap.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/configmap-volumes/update/data-3"}, -test/e2e/common/downwardapi_volume.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=" + filePath}, -test/e2e/common/host_path.go: fmt.Sprintf("--file_content_in_loop=%v", filePath), -test/e2e/common/host_path.go: fmt.Sprintf("--file_content_in_loop=%v", filePathInReader), -test/e2e/common/host_path.go: fmt.Sprintf("--retry_time=%d", retryDuration), -test/e2e/common/host_path.go: fmt.Sprintf("--retry_time=%d", retryDuration), -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/projected-configmap-volume/data-1"}, -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/projected-configmap-volumes/create/data-1"}, -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/projected-configmap-volumes/delete/data-1"}, -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/projected-configmap-volumes/update/data-3"}, -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/projected-secret-volumes/create/data-1"}, -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/projected-secret-volumes/delete/data-1"}, -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/projected-secret-volumes/update/data-3"}, -test/e2e/common/projected.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=" + filePath}, -test/e2e/common/secrets.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/secret-volumes/create/data-1"}, -test/e2e/common/secrets.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/secret-volumes/delete/data-1"}, -test/e2e/common/secrets.go: Command: []string{"/mt", "--break_on_expected_content=false", "--retry_time=120", "--file_content_in_loop=/etc/secret-volumes/update/data-3"}, -test/e2e/network/no_snat.go: node_ip := v1.EnvVar{ -test/e2e_node/container_manager_test.go: return fmt.Errorf("expected pid %d's oom_score_adj to be %d; found %d", pid, expectedOOMScoreAdj, oomScore) -test/e2e_node/container_manager_test.go: return fmt.Errorf("expected pid %d's oom_score_adj to be < %d; found %d", pid, expectedMaxOOMScoreAdj, oomScore) -test/e2e_node/container_manager_test.go: return fmt.Errorf("expected pid %d's oom_score_adj to be >= %d; found %d", pid, expectedMinOOMScoreAdj, oomScore) -test/e2e_node/container_manager_test.go: return fmt.Errorf("failed to get oom_score_adj for %d", pid) -test/e2e_node/container_manager_test.go: return fmt.Errorf("failed to get oom_score_adj for %d: %v", pid, err) -test/e2e_node/container_manager_test.go: procfsPath := path.Join("/proc", strconv.Itoa(pid), "oom_score_adj") -test/e2e_node/node_container_manager_test.go: kubeReservedCgroup = "/kube_reserved" -test/e2e_node/node_container_manager_test.go: systemReservedCgroup = "/system_reserved" -test/images/mount-tester/mt.go: flag.BoolVar(&breakOnExpectedContent, "break_on_expected_content", true, "Break out of loop on expected content, (use with --file_content_in_loop flag only)") -test/images/mount-tester/mt.go: flag.IntVar(&retryDuration, "retry_time", 180, "Retry time during the loop") -test/images/mount-tester/mt.go: flag.StringVar(&readFileContentInLoopPath, "file_content_in_loop", "", "Path to read the file content in loop from") diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt deleted file mode 100644 index 8475a625dbf..00000000000 --- a/hack/verify-flags/known-flags.txt +++ /dev/null @@ -1,741 +0,0 @@ -accept-hosts -accept-paths -admission-control -admission-control-config-file -advertise-address -advertised-address -algorithm-provider -all-namespaces -allocate-node-cidrs -allowed-not-ready-nodes -allow-missing-template-keys -allow-privileged -anonymous-auth -api-burst -api-external-dns-names -api-prefix -api-rate -api-server-advertise-address -apiserver-advertise-address -apiserver-arg-overrides -apiserver-arg-overrides -apiserver-bind-port -apiserver-cert-extra-sans -apiserver-count -apiserver-count -apiserver-count -apiserver-count -api-server-port -api-server-port -api-servers -api-servers -apiserver-count -apiserver-count -api-server-port -api-servers -api-server-service-type -api-token -api-version -apiserver-arg-overrides -apiserver-count -apiserver-count -apiserver-enable-basic-auth -apiserver-enable-token-auth -attach-detach-reconcile-sync-period -audit-log-maxage -audit-log-maxbackup -audit-log-maxsize -audit-log-path -audit-policy-file -audit-webhook-config-file -audit-webhook-mode -authentication-kubeconfig -authentication-token-webhook -authentication-token-webhook-cache-ttl -authentication-token-webhook-config-file -authorization-kubeconfig -authorization-mode -authorization-policy-file -authorization-rbac-super-user -authorization-webhook-cache-authorized-ttl -authorization-webhook-cache-unauthorized-ttl -authorization-webhook-config-file -auth-provider -auth-provider -auth-provider-arg -auth-provider-arg -azure-container-registry-config -basic-auth-file -bench-pods -bench-quiet -bench-tasks -bench-workers -bind-address -bind-pods-burst -bind-pods-qps -bounding-dirs -build-dependencies -build-only -build-tag -ca-cert-path -cadvisor-port -cert-altnames -cert-dir -certificate-authority -cgroup-driver -cgroup-root -cgroups-per-qos -chaos-chance -cidr-allocator-type -clean-start -cleanup-iptables -client-ca-file -client-certificate -client-key -client-name -clientset-api-path -clientset-name -clientset-only -clientset-path -cloud-config -cloud-config-file -cloud-provider -cloud-provider-gce-lb-src-cidrs -cluster-cidr -cluster-context -cluster-dns -cluster-domain -cluster-ip -cluster-ip-range -cluster-monitor-period -cluster-name -cluster-signing-cert-file -cluster-signing-gke-kubeconfig -cluster-signing-gke-retry-backoff -cluster-signing-key-file -cluster-tag -cni-bin-dir -cni-conf-dir -concurrent-deployment-syncs -concurrent-endpoint-syncs -concurrent-gc-syncs -concurrent-job-syncs -concurrent-namespace-syncs -concurrent-replicaset-syncs -concurrent-resource-quota-syncs -concurrent-serviceaccount-token-syncs -concurrent-service-syncs -config-map -config-map-namespace -config-sync-period -configure-cloud-routes -conntrack-max -conntrack-max-per-core -conntrack-min -conntrack-tcp-timeout-close-wait -conntrack-tcp-timeout-established -consumer-port -consumer-service-name -consumer-service-namespace -container-port -container-runtime -container-runtime-endpoint -contain-pod-resources -contention-profiling -controllermanager-arg-overrides -controller-start-interval -core-kubeconfig -cors-allowed-origins -cpu-cfs-quota -cpu-percent -create-annotation -current-release-pr -current-replicas -daemonset-lookup-cache-size -data-dir -default-container-cpu-limit -default-container-mem-limit -delay-shutdown -delete-collection-workers -delete-instances -delete-local-data -delete-namespace -delete-namespace-on-failure -deleting-pods-burst -deleting-pods-qps -deployment-controller-sync-period -deployment-label-key -deserialization-cache-size -dest-file -disable-attach-detach-reconcile-sync -disable-filter -disable-kubenet -disable-log-dump -discovery-file -discovery-port -discovery-token -dns-bind-address -dns-domain -dns-port -dns-provider -dns-provider-config -dns-zone-name -dockercfg-path -docker-disable-shared-pid -docker-email -docker-endpoint -docker-exec-handler -docker-password -docker-server -docker-username -dockershim-checkpoint-dir -driver-port -drop-embedded-fields -dry-run -dump-logs-on-failure -duration-sec -dynamic-config-dir -e2e-output-dir -e2e-verify-service-account -enable-aggregator-routing -enable-controller-attach-detach -enable-custom-metrics -enable-debugging-handlers -enable-dynamic-provisioning -enable-garbage-collector -enable-garbage-collector -enable-garbage-collector -enable-hostpath-provisioner -enable-logs-handler -enable-server -enable-swagger-ui -enable-taint-manager -enforce-node-allocatable -etcd-address -etcd-cafile -etcd-certfile -etcd-config -etcd-keyfile -etcd-image -etcd-metrics-scrape-uri -etcd-metrics-scrape-uri -etcd-mutation-timeout -etcd-persistent-storage -etcd-prefix -etcd-pv-capacity -etcd-pv-storage-class -etcd-quorum-read -etcd-server -etcd-servers -etcd-servers-overrides -etcd-upgrade-storage -etcd-upgrade-version -etcd-version-scrape-uri -etcd-version-scrape-uri -event-burst -event-qps -event-ttl -eviction-hard -eviction-max-pod-grace-period -eviction-minimum-reclaim -eviction-pressure-transition-period -eviction-soft -eviction-soft-grace-period -executor-bindall -executor-logv -executor-path -executor-suicide-timeout -exit-on-lock-contention -experimental-allocatable-ignore-eviction -experimental-allowed-unsafe-sysctls -experimental-bootstrap-kubeconfig -bootstrap-kubeconfig -experimental-bootstrap-token-auth -experimental-check-node-capabilities-before-mount -experimental-cluster-signing-duration -experimental-cri -experimental-dockershim -experimental-dockershim-root-directory -experimental-fail-swap-on -experimental-kernel-memcg-notification -experimental-keystone-ca-file -experimental-keystone-url -experimental-keystone-url -experimental-mounter-path -experimental-nvidia-gpus -experimental-prefix -experimental-qos-reserved -external-etcd-cafile -external-etcd-certfile -external-etcd-endpoints -external-etcd-keyfile -external-hostname -external-ip -external-name -extra-peer-dirs -fail-swap-on -failover-timeout -failure-domains -fake-clientset -feature-gates -federated-api-burst -federated-api-qps -federated-kube-context -federation-config-from-cluster -federation-name -federation-system-namespace -federation-upgrade-target -file-check-frequency -file-suffix -flex-volume-plugin-dir -forward-services -framework-name -framework-store-uri -framework-weburi -from-env-file -from-file -from-literal -func-dest -fuzz-iters -garbage-collector-enabled -garbage-collector-enabled -gather-logs-sizes -gather-metrics-at-teardown -gather-resource-usage -gather-suite-metrics-at-teardown -gce-api-endpoint -gce-multizone -gce-project -gce-region -gce-service-account -gce-upgrade-script -gce-zone -ginkgo-flags -gke-cluster -go-header-file -google-json-key -grace-period -ha-domain -hairpin-mode -hard-pod-affinity-symmetric-weight -healthz-bind-address -healthz-port -heapster-namespace -heapster-port -heapster-scheme -heapster-service -horizontal-pod-autoscaler-sync-period -horizontal-pod-autoscaler-upscale-delay -horizontal-pod-autoscaler-downscale-delay -host-cluster-context -host-ipc-sources -hostname-override -host-network-sources -host-pid-sources -host-port-endpoints -host-system-namespace -hpa-scale-forbidden-window -http-check-frequency -http-port -ignore-daemonsets -ignore-not-found -image-config-file -image-description -image-gc-high-threshold -image-gc-low-threshold -image-project -image-pull-policy -image-pull-progress-deadline -image-service-endpoint -included-types-overrides -include-extended-apis -include-extended-apis -init-config-dir -initial-sync-timeout -input-base -input-dirs -insecure-bind-address -insecure-experimental-approve-all-kubelet-csrs-for-group -insecure-port -insecure-skip-tls-verify -instance-metadata -instance-name-prefix -internal-clientset-package -iptables-drop-bit -iptables-masquerade-bit -iptables-min-sync-period -iptables-sync-period -ir-data-source -ir-dbname -ir-hawkular -ir-influxdb-host -ir-namespace-only -ir-password -ir-user -jenkins-host -jenkins-jobs -junit-file-number -k8s-bin-dir -k8s-build-output -keep-gogoproto -keep-terminated-pod-volumes -km-path -kops-admin-access -kops-cluster -kops-kubernetes-version -kops-nodes -kops-ssh-key -kops-state -kops-up-timeout -kops-zones -kubeadm-cmd-skip -kubeadm-cmd-skip -kubeadm-path -kubeadm-path -kube-api-burst -kube-api-content-type -kube-api-qps -kubecfg-file -kubectl-path -kubelet-address -kubelet-api-servers -kubelet-cadvisor-port -kubelet-certificate-authority -kubelet-cgroups -kubelet-client-certificate -kubelet-client-key -kubelet-docker-endpoint -kubelet-enable-debugging-handlers -kubelet-flags -kubelet-host-network-sources -kubelet-https -kubelet-kubeconfig -kubelet-network-plugin -kubelet-pod-infra-container-image -kubelet-port -kubelet-preferred-address-types -kubelet-read-only-port -kubelet-root-dir -kubelet-sync-frequency -kubelet-timeout -kube-master -kube-master -kube-master -kube-master -kube-master-url -kube-master-url -kube-reserved -kube-reserved -kube-reserved-cgroup -kube-master-url -kube-reserved -kubemark-external-kubeconfig -kubernetes-anywhere-cluster -kubernetes-anywhere-path -kubernetes-anywhere-phase2-provider -kubernetes-anywhere-up-timeout -kubernetes-service-node-port -kubernetes-version -label-columns -large-cluster-size-threshold -last-release-pr -leader-elect -leader-elect-lease-duration -leader-elect-lock-type -leader-elect-renew-deadline -leader-elect-resource-lock -leader-elect-retry-period -lease-duration -leave-stdin-open -limit-bytes -listen-address -listers-package -load-balancer-ip -lock-file -log-flush-frequency -log-lines-total -logexporter-gcs-path -long-running-request-regexp -make-iptables-util-chains -make-symlinks -manifest-url -manifest-url-header -masquerade-all -master-os-distro -master-service-namespace -master-tag -max-concurrency -max-connection-bytes-per-sec -maximum-dead-containers -maximum-dead-containers-per-container -max-log-age -max-log-backups -max-log-size -max-mutating-requests-inflight -max-open-files -max-outgoing-burst -max-outgoing-qps -max-pods -max-requests-inflight -max-unavailable -metrics-bind-address -metrics-path -min-available -minimum-container-ttl-duration -minimum-image-ttl-duration -minion-max-log-age -minion-max-log-backups -minion-max-log-size -minion-path-override -min-pr-number -min-request-timeout -min-resync-period -namespace-sync-period -network-plugin -network-plugin-dir -network-plugin-mtu -node-cidr-mask-size -node-config-dir -node-eviction-rate -node-instance-group -node-ip -node-labels -node-max-log-age -node-max-log-backups -node-max-log-size -node-monitor-grace-period -node-monitor-period -node-name -node-os-distro -node-path-override -node-port -node-schedulable-timeout -node-startup-grace-period -node-status-update-frequency -node-sync-period -node-tag -no-headers -no-headers -non-masquerade-cidr -non-resource-url -no-suggestions -no-suggestions -num-nodes -oidc-ca-file -oidc-client-id -oidc-groups-claim -oidc-issuer-url -oidc-username-claim -only-idl -oom-score-adj -output-base -output-directory -output-file-base -output-package -output-patch -output-print-type -output-version -out-version -path-override -pod-cidr -pod-eviction-timeout -pod-infra-container-image -pod-manifest-path -pod-network-cidr -pod-running -pod-running-timeout -pods-per-core -policy-config-file -policy-configmap -policy-configmap-namespace -poll-interval -portal-net -prepull-images -private-mountns -prom-push-gateway -protect-kernel-defaults -proto-import -provider-id -proxy-bindall -proxy-client-cert-file -proxy-client-key-file -proxy-kubeconfig -proxy-logv -proxy-mode -proxy-port-range -public-address-override -pvclaimbinder-sync-period -pvclaimbinder-sync-period -pv-recycler-increment-timeout-nfs -pv-recycler-maximum-retry -pv-recycler-minimum-timeout-hostpath -pv-recycler-minimum-timeout-nfs -pv-recycler-pod-template-filepath-hostpath -pv-recycler-pod-template-filepath-nfs -pv-recycler-timeout-increment-hostpath -read-only-port -really-crash-for-testing -reconcile-cidr -reconcile-cooldown -reconcile-interval -register-node -register-retry-count -register-schedulable -register-with-taints -registry-burst -registry-qps -reject-methods -reject-paths -remove-node -repair-malformed-updates -replicaset-lookup-cache-size -replication-controller-lookup-cache-size -repo-root -report-dir -report-prefix -requestheader-allowed-names -requestheader-client-ca-file -requestheader-extra-headers-prefix -requestheader-group-headers -requestheader-username-headers -required-contexts -require-kubeconfig -resolv-conf -resource-container -resource-name -resource-quota-sync-period -resource-version -results-dir -rkt-api-endpoint -rkt-path -rkt-stage1-image -root-ca-file -root-dir -route-reconciliation-period -run-duration -run-kubelet-mode -run-proxy -run-services-mode -runtime-cgroups -runtime-config -runtime-request-timeout -save-config -schedule-pods-here -scheduler-config -scheduler-name -schema-cache-dir -scrape-timeout -seccomp-profile-root -secondary-node-eviction-rate -secret-name -secure-port -self-hosted -serialize-image-pulls -server-start-timeout -service-account-key-file -service-account-lookup -service-account-private-key-file -service-address -service-cidr -service-cluster-ip-range -service-dns-domain -service-dns-suffix -service-generator -service-node-port-range -service-node-ports -service-overrides -service-sync-period -session-affinity -show-all -show-events -show-kind -show-labels -shutdown-fd -shutdown-fifo -since-seconds -since-time -skip-generated-rewrite -skip-munges -skip-preflight-checks -skip-token-print -skip-unsafe -sort-by -source-file -ssh-env -ssh-key -ssh-keyfile -ssh-options -ssh-user -start-services -static-pods-config -stats-port -stop-services -storage-media-type -storage-version -storage-versions -streaming-connection-idle-timeout -suicide-timeout -sync-frequency -system-cgroups -system-pods-startup-timeout -system-reserved -system-reserved-cgroup -system-spec-file -system-spec-name -system-validate-mode -target-port -target-ram-mb -tcp-services -terminated-pod-gc-threshold -test-flags -test-timeout -tls-bootstrap-token -tls-ca-file -tls-cert-file -tls-private-key-file -tls-sni-cert-key -token-auth-file -token-ttl -to-version -to-version -ttl-keys-prefix -ttl-secs -type-src -udp-port -udp-timeout -unhealthy-zone-threshold -unix-socket -update-period -upgrade-image -upgrade-target -use-kubernetes-cluster-service -use-kubernetes-version -use-legacy-policy-config -use-real-proxier -use-service-account-credentials -user-whitelist -use-service-account-credentials -use-service-account-credentials -user-whitelist -use-service-account-credentials -use-taint-based-evictions -verify-only -versioned-clientset-package -viper-config -viper-config -volume-dir -volume-plugin-dir -volume-stats-agg-period -watch-cache -watch-cache-sizes -watch-only -whitelist-override-label -windows-line-endings -write-config-to -www-prefix -zone-id -zone-name -lock-object-name -lock-object-namespace - -horizontal-pod-autoscaler-use-rest-clients From 716156348dca0a0f9536d32f3344dcaa30b74330 Mon Sep 17 00:00:00 2001 From: shashidharatd Date: Thu, 18 May 2017 16:26:27 +0530 Subject: [PATCH 147/183] Add leader election support for controller-manager --- federation/apis/federation/v1beta1/types.go | 4 + .../app/controllermanager.go | 111 ++++++++++++++++-- .../app/options/options.go | 4 + 3 files changed, 112 insertions(+), 7 deletions(-) diff --git a/federation/apis/federation/v1beta1/types.go b/federation/apis/federation/v1beta1/types.go index 7451438a7dc..b8c9cca3fdb 100644 --- a/federation/apis/federation/v1beta1/types.go +++ b/federation/apis/federation/v1beta1/types.go @@ -154,4 +154,8 @@ const ( // FederationClusterSelectorAnnotation is used to determine placement of objects on federated clusters FederationClusterSelectorAnnotation string = "federation.alpha.kubernetes.io/cluster-selector" + + // FederationOnlyClusterSelector is the cluster selector to indicate any object in + // federation having this annotation should not be synced to federated clusters. + FederationOnlyClusterSelector string = "federation.kubernetes.io/federation-control-plane=true" ) diff --git a/federation/cmd/federation-controller-manager/app/controllermanager.go b/federation/cmd/federation-controller-manager/app/controllermanager.go index a30df506b82..19345963061 100644 --- a/federation/cmd/federation-controller-manager/app/controllermanager.go +++ b/federation/cmd/federation-controller-manager/app/controllermanager.go @@ -23,15 +23,24 @@ import ( "net" "net/http" "net/http/pprof" + "os" goruntime "runtime" "strconv" + "time" + "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/server/healthz" utilflag "k8s.io/apiserver/pkg/util/flag" + "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/tools/leaderelection" + "k8s.io/client-go/tools/leaderelection/resourcelock" + "k8s.io/client-go/tools/record" + federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" federationclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset" "k8s.io/kubernetes/federation/cmd/federation-controller-manager/app/options" "k8s.io/kubernetes/federation/pkg/federatedtypes" @@ -41,6 +50,8 @@ import ( servicecontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service" servicednscontroller "k8s.io/kubernetes/federation/pkg/federation-controller/service/dns" synccontroller "k8s.io/kubernetes/federation/pkg/federation-controller/sync" + "k8s.io/kubernetes/federation/pkg/federation-controller/util/eventsink" + "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/util/configz" "k8s.io/kubernetes/pkg/version" @@ -52,6 +63,11 @@ import ( "k8s.io/client-go/discovery" ) +const ( + apiserverWaitTimeout = 2 * time.Minute + apiserverRetryInterval = 2 * time.Second +) + // NewControllerManagerCommand creates a *cobra.Command object with default parameters func NewControllerManagerCommand() *cobra.Command { s := options.NewCMServer() @@ -112,17 +128,68 @@ func Run(s *options.CMServer) error { glog.Fatal(server.ListenAndServe()) }() - run := func() { - err := StartControllers(s, restClientCfg) + federationClientset, err := federationclientset.NewForConfig(restclient.AddUserAgent(restClientCfg, "federation-controller-manager")) + if err != nil { + glog.Fatalf("Invalid API configuration: %v", err) + } + + run := func(stop <-chan struct{}) { + err := StartControllers(s, restClientCfg, stop) glog.Fatalf("error running controllers: %v", err) panic("unreachable") } - run() + + if !s.LeaderElection.LeaderElect { + run(nil) + // unreachable + } + + if err := ensureFederationNamespace(federationClientset, s.FederationOnlyNamespace); err != nil { + glog.Fatalf("Failed to ensure federation only namespace %s: %v", s.FederationOnlyNamespace, err) + } + + leaderElectionClient := kubernetes.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, "leader-election")) + eventBroadcaster := record.NewBroadcaster() + eventBroadcaster.StartLogging(glog.Infof) + eventBroadcaster.StartRecordingToSink(eventsink.NewFederatedEventSink(federationClientset)) + recorder := eventBroadcaster.NewRecorder(api.Scheme, v1.EventSource{Component: "controller-manager"}) + + id, err := os.Hostname() + if err != nil { + return err + } + + rl := resourcelock.ConfigMapLock{ + ConfigMapMeta: metav1.ObjectMeta{ + Namespace: s.FederationOnlyNamespace, + Name: "federation-controller-manager-leader-election", + Annotations: map[string]string{ + federationapi.FederationClusterSelectorAnnotation: federationapi.FederationOnlyClusterSelector, + }}, + Client: leaderElectionClient.CoreV1(), + LockConfig: resourcelock.ResourceLockConfig{ + Identity: id, + EventRecorder: recorder, + }, + } + + leaderelection.RunOrDie(leaderelection.LeaderElectionConfig{ + Lock: &rl, + LeaseDuration: s.LeaderElection.LeaseDuration.Duration, + RenewDeadline: s.LeaderElection.RenewDeadline.Duration, + RetryPeriod: s.LeaderElection.RetryPeriod.Duration, + Callbacks: leaderelection.LeaderCallbacks{ + OnStartedLeading: run, + OnStoppedLeading: func() { + glog.Fatalf("leaderelection lost") + }, + }, + }) + panic("unreachable") } -func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) error { - stopChan := wait.NeverStop +func StartControllers(s *options.CMServer, restClientCfg *restclient.Config, stopChan <-chan struct{}) error { minimizeLatency := false discoveryClient := discovery.NewDiscoveryClientForConfigOrDie(restClientCfg) @@ -147,7 +214,7 @@ func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) err glog.V(3).Infof("Loading client config for service controller %q", servicecontroller.UserAgentName) scClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, servicecontroller.UserAgentName)) serviceController := servicecontroller.New(scClientset) - go serviceController.Run(s.ConcurrentServiceSyncs, wait.NeverStop) + go serviceController.Run(s.ConcurrentServiceSyncs, stopChan) } adapterSpecificArgs := make(map[string]interface{}) @@ -171,7 +238,7 @@ func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) err ingClientset := federationclientset.NewForConfigOrDie(restclient.AddUserAgent(restClientCfg, ingresscontroller.UserAgentName)) ingressController := ingresscontroller.NewIngressController(ingClientset) glog.V(3).Infof("Running ingress controller") - ingressController.Run(wait.NeverStop) + ingressController.Run(stopChan) } select {} @@ -219,3 +286,33 @@ func hasRequiredResources(serverResources []*metav1.APIResourceList, requiredRes } return true } + +func ensureFederationNamespace(clientset *federationclientset.Clientset, namespace string) error { + ns := v1.Namespace{ + ObjectMeta: metav1.ObjectMeta{ + Name: namespace, + Annotations: map[string]string{ + federationapi.FederationClusterSelectorAnnotation: federationapi.FederationOnlyClusterSelector, + }, + }, + } + // Probably this is the first operation by controller manager on api server. So retry the operation + // until timeout to handle scenario where api server is not yet ready. + err := wait.PollImmediate(apiserverRetryInterval, apiserverWaitTimeout, func() (bool, error) { + var err error + _, err = clientset.CoreV1().Namespaces().Get(namespace, metav1.GetOptions{}) + if err != nil { + if !errors.IsNotFound(err) { + glog.V(2).Infof("Failed to get namespace %s: %v", namespace, err) + return false, nil + } + _, err := clientset.CoreV1().Namespaces().Create(&ns) + if err != nil { + glog.V(2).Infof("Failed to create namespace %s: %v", namespace, err) + return false, nil + } + } + return true, nil + }) + return err +} diff --git a/federation/cmd/federation-controller-manager/app/options/options.go b/federation/cmd/federation-controller-manager/app/options/options.go index 7c1a87dae40..470d61e6052 100644 --- a/federation/cmd/federation-controller-manager/app/options/options.go +++ b/federation/cmd/federation-controller-manager/app/options/options.go @@ -83,6 +83,8 @@ type ControllerManagerConfiguration struct { // by cluster local hpas on local replicas, but too low a value can result in thrashing. // Higher values will result in slower response to scalibility conditions on local replicas. HpaScaleForbiddenWindow metav1.Duration `json:"HpaScaleForbiddenWindow"` + // pre-configured namespace name that would be created only in federation control plane + FederationOnlyNamespace string `json:"federationOnlyNamespaceName"` } // CMServer is the main context object for the controller manager. @@ -113,6 +115,7 @@ func NewCMServer() *CMServer { LeaderElection: leaderelectionconfig.DefaultLeaderElectionConfiguration(), Controllers: make(utilflag.ConfigurationMap), HpaScaleForbiddenWindow: metav1.Duration{Duration: 2 * time.Minute}, + FederationOnlyNamespace: "federation-only", }, } return &s @@ -144,5 +147,6 @@ func (s *CMServer) AddFlags(fs *pflag.FlagSet) { "A set of key=value pairs that describe controller configuration "+ "to enable/disable specific controllers. Key should be the resource name (like services) and value should be true or false. "+ "For example: services=false,ingresses=false") + fs.StringVar(&s.FederationOnlyNamespace, "federation-only-namespace", s.FederationOnlyNamespace, "Name of the namespace that would be created only in federation control plane.") leaderelectionconfig.BindFlags(&s.LeaderElection, fs) } From e6b54b6cfcb91890698a134c08f5fbf7fc2eeb59 Mon Sep 17 00:00:00 2001 From: shashidharatd Date: Thu, 18 May 2017 16:32:28 +0530 Subject: [PATCH 148/183] Auto generated files --- federation/cmd/federation-controller-manager/app/BUILD | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/federation/cmd/federation-controller-manager/app/BUILD b/federation/cmd/federation-controller-manager/app/BUILD index 0d7514b4aef..43bd19b51c7 100644 --- a/federation/cmd/federation-controller-manager/app/BUILD +++ b/federation/cmd/federation-controller-manager/app/BUILD @@ -16,6 +16,7 @@ go_library( ], tags = ["automanaged"], deps = [ + "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", "//federation/cmd/federation-controller-manager/app/options:go_default_library", "//federation/pkg/dnsprovider/providers/aws/route53:go_default_library", @@ -28,20 +29,28 @@ go_library( "//federation/pkg/federation-controller/service:go_default_library", "//federation/pkg/federation-controller/service/dns:go_default_library", "//federation/pkg/federation-controller/sync:go_default_library", + "//federation/pkg/federation-controller/util/eventsink:go_default_library", + "//pkg/api:go_default_library", "//pkg/util/configz:go_default_library", "//pkg/version:go_default_library", "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/healthz:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/tools/leaderelection:go_default_library", + "//vendor/k8s.io/client-go/tools/leaderelection/resourcelock:go_default_library", + "//vendor/k8s.io/client-go/tools/record:go_default_library", ], ) From 125a840445c74df4569f80ef0be0a262a5c19c3d Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Wed, 9 Aug 2017 22:34:13 -0400 Subject: [PATCH 149/183] Target godep script change verifications --- hack/verify-godeps.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/verify-godeps.sh b/hack/verify-godeps.sh index d56c0597629..91731ec8aaa 100755 --- a/hack/verify-godeps.sh +++ b/hack/verify-godeps.sh @@ -49,7 +49,7 @@ readonly branch=${1:-${KUBE_VERIFY_GIT_BRANCH:-master}} if ! [[ ${KUBE_FORCE_VERIFY_CHECKS:-} =~ ^[yY]$ ]] && \ ! kube::util::has_changes_against_upstream_branch "${branch}" 'Godeps/' && \ ! kube::util::has_changes_against_upstream_branch "${branch}" 'vendor/' && \ - ! kube::util::has_changes_against_upstream_branch "${branch}" 'hack/'; then + ! kube::util::has_changes_against_upstream_branch "${branch}" 'hack/.*godep'; then exit 0 fi From ad0ccc18b18604846501a4f937d61b277fc55000 Mon Sep 17 00:00:00 2001 From: Zhe Jin Date: Thu, 10 Aug 2017 11:07:38 +0800 Subject: [PATCH 150/183] code format for test/integration/framework/master_utils.go --- test/integration/framework/master_utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index 3f6b6c578ee..a6b9a85665a 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -28,9 +28,9 @@ import ( "time" "github.com/go-openapi/spec" + "github.com/golang/glog" "github.com/pborman/uuid" - "github.com/golang/glog" apps "k8s.io/api/apps/v1beta1" autoscaling "k8s.io/api/autoscaling/v1" certificates "k8s.io/api/certificates/v1beta1" From 15d8509a711efa062a1357cf1cfb398ec6e91023 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Mon, 7 Aug 2017 11:56:50 -0400 Subject: [PATCH 151/183] Add token group adder component --- .../apiserver/pkg/authentication/group/BUILD | 6 ++- .../authentication/group/token_group_adder.go | 48 +++++++++++++++++++ .../group/token_group_adder_test.go | 41 ++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder.go create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder_test.go diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD index d2485a55df7..32779ed1c28 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD @@ -10,7 +10,10 @@ load( go_test( name = "go_default_test", - srcs = ["group_adder_test.go"], + srcs = [ + "group_adder_test.go", + "token_group_adder_test.go", + ], library = ":go_default_library", tags = ["automanaged"], deps = [ @@ -24,6 +27,7 @@ go_library( srcs = [ "authenticated_group_adder.go", "group_adder.go", + "token_group_adder.go", ], tags = ["automanaged"], deps = [ diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder.go b/staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder.go new file mode 100644 index 00000000000..4f60d522f76 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder.go @@ -0,0 +1,48 @@ +/* +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. +*/ + +package group + +import ( + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" +) + +// TokenGroupAdder adds groups to an authenticated user.Info +type TokenGroupAdder struct { + // Authenticator is delegated to make the authentication decision + Authenticator authenticator.Token + // Groups are additional groups to add to the user.Info from a successful authentication + Groups []string +} + +// NewTokenGroupAdder wraps a token authenticator, and adds the specified groups to the returned user when authentication succeeds +func NewTokenGroupAdder(auth authenticator.Token, groups []string) authenticator.Token { + return &TokenGroupAdder{auth, groups} +} + +func (g *TokenGroupAdder) AuthenticateToken(token string) (user.Info, bool, error) { + u, ok, err := g.Authenticator.AuthenticateToken(token) + if err != nil || !ok { + return nil, ok, err + } + return &user.DefaultInfo{ + Name: u.GetName(), + UID: u.GetUID(), + Groups: append(u.GetGroups(), g.Groups...), + Extra: u.GetExtra(), + }, true, nil +} diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder_test.go b/staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder_test.go new file mode 100644 index 00000000000..cb5a0a65efe --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/group/token_group_adder_test.go @@ -0,0 +1,41 @@ +/* +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. +*/ + +package group + +import ( + "reflect" + "testing" + + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" +) + +func TestTokenGroupAdder(t *testing.T) { + adder := authenticator.Token( + NewTokenGroupAdder( + authenticator.TokenFunc(func(token string) (user.Info, bool, error) { + return &user.DefaultInfo{Name: "user", Groups: []string{"original"}}, true, nil + }), + []string{"added"}, + ), + ) + + user, _, _ := adder.AuthenticateToken("") + if !reflect.DeepEqual(user.GetGroups(), []string{"original", "added"}) { + t.Errorf("Expected original,added groups, got %#v", user.GetGroups()) + } +} From 1670ba58d5425caecbde8871b07521e9e5888f78 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Mon, 7 Aug 2017 11:57:03 -0400 Subject: [PATCH 152/183] Add token cache component --- staging/BUILD | 1 + .../pkg/authentication/token/cache/BUILD | 54 +++++++++ .../token/cache/cache_simple.go | 49 ++++++++ .../token/cache/cache_striped.go | 60 ++++++++++ .../authentication/token/cache/cache_test.go | 94 ++++++++++++++++ .../token/cache/cached_token_authenticator.go | 82 ++++++++++++++ .../cache/cached_token_authenticator_test.go | 105 ++++++++++++++++++ 7 files changed, 445 insertions(+) create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/cache/BUILD create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_simple.go create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_striped.go create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_test.go create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator_test.go diff --git a/staging/BUILD b/staging/BUILD index f86f9b10acb..b997ee21102 100644 --- a/staging/BUILD +++ b/staging/BUILD @@ -117,6 +117,7 @@ filegroup( "//staging/src/k8s.io/apiserver/pkg/authentication/request/websocket:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/request/x509:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/authentication/token/cache:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/user:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authorization/authorizer:all-srcs", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/BUILD new file mode 100644 index 00000000000..3384859f723 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/BUILD @@ -0,0 +1,54 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = [ + "cache_test.go", + "cached_token_authenticator_test.go", + ], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//vendor/github.com/pborman/uuid:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = [ + "cache_simple.go", + "cache_striped.go", + "cached_token_authenticator.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/util/cache:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_simple.go b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_simple.go new file mode 100644 index 00000000000..18d5692d7a7 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_simple.go @@ -0,0 +1,49 @@ +/* +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. +*/ + +package cache + +import ( + "time" + + lrucache "k8s.io/apimachinery/pkg/util/cache" + "k8s.io/apimachinery/pkg/util/clock" +) + +type simpleCache struct { + lru *lrucache.LRUExpireCache +} + +func newSimpleCache(size int, clock clock.Clock) cache { + return &simpleCache{lru: lrucache.NewLRUExpireCacheWithClock(size, clock)} +} + +func (c *simpleCache) get(key string) (*cacheRecord, bool) { + record, ok := c.lru.Get(key) + if !ok { + return nil, false + } + value, ok := record.(*cacheRecord) + return value, ok +} + +func (c *simpleCache) set(key string, value *cacheRecord, ttl time.Duration) { + c.lru.Add(key, value, ttl) +} + +func (c *simpleCache) remove(key string) { + c.lru.Remove(key) +} diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_striped.go b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_striped.go new file mode 100644 index 00000000000..b791260fc24 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_striped.go @@ -0,0 +1,60 @@ +/* +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. +*/ + +package cache + +import ( + "hash/fnv" + "time" +) + +// split cache lookups across N striped caches +type stripedCache struct { + stripeCount uint32 + keyFunc func(string) uint32 + caches []cache +} + +type keyFunc func(string) uint32 +type newCacheFunc func() cache + +func newStripedCache(stripeCount int, keyFunc keyFunc, newCacheFunc newCacheFunc) cache { + caches := []cache{} + for i := 0; i < stripeCount; i++ { + caches = append(caches, newCacheFunc()) + } + return &stripedCache{ + stripeCount: uint32(stripeCount), + keyFunc: keyFunc, + caches: caches, + } +} + +func (c *stripedCache) get(key string) (*cacheRecord, bool) { + return c.caches[c.keyFunc(key)%c.stripeCount].get(key) +} +func (c *stripedCache) set(key string, value *cacheRecord, ttl time.Duration) { + c.caches[c.keyFunc(key)%c.stripeCount].set(key, value, ttl) +} +func (c *stripedCache) remove(key string) { + c.caches[c.keyFunc(key)%c.stripeCount].remove(key) +} + +func fnvKeyFunc(key string) uint32 { + f := fnv.New32() + f.Write([]byte(key)) + return f.Sum32() +} diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_test.go b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_test.go new file mode 100644 index 00000000000..d4e9adff7a7 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cache_test.go @@ -0,0 +1,94 @@ +/* +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. +*/ + +package cache + +import ( + "math/rand" + "testing" + "time" + + "k8s.io/apimachinery/pkg/util/clock" + "k8s.io/apiserver/pkg/authentication/user" + + "github.com/pborman/uuid" +) + +func TestSimpleCache(t *testing.T) { + testCache(newSimpleCache(4096, clock.RealClock{}), t) +} + +func BenchmarkSimpleCache(b *testing.B) { + benchmarkCache(newSimpleCache(4096, clock.RealClock{}), b) +} + +func TestStripedCache(t *testing.T) { + testCache(newStripedCache(32, fnvKeyFunc, func() cache { return newSimpleCache(128, clock.RealClock{}) }), t) +} + +func BenchmarkStripedCache(b *testing.B) { + benchmarkCache(newStripedCache(32, fnvKeyFunc, func() cache { return newSimpleCache(128, clock.RealClock{}) }), b) +} + +func benchmarkCache(cache cache, b *testing.B) { + keys := []string{} + for i := 0; i < b.N; i++ { + key := uuid.NewRandom().String() + keys = append(keys, key) + } + + b.ResetTimer() + + b.SetParallelism(500) + b.RunParallel(func(pb *testing.PB) { + for pb.Next() { + key := keys[rand.Intn(b.N)] + _, ok := cache.get(key) + if ok { + cache.remove(key) + } else { + cache.set(key, &cacheRecord{}, time.Second) + } + } + }) +} + +func testCache(cache cache, t *testing.T) { + if result, ok := cache.get("foo"); ok || result != nil { + t.Errorf("Expected null, false, got %#v, %v", result, ok) + } + + record1 := &cacheRecord{user: &user.DefaultInfo{Name: "bob"}} + record2 := &cacheRecord{user: &user.DefaultInfo{Name: "alice"}} + + // when empty, record is stored + cache.set("foo", record1, time.Hour) + if result, ok := cache.get("foo"); !ok || result != record1 { + t.Errorf("Expected %#v, true, got %#v, %v", record1, ok) + } + + // newer record overrides + cache.set("foo", record2, time.Hour) + if result, ok := cache.get("foo"); !ok || result != record2 { + t.Errorf("Expected %#v, true, got %#v, %v", record2, ok) + } + + // removing the current value removes + cache.remove("foo") + if result, ok := cache.get("foo"); ok || result != nil { + t.Errorf("Expected null, false, got %#v, %v", result, ok) + } +} diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go new file mode 100644 index 00000000000..d2fd28d2346 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator.go @@ -0,0 +1,82 @@ +/* +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. +*/ + +package cache + +import ( + "time" + + utilclock "k8s.io/apimachinery/pkg/util/clock" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" +) + +// cacheRecord holds the three return values of the authenticator.Token AuthenticateToken method +type cacheRecord struct { + user user.Info + ok bool + err error +} + +type cachedTokenAuthenticator struct { + authenticator authenticator.Token + + successTTL time.Duration + failureTTL time.Duration + + cache cache +} + +type cache interface { + // given a key, return the record, and whether or not it existed + get(key string) (value *cacheRecord, exists bool) + // caches the record for the key + set(key string, value *cacheRecord, ttl time.Duration) + // removes the record for the key + remove(key string) +} + +// New returns a token authenticator that caches the results of the specified authenticator. A ttl of 0 bypasses the cache. +func New(authenticator authenticator.Token, successTTL, failureTTL time.Duration) authenticator.Token { + return newWithClock(authenticator, successTTL, failureTTL, utilclock.RealClock{}) +} + +func newWithClock(authenticator authenticator.Token, successTTL, failureTTL time.Duration, clock utilclock.Clock) authenticator.Token { + return &cachedTokenAuthenticator{ + authenticator: authenticator, + successTTL: successTTL, + failureTTL: failureTTL, + cache: newStripedCache(32, fnvKeyFunc, func() cache { return newSimpleCache(128, clock) }), + } +} + +// AuthenticateToken implements authenticator.Token +func (a *cachedTokenAuthenticator) AuthenticateToken(token string) (user.Info, bool, error) { + if record, ok := a.cache.get(token); ok { + return record.user, record.ok, record.err + } + + user, ok, err := a.authenticator.AuthenticateToken(token) + + switch { + case ok && a.successTTL > 0: + a.cache.set(token, &cacheRecord{user: user, ok: ok, err: err}, a.successTTL) + case !ok && a.failureTTL > 0: + a.cache.set(token, &cacheRecord{user: user, ok: ok, err: err}, a.failureTTL) + } + + return user, ok, err +} diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator_test.go b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator_test.go new file mode 100644 index 00000000000..200d1147841 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/cache/cached_token_authenticator_test.go @@ -0,0 +1,105 @@ +/* +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. +*/ + +package cache + +import ( + "reflect" + "testing" + "time" + + utilclock "k8s.io/apimachinery/pkg/util/clock" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" +) + +func TestCachedTokenAuthenticator(t *testing.T) { + var ( + calledWithToken []string + + resultUsers map[string]user.Info + resultOk bool + resultErr error + ) + fakeAuth := authenticator.TokenFunc(func(token string) (user.Info, bool, error) { + calledWithToken = append(calledWithToken, token) + return resultUsers[token], resultOk, resultErr + }) + fakeClock := utilclock.NewFakeClock(time.Now()) + + a := newWithClock(fakeAuth, time.Minute, 0, fakeClock) + + calledWithToken, resultUsers, resultOk, resultErr = []string{}, nil, false, nil + a.AuthenticateToken("bad1") + a.AuthenticateToken("bad2") + a.AuthenticateToken("bad3") + a.AuthenticateToken("bad1") + a.AuthenticateToken("bad2") + a.AuthenticateToken("bad3") + if !reflect.DeepEqual(calledWithToken, []string{"bad1", "bad2", "bad3", "bad1", "bad2", "bad3"}) { + t.Errorf("Expected failing calls to bypass cache, got %v", calledWithToken) + } + + // reset calls, make the backend return success for three user tokens + calledWithToken = []string{} + resultUsers, resultOk, resultErr = map[string]user.Info{}, true, nil + resultUsers["usertoken1"] = &user.DefaultInfo{Name: "user1"} + resultUsers["usertoken2"] = &user.DefaultInfo{Name: "user2"} + resultUsers["usertoken3"] = &user.DefaultInfo{Name: "user3"} + + // populate cache + if user, ok, err := a.AuthenticateToken("usertoken1"); err != nil || !ok || user.GetName() != "user1" { + t.Errorf("Expected user1") + } + if user, ok, err := a.AuthenticateToken("usertoken2"); err != nil || !ok || user.GetName() != "user2" { + t.Errorf("Expected user2") + } + if user, ok, err := a.AuthenticateToken("usertoken3"); err != nil || !ok || user.GetName() != "user3" { + t.Errorf("Expected user3") + } + if !reflect.DeepEqual(calledWithToken, []string{"usertoken1", "usertoken2", "usertoken3"}) { + t.Errorf("Expected token calls, got %v", calledWithToken) + } + + // reset calls, make the backend return failures + calledWithToken = []string{} + resultUsers, resultOk, resultErr = nil, false, nil + + // authenticate calls still succeed and backend is not hit + if user, ok, err := a.AuthenticateToken("usertoken1"); err != nil || !ok || user.GetName() != "user1" { + t.Errorf("Expected user1") + } + if user, ok, err := a.AuthenticateToken("usertoken2"); err != nil || !ok || user.GetName() != "user2" { + t.Errorf("Expected user2") + } + if user, ok, err := a.AuthenticateToken("usertoken3"); err != nil || !ok || user.GetName() != "user3" { + t.Errorf("Expected user3") + } + if !reflect.DeepEqual(calledWithToken, []string{}) { + t.Errorf("Expected no token calls, got %v", calledWithToken) + } + + // skip forward in time + fakeClock.Step(2 * time.Minute) + + // backend is consulted again and fails + a.AuthenticateToken("usertoken1") + a.AuthenticateToken("usertoken2") + a.AuthenticateToken("usertoken3") + if !reflect.DeepEqual(calledWithToken, []string{"usertoken1", "usertoken2", "usertoken3"}) { + t.Errorf("Expected token calls, got %v", calledWithToken) + } +} From 4fd8196cf56aa7884f5a385017b2be651a259e59 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Mon, 7 Aug 2017 11:57:13 -0400 Subject: [PATCH 153/183] Add union token authenticator --- staging/BUILD | 1 + .../pkg/authentication/token/union/BUILD | 41 +++++ .../pkg/authentication/token/union/union.go | 70 ++++++++ .../token/union/unionauth_test.go | 158 ++++++++++++++++++ 4 files changed, 270 insertions(+) create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/union/BUILD create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/union/union.go create mode 100644 staging/src/k8s.io/apiserver/pkg/authentication/token/union/unionauth_test.go diff --git a/staging/BUILD b/staging/BUILD index b997ee21102..181807d6438 100644 --- a/staging/BUILD +++ b/staging/BUILD @@ -119,6 +119,7 @@ filegroup( "//staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/token/cache:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile:all-srcs", + "//staging/src/k8s.io/apiserver/pkg/authentication/token/union:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authentication/user:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authorization/authorizer:all-srcs", "//staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory:all-srcs", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/union/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/token/union/BUILD new file mode 100644 index 00000000000..7a6b23db96b --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/union/BUILD @@ -0,0 +1,41 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["unionauth_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], +) + +go_library( + name = "go_default_library", + srcs = ["union.go"], + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/union/union.go b/staging/src/k8s.io/apiserver/pkg/authentication/token/union/union.go new file mode 100644 index 00000000000..7cc391bc488 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/union/union.go @@ -0,0 +1,70 @@ +/* +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. +*/ + +package union + +import ( + utilerrors "k8s.io/apimachinery/pkg/util/errors" + "k8s.io/apiserver/pkg/authentication/authenticator" + "k8s.io/apiserver/pkg/authentication/user" +) + +// unionAuthTokenHandler authenticates tokens using a chain of authenticator.Token objects +type unionAuthTokenHandler struct { + // Handlers is a chain of request authenticators to delegate to + Handlers []authenticator.Token + // FailOnError determines whether an error returns short-circuits the chain + FailOnError bool +} + +// New returns a token authenticator that validates credentials using a chain of authenticator.Token objects. +// The entire chain is tried until one succeeds. If all fail, an aggregate error is returned. +func New(authTokenHandlers ...authenticator.Token) authenticator.Token { + if len(authTokenHandlers) == 1 { + return authTokenHandlers[0] + } + return &unionAuthTokenHandler{Handlers: authTokenHandlers, FailOnError: false} +} + +// NewFailOnError returns a token authenticator that validates credentials using a chain of authenticator.Token objects. +// The first error short-circuits the chain. +func NewFailOnError(authTokenHandlers ...authenticator.Token) authenticator.Token { + if len(authTokenHandlers) == 1 { + return authTokenHandlers[0] + } + return &unionAuthTokenHandler{Handlers: authTokenHandlers, FailOnError: true} +} + +// AuthenticateToken authenticates the token using a chain of authenticator.Token objects. +func (authHandler *unionAuthTokenHandler) AuthenticateToken(token string) (user.Info, bool, error) { + var errlist []error + for _, currAuthRequestHandler := range authHandler.Handlers { + info, ok, err := currAuthRequestHandler.AuthenticateToken(token) + if err != nil { + if authHandler.FailOnError { + return info, ok, err + } + errlist = append(errlist, err) + continue + } + + if ok { + return info, ok, err + } + } + + return nil, false, utilerrors.NewAggregate(errlist) +} diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/union/unionauth_test.go b/staging/src/k8s.io/apiserver/pkg/authentication/token/union/unionauth_test.go new file mode 100644 index 00000000000..1107c575467 --- /dev/null +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/union/unionauth_test.go @@ -0,0 +1,158 @@ +/* +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. +*/ + +package union + +import ( + "errors" + "reflect" + "strings" + "testing" + + "k8s.io/apiserver/pkg/authentication/user" +) + +type mockAuthRequestHandler struct { + returnUser user.Info + isAuthenticated bool + err error +} + +var ( + user1 = &user.DefaultInfo{Name: "fresh_ferret", UID: "alfa"} + user2 = &user.DefaultInfo{Name: "elegant_sheep", UID: "bravo"} +) + +func (mock *mockAuthRequestHandler) AuthenticateToken(token string) (user.Info, bool, error) { + return mock.returnUser, mock.isAuthenticated, mock.err +} + +func TestAuthenticateTokenSecondPasses(t *testing.T) { + handler1 := &mockAuthRequestHandler{returnUser: user1} + handler2 := &mockAuthRequestHandler{returnUser: user2, isAuthenticated: true} + authRequestHandler := New(handler1, handler2) + + authenticatedUser, isAuthenticated, err := authRequestHandler.AuthenticateToken("foo") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if !isAuthenticated { + t.Errorf("Unexpectedly unauthenticated: %v", isAuthenticated) + } + if !reflect.DeepEqual(user2, authenticatedUser) { + t.Errorf("Expected %v, got %v", user2, authenticatedUser) + } +} + +func TestAuthenticateTokenFirstPasses(t *testing.T) { + handler1 := &mockAuthRequestHandler{returnUser: user1, isAuthenticated: true} + handler2 := &mockAuthRequestHandler{returnUser: user2} + authRequestHandler := New(handler1, handler2) + + authenticatedUser, isAuthenticated, err := authRequestHandler.AuthenticateToken("foo") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if !isAuthenticated { + t.Errorf("Unexpectedly unauthenticated: %v", isAuthenticated) + } + if !reflect.DeepEqual(user1, authenticatedUser) { + t.Errorf("Expected %v, got %v", user1, authenticatedUser) + } +} + +func TestAuthenticateTokenSuppressUnnecessaryErrors(t *testing.T) { + handler1 := &mockAuthRequestHandler{err: errors.New("first")} + handler2 := &mockAuthRequestHandler{isAuthenticated: true} + authRequestHandler := New(handler1, handler2) + + _, isAuthenticated, err := authRequestHandler.AuthenticateToken("foo") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if !isAuthenticated { + t.Errorf("Unexpectedly unauthenticated: %v", isAuthenticated) + } +} + +func TestAuthenticateTokenNoAuthenticators(t *testing.T) { + authRequestHandler := New() + + authenticatedUser, isAuthenticated, err := authRequestHandler.AuthenticateToken("foo") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if isAuthenticated { + t.Errorf("Unexpectedly authenticated: %v", isAuthenticated) + } + if authenticatedUser != nil { + t.Errorf("Unexpected authenticatedUser: %v", authenticatedUser) + } +} + +func TestAuthenticateTokenNonePass(t *testing.T) { + handler1 := &mockAuthRequestHandler{} + handler2 := &mockAuthRequestHandler{} + authRequestHandler := New(handler1, handler2) + + _, isAuthenticated, err := authRequestHandler.AuthenticateToken("foo") + if err != nil { + t.Errorf("Unexpected error: %v", err) + } + if isAuthenticated { + t.Errorf("Unexpectedly authenticated: %v", isAuthenticated) + } +} + +func TestAuthenticateTokenAdditiveErrors(t *testing.T) { + handler1 := &mockAuthRequestHandler{err: errors.New("first")} + handler2 := &mockAuthRequestHandler{err: errors.New("second")} + authRequestHandler := New(handler1, handler2) + + _, isAuthenticated, err := authRequestHandler.AuthenticateToken("foo") + if err == nil { + t.Errorf("Expected an error") + } + if !strings.Contains(err.Error(), "first") { + t.Errorf("Expected error containing %v, got %v", "first", err) + } + if !strings.Contains(err.Error(), "second") { + t.Errorf("Expected error containing %v, got %v", "second", err) + } + if isAuthenticated { + t.Errorf("Unexpectedly authenticated: %v", isAuthenticated) + } +} + +func TestAuthenticateTokenFailEarly(t *testing.T) { + handler1 := &mockAuthRequestHandler{err: errors.New("first")} + handler2 := &mockAuthRequestHandler{err: errors.New("second")} + authRequestHandler := NewFailOnError(handler1, handler2) + + _, isAuthenticated, err := authRequestHandler.AuthenticateToken("foo") + if err == nil { + t.Errorf("Expected an error") + } + if !strings.Contains(err.Error(), "first") { + t.Errorf("Expected error containing %v, got %v", "first", err) + } + if strings.Contains(err.Error(), "second") { + t.Errorf("Did not expect second error, got %v", err) + } + if isAuthenticated { + t.Errorf("Unexpectedly authenticated: %v", isAuthenticated) + } +} From 0458fac8c0788de022acf9308721413257392bf9 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Mon, 7 Aug 2017 11:55:35 -0400 Subject: [PATCH 154/183] Simplify bearer token auth chain, cache successful authentications --- .../app/options/options_test.go | 4 ++- pkg/kubeapiserver/authenticator/BUILD | 2 ++ pkg/kubeapiserver/authenticator/config.go | 31 ++++++++++++------- pkg/kubeapiserver/options/authentication.go | 22 +++++++++++-- 4 files changed, 44 insertions(+), 15 deletions(-) diff --git a/cmd/kube-apiserver/app/options/options_test.go b/cmd/kube-apiserver/app/options/options_test.go index a7c9274303a..b96a878ec27 100644 --- a/cmd/kube-apiserver/app/options/options_test.go +++ b/cmd/kube-apiserver/app/options/options_test.go @@ -166,7 +166,9 @@ func TestAddFlagsFlag(t *testing.T) { ServiceAccounts: &kubeoptions.ServiceAccountAuthenticationOptions{ Lookup: true, }, - TokenFile: &kubeoptions.TokenFileAuthenticationOptions{}, + TokenFile: &kubeoptions.TokenFileAuthenticationOptions{}, + TokenSuccessCacheTTL: 10 * time.Second, + TokenFailureCacheTTL: 0, }, Authorization: &kubeoptions.BuiltInAuthorizationOptions{ Mode: "AlwaysDeny", diff --git a/pkg/kubeapiserver/authenticator/BUILD b/pkg/kubeapiserver/authenticator/BUILD index 5375c49a7a1..218dd289d4c 100644 --- a/pkg/kubeapiserver/authenticator/BUILD +++ b/pkg/kubeapiserver/authenticator/BUILD @@ -23,7 +23,9 @@ go_library( "//vendor/k8s.io/apiserver/pkg/authentication/request/union:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/request/websocket:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/request/x509:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/token/cache:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/token/tokenfile:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/token/union:go_default_library", "//vendor/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone:go_default_library", "//vendor/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile:go_default_library", "//vendor/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth:go_default_library", diff --git a/pkg/kubeapiserver/authenticator/config.go b/pkg/kubeapiserver/authenticator/config.go index 418b616855c..72261cfdac4 100644 --- a/pkg/kubeapiserver/authenticator/config.go +++ b/pkg/kubeapiserver/authenticator/config.go @@ -30,7 +30,9 @@ import ( "k8s.io/apiserver/pkg/authentication/request/union" "k8s.io/apiserver/pkg/authentication/request/websocket" "k8s.io/apiserver/pkg/authentication/request/x509" + tokencache "k8s.io/apiserver/pkg/authentication/token/cache" "k8s.io/apiserver/pkg/authentication/token/tokenfile" + tokenunion "k8s.io/apiserver/pkg/authentication/token/union" "k8s.io/apiserver/plugin/pkg/authenticator/password/keystone" "k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile" "k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth" @@ -62,6 +64,9 @@ type AuthenticatorConfig struct { WebhookTokenAuthnConfigFile string WebhookTokenAuthnCacheTTL time.Duration + TokenSuccessCacheTTL time.Duration + TokenFailureCacheTTL time.Duration + RequestHeaderConfig *authenticatorfactory.RequestHeaderConfig // TODO, this is the only non-serializable part of the entire config. Factor it out into a clientconfig @@ -73,9 +78,9 @@ type AuthenticatorConfig struct { // Kubernetes authentication mechanisms. func (config AuthenticatorConfig) New() (authenticator.Request, *spec.SecurityDefinitions, error) { var authenticators []authenticator.Request + var tokenAuthenticators []authenticator.Token securityDefinitions := spec.SecurityDefinitions{} hasBasicAuth := false - hasTokenAuth := false // front-proxy, BasicAuth methods, local first, then remote // Add the front proxy authenticator if requested @@ -125,22 +130,19 @@ func (config AuthenticatorConfig) New() (authenticator.Request, *spec.SecurityDe if err != nil { return nil, nil, err } - authenticators = append(authenticators, bearertoken.New(tokenAuth), websocket.NewProtocolAuthenticator(tokenAuth)) - hasTokenAuth = true + tokenAuthenticators = append(tokenAuthenticators, tokenAuth) } if len(config.ServiceAccountKeyFiles) > 0 { serviceAccountAuth, err := newServiceAccountAuthenticator(config.ServiceAccountKeyFiles, config.ServiceAccountLookup, config.ServiceAccountTokenGetter) if err != nil { return nil, nil, err } - authenticators = append(authenticators, bearertoken.New(serviceAccountAuth), websocket.NewProtocolAuthenticator(serviceAccountAuth)) - hasTokenAuth = true + tokenAuthenticators = append(tokenAuthenticators, serviceAccountAuth) } if config.BootstrapToken { if config.BootstrapTokenAuthenticator != nil { // TODO: This can sometimes be nil because of - authenticators = append(authenticators, bearertoken.New(config.BootstrapTokenAuthenticator), websocket.NewProtocolAuthenticator(config.BootstrapTokenAuthenticator)) - hasTokenAuth = true + tokenAuthenticators = append(tokenAuthenticators, config.BootstrapTokenAuthenticator) } } // NOTE(ericchiang): Keep the OpenID Connect after Service Accounts. @@ -154,16 +156,14 @@ func (config AuthenticatorConfig) New() (authenticator.Request, *spec.SecurityDe if err != nil { return nil, nil, err } - authenticators = append(authenticators, bearertoken.New(oidcAuth), websocket.NewProtocolAuthenticator(oidcAuth)) - hasTokenAuth = true + tokenAuthenticators = append(tokenAuthenticators, oidcAuth) } if len(config.WebhookTokenAuthnConfigFile) > 0 { webhookTokenAuth, err := newWebhookTokenAuthenticator(config.WebhookTokenAuthnConfigFile, config.WebhookTokenAuthnCacheTTL) if err != nil { return nil, nil, err } - authenticators = append(authenticators, bearertoken.New(webhookTokenAuth), websocket.NewProtocolAuthenticator(webhookTokenAuth)) - hasTokenAuth = true + tokenAuthenticators = append(tokenAuthenticators, webhookTokenAuth) } if hasBasicAuth { @@ -175,7 +175,14 @@ func (config AuthenticatorConfig) New() (authenticator.Request, *spec.SecurityDe } } - if hasTokenAuth { + if len(tokenAuthenticators) > 0 { + // Union the token authenticators + tokenAuth := tokenunion.New(tokenAuthenticators...) + // Optionally cache authentication results + if config.TokenSuccessCacheTTL > 0 || config.TokenFailureCacheTTL > 0 { + tokenAuth = tokencache.New(tokenAuth, config.TokenSuccessCacheTTL, config.TokenFailureCacheTTL) + } + authenticators = append(authenticators, bearertoken.New(tokenAuth), websocket.NewProtocolAuthenticator(tokenAuth)) securityDefinitions["BearerToken"] = &spec.SecurityScheme{ SecuritySchemeProps: spec.SecuritySchemeProps{ Type: "apiKey", diff --git a/pkg/kubeapiserver/options/authentication.go b/pkg/kubeapiserver/options/authentication.go index 89a5219d6af..cc21d4cacb2 100644 --- a/pkg/kubeapiserver/options/authentication.go +++ b/pkg/kubeapiserver/options/authentication.go @@ -41,6 +41,9 @@ type BuiltInAuthenticationOptions struct { ServiceAccounts *ServiceAccountAuthenticationOptions TokenFile *TokenFileAuthenticationOptions WebHook *WebHookAuthenticationOptions + + TokenSuccessCacheTTL time.Duration + TokenFailureCacheTTL time.Duration } type AnonymousAuthenticationOptions struct { @@ -83,7 +86,10 @@ type WebHookAuthenticationOptions struct { } func NewBuiltInAuthenticationOptions() *BuiltInAuthenticationOptions { - return &BuiltInAuthenticationOptions{} + return &BuiltInAuthenticationOptions{ + TokenSuccessCacheTTL: 10 * time.Second, + TokenFailureCacheTTL: 0 * time.Second, + } } func (s *BuiltInAuthenticationOptions) WithAll() *BuiltInAuthenticationOptions { @@ -250,7 +256,10 @@ func (s *BuiltInAuthenticationOptions) AddFlags(fs *pflag.FlagSet) { } func (s *BuiltInAuthenticationOptions) ToAuthenticationConfig() authenticator.AuthenticatorConfig { - ret := authenticator.AuthenticatorConfig{} + ret := authenticator.AuthenticatorConfig{ + TokenSuccessCacheTTL: s.TokenSuccessCacheTTL, + TokenFailureCacheTTL: s.TokenFailureCacheTTL, + } if s.Anonymous != nil { ret.Anonymous = s.Anonymous.Allow @@ -297,6 +306,15 @@ func (s *BuiltInAuthenticationOptions) ToAuthenticationConfig() authenticator.Au if s.WebHook != nil { ret.WebhookTokenAuthnConfigFile = s.WebHook.ConfigFile ret.WebhookTokenAuthnCacheTTL = s.WebHook.CacheTTL + + if len(s.WebHook.ConfigFile) > 0 && s.WebHook.CacheTTL > 0 { + if s.TokenSuccessCacheTTL > 0 && s.WebHook.CacheTTL < s.TokenSuccessCacheTTL { + glog.Warningf("the webhook cache ttl of %s is shorter than the overall cache ttl of %s for successful token authentication attempts.", s.WebHook.CacheTTL, s.TokenSuccessCacheTTL) + } + if s.TokenFailureCacheTTL > 0 && s.WebHook.CacheTTL < s.TokenFailureCacheTTL { + glog.Warningf("the webhook cache ttl of %s is shorter than the overall cache ttl of %s for failed token authentication attempts.", s.WebHook.CacheTTL, s.TokenFailureCacheTTL) + } + } } return ret From 04748160a65434b72dfa49076426efc0192ba614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Thu, 10 Aug 2017 06:45:19 +0300 Subject: [PATCH 155/183] kubeadm: Move all node bootstrap token related code in one phase package --- cmd/kubeadm/app/cmd/init.go | 27 ++- cmd/kubeadm/app/cmd/token.go | 2 +- cmd/kubeadm/app/constants/constants.go | 8 + cmd/kubeadm/app/phases/addons/addons.go | 11 +- .../app/phases/apiconfig/clusterroles.go | 209 +++--------------- .../bootstraptoken/clusterinfo/clusterinfo.go | 105 +++++++++ .../clusterinfo/clusterinfo_test.go} | 52 +---- .../bootstraptoken/node/tlsbootstrap.go | 106 +++++++++ .../node/token.go} | 51 +---- .../phases/bootstraptoken/node/token_test.go | 59 +++++ cmd/kubeadm/app/util/apiclient/idempotency.go | 98 ++++++++ 11 files changed, 449 insertions(+), 279 deletions(-) create mode 100644 cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo.go rename cmd/kubeadm/app/phases/{token/bootstrap_test.go => bootstraptoken/clusterinfo/clusterinfo_test.go} (66%) create mode 100644 cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go rename cmd/kubeadm/app/phases/{token/bootstrap.go => bootstraptoken/node/token.go} (71%) create mode 100644 cmd/kubeadm/app/phases/bootstraptoken/node/token_test.go create mode 100644 cmd/kubeadm/app/util/apiclient/idempotency.go diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index 1cc3ae834fb..6eaa449638f 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -36,11 +36,12 @@ import ( kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" addonsphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/addons" apiconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/apiconfig" + clusterinfophase "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo" + nodebootstraptokenphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" controlplanephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane" kubeconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig" markmasterphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster" selfhostingphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/selfhosting" - tokenphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/token" uploadconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/uploadconfig" "k8s.io/kubernetes/cmd/kubeadm/app/preflight" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" @@ -247,25 +248,39 @@ func (i *Init) Run(out io.Writer) error { return err } + // PHASE 4: Mark the master with the right label/taint if err := markmasterphase.MarkMaster(client, i.cfg.NodeName); err != nil { return err } - // PHASE 4: Set up the bootstrap tokens + // PHASE 5: Set up the node bootstrap tokens if !i.skipTokenPrint { fmt.Printf("[token] Using token: %s\n", i.cfg.Token) } + // Create the default node bootstrap token tokenDescription := "The default bootstrap token generated by 'kubeadm init'." - if err := tokenphase.UpdateOrCreateToken(client, i.cfg.Token, false, i.cfg.TokenTTL, kubeadmconstants.DefaultTokenUsages, tokenDescription); err != nil { + if err := nodebootstraptokenphase.UpdateOrCreateToken(client, i.cfg.Token, false, i.cfg.TokenTTL, kubeadmconstants.DefaultTokenUsages, tokenDescription); err != nil { + return err + } + // Create RBAC rules that makes the bootstrap tokens able to post CSRs + if err := nodebootstraptokenphase.AllowBootstrapTokensToPostCSRs(client); err != nil { + return err + } + // Create RBAC rules that makes the bootstrap tokens able to get their CSRs approved automatically + if err := nodebootstraptokenphase.AutoApproveNodeBootstrapTokens(client, k8sVersion); err != nil { return err } - if err := tokenphase.CreateBootstrapConfigMapIfNotExists(client, kubeadmconstants.GetAdminKubeConfigPath()); err != nil { + // Create the cluster-info ConfigMap with the associated RBAC rules + if err := clusterinfophase.CreateBootstrapConfigMapIfNotExists(client, kubeadmconstants.GetAdminKubeConfigPath()); err != nil { + return err + } + if err := clusterinfophase.CreateClusterInfoRBACRules(client); err != nil { return err } - // PHASE 5: Install and deploy all addons, and configure things as necessary + // PHASE 6: Install and deploy all addons, and configure things as necessary // Upload currently used configuration to the cluster if err := uploadconfigphase.UploadConfiguration(i.cfg, client); err != nil { @@ -285,7 +300,7 @@ func (i *Init) Run(out io.Writer) error { return err } - // Is deployment type self-hosted? + // PHASE 7: Make the control plane self-hosted if feature gate is enabled if features.Enabled(i.cfg.FeatureFlags, features.SelfHosting) { // Temporary control plane is up, now we create our self hosted control // plane components and remove the static manifests: diff --git a/cmd/kubeadm/app/cmd/token.go b/cmd/kubeadm/app/cmd/token.go index deb7f7a607a..730356605bb 100644 --- a/cmd/kubeadm/app/cmd/token.go +++ b/cmd/kubeadm/app/cmd/token.go @@ -34,7 +34,7 @@ import ( clientset "k8s.io/client-go/kubernetes" kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" - tokenphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/token" + tokenphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" tokenutil "k8s.io/kubernetes/cmd/kubeadm/app/util/token" diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index 6f237f55895..20105623390 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -116,6 +116,10 @@ const ( // SelfHostingPrefix describes the prefix workloads that are self-hosted by kubeadm has SelfHostingPrefix = "self-hosted-" + + // NodeBootstrapTokenAuthGroup specifies which group a Node Bootstrap Token should be authenticated in + // TODO: This should be changed in the v1.8 dev cycle to a node-BT-specific group instead of the generic Bootstrap Token group that is used now + NodeBootstrapTokenAuthGroup = "system:bootstrappers" ) var ( @@ -143,6 +147,10 @@ var ( // MinimumControlPlaneVersion specifies the minimum control plane version kubeadm can deploy MinimumControlPlaneVersion = version.MustParseSemantic("v1.7.0") + + // MinimumCSRAutoApprovalClusterRolesVersion defines whether kubeadm can rely on the built-in CSR approval ClusterRole or not (note, the binding is always created by kubeadm!) + // TODO: Remove this when the v1.9 cycle starts and we bump the minimum supported version to v1.8.0 + MinimumCSRAutoApprovalClusterRolesVersion = version.MustParseSemantic("v1.8.0-alpha.3") ) // GetStaticPodDirectory returns the location on the disk where the Static Pod should be present diff --git a/cmd/kubeadm/app/phases/addons/addons.go b/cmd/kubeadm/app/phases/addons/addons.go index 029e3008acd..9accdb5ce36 100644 --- a/cmd/kubeadm/app/phases/addons/addons.go +++ b/cmd/kubeadm/app/phases/addons/addons.go @@ -30,6 +30,7 @@ import ( kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" + apiclientutil "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/plugin/pkg/scheduler/algorithm" ) @@ -100,14 +101,8 @@ func CreateKubeProxyAddon(configMapBytes, daemonSetbytes []byte, client clientse return fmt.Errorf("unable to decode kube-proxy configmap %v", err) } - if _, err := client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Create(kubeproxyConfigMap); err != nil { - if !apierrors.IsAlreadyExists(err) { - return fmt.Errorf("unable to create a new kube-proxy configmap: %v", err) - } - - if _, err := client.CoreV1().ConfigMaps(metav1.NamespaceSystem).Update(kubeproxyConfigMap); err != nil { - return fmt.Errorf("unable to update the kube-proxy configmap: %v", err) - } + if err := apiclientutil.CreateConfigMapIfNotExists(client, kubeproxyConfigMap); err != nil { + return err } kubeproxyDaemonSet := &extensions.DaemonSet{} diff --git a/cmd/kubeadm/app/phases/apiconfig/clusterroles.go b/cmd/kubeadm/app/phases/apiconfig/clusterroles.go index 4a034fc0cb8..98730cee86e 100644 --- a/cmd/kubeadm/app/phases/apiconfig/clusterroles.go +++ b/cmd/kubeadm/app/phases/apiconfig/clusterroles.go @@ -25,29 +25,18 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" - rbachelper "k8s.io/kubernetes/pkg/apis/rbac/v1beta1" - bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" + apiclientutil "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" "k8s.io/kubernetes/pkg/util/version" ) const ( // KubeProxyClusterRoleName sets the name for the kube-proxy ClusterRole KubeProxyClusterRoleName = "system:node-proxier" - // NodeBootstrapperClusterRoleName sets the name for the TLS Node Bootstrapper ClusterRole - NodeBootstrapperClusterRoleName = "system:node-bootstrapper" - // BootstrapSignerClusterRoleName sets the name for the ClusterRole that allows access to ConfigMaps in the kube-public ns - BootstrapSignerClusterRoleName = "system:bootstrap-signer-clusterinfo" - - clusterRoleKind = "ClusterRole" - roleKind = "Role" - serviceAccountKind = "ServiceAccount" - rbacAPIGroup = "rbac.authorization.k8s.io" - anonymousUser = "system:anonymous" - nodeAutoApproveBootstrap = "kubeadm:node-autoapprove-bootstrap" ) // CreateServiceAccounts creates the necessary serviceaccounts that kubeadm uses/might use, if they don't already exist. -func CreateServiceAccounts(clientset clientset.Interface) error { +func CreateServiceAccounts(client clientset.Interface) error { + // TODO: Each ServiceAccount should be created per-addon (decentralized) vs here serviceAccounts := []v1.ServiceAccount{ { ObjectMeta: metav1.ObjectMeta{ @@ -64,7 +53,7 @@ func CreateServiceAccounts(clientset clientset.Interface) error { } for _, sa := range serviceAccounts { - if _, err := clientset.CoreV1().ServiceAccounts(metav1.NamespaceSystem).Create(&sa); err != nil { + if _, err := client.CoreV1().ServiceAccounts(metav1.NamespaceSystem).Create(&sa); err != nil { if !apierrors.IsAlreadyExists(err) { return err } @@ -74,20 +63,11 @@ func CreateServiceAccounts(clientset clientset.Interface) error { } // CreateRBACRules creates the essential RBAC rules for a minimally set-up cluster -func CreateRBACRules(clientset clientset.Interface, k8sVersion *version.Version) error { - if err := createRoles(clientset); err != nil { +func CreateRBACRules(client clientset.Interface, k8sVersion *version.Version) error { + if err := createClusterRoleBindings(client); err != nil { return err } - if err := createRoleBindings(clientset); err != nil { - return err - } - if err := createClusterRoles(clientset); err != nil { - return err - } - if err := createClusterRoleBindings(clientset); err != nil { - return err - } - if err := deletePermissiveNodesBindingWhenUsingNodeAuthorization(clientset, k8sVersion); err != nil { + if err := deletePermissiveNodesBindingWhenUsingNodeAuthorization(client, k8sVersion); err != nil { return fmt.Errorf("failed to remove the permissive 'system:nodes' Group Subject in the 'system:node' ClusterRoleBinding: %v", err) } @@ -95,163 +75,32 @@ func CreateRBACRules(clientset clientset.Interface, k8sVersion *version.Version) return nil } -func createRoles(clientset clientset.Interface) error { - roles := []rbac.Role{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: BootstrapSignerClusterRoleName, - Namespace: metav1.NamespacePublic, - }, - Rules: []rbac.PolicyRule{ - rbachelper.NewRule("get").Groups("").Resources("configmaps").Names("cluster-info").RuleOrDie(), +func createClusterRoleBindings(client clientset.Interface) error { + // TODO: This ClusterRoleBinding should be created by the kube-proxy phase, not here + return apiclientutil.CreateClusterRoleBindingIfNotExists(client, &rbac.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: "kubeadm:node-proxier", + }, + RoleRef: rbac.RoleRef{ + APIGroup: rbac.GroupName, + Kind: "ClusterRole", + Name: KubeProxyClusterRoleName, + }, + Subjects: []rbac.Subject{ + { + Kind: rbac.ServiceAccountKind, + Name: kubeadmconstants.KubeProxyServiceAccountName, + Namespace: metav1.NamespaceSystem, }, }, - } - for _, role := range roles { - if _, err := clientset.RbacV1beta1().Roles(role.ObjectMeta.Namespace).Create(&role); err != nil { - if !apierrors.IsAlreadyExists(err) { - return fmt.Errorf("unable to create RBAC role: %v", err) - } - - if _, err := clientset.RbacV1beta1().Roles(role.ObjectMeta.Namespace).Update(&role); err != nil { - return fmt.Errorf("unable to update RBAC role: %v", err) - } - } - } - return nil + }) } -func createRoleBindings(clientset clientset.Interface) error { - roleBindings := []rbac.RoleBinding{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "kubeadm:bootstrap-signer-clusterinfo", - Namespace: metav1.NamespacePublic, - }, - RoleRef: rbac.RoleRef{ - APIGroup: rbacAPIGroup, - Kind: roleKind, - Name: BootstrapSignerClusterRoleName, - }, - Subjects: []rbac.Subject{ - { - Kind: "User", - Name: anonymousUser, - }, - }, - }, - } +func deletePermissiveNodesBindingWhenUsingNodeAuthorization(client clientset.Interface, k8sVersion *version.Version) error { - for _, roleBinding := range roleBindings { - if _, err := clientset.RbacV1beta1().RoleBindings(roleBinding.ObjectMeta.Namespace).Create(&roleBinding); err != nil { - if !apierrors.IsAlreadyExists(err) { - return fmt.Errorf("unable to create RBAC rolebinding: %v", err) - } - - if _, err := clientset.RbacV1beta1().RoleBindings(roleBinding.ObjectMeta.Namespace).Update(&roleBinding); err != nil { - return fmt.Errorf("unable to update RBAC rolebinding: %v", err) - } - } - } - return nil -} - -func createClusterRoles(clientset clientset.Interface) error { - clusterRoles := []rbac.ClusterRole{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: nodeAutoApproveBootstrap, - }, - Rules: []rbac.PolicyRule{ - rbachelper.NewRule("create").Groups("certificates.k8s.io").Resources("certificatesigningrequests/nodeclient").RuleOrDie(), - }, - }, - } - - for _, roleBinding := range clusterRoles { - if _, err := clientset.RbacV1beta1().ClusterRoles().Create(&roleBinding); err != nil { - if !apierrors.IsAlreadyExists(err) { - return fmt.Errorf("unable to create RBAC clusterrole: %v", err) - } - - if _, err := clientset.RbacV1beta1().ClusterRoles().Update(&roleBinding); err != nil { - return fmt.Errorf("unable to update RBAC clusterrole: %v", err) - } - } - } - return nil -} - -func createClusterRoleBindings(clientset clientset.Interface) error { - clusterRoleBindings := []rbac.ClusterRoleBinding{ - { - ObjectMeta: metav1.ObjectMeta{ - Name: "kubeadm:kubelet-bootstrap", - }, - RoleRef: rbac.RoleRef{ - APIGroup: rbacAPIGroup, - Kind: clusterRoleKind, - Name: NodeBootstrapperClusterRoleName, - }, - Subjects: []rbac.Subject{ - { - Kind: "Group", - Name: bootstrapapi.BootstrapGroup, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: nodeAutoApproveBootstrap, - }, - RoleRef: rbac.RoleRef{ - APIGroup: rbacAPIGroup, - Kind: clusterRoleKind, - Name: nodeAutoApproveBootstrap, - }, - Subjects: []rbac.Subject{ - { - Kind: "Group", - Name: bootstrapapi.BootstrapGroup, - }, - }, - }, - { - ObjectMeta: metav1.ObjectMeta{ - Name: "kubeadm:node-proxier", - }, - RoleRef: rbac.RoleRef{ - APIGroup: rbacAPIGroup, - Kind: clusterRoleKind, - Name: KubeProxyClusterRoleName, - }, - Subjects: []rbac.Subject{ - { - Kind: serviceAccountKind, - Name: kubeadmconstants.KubeProxyServiceAccountName, - Namespace: metav1.NamespaceSystem, - }, - }, - }, - } - - for _, clusterRoleBinding := range clusterRoleBindings { - if _, err := clientset.RbacV1beta1().ClusterRoleBindings().Create(&clusterRoleBinding); err != nil { - if !apierrors.IsAlreadyExists(err) { - return fmt.Errorf("unable to create RBAC clusterrolebinding: %v", err) - } - - if _, err := clientset.RbacV1beta1().ClusterRoleBindings().Update(&clusterRoleBinding); err != nil { - return fmt.Errorf("unable to update RBAC clusterrolebinding: %v", err) - } - } - } - return nil -} - -func deletePermissiveNodesBindingWhenUsingNodeAuthorization(clientset clientset.Interface, k8sVersion *version.Version) error { - - nodesRoleBinding, err := clientset.RbacV1beta1().ClusterRoleBindings().Get(kubeadmconstants.NodesClusterRoleBinding, metav1.GetOptions{}) + // TODO: When the v1.9 cycle starts (targeting v1.9 at HEAD) and v1.8.0 is the minimum supported version, we can remove this function as the ClusterRoleBinding won't exist + // or already have no such permissive subject + nodesRoleBinding, err := client.RbacV1beta1().ClusterRoleBindings().Get(kubeadmconstants.NodesClusterRoleBinding, metav1.GetOptions{}) if err != nil { if apierrors.IsNotFound(err) { // Nothing to do; the RoleBinding doesn't exist @@ -271,7 +120,7 @@ func deletePermissiveNodesBindingWhenUsingNodeAuthorization(clientset clientset. nodesRoleBinding.Subjects = newSubjects - if _, err := clientset.RbacV1beta1().ClusterRoleBindings().Update(nodesRoleBinding); err != nil { + if _, err := client.RbacV1beta1().ClusterRoleBindings().Update(nodesRoleBinding); err != nil { return err } diff --git a/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo.go b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo.go new file mode 100644 index 00000000000..fc7824094bb --- /dev/null +++ b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo.go @@ -0,0 +1,105 @@ +/* +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. +*/ + +package clusterinfo + +import ( + "fmt" + + "k8s.io/api/core/v1" + rbac "k8s.io/api/rbac/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apiserver/pkg/authentication/user" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/clientcmd" + clientcmdapi "k8s.io/client-go/tools/clientcmd/api" + apiclientutil "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" + rbachelper "k8s.io/kubernetes/pkg/apis/rbac/v1beta1" + bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" +) + +const ( + // BootstrapSignerClusterRoleName sets the name for the ClusterRole that allows access to ConfigMaps in the kube-public ns + BootstrapSignerClusterRoleName = "kubeadm:bootstrap-signer-clusterinfo" +) + +// CreateBootstrapConfigMapIfNotExists creates the kube-public ConfigMap if it doesn't exist already +func CreateBootstrapConfigMapIfNotExists(client clientset.Interface, file string) error { + + fmt.Printf("[bootstraptoken] Creating the %q ConfigMap in the %q namespace\n", bootstrapapi.ConfigMapClusterInfo, metav1.NamespacePublic) + + adminConfig, err := clientcmd.LoadFromFile(file) + if err != nil { + return fmt.Errorf("failed to load admin kubeconfig [%v]", err) + } + + adminCluster := adminConfig.Contexts[adminConfig.CurrentContext].Cluster + // Copy the cluster from admin.conf to the bootstrap kubeconfig, contains the CA cert and the server URL + bootstrapConfig := &clientcmdapi.Config{ + Clusters: map[string]*clientcmdapi.Cluster{ + "": adminConfig.Clusters[adminCluster], + }, + } + bootstrapBytes, err := clientcmd.Write(*bootstrapConfig) + if err != nil { + return err + } + + // Create or update the ConfigMap in the kube-public namespace + return apiclientutil.CreateConfigMapIfNotExists(client, &v1.ConfigMap{ + ObjectMeta: metav1.ObjectMeta{ + Name: bootstrapapi.ConfigMapClusterInfo, + Namespace: metav1.NamespacePublic, + }, + Data: map[string]string{ + bootstrapapi.KubeConfigKey: string(bootstrapBytes), + }, + }) +} + +// CreateClusterInfoRBACRules creates the RBAC rules for exposing the cluster-info ConfigMap in the kube-public namespace to unauthenticated users +func CreateClusterInfoRBACRules(client clientset.Interface) error { + err := apiclientutil.CreateRoleIfNotExists(client, &rbac.Role{ + ObjectMeta: metav1.ObjectMeta{ + Name: BootstrapSignerClusterRoleName, + Namespace: metav1.NamespacePublic, + }, + Rules: []rbac.PolicyRule{ + rbachelper.NewRule("get").Groups("").Resources("configmaps").Names(bootstrapapi.ConfigMapClusterInfo).RuleOrDie(), + }, + }) + if err != nil { + return err + } + + return apiclientutil.CreateRoleBindingIfNotExists(client, &rbac.RoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: BootstrapSignerClusterRoleName, + Namespace: metav1.NamespacePublic, + }, + RoleRef: rbac.RoleRef{ + APIGroup: rbac.GroupName, + Kind: "Role", + Name: BootstrapSignerClusterRoleName, + }, + Subjects: []rbac.Subject{ + { + Kind: rbac.UserKind, + Name: user.Anonymous, + }, + }, + }) +} diff --git a/cmd/kubeadm/app/phases/token/bootstrap_test.go b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo_test.go similarity index 66% rename from cmd/kubeadm/app/phases/token/bootstrap_test.go rename to cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo_test.go index 7a001e2e521..73c7a947b49 100644 --- a/cmd/kubeadm/app/phases/token/bootstrap_test.go +++ b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/clusterinfo_test.go @@ -14,20 +14,17 @@ See the License for the specific language governing permissions and limitations under the License. */ -package token +package clusterinfo import ( - "bytes" "io/ioutil" "os" "testing" - "time" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" clientsetfake "k8s.io/client-go/kubernetes/fake" core "k8s.io/client-go/testing" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/pkg/api" ) @@ -47,59 +44,29 @@ preferences: {} users: - name: kubernetes-admin` -func TestEncodeTokenSecretData(t *testing.T) { - var tests = []struct { - token *kubeadmapi.TokenDiscovery - t time.Duration - }{ - {token: &kubeadmapi.TokenDiscovery{ID: "foo", Secret: "bar"}}, // should use default - {token: &kubeadmapi.TokenDiscovery{ID: "foo", Secret: "bar"}, t: time.Second}, // should use default - } - for _, rt := range tests { - actual := encodeTokenSecretData(rt.token.ID, rt.token.Secret, rt.t, []string{}, "") - if !bytes.Equal(actual["token-id"], []byte(rt.token.ID)) { - t.Errorf( - "failed EncodeTokenSecretData:\n\texpected: %s\n\t actual: %s", - rt.token.ID, - actual["token-id"], - ) - } - if !bytes.Equal(actual["token-secret"], []byte(rt.token.Secret)) { - t.Errorf( - "failed EncodeTokenSecretData:\n\texpected: %s\n\t actual: %s", - rt.token.Secret, - actual["token-secret"], - ) - } - if rt.t > 0 { - if actual["expiration"] == nil { - t.Errorf( - "failed EncodeTokenSecretData, duration was not added to time", - ) - } - } - } -} - func TestCreateBootstrapConfigMapIfNotExists(t *testing.T) { tests := []struct { name string createErr error + updateErr error expectErr bool }{ { "successful case should have no error", nil, + nil, false, }, { - "duplicate creation should have no error", + "if both create and update errors, return error", apierrors.NewAlreadyExists(api.Resource("configmaps"), "test"), - false, + apierrors.NewUnauthorized("go away!"), + true, }, { "unexpected error should be returned", apierrors.NewUnauthorized("go away!"), + nil, true, }, } @@ -119,6 +86,11 @@ func TestCreateBootstrapConfigMapIfNotExists(t *testing.T) { return true, nil, tc.createErr }) } + if tc.updateErr != nil { + client.PrependReactor("update", "configmaps", func(action core.Action) (bool, runtime.Object, error) { + return true, nil, tc.updateErr + }) + } err = CreateBootstrapConfigMapIfNotExists(client, file.Name()) if tc.expectErr && err == nil { diff --git a/cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go b/cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go new file mode 100644 index 00000000000..cb53271029b --- /dev/null +++ b/cmd/kubeadm/app/phases/bootstraptoken/node/tlsbootstrap.go @@ -0,0 +1,106 @@ +/* +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. +*/ + +package node + +import ( + "fmt" + + rbac "k8s.io/api/rbac/v1beta1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/cmd/kubeadm/app/constants" + apiclientutil "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" + rbachelper "k8s.io/kubernetes/pkg/apis/rbac/v1beta1" + "k8s.io/kubernetes/pkg/util/version" +) + +const ( + // NodeBootstrapperClusterRoleName defines the name of the auto-bootstrapped ClusterRole for letting someone post a CSR + // TODO: This value should be defined in an other, generic authz package instead of here + NodeBootstrapperClusterRoleName = "system:node-bootstrapper" + // NodeKubeletBootstrap defines the name of the ClusterRoleBinding that lets kubelets post CSRs + NodeKubeletBootstrap = "kubeadm:kubelet-bootstrap" + + // CSRAutoApprovalClusterRoleName defines the name of the auto-bootstrapped ClusterRole for making the csrapprover controller auto-approve the CSR + // TODO: This value should be defined in an other, generic authz package instead of here + CSRAutoApprovalClusterRoleName = "system:certificates.k8s.io:certificatesigningrequests:nodeclient" + // NodeAutoApproveBootstrap defines the name of the ClusterRoleBinding that makes the csrapprover approve node CSRs + NodeAutoApproveBootstrap = "kubeadm:node-autoapprove-bootstrap" +) + +// AllowBootstrapTokensToPostCSRs creates RBAC rules in a way the makes Node Bootstrap Tokens able to post CSRs +func AllowBootstrapTokensToPostCSRs(client clientset.Interface) error { + + fmt.Println("[bootstraptoken] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials") + + return apiclientutil.CreateClusterRoleBindingIfNotExists(client, &rbac.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: NodeKubeletBootstrap, + }, + RoleRef: rbac.RoleRef{ + APIGroup: rbac.GroupName, + Kind: "ClusterRole", + Name: NodeBootstrapperClusterRoleName, + }, + Subjects: []rbac.Subject{ + { + Kind: rbac.GroupKind, + Name: constants.NodeBootstrapTokenAuthGroup, + }, + }, + }) +} + +// AutoApproveNodeBootstrapTokens creates RBAC rules in a way that makes Node Bootstrap Tokens' CSR auto-approved by the csrapprover controller +func AutoApproveNodeBootstrapTokens(client clientset.Interface, k8sVersion *version.Version) error { + + fmt.Println("[bootstraptoken] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token") + + // TODO: When the v1.9 cycle starts (targeting v1.9 at HEAD) and v1.8.0 is the minimum supported version, we can remove this function as the ClusterRole will always exist + if k8sVersion.LessThan(constants.MinimumCSRAutoApprovalClusterRolesVersion) { + + err := apiclientutil.CreateClusterRoleIfNotExists(client, &rbac.ClusterRole{ + ObjectMeta: metav1.ObjectMeta{ + Name: CSRAutoApprovalClusterRoleName, + }, + Rules: []rbac.PolicyRule{ + rbachelper.NewRule("create").Groups("certificates.k8s.io").Resources("certificatesigningrequests/nodeclient").RuleOrDie(), + }, + }) + if err != nil { + return err + } + } + + // Always create this kubeadm-specific binding though + return apiclientutil.CreateClusterRoleBindingIfNotExists(client, &rbac.ClusterRoleBinding{ + ObjectMeta: metav1.ObjectMeta{ + Name: NodeAutoApproveBootstrap, + }, + RoleRef: rbac.RoleRef{ + APIGroup: rbac.GroupName, + Kind: "ClusterRole", + Name: CSRAutoApprovalClusterRoleName, + }, + Subjects: []rbac.Subject{ + { + Kind: "Group", + Name: constants.NodeBootstrapTokenAuthGroup, + }, + }, + }) +} diff --git a/cmd/kubeadm/app/phases/token/bootstrap.go b/cmd/kubeadm/app/phases/bootstraptoken/node/token.go similarity index 71% rename from cmd/kubeadm/app/phases/token/bootstrap.go rename to cmd/kubeadm/app/phases/bootstraptoken/node/token.go index 2bb3c0a5d27..e4c29912e4a 100644 --- a/cmd/kubeadm/app/phases/token/bootstrap.go +++ b/cmd/kubeadm/app/phases/bootstraptoken/node/token.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package token +package node import ( "fmt" @@ -24,14 +24,14 @@ import ( apierrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" clientset "k8s.io/client-go/kubernetes" - "k8s.io/client-go/tools/clientcmd" - clientcmdapi "k8s.io/client-go/tools/clientcmd/api" tokenutil "k8s.io/kubernetes/cmd/kubeadm/app/util/token" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" ) const tokenCreateRetries = 5 +// TODO(mattmoyer): Move CreateNewToken, UpdateOrCreateToken and encodeTokenSecretData out of this package to client-go for a generic abstraction and client for a Bootstrap Token + // CreateNewToken tries to create a token and fails if one with the same ID already exists func CreateNewToken(client clientset.Interface, token string, tokenDuration time.Duration, usages []string, description string) error { return UpdateOrCreateToken(client, token, true, tokenDuration, usages, description) @@ -55,9 +55,8 @@ func UpdateOrCreateToken(client clientset.Interface, token string, failIfExists secret.Data = encodeTokenSecretData(tokenID, tokenSecret, tokenDuration, usages, description) if _, err := client.CoreV1().Secrets(metav1.NamespaceSystem).Update(secret); err == nil { return nil - } else { - lastErr = err } + lastErr = err continue } @@ -72,9 +71,8 @@ func UpdateOrCreateToken(client clientset.Interface, token string, failIfExists } if _, err := client.CoreV1().Secrets(metav1.NamespaceSystem).Create(secret); err == nil { return nil - } else { - lastErr = err } + lastErr = err continue } @@ -86,45 +84,10 @@ func UpdateOrCreateToken(client clientset.Interface, token string, failIfExists ) } -// CreateBootstrapConfigMapIfNotExists creates the public cluster-info ConfigMap (if it doesn't already exist) -func CreateBootstrapConfigMapIfNotExists(client clientset.Interface, file string) error { - adminConfig, err := clientcmd.LoadFromFile(file) - if err != nil { - return fmt.Errorf("failed to load admin kubeconfig [%v]", err) - } - - adminCluster := adminConfig.Contexts[adminConfig.CurrentContext].Cluster - // Copy the cluster from admin.conf to the bootstrap kubeconfig, contains the CA cert and the server URL - bootstrapConfig := &clientcmdapi.Config{ - Clusters: map[string]*clientcmdapi.Cluster{ - "": adminConfig.Clusters[adminCluster], - }, - } - bootstrapBytes, err := clientcmd.Write(*bootstrapConfig) - if err != nil { - return err - } - - bootstrapConfigMap := v1.ConfigMap{ - ObjectMeta: metav1.ObjectMeta{Name: bootstrapapi.ConfigMapClusterInfo}, - Data: map[string]string{ - bootstrapapi.KubeConfigKey: string(bootstrapBytes), - }, - } - - if _, err := client.CoreV1().ConfigMaps(metav1.NamespacePublic).Create(&bootstrapConfigMap); err != nil { - if apierrors.IsAlreadyExists(err) { - return nil - } - return err - } - return nil -} - // encodeTokenSecretData takes the token discovery object and an optional duration and returns the .Data for the Secret -func encodeTokenSecretData(tokenId, tokenSecret string, duration time.Duration, usages []string, description string) map[string][]byte { +func encodeTokenSecretData(tokenID, tokenSecret string, duration time.Duration, usages []string, description string) map[string][]byte { data := map[string][]byte{ - bootstrapapi.BootstrapTokenIDKey: []byte(tokenId), + bootstrapapi.BootstrapTokenIDKey: []byte(tokenID), bootstrapapi.BootstrapTokenSecretKey: []byte(tokenSecret), } diff --git a/cmd/kubeadm/app/phases/bootstraptoken/node/token_test.go b/cmd/kubeadm/app/phases/bootstraptoken/node/token_test.go new file mode 100644 index 00000000000..48a6f80e982 --- /dev/null +++ b/cmd/kubeadm/app/phases/bootstraptoken/node/token_test.go @@ -0,0 +1,59 @@ +/* +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. +*/ + +package node + +import ( + "bytes" + "testing" + "time" + + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" +) + +func TestEncodeTokenSecretData(t *testing.T) { + var tests = []struct { + token *kubeadmapi.TokenDiscovery + t time.Duration + }{ + {token: &kubeadmapi.TokenDiscovery{ID: "foo", Secret: "bar"}}, // should use default + {token: &kubeadmapi.TokenDiscovery{ID: "foo", Secret: "bar"}, t: time.Second}, // should use default + } + for _, rt := range tests { + actual := encodeTokenSecretData(rt.token.ID, rt.token.Secret, rt.t, []string{}, "") + if !bytes.Equal(actual["token-id"], []byte(rt.token.ID)) { + t.Errorf( + "failed EncodeTokenSecretData:\n\texpected: %s\n\t actual: %s", + rt.token.ID, + actual["token-id"], + ) + } + if !bytes.Equal(actual["token-secret"], []byte(rt.token.Secret)) { + t.Errorf( + "failed EncodeTokenSecretData:\n\texpected: %s\n\t actual: %s", + rt.token.Secret, + actual["token-secret"], + ) + } + if rt.t > 0 { + if actual["expiration"] == nil { + t.Errorf( + "failed EncodeTokenSecretData, duration was not added to time", + ) + } + } + } +} diff --git a/cmd/kubeadm/app/util/apiclient/idempotency.go b/cmd/kubeadm/app/util/apiclient/idempotency.go new file mode 100644 index 00000000000..4db6f98795b --- /dev/null +++ b/cmd/kubeadm/app/util/apiclient/idempotency.go @@ -0,0 +1,98 @@ +/* +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. +*/ + +package util + +import ( + "fmt" + + "k8s.io/api/core/v1" + rbac "k8s.io/api/rbac/v1beta1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + clientset "k8s.io/client-go/kubernetes" +) + +// TODO: We should invent a dynamic mechanism for this using the dynamic client instead of hard-coding these functions per-type + +// CreateClusterRoleIfNotExists creates a ClusterRole if the target resource doesn't exist. If the resource exists already, this function will update the resource instead. +func CreateClusterRoleIfNotExists(client clientset.Interface, clusterRole *rbac.ClusterRole) error { + if _, err := client.RbacV1beta1().ClusterRoles().Create(clusterRole); err != nil { + if !apierrors.IsAlreadyExists(err) { + return fmt.Errorf("unable to create RBAC clusterrole: %v", err) + } + + if _, err := client.RbacV1beta1().ClusterRoles().Update(clusterRole); err != nil { + return fmt.Errorf("unable to update RBAC clusterrole: %v", err) + } + } + return nil +} + +// CreateClusterRoleBindingIfNotExists creates a ClusterRoleBinding if the target resource doesn't exist. If the resource exists already, this function will update the resource instead. +func CreateClusterRoleBindingIfNotExists(client clientset.Interface, clusterRoleBinding *rbac.ClusterRoleBinding) error { + if _, err := client.RbacV1beta1().ClusterRoleBindings().Create(clusterRoleBinding); err != nil { + if !apierrors.IsAlreadyExists(err) { + return fmt.Errorf("unable to create RBAC clusterrolebinding: %v", err) + } + + if _, err := client.RbacV1beta1().ClusterRoleBindings().Update(clusterRoleBinding); err != nil { + return fmt.Errorf("unable to update RBAC clusterrolebinding: %v", err) + } + } + return nil +} + +// CreateRoleIfNotExists creates a Role if the target resource doesn't exist. If the resource exists already, this function will update the resource instead. +func CreateRoleIfNotExists(client clientset.Interface, role *rbac.Role) error { + if _, err := client.RbacV1beta1().Roles(role.ObjectMeta.Namespace).Create(role); err != nil { + if !apierrors.IsAlreadyExists(err) { + return fmt.Errorf("unable to create RBAC role: %v", err) + } + + if _, err := client.RbacV1beta1().Roles(role.ObjectMeta.Namespace).Update(role); err != nil { + return fmt.Errorf("unable to update RBAC role: %v", err) + } + } + return nil +} + +// CreateRoleBindingIfNotExists creates a RoleBinding if the target resource doesn't exist. If the resource exists already, this function will update the resource instead. +func CreateRoleBindingIfNotExists(client clientset.Interface, roleBinding *rbac.RoleBinding) error { + if _, err := client.RbacV1beta1().RoleBindings(roleBinding.ObjectMeta.Namespace).Create(roleBinding); err != nil { + if !apierrors.IsAlreadyExists(err) { + return fmt.Errorf("unable to create RBAC rolebinding: %v", err) + } + + if _, err := client.RbacV1beta1().RoleBindings(roleBinding.ObjectMeta.Namespace).Update(roleBinding); err != nil { + return fmt.Errorf("unable to update RBAC rolebinding: %v", err) + } + } + return nil +} + +// CreateConfigMapIfNotExists creates a ConfigMap if the target resource doesn't exist. If the resource exists already, this function will update the resource instead. +func CreateConfigMapIfNotExists(client clientset.Interface, cm *v1.ConfigMap) error { + if _, err := client.CoreV1().ConfigMaps(cm.ObjectMeta.Namespace).Create(cm); err != nil { + if !apierrors.IsAlreadyExists(err) { + return fmt.Errorf("unable to create configmap: %v", err) + } + + if _, err := client.CoreV1().ConfigMaps(cm.ObjectMeta.Namespace).Update(cm); err != nil { + return fmt.Errorf("unable to update configmap: %v", err) + } + } + return nil +} From 5f4e19beb89c615690cdb1f1f298e45aaa50264e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Thu, 10 Aug 2017 06:45:53 +0300 Subject: [PATCH 156/183] kubeadm: Add the 'kubeadm phase bootstrap-token' command --- cmd/kubeadm/app/cmd/phases/bootstraptoken.go | 139 +++++++++++++++++++ cmd/kubeadm/app/cmd/phases/markmaster.go | 14 +- cmd/kubeadm/app/cmd/phases/phase.go | 21 +++ cmd/kubeadm/app/cmd/phases/phase_test.go | 64 +++++++++ 4 files changed, 229 insertions(+), 9 deletions(-) create mode 100644 cmd/kubeadm/app/cmd/phases/bootstraptoken.go create mode 100644 cmd/kubeadm/app/cmd/phases/phase_test.go diff --git a/cmd/kubeadm/app/cmd/phases/bootstraptoken.go b/cmd/kubeadm/app/cmd/phases/bootstraptoken.go new file mode 100644 index 00000000000..f9b45358720 --- /dev/null +++ b/cmd/kubeadm/app/cmd/phases/bootstraptoken.go @@ -0,0 +1,139 @@ +/* +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. +*/ + +package phases + +import ( + "fmt" + + "github.com/spf13/cobra" + + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo" + "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" + kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" + kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" + versionutil "k8s.io/kubernetes/pkg/util/version" +) + +// NewCmdBootstrapToken returns the Cobra command for running the mark-master phase +func NewCmdBootstrapToken() *cobra.Command { + var kubeConfigFile string + cmd := &cobra.Command{ + Use: "bootstrap-token", + Short: "Manage kubeadm-specific Bootstrap Token functions.", + Aliases: []string{"bootstraptoken"}, + RunE: subCmdRunE("bootstrap-token"), + } + + cmd.PersistentFlags().StringVar(&kubeConfigFile, "kubeconfig", "/etc/kubernetes/admin.conf", "The KubeConfig file to use for talking to the cluster") + + // Add subcommands + cmd.AddCommand(NewSubCmdClusterInfo(&kubeConfigFile)) + cmd.AddCommand(NewSubCmdNodeBootstrapToken(&kubeConfigFile)) + + return cmd +} + +// NewSubCmdClusterInfo returns the Cobra command for running the cluster-info sub-phase +func NewSubCmdClusterInfo(kubeConfigFile *string) *cobra.Command { + cmd := &cobra.Command{ + Use: "cluster-info ", + Short: "Uploads and exposes the cluster-info ConfigMap publicly from the given cluster-info file", + Aliases: []string{"clusterinfo"}, + Run: func(cmd *cobra.Command, args []string) { + err := validateExactArgNumber(args, []string{"clusterinfo-file"}) + kubeadmutil.CheckErr(err) + + client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) + kubeadmutil.CheckErr(err) + + // Here it's safe to get args[0], since we've validated that the argument exists above in validateExactArgNumber + clusterInfoFile := args[0] + // Create the cluster-info ConfigMap or update if it already exists + err = clusterinfo.CreateBootstrapConfigMapIfNotExists(client, clusterInfoFile) + kubeadmutil.CheckErr(err) + + // Create the RBAC rules that expose the cluster-info ConfigMap properly + err = clusterinfo.CreateClusterInfoRBACRules(client) + kubeadmutil.CheckErr(err) + }, + } + return cmd +} + +// NewSubCmdNodeBootstrapToken returns the Cobra command for running the node sub-phase +func NewSubCmdNodeBootstrapToken(kubeConfigFile *string) *cobra.Command { + cmd := &cobra.Command{ + Use: "node", + Short: "Manages Node Bootstrap Tokens", + Aliases: []string{"clusterinfo"}, + RunE: subCmdRunE("node"), + } + + cmd.AddCommand(NewSubCmdNodeBootstrapTokenPostCSRs(kubeConfigFile)) + cmd.AddCommand(NewSubCmdNodeBootstrapTokenAutoApprove(kubeConfigFile)) + + return cmd +} + +// NewSubCmdNodeBootstrapTokenPostCSRs returns the Cobra command for running the allow-post-csrs sub-phase +func NewSubCmdNodeBootstrapTokenPostCSRs(kubeConfigFile *string) *cobra.Command { + cmd := &cobra.Command{ + Use: "allow-post-csrs", + Short: "Configure RBAC to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials", + Run: func(cmd *cobra.Command, args []string) { + client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) + kubeadmutil.CheckErr(err) + + err = node.AllowBootstrapTokensToPostCSRs(client) + kubeadmutil.CheckErr(err) + }, + } + return cmd +} + +// NewSubCmdNodeBootstrapToken returns the Cobra command for running the allow-auto-approve sub-phase +func NewSubCmdNodeBootstrapTokenAutoApprove(kubeConfigFile *string) *cobra.Command { + cmd := &cobra.Command{ + Use: "allow-auto-approve", + Short: "Configure RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token", + Run: func(cmd *cobra.Command, args []string) { + client, err := kubeconfigutil.ClientSetFromFile(*kubeConfigFile) + kubeadmutil.CheckErr(err) + + clusterVersion, err := getClusterVersion(client) + kubeadmutil.CheckErr(err) + + err = node.AutoApproveNodeBootstrapTokens(client, clusterVersion) + kubeadmutil.CheckErr(err) + }, + } + return cmd +} + +// getClusterVersion fetches the API server version and parses it +func getClusterVersion(client clientset.Interface) (*versionutil.Version, error) { + clusterVersionInfo, err := client.Discovery().ServerVersion() + if err != nil { + return nil, fmt.Errorf("failed to check server version: %v", err) + } + clusterVersion, err := versionutil.ParseSemantic(clusterVersionInfo.String()) + if err != nil { + return nil, fmt.Errorf("failed to parse server version: %v", err) + } + return clusterVersion, nil +} diff --git a/cmd/kubeadm/app/cmd/phases/markmaster.go b/cmd/kubeadm/app/cmd/phases/markmaster.go index 0d95dc851d3..33b50134758 100644 --- a/cmd/kubeadm/app/cmd/phases/markmaster.go +++ b/cmd/kubeadm/app/cmd/phases/markmaster.go @@ -22,6 +22,7 @@ import ( "github.com/spf13/cobra" markmasterphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster" + kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" ) @@ -33,16 +34,11 @@ func NewCmdMarkMaster() *cobra.Command { Short: "Create KubeConfig files from given credentials.", Aliases: []string{"markmaster"}, RunE: func(_ *cobra.Command, args []string) error { - if len(args) < 1 || len(args[0]) == 0 { - return fmt.Errorf("missing required argument node-name") - } - if len(args) > 1 { - return fmt.Errorf("too many arguments, only one argument supported: node-name") - } + err := validateExactArgNumber(args, []string{"node-name"}) + kubeadmutil.CheckErr(err) + client, err := kubeconfigutil.ClientSetFromFile(kubeConfigFile) - if err != nil { - return err - } + kubeadmutil.CheckErr(err) nodeName := args[0] fmt.Printf("[markmaster] Will mark node %s as master by adding a label and a taint\n", nodeName) diff --git a/cmd/kubeadm/app/cmd/phases/phase.go b/cmd/kubeadm/app/cmd/phases/phase.go index eea17f2ac10..e2b7a95437d 100644 --- a/cmd/kubeadm/app/cmd/phases/phase.go +++ b/cmd/kubeadm/app/cmd/phases/phase.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/cobra" ) +// NewCmdPhase returns the cobra command for the "kubeadm phase" command (currently alpha-gated) func NewCmdPhase(out io.Writer) *cobra.Command { cmd := &cobra.Command{ Use: "phase", @@ -36,6 +37,7 @@ func NewCmdPhase(out io.Writer) *cobra.Command { cmd.AddCommand(NewCmdSelfhosting()) cmd.AddCommand(NewCmdMarkMaster()) cmd.AddCommand(NewCmdUploadConfig()) + cmd.AddCommand(NewCmdBootstrapToken()) return cmd } @@ -54,3 +56,22 @@ func subCmdRunE(name string) func(*cobra.Command, []string) error { return fmt.Errorf("invalid subcommand: %q", args[0]) } } + +// validateExactArgNumber validates that the required top-level arguments are specified +func validateExactArgNumber(args []string, supportedArgs []string) error { + validArgs := 0 + // Disregard possible "" arguments; they are invalid + for _, arg := range args { + if len(arg) > 0 { + validArgs++ + } + } + + if validArgs < len(supportedArgs) { + return fmt.Errorf("missing one or more required arguments. Required arguments: %v", supportedArgs) + } + if validArgs > len(supportedArgs) { + return fmt.Errorf("too many arguments, only %d argument(s) supported: %v", validArgs, supportedArgs) + } + return nil +} diff --git a/cmd/kubeadm/app/cmd/phases/phase_test.go b/cmd/kubeadm/app/cmd/phases/phase_test.go new file mode 100644 index 00000000000..67a5283337f --- /dev/null +++ b/cmd/kubeadm/app/cmd/phases/phase_test.go @@ -0,0 +1,64 @@ +/* +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. +*/ + +package phases + +import ( + "testing" +) + +func TestValidateExactArgNumber(t *testing.T) { + var tests = []struct { + args, supportedArgs []string + expectedErr bool + }{ + { // one arg given and one arg expected + args: []string{"my-node-1234"}, + supportedArgs: []string{"node-name"}, + expectedErr: false, + }, + { // two args given and two args expected + args: []string{"my-node-1234", "foo"}, + supportedArgs: []string{"node-name", "second-toplevel-arg"}, + expectedErr: false, + }, + { // too few supplied args + args: []string{}, + supportedArgs: []string{"node-name"}, + expectedErr: true, + }, + { // too few non-empty args + args: []string{""}, + supportedArgs: []string{"node-name"}, + expectedErr: true, + }, + { // too many args + args: []string{"my-node-1234", "foo"}, + supportedArgs: []string{"node-name"}, + expectedErr: true, + }, + } + for _, rt := range tests { + actual := validateExactArgNumber(rt.args, rt.supportedArgs) + if (actual != nil) != rt.expectedErr { + t.Errorf( + "failed validateExactArgNumber:\n\texpected error: %t\n\t actual error: %t", + rt.expectedErr, + (actual != nil), + ) + } + } +} From cb739722246403e1cdc05f7dd5d7be55a6346e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20K=C3=A4ldstr=C3=B6m?= Date: Thu, 10 Aug 2017 06:46:46 +0300 Subject: [PATCH 157/183] autogenerated --- cmd/kubeadm/app/BUILD | 2 + cmd/kubeadm/app/cmd/BUILD | 3 +- cmd/kubeadm/app/cmd/phases/BUILD | 6 +++ cmd/kubeadm/app/phases/addons/BUILD | 1 + cmd/kubeadm/app/phases/apiconfig/BUILD | 3 +- .../phases/bootstraptoken/clusterinfo/BUILD | 54 +++++++++++++++++++ .../app/phases/bootstraptoken/node/BUILD | 52 ++++++++++++++++++ cmd/kubeadm/app/phases/token/BUILD | 37 ------------- cmd/kubeadm/app/util/BUILD | 1 + cmd/kubeadm/app/util/apiclient/BUILD | 33 ++++++++++++ hack/.golint_failures | 1 - 11 files changed, 152 insertions(+), 41 deletions(-) create mode 100644 cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD create mode 100644 cmd/kubeadm/app/phases/bootstraptoken/node/BUILD create mode 100644 cmd/kubeadm/app/util/apiclient/BUILD diff --git a/cmd/kubeadm/app/BUILD b/cmd/kubeadm/app/BUILD index 5688d5c6872..12e2efeb3c0 100644 --- a/cmd/kubeadm/app/BUILD +++ b/cmd/kubeadm/app/BUILD @@ -38,6 +38,8 @@ filegroup( "//cmd/kubeadm/app/node:all-srcs", "//cmd/kubeadm/app/phases/addons:all-srcs", "//cmd/kubeadm/app/phases/apiconfig:all-srcs", + "//cmd/kubeadm/app/phases/bootstraptoken/clusterinfo:all-srcs", + "//cmd/kubeadm/app/phases/bootstraptoken/node:all-srcs", "//cmd/kubeadm/app/phases/certs:all-srcs", "//cmd/kubeadm/app/phases/controlplane:all-srcs", "//cmd/kubeadm/app/phases/kubeconfig:all-srcs", diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index aa6e2c8a282..2955ae3fdd4 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -30,11 +30,12 @@ go_library( "//cmd/kubeadm/app/discovery:go_default_library", "//cmd/kubeadm/app/phases/addons:go_default_library", "//cmd/kubeadm/app/phases/apiconfig:go_default_library", + "//cmd/kubeadm/app/phases/bootstraptoken/clusterinfo:go_default_library", + "//cmd/kubeadm/app/phases/bootstraptoken/node:go_default_library", "//cmd/kubeadm/app/phases/controlplane:go_default_library", "//cmd/kubeadm/app/phases/kubeconfig:go_default_library", "//cmd/kubeadm/app/phases/markmaster:go_default_library", "//cmd/kubeadm/app/phases/selfhosting:go_default_library", - "//cmd/kubeadm/app/phases/token:go_default_library", "//cmd/kubeadm/app/phases/uploadconfig:go_default_library", "//cmd/kubeadm/app/preflight:go_default_library", "//cmd/kubeadm/app/util:go_default_library", diff --git a/cmd/kubeadm/app/cmd/phases/BUILD b/cmd/kubeadm/app/cmd/phases/BUILD index df839cb8710..5cf2d2aca94 100644 --- a/cmd/kubeadm/app/cmd/phases/BUILD +++ b/cmd/kubeadm/app/cmd/phases/BUILD @@ -11,6 +11,7 @@ load( go_library( name = "go_default_library", srcs = [ + "bootstraptoken.go", "certs.go", "kubeconfig.go", "markmaster.go", @@ -24,6 +25,8 @@ go_library( "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", + "//cmd/kubeadm/app/phases/bootstraptoken/clusterinfo:go_default_library", + "//cmd/kubeadm/app/phases/bootstraptoken/node:go_default_library", "//cmd/kubeadm/app/phases/certs:go_default_library", "//cmd/kubeadm/app/phases/certs/pkiutil:go_default_library", "//cmd/kubeadm/app/phases/kubeconfig:go_default_library", @@ -35,7 +38,9 @@ go_library( "//cmd/kubeadm/app/util/config:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", "//pkg/api:go_default_library", + "//pkg/util/version:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", ], ) @@ -44,6 +49,7 @@ go_test( srcs = [ "certs_test.go", "kubeconfig_test.go", + "phase_test.go", ], library = ":go_default_library", tags = ["automanaged"], diff --git a/cmd/kubeadm/app/phases/addons/BUILD b/cmd/kubeadm/app/phases/addons/BUILD index 3515a7b908a..afbee920cef 100644 --- a/cmd/kubeadm/app/phases/addons/BUILD +++ b/cmd/kubeadm/app/phases/addons/BUILD @@ -19,6 +19,7 @@ go_library( "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", + "//cmd/kubeadm/app/util/apiclient:go_default_library", "//pkg/api:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/cmd/kubeadm/app/phases/apiconfig/BUILD b/cmd/kubeadm/app/phases/apiconfig/BUILD index c4d2fe0154a..7973830671a 100644 --- a/cmd/kubeadm/app/phases/apiconfig/BUILD +++ b/cmd/kubeadm/app/phases/apiconfig/BUILD @@ -28,8 +28,7 @@ go_library( tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", - "//pkg/apis/rbac/v1beta1:go_default_library", - "//pkg/bootstrap/api:go_default_library", + "//cmd/kubeadm/app/util/apiclient:go_default_library", "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", diff --git a/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD new file mode 100644 index 00000000000..dd1a29d905d --- /dev/null +++ b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD @@ -0,0 +1,54 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["clusterinfo_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + "//vendor/k8s.io/client-go/testing:go_default_library", + ], +) + +go_library( + name = "go_default_library", + srcs = ["clusterinfo.go"], + tags = ["automanaged"], + deps = [ + "//cmd/kubeadm/app/util/apiclient:go_default_library", + "//pkg/apis/rbac/v1beta1:go_default_library", + "//pkg/bootstrap/api:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", + "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD b/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD new file mode 100644 index 00000000000..64f49019afa --- /dev/null +++ b/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD @@ -0,0 +1,52 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["token_test.go"], + library = ":go_default_library", + tags = ["automanaged"], + deps = ["//cmd/kubeadm/app/apis/kubeadm:go_default_library"], +) + +go_library( + name = "go_default_library", + srcs = [ + "tlsbootstrap.go", + "token.go", + ], + tags = ["automanaged"], + deps = [ + "//cmd/kubeadm/app/constants:go_default_library", + "//cmd/kubeadm/app/util/apiclient:go_default_library", + "//cmd/kubeadm/app/util/token:go_default_library", + "//pkg/apis/rbac/v1beta1:go_default_library", + "//pkg/bootstrap/api:go_default_library", + "//pkg/util/version:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cmd/kubeadm/app/phases/token/BUILD b/cmd/kubeadm/app/phases/token/BUILD index 68537accda7..6cc62052baf 100644 --- a/cmd/kubeadm/app/phases/token/BUILD +++ b/cmd/kubeadm/app/phases/token/BUILD @@ -2,43 +2,6 @@ package(default_visibility = ["//visibility:public"]) licenses(["notice"]) -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["bootstrap_test.go"], - library = ":go_default_library", - tags = ["automanaged"], - deps = [ - "//cmd/kubeadm/app/apis/kubeadm:go_default_library", - "//pkg/api:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", - "//vendor/k8s.io/client-go/testing:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = ["bootstrap.go"], - tags = ["automanaged"], - deps = [ - "//cmd/kubeadm/app/util/token:go_default_library", - "//pkg/bootstrap/api:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", - "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", - ], -) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/cmd/kubeadm/app/util/BUILD b/cmd/kubeadm/app/util/BUILD index c0872062fbc..2b3d9eabe1d 100644 --- a/cmd/kubeadm/app/util/BUILD +++ b/cmd/kubeadm/app/util/BUILD @@ -52,6 +52,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//cmd/kubeadm/app/util/apiclient:all-srcs", "//cmd/kubeadm/app/util/config:all-srcs", "//cmd/kubeadm/app/util/kubeconfig:all-srcs", "//cmd/kubeadm/app/util/token:all-srcs", diff --git a/cmd/kubeadm/app/util/apiclient/BUILD b/cmd/kubeadm/app/util/apiclient/BUILD new file mode 100644 index 00000000000..31ad1913b42 --- /dev/null +++ b/cmd/kubeadm/app/util/apiclient/BUILD @@ -0,0 +1,33 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["idempotency.go"], + tags = ["automanaged"], + deps = [ + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/hack/.golint_failures b/hack/.golint_failures index b0886bb54cc..4f80d0c53f9 100644 --- a/hack/.golint_failures +++ b/hack/.golint_failures @@ -20,7 +20,6 @@ cmd/kubeadm/app/discovery/token cmd/kubeadm/app/images cmd/kubeadm/app/phases/addons cmd/kubeadm/app/phases/certs/pkiutil -cmd/kubeadm/app/phases/token cmd/kubeadm/app/preflight cmd/kubeadm/app/util cmd/kubeadm/app/util/config From 55682f2a555981d81af4d2262da93d4cf712e9ea Mon Sep 17 00:00:00 2001 From: Aleksandra Malinowska Date: Wed, 9 Aug 2017 15:54:16 +0200 Subject: [PATCH 158/183] add grabbing CA metrics in e2e tests --- test/e2e/apimachinery/garbage_collector.go | 2 +- test/e2e/e2e.go | 4 +- test/e2e/framework/framework.go | 33 ++++++++-- .../framework/get-kubemark-resource-usage.go | 2 +- test/e2e/framework/kubelet_stats.go | 2 +- test/e2e/framework/metrics/BUILD | 1 + .../metrics/cluster_autoscaler_metrics.go | 36 +++++++++++ test/e2e/framework/metrics/generic_metrics.go | 16 +---- test/e2e/framework/metrics/metrics_grabber.go | 62 +++++++++++++++++-- test/e2e/framework/metrics_util.go | 43 ++++++++++++- test/e2e/framework/test_context.go | 3 + test/e2e/framework/util.go | 1 + .../monitoring/metrics_grabber.go | 5 +- 13 files changed, 176 insertions(+), 34 deletions(-) create mode 100644 test/e2e/framework/metrics/cluster_autoscaler_metrics.go diff --git a/test/e2e/apimachinery/garbage_collector.go b/test/e2e/apimachinery/garbage_collector.go index 25f4d45e571..81afa1a44d2 100644 --- a/test/e2e/apimachinery/garbage_collector.go +++ b/test/e2e/apimachinery/garbage_collector.go @@ -251,7 +251,7 @@ func verifyRemainingCronJobsJobsPods(f *framework.Framework, clientSet clientset func gatherMetrics(f *framework.Framework) { By("Gathering metrics") var summary framework.TestDataSummary - grabber, err := metrics.NewMetricsGrabber(f.ClientSet, false, false, true, false) + grabber, err := metrics.NewMetricsGrabber(f.ClientSet, f.KubemarkExternalClusterClientSet, false, false, true, false, false) if err != nil { framework.Logf("Failed to create MetricsGrabber. Skipping metrics gathering.") } else { diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 5e5008db27c..73dda449f75 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -308,8 +308,8 @@ func gatherTestSuiteMetrics() error { return fmt.Errorf("error loading client: %v", err) } - // Grab metrics for apiserver, scheduler, controller-manager, kubelet (for non-kubemark case). - grabber, err := metrics.NewMetricsGrabber(c, !framework.ProviderIs("kubemark"), true, true, true) + // Grab metrics for apiserver, scheduler, controller-manager, kubelet (for non-kubemark case) and cluster autoscaler (optionally). + grabber, err := metrics.NewMetricsGrabber(c, nil, !framework.ProviderIs("kubemark"), true, true, true, framework.TestContext.IncludeClusterAutoscalerMetrics) if err != nil { return fmt.Errorf("failed to create MetricsGrabber: %v", err) } diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index f4fa2bfa8f5..8107db4adce 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -66,7 +66,8 @@ type Framework struct { BaseName string // ClientSet uses internal objects, you should use ClientSet where possible. - ClientSet clientset.Interface + ClientSet clientset.Interface + KubemarkExternalClusterClientSet clientset.Interface InternalClientset *internalclientset.Clientset StagingClient *staging.Clientset @@ -100,6 +101,9 @@ type Framework struct { TestSummaries []TestDataSummary kubemarkControllerCloseChannel chan struct{} + + // Place to keep ClusterAutoscaler metrics from before test in order to compute delta. + clusterAutoscalerMetricsBeforeTest metrics.MetricsCollection } type TestDataSummary interface { @@ -202,12 +206,13 @@ func (f *Framework) BeforeEach() { Expect(err).NotTo(HaveOccurred()) externalClient, err := clientset.NewForConfig(externalConfig) Expect(err).NotTo(HaveOccurred()) + f.KubemarkExternalClusterClientSet = externalClient f.kubemarkControllerCloseChannel = make(chan struct{}) externalInformerFactory := informers.NewSharedInformerFactory(externalClient, 0) kubemarkInformerFactory := informers.NewSharedInformerFactory(f.ClientSet, 0) kubemarkNodeInformer := kubemarkInformerFactory.Core().V1().Nodes() go kubemarkNodeInformer.Informer().Run(f.kubemarkControllerCloseChannel) - TestContext.CloudConfig.KubemarkController, err = kubemark.NewKubemarkController(externalClient, externalInformerFactory, f.ClientSet, kubemarkNodeInformer) + TestContext.CloudConfig.KubemarkController, err = kubemark.NewKubemarkController(f.KubemarkExternalClusterClientSet, externalInformerFactory, f.ClientSet, kubemarkNodeInformer) Expect(err).NotTo(HaveOccurred()) externalInformerFactory.Start(f.kubemarkControllerCloseChannel) TestContext.CloudConfig.KubemarkController.Init(f.kubemarkControllerCloseChannel) @@ -255,6 +260,22 @@ func (f *Framework) BeforeEach() { f.logsSizeWaitGroup.Done() }() } + + gatherMetricsAfterTest := TestContext.GatherMetricsAfterTest == "true" || TestContext.GatherMetricsAfterTest == "master" + if gatherMetricsAfterTest && TestContext.IncludeClusterAutoscalerMetrics { + grabber, err := metrics.NewMetricsGrabber(f.ClientSet, f.KubemarkExternalClusterClientSet, !ProviderIs("kubemark"), false, false, false, TestContext.IncludeClusterAutoscalerMetrics) + if err != nil { + Logf("Failed to create MetricsGrabber (skipping ClusterAutoscaler metrics gathering before test): %v", err) + } else { + f.clusterAutoscalerMetricsBeforeTest, err = grabber.Grab() + if err != nil { + Logf("MetricsGrabber failed to grab CA metrics before test (skipping metrics gathering): %v", err) + } else { + Logf("Gathered ClusterAutoscaler metrics before test") + } + } + + } } // AfterEach deletes the namespace, after reading its events. @@ -351,16 +372,16 @@ func (f *Framework) AfterEach() { By("Gathering metrics") // Grab apiserver, scheduler, controller-manager metrics and (optionally) nodes' kubelet metrics. grabMetricsFromKubelets := TestContext.GatherMetricsAfterTest != "master" && !ProviderIs("kubemark") - grabber, err := metrics.NewMetricsGrabber(f.ClientSet, grabMetricsFromKubelets, true, true, true) + grabber, err := metrics.NewMetricsGrabber(f.ClientSet, f.KubemarkExternalClusterClientSet, grabMetricsFromKubelets, true, true, true, TestContext.IncludeClusterAutoscalerMetrics) if err != nil { Logf("Failed to create MetricsGrabber (skipping metrics gathering): %v", err) } else { received, err := grabber.Grab() if err != nil { - Logf("MetricsGrabber failed to grab metrics (skipping metrics gathering): %v", err) - } else { - f.TestSummaries = append(f.TestSummaries, (*MetricsForE2E)(&received)) + Logf("MetricsGrabber failed to grab some of the metrics: %v", err) } + (*MetricsForE2E)(&received).computeClusterAutoscalerMetricsDelta(f.clusterAutoscalerMetricsBeforeTest) + f.TestSummaries = append(f.TestSummaries, (*MetricsForE2E)(&received)) } } diff --git a/test/e2e/framework/get-kubemark-resource-usage.go b/test/e2e/framework/get-kubemark-resource-usage.go index b3c76ced75a..e9748dcca35 100644 --- a/test/e2e/framework/get-kubemark-resource-usage.go +++ b/test/e2e/framework/get-kubemark-resource-usage.go @@ -42,7 +42,7 @@ func GetKubemarkMasterComponentsResourceUsage() map[string]*KubemarkResourceUsag // Get kuberenetes component resource usage sshResult, err := getMasterUsageByPrefix("kube") if err != nil { - Logf("Error when trying to SSH to master machine. Skipping probe") + Logf("Error when trying to SSH to master machine. Skipping probe. %v", err) return nil } scanner := bufio.NewScanner(strings.NewReader(sshResult)) diff --git a/test/e2e/framework/kubelet_stats.go b/test/e2e/framework/kubelet_stats.go index d94c318d655..57c0193c5f1 100644 --- a/test/e2e/framework/kubelet_stats.go +++ b/test/e2e/framework/kubelet_stats.go @@ -68,7 +68,7 @@ func getKubeletMetricsFromNode(c clientset.Interface, nodeName string) (metrics. if c == nil { return metrics.GrabKubeletMetricsWithoutProxy(nodeName) } - grabber, err := metrics.NewMetricsGrabber(c, true, false, false, false) + grabber, err := metrics.NewMetricsGrabber(c, nil, true, false, false, false, false) if err != nil { return metrics.KubeletMetrics{}, err } diff --git a/test/e2e/framework/metrics/BUILD b/test/e2e/framework/metrics/BUILD index dfb56ff8b1a..734f38c3ade 100644 --- a/test/e2e/framework/metrics/BUILD +++ b/test/e2e/framework/metrics/BUILD @@ -11,6 +11,7 @@ go_library( name = "go_default_library", srcs = [ "api_server_metrics.go", + "cluster_autoscaler_metrics.go", "controller_manager_metrics.go", "generic_metrics.go", "kubelet_metrics.go", diff --git a/test/e2e/framework/metrics/cluster_autoscaler_metrics.go b/test/e2e/framework/metrics/cluster_autoscaler_metrics.go new file mode 100644 index 00000000000..9aa7dfebecc --- /dev/null +++ b/test/e2e/framework/metrics/cluster_autoscaler_metrics.go @@ -0,0 +1,36 @@ +/* +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. +*/ + +package metrics + +type ClusterAutoscalerMetrics Metrics + +func (m *ClusterAutoscalerMetrics) Equal(o ClusterAutoscalerMetrics) bool { + return (*Metrics)(m).Equal(Metrics(o)) +} + +func NewClusterAutoscalerMetrics() ClusterAutoscalerMetrics { + result := NewMetrics() + return ClusterAutoscalerMetrics(result) +} + +func parseClusterAutoscalerMetrics(data string) (ClusterAutoscalerMetrics, error) { + result := NewClusterAutoscalerMetrics() + if err := parseMetrics(data, (*Metrics)(&result)); err != nil { + return ClusterAutoscalerMetrics{}, err + } + return result, nil +} diff --git a/test/e2e/framework/metrics/generic_metrics.go b/test/e2e/framework/metrics/generic_metrics.go index 3a8251886a6..73558779052 100644 --- a/test/e2e/framework/metrics/generic_metrics.go +++ b/test/e2e/framework/metrics/generic_metrics.go @@ -51,7 +51,7 @@ func (m *Metrics) Equal(o Metrics) bool { func PrintSample(sample *model.Sample) string { buf := make([]string, 0) - // Id is a VERY special label. For 'normal' container it's usless, but it's necessary + // Id is a VERY special label. For 'normal' container it's useless, but it's necessary // for 'system' containers (e.g. /docker-daemon, /kubelet, etc.). We know if that's the // case by checking if there's a label "kubernetes_container_name" present. It's hacky // but it works... @@ -97,17 +97,3 @@ func parseMetrics(data string, output *Metrics) error { } } } - -func (g *MetricsGrabber) getMetricsFromPod(podName string, namespace string, port int) (string, error) { - rawOutput, err := g.client.Core().RESTClient().Get(). - Namespace(namespace). - Resource("pods"). - SubResource("proxy"). - Name(fmt.Sprintf("%v:%v", podName, port)). - Suffix("metrics"). - Do().Raw() - if err != nil { - return "", err - } - return string(rawOutput), nil -} diff --git a/test/e2e/framework/metrics/metrics_grabber.go b/test/e2e/framework/metrics/metrics_grabber.go index 09daa4879df..48c80edfb2f 100644 --- a/test/e2e/framework/metrics/metrics_grabber.go +++ b/test/e2e/framework/metrics/metrics_grabber.go @@ -39,19 +39,22 @@ type MetricsCollection struct { ControllerManagerMetrics ControllerManagerMetrics KubeletMetrics map[string]KubeletMetrics SchedulerMetrics SchedulerMetrics + ClusterAutoscalerMetrics ClusterAutoscalerMetrics } type MetricsGrabber struct { client clientset.Interface + externalClient clientset.Interface grabFromApiServer bool grabFromControllerManager bool grabFromKubelets bool grabFromScheduler bool + grabFromClusterAutoscaler bool masterName string registeredMaster bool } -func NewMetricsGrabber(c clientset.Interface, kubelets bool, scheduler bool, controllers bool, apiServer bool) (*MetricsGrabber, error) { +func NewMetricsGrabber(c clientset.Interface, ec clientset.Interface, kubelets bool, scheduler bool, controllers bool, apiServer bool, clusterAutoscaler bool) (*MetricsGrabber, error) { registeredMaster := false masterName := "" nodeList, err := c.Core().Nodes().List(metav1.ListOptions{}) @@ -71,15 +74,22 @@ func NewMetricsGrabber(c clientset.Interface, kubelets bool, scheduler bool, con if !registeredMaster { scheduler = false controllers = false - glog.Warningf("Master node is not registered. Grabbing metrics from Scheduler and ControllerManager is disabled.") + clusterAutoscaler = ec != nil + if clusterAutoscaler { + glog.Warningf("Master node is not registered. Grabbing metrics from Scheduler, ControllerManager is disabled.") + } else { + glog.Warningf("Master node is not registered. Grabbing metrics from Scheduler, ControllerManager and ClusterAutoscaler is disabled.") + } } return &MetricsGrabber{ client: c, + externalClient: ec, grabFromApiServer: apiServer, grabFromControllerManager: controllers, grabFromKubelets: kubelets, grabFromScheduler: scheduler, + grabFromClusterAutoscaler: clusterAutoscaler, masterName: masterName, registeredMaster: registeredMaster, }, nil @@ -112,18 +122,38 @@ func (g *MetricsGrabber) GrabFromScheduler() (SchedulerMetrics, error) { if !g.registeredMaster { return SchedulerMetrics{}, fmt.Errorf("Master's Kubelet is not registered. Skipping Scheduler's metrics gathering.") } - output, err := g.getMetricsFromPod(fmt.Sprintf("%v-%v", "kube-scheduler", g.masterName), metav1.NamespaceSystem, ports.SchedulerPort) + output, err := g.getMetricsFromPod(g.client, fmt.Sprintf("%v-%v", "kube-scheduler", g.masterName), metav1.NamespaceSystem, ports.SchedulerPort) if err != nil { return SchedulerMetrics{}, err } return parseSchedulerMetrics(output) } +func (g *MetricsGrabber) GrabFromClusterAutoscaler() (ClusterAutoscalerMetrics, error) { + if !g.registeredMaster && g.externalClient == nil { + return ClusterAutoscalerMetrics{}, fmt.Errorf("Master's Kubelet is not registered. Skipping ClusterAutoscaler's metrics gathering.") + } + var client clientset.Interface + var namespace string + if g.externalClient != nil { + client = g.externalClient + namespace = "kubemark" + } else { + client = g.client + namespace = metav1.NamespaceSystem + } + output, err := g.getMetricsFromPod(client, "cluster-autoscaler", namespace, 8085) + if err != nil { + return ClusterAutoscalerMetrics{}, err + } + return parseClusterAutoscalerMetrics(output) +} + func (g *MetricsGrabber) GrabFromControllerManager() (ControllerManagerMetrics, error) { if !g.registeredMaster { return ControllerManagerMetrics{}, fmt.Errorf("Master's Kubelet is not registered. Skipping ControllerManager's metrics gathering.") } - output, err := g.getMetricsFromPod(fmt.Sprintf("%v-%v", "kube-controller-manager", g.masterName), metav1.NamespaceSystem, ports.ControllerManagerPort) + output, err := g.getMetricsFromPod(g.client, fmt.Sprintf("%v-%v", "kube-controller-manager", g.masterName), metav1.NamespaceSystem, ports.ControllerManagerPort) if err != nil { return ControllerManagerMetrics{}, err } @@ -165,6 +195,14 @@ func (g *MetricsGrabber) Grab() (MetricsCollection, error) { result.ControllerManagerMetrics = metrics } } + if g.grabFromClusterAutoscaler { + metrics, err := g.GrabFromClusterAutoscaler() + if err != nil { + errs = append(errs, err) + } else { + result.ClusterAutoscalerMetrics = metrics + } + } if g.grabFromKubelets { result.KubeletMetrics = make(map[string]KubeletMetrics) nodes, err := g.client.Core().Nodes().List(metav1.ListOptions{}) @@ -182,7 +220,21 @@ func (g *MetricsGrabber) Grab() (MetricsCollection, error) { } } if len(errs) > 0 { - return MetricsCollection{}, fmt.Errorf("Errors while grabbing metrics: %v", errs) + return result, fmt.Errorf("Errors while grabbing metrics: %v", errs) } return result, nil } + +func (g *MetricsGrabber) getMetricsFromPod(client clientset.Interface, podName string, namespace string, port int) (string, error) { + rawOutput, err := client.Core().RESTClient().Get(). + Namespace(namespace). + Resource("pods"). + SubResource("proxy"). + Name(fmt.Sprintf("%v:%v", podName, port)). + Suffix("metrics"). + Do().Raw() + if err != nil { + return "", err + } + return string(rawOutput), nil +} diff --git a/test/e2e/framework/metrics_util.go b/test/e2e/framework/metrics_util.go index 4284afc7f0c..c1e5abeb113 100644 --- a/test/e2e/framework/metrics_util.go +++ b/test/e2e/framework/metrics_util.go @@ -54,6 +54,10 @@ const ( // We set a higher threshold for list apicalls as they can take more time when // the list is really big. For eg. list nodes in a 5000-node cluster. apiListCallLatencyThreshold time.Duration = 2 * time.Second + + // Cluster Autoscaler metrics names + caFunctionMetric = "cluster_autoscaler_function_duration_seconds_bucket" + caFunctionMetricLabel = "function" ) type MetricsForE2E metrics.MetricsCollection @@ -67,6 +71,10 @@ func (m *MetricsForE2E) filterMetrics() { for _, metric := range InterestingControllerManagerMetrics { interestingControllerManagerMetrics[metric] = (*m).ControllerManagerMetrics[metric] } + interestingClusterAutoscalerMetrics := make(metrics.ClusterAutoscalerMetrics) + for _, metric := range InterestingClusterAutoscalerMetrics { + interestingClusterAutoscalerMetrics[metric] = (*m).ClusterAutoscalerMetrics[metric] + } interestingKubeletMetrics := make(map[string]metrics.KubeletMetrics) for kubelet, grabbed := range (*m).KubeletMetrics { interestingKubeletMetrics[kubelet] = make(metrics.KubeletMetrics) @@ -93,6 +101,12 @@ func (m *MetricsForE2E) PrintHumanReadable() string { buf.WriteString(fmt.Sprintf("\t%v\n", metrics.PrintSample(sample))) } } + for _, interestingMetric := range InterestingClusterAutoscalerMetrics { + buf.WriteString(fmt.Sprintf("For %v:\n", interestingMetric)) + for _, sample := range (*m).ClusterAutoscalerMetrics[interestingMetric] { + buf.WriteString(fmt.Sprintf("\t%v\n", metrics.PrintSample(sample))) + } + } for kubelet, grabbed := range (*m).KubeletMetrics { buf.WriteString(fmt.Sprintf("For %v:\n", kubelet)) for _, interestingMetric := range InterestingKubeletMetrics { @@ -156,6 +170,12 @@ var InterestingKubeletMetrics = []string{ "kubelet_sync_pods_latency_microseconds", } +var InterestingClusterAutoscalerMetrics = []string{ + "function_duration_seconds", + "errors_total", + "evicted_pods_total", +} + // Dashboard metrics type LatencyMetric struct { Perc50 time.Duration `json:"Perc50"` @@ -199,7 +219,7 @@ func (l *SchedulingLatency) PrintJSON() string { } type SaturationTime struct { - TimeToSaturate time.Duration `json:"timeToStaturate"` + TimeToSaturate time.Duration `json:"timeToSaturate"` NumberOfNodes int `json:"numberOfNodes"` NumberOfPods int `json:"numberOfPods"` Throughput float32 `json:"throughput"` @@ -575,3 +595,24 @@ func PrintLatencies(latencies []PodLatencyData, header string) { Logf("10%% %s: %v", header, latencies[(len(latencies)*9)/10:]) Logf("perc50: %v, perc90: %v, perc99: %v", metrics.Perc50, metrics.Perc90, metrics.Perc99) } + +func (m *MetricsForE2E) computeClusterAutoscalerMetricsDelta(before metrics.MetricsCollection) { + if beforeSamples, found := before.ClusterAutoscalerMetrics[caFunctionMetric]; found { + if afterSamples, found := m.ClusterAutoscalerMetrics[caFunctionMetric]; found { + beforeSamplesMap := make(map[string]*model.Sample) + for _, bSample := range beforeSamples { + beforeSamplesMap[makeKey(bSample.Metric[caFunctionMetricLabel], bSample.Metric["le"])] = bSample + } + for _, aSample := range afterSamples { + if bSample, found := beforeSamplesMap[makeKey(aSample.Metric[caFunctionMetricLabel], aSample.Metric["le"])]; found { + aSample.Value = aSample.Value - bSample.Value + } + + } + } + } +} + +func makeKey(a, b model.LabelValue) string { + return string(a) + "___" + string(b) +} diff --git a/test/e2e/framework/test_context.go b/test/e2e/framework/test_context.go index b4f87b092cb..7d784055e7b 100644 --- a/test/e2e/framework/test_context.go +++ b/test/e2e/framework/test_context.go @@ -77,6 +77,8 @@ type TestContextType struct { GatherLogsSizes bool GatherMetricsAfterTest string GatherSuiteMetricsAfterTest bool + // If set to 'true' framework will gather ClusterAutoscaler metrics when gathering them for other components. + IncludeClusterAutoscalerMetrics bool // Currently supported values are 'hr' for human-readable and 'json'. It's a comma separated list. OutputPrintType string // NodeSchedulableTimeout is the timeout for waiting for all nodes to be schedulable. @@ -181,6 +183,7 @@ func RegisterCommonFlags() { flag.BoolVar(&TestContext.GatherLogsSizes, "gather-logs-sizes", false, "If set to true framework will be monitoring logs sizes on all machines running e2e tests.") flag.StringVar(&TestContext.GatherMetricsAfterTest, "gather-metrics-at-teardown", "false", "If set to 'true' framework will gather metrics from all components after each test. If set to 'master' only master component metrics would be gathered.") flag.BoolVar(&TestContext.GatherSuiteMetricsAfterTest, "gather-suite-metrics-at-teardown", false, "If set to true framwork will gather metrics from all components after the whole test suite completes.") + flag.BoolVar(&TestContext.IncludeClusterAutoscalerMetrics, "include-cluster-autoscaler", false, "If set to true, framework will include Cluster Autoscaler when gathering metrics.") flag.StringVar(&TestContext.OutputPrintType, "output-print-type", "json", "Format in which summaries should be printed: 'hr' for human readable, 'json' for JSON ones.") flag.BoolVar(&TestContext.DumpLogsOnFailure, "dump-logs-on-failure", true, "If set to true test will dump data about the namespace in which test was running.") flag.BoolVar(&TestContext.DisableLogDump, "disable-log-dump", false, "If set to true, logs from master and nodes won't be gathered after test run.") diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 0b6455f83c3..afd4eefc6df 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -4948,6 +4948,7 @@ func PrintSummaries(summaries []TestDataSummary, testBaseName string) { } else { // TODO: learn to extract test name and append it to the kind instead of timestamp. filePath := path.Join(TestContext.ReportDir, summaries[i].SummaryKind()+"_"+testBaseName+"_"+now.Format(time.RFC3339)+".json") + Logf("Writing to %s", filePath) if err := ioutil.WriteFile(filePath, []byte(summaries[i].PrintJSON()), 0644); err != nil { Logf("Failed to write file %v with test performance data: %v", filePath, err) } diff --git a/test/e2e/instrumentation/monitoring/metrics_grabber.go b/test/e2e/instrumentation/monitoring/metrics_grabber.go index e7f0ea5bde2..5e115d049b5 100644 --- a/test/e2e/instrumentation/monitoring/metrics_grabber.go +++ b/test/e2e/instrumentation/monitoring/metrics_grabber.go @@ -31,13 +31,14 @@ import ( var _ = instrumentation.SIGDescribe("MetricsGrabber", func() { f := framework.NewDefaultFramework("metrics-grabber") - var c clientset.Interface + var c, ec clientset.Interface var grabber *metrics.MetricsGrabber gin.BeforeEach(func() { var err error c = f.ClientSet + ec = f.KubemarkExternalClusterClientSet framework.ExpectNoError(err) - grabber, err = metrics.NewMetricsGrabber(c, true, true, true, true) + grabber, err = metrics.NewMetricsGrabber(c, ec, true, true, true, true, true) framework.ExpectNoError(err) }) From 77e347b8d086c51c02ffdf50c00452864a6ec747 Mon Sep 17 00:00:00 2001 From: Nikhita Raghunath Date: Thu, 10 Aug 2017 14:32:51 +0530 Subject: [PATCH 159/183] jsonpath: fix comments avoid named return errors fix compile error --- .../client-go/util/jsonpath/jsonpath.go | 28 ++++++++++--------- .../k8s.io/client-go/util/jsonpath/node.go | 4 +-- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go b/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go index cc2fbb2a7cc..6633ca0d651 100644 --- a/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go +++ b/staging/src/k8s.io/client-go/util/jsonpath/jsonpath.go @@ -29,8 +29,8 @@ import ( type JSONPath struct { name string parser *Parser - stack [][]reflect.Value //push and pop values in different scopes - cur []reflect.Value //current scope values + stack [][]reflect.Value // push and pop values in different scopes + cur []reflect.Value // current scope values beginRange int inRange int endRange int @@ -38,6 +38,7 @@ type JSONPath struct { allowMissingKeys bool } +// New creates a new JSONPath with the given name. func New(name string) *JSONPath { return &JSONPath{ name: name, @@ -54,13 +55,14 @@ func (j *JSONPath) AllowMissingKeys(allow bool) *JSONPath { return j } -// Parse parse the given template, return error -func (j *JSONPath) Parse(text string) (err error) { +// Parse parses the given template and returns an error. +func (j *JSONPath) Parse(text string) error { + var err error j.parser, err = Parse(j.name, text) - return + return err } -// Execute bounds data into template and write the result +// Execute bounds data into template and writes the result. func (j *JSONPath) Execute(wr io.Writer, data interface{}) error { fullResults, err := j.FindResults(data) if err != nil { @@ -89,12 +91,12 @@ func (j *JSONPath) FindResults(data interface{}) ([][]reflect.Value, error) { return nil, err } - //encounter an end node, break the current block + // encounter an end node, break the current block if j.endRange > 0 && j.endRange <= j.inRange { j.endRange -= 1 break } - //encounter a range node, start a range loop + // encounter a range node, start a range loop if j.beginRange > 0 { j.beginRange -= 1 j.inRange += 1 @@ -116,7 +118,7 @@ func (j *JSONPath) FindResults(data interface{}) ([][]reflect.Value, error) { return fullResult, nil } -// PrintResults write the results into writer +// PrintResults writes the results into writer func (j *JSONPath) PrintResults(wr io.Writer, results []reflect.Value) error { for i, r := range results { text, err := j.evalToText(r) @@ -214,7 +216,7 @@ func (j *JSONPath) evalIdentifier(input []reflect.Value, node *IdentifierNode) ( j.beginRange += 1 results = input case "end": - if j.endRange < j.inRange { //inside a loop, break the current block + if j.endRange < j.inRange { // inside a loop, break the current block j.endRange += 1 break } @@ -366,7 +368,7 @@ func (j *JSONPath) evalField(input []reflect.Value, node *FieldNode) ([]reflect. return results, nil } -// evalWildcard extract all contents of the given value +// evalWildcard extracts all contents of the given value func (j *JSONPath) evalWildcard(input []reflect.Value, node *WildcardNode) ([]reflect.Value, error) { results := []reflect.Value{} for _, value := range input { @@ -393,7 +395,7 @@ func (j *JSONPath) evalWildcard(input []reflect.Value, node *WildcardNode) ([]re return results, nil } -// evalRecursive visit the given value recursively and push all of them to result +// evalRecursive visits the given value recursively and pushes all of them to result func (j *JSONPath) evalRecursive(input []reflect.Value, node *RecursiveNode) ([]reflect.Value, error) { result := []reflect.Value{} for _, value := range input { @@ -429,7 +431,7 @@ func (j *JSONPath) evalRecursive(input []reflect.Value, node *RecursiveNode) ([] return result, nil } -// evalFilter filter array according to FilterNode +// evalFilter filters array according to FilterNode func (j *JSONPath) evalFilter(input []reflect.Value, node *FilterNode) ([]reflect.Value, error) { results := []reflect.Value{} for _, value := range input { diff --git a/staging/src/k8s.io/client-go/util/jsonpath/node.go b/staging/src/k8s.io/client-go/util/jsonpath/node.go index be74c4fe244..bc763357cfb 100644 --- a/staging/src/k8s.io/client-go/util/jsonpath/node.go +++ b/staging/src/k8s.io/client-go/util/jsonpath/node.go @@ -131,13 +131,13 @@ func (f *IdentifierNode) String() string { // ParamsEntry holds param information for ArrayNode type ParamsEntry struct { Value int - Known bool //whether the value is known when parse it + Known bool // whether the value is known when parse it } // ArrayNode holds start, end, step information for array index selection type ArrayNode struct { NodeType - Params [3]ParamsEntry //start, end, step + Params [3]ParamsEntry // start, end, step } func newArray(params [3]ParamsEntry) *ArrayNode { From ae99f10afdad4b9bcb89fba6c98f953c83e03648 Mon Sep 17 00:00:00 2001 From: Slava Semushin Date: Thu, 3 Aug 2017 11:14:42 +0200 Subject: [PATCH 160/183] Simplify a command for unmounting mounted directories under /var/lib/kubelet. --- cmd/kubeadm/app/cmd/reset.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/kubeadm/app/cmd/reset.go b/cmd/kubeadm/app/cmd/reset.go index fcba36065c5..779b290d694 100644 --- a/cmd/kubeadm/app/cmd/reset.go +++ b/cmd/kubeadm/app/cmd/reset.go @@ -97,7 +97,7 @@ func (r *Reset) Run(out io.Writer) error { // Try to unmount mounted directories under /var/lib/kubelet in order to be able to remove the /var/lib/kubelet directory later fmt.Printf("[reset] Unmounting mounted directories in %q\n", "/var/lib/kubelet") - umountDirsCmd := "cat /proc/mounts | awk '{print $2}' | grep '/var/lib/kubelet' | xargs -r umount" + umountDirsCmd := "awk '$2 ~ path {print $2}' path=/var/lib/kubelet /proc/mounts | xargs -r umount" umountOutputBytes, err := exec.Command("sh", "-c", umountDirsCmd).Output() if err != nil { fmt.Printf("[reset] Failed to unmount mounted directories in /var/lib/kubelet: %s\n", string(umountOutputBytes)) From 20a375602455d64670092a1101f84998221c9308 Mon Sep 17 00:00:00 2001 From: Beata Skiba Date: Tue, 8 Aug 2017 20:50:17 +0200 Subject: [PATCH 161/183] Add functionality needed by Cluster Autoscaler to Kubemark Provider. Make adding nodes asynchronous. Add method for getting target size of node group. Add method for getting node group for node. Factor out some common code. --- pkg/kubemark/controller.go | 178 +++++++++++++++++++++----------- test/e2e/framework/framework.go | 3 +- test/e2e/framework/size.go | 2 +- 3 files changed, 123 insertions(+), 60 deletions(-) diff --git a/pkg/kubemark/controller.go b/pkg/kubemark/controller.go index 53d163175cc..017524b7cef 100644 --- a/pkg/kubemark/controller.go +++ b/pkg/kubemark/controller.go @@ -39,7 +39,6 @@ import ( const ( namespaceKubemark = "kubemark" - hollowNodeName = "hollow-node" nodeGroupLabel = "autoscaling.k8s.io/nodegroup" numRetries = 3 ) @@ -48,10 +47,13 @@ const ( // to add and delete nodes from a kubemark cluster and introduces nodegroups // by applying labels to the kubemark's hollow-nodes. type KubemarkController struct { - nodeTemplate *apiv1.ReplicationController - externalCluster externalCluster - kubemarkCluster kubemarkCluster - rand *rand.Rand + nodeTemplate *apiv1.ReplicationController + externalCluster externalCluster + kubemarkCluster kubemarkCluster + rand *rand.Rand + createNodeQueue chan string + nodeGroupQueueSize map[string]int + nodeGroupQueueSizeLock sync.Mutex } // externalCluster is used to communicate with the external cluster that hosts @@ -98,7 +100,10 @@ func NewKubemarkController(externalClient kubeclient.Interface, externalInformer nodesToDelete: make(map[string]bool), nodesToDeleteLock: sync.Mutex{}, }, - rand: rand.New(rand.NewSource(time.Now().UTC().UnixNano())), + rand: rand.New(rand.NewSource(time.Now().UTC().UnixNano())), + createNodeQueue: make(chan string, 1000), + nodeGroupQueueSize: make(map[string]int), + nodeGroupQueueSizeLock: sync.Mutex{}, } kubemarkNodeInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -108,27 +113,29 @@ func NewKubemarkController(externalClient kubeclient.Interface, externalInformer return controller, nil } -// Init waits for population of caches and populates the node template needed -// for creation of kubemark nodes. -func (kubemarkController *KubemarkController) Init(stopCh chan struct{}) { - if !controller.WaitForCacheSync("kubemark", stopCh, +// WaitForCacheSync waits until all caches in the controller are populated. +func (kubemarkController *KubemarkController) WaitForCacheSync(stopCh chan struct{}) bool { + return controller.WaitForCacheSync("kubemark", stopCh, kubemarkController.externalCluster.rcSynced, kubemarkController.externalCluster.podSynced, - kubemarkController.kubemarkCluster.nodeSynced) { - return - } - - // Get hollow node template from an existing hollow node to be able to create - // new nodes based on it. - nodeTemplate, err := kubemarkController.getNodeTemplate() - if err != nil { - glog.Fatalf("Failed to get node template: %s", err) - } - kubemarkController.nodeTemplate = nodeTemplate + kubemarkController.kubemarkCluster.nodeSynced) } -// GetNodesForNodegroup returns list of the nodes in the node group. -func (kubemarkController *KubemarkController) GetNodeNamesForNodegroup(nodeGroup string) ([]string, error) { +// Run populates the node template needed for creation of kubemark nodes and +// starts the worker routine for creating new nodes. +func (kubemarkController *KubemarkController) Run(stopCh chan struct{}) { + nodeTemplate, err := kubemarkController.getNodeTemplate() + if err != nil { + glog.Fatalf("failed to get node template: %s", err) + } + kubemarkController.nodeTemplate = nodeTemplate + + go kubemarkController.runNodeCreation(stopCh) + <-stopCh +} + +// GetNodeNamesForNodeGroup returns list of the nodes in the node group. +func (kubemarkController *KubemarkController) GetNodeNamesForNodeGroup(nodeGroup string) ([]string, error) { selector := labels.SelectorFromSet(labels.Set{nodeGroupLabel: nodeGroup}) pods, err := kubemarkController.externalCluster.podLister.List(selector) if err != nil { @@ -141,7 +148,7 @@ func (kubemarkController *KubemarkController) GetNodeNamesForNodegroup(nodeGroup return result, nil } -// GetNodeGroupSize returns the current size for the node group. +// GetNodeGroupSize returns the current size for the node group as observed. func (kubemarkController *KubemarkController) GetNodeGroupSize(nodeGroup string) (int, error) { selector := labels.SelectorFromSet(labels.Set(map[string]string{nodeGroupLabel: nodeGroup})) nodes, err := kubemarkController.externalCluster.rcLister.List(selector) @@ -151,21 +158,33 @@ func (kubemarkController *KubemarkController) GetNodeGroupSize(nodeGroup string) return len(nodes), nil } +// GetNodeGroupTargetSize returns the size of the node group as a sum of current +// observed size and number of upcoming nodes. +func (kubemarkController *KubemarkController) GetNodeGroupTargetSize(nodeGroup string) (int, error) { + kubemarkController.nodeGroupQueueSizeLock.Lock() + defer kubemarkController.nodeGroupQueueSizeLock.Unlock() + realSize, err := kubemarkController.GetNodeGroupSize(nodeGroup) + if err != nil { + return realSize, err + } + return realSize + kubemarkController.nodeGroupQueueSize[nodeGroup], nil +} + // SetNodeGroupSize changes the size of node group by adding or removing nodes. func (kubemarkController *KubemarkController) SetNodeGroupSize(nodeGroup string, size int) error { - currSize, err := kubemarkController.GetNodeGroupSize(nodeGroup) + currSize, err := kubemarkController.GetNodeGroupTargetSize(nodeGroup) if err != nil { return err } switch delta := size - currSize; { case delta < 0: absDelta := -delta - nodes, err := kubemarkController.GetNodeNamesForNodegroup(nodeGroup) + nodes, err := kubemarkController.GetNodeNamesForNodeGroup(nodeGroup) if err != nil { return err } - if len(nodes) > absDelta { - return fmt.Errorf("can't remove %d nodes from %s nodegroup, not enough nodes", absDelta, nodeGroup) + if len(nodes) < absDelta { + return fmt.Errorf("can't remove %d nodes from %s nodegroup, not enough nodes: %d", absDelta, nodeGroup, len(nodes)) } for i, node := range nodes { if i == absDelta { @@ -176,16 +195,31 @@ func (kubemarkController *KubemarkController) SetNodeGroupSize(nodeGroup string, } } case delta > 0: + kubemarkController.nodeGroupQueueSizeLock.Lock() for i := 0; i < delta; i++ { - if err := kubemarkController.addNodeToNodeGroup(nodeGroup); err != nil { - return err - } + kubemarkController.nodeGroupQueueSize[nodeGroup]++ + kubemarkController.createNodeQueue <- nodeGroup } + kubemarkController.nodeGroupQueueSizeLock.Unlock() } return nil } +// GetNodeGroupForNode returns the name of the node group to which the node +// belongs. +func (kubemarkController *KubemarkController) GetNodeGroupForNode(node string) (string, error) { + pod := kubemarkController.getPodByName(node) + if pod == nil { + return "", fmt.Errorf("node %s does not exist", node) + } + nodeGroup, ok := pod.ObjectMeta.Labels[nodeGroupLabel] + if ok { + return nodeGroup, nil + } + return "", fmt.Errorf("can't find nodegroup for node %s due to missing label %s", node, nodeGroupLabel) +} + func (kubemarkController *KubemarkController) addNodeToNodeGroup(nodeGroup string) error { templateCopy, err := api.Scheme.Copy(kubemarkController.nodeTemplate) if err != nil { @@ -207,35 +241,32 @@ func (kubemarkController *KubemarkController) addNodeToNodeGroup(nodeGroup strin } func (kubemarkController *KubemarkController) removeNodeFromNodeGroup(nodeGroup string, node string) error { - pods, err := kubemarkController.externalCluster.podLister.List(labels.Everything()) - if err != nil { - return err + pod := kubemarkController.getPodByName(node) + if pod == nil { + glog.Warningf("Can't delete node %s from nodegroup %s. Node does not exist.", node, nodeGroup) + return nil } - for _, pod := range pods { - if pod.ObjectMeta.Name == node { - if pod.ObjectMeta.Labels[nodeGroupLabel] != nodeGroup { - return fmt.Errorf("can't delete node %s from nodegroup %s. Node is not in nodegroup", node, nodeGroup) - } - policy := metav1.DeletePropagationForeground - for i := 0; i < numRetries; i++ { - err := kubemarkController.externalCluster.client.CoreV1().ReplicationControllers(namespaceKubemark).Delete( - pod.ObjectMeta.Labels["name"], - &metav1.DeleteOptions{PropagationPolicy: &policy}) - if err == nil { - glog.Infof("marking node %s for deletion", node) - // Mark node for deletion from kubemark cluster. - // Once it becomes unready after replication controller - // deletion has been noticed, we will delete it explicitly. - // This is to cover for the fact that kubemark does not - // take care of this itself. - kubemarkController.kubemarkCluster.markNodeForDeletion(node) - return nil - } - } + if pod.ObjectMeta.Labels[nodeGroupLabel] != nodeGroup { + return fmt.Errorf("can't delete node %s from nodegroup %s. Node is not in nodegroup", node, nodeGroup) + } + policy := metav1.DeletePropagationForeground + var err error + for i := 0; i < numRetries; i++ { + err = kubemarkController.externalCluster.client.CoreV1().ReplicationControllers(namespaceKubemark).Delete( + pod.ObjectMeta.Labels["name"], + &metav1.DeleteOptions{PropagationPolicy: &policy}) + if err == nil { + glog.Infof("marking node %s for deletion", node) + // Mark node for deletion from kubemark cluster. + // Once it becomes unready after replication controller + // deletion has been noticed, we will delete it explicitly. + // This is to cover for the fact that kubemark does not + // take care of this itself. + kubemarkController.kubemarkCluster.markNodeForDeletion(node) + return nil } } - - return fmt.Errorf("can't delete node %s from nodegroup %s. Node does not exist", node, nodeGroup) + return fmt.Errorf("Failed to delete node %s: %v", node, err) } func (kubemarkController *KubemarkController) getReplicationControllerByName(name string) *apiv1.ReplicationController { @@ -251,6 +282,19 @@ func (kubemarkController *KubemarkController) getReplicationControllerByName(nam return nil } +func (kubemarkController *KubemarkController) getPodByName(name string) *apiv1.Pod { + pods, err := kubemarkController.externalCluster.podLister.List(labels.Everything()) + if err != nil { + return nil + } + for _, pod := range pods { + if pod.ObjectMeta.Name == name { + return pod + } + } + return nil +} + func (kubemarkController *KubemarkController) getNodeNameForPod(podName string) (string, error) { pods, err := kubemarkController.externalCluster.podLister.List(labels.Everything()) if err != nil { @@ -293,6 +337,24 @@ func (kubemarkController *KubemarkController) getNodeTemplate() (*apiv1.Replicat return nil, fmt.Errorf("can't get hollow node template") } +func (kubemarkController *KubemarkController) runNodeCreation(stop <-chan struct{}) { + for { + select { + case nodeGroup := <-kubemarkController.createNodeQueue: + kubemarkController.nodeGroupQueueSizeLock.Lock() + err := kubemarkController.addNodeToNodeGroup(nodeGroup) + if err != nil { + glog.Errorf("failed to add node to node group %s: %v", nodeGroup, err) + } else { + kubemarkController.nodeGroupQueueSize[nodeGroup]-- + } + kubemarkController.nodeGroupQueueSizeLock.Unlock() + case <-stop: + return + } + } +} + func (kubemarkCluster *kubemarkCluster) getHollowNodeName() (string, error) { nodes, err := kubemarkCluster.nodeLister.List(labels.Everything()) if err != nil { @@ -318,7 +380,7 @@ func (kubemarkCluster *kubemarkCluster) removeUnneededNodes(oldObj interface{}, if kubemarkCluster.nodesToDelete[node.Name] { kubemarkCluster.nodesToDelete[node.Name] = false if err := kubemarkCluster.client.CoreV1().Nodes().Delete(node.Name, &metav1.DeleteOptions{}); err != nil { - glog.Errorf("failed to delete node %s from kubemark cluster", node.Name) + glog.Errorf("failed to delete node %s from kubemark cluster, err: %v", node.Name, err) } } return diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index f4fa2bfa8f5..e938e325444 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -210,7 +210,8 @@ func (f *Framework) BeforeEach() { TestContext.CloudConfig.KubemarkController, err = kubemark.NewKubemarkController(externalClient, externalInformerFactory, f.ClientSet, kubemarkNodeInformer) Expect(err).NotTo(HaveOccurred()) externalInformerFactory.Start(f.kubemarkControllerCloseChannel) - TestContext.CloudConfig.KubemarkController.Init(f.kubemarkControllerCloseChannel) + Expect(TestContext.CloudConfig.KubemarkController.WaitForCacheSync(f.kubemarkControllerCloseChannel)).To(BeTrue()) + go TestContext.CloudConfig.KubemarkController.Run(f.kubemarkControllerCloseChannel) } } diff --git a/test/e2e/framework/size.go b/test/e2e/framework/size.go index 7883f41fc08..8878e898428 100644 --- a/test/e2e/framework/size.go +++ b/test/e2e/framework/size.go @@ -75,7 +75,7 @@ func GetGroupNodes(group string) ([]string, error) { } return lines, nil } else if TestContext.Provider == "kubemark" { - return TestContext.CloudConfig.KubemarkController.GetNodeNamesForNodegroup(group) + return TestContext.CloudConfig.KubemarkController.GetNodeNamesForNodeGroup(group) } else { return nil, fmt.Errorf("provider does not support InstanceGroups") } From 0beaa3a25b8d828deb297674b80f9e43d657fe47 Mon Sep 17 00:00:00 2001 From: Aleksandra Malinowska Date: Wed, 9 Aug 2017 15:56:56 +0200 Subject: [PATCH 162/183] add Cluster Autoscaler scalability test suite --- test/e2e/autoscaling/BUILD | 3 + .../cluster_autoscaler_scalability.go | 458 ++++++++++++++++++ .../autoscaling/cluster_size_autoscaling.go | 24 +- 3 files changed, 479 insertions(+), 6 deletions(-) create mode 100644 test/e2e/autoscaling/cluster_autoscaler_scalability.go diff --git a/test/e2e/autoscaling/BUILD b/test/e2e/autoscaling/BUILD index 2f13fcb1a85..ce21fb6b6a0 100644 --- a/test/e2e/autoscaling/BUILD +++ b/test/e2e/autoscaling/BUILD @@ -11,6 +11,7 @@ go_library( name = "go_default_library", srcs = [ "autoscaling_timer.go", + "cluster_autoscaler_scalability.go", "cluster_size_autoscaling.go", "dns_autoscaling.go", "framework.go", @@ -33,9 +34,11 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/strategicpatch:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", diff --git a/test/e2e/autoscaling/cluster_autoscaler_scalability.go b/test/e2e/autoscaling/cluster_autoscaler_scalability.go new file mode 100644 index 00000000000..d3577c2ca85 --- /dev/null +++ b/test/e2e/autoscaling/cluster_autoscaler_scalability.go @@ -0,0 +1,458 @@ +/* +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 autoscaling + +import ( + "encoding/json" + "fmt" + "strings" + "time" + + "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/strategicpatch" + clientset "k8s.io/client-go/kubernetes" + "k8s.io/kubernetes/test/e2e/framework" + testutils "k8s.io/kubernetes/test/utils" + + "github.com/golang/glog" + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +const ( + largeResizeTimeout = 10 * time.Minute + largeScaleUpTimeout = 10 * time.Minute + largeScaleDownTimeout = 20 * time.Minute + minute = 1 * time.Minute + + maxNodes = 1000 +) + +type clusterPredicates struct { + nodes int +} + +type scaleUpTestConfig struct { + initialNodes int + initialPods int + extraPods *testutils.RCConfig + expectedResult *clusterPredicates +} + +var _ = framework.KubeDescribe("Cluster size autoscaler scalability [Slow]", func() { + f := framework.NewDefaultFramework("autoscaling") + var c clientset.Interface + var nodeCount int + var coresPerNode int + var memCapacityMb int + var originalSizes map[string]int + var sum int + + BeforeEach(func() { + framework.SkipUnlessProviderIs("gce", "gke", "kubemark") + + c = f.ClientSet + if originalSizes == nil { + originalSizes = make(map[string]int) + sum = 0 + for _, mig := range strings.Split(framework.TestContext.CloudConfig.NodeInstanceGroup, ",") { + size, err := framework.GroupSize(mig) + framework.ExpectNoError(err) + By(fmt.Sprintf("Initial size of %s: %d", mig, size)) + originalSizes[mig] = size + sum += size + } + } + + framework.ExpectNoError(framework.WaitForClusterSize(c, sum, scaleUpTimeout)) + + nodes := framework.GetReadySchedulableNodesOrDie(f.ClientSet) + nodeCount = len(nodes.Items) + Expect(nodeCount).NotTo(BeZero()) + cpu := nodes.Items[0].Status.Capacity[v1.ResourceCPU] + mem := nodes.Items[0].Status.Capacity[v1.ResourceMemory] + coresPerNode = int((&cpu).MilliValue() / 1000) + memCapacityMb = int((&mem).Value() / 1024 / 1024) + + Expect(nodeCount).Should(Equal(sum)) + + if framework.ProviderIs("gke") { + val, err := isAutoscalerEnabled(3) + framework.ExpectNoError(err) + if !val { + err = enableAutoscaler("default-pool", 3, 5) + framework.ExpectNoError(err) + } + } + }) + + AfterEach(func() { + By(fmt.Sprintf("Restoring initial size of the cluster")) + setMigSizes(originalSizes) + framework.ExpectNoError(framework.WaitForClusterSize(c, nodeCount, scaleDownTimeout)) + nodes, err := c.Core().Nodes().List(metav1.ListOptions{}) + framework.ExpectNoError(err) + s := time.Now() + makeSchedulableLoop: + for start := time.Now(); time.Since(start) < makeSchedulableTimeout; time.Sleep(makeSchedulableDelay) { + for _, n := range nodes.Items { + err = makeNodeSchedulable(c, &n, true) + switch err.(type) { + case CriticalAddonsOnlyError: + continue makeSchedulableLoop + default: + framework.ExpectNoError(err) + } + } + break + } + glog.Infof("Made nodes schedulable again in %v", time.Now().Sub(s).String()) + }) + + It("should scale up at all [Feature:ClusterAutoscalerScalability1]", func() { + perNodeReservation := int(float64(memCapacityMb) * 0.95) + replicasPerNode := 10 + + additionalNodes := maxNodes - nodeCount + replicas := additionalNodes * replicasPerNode + additionalReservation := additionalNodes * perNodeReservation + + // saturate cluster + reservationCleanup := ReserveMemory(f, "some-pod", nodeCount*2, nodeCount*perNodeReservation, true, scaleUpTimeout) + defer reservationCleanup() + framework.ExpectNoError(waitForAllCaPodsReadyInNamespace(f, c)) + + // configure pending pods & expected scale up + rcConfig := reserveMemoryRCConfig(f, "extra-pod-1", replicas, additionalReservation, largeScaleUpTimeout) + expectedResult := createClusterPredicates(nodeCount + additionalNodes) + config := createScaleUpTestConfig(nodeCount, nodeCount, rcConfig, expectedResult) + + // run test + testCleanup := simpleScaleUpTest(f, config) + defer testCleanup() + }) + + It("should scale up twice [Feature:ClusterAutoscalerScalability2]", func() { + perNodeReservation := int(float64(memCapacityMb) * 0.95) + replicasPerNode := 10 + additionalNodes1 := int(0.7 * maxNodes) + additionalNodes2 := int(0.25 * maxNodes) + + replicas1 := additionalNodes1 * replicasPerNode + replicas2 := additionalNodes2 * replicasPerNode + + glog.Infof("cores per node: %v", coresPerNode) + + // saturate cluster + reservationCleanup := ReserveMemory(f, "some-pod", nodeCount, nodeCount*perNodeReservation, true, scaleUpTimeout) + defer reservationCleanup() + framework.ExpectNoError(waitForAllCaPodsReadyInNamespace(f, c)) + + glog.Infof("Reserved successfully") + + // configure pending pods & expected scale up #1 + rcConfig := reserveMemoryRCConfig(f, "extra-pod-1", replicas1, additionalNodes1*perNodeReservation, largeScaleUpTimeout) + expectedResult := createClusterPredicates(nodeCount + additionalNodes1) + config := createScaleUpTestConfig(nodeCount, nodeCount, rcConfig, expectedResult) + + epsilon := 0.05 + + // run test #1 + testCleanup1 := simpleScaleUpTestWithEpsilon(f, config, epsilon) + defer testCleanup1() + + glog.Infof("Scaled up once") + + // configure pending pods & expected scale up #2 + rcConfig2 := reserveMemoryRCConfig(f, "extra-pod-2", replicas2, additionalNodes2*perNodeReservation, largeScaleUpTimeout) + expectedResult2 := createClusterPredicates(nodeCount + additionalNodes1 + additionalNodes2) + config2 := createScaleUpTestConfig(nodeCount+additionalNodes1, nodeCount+additionalNodes2, rcConfig2, expectedResult2) + + // run test #2 + testCleanup2 := simpleScaleUpTestWithEpsilon(f, config2, epsilon) + defer testCleanup2() + + glog.Infof("Scaled up twice") + }) + + It("should scale down empty nodes [Feature:ClusterAutoscalerScalability3]", func() { + perNodeReservation := int(float64(memCapacityMb) * 0.7) + replicas := int(float64(maxNodes) * 0.7) + totalNodes := maxNodes + + // resize cluster to totalNodes + newSizes := map[string]int{ + anyKey(originalSizes): totalNodes, + } + setMigSizes(newSizes) + framework.ExpectNoError(framework.WaitForClusterSize(f.ClientSet, totalNodes, largeResizeTimeout)) + + // run replicas + rcConfig := reserveMemoryRCConfig(f, "some-pod", replicas, replicas*perNodeReservation, largeScaleUpTimeout) + expectedResult := createClusterPredicates(totalNodes) + config := createScaleUpTestConfig(totalNodes, totalNodes, rcConfig, expectedResult) + testCleanup := simpleScaleUpTestWithEpsilon(f, config, 0.1) + defer testCleanup() + + // check if empty nodes are scaled down + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { + return size <= replicas+3 // leaving space for non-evictable kube-system pods + }, scaleDownTimeout)) + }) + + It("should scale down underutilized nodes [Feature:ClusterAutoscalerScalability4]", func() { + underutilizedReservation := int64(float64(memCapacityMb) * 0.01) + fullReservation := int64(float64(memCapacityMb) * 0.8) + perNodeReplicas := 10 + totalNodes := maxNodes + + // resize cluster to totalNodes + newSizes := map[string]int{ + anyKey(originalSizes): totalNodes, + } + setMigSizes(newSizes) + framework.ExpectNoError(framework.WaitForClusterSize(f.ClientSet, totalNodes, largeResizeTimeout)) + + // annotate all nodes with no-scale-down + ScaleDownDisabledKey := "cluster-autoscaler.kubernetes.io/scale-down-disabled" + + nodes, err := f.ClientSet.Core().Nodes().List(metav1.ListOptions{ + FieldSelector: fields.Set{ + "spec.unschedulable": "false", + }.AsSelector().String(), + }) + + framework.ExpectNoError(addAnnotation(f, nodes.Items, ScaleDownDisabledKey, "true")) + + // distribute pods (using taints) + divider := int(float64(len(nodes.Items)) * 0.7) + + fullNodes := nodes.Items[:divider] + underutilizedNodes := nodes.Items[divider:] + + framework.ExpectNoError(makeUnschedulable(f, underutilizedNodes)) + + testId2 := "full" + labels2 := map[string]string{"test_id": testId2} + cleanup2, err := runReplicatedPodOnEachNodeWithCleanup(f, fullNodes, f.Namespace.Name, 1, "filling-pod", labels2, fullReservation) + defer cleanup2() + framework.ExpectNoError(err) + + framework.ExpectNoError(makeUnschedulable(f, fullNodes)) + + testId := "underutilized" + labels := map[string]string{"test_id": testId} + cleanup, err := runReplicatedPodOnEachNodeWithCleanup(f, underutilizedNodes, f.Namespace.Name, perNodeReplicas, "underutilizing-pod", labels, underutilizedReservation) + defer cleanup() + framework.ExpectNoError(err) + + framework.ExpectNoError(makeSchedulable(f, nodes.Items)) + framework.ExpectNoError(addAnnotation(f, nodes.Items, ScaleDownDisabledKey, "false")) + + // wait for scale down + expectedSize := int(float64(totalNodes) * 0.85) + nodesToScaleDownCount := totalNodes - expectedSize + timeout := time.Duration(nodesToScaleDownCount)*time.Minute + scaleDownTimeout + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, func(size int) bool { + return size <= expectedSize + }, timeout)) + }) + + It("shouldn't scale down with underutilized nodes due to host port conflicts [Feature:ClusterAutoscalerScalability5]", func() { + fullReservation := int(float64(memCapacityMb) * 0.9) + hostPortPodReservation := int(float64(memCapacityMb) * 0.3) + totalNodes := maxNodes + reservedPort := 4321 + + // resize cluster to totalNodes + newSizes := map[string]int{ + anyKey(originalSizes): totalNodes, + } + setMigSizes(newSizes) + framework.ExpectNoError(framework.WaitForClusterSize(f.ClientSet, totalNodes, largeResizeTimeout)) + divider := int(float64(totalNodes) * 0.7) + fullNodesCount := divider + underutilizedNodesCount := totalNodes - fullNodesCount + + By("Reserving full nodes") + // run RC1 w/o host port + cleanup := ReserveMemory(f, "filling-pod", fullNodesCount, fullNodesCount*fullReservation, true, largeScaleUpTimeout*2) + defer cleanup() + + By("Reserving host ports on remaining nodes") + // run RC2 w/ host port + cleanup2 := createHostPortPodsWithMemory(f, "underutilizing-host-port-pod", underutilizedNodesCount, reservedPort, underutilizedNodesCount*hostPortPodReservation, largeScaleUpTimeout) + defer cleanup2() + + waitForAllCaPodsReadyInNamespace(f, c) + // wait and check scale down doesn't occur + By(fmt.Sprintf("Sleeping %v minutes...", scaleDownTimeout.Minutes())) + time.Sleep(scaleDownTimeout) + + By("Checking if the number of nodes is as expected") + nodes := framework.GetReadySchedulableNodesOrDie(f.ClientSet) + glog.Infof("Nodes: %v, expected: %v", len(nodes.Items), totalNodes) + Expect(len(nodes.Items)).Should(Equal(totalNodes)) + }) + +}) + +func makeUnschedulable(f *framework.Framework, nodes []v1.Node) error { + for _, node := range nodes { + err := makeNodeUnschedulable(f.ClientSet, &node) + if err != nil { + return err + } + } + return nil +} + +func makeSchedulable(f *framework.Framework, nodes []v1.Node) error { + for _, node := range nodes { + err := makeNodeSchedulable(f.ClientSet, &node, false) + if err != nil { + return err + } + } + return nil +} + +func anyKey(input map[string]int) string { + for k := range input { + return k + } + return "" +} + +func simpleScaleUpTestWithEpsilon(f *framework.Framework, config *scaleUpTestConfig, epsilon float64) func() error { + // resize cluster to start size + // run rc based on config + By(fmt.Sprintf("Running RC %v from config", config.extraPods.Name)) + start := time.Now() + framework.ExpectNoError(framework.RunRC(*config.extraPods)) + // check results + if epsilon > 0 && epsilon < 1 { + // Tolerate some number of nodes not to be created. + minExpectedNodeCount := int(float64(config.expectedResult.nodes) - epsilon*float64(config.expectedResult.nodes)) + framework.ExpectNoError(WaitForClusterSizeFunc(f.ClientSet, + func(size int) bool { return size >= minExpectedNodeCount }, scaleUpTimeout)) + } else { + framework.ExpectNoError(framework.WaitForClusterSize(f.ClientSet, config.expectedResult.nodes, scaleUpTimeout)) + } + glog.Infof("cluster is increased") + if epsilon > 0 && epsilon < 0 { + framework.ExpectNoError(waitForCaPodsReadyInNamespace(f, f.ClientSet, int(epsilon*float64(config.extraPods.Replicas)+1))) + } else { + framework.ExpectNoError(waitForAllCaPodsReadyInNamespace(f, f.ClientSet)) + } + timeTrack(start, fmt.Sprintf("Scale up to %v", config.expectedResult.nodes)) + return func() error { + return framework.DeleteRCAndPods(f.ClientSet, f.InternalClientset, f.Namespace.Name, config.extraPods.Name) + } +} + +func simpleScaleUpTest(f *framework.Framework, config *scaleUpTestConfig) func() error { + return simpleScaleUpTestWithEpsilon(f, config, 0) +} + +func reserveMemoryRCConfig(f *framework.Framework, id string, replicas, megabytes int, timeout time.Duration) *testutils.RCConfig { + return &testutils.RCConfig{ + Client: f.ClientSet, + InternalClient: f.InternalClientset, + Name: id, + Namespace: f.Namespace.Name, + Timeout: timeout, + Image: framework.GetPauseImageName(f.ClientSet), + Replicas: replicas, + MemRequest: int64(1024 * 1024 * megabytes / replicas), + } +} + +func createScaleUpTestConfig(nodes, pods int, extraPods *testutils.RCConfig, expectedResult *clusterPredicates) *scaleUpTestConfig { + return &scaleUpTestConfig{ + initialNodes: nodes, + initialPods: pods, + extraPods: extraPods, + expectedResult: expectedResult, + } +} + +func createClusterPredicates(nodes int) *clusterPredicates { + return &clusterPredicates{ + nodes: nodes, + } +} + +func addAnnotation(f *framework.Framework, nodes []v1.Node, key, value string) error { + for _, node := range nodes { + oldData, err := json.Marshal(node) + if err != nil { + return err + } + + if node.Annotations == nil { + node.Annotations = make(map[string]string) + } + node.Annotations[key] = value + + newData, err := json.Marshal(node) + if err != nil { + return err + } + + patchBytes, err := strategicpatch.CreateTwoWayMergePatch(oldData, newData, v1.Node{}) + if err != nil { + return err + } + + _, err = f.ClientSet.Core().Nodes().Patch(string(node.Name), types.StrategicMergePatchType, patchBytes) + if err != nil { + return err + } + } + return nil +} + +func createHostPortPodsWithMemory(f *framework.Framework, id string, replicas, port, megabytes int, timeout time.Duration) func() error { + By(fmt.Sprintf("Running RC which reserves host port and memory")) + request := int64(1024 * 1024 * megabytes / replicas) + config := &testutils.RCConfig{ + Client: f.ClientSet, + InternalClient: f.InternalClientset, + Name: id, + Namespace: f.Namespace.Name, + Timeout: timeout, + Image: framework.GetPauseImageName(f.ClientSet), + Replicas: replicas, + HostPorts: map[string]int{"port1": port}, + MemRequest: request, + } + err := framework.RunRC(*config) + framework.ExpectNoError(err) + return func() error { + return framework.DeleteRCAndPods(f.ClientSet, f.InternalClientset, f.Namespace.Name, id) + } +} + +func timeTrack(start time.Time, name string) { + elapsed := time.Since(start) + glog.Infof("%s took %s", name, elapsed) +} diff --git a/test/e2e/autoscaling/cluster_size_autoscaling.go b/test/e2e/autoscaling/cluster_size_autoscaling.go index d2b75fc828d..463d5f1e7c9 100644 --- a/test/e2e/autoscaling/cluster_size_autoscaling.go +++ b/test/e2e/autoscaling/cluster_size_autoscaling.go @@ -199,7 +199,7 @@ var _ = SIGDescribe("Cluster size autoscaling [Slow]", func() { framework.ExpectNoError(err) unmanagedNodes := nodeCount - status.ready - By("Schedule more pods than can fit and wait for claster to scale-up") + By("Schedule more pods than can fit and wait for cluster to scale-up") ReserveMemory(f, "memory-reservation", 100, nodeCount*memCapacityMb, false, 1*time.Second) defer framework.DeleteRCAndPods(f.ClientSet, f.InternalClientset, f.Namespace.Name, "memory-reservation") @@ -719,7 +719,7 @@ func runDrainTest(f *framework.Framework, migSizes map[string]int, namespace str numPods := len(nodes.Items) * podsPerNode testId := string(uuid.NewUUID()) // So that we can label and find pods labelMap := map[string]string{"test_id": testId} - framework.ExpectNoError(runReplicatedPodOnEachNode(f, nodes.Items, namespace, podsPerNode, "reschedulable-pods", labelMap)) + framework.ExpectNoError(runReplicatedPodOnEachNode(f, nodes.Items, namespace, podsPerNode, "reschedulable-pods", labelMap, 0)) defer framework.DeleteRCAndPods(f.ClientSet, f.InternalClientset, namespace, "reschedulable-pods") @@ -907,7 +907,7 @@ func doPut(url, content string) (string, error) { return strBody, nil } -func ReserveMemory(f *framework.Framework, id string, replicas, megabytes int, expectRunning bool, timeout time.Duration) { +func ReserveMemory(f *framework.Framework, id string, replicas, megabytes int, expectRunning bool, timeout time.Duration) func() error { By(fmt.Sprintf("Running RC which reserves %v MB of memory", megabytes)) request := int64(1024 * 1024 * megabytes / replicas) config := &testutils.RCConfig{ @@ -929,9 +929,12 @@ func ReserveMemory(f *framework.Framework, id string, replicas, megabytes int, e if expectRunning { framework.ExpectNoError(err) } - return + return func() error { + return framework.DeleteRCAndPods(f.ClientSet, f.InternalClientset, f.Namespace.Name, id) + } } framework.Failf("Failed to reserve memory within timeout") + return nil } // WaitForClusterSize waits until the cluster size matches the given function. @@ -961,7 +964,7 @@ func WaitForClusterSizeFuncWithUnready(c clientset.Interface, sizeFunc func(int) glog.Infof("Cluster has reached the desired size") return nil } - glog.Infof("Waiting for cluster, current size %d, not ready nodes %d", numNodes, numNodes-numReady) + glog.Infof("Waiting for cluster with func, current size %d, not ready nodes %d", numNodes, numNodes-numReady) } return fmt.Errorf("timeout waiting %v for appropriate cluster size", timeout) } @@ -1201,7 +1204,7 @@ func buildAntiAffinity(labels map[string]string) *v1.Affinity { // 3. for each node: // 3a. enable scheduling on that node // 3b. increase number of replicas in RC by podsPerNode -func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, namespace string, podsPerNode int, id string, labels map[string]string) error { +func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, namespace string, podsPerNode int, id string, labels map[string]string, memRequest int64) error { By("Run a pod on each node") for _, node := range nodes { err := makeNodeUnschedulable(f.ClientSet, &node) @@ -1223,6 +1226,7 @@ func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, namespa Image: framework.GetPauseImageName(f.ClientSet), Replicas: 0, Labels: labels, + MemRequest: memRequest, } err := framework.RunRC(*config) if err != nil { @@ -1274,6 +1278,14 @@ func runReplicatedPodOnEachNode(f *framework.Framework, nodes []v1.Node, namespa return nil } +// wrap runReplicatedPodOnEachNode to return cleanup +func runReplicatedPodOnEachNodeWithCleanup(f *framework.Framework, nodes []v1.Node, namespace string, podsPerNode int, id string, labels map[string]string, memRequest int64) (func(), error) { + err := runReplicatedPodOnEachNode(f, nodes, namespace, podsPerNode, id, labels, memRequest) + return func() { + framework.DeleteRCAndPods(f.ClientSet, f.InternalClientset, namespace, id) + }, err +} + // Increase cluster size by newNodesForScaledownTests to create some unused nodes // that can be later removed by cluster autoscaler. func manuallyIncreaseClusterSize(f *framework.Framework, originalSizes map[string]int) int { From 2a28df4495bc177b1a51f76228f98f786035e6a1 Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Tue, 25 Jul 2017 12:10:06 -0400 Subject: [PATCH 163/183] Typedef visitor to document parameters --- pkg/api/persistentvolume/util.go | 5 +- pkg/api/persistentvolume/util_test.go | 96 ++++++++++++++++----------- 2 files changed, 63 insertions(+), 38 deletions(-) diff --git a/pkg/api/persistentvolume/util.go b/pkg/api/persistentvolume/util.go index 264e3f93b1d..d4edd807a79 100644 --- a/pkg/api/persistentvolume/util.go +++ b/pkg/api/persistentvolume/util.go @@ -27,10 +27,13 @@ func getClaimRefNamespace(pv *api.PersistentVolume) string { return "" } +// Visitor is called with each object's namespace and name, and returns true if visiting should continue +type Visitor func(namespace, name string) (shouldContinue bool) + // VisitPVSecretNames invokes the visitor function with the name of every secret // referenced by the PV spec. If visitor returns false, visiting is short-circuited. // Returns true if visiting completed, false if visiting was short-circuited. -func VisitPVSecretNames(pv *api.PersistentVolume, visitor func(string, string) bool) bool { +func VisitPVSecretNames(pv *api.PersistentVolume, visitor Visitor) bool { source := &pv.Spec.PersistentVolumeSource switch { case source.AzureFile != nil: diff --git a/pkg/api/persistentvolume/util_test.go b/pkg/api/persistentvolume/util_test.go index f35c5e7eb2b..87564d33723 100644 --- a/pkg/api/persistentvolume/util_test.go +++ b/pkg/api/persistentvolume/util_test.go @@ -31,44 +31,56 @@ func TestPVSecrets(t *testing.T) { // Stub containing all possible secret references in a PV. // The names of the referenced secrets match struct paths detected by reflection. pvs := []*api.PersistentVolume{ - {Spec: api.PersistentVolumeSpec{PersistentVolumeSource: api.PersistentVolumeSource{ - AzureFile: &api.AzureFileVolumeSource{ - SecretName: "Spec.PersistentVolumeSource.AzureFile.SecretName"}}}}, - {Spec: api.PersistentVolumeSpec{PersistentVolumeSource: api.PersistentVolumeSource{ - CephFS: &api.CephFSVolumeSource{ - SecretRef: &api.LocalObjectReference{ - Name: "Spec.PersistentVolumeSource.CephFS.SecretRef"}}}}}, - {Spec: api.PersistentVolumeSpec{PersistentVolumeSource: api.PersistentVolumeSource{ - FlexVolume: &api.FlexVolumeSource{ - SecretRef: &api.LocalObjectReference{ - Name: "Spec.PersistentVolumeSource.FlexVolume.SecretRef"}}}}}, - {Spec: api.PersistentVolumeSpec{PersistentVolumeSource: api.PersistentVolumeSource{ - RBD: &api.RBDVolumeSource{ - SecretRef: &api.LocalObjectReference{ - Name: "Spec.PersistentVolumeSource.RBD.SecretRef"}}}}}, - {Spec: api.PersistentVolumeSpec{PersistentVolumeSource: api.PersistentVolumeSource{ - ScaleIO: &api.ScaleIOVolumeSource{ - SecretRef: &api.LocalObjectReference{ - Name: "Spec.PersistentVolumeSource.ScaleIO.SecretRef"}}}}}, - {Spec: api.PersistentVolumeSpec{PersistentVolumeSource: api.PersistentVolumeSource{ - ISCSI: &api.ISCSIVolumeSource{ - SecretRef: &api.LocalObjectReference{ - Name: "Spec.PersistentVolumeSource.ISCSI.SecretRef"}}}}}, - {Spec: api.PersistentVolumeSpec{PersistentVolumeSource: api.PersistentVolumeSource{ - StorageOS: &api.StorageOSPersistentVolumeSource{ - SecretRef: &api.ObjectReference{ - Name: "Spec.PersistentVolumeSource.StorageOS.SecretRef", - Namespace: "Spec.PersistentVolumeSource.StorageOS.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + AzureFile: &api.AzureFileVolumeSource{ + SecretName: "Spec.PersistentVolumeSource.AzureFile.SecretName"}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + CephFS: &api.CephFSVolumeSource{ + SecretRef: &api.LocalObjectReference{ + Name: "Spec.PersistentVolumeSource.CephFS.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + FlexVolume: &api.FlexVolumeSource{ + SecretRef: &api.LocalObjectReference{ + Name: "Spec.PersistentVolumeSource.FlexVolume.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + RBD: &api.RBDVolumeSource{ + SecretRef: &api.LocalObjectReference{ + Name: "Spec.PersistentVolumeSource.RBD.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + ScaleIO: &api.ScaleIOVolumeSource{ + SecretRef: &api.LocalObjectReference{ + Name: "Spec.PersistentVolumeSource.ScaleIO.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + ISCSI: &api.ISCSIVolumeSource{ + SecretRef: &api.LocalObjectReference{ + Name: "Spec.PersistentVolumeSource.ISCSI.SecretRef"}}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + StorageOS: &api.StorageOSPersistentVolumeSource{ + SecretRef: &api.ObjectReference{ + Name: "Spec.PersistentVolumeSource.StorageOS.SecretRef", + Namespace: "storageosns"}}}}}, } extractedNames := sets.NewString() - extractedNamespaces := sets.NewString() + extractedNamesWithNamespace := sets.NewString() for _, pv := range pvs { VisitPVSecretNames(pv, func(namespace, name string) bool { extractedNames.Insert(name) - if namespace != "" { - extractedNamespaces.Insert(namespace) - } + extractedNamesWithNamespace.Insert(namespace + "/" + name) return true }) } @@ -108,12 +120,22 @@ func TestPVSecrets(t *testing.T) { t.Error("Extra secret names extracted. Verify VisitPVSecretNames() is correctly extracting secret names") } - expectedSecretNamespaces := sets.NewString( - "Spec.PersistentVolumeSource.StorageOS.SecretRef", + expectedNamespacedNames := sets.NewString( + "claimrefns/Spec.PersistentVolumeSource.AzureFile.SecretName", + "claimrefns/Spec.PersistentVolumeSource.CephFS.SecretRef", + "claimrefns/Spec.PersistentVolumeSource.FlexVolume.SecretRef", + "claimrefns/Spec.PersistentVolumeSource.RBD.SecretRef", + "claimrefns/Spec.PersistentVolumeSource.ScaleIO.SecretRef", + "claimrefns/Spec.PersistentVolumeSource.ISCSI.SecretRef", + "storageosns/Spec.PersistentVolumeSource.StorageOS.SecretRef", ) - - if len(expectedSecretNamespaces.Difference(extractedNamespaces)) > 0 { - t.Errorf("Missing expected secret namespace") + if missingNames := expectedNamespacedNames.Difference(extractedNamesWithNamespace); len(missingNames) > 0 { + t.Logf("Missing expected namespaced names:\n%s", strings.Join(missingNames.List(), "\n")) + t.Error("Missing expected namespaced names. Verify the PV stub above includes these references, then verify VisitPVSecretNames() is correctly finding the missing names") + } + if extraNames := extractedNamesWithNamespace.Difference(expectedNamespacedNames); len(extraNames) > 0 { + t.Logf("Extra namespaced names:\n%s", strings.Join(extraNames.List(), "\n")) + t.Error("Extra namespaced names extracted. Verify VisitPVSecretNames() is correctly extracting secret names") } } From 03e28476c4abaf540ae9828351c8bf0d307f36ab Mon Sep 17 00:00:00 2001 From: mtanino Date: Mon, 10 Jul 2017 19:51:24 -0400 Subject: [PATCH 164/183] FC plugin: Support WWID for volume identifier This PR adds World Wide Identifier (WWID) parameter to FCVolumeSource as an unique volume identifier. fixes #48639 --- pkg/api/types.go | 10 ++- pkg/api/validation/validation.go | 20 ++++-- pkg/api/validation/validation_test.go | 66 +++++++++++++++++-- pkg/volume/fc/attacher.go | 22 +++++-- pkg/volume/fc/fc.go | 32 ++++++--- pkg/volume/fc/fc_test.go | 88 ++++++++++++++++++++++++- pkg/volume/fc/fc_util.go | 76 +++++++++++++++++---- pkg/volume/fc/fc_util_test.go | 33 ++++++++-- staging/src/k8s.io/api/core/v1/types.go | 14 ++-- 9 files changed, 308 insertions(+), 53 deletions(-) diff --git a/pkg/api/types.go b/pkg/api/types.go index e6d637f0c82..5b60d37f569 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -715,9 +715,11 @@ type ISCSIVolumeSource struct { // Fibre Channel volumes can only be mounted as read/write once. // Fibre Channel volumes support ownership management and SELinux relabeling. type FCVolumeSource struct { - // Required: FC target worldwide names (WWNs) + // Optional: FC target worldwide names (WWNs) + // +optional TargetWWNs []string - // Required: FC target lun number + // Optional: FC target lun number + // +optional Lun *int32 // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. @@ -729,6 +731,10 @@ type FCVolumeSource struct { // the ReadOnly setting in VolumeMounts. // +optional ReadOnly bool + // Optional: FC volume World Wide Identifiers (WWIDs) + // Either WWIDs or TargetWWNs and Lun must be set, but not both simultaneously. + // +optional + WWIDs []string } // FlexVolume represents a generic volume resource that is diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index 0bfe1091076..b04fd7c09cb 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -648,15 +648,21 @@ func validateISCSIVolumeSource(iscsi *api.ISCSIVolumeSource, fldPath *field.Path func validateFCVolumeSource(fc *api.FCVolumeSource, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} - if len(fc.TargetWWNs) < 1 { - allErrs = append(allErrs, field.Required(fldPath.Child("targetWWNs"), "")) + if len(fc.TargetWWNs) < 1 && len(fc.WWIDs) < 1 { + allErrs = append(allErrs, field.Required(fldPath.Child("targetWWNs"), "must specify either targetWWNs or wwids, but not both")) } - if fc.Lun == nil { - allErrs = append(allErrs, field.Required(fldPath.Child("lun"), "")) - } else { - if *fc.Lun < 0 || *fc.Lun > 255 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("lun"), fc.Lun, validation.InclusiveRangeError(0, 255))) + if len(fc.TargetWWNs) != 0 && len(fc.WWIDs) != 0 { + allErrs = append(allErrs, field.Invalid(fldPath.Child("targetWWNs"), fc.TargetWWNs, "targetWWNs and wwids can not be specified simultaneously")) + } + + if len(fc.TargetWWNs) != 0 { + if fc.Lun == nil { + allErrs = append(allErrs, field.Required(fldPath.Child("lun"), "lun is required if targetWWNs is specified")) + } else { + if *fc.Lun < 0 || *fc.Lun > 255 { + allErrs = append(allErrs, field.Invalid(fldPath.Child("lun"), fc.Lun, validation.InclusiveRangeError(0, 255))) + } } } return allErrs diff --git a/pkg/api/validation/validation_test.go b/pkg/api/validation/validation_test.go index 95f89958f7b..6adca43ec87 100644 --- a/pkg/api/validation/validation_test.go +++ b/pkg/api/validation/validation_test.go @@ -27,6 +27,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/validation" "k8s.io/apimachinery/pkg/util/validation/field" utilfeature "k8s.io/apiserver/pkg/util/feature" "k8s.io/kubernetes/pkg/api" @@ -2099,7 +2100,7 @@ func TestValidateVolumes(t *testing.T) { }, // FC { - name: "valid FC", + name: "FC valid targetWWNs and lun", vol: api.Volume{ Name: "fc", VolumeSource: api.VolumeSource{ @@ -2113,23 +2114,56 @@ func TestValidateVolumes(t *testing.T) { }, }, { - name: "fc empty wwn", + name: "FC valid wwids", + vol: api.Volume{ + Name: "fc", + VolumeSource: api.VolumeSource{ + FC: &api.FCVolumeSource{ + WWIDs: []string{"some_wwid"}, + FSType: "ext4", + ReadOnly: false, + }, + }, + }, + }, + { + name: "FC empty targetWWNs and wwids", vol: api.Volume{ Name: "fc", VolumeSource: api.VolumeSource{ FC: &api.FCVolumeSource{ TargetWWNs: []string{}, Lun: newInt32(1), + WWIDs: []string{}, FSType: "ext4", ReadOnly: false, }, }, }, - errtype: field.ErrorTypeRequired, - errfield: "fc.targetWWNs", + errtype: field.ErrorTypeRequired, + errfield: "fc.targetWWNs", + errdetail: "must specify either targetWWNs or wwids", }, { - name: "fc empty lun", + name: "FC invalid: both targetWWNs and wwids simultaneously", + vol: api.Volume{ + Name: "fc", + VolumeSource: api.VolumeSource{ + FC: &api.FCVolumeSource{ + TargetWWNs: []string{"some_wwn"}, + Lun: newInt32(1), + WWIDs: []string{"some_wwid"}, + FSType: "ext4", + ReadOnly: false, + }, + }, + }, + errtype: field.ErrorTypeInvalid, + errfield: "fc.targetWWNs", + errdetail: "targetWWNs and wwids can not be specified simultaneously", + }, + { + name: "FC valid targetWWNs and empty lun", vol: api.Volume{ Name: "fc", VolumeSource: api.VolumeSource{ @@ -2141,8 +2175,26 @@ func TestValidateVolumes(t *testing.T) { }, }, }, - errtype: field.ErrorTypeRequired, - errfield: "fc.lun", + errtype: field.ErrorTypeRequired, + errfield: "fc.lun", + errdetail: "lun is required if targetWWNs is specified", + }, + { + name: "FC valid targetWWNs and invalid lun", + vol: api.Volume{ + Name: "fc", + VolumeSource: api.VolumeSource{ + FC: &api.FCVolumeSource{ + TargetWWNs: []string{"wwn"}, + Lun: newInt32(256), + FSType: "ext4", + ReadOnly: false, + }, + }, + }, + errtype: field.ErrorTypeInvalid, + errfield: "fc.lun", + errdetail: validation.InclusiveRangeError(0, 255), }, // FlexVolume { diff --git a/pkg/volume/fc/attacher.go b/pkg/volume/fc/attacher.go index c582a03ea42..c0e469c35bf 100644 --- a/pkg/volume/fc/attacher.go +++ b/pkg/volume/fc/attacher.go @@ -20,6 +20,7 @@ import ( "fmt" "os" "strconv" + "strings" "time" "github.com/golang/glog" @@ -167,18 +168,27 @@ func volumeSpecToMounter(spec *volume.Spec, host volume.VolumeHost) (*fcDiskMoun if err != nil { return nil, err } - if fc.Lun == nil { - return nil, fmt.Errorf("empty lun") + var lun string + var wwids []string + if fc.Lun != nil && len(fc.TargetWWNs) != 0 { + lun = strconv.Itoa(int(*fc.Lun)) + } else if len(fc.WWIDs) != 0 { + for _, wwid := range fc.WWIDs { + wwids = append(wwids, strings.Replace(wwid, " ", "_", -1)) + } + } else { + return nil, fmt.Errorf("fc: no fc disk information found. failed to make a new mounter") } - lun := strconv.Itoa(int(*fc.Lun)) + return &fcDiskMounter{ fcDisk: &fcDisk{ plugin: &fcPlugin{ host: host, }, - wwns: fc.TargetWWNs, - lun: lun, - io: &osIOHandler{}, + wwns: fc.TargetWWNs, + lun: lun, + wwids: wwids, + io: &osIOHandler{}, }, fsType: fc.FSType, readOnly: readOnly, diff --git a/pkg/volume/fc/fc.go b/pkg/volume/fc/fc.go index 634cdb4ca63..26e69bd709f 100644 --- a/pkg/volume/fc/fc.go +++ b/pkg/volume/fc/fc.go @@ -19,12 +19,13 @@ package fc import ( "fmt" "strconv" + "strings" "github.com/golang/glog" "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/types" "k8s.io/kubernetes/pkg/util/mount" - "k8s.io/kubernetes/pkg/util/strings" + utilstrings "k8s.io/kubernetes/pkg/util/strings" "k8s.io/kubernetes/pkg/volume" "k8s.io/kubernetes/pkg/volume/util" "k8s.io/utils/exec" @@ -62,8 +63,15 @@ func (plugin *fcPlugin) GetVolumeName(spec *volume.Spec) (string, error) { return "", err } - // TargetWWNs are the FibreChannel target worldwide names - return fmt.Sprintf("%v", volumeSource.TargetWWNs), nil + if len(volumeSource.TargetWWNs) != 0 { + // TargetWWNs are the FibreChannel target worldwide names + return fmt.Sprintf("%v", volumeSource.TargetWWNs), nil + } else if len(volumeSource.WWIDs) != 0 { + // WWIDs are the FibreChannel World Wide Identifiers + return fmt.Sprintf("%v", volumeSource.WWIDs), nil + } + + return "", err } func (plugin *fcPlugin) CanSupport(spec *volume.Spec) bool { @@ -106,18 +114,25 @@ func (plugin *fcPlugin) newMounterInternal(spec *volume.Spec, podUID types.UID, return nil, err } - if fc.Lun == nil { - return nil, fmt.Errorf("empty lun") + var lun string + var wwids []string + if fc.Lun != nil && len(fc.TargetWWNs) != 0 { + lun = strconv.Itoa(int(*fc.Lun)) + } else if len(fc.WWIDs) != 0 { + for _, wwid := range fc.WWIDs { + wwids = append(wwids, strings.Replace(wwid, " ", "_", -1)) + } + } else { + return nil, fmt.Errorf("fc: no fc disk information found. failed to make a new mounter") } - lun := strconv.Itoa(int(*fc.Lun)) - return &fcDiskMounter{ fcDisk: &fcDisk{ podUID: podUID, volName: spec.Name(), wwns: fc.TargetWWNs, lun: lun, + wwids: wwids, manager: manager, io: &osIOHandler{}, plugin: plugin}, @@ -166,6 +181,7 @@ type fcDisk struct { portal string wwns []string lun string + wwids []string plugin *fcPlugin // Utility interface that provides API calls to the provider to attach/detach disks. manager diskManager @@ -177,7 +193,7 @@ type fcDisk struct { func (fc *fcDisk) GetPath() string { name := fcPluginName // safe to use PodVolumeDir now: volume teardown occurs before pod is cleaned up - return fc.plugin.host.GetPodVolumeDir(fc.podUID, strings.EscapeQualifiedNameForDisk(name), fc.volName) + return fc.plugin.host.GetPodVolumeDir(fc.podUID, utilstrings.EscapeQualifiedNameForDisk(name), fc.volName) } type fcDiskMounter struct { diff --git a/pkg/volume/fc/fc_test.go b/pkg/volume/fc/fc_test.go index 2675f923ac1..e2662d2c909 100644 --- a/pkg/volume/fc/fc_test.go +++ b/pkg/volume/fc/fc_test.go @@ -193,13 +193,39 @@ func doTestPlugin(t *testing.T, spec *volume.Spec) { } } +func doTestPluginNilMounter(t *testing.T, spec *volume.Spec) { + tmpDir, err := utiltesting.MkTmpdir("fc_test") + if err != nil { + t.Fatalf("error creating temp dir: %v", err) + } + defer os.RemoveAll(tmpDir) + + plugMgr := volume.VolumePluginMgr{} + plugMgr.InitPlugins(ProbeVolumePlugins(), volumetest.NewFakeVolumeHost(tmpDir, nil, nil)) + + plug, err := plugMgr.FindPluginByName("kubernetes.io/fc") + if err != nil { + t.Errorf("Can't find the plugin by name") + } + fakeManager := NewFakeDiskManager() + defer fakeManager.Cleanup() + fakeMounter := &mount.FakeMounter{} + mounter, err := plug.(*fcPlugin).newMounterInternal(spec, types.UID("poduid"), fakeManager, fakeMounter) + if err == nil { + t.Errorf("Error failed to make a new Mounter is expected: %v", err) + } + if mounter != nil { + t.Errorf("A nil Mounter is expected: %v", err) + } +} + func TestPluginVolume(t *testing.T) { lun := int32(0) vol := &v1.Volume{ Name: "vol1", VolumeSource: v1.VolumeSource{ FC: &v1.FCVolumeSource{ - TargetWWNs: []string{"some_wwn"}, + TargetWWNs: []string{"500a0981891b8dc5"}, FSType: "ext4", Lun: &lun, }, @@ -217,7 +243,7 @@ func TestPluginPersistentVolume(t *testing.T) { Spec: v1.PersistentVolumeSpec{ PersistentVolumeSource: v1.PersistentVolumeSource{ FC: &v1.FCVolumeSource{ - TargetWWNs: []string{"some_wwn"}, + TargetWWNs: []string{"500a0981891b8dc5"}, FSType: "ext4", Lun: &lun, }, @@ -227,6 +253,64 @@ func TestPluginPersistentVolume(t *testing.T) { doTestPlugin(t, volume.NewSpecFromPersistentVolume(vol, false)) } +func TestPluginVolumeWWIDs(t *testing.T) { + vol := &v1.Volume{ + Name: "vol1", + VolumeSource: v1.VolumeSource{ + FC: &v1.FCVolumeSource{ + WWIDs: []string{"3600508b400105e210000900000490000"}, + FSType: "ext4", + }, + }, + } + doTestPlugin(t, volume.NewSpecFromVolume(vol)) +} + +func TestPluginPersistentVolumeWWIDs(t *testing.T) { + vol := &v1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "vol1", + }, + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + FC: &v1.FCVolumeSource{ + WWIDs: []string{"3600508b400105e21 000900000490000"}, + FSType: "ext4", + }, + }, + }, + } + doTestPlugin(t, volume.NewSpecFromPersistentVolume(vol, false)) +} + +func TestPluginVolumeNoDiskInfo(t *testing.T) { + vol := &v1.Volume{ + Name: "vol1", + VolumeSource: v1.VolumeSource{ + FC: &v1.FCVolumeSource{ + FSType: "ext4", + }, + }, + } + doTestPluginNilMounter(t, volume.NewSpecFromVolume(vol)) +} + +func TestPluginPersistentVolumeNoDiskInfo(t *testing.T) { + vol := &v1.PersistentVolume{ + ObjectMeta: metav1.ObjectMeta{ + Name: "vol1", + }, + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + FC: &v1.FCVolumeSource{ + FSType: "ext4", + }, + }, + }, + } + doTestPluginNilMounter(t, volume.NewSpecFromPersistentVolume(vol, false)) +} + func TestPersistentClaimReadOnlyFlag(t *testing.T) { tmpDir, err := utiltesting.MkTmpdir("fc_test") if err != nil { diff --git a/pkg/volume/fc/fc_util.go b/pkg/volume/fc/fc_util.go index feded0c2723..5ad268c4b2f 100644 --- a/pkg/volume/fc/fc_util.go +++ b/pkg/volume/fc/fc_util.go @@ -89,6 +89,40 @@ func findDisk(wwn, lun string, io ioHandler) (string, string) { return "", "" } +// given a wwid, find the device and associated devicemapper parent +func findDiskWWIDs(wwid string, io ioHandler) (string, string) { + // Example wwid format: + // 3600508b400105e210000900000490000 + // + // Example of symlink under by-id: + // /dev/by-id/scsi-3600508b400105e210000900000490000 + // /dev/by-id/scsi-_ + // The wwid could contain white space and it will be replaced + // underscore when wwid is exposed under /dev/by-id. + + fc_path := "scsi-" + wwid + dev_id := "/dev/disk/by-id/" + if dirs, err := io.ReadDir(dev_id); err == nil { + for _, f := range dirs { + name := f.Name() + if name == fc_path { + disk, err := io.EvalSymlinks(dev_id + name) + if err != nil { + glog.V(2).Infof("fc: failed to find a corresponding disk from symlink[%s], error %v", dev_id+name, err) + return "", "" + } + arr := strings.Split(disk, "/") + l := len(arr) - 1 + dev := arr[l] + dm := findMultipathDeviceMapper(dev, io) + return disk, dm + } + } + } + glog.V(2).Infof("fc: failed to find a disk [%s]", dev_id+fc_path) + return "", "" +} + // Removes a scsi device based upon /dev/sdX name func removeFromScsiSubsystem(deviceName string, io ioHandler) { fileName := "/sys/block/" + deviceName + "/device/delete" @@ -110,27 +144,46 @@ func scsiHostRescan(io ioHandler) { } // make a directory like /var/lib/kubelet/plugins/kubernetes.io/pod/fc/target-lun-0 -func makePDNameInternal(host volume.VolumeHost, wwns []string, lun string) string { - return path.Join(host.GetPluginDir(fcPluginName), wwns[0]+"-lun-"+lun) +func makePDNameInternal(host volume.VolumeHost, wwns []string, lun string, wwids []string) string { + if len(wwns) != 0 { + return path.Join(host.GetPluginDir(fcPluginName), wwns[0]+"-lun-"+lun) + } else { + return path.Join(host.GetPluginDir(fcPluginName), wwids[0]) + } } type FCUtil struct{} func (util *FCUtil) MakeGlobalPDName(fc fcDisk) string { - return makePDNameInternal(fc.plugin.host, fc.wwns, fc.lun) + return makePDNameInternal(fc.plugin.host, fc.wwns, fc.lun, fc.wwids) } -func searchDisk(wwns []string, lun string, io ioHandler) (string, string) { - disk := "" - dm := "" +func searchDisk(b fcDiskMounter) (string, string) { + var diskIds []string + var disk string + var dm string + io := b.io + wwids := b.wwids + wwns := b.wwns + lun := b.lun + + if len(wwns) != 0 { + diskIds = wwns + } else { + diskIds = wwids + } rescaned := false // two-phase search: // first phase, search existing device path, if a multipath dm is found, exit loop // otherwise, in second phase, rescan scsi bus and search again, return with any findings for true { - for _, wwn := range wwns { - disk, dm = findDisk(wwn, lun, io) + for _, diskId := range diskIds { + if len(wwns) != 0 { + disk, dm = findDisk(diskId, lun, io) + } else { + disk, dm = findDiskWWIDs(diskId, io) + } // if multipath device is found, break if dm != "" { break @@ -150,10 +203,9 @@ func searchDisk(wwns []string, lun string, io ioHandler) (string, string) { func (util *FCUtil) AttachDisk(b fcDiskMounter) (string, error) { devicePath := "" - wwns := b.wwns - lun := b.lun - io := b.io - disk, dm := searchDisk(wwns, lun, io) + var disk, dm string + + disk, dm = searchDisk(b) // if no disk matches input wwn and lun, exit if disk == "" && dm == "" { return "", fmt.Errorf("no fc disk found") diff --git a/pkg/volume/fc/fc_util_test.go b/pkg/volume/fc/fc_util_test.go index e6ae7a6f2c2..d9f609592b4 100644 --- a/pkg/volume/fc/fc_util_test.go +++ b/pkg/volume/fc/fc_util_test.go @@ -63,6 +63,11 @@ func (handler *fakeIOHandler) ReadDir(dirname string) ([]os.FileInfo, error) { name: "dm-1", } return []os.FileInfo{f}, nil + case "/dev/disk/by-id/": + f := &fakeFileInfo{ + name: "scsi-3600508b400105e210000900000490000", + } + return []os.FileInfo{f}, nil } return nil, nil } @@ -79,13 +84,31 @@ func (handler *fakeIOHandler) WriteFile(filename string, data []byte, perm os.Fi return nil } -func TestIoHandler(t *testing.T) { - io := &fakeIOHandler{} - wwns := []string{"500a0981891b8dc5"} - lun := "0" - disk, dm := searchDisk(wwns, lun, io) +func TestSearchDisk(t *testing.T) { + fakeMounter := fcDiskMounter{ + fcDisk: &fcDisk{ + wwns: []string{"500a0981891b8dc5"}, + lun: "0", + io: &fakeIOHandler{}, + }, + } + disk, dm := searchDisk(fakeMounter) // if no disk matches input wwn and lun, exit if disk == "" && dm == "" { t.Errorf("no fc disk found") } } + +func TestSearchDiskWWID(t *testing.T) { + fakeMounter := fcDiskMounter{ + fcDisk: &fcDisk{ + wwids: []string{"3600508b400105e210000900000490000"}, + io: &fakeIOHandler{}, + }, + } + disk, dm := searchDisk(fakeMounter) + // if no disk matches input wwid, exit + if disk == "" && dm == "" { + t.Errorf("no fc disk found") + } +} diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index 6b79e441e9d..6c56bcf39aa 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -1102,10 +1102,12 @@ type ISCSIVolumeSource struct { // Fibre Channel volumes can only be mounted as read/write once. // Fibre Channel volumes support ownership management and SELinux relabeling. type FCVolumeSource struct { - // Required: FC target worldwide names (WWNs) - TargetWWNs []string `json:"targetWWNs" protobuf:"bytes,1,rep,name=targetWWNs"` - // Required: FC target lun number - Lun *int32 `json:"lun" protobuf:"varint,2,opt,name=lun"` + // Optional: FC target worldwide names (WWNs) + // +optional + TargetWWNs []string `json:"targetWWNs,omitempty" protobuf:"bytes,1,rep,name=targetWWNs"` + // Optional: FC target lun number + // +optional + Lun *int32 `json:"lun,omitempty" protobuf:"varint,2,opt,name=lun"` // Filesystem type to mount. // Must be a filesystem type supported by the host operating system. // Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. @@ -1116,6 +1118,10 @@ type FCVolumeSource struct { // the ReadOnly setting in VolumeMounts. // +optional ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,4,opt,name=readOnly"` + // Optional: FC volume world wide identifiers (wwids) + // Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + // +optional + WWIDs []string `json:"wwids,omitempty" protobuf:"bytes,5,rep,name=wwids"` } // AzureFile represents an Azure File Service mount on the host and bind mount to the pod. From 422ce036e7ac2965c00f2d9d6557968ae42dd34d Mon Sep 17 00:00:00 2001 From: mtanino Date: Thu, 10 Aug 2017 10:24:52 -0400 Subject: [PATCH 165/183] Autogenerated files --- api/openapi-spec/swagger.json | 15 +- api/swagger-spec/apps_v1beta1.json | 15 +- api/swagger-spec/apps_v1beta2.json | 15 +- api/swagger-spec/batch_v1.json | 15 +- api/swagger-spec/batch_v2alpha1.json | 15 +- api/swagger-spec/extensions_v1beta1.json | 15 +- .../settings.k8s.io_v1alpha1.json | 15 +- api/swagger-spec/v1.json | 15 +- .../apps/v1beta1/definitions.html | 15 +- .../apps/v1beta2/definitions.html | 15 +- docs/api-reference/batch/v1/definitions.html | 15 +- .../batch/v2alpha1/definitions.html | 15 +- .../extensions/v1beta1/definitions.html | 15 +- .../settings.k8s.io/v1alpha1/definitions.html | 15 +- docs/api-reference/v1/definitions.html | 15 +- federation/apis/openapi-spec/swagger.json | 15 +- .../apis/swagger-spec/extensions_v1beta1.json | 15 +- .../extensions/v1beta1/definitions.html | 15 +- pkg/api/v1/zz_generated.conversion.go | 8 +- pkg/api/validation/BUILD | 1 + pkg/api/zz_generated.deepcopy.go | 5 + .../src/k8s.io/api/core/v1/generated.pb.go | 1493 +++++++++-------- .../src/k8s.io/api/core/v1/generated.proto | 11 +- .../src/k8s.io/api/core/v1/types.generated.go | 246 ++- .../core/v1/types_swagger_doc_generated.go | 5 +- .../api/core/v1/zz_generated.deepcopy.go | 5 + 26 files changed, 1141 insertions(+), 903 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 591b46d3556..d2e61f43156 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -57094,17 +57094,13 @@ }, "io.k8s.api.core.v1.FCVolumeSource": { "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "fsType": { "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "lun": { - "description": "Required: FC target lun number", + "description": "Optional: FC target lun number", "type": "integer", "format": "int32" }, @@ -57113,7 +57109,14 @@ "type": "boolean" }, "targetWWNs": { - "description": "Required: FC target worldwide names (WWNs)", + "description": "Optional: FC target worldwide names (WWNs)", + "type": "array", + "items": { + "type": "string" + } + }, + "wwids": { + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", "type": "array", "items": { "type": "string" diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json index 4fc11e5b530..75f3c201943 100644 --- a/api/swagger-spec/apps_v1beta1.json +++ b/api/swagger-spec/apps_v1beta1.json @@ -4631,22 +4631,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -4655,6 +4651,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json index 7565f969cd4..2fa165ffd29 100644 --- a/api/swagger-spec/apps_v1beta2.json +++ b/api/swagger-spec/apps_v1beta2.json @@ -5786,22 +5786,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -5810,6 +5806,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/api/swagger-spec/batch_v1.json b/api/swagger-spec/batch_v1.json index 33efe7cb224..17dcfdcca84 100644 --- a/api/swagger-spec/batch_v1.json +++ b/api/swagger-spec/batch_v1.json @@ -2213,22 +2213,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -2237,6 +2233,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/api/swagger-spec/batch_v2alpha1.json b/api/swagger-spec/batch_v2alpha1.json index a04e6d0ce24..1b5e2d61a71 100644 --- a/api/swagger-spec/batch_v2alpha1.json +++ b/api/swagger-spec/batch_v2alpha1.json @@ -2268,22 +2268,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -2292,6 +2288,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/api/swagger-spec/extensions_v1beta1.json b/api/swagger-spec/extensions_v1beta1.json index 22c5a0ada73..95fbdce6b46 100644 --- a/api/swagger-spec/extensions_v1beta1.json +++ b/api/swagger-spec/extensions_v1beta1.json @@ -7323,22 +7323,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -7347,6 +7343,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/api/swagger-spec/settings.k8s.io_v1alpha1.json b/api/swagger-spec/settings.k8s.io_v1alpha1.json index 01f1f2ddbbb..168d97d5434 100644 --- a/api/swagger-spec/settings.k8s.io_v1alpha1.json +++ b/api/swagger-spec/settings.k8s.io_v1alpha1.json @@ -2031,22 +2031,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -2055,6 +2051,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index fa4d81f5575..2a48b3d56d5 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -19216,22 +19216,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -19240,6 +19236,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/docs/api-reference/apps/v1beta1/definitions.html b/docs/api-reference/apps/v1beta1/definitions.html index 8f81db43766..aa6f22ab4cc 100755 --- a/docs/api-reference/apps/v1beta1/definitions.html +++ b/docs/api-reference/apps/v1beta1/definitions.html @@ -4985,15 +4985,15 @@ Examples:

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -5011,6 +5011,13 @@ Examples:

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html index ec3ea9b7884..dc736c2c8f8 100755 --- a/docs/api-reference/apps/v1beta2/definitions.html +++ b/docs/api-reference/apps/v1beta2/definitions.html @@ -5244,15 +5244,15 @@ Examples:

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -5270,6 +5270,13 @@ Examples:

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/docs/api-reference/batch/v1/definitions.html b/docs/api-reference/batch/v1/definitions.html index 41f42054280..3620cd1da4c 100755 --- a/docs/api-reference/batch/v1/definitions.html +++ b/docs/api-reference/batch/v1/definitions.html @@ -4063,15 +4063,15 @@ Examples:

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -4089,6 +4089,13 @@ Examples:

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/docs/api-reference/batch/v2alpha1/definitions.html b/docs/api-reference/batch/v2alpha1/definitions.html index cf7bb70303e..54a57cc377b 100755 --- a/docs/api-reference/batch/v2alpha1/definitions.html +++ b/docs/api-reference/batch/v2alpha1/definitions.html @@ -4070,15 +4070,15 @@ Examples:

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -4096,6 +4096,13 @@ Examples:

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/docs/api-reference/extensions/v1beta1/definitions.html b/docs/api-reference/extensions/v1beta1/definitions.html index 0242c5f4433..2864134bd76 100755 --- a/docs/api-reference/extensions/v1beta1/definitions.html +++ b/docs/api-reference/extensions/v1beta1/definitions.html @@ -5710,15 +5710,15 @@ Examples:

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -5736,6 +5736,13 @@ Examples:

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html b/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html index 9b59e8f261a..15684ebcd0f 100755 --- a/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html +++ b/docs/api-reference/settings.k8s.io/v1alpha1/definitions.html @@ -1152,15 +1152,15 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -1178,6 +1178,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html index 99906a231fc..156f22a1c35 100755 --- a/docs/api-reference/v1/definitions.html +++ b/docs/api-reference/v1/definitions.html @@ -6696,15 +6696,15 @@ Examples:

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -6722,6 +6722,13 @@ Examples:

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/federation/apis/openapi-spec/swagger.json b/federation/apis/openapi-spec/swagger.json index 9deeecbf5d9..6eaba956061 100644 --- a/federation/apis/openapi-spec/swagger.json +++ b/federation/apis/openapi-spec/swagger.json @@ -10377,17 +10377,13 @@ }, "io.k8s.api.core.v1.FCVolumeSource": { "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "fsType": { "description": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "type": "string" }, "lun": { - "description": "Required: FC target lun number", + "description": "Optional: FC target lun number", "type": "integer", "format": "int32" }, @@ -10396,7 +10392,14 @@ "type": "boolean" }, "targetWWNs": { - "description": "Required: FC target worldwide names (WWNs)", + "description": "Optional: FC target worldwide names (WWNs)", + "type": "array", + "items": { + "type": "string" + } + }, + "wwids": { + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", "type": "array", "items": { "type": "string" diff --git a/federation/apis/swagger-spec/extensions_v1beta1.json b/federation/apis/swagger-spec/extensions_v1beta1.json index 796fc2d4388..ce5e338f1d2 100644 --- a/federation/apis/swagger-spec/extensions_v1beta1.json +++ b/federation/apis/swagger-spec/extensions_v1beta1.json @@ -5682,22 +5682,18 @@ "v1.FCVolumeSource": { "id": "v1.FCVolumeSource", "description": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "required": [ - "targetWWNs", - "lun" - ], "properties": { "targetWWNs": { "type": "array", "items": { "type": "string" }, - "description": "Required: FC target worldwide names (WWNs)" + "description": "Optional: FC target worldwide names (WWNs)" }, "lun": { "type": "integer", "format": "int32", - "description": "Required: FC target lun number" + "description": "Optional: FC target lun number" }, "fsType": { "type": "string", @@ -5706,6 +5702,13 @@ "readOnly": { "type": "boolean", "description": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "wwids": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously." } } }, diff --git a/federation/docs/api-reference/extensions/v1beta1/definitions.html b/federation/docs/api-reference/extensions/v1beta1/definitions.html index c8834375e69..42dffeffba8 100755 --- a/federation/docs/api-reference/extensions/v1beta1/definitions.html +++ b/federation/docs/api-reference/extensions/v1beta1/definitions.html @@ -5272,15 +5272,15 @@ Examples:

    targetWWNs

    -

    Required: FC target worldwide names (WWNs)

    -

    true

    +

    Optional: FC target worldwide names (WWNs)

    +

    false

    string array

    lun

    -

    Required: FC target lun number

    -

    true

    +

    Optional: FC target lun number

    +

    false

    integer (int32)

    @@ -5298,6 +5298,13 @@ Examples:

    boolean

    false

    + +

    wwids

    +

    Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.

    +

    false

    +

    string array

    + + diff --git a/pkg/api/v1/zz_generated.conversion.go b/pkg/api/v1/zz_generated.conversion.go index 3f33d035af2..53c9d373955 100644 --- a/pkg/api/v1/zz_generated.conversion.go +++ b/pkg/api/v1/zz_generated.conversion.go @@ -1596,6 +1596,7 @@ func autoConvert_v1_FCVolumeSource_To_api_FCVolumeSource(in *v1.FCVolumeSource, out.Lun = (*int32)(unsafe.Pointer(in.Lun)) out.FSType = in.FSType out.ReadOnly = in.ReadOnly + out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs)) return nil } @@ -1605,14 +1606,11 @@ func Convert_v1_FCVolumeSource_To_api_FCVolumeSource(in *v1.FCVolumeSource, out } func autoConvert_api_FCVolumeSource_To_v1_FCVolumeSource(in *api.FCVolumeSource, out *v1.FCVolumeSource, s conversion.Scope) error { - if in.TargetWWNs == nil { - out.TargetWWNs = make([]string, 0) - } else { - out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs)) - } + out.TargetWWNs = *(*[]string)(unsafe.Pointer(&in.TargetWWNs)) out.Lun = (*int32)(unsafe.Pointer(in.Lun)) out.FSType = in.FSType out.ReadOnly = in.ReadOnly + out.WWIDs = *(*[]string)(unsafe.Pointer(&in.WWIDs)) return nil } diff --git a/pkg/api/validation/BUILD b/pkg/api/validation/BUILD index b4b2ed17549..5e3c2bfb8f3 100644 --- a/pkg/api/validation/BUILD +++ b/pkg/api/validation/BUILD @@ -84,6 +84,7 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/yaml:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", diff --git a/pkg/api/zz_generated.deepcopy.go b/pkg/api/zz_generated.deepcopy.go index 115f4f933ea..efba5e24a50 100644 --- a/pkg/api/zz_generated.deepcopy.go +++ b/pkg/api/zz_generated.deepcopy.go @@ -2084,6 +2084,11 @@ func (in *FCVolumeSource) DeepCopyInto(out *FCVolumeSource) { **out = **in } } + if in.WWIDs != nil { + in, out := &in.WWIDs, &out.WWIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } return } diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index 95e78680b27..e127916a402 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -3162,6 +3162,21 @@ func (m *FCVolumeSource) MarshalTo(dAtA []byte) (int, error) { dAtA[i] = 0 } i++ + if len(m.WWIDs) > 0 { + for _, s := range m.WWIDs { + dAtA[i] = 0x2a + i++ + l = len(s) + for l >= 1<<7 { + dAtA[i] = uint8(uint64(l)&0x7f | 0x80) + l >>= 7 + i++ + } + dAtA[i] = uint8(l) + i++ + i += copy(dAtA[i:], s) + } + } return i, nil } @@ -10320,6 +10335,12 @@ func (m *FCVolumeSource) Size() (n int) { l = len(m.FSType) n += 1 + l + sovGenerated(uint64(l)) n += 2 + if len(m.WWIDs) > 0 { + for _, s := range m.WWIDs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } return n } @@ -13207,6 +13228,7 @@ func (this *FCVolumeSource) String() string { `Lun:` + valueToStringGenerated(this.Lun) + `,`, `FSType:` + fmt.Sprintf("%v", this.FSType) + `,`, `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `WWIDs:` + fmt.Sprintf("%v", this.WWIDs) + `,`, `}`, }, "") return s @@ -21966,6 +21988,35 @@ func (m *FCVolumeSource) Unmarshal(dAtA []byte) error { } } m.ReadOnly = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field WWIDs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.WWIDs = append(m.WWIDs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -44710,724 +44761,726 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 11500 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xd7, - 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0x1f, 0x9c, 0x05, 0xc9, 0xc5, 0xb2, 0x29, - 0x91, 0xcb, 0x17, 0x60, 0x2e, 0x49, 0x89, 0x12, 0x29, 0x4a, 0x00, 0x06, 0xd8, 0x05, 0xf7, 0x35, - 0xbc, 0x83, 0x5d, 0x9a, 0x14, 0x4d, 0xab, 0x31, 0x7d, 0x01, 0x34, 0xd1, 0xe8, 0x1e, 0x76, 0xf7, - 0x60, 0x17, 0x2c, 0xab, 0xea, 0xfb, 0x14, 0x59, 0x79, 0xc8, 0x3f, 0x5c, 0x29, 0x57, 0xe2, 0x58, - 0x2a, 0xa7, 0x2a, 0x8f, 0xb2, 0x15, 0x25, 0x29, 0x3b, 0x72, 0xfc, 0x90, 0x9c, 0x4a, 0xe2, 0x3c, - 0x4a, 0xfa, 0xe3, 0xd8, 0xa9, 0x4a, 0x49, 0x55, 0xa9, 0xc0, 0x16, 0x54, 0x95, 0x54, 0x7e, 0x24, - 0x95, 0xc7, 0x2f, 0x23, 0x4e, 0x94, 0xba, 0xcf, 0xbe, 0xb7, 0xa7, 0x7b, 0x66, 0xb0, 0xc4, 0x82, - 0x94, 0x2a, 0xff, 0x66, 0xce, 0x39, 0xf7, 0xdc, 0xdb, 0xf7, 0x71, 0xee, 0x39, 0xe7, 0x9e, 0x7b, - 0x2e, 0xbc, 0xb4, 0xfd, 0x62, 0x3c, 0xe7, 0x85, 0xf3, 0xdb, 0xed, 0x75, 0x12, 0x05, 0x24, 0x21, - 0xf1, 0xfc, 0x2e, 0x09, 0xdc, 0x30, 0x9a, 0x17, 0x08, 0xa7, 0xe5, 0xcd, 0x37, 0xc3, 0x88, 0xcc, - 0xef, 0x3e, 0x3b, 0xbf, 0x49, 0x02, 0x12, 0x39, 0x09, 0x71, 0xe7, 0x5a, 0x51, 0x98, 0x84, 0x08, - 0x71, 0x9a, 0x39, 0xa7, 0xe5, 0xcd, 0x51, 0x9a, 0xb9, 0xdd, 0x67, 0x67, 0x9e, 0xd9, 0xf4, 0x92, - 0xad, 0xf6, 0xfa, 0x5c, 0x33, 0xdc, 0x99, 0xdf, 0x0c, 0x37, 0xc3, 0x79, 0x46, 0xba, 0xde, 0xde, - 0x60, 0xff, 0xd8, 0x1f, 0xf6, 0x8b, 0xb3, 0x98, 0x79, 0x3e, 0xad, 0x66, 0xc7, 0x69, 0x6e, 0x79, - 0x01, 0x89, 0xf6, 0xe6, 0x5b, 0xdb, 0x9b, 0xac, 0xde, 0x88, 0xc4, 0x61, 0x3b, 0x6a, 0x92, 0x6c, - 0xc5, 0x5d, 0x4b, 0xc5, 0xf3, 0x3b, 0x24, 0x71, 0x72, 0x9a, 0x3b, 0x33, 0x5f, 0x54, 0x2a, 0x6a, - 0x07, 0x89, 0xb7, 0xd3, 0x59, 0xcd, 0xc7, 0x7b, 0x15, 0x88, 0x9b, 0x5b, 0x64, 0xc7, 0xe9, 0x28, - 0xf7, 0x5c, 0x51, 0xb9, 0x76, 0xe2, 0xf9, 0xf3, 0x5e, 0x90, 0xc4, 0x49, 0x94, 0x2d, 0x64, 0x7f, - 0xcf, 0x82, 0x0b, 0x0b, 0xaf, 0x37, 0x96, 0x7d, 0x27, 0x4e, 0xbc, 0xe6, 0xa2, 0x1f, 0x36, 0xb7, - 0x1b, 0x49, 0x18, 0x91, 0xdb, 0xa1, 0xdf, 0xde, 0x21, 0x0d, 0xd6, 0x11, 0xe8, 0x69, 0x18, 0xd9, - 0x65, 0xff, 0x57, 0x6b, 0x55, 0xeb, 0x82, 0x75, 0xb1, 0xb2, 0x38, 0xf5, 0x9d, 0xfd, 0xd9, 0x8f, - 0x1c, 0xec, 0xcf, 0x8e, 0xdc, 0x16, 0x70, 0xac, 0x28, 0xd0, 0x63, 0x30, 0xb4, 0x11, 0xaf, 0xed, - 0xb5, 0x48, 0xb5, 0xc4, 0x68, 0x27, 0x04, 0xed, 0xd0, 0x4a, 0x83, 0x42, 0xb1, 0xc0, 0xa2, 0x79, - 0xa8, 0xb4, 0x9c, 0x28, 0xf1, 0x12, 0x2f, 0x0c, 0xaa, 0xe5, 0x0b, 0xd6, 0xc5, 0xc1, 0xc5, 0x69, - 0x41, 0x5a, 0xa9, 0x4b, 0x04, 0x4e, 0x69, 0x68, 0x33, 0x22, 0xe2, 0xb8, 0x37, 0x03, 0x7f, 0xaf, - 0x3a, 0x70, 0xc1, 0xba, 0x38, 0x92, 0x36, 0x03, 0x0b, 0x38, 0x56, 0x14, 0xf6, 0xaf, 0x94, 0x60, - 0x64, 0x61, 0x63, 0xc3, 0x0b, 0xbc, 0x64, 0x0f, 0xdd, 0x86, 0xb1, 0x20, 0x74, 0x89, 0xfc, 0xcf, - 0xbe, 0x62, 0xf4, 0xd2, 0x85, 0xb9, 0xce, 0xa9, 0x34, 0x77, 0x43, 0xa3, 0x5b, 0x9c, 0x3a, 0xd8, - 0x9f, 0x1d, 0xd3, 0x21, 0xd8, 0xe0, 0x83, 0x30, 0x8c, 0xb6, 0x42, 0x57, 0xb1, 0x2d, 0x31, 0xb6, - 0xb3, 0x79, 0x6c, 0xeb, 0x29, 0xd9, 0xe2, 0xe4, 0xc1, 0xfe, 0xec, 0xa8, 0x06, 0xc0, 0x3a, 0x13, - 0xb4, 0x0e, 0x93, 0xf4, 0x6f, 0x90, 0x78, 0x8a, 0x6f, 0x99, 0xf1, 0x7d, 0xb4, 0x88, 0xaf, 0x46, - 0xba, 0x78, 0xea, 0x60, 0x7f, 0x76, 0x32, 0x03, 0xc4, 0x59, 0x86, 0xf6, 0x7b, 0x30, 0xb1, 0x90, - 0x24, 0x4e, 0x73, 0x8b, 0xb8, 0x7c, 0x04, 0xd1, 0xf3, 0x30, 0x10, 0x38, 0x3b, 0x44, 0x8c, 0xef, - 0x05, 0xd1, 0xb1, 0x03, 0x37, 0x9c, 0x1d, 0x72, 0xb8, 0x3f, 0x3b, 0x75, 0x2b, 0xf0, 0xde, 0x6d, - 0x8b, 0x59, 0x41, 0x61, 0x98, 0x51, 0xa3, 0x4b, 0x00, 0x2e, 0xd9, 0xf5, 0x9a, 0xa4, 0xee, 0x24, - 0x5b, 0x62, 0xbc, 0x91, 0x28, 0x0b, 0x35, 0x85, 0xc1, 0x1a, 0x95, 0x7d, 0x17, 0x2a, 0x0b, 0xbb, - 0xa1, 0xe7, 0xd6, 0x43, 0x37, 0x46, 0xdb, 0x30, 0xd9, 0x8a, 0xc8, 0x06, 0x89, 0x14, 0xa8, 0x6a, - 0x5d, 0x28, 0x5f, 0x1c, 0xbd, 0x74, 0x31, 0xf7, 0x63, 0x4d, 0xd2, 0xe5, 0x20, 0x89, 0xf6, 0x16, - 0x1f, 0x10, 0xf5, 0x4d, 0x66, 0xb0, 0x38, 0xcb, 0xd9, 0xfe, 0x97, 0x25, 0x38, 0xb3, 0xf0, 0x5e, - 0x3b, 0x22, 0x35, 0x2f, 0xde, 0xce, 0xce, 0x70, 0xd7, 0x8b, 0xb7, 0x6f, 0xa4, 0x3d, 0xa0, 0xa6, - 0x56, 0x4d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc0, 0x30, 0xfd, 0x7d, 0x0b, 0xaf, 0x8a, 0x4f, 0x3e, - 0x25, 0x88, 0x47, 0x6b, 0x4e, 0xe2, 0xd4, 0x38, 0x0a, 0x4b, 0x1a, 0x74, 0x1d, 0x46, 0x9b, 0x6c, - 0x41, 0x6e, 0x5e, 0x0f, 0x5d, 0xc2, 0x06, 0xb3, 0xb2, 0xf8, 0x14, 0x25, 0x5f, 0x4a, 0xc1, 0x87, - 0xfb, 0xb3, 0x55, 0xde, 0x36, 0xc1, 0x42, 0xc3, 0x61, 0xbd, 0x3c, 0xb2, 0xd5, 0xfa, 0x1a, 0x60, - 0x9c, 0x20, 0x67, 0x6d, 0x5d, 0xd4, 0x96, 0xca, 0x20, 0x5b, 0x2a, 0x63, 0xf9, 0xcb, 0x04, 0x3d, - 0x0b, 0x03, 0xdb, 0x5e, 0xe0, 0x56, 0x87, 0x18, 0xaf, 0x87, 0xe9, 0x98, 0x5f, 0xf5, 0x02, 0xf7, - 0x70, 0x7f, 0x76, 0xda, 0x68, 0x0e, 0x05, 0x62, 0x46, 0x6a, 0xff, 0x3d, 0x4b, 0x74, 0xe3, 0x8a, - 0xe7, 0x9b, 0x82, 0xe2, 0x12, 0x40, 0x4c, 0x9a, 0x11, 0x49, 0xb4, 0x8e, 0x54, 0xd3, 0xa1, 0xa1, - 0x30, 0x58, 0xa3, 0xa2, 0x62, 0x20, 0xde, 0x72, 0x22, 0x36, 0xab, 0x44, 0x77, 0x2a, 0x31, 0xd0, - 0x90, 0x08, 0x9c, 0xd2, 0x18, 0x62, 0xa0, 0xdc, 0x53, 0x0c, 0xfc, 0xae, 0x05, 0xc3, 0x8b, 0x5e, - 0xe0, 0x7a, 0xc1, 0x26, 0xfa, 0x3c, 0x8c, 0x50, 0x29, 0xed, 0x3a, 0x89, 0x23, 0x24, 0xc0, 0x4f, - 0x69, 0xb3, 0x4c, 0x09, 0xcd, 0xb9, 0xd6, 0xf6, 0x26, 0x05, 0xc4, 0x73, 0x94, 0x9a, 0xce, 0xbb, - 0x9b, 0xeb, 0xef, 0x90, 0x66, 0x72, 0x9d, 0x24, 0x4e, 0xfa, 0x39, 0x29, 0x0c, 0x2b, 0xae, 0xe8, - 0x2a, 0x0c, 0x25, 0x4e, 0xb4, 0x49, 0x12, 0x21, 0x0a, 0x72, 0x97, 0x2c, 0x2f, 0x89, 0xe9, 0xdc, - 0x24, 0x41, 0x93, 0xa4, 0x02, 0x72, 0x8d, 0x15, 0xc5, 0x82, 0x85, 0xdd, 0x84, 0xb1, 0x25, 0xa7, - 0xe5, 0xac, 0x7b, 0xbe, 0x97, 0x78, 0x24, 0x46, 0x8f, 0x43, 0xd9, 0x71, 0x5d, 0xb6, 0x3e, 0x2a, - 0x8b, 0x67, 0x0e, 0xf6, 0x67, 0xcb, 0x0b, 0x2e, 0x1d, 0x28, 0x50, 0x54, 0x7b, 0x98, 0x52, 0xa0, - 0x27, 0x61, 0xc0, 0x8d, 0xc2, 0x56, 0xb5, 0xc4, 0x28, 0xcf, 0xd2, 0x31, 0xad, 0x45, 0x61, 0x2b, - 0x43, 0xca, 0x68, 0xec, 0x6f, 0x97, 0x00, 0x2d, 0x91, 0xd6, 0xd6, 0x4a, 0xc3, 0x18, 0xc9, 0x8b, - 0x30, 0xb2, 0x13, 0x06, 0x5e, 0x12, 0x46, 0xb1, 0xa8, 0x90, 0x4d, 0xa0, 0xeb, 0x02, 0x86, 0x15, - 0x16, 0x5d, 0x80, 0x81, 0x56, 0xba, 0xf8, 0xc7, 0xa4, 0xe0, 0x60, 0xcb, 0x9e, 0x61, 0x28, 0x45, - 0x3b, 0x26, 0x91, 0x98, 0xf8, 0x8a, 0xe2, 0x56, 0x4c, 0x22, 0xcc, 0x30, 0xe9, 0xbc, 0xa1, 0x33, - 0x4a, 0x4c, 0xeb, 0xcc, 0xbc, 0xa1, 0x18, 0xac, 0x51, 0xa1, 0x5b, 0x50, 0xe1, 0xff, 0x30, 0xd9, - 0x60, 0x73, 0xbc, 0x40, 0x66, 0x5c, 0x0b, 0x9b, 0x8e, 0x9f, 0xed, 0xf2, 0x71, 0x36, 0xbb, 0x64, - 0x71, 0x9c, 0x72, 0x32, 0x66, 0xd7, 0x50, 0xcf, 0xd9, 0xf5, 0xcb, 0x16, 0xa0, 0x25, 0x2f, 0x70, - 0x49, 0x74, 0x02, 0x1b, 0xe6, 0xd1, 0x26, 0xfe, 0xbf, 0xa7, 0x4d, 0x0b, 0x77, 0x5a, 0x61, 0x40, - 0x82, 0x64, 0x29, 0x0c, 0x5c, 0xbe, 0x89, 0x7e, 0x0a, 0x06, 0x12, 0x5a, 0x15, 0x6f, 0xd6, 0x63, - 0x72, 0x30, 0x68, 0x05, 0x87, 0xfb, 0xb3, 0x67, 0x3b, 0x4b, 0xb0, 0x26, 0xb0, 0x32, 0xe8, 0x93, - 0x30, 0x14, 0x27, 0x4e, 0xd2, 0x8e, 0x45, 0x43, 0x1f, 0x91, 0x0d, 0x6d, 0x30, 0xe8, 0xe1, 0xfe, - 0xec, 0xa4, 0x2a, 0xc6, 0x41, 0x58, 0x14, 0x40, 0x4f, 0xc0, 0xf0, 0x0e, 0x89, 0x63, 0x67, 0x53, - 0xca, 0xbf, 0x49, 0x51, 0x76, 0xf8, 0x3a, 0x07, 0x63, 0x89, 0x47, 0x8f, 0xc2, 0x20, 0x89, 0xa2, - 0x30, 0x12, 0xf3, 0x60, 0x5c, 0x10, 0x0e, 0x2e, 0x53, 0x20, 0xe6, 0x38, 0xfb, 0xdf, 0x58, 0x30, - 0xa9, 0xda, 0xca, 0xeb, 0x3a, 0x81, 0xe5, 0xfd, 0x26, 0x40, 0x53, 0x7e, 0x60, 0xcc, 0x96, 0xd7, - 0xe8, 0xa5, 0xc7, 0xf2, 0x26, 0x5d, 0x67, 0x37, 0xa6, 0x9c, 0x15, 0x28, 0xc6, 0x1a, 0x37, 0xfb, - 0x9f, 0x58, 0x70, 0x2a, 0xf3, 0x45, 0xd7, 0xbc, 0x38, 0x41, 0x6f, 0x75, 0x7c, 0xd5, 0x5c, 0x7f, - 0x5f, 0x45, 0x4b, 0xb3, 0x6f, 0x52, 0xb3, 0x44, 0x42, 0xb4, 0x2f, 0xba, 0x02, 0x83, 0x5e, 0x42, - 0x76, 0xe4, 0xc7, 0x3c, 0xda, 0xf5, 0x63, 0x78, 0xab, 0xd2, 0x11, 0x59, 0xa5, 0x25, 0x31, 0x67, - 0x60, 0xff, 0x77, 0x0b, 0x2a, 0x4b, 0x61, 0xb0, 0xe1, 0x6d, 0x5e, 0x77, 0x5a, 0x27, 0x30, 0x16, - 0xab, 0x30, 0xc0, 0xb8, 0xf3, 0x86, 0x3f, 0x9e, 0xdf, 0x70, 0xd1, 0x9c, 0x39, 0xba, 0x8b, 0x71, - 0x6d, 0x41, 0x89, 0x1f, 0x0a, 0xc2, 0x8c, 0xc5, 0xcc, 0x27, 0xa0, 0xa2, 0x08, 0xd0, 0x14, 0x94, - 0xb7, 0x09, 0xd7, 0x10, 0x2b, 0x98, 0xfe, 0x44, 0xa7, 0x61, 0x70, 0xd7, 0xf1, 0xdb, 0x62, 0x79, - 0x62, 0xfe, 0xe7, 0x53, 0xa5, 0x17, 0x2d, 0xfb, 0x5b, 0x6c, 0x8d, 0x89, 0x4a, 0x96, 0x83, 0x5d, - 0xb1, 0xfc, 0xdf, 0x83, 0xd3, 0x7e, 0x8e, 0xd4, 0x11, 0x1d, 0xd1, 0xbf, 0x94, 0x7a, 0x48, 0xb4, - 0xf5, 0x74, 0x1e, 0x16, 0xe7, 0xd6, 0x41, 0x05, 0x77, 0xd8, 0xa2, 0x33, 0xca, 0xf1, 0x59, 0x7b, - 0xc5, 0xce, 0x7f, 0x53, 0xc0, 0xb0, 0xc2, 0x52, 0x01, 0x71, 0x5a, 0x35, 0xfe, 0x2a, 0xd9, 0x6b, - 0x10, 0x9f, 0x34, 0x93, 0x30, 0xfa, 0x40, 0x9b, 0xff, 0x30, 0xef, 0x7d, 0x2e, 0x5f, 0x46, 0x05, - 0x83, 0xf2, 0x55, 0xb2, 0xc7, 0x87, 0x42, 0xff, 0xba, 0x72, 0xd7, 0xaf, 0xfb, 0x4d, 0x0b, 0xc6, - 0xd5, 0xd7, 0x9d, 0xc0, 0x42, 0x5a, 0x34, 0x17, 0xd2, 0xc3, 0x5d, 0xe7, 0x63, 0xc1, 0x12, 0xfa, - 0x11, 0x13, 0x01, 0x82, 0xa6, 0x1e, 0x85, 0xb4, 0x6b, 0xa8, 0xcc, 0xfe, 0x20, 0x07, 0xa4, 0x9f, - 0xef, 0xba, 0x4a, 0xf6, 0xd6, 0x42, 0xba, 0xe1, 0xe7, 0x7f, 0x97, 0x31, 0x6a, 0x03, 0x5d, 0x47, - 0xed, 0xb7, 0x4a, 0x70, 0x46, 0xf5, 0x80, 0xb1, 0xa5, 0xfe, 0xb8, 0xf7, 0xc1, 0xb3, 0x30, 0xea, - 0x92, 0x0d, 0xa7, 0xed, 0x27, 0xca, 0x08, 0x18, 0xe4, 0x86, 0x60, 0x2d, 0x05, 0x63, 0x9d, 0xe6, - 0x08, 0xdd, 0xf6, 0xaf, 0x80, 0xc9, 0xde, 0xc4, 0xa1, 0x33, 0x98, 0xea, 0x5b, 0x9a, 0x29, 0x37, - 0xa6, 0x9b, 0x72, 0xc2, 0x6c, 0x7b, 0x14, 0x06, 0xbd, 0x1d, 0xba, 0x17, 0x97, 0xcc, 0x2d, 0x76, - 0x95, 0x02, 0x31, 0xc7, 0xa1, 0x8f, 0xc1, 0x70, 0x33, 0xdc, 0xd9, 0x71, 0x02, 0xb7, 0x5a, 0x66, - 0x1a, 0xe0, 0x28, 0xdd, 0xae, 0x97, 0x38, 0x08, 0x4b, 0x1c, 0x7a, 0x08, 0x06, 0x9c, 0x68, 0x33, - 0xae, 0x0e, 0x30, 0x9a, 0x11, 0x5a, 0xd3, 0x42, 0xb4, 0x19, 0x63, 0x06, 0xa5, 0x9a, 0xdd, 0x9d, - 0x30, 0xda, 0xf6, 0x82, 0xcd, 0x9a, 0x17, 0x31, 0x35, 0x4d, 0xd3, 0xec, 0x5e, 0x57, 0x18, 0xac, - 0x51, 0xa1, 0x15, 0x18, 0x6c, 0x85, 0x51, 0x12, 0x57, 0x87, 0x58, 0x77, 0x3f, 0x52, 0xb0, 0x94, - 0xf8, 0xd7, 0xd6, 0xc3, 0x28, 0x49, 0x3f, 0x80, 0xfe, 0x8b, 0x31, 0x2f, 0x8e, 0x3e, 0x09, 0x65, - 0x12, 0xec, 0x56, 0x87, 0x19, 0x97, 0x99, 0x3c, 0x2e, 0xcb, 0xc1, 0xee, 0x6d, 0x27, 0x4a, 0xe5, - 0xcc, 0x72, 0xb0, 0x8b, 0x69, 0x19, 0xf4, 0x06, 0x54, 0xa4, 0x1b, 0x28, 0xae, 0x8e, 0x14, 0x4f, - 0x31, 0x2c, 0x88, 0x30, 0x79, 0xb7, 0xed, 0x45, 0x64, 0x87, 0x04, 0x49, 0x9c, 0x9a, 0x2f, 0x12, - 0x1b, 0xe3, 0x94, 0x1b, 0x7a, 0x03, 0xc6, 0xb8, 0xe6, 0x77, 0x3d, 0x6c, 0x07, 0x49, 0x5c, 0xad, - 0xb0, 0xe6, 0xe5, 0xfa, 0x0c, 0x6e, 0xa7, 0x74, 0x8b, 0xa7, 0x05, 0xd3, 0x31, 0x0d, 0x18, 0x63, - 0x83, 0x15, 0xc2, 0x30, 0xee, 0x7b, 0xbb, 0x24, 0x20, 0x71, 0x5c, 0x8f, 0xc2, 0x75, 0x52, 0x05, - 0xd6, 0xf2, 0x73, 0xf9, 0xa6, 0x74, 0xb8, 0x4e, 0x16, 0xa7, 0x0f, 0xf6, 0x67, 0xc7, 0xaf, 0xe9, - 0x65, 0xb0, 0xc9, 0x02, 0xdd, 0x82, 0x09, 0xaa, 0x52, 0x7a, 0x29, 0xd3, 0xd1, 0x5e, 0x4c, 0xd1, - 0xc1, 0xfe, 0xec, 0x04, 0x36, 0x0a, 0xe1, 0x0c, 0x13, 0xf4, 0x2a, 0x54, 0x7c, 0x6f, 0x83, 0x34, - 0xf7, 0x9a, 0x3e, 0xa9, 0x8e, 0x31, 0x8e, 0xb9, 0xcb, 0xea, 0x9a, 0x24, 0xe2, 0x2a, 0xbb, 0xfa, - 0x8b, 0xd3, 0xe2, 0xe8, 0x36, 0x9c, 0x4d, 0x48, 0xb4, 0xe3, 0x05, 0x0e, 0x5d, 0x0e, 0x42, 0x9f, - 0x64, 0x0e, 0x89, 0x71, 0x36, 0xdf, 0xce, 0x8b, 0xae, 0x3b, 0xbb, 0x96, 0x4b, 0x85, 0x0b, 0x4a, - 0xa3, 0x9b, 0x30, 0xc9, 0x56, 0x42, 0xbd, 0xed, 0xfb, 0xf5, 0xd0, 0xf7, 0x9a, 0x7b, 0xd5, 0x09, - 0xc6, 0xf0, 0x63, 0xd2, 0xe3, 0xb0, 0x6a, 0xa2, 0xa9, 0x81, 0x95, 0xfe, 0xc3, 0xd9, 0xd2, 0x68, - 0x1d, 0x26, 0x63, 0xd2, 0x6c, 0x47, 0x5e, 0xb2, 0x47, 0xe7, 0x2f, 0xb9, 0x9b, 0x54, 0x27, 0x8b, - 0xcd, 0xc4, 0x86, 0x49, 0xca, 0x3d, 0x3b, 0x19, 0x20, 0xce, 0x32, 0xa4, 0x4b, 0x3b, 0x4e, 0x5c, - 0x2f, 0xa8, 0x4e, 0x31, 0x89, 0xa1, 0x56, 0x46, 0x83, 0x02, 0x31, 0xc7, 0x31, 0x9b, 0x9b, 0xfe, - 0xb8, 0x49, 0x25, 0xe8, 0x34, 0x23, 0x4c, 0x6d, 0x6e, 0x89, 0xc0, 0x29, 0x0d, 0xdd, 0x96, 0x93, - 0x64, 0xaf, 0x8a, 0x18, 0xa9, 0x5a, 0x2e, 0x6b, 0x6b, 0x6f, 0x60, 0x0a, 0x47, 0xd7, 0x60, 0x98, - 0x04, 0xbb, 0x2b, 0x51, 0xb8, 0x53, 0x3d, 0x55, 0xbc, 0x66, 0x97, 0x39, 0x09, 0x17, 0xe8, 0xa9, - 0x01, 0x20, 0xc0, 0x58, 0xb2, 0x40, 0x77, 0xa1, 0x9a, 0x33, 0x22, 0x7c, 0x00, 0x4e, 0xb3, 0x01, - 0x78, 0x59, 0x94, 0xad, 0xae, 0x15, 0xd0, 0x1d, 0x76, 0xc1, 0xe1, 0x42, 0xee, 0xf6, 0x3a, 0x4c, - 0x28, 0xc1, 0xc2, 0xc6, 0x16, 0xcd, 0xc2, 0x20, 0x95, 0x98, 0xd2, 0x08, 0xae, 0xd0, 0xae, 0xa4, - 0x82, 0x34, 0xc6, 0x1c, 0xce, 0xba, 0xd2, 0x7b, 0x8f, 0x2c, 0xee, 0x25, 0x84, 0x9b, 0x45, 0x65, - 0xad, 0x2b, 0x25, 0x02, 0xa7, 0x34, 0xf6, 0xff, 0xe1, 0x8a, 0x49, 0x2a, 0xbd, 0xfa, 0x90, 0xd7, - 0x4f, 0xc3, 0xc8, 0x56, 0x18, 0x27, 0x94, 0x9a, 0xd5, 0x31, 0x98, 0xaa, 0x22, 0x57, 0x04, 0x1c, - 0x2b, 0x0a, 0xf4, 0x12, 0x8c, 0x37, 0xf5, 0x0a, 0xc4, 0x66, 0x73, 0x46, 0x14, 0x31, 0x6b, 0xc7, - 0x26, 0x2d, 0x7a, 0x11, 0x46, 0x98, 0x67, 0xb8, 0x19, 0xfa, 0xc2, 0x00, 0x93, 0x3b, 0xe6, 0x48, - 0x5d, 0xc0, 0x0f, 0xb5, 0xdf, 0x58, 0x51, 0x53, 0x33, 0x96, 0x36, 0x61, 0xb5, 0x2e, 0xc4, 0xbc, - 0x32, 0x63, 0xaf, 0x30, 0x28, 0x16, 0x58, 0xfb, 0xaf, 0x96, 0xb4, 0x5e, 0xa6, 0x26, 0x05, 0x41, - 0x75, 0x18, 0xbe, 0xe3, 0x78, 0x89, 0x17, 0x6c, 0x8a, 0xfd, 0xfc, 0x89, 0xae, 0x32, 0x9f, 0x15, - 0x7a, 0x9d, 0x17, 0xe0, 0xbb, 0x92, 0xf8, 0x83, 0x25, 0x1b, 0xca, 0x31, 0x6a, 0x07, 0x01, 0xe5, - 0x58, 0xea, 0x97, 0x23, 0xe6, 0x05, 0x38, 0x47, 0xf1, 0x07, 0x4b, 0x36, 0xe8, 0x2d, 0x00, 0x39, - 0x6f, 0x88, 0x2b, 0x3c, 0xb2, 0x4f, 0xf7, 0x66, 0xba, 0xa6, 0xca, 0x2c, 0x4e, 0xd0, 0x3d, 0x2f, - 0xfd, 0x8f, 0x35, 0x7e, 0x76, 0xc2, 0xf4, 0x9e, 0xce, 0xc6, 0xa0, 0xcf, 0xd1, 0xa5, 0xea, 0x44, - 0x09, 0x71, 0x17, 0x12, 0xd1, 0x39, 0x4f, 0xf6, 0xa7, 0xb6, 0xae, 0x79, 0x3b, 0x44, 0x5f, 0xd6, - 0x82, 0x09, 0x4e, 0xf9, 0xd9, 0xbf, 0x53, 0x86, 0x6a, 0x51, 0x73, 0xe9, 0xa4, 0x23, 0x77, 0xbd, - 0x64, 0x89, 0xaa, 0x2b, 0x96, 0x39, 0xe9, 0x96, 0x05, 0x1c, 0x2b, 0x0a, 0x3a, 0xfa, 0xb1, 0xb7, - 0x29, 0xad, 0x8e, 0xc1, 0x74, 0xf4, 0x1b, 0x0c, 0x8a, 0x05, 0x96, 0xd2, 0x45, 0xc4, 0x89, 0x85, - 0xcb, 0x5f, 0x9b, 0x25, 0x98, 0x41, 0xb1, 0xc0, 0xea, 0x0e, 0x83, 0x81, 0x1e, 0x0e, 0x03, 0xa3, - 0x8b, 0x06, 0x8f, 0xb7, 0x8b, 0xd0, 0xdb, 0x00, 0x1b, 0x5e, 0xe0, 0xc5, 0x5b, 0x8c, 0xfb, 0xd0, - 0x91, 0xb9, 0x2b, 0x65, 0x67, 0x45, 0x71, 0xc1, 0x1a, 0x47, 0xf4, 0x02, 0x8c, 0xaa, 0x05, 0xb8, - 0x5a, 0xab, 0x0e, 0x9b, 0xfe, 0xe4, 0x54, 0x1a, 0xd5, 0xb0, 0x4e, 0x67, 0xbf, 0x93, 0x9d, 0x2f, - 0x62, 0x05, 0x68, 0xfd, 0x6b, 0xf5, 0xdb, 0xbf, 0xa5, 0xee, 0xfd, 0x6b, 0xff, 0x41, 0x19, 0x26, - 0x8d, 0xca, 0xda, 0x71, 0x1f, 0x32, 0xeb, 0x32, 0xdd, 0x88, 0x9c, 0x84, 0x88, 0xf5, 0x67, 0xf7, - 0x5e, 0x2a, 0xfa, 0x66, 0x45, 0x57, 0x00, 0x2f, 0x8f, 0xde, 0x86, 0x8a, 0xef, 0xc4, 0xcc, 0xf9, - 0x40, 0xc4, 0xba, 0xeb, 0x87, 0x59, 0xaa, 0xe8, 0x3b, 0x71, 0xa2, 0xed, 0x05, 0x9c, 0x77, 0xca, - 0x92, 0xee, 0x98, 0x54, 0x39, 0x91, 0x67, 0x4a, 0xaa, 0x11, 0x54, 0x83, 0xd9, 0xc3, 0x1c, 0x87, - 0x5e, 0x84, 0xb1, 0x88, 0xb0, 0x59, 0xb1, 0x44, 0x75, 0x2d, 0x36, 0xcd, 0x06, 0x53, 0xa5, 0x0c, - 0x6b, 0x38, 0x6c, 0x50, 0xa6, 0xba, 0xf6, 0x50, 0x17, 0x5d, 0xfb, 0x09, 0x18, 0x66, 0x3f, 0xd4, - 0x0c, 0x50, 0xa3, 0xb1, 0xca, 0xc1, 0x58, 0xe2, 0xb3, 0x13, 0x66, 0xa4, 0xcf, 0x09, 0xf3, 0x24, - 0x4c, 0xd4, 0x1c, 0xb2, 0x13, 0x06, 0xcb, 0x81, 0xdb, 0x0a, 0xbd, 0x20, 0x41, 0x55, 0x18, 0x60, - 0xbb, 0x03, 0x5f, 0xdb, 0x03, 0x94, 0x03, 0x1e, 0xa0, 0x9a, 0xb3, 0xfd, 0xc7, 0x25, 0x18, 0xaf, - 0x11, 0x9f, 0x24, 0x84, 0xdb, 0x1a, 0x31, 0x5a, 0x01, 0xb4, 0x19, 0x39, 0x4d, 0x52, 0x27, 0x91, - 0x17, 0xba, 0x0d, 0xd2, 0x0c, 0x03, 0x76, 0x52, 0x43, 0xb7, 0xbb, 0xb3, 0x07, 0xfb, 0xb3, 0xe8, - 0x72, 0x07, 0x16, 0xe7, 0x94, 0x40, 0x6f, 0xc2, 0x78, 0x2b, 0x22, 0x86, 0x0f, 0xcd, 0x2a, 0x52, - 0x17, 0xea, 0x3a, 0x21, 0xd7, 0x54, 0x0d, 0x10, 0x36, 0x59, 0xa1, 0xcf, 0xc2, 0x54, 0x18, 0xb5, - 0xb6, 0x9c, 0xa0, 0x46, 0x5a, 0x24, 0x70, 0xa9, 0x2a, 0x2e, 0x7c, 0x04, 0xa7, 0x0f, 0xf6, 0x67, - 0xa7, 0x6e, 0x66, 0x70, 0xb8, 0x83, 0x1a, 0xbd, 0x09, 0xd3, 0xad, 0x28, 0x6c, 0x39, 0x9b, 0x6c, - 0xa2, 0x08, 0x8d, 0x83, 0x4b, 0x9f, 0xa7, 0x0f, 0xf6, 0x67, 0xa7, 0xeb, 0x59, 0xe4, 0xe1, 0xfe, - 0xec, 0x29, 0xd6, 0x51, 0x14, 0x92, 0x22, 0x71, 0x27, 0x1b, 0x7b, 0x13, 0xce, 0xd4, 0xc2, 0x3b, - 0xc1, 0x1d, 0x27, 0x72, 0x17, 0xea, 0xab, 0x9a, 0x71, 0x7f, 0x43, 0x1a, 0x97, 0xfc, 0xdc, 0x2b, - 0x77, 0x9f, 0xd2, 0x4a, 0x72, 0xf5, 0x7f, 0xc5, 0xf3, 0x49, 0x81, 0x13, 0xe1, 0xaf, 0x97, 0x8c, - 0x9a, 0x52, 0x7a, 0xe5, 0xa9, 0xb7, 0x0a, 0x3d, 0xf5, 0xaf, 0xc1, 0xc8, 0x86, 0x47, 0x7c, 0x17, - 0x93, 0x0d, 0x31, 0x32, 0x8f, 0x17, 0x1f, 0x60, 0xac, 0x50, 0x4a, 0xe9, 0x34, 0xe2, 0xa6, 0xe9, - 0x8a, 0x28, 0x8c, 0x15, 0x1b, 0xb4, 0x0d, 0x53, 0xd2, 0xf6, 0x91, 0x58, 0xb1, 0x88, 0x9f, 0xe8, - 0x66, 0x50, 0x99, 0xcc, 0xd9, 0x00, 0xe2, 0x0c, 0x1b, 0xdc, 0xc1, 0x98, 0xda, 0xa2, 0x3b, 0x74, - 0xbb, 0x1a, 0x60, 0x53, 0x9a, 0xd9, 0xa2, 0xcc, 0xac, 0x66, 0x50, 0xfb, 0x6b, 0x16, 0x3c, 0xd0, - 0xd1, 0x33, 0xc2, 0xbd, 0x70, 0xcc, 0xa3, 0x90, 0x35, 0xf7, 0x4b, 0xbd, 0xcd, 0x7d, 0xfb, 0x37, - 0x2c, 0x38, 0xbd, 0xbc, 0xd3, 0x4a, 0xf6, 0x6a, 0x9e, 0x79, 0x9a, 0xf0, 0x09, 0x18, 0xda, 0x21, - 0xae, 0xd7, 0xde, 0x11, 0x23, 0x37, 0x2b, 0x45, 0xfa, 0x75, 0x06, 0x3d, 0xdc, 0x9f, 0x1d, 0x6f, - 0x24, 0x61, 0xe4, 0x6c, 0x12, 0x0e, 0xc0, 0x82, 0x1c, 0xfd, 0x2c, 0xd7, 0x4d, 0xaf, 0x79, 0x3b, - 0x9e, 0x3c, 0x90, 0xea, 0xea, 0xf2, 0x9a, 0x93, 0x1d, 0x3a, 0xf7, 0x5a, 0xdb, 0x09, 0x12, 0x2f, - 0xd9, 0x33, 0x75, 0x59, 0xc6, 0x08, 0xa7, 0x3c, 0xed, 0xef, 0x59, 0x30, 0x29, 0xe5, 0xc9, 0x82, - 0xeb, 0x46, 0x24, 0x8e, 0xd1, 0x0c, 0x94, 0xbc, 0x96, 0x68, 0x29, 0x88, 0xd2, 0xa5, 0xd5, 0x3a, - 0x2e, 0x79, 0x2d, 0x54, 0x87, 0x0a, 0x3f, 0xdb, 0x4a, 0x27, 0x58, 0x5f, 0x27, 0x64, 0xcc, 0xf6, - 0x5b, 0x93, 0x25, 0x71, 0xca, 0x44, 0x6a, 0xc6, 0x6c, 0x2f, 0x2a, 0x9b, 0x27, 0x2d, 0x57, 0x04, - 0x1c, 0x2b, 0x0a, 0x74, 0x11, 0x46, 0x82, 0xd0, 0xe5, 0x47, 0x8d, 0x7c, 0x5d, 0xb3, 0x69, 0x7b, - 0x43, 0xc0, 0xb0, 0xc2, 0xda, 0xbf, 0x60, 0xc1, 0x98, 0xfc, 0xb2, 0x3e, 0x95, 0x74, 0xba, 0xbc, - 0x52, 0x05, 0x3d, 0x5d, 0x5e, 0x54, 0xc9, 0x66, 0x18, 0x43, 0xb7, 0x2e, 0x1f, 0x45, 0xb7, 0xb6, - 0xbf, 0x5a, 0x82, 0x09, 0xd9, 0x9c, 0x46, 0x7b, 0x3d, 0x26, 0x09, 0x5a, 0x83, 0x8a, 0xc3, 0xbb, - 0x9c, 0xc8, 0x59, 0xfb, 0x68, 0xbe, 0xd5, 0x65, 0x8c, 0x4f, 0x3a, 0xa2, 0x0b, 0xb2, 0x34, 0x4e, - 0x19, 0x21, 0x1f, 0xa6, 0x83, 0x30, 0x61, 0x5b, 0x9f, 0xc2, 0x77, 0x3b, 0x1b, 0xc8, 0x72, 0x3f, - 0x27, 0xb8, 0x4f, 0xdf, 0xc8, 0x72, 0xc1, 0x9d, 0x8c, 0xd1, 0xb2, 0xf4, 0xf4, 0x94, 0x59, 0x0d, - 0x17, 0xba, 0xd5, 0x50, 0xec, 0xe8, 0xb1, 0x7f, 0xdf, 0x82, 0x8a, 0x24, 0x3b, 0x89, 0x63, 0xa0, - 0xeb, 0x30, 0x1c, 0xb3, 0x41, 0x90, 0x5d, 0x63, 0x77, 0x6b, 0x38, 0x1f, 0xaf, 0x74, 0x47, 0xe7, - 0xff, 0x63, 0x2c, 0x79, 0x30, 0x57, 0xb5, 0x6a, 0xfe, 0x87, 0xc4, 0x55, 0xad, 0xda, 0x53, 0xb0, - 0xcb, 0xfc, 0x27, 0xd6, 0x66, 0xcd, 0x9e, 0xa7, 0x8a, 0x67, 0x2b, 0x22, 0x1b, 0xde, 0xdd, 0xac, - 0xe2, 0x59, 0x67, 0x50, 0x2c, 0xb0, 0xe8, 0x2d, 0x18, 0x6b, 0x4a, 0x0f, 0x6f, 0x2a, 0x06, 0x1e, - 0xeb, 0xea, 0x2f, 0x57, 0x47, 0x2b, 0x3c, 0x20, 0x67, 0x49, 0x2b, 0x8f, 0x0d, 0x6e, 0x54, 0xc2, - 0xa4, 0xa7, 0xc2, 0xe5, 0xae, 0xce, 0x95, 0x88, 0x24, 0x29, 0xdf, 0xc2, 0x03, 0x61, 0xfb, 0x57, - 0x2d, 0x18, 0xe2, 0x7e, 0xc2, 0xfe, 0x1c, 0xab, 0xda, 0x51, 0x51, 0xda, 0x77, 0xb7, 0x29, 0x50, - 0x9c, 0x1c, 0xa1, 0xeb, 0x50, 0x61, 0x3f, 0x98, 0xbf, 0xa4, 0x5c, 0x1c, 0x89, 0xc4, 0x6b, 0xd5, - 0x1b, 0x78, 0x5b, 0x16, 0xc3, 0x29, 0x07, 0xfb, 0x97, 0xca, 0x54, 0x54, 0xa5, 0xa4, 0xc6, 0x2e, - 0x6e, 0xdd, 0xbf, 0x5d, 0xbc, 0x74, 0xbf, 0x76, 0xf1, 0x4d, 0x98, 0x6c, 0x6a, 0xe7, 0x52, 0xe9, - 0x48, 0x5e, 0xec, 0x3a, 0x49, 0xb4, 0x23, 0x2c, 0xee, 0x2b, 0x5b, 0x32, 0x99, 0xe0, 0x2c, 0x57, - 0xf4, 0x39, 0x18, 0xe3, 0xe3, 0x2c, 0x6a, 0x19, 0x60, 0xb5, 0x7c, 0xac, 0x78, 0xbe, 0xe8, 0x55, - 0xb0, 0x99, 0xd8, 0xd0, 0x8a, 0x63, 0x83, 0x99, 0xfd, 0xe5, 0x41, 0x18, 0x5c, 0xde, 0x25, 0x41, - 0x72, 0x02, 0x02, 0xa9, 0x09, 0x13, 0x5e, 0xb0, 0x1b, 0xfa, 0xbb, 0xc4, 0xe5, 0xf8, 0xa3, 0x6c, - 0xae, 0x67, 0x05, 0xeb, 0x89, 0x55, 0x83, 0x05, 0xce, 0xb0, 0xbc, 0x1f, 0x96, 0xfb, 0x65, 0x18, - 0xe2, 0x63, 0x2f, 0xcc, 0xf6, 0x5c, 0x2f, 0x38, 0xeb, 0x44, 0xb1, 0x0a, 0x52, 0xaf, 0x02, 0x77, - 0xbb, 0x8b, 0xe2, 0xe8, 0x1d, 0x98, 0xd8, 0xf0, 0xa2, 0x38, 0xa1, 0x26, 0x77, 0x9c, 0x38, 0x3b, - 0xad, 0x7b, 0xb0, 0xd4, 0x55, 0x3f, 0xac, 0x18, 0x9c, 0x70, 0x86, 0x33, 0xda, 0x84, 0x71, 0x6a, - 0x3c, 0xa6, 0x55, 0x0d, 0x1f, 0xb9, 0x2a, 0xe5, 0x8a, 0xbb, 0xa6, 0x33, 0xc2, 0x26, 0x5f, 0x2a, - 0x4c, 0x9a, 0xcc, 0xd8, 0x1c, 0x61, 0x1a, 0x85, 0x12, 0x26, 0xdc, 0xca, 0xe4, 0x38, 0x2a, 0x93, - 0x58, 0x3c, 0x47, 0xc5, 0x94, 0x49, 0x69, 0xd4, 0x86, 0xfd, 0x75, 0xba, 0x3b, 0xd2, 0x3e, 0x3c, - 0x81, 0xad, 0xe5, 0x15, 0x73, 0x6b, 0x39, 0x57, 0x38, 0x9e, 0x05, 0xdb, 0xca, 0xe7, 0x61, 0x54, - 0x1b, 0x6e, 0x34, 0x0f, 0x95, 0xa6, 0x0c, 0x3e, 0x10, 0x52, 0x57, 0xa9, 0x2f, 0x2a, 0x2a, 0x01, - 0xa7, 0x34, 0xb4, 0x37, 0xa8, 0xb2, 0x97, 0x0d, 0x46, 0xa2, 0xaa, 0x20, 0x66, 0x18, 0xfb, 0x39, - 0x80, 0xe5, 0xbb, 0xa4, 0xb9, 0xc0, 0x8d, 0x2f, 0xed, 0x8c, 0xcb, 0x2a, 0x3e, 0xe3, 0xa2, 0x3b, - 0xf4, 0xc4, 0xca, 0x92, 0xa1, 0x94, 0xcf, 0x01, 0x70, 0x2d, 0xf4, 0xf5, 0xd7, 0x6f, 0x48, 0xef, - 0x30, 0x77, 0xf0, 0x29, 0x28, 0xd6, 0x28, 0xd0, 0x39, 0x28, 0xfb, 0xed, 0x40, 0x28, 0x87, 0xc3, - 0x07, 0xfb, 0xb3, 0xe5, 0x6b, 0xed, 0x00, 0x53, 0x98, 0x16, 0xff, 0x53, 0xee, 0x3b, 0xfe, 0xa7, - 0x77, 0xfc, 0xeb, 0xff, 0x5f, 0x86, 0xa9, 0x15, 0x9f, 0xdc, 0x35, 0x5a, 0xfd, 0x18, 0x0c, 0xb9, - 0x91, 0xb7, 0x4b, 0xa2, 0xec, 0x26, 0x5d, 0x63, 0x50, 0x2c, 0xb0, 0x7d, 0x87, 0x24, 0xdd, 0xea, - 0xdc, 0x6e, 0x8f, 0x3b, 0x08, 0xab, 0xe7, 0x97, 0xa2, 0xb7, 0x60, 0x98, 0x9f, 0x84, 0xc6, 0xd5, - 0x41, 0x36, 0xed, 0x9e, 0xcd, 0x6b, 0x42, 0xb6, 0x2f, 0xe6, 0x84, 0x6f, 0x83, 0x87, 0x85, 0x28, - 0x19, 0x25, 0xa0, 0x58, 0xb2, 0x9c, 0xf9, 0x14, 0x8c, 0xe9, 0x94, 0x47, 0x8a, 0x0f, 0xf9, 0x0b, - 0x16, 0x9c, 0x5a, 0xf1, 0xc3, 0xe6, 0x76, 0x26, 0x3e, 0xec, 0x05, 0x18, 0xa5, 0xcb, 0x25, 0x36, - 0x02, 0x25, 0x8d, 0x20, 0x52, 0x81, 0xc2, 0x3a, 0x9d, 0x56, 0xec, 0xd6, 0xad, 0xd5, 0x5a, 0x5e, - 0xec, 0xa9, 0x40, 0x61, 0x9d, 0xce, 0xfe, 0x43, 0x0b, 0x1e, 0xbe, 0xbc, 0xb4, 0x5c, 0x27, 0x51, - 0xec, 0xc5, 0x09, 0x09, 0x92, 0x8e, 0xf0, 0x57, 0xaa, 0xbb, 0xb9, 0x5a, 0x53, 0x52, 0xdd, 0xad, - 0xc6, 0x5a, 0x21, 0xb0, 0x1f, 0x96, 0xd0, 0xee, 0x5f, 0xb7, 0xe0, 0xd4, 0x65, 0x2f, 0xc1, 0xa4, - 0x15, 0x66, 0xc3, 0x4f, 0x23, 0xd2, 0x0a, 0x63, 0x2f, 0x09, 0xa3, 0xbd, 0x6c, 0xf8, 0x29, 0x56, - 0x18, 0xac, 0x51, 0xf1, 0x9a, 0x77, 0xbd, 0x98, 0xb6, 0xb4, 0x64, 0x1a, 0x90, 0x58, 0xc0, 0xb1, - 0xa2, 0xa0, 0x1f, 0xe6, 0x7a, 0x11, 0x53, 0x00, 0xf6, 0xc4, 0x6a, 0x55, 0x1f, 0x56, 0x93, 0x08, - 0x9c, 0xd2, 0xd8, 0x5f, 0xb3, 0xe0, 0xcc, 0x65, 0xbf, 0x1d, 0x27, 0x24, 0xda, 0x88, 0x8d, 0xc6, - 0x3e, 0x07, 0x15, 0x22, 0x95, 0x6c, 0xd1, 0x56, 0xb5, 0x2d, 0x28, 0xed, 0x9b, 0xc7, 0xbe, 0x2a, - 0xba, 0x3e, 0x82, 0x2d, 0x8f, 0x16, 0x24, 0xf8, 0xcd, 0x12, 0x8c, 0x5f, 0x59, 0x5b, 0xab, 0x5f, - 0x26, 0x89, 0x90, 0x88, 0xbd, 0x9d, 0x44, 0x58, 0xb3, 0x73, 0xbb, 0xa9, 0x32, 0xed, 0xc4, 0xf3, - 0xe7, 0xf8, 0xb5, 0x83, 0xb9, 0xd5, 0x20, 0xb9, 0x19, 0x35, 0x92, 0xc8, 0x0b, 0x36, 0x73, 0x2d, - 0x63, 0x29, 0xb7, 0xcb, 0x45, 0x72, 0x1b, 0x3d, 0x07, 0x43, 0xec, 0xde, 0x83, 0x54, 0x2a, 0x1e, - 0x54, 0x9a, 0x00, 0x83, 0x1e, 0xee, 0xcf, 0x56, 0x6e, 0xe1, 0x55, 0xfe, 0x07, 0x0b, 0x52, 0x74, - 0x0b, 0x46, 0xb7, 0x92, 0xa4, 0x75, 0x85, 0x38, 0x2e, 0x89, 0xa4, 0x74, 0x38, 0x9f, 0x27, 0x1d, - 0x68, 0x27, 0x70, 0xb2, 0x74, 0x41, 0xa5, 0xb0, 0x18, 0xeb, 0x7c, 0xec, 0x06, 0x40, 0x8a, 0x3b, - 0x26, 0xab, 0xc0, 0xfe, 0xa1, 0x05, 0xc3, 0x57, 0x9c, 0xc0, 0xf5, 0x49, 0x84, 0x5e, 0x86, 0x01, - 0x72, 0x97, 0x34, 0xc5, 0x06, 0x9d, 0xdb, 0xe0, 0x74, 0x13, 0xe3, 0x7e, 0x2e, 0xfa, 0x1f, 0xb3, - 0x52, 0xe8, 0x0a, 0x0c, 0xd3, 0xd6, 0x5e, 0x56, 0x51, 0xc8, 0x8f, 0x14, 0x7d, 0xb1, 0x1a, 0x76, - 0xbe, 0xef, 0x09, 0x10, 0x96, 0xc5, 0x99, 0xbf, 0xa6, 0xd9, 0x6a, 0x50, 0x01, 0x96, 0x74, 0xb3, - 0xa6, 0xd6, 0x96, 0xea, 0x9c, 0x48, 0x70, 0xe3, 0xfe, 0x1a, 0x09, 0xc4, 0x29, 0x13, 0x7b, 0x0d, - 0x2a, 0x74, 0x50, 0x17, 0x7c, 0xcf, 0xe9, 0xee, 0x2a, 0x7a, 0x0a, 0x2a, 0xd2, 0x6d, 0x13, 0x8b, - 0x40, 0x66, 0xc6, 0x55, 0x7a, 0x75, 0x62, 0x9c, 0xe2, 0xed, 0x17, 0xe1, 0x34, 0x3b, 0x07, 0x75, - 0x92, 0x2d, 0x63, 0x8d, 0xf5, 0x9c, 0xcc, 0xf6, 0x37, 0x06, 0x60, 0x7a, 0xb5, 0xb1, 0xd4, 0x30, - 0xbd, 0x81, 0x2f, 0xc2, 0x18, 0xdf, 0xba, 0xe9, 0x14, 0x75, 0x7c, 0x51, 0x5e, 0x79, 0xfb, 0xd7, - 0x34, 0x1c, 0x36, 0x28, 0xd1, 0xc3, 0x50, 0xf6, 0xde, 0x0d, 0xb2, 0xf1, 0x6b, 0xab, 0xaf, 0xdd, - 0xc0, 0x14, 0x4e, 0xd1, 0x54, 0x0b, 0xe0, 0x22, 0x51, 0xa1, 0x95, 0x26, 0xf0, 0x0a, 0x4c, 0x78, - 0x71, 0x33, 0xf6, 0x56, 0x03, 0x2a, 0x2f, 0x9c, 0xa6, 0x9c, 0xec, 0xa9, 0x8a, 0x4e, 0x9b, 0xaa, - 0xb0, 0x38, 0x43, 0xad, 0xc9, 0xe7, 0xc1, 0xbe, 0x35, 0x89, 0x9e, 0x41, 0xce, 0x54, 0x49, 0x6a, - 0xb1, 0xaf, 0x8b, 0x59, 0x2c, 0x8d, 0x50, 0x92, 0xf8, 0x07, 0xc7, 0x58, 0xe2, 0xd0, 0x65, 0x98, - 0x6e, 0x6e, 0x39, 0xad, 0x85, 0x76, 0xb2, 0x55, 0xf3, 0xe2, 0x66, 0xb8, 0x4b, 0xa2, 0x3d, 0xa6, - 0xba, 0x8e, 0xa4, 0x5e, 0x21, 0x85, 0x58, 0xba, 0xb2, 0x50, 0xa7, 0x94, 0xb8, 0xb3, 0x8c, 0xa9, - 0x54, 0xc0, 0xb1, 0x29, 0x15, 0x0b, 0x30, 0x29, 0xeb, 0x6a, 0x90, 0x98, 0x09, 0xfc, 0x51, 0xd6, - 0x3a, 0x75, 0x81, 0x44, 0x80, 0x55, 0xdb, 0xb2, 0xf4, 0xf6, 0x3b, 0x50, 0x51, 0x71, 0x5e, 0x32, - 0x54, 0xd1, 0x2a, 0x08, 0x55, 0xec, 0x2d, 0xaa, 0xa5, 0xb7, 0xba, 0x9c, 0xeb, 0xad, 0xfe, 0x1b, - 0x16, 0xa4, 0xe1, 0x2e, 0xe8, 0x0a, 0x54, 0x5a, 0x21, 0x3b, 0xb1, 0x8a, 0xe4, 0x31, 0xf0, 0x83, - 0xb9, 0xab, 0x9a, 0x4b, 0x10, 0xde, 0x0d, 0x75, 0x59, 0x02, 0xa7, 0x85, 0xd1, 0x22, 0x0c, 0xb7, - 0x22, 0xd2, 0x48, 0xd8, 0xfd, 0x80, 0x9e, 0x7c, 0xf8, 0x50, 0x73, 0x7a, 0x2c, 0x0b, 0xda, 0xbf, - 0x65, 0x01, 0x70, 0x67, 0xb0, 0x13, 0x6c, 0x92, 0x13, 0x30, 0x70, 0x6b, 0x30, 0x10, 0xb7, 0x48, - 0xb3, 0xdb, 0x59, 0x62, 0xda, 0x9e, 0x46, 0x8b, 0x34, 0xd3, 0x0e, 0xa7, 0xff, 0x30, 0x2b, 0x6d, - 0xff, 0x3c, 0xc0, 0x44, 0x4a, 0x46, 0x0d, 0x0f, 0xf4, 0x8c, 0x11, 0x0e, 0x7f, 0x2e, 0x13, 0x0e, - 0x5f, 0x61, 0xd4, 0x5a, 0x04, 0xfc, 0x3b, 0x50, 0xde, 0x71, 0xee, 0x0a, 0xeb, 0xe6, 0xa9, 0xee, - 0xcd, 0xa0, 0xfc, 0xe7, 0xae, 0x3b, 0x77, 0xb9, 0x82, 0xf9, 0x94, 0x9c, 0x20, 0xd7, 0x9d, 0xbb, - 0x87, 0xfc, 0xc4, 0x90, 0xc9, 0x1a, 0x6a, 0x44, 0x7d, 0xf1, 0x4f, 0xd2, 0xff, 0x6c, 0xdb, 0xa0, - 0x95, 0xb0, 0xba, 0xbc, 0x40, 0xb8, 0x46, 0xfb, 0xaa, 0xcb, 0x0b, 0xb2, 0x75, 0x79, 0x41, 0x1f, - 0x75, 0x79, 0x01, 0x7a, 0x0f, 0x86, 0xc5, 0x51, 0x04, 0x8b, 0xe3, 0x1b, 0xbd, 0x34, 0xdf, 0x47, - 0x7d, 0xe2, 0x24, 0x83, 0xd7, 0x39, 0x2f, 0x15, 0x68, 0x01, 0xed, 0x59, 0xaf, 0xac, 0x10, 0xfd, - 0x35, 0x0b, 0x26, 0xc4, 0x6f, 0x4c, 0xde, 0x6d, 0x93, 0x38, 0x11, 0x1b, 0xf5, 0xc7, 0xfb, 0x6f, - 0x83, 0x28, 0xc8, 0x9b, 0xf2, 0x71, 0x29, 0x2d, 0x4d, 0x64, 0xcf, 0x16, 0x65, 0x5a, 0x81, 0xfe, - 0xa1, 0x05, 0xa7, 0x77, 0x9c, 0xbb, 0xbc, 0x46, 0x0e, 0xc3, 0x4e, 0xe2, 0x85, 0x22, 0x2e, 0xf1, - 0xe5, 0xfe, 0x86, 0xbf, 0xa3, 0x38, 0x6f, 0xa4, 0x0c, 0x61, 0x3a, 0x9d, 0x47, 0xd2, 0xb3, 0xa9, - 0xb9, 0xed, 0x9a, 0xd9, 0x80, 0x11, 0x39, 0xdf, 0x72, 0xcc, 0x94, 0x9a, 0xae, 0x85, 0x1c, 0xf9, - 0x24, 0x48, 0x33, 0x6b, 0x58, 0x3d, 0x62, 0xae, 0xdd, 0xd7, 0x7a, 0xde, 0x81, 0x31, 0x7d, 0x8e, - 0xdd, 0xd7, 0xba, 0xde, 0x85, 0x53, 0x39, 0x73, 0xe9, 0xbe, 0x56, 0x79, 0x07, 0xce, 0x15, 0xce, - 0x8f, 0xfb, 0x59, 0xb1, 0xfd, 0x4d, 0x4b, 0x97, 0x83, 0x27, 0xe0, 0x16, 0x5a, 0x32, 0xdd, 0x42, - 0xe7, 0xbb, 0xaf, 0x9c, 0x02, 0xdf, 0xd0, 0x5b, 0x7a, 0xa3, 0xa9, 0x54, 0x47, 0xaf, 0xc2, 0x90, - 0x4f, 0x21, 0xf2, 0xfc, 0xcb, 0xee, 0xbd, 0x22, 0x53, 0x95, 0x88, 0xc1, 0x63, 0x2c, 0x38, 0xd8, - 0xbf, 0x6b, 0xc1, 0xc0, 0x09, 0xf4, 0x04, 0x36, 0x7b, 0xe2, 0x99, 0x42, 0xd6, 0xe2, 0xb2, 0xf7, - 0x1c, 0x76, 0xee, 0x2c, 0xdf, 0x4d, 0x48, 0x10, 0x33, 0xbd, 0x3a, 0xb7, 0x63, 0xfe, 0x77, 0x09, - 0x46, 0x69, 0x55, 0x32, 0x58, 0xe3, 0x25, 0x18, 0xf7, 0x9d, 0x75, 0xe2, 0x4b, 0x57, 0x75, 0xd6, - 0xba, 0xbc, 0xa6, 0x23, 0xb1, 0x49, 0x4b, 0x0b, 0x6f, 0xe8, 0x5e, 0x7b, 0xa1, 0xbf, 0xa8, 0xc2, - 0x86, 0x4b, 0x1f, 0x9b, 0xb4, 0xd4, 0xd0, 0xb9, 0xe3, 0x24, 0xcd, 0x2d, 0x61, 0x79, 0xaa, 0xe6, - 0xbe, 0x4e, 0x81, 0x98, 0xe3, 0xa8, 0x1e, 0x26, 0x67, 0xe7, 0x6d, 0x12, 0x31, 0x3d, 0x8c, 0x6b, - 0xb9, 0x4a, 0x0f, 0xc3, 0x26, 0x1a, 0x67, 0xe9, 0xd1, 0xa7, 0x60, 0x82, 0x76, 0x4e, 0xd8, 0x4e, - 0x64, 0x28, 0xca, 0x20, 0x0b, 0x45, 0x61, 0x91, 0xc7, 0x6b, 0x06, 0x06, 0x67, 0x28, 0x51, 0x1d, - 0x4e, 0x7b, 0x41, 0xd3, 0x6f, 0xbb, 0xe4, 0x56, 0xe0, 0x05, 0x5e, 0xe2, 0x39, 0xbe, 0xf7, 0x1e, - 0x71, 0x85, 0x1e, 0xac, 0xa2, 0x86, 0x56, 0x73, 0x68, 0x70, 0x6e, 0x49, 0xfb, 0x67, 0xe1, 0xd4, - 0xb5, 0xd0, 0x71, 0x17, 0x1d, 0xdf, 0x09, 0x9a, 0x24, 0x5a, 0x0d, 0x36, 0x7b, 0x1e, 0x84, 0xeb, - 0xc7, 0xd6, 0xa5, 0x5e, 0xc7, 0xd6, 0xf6, 0x16, 0x20, 0xbd, 0x02, 0x11, 0x82, 0x85, 0x61, 0xd8, - 0xe3, 0x55, 0x89, 0xe9, 0xff, 0x78, 0xbe, 0x92, 0xdc, 0xd1, 0x32, 0x2d, 0xb8, 0x88, 0x03, 0xb0, - 0x64, 0x44, 0x0d, 0xa9, 0x3c, 0xad, 0xba, 0xb7, 0x8d, 0x6b, 0xbf, 0x00, 0xd3, 0xac, 0xe4, 0x11, - 0xed, 0xaf, 0xbf, 0x6c, 0xc1, 0xe4, 0x8d, 0xcc, 0xdd, 0xd3, 0xc7, 0x60, 0x28, 0x26, 0x51, 0x8e, - 0x93, 0xb2, 0xc1, 0xa0, 0x58, 0x60, 0x8f, 0xdd, 0x19, 0xf2, 0x23, 0x0b, 0x2a, 0x2c, 0xb6, 0xb7, - 0x45, 0x6d, 0xa9, 0xfb, 0xaf, 0xd4, 0x2e, 0x19, 0x4a, 0x6d, 0xae, 0x91, 0xae, 0x9a, 0x53, 0xa4, - 0xd3, 0xa2, 0xab, 0xea, 0x4e, 0x66, 0x17, 0xfb, 0x3c, 0x65, 0xc3, 0x6f, 0xf0, 0x4d, 0x98, 0x17, - 0x37, 0xe5, 0x2d, 0x4d, 0x76, 0x12, 0xad, 0x68, 0x3f, 0x24, 0x27, 0xd1, 0xaa, 0x3d, 0x05, 0xd2, - 0xaf, 0xae, 0x35, 0x99, 0xed, 0x0a, 0x9f, 0x61, 0x11, 0x9b, 0x6c, 0x6d, 0xaa, 0xcb, 0xcb, 0xb3, - 0x22, 0x02, 0x53, 0x40, 0x0f, 0x99, 0x20, 0x13, 0xff, 0xf8, 0x8d, 0xf4, 0xb4, 0x88, 0x7d, 0x05, - 0x26, 0x33, 0x1d, 0x86, 0x5e, 0x80, 0xc1, 0xd6, 0x96, 0x13, 0x93, 0x4c, 0x04, 0xce, 0x60, 0x9d, - 0x02, 0x0f, 0xf7, 0x67, 0x27, 0x54, 0x01, 0x06, 0xc1, 0x9c, 0xda, 0xfe, 0x6f, 0x16, 0x0c, 0xdc, - 0x08, 0xdd, 0x93, 0x98, 0x4c, 0xaf, 0x18, 0x93, 0xe9, 0xa1, 0xa2, 0xcc, 0x16, 0x85, 0xf3, 0x68, - 0x25, 0x33, 0x8f, 0xce, 0x17, 0x72, 0xe8, 0x3e, 0x85, 0x76, 0x60, 0x94, 0xe5, 0xcb, 0x10, 0xd1, - 0x40, 0xcf, 0x19, 0xf6, 0xd5, 0x6c, 0xc6, 0xbe, 0x9a, 0xd4, 0x48, 0x35, 0x2b, 0xeb, 0x09, 0x18, - 0x16, 0x11, 0x29, 0xd9, 0xd8, 0x54, 0x41, 0x8b, 0x25, 0xde, 0xfe, 0xd5, 0x32, 0x18, 0xf9, 0x39, - 0xd0, 0xef, 0x5b, 0x30, 0x17, 0xf1, 0xdb, 0x38, 0x6e, 0xad, 0x1d, 0x79, 0xc1, 0x66, 0xa3, 0xb9, - 0x45, 0xdc, 0xb6, 0xef, 0x05, 0x9b, 0xab, 0x9b, 0x41, 0xa8, 0xc0, 0xcb, 0x77, 0x49, 0xb3, 0xcd, - 0x1c, 0xd4, 0x3d, 0x92, 0x81, 0xa8, 0x13, 0xdf, 0x4b, 0x07, 0xfb, 0xb3, 0x73, 0xf8, 0x48, 0xbc, - 0xf1, 0x11, 0xdb, 0x82, 0xfe, 0xd0, 0x82, 0x79, 0x9e, 0xb6, 0xa2, 0xff, 0xf6, 0x77, 0xb1, 0x46, - 0xeb, 0x92, 0x55, 0xca, 0x64, 0x8d, 0x44, 0x3b, 0x8b, 0x9f, 0x10, 0x1d, 0x3a, 0x5f, 0x3f, 0x5a, - 0x5d, 0xf8, 0xa8, 0x8d, 0xb3, 0xff, 0x79, 0x19, 0xc6, 0x69, 0x2f, 0xa6, 0x37, 0xd0, 0x5f, 0x30, - 0xa6, 0xc4, 0x23, 0x99, 0x29, 0x31, 0x6d, 0x10, 0x1f, 0xcf, 0xe5, 0xf3, 0x18, 0xa6, 0x7d, 0x27, - 0x4e, 0xae, 0x10, 0x27, 0x4a, 0xd6, 0x89, 0xc3, 0x8e, 0x58, 0xc5, 0x34, 0x3f, 0xca, 0xa9, 0xad, - 0xf2, 0x62, 0x5d, 0xcb, 0x32, 0xc3, 0x9d, 0xfc, 0xd1, 0x2e, 0x20, 0x76, 0x9c, 0x1b, 0x39, 0x41, - 0xcc, 0xbf, 0xc5, 0x13, 0xce, 0xeb, 0xa3, 0xd5, 0x3a, 0x23, 0x6a, 0x45, 0xd7, 0x3a, 0xb8, 0xe1, - 0x9c, 0x1a, 0xb4, 0x63, 0xfa, 0xc1, 0x7e, 0x8f, 0xe9, 0x87, 0x7a, 0x04, 0x80, 0xef, 0xc0, 0x94, - 0x18, 0x95, 0x0d, 0x6f, 0x53, 0x6c, 0xd2, 0x6f, 0x64, 0xc2, 0x78, 0xac, 0xfe, 0x03, 0x0e, 0x7a, - 0xc4, 0xf0, 0xd8, 0x3f, 0x07, 0xa7, 0x68, 0x75, 0x66, 0xb8, 0x72, 0x8c, 0x08, 0x4c, 0x6e, 0xb7, - 0xd7, 0x89, 0x4f, 0x12, 0x09, 0x13, 0x95, 0xe6, 0xaa, 0xfd, 0x66, 0xe9, 0x54, 0xb7, 0xbc, 0x6a, - 0xb2, 0xc0, 0x59, 0x9e, 0xf6, 0xaf, 0x59, 0xc0, 0x02, 0x02, 0x4f, 0x60, 0xfb, 0xfb, 0xb4, 0xb9, - 0xfd, 0x55, 0x8b, 0x24, 0x50, 0xc1, 0xce, 0xf7, 0x3c, 0x1f, 0x96, 0x7a, 0x14, 0xde, 0xdd, 0x93, - 0xba, 0x7f, 0x6f, 0x8d, 0xeb, 0x7f, 0x59, 0x7c, 0x41, 0xaa, 0xcb, 0x89, 0xe8, 0x0b, 0x30, 0xd2, - 0x74, 0x5a, 0x4e, 0x93, 0x27, 0x46, 0x2a, 0xf4, 0xfe, 0x18, 0x85, 0xe6, 0x96, 0x44, 0x09, 0xee, - 0xcd, 0xf8, 0x29, 0xf9, 0x95, 0x12, 0xdc, 0xd3, 0x83, 0xa1, 0xaa, 0x9c, 0xd9, 0x86, 0x71, 0x83, - 0xd9, 0x7d, 0x35, 0x7d, 0xbf, 0xc0, 0xb7, 0x0b, 0x65, 0xb1, 0xec, 0xc0, 0x74, 0xa0, 0xfd, 0xa7, - 0xc2, 0x51, 0xaa, 0xd3, 0x1f, 0xed, 0xb5, 0x21, 0x30, 0x49, 0xaa, 0x05, 0x3c, 0x66, 0xd8, 0xe0, - 0x4e, 0xce, 0xf6, 0xdf, 0xb2, 0xe0, 0x01, 0x9d, 0x50, 0xbb, 0x37, 0xda, 0xcb, 0x9f, 0x5c, 0x83, - 0x91, 0xb0, 0x45, 0x22, 0x27, 0xb5, 0xc9, 0x2e, 0xca, 0x4e, 0xbf, 0x29, 0xe0, 0x87, 0xfb, 0xb3, - 0xa7, 0x75, 0xee, 0x12, 0x8e, 0x55, 0x49, 0x64, 0xc3, 0x10, 0xeb, 0x8c, 0x58, 0xdc, 0xe9, 0x65, - 0xc9, 0x83, 0xd8, 0x39, 0x54, 0x8c, 0x05, 0xc6, 0xfe, 0x79, 0x8b, 0x4f, 0x2c, 0xbd, 0xe9, 0xe8, - 0x5d, 0x98, 0xda, 0xa1, 0xe6, 0xdb, 0xf2, 0xdd, 0x56, 0xc4, 0xbd, 0xe1, 0xb2, 0x9f, 0x9e, 0xea, - 0xd5, 0x4f, 0xda, 0x47, 0x2e, 0x56, 0x45, 0x9b, 0xa7, 0xae, 0x67, 0x98, 0xe1, 0x0e, 0xf6, 0xf6, - 0x9f, 0x95, 0xf8, 0x4a, 0x64, 0x5a, 0xdd, 0x13, 0x30, 0xdc, 0x0a, 0xdd, 0xa5, 0xd5, 0x1a, 0x16, - 0x3d, 0xa4, 0xc4, 0x55, 0x9d, 0x83, 0xb1, 0xc4, 0xa3, 0x4b, 0x00, 0xe4, 0x6e, 0x42, 0xa2, 0xc0, - 0xf1, 0xd5, 0x29, 0xb9, 0x52, 0x9e, 0x96, 0x15, 0x06, 0x6b, 0x54, 0xb4, 0x4c, 0x2b, 0x0a, 0x77, - 0x3d, 0x97, 0x5d, 0xaa, 0x28, 0x9b, 0x65, 0xea, 0x0a, 0x83, 0x35, 0x2a, 0x6a, 0x2a, 0xb7, 0x83, - 0x98, 0x6f, 0x80, 0xce, 0xba, 0x48, 0x5c, 0x33, 0x92, 0x9a, 0xca, 0xb7, 0x74, 0x24, 0x36, 0x69, - 0xd1, 0x02, 0x0c, 0x25, 0x0e, 0x3b, 0xfb, 0x1d, 0x2c, 0x0e, 0x95, 0x59, 0xa3, 0x14, 0x7a, 0x7e, - 0x20, 0x5a, 0x00, 0x8b, 0x82, 0xe8, 0x4d, 0x29, 0x82, 0xb9, 0x48, 0x16, 0x21, 0x4f, 0x85, 0xd3, - 0x56, 0x17, 0xdf, 0xba, 0x0c, 0x16, 0xa1, 0x54, 0x06, 0x2f, 0xfb, 0x4b, 0x15, 0x80, 0x54, 0xdb, - 0x43, 0xef, 0x75, 0x88, 0x88, 0xa7, 0xbb, 0xeb, 0x87, 0xc7, 0x27, 0x1f, 0xd0, 0x97, 0x2d, 0x18, - 0x75, 0x7c, 0x3f, 0x6c, 0x3a, 0x09, 0xeb, 0xe5, 0x52, 0x77, 0x11, 0x25, 0xea, 0x5f, 0x48, 0x4b, - 0xf0, 0x26, 0x3c, 0x27, 0x8f, 0x75, 0x35, 0x4c, 0xcf, 0x56, 0xe8, 0x15, 0xa3, 0x9f, 0x92, 0x46, - 0x00, 0x9f, 0x1e, 0x33, 0x59, 0x23, 0xa0, 0xc2, 0xa4, 0xb1, 0xa6, 0xff, 0xa3, 0x5b, 0x46, 0xbe, - 0x98, 0x81, 0xe2, 0xab, 0xb1, 0x86, 0xd2, 0xd3, 0x2b, 0x55, 0x0c, 0xaa, 0xeb, 0xa1, 0xdf, 0x83, - 0xc5, 0xf7, 0xc7, 0x35, 0xed, 0xba, 0x47, 0xd8, 0xf7, 0x3b, 0x30, 0xe9, 0x9a, 0xdb, 0xad, 0x98, - 0x4d, 0x8f, 0x17, 0xf1, 0xcd, 0xec, 0xce, 0xe9, 0x06, 0x9b, 0x41, 0xe0, 0x2c, 0x63, 0x54, 0xe7, - 0x41, 0xf8, 0xab, 0xc1, 0x46, 0x28, 0x42, 0xe7, 0xec, 0xc2, 0xb1, 0xdc, 0x8b, 0x13, 0xb2, 0x43, - 0x29, 0xd3, 0x7d, 0xf4, 0x86, 0x28, 0x8b, 0x15, 0x17, 0xf4, 0x2a, 0x0c, 0xb1, 0xdb, 0x51, 0x71, - 0x75, 0xa4, 0xd8, 0x0f, 0x68, 0x5e, 0xec, 0x4d, 0x17, 0x15, 0xfb, 0x1b, 0x63, 0xc1, 0x01, 0x5d, - 0x91, 0xd7, 0xf3, 0xe3, 0xd5, 0xe0, 0x56, 0x4c, 0xd8, 0xf5, 0xfc, 0xca, 0xe2, 0x47, 0xd3, 0x9b, - 0xf7, 0x1c, 0x9e, 0x9b, 0x13, 0xcf, 0x28, 0x49, 0xf5, 0x15, 0xf1, 0x5f, 0xa6, 0xda, 0xab, 0x42, - 0x71, 0xf3, 0xcc, 0x74, 0x7c, 0x69, 0x77, 0xde, 0x36, 0x59, 0xe0, 0x2c, 0xcf, 0x13, 0xdd, 0x3e, - 0x67, 0x02, 0x98, 0xca, 0x2e, 0xac, 0xfb, 0xba, 0x5d, 0xff, 0x70, 0x00, 0x26, 0xcc, 0x89, 0x80, - 0xe6, 0xa1, 0x22, 0x98, 0xa8, 0xe4, 0x5a, 0x6a, 0x6e, 0x5f, 0x97, 0x08, 0x9c, 0xd2, 0xb0, 0xe4, - 0x62, 0xac, 0xb8, 0x16, 0x34, 0x95, 0x26, 0x17, 0x53, 0x18, 0xac, 0x51, 0x51, 0x25, 0x7a, 0x3d, - 0x0c, 0x13, 0xb5, 0x15, 0xa8, 0xd9, 0xb2, 0xc8, 0xa0, 0x58, 0x60, 0xe9, 0x16, 0xb0, 0x4d, 0xa2, - 0x80, 0xf8, 0xa6, 0x27, 0x53, 0x6d, 0x01, 0x57, 0x75, 0x24, 0x36, 0x69, 0xe9, 0x96, 0x16, 0xc6, - 0x6c, 0xfa, 0x09, 0x55, 0x3d, 0x0d, 0x42, 0x6b, 0xf0, 0xdb, 0x81, 0x12, 0x8f, 0xde, 0x80, 0x07, - 0xd4, 0x65, 0x3e, 0xcc, 0x3d, 0xc3, 0xb2, 0xc6, 0x21, 0xc3, 0xb2, 0x7e, 0x60, 0x29, 0x9f, 0x0c, - 0x17, 0x95, 0x47, 0xaf, 0xc0, 0x84, 0x50, 0x81, 0x25, 0xc7, 0x61, 0x33, 0xe6, 0xe0, 0xaa, 0x81, - 0xc5, 0x19, 0x6a, 0x54, 0x83, 0x29, 0x0a, 0x61, 0x5a, 0xa8, 0xe4, 0xc0, 0x2f, 0x25, 0xaa, 0xbd, - 0xfe, 0x6a, 0x06, 0x8f, 0x3b, 0x4a, 0xa0, 0x05, 0x98, 0xe4, 0x3a, 0x0a, 0xb5, 0x29, 0xd9, 0x38, - 0x88, 0x88, 0x56, 0xb5, 0x10, 0x6e, 0x9a, 0x68, 0x9c, 0xa5, 0x47, 0x2f, 0xc2, 0x98, 0x13, 0x35, - 0xb7, 0xbc, 0x84, 0x34, 0x93, 0x76, 0xc4, 0x93, 0x5f, 0x68, 0x41, 0x1b, 0x0b, 0x1a, 0x0e, 0x1b, - 0x94, 0xf6, 0x7b, 0x70, 0x2a, 0x27, 0x18, 0x9e, 0x4e, 0x1c, 0xa7, 0xe5, 0xc9, 0x6f, 0xca, 0x84, - 0x93, 0x2d, 0xd4, 0x57, 0xe5, 0xd7, 0x68, 0x54, 0x74, 0x76, 0x32, 0x97, 0xb8, 0x96, 0x0f, 0x53, - 0xcd, 0xce, 0x15, 0x89, 0xc0, 0x29, 0x8d, 0xfd, 0x5d, 0x00, 0xcd, 0xa1, 0xd3, 0x47, 0x30, 0xd1, - 0x8b, 0x30, 0x26, 0x93, 0xb8, 0x6a, 0x29, 0x13, 0xd5, 0x67, 0x5e, 0xd6, 0x70, 0xd8, 0xa0, 0xa4, - 0x6d, 0x0b, 0xa4, 0x9b, 0x2a, 0x1b, 0xbc, 0xa6, 0xfc, 0x57, 0x38, 0xa5, 0x41, 0x4f, 0xc3, 0x48, - 0x4c, 0xfc, 0x8d, 0x6b, 0x5e, 0xb0, 0x2d, 0x26, 0xb6, 0x92, 0xc2, 0x0d, 0x01, 0xc7, 0x8a, 0x02, - 0x2d, 0x42, 0xb9, 0xed, 0xb9, 0x62, 0x2a, 0xcb, 0x0d, 0xbf, 0x7c, 0x6b, 0xb5, 0x76, 0xb8, 0x3f, - 0xfb, 0x48, 0x51, 0x6e, 0x5a, 0x6a, 0xda, 0xc7, 0x73, 0x74, 0xf9, 0xd1, 0xc2, 0x79, 0x67, 0x03, - 0x43, 0x47, 0x3c, 0x1b, 0xb8, 0x04, 0x20, 0xbe, 0x5a, 0xce, 0xe5, 0x72, 0x3a, 0x6a, 0x97, 0x15, - 0x06, 0x6b, 0x54, 0x28, 0x86, 0xe9, 0x66, 0x44, 0x1c, 0x69, 0x43, 0xf3, 0xb0, 0xee, 0x91, 0x7b, - 0x77, 0x10, 0x2c, 0x65, 0x99, 0xe1, 0x4e, 0xfe, 0x28, 0x84, 0x69, 0x57, 0xdc, 0x1d, 0x4d, 0x2b, - 0xad, 0x1c, 0x3d, 0x96, 0x9c, 0xc5, 0xd5, 0x64, 0x19, 0xe1, 0x4e, 0xde, 0xe8, 0x6d, 0x98, 0x91, - 0xc0, 0xce, 0xeb, 0xba, 0x6c, 0xb9, 0x94, 0x17, 0xcf, 0x1f, 0xec, 0xcf, 0xce, 0xd4, 0x0a, 0xa9, - 0x70, 0x17, 0x0e, 0x08, 0xc3, 0x10, 0x3b, 0x4b, 0x8a, 0xab, 0xa3, 0x6c, 0x9f, 0x7b, 0xb2, 0xd8, - 0x19, 0x40, 0xe7, 0xfa, 0x1c, 0x3b, 0x87, 0x12, 0xf1, 0xb7, 0xe9, 0xb1, 0x1c, 0x03, 0x62, 0xc1, - 0x09, 0x6d, 0xc0, 0xa8, 0x13, 0x04, 0x61, 0xe2, 0x70, 0x15, 0x6a, 0xac, 0x58, 0xf7, 0xd3, 0x18, - 0x2f, 0xa4, 0x25, 0x38, 0x77, 0x15, 0xd2, 0xa7, 0x61, 0xb0, 0xce, 0x18, 0xdd, 0x81, 0xc9, 0xf0, - 0x0e, 0x15, 0x8e, 0xd2, 0x4b, 0x11, 0x57, 0xc7, 0x59, 0x5d, 0xcf, 0xf7, 0xe9, 0xa7, 0x35, 0x0a, - 0x6b, 0x52, 0xcb, 0x64, 0x8a, 0xb3, 0xb5, 0xa0, 0x39, 0xc3, 0x5b, 0x3d, 0x91, 0xc6, 0x91, 0xa7, - 0xde, 0x6a, 0xdd, 0x39, 0xcd, 0xae, 0x7f, 0xf3, 0x78, 0x52, 0xb6, 0xfa, 0x27, 0x33, 0xd7, 0xbf, - 0x53, 0x14, 0xd6, 0xe9, 0xd0, 0x16, 0x8c, 0xa5, 0x47, 0x56, 0x51, 0xcc, 0xb2, 0xc3, 0x8c, 0x5e, - 0xba, 0xd4, 0xdf, 0xc7, 0xad, 0x6a, 0x25, 0xb9, 0xe5, 0xa0, 0x43, 0xb0, 0xc1, 0x79, 0xe6, 0x93, - 0x30, 0xaa, 0x0d, 0xec, 0x51, 0xc2, 0xa5, 0x67, 0x5e, 0x81, 0xa9, 0xec, 0xd0, 0x1d, 0x29, 0xdc, - 0xfa, 0x7f, 0x94, 0x60, 0x32, 0xe7, 0xe4, 0x8a, 0xe5, 0xb7, 0xcd, 0x08, 0xd4, 0x34, 0x9d, 0xad, - 0x29, 0x16, 0x4b, 0x7d, 0x88, 0x45, 0x29, 0xa3, 0xcb, 0x85, 0x32, 0x5a, 0x88, 0xc2, 0x81, 0xf7, - 0x23, 0x0a, 0xcd, 0xdd, 0x67, 0xb0, 0xaf, 0xdd, 0xe7, 0x18, 0xc4, 0xa7, 0xb1, 0x81, 0x0d, 0xf7, - 0xb1, 0x81, 0xfd, 0x52, 0x09, 0xa6, 0xd2, 0xd0, 0x72, 0x91, 0x4d, 0xfa, 0xfe, 0x9f, 0x77, 0xbc, - 0x6a, 0x9c, 0x77, 0xe4, 0x67, 0x8b, 0xce, 0xb4, 0xaa, 0xf0, 0xec, 0x03, 0x67, 0xce, 0x3e, 0x9e, - 0xec, 0x8b, 0x5b, 0xf7, 0x73, 0x90, 0xbf, 0x5d, 0x82, 0x33, 0xd9, 0x22, 0x4b, 0xbe, 0xe3, 0xed, - 0x9c, 0x40, 0xdf, 0xdc, 0x34, 0xfa, 0xe6, 0x99, 0x7e, 0xbe, 0x86, 0x35, 0xad, 0xb0, 0x83, 0x5e, - 0xcf, 0x74, 0xd0, 0x7c, 0xff, 0x2c, 0xbb, 0xf7, 0xd2, 0x77, 0x2d, 0x38, 0x97, 0x5b, 0xee, 0x04, - 0xbc, 0xaf, 0x37, 0x4c, 0xef, 0xeb, 0x13, 0x7d, 0x7f, 0x53, 0x81, 0x3b, 0xf6, 0x6b, 0xe5, 0x82, - 0x6f, 0x61, 0xfe, 0xab, 0x9b, 0x30, 0xea, 0x34, 0x9b, 0x24, 0x8e, 0xaf, 0x87, 0xae, 0x4a, 0x27, - 0xf5, 0x0c, 0xdb, 0x93, 0x52, 0xf0, 0xe1, 0xfe, 0xec, 0x4c, 0x96, 0x45, 0x8a, 0xc6, 0x3a, 0x07, - 0x33, 0x45, 0x5d, 0xe9, 0x58, 0x53, 0xd4, 0x5d, 0x02, 0xd8, 0x55, 0x56, 0x6d, 0xd6, 0x19, 0xa6, - 0xd9, 0xbb, 0x1a, 0x15, 0xfa, 0x19, 0xa6, 0x2b, 0xf2, 0x90, 0x11, 0x7e, 0xc8, 0xf1, 0x5c, 0x9f, - 0x63, 0xa5, 0x87, 0x9f, 0xf0, 0x0b, 0xa8, 0xca, 0x71, 0xa8, 0x58, 0xa2, 0xcf, 0xc2, 0x54, 0xcc, - 0x73, 0x1c, 0x2c, 0xf9, 0x4e, 0xcc, 0xee, 0x45, 0x08, 0x99, 0xc8, 0x6e, 0x95, 0x36, 0x32, 0x38, - 0xdc, 0x41, 0x6d, 0xff, 0xfd, 0x32, 0x3c, 0xd8, 0x65, 0x8a, 0xa2, 0x05, 0xf3, 0x88, 0xf7, 0xa9, - 0xac, 0x77, 0x67, 0x26, 0xb7, 0xb0, 0xe1, 0xee, 0xc9, 0x8c, 0x71, 0xe9, 0x7d, 0x8f, 0xf1, 0x57, - 0x2c, 0xcd, 0xef, 0xc6, 0x03, 0x41, 0x3f, 0x7d, 0xc4, 0xa5, 0xf7, 0xe3, 0xea, 0xa8, 0xff, 0xa2, - 0x05, 0x8f, 0xe4, 0x7e, 0x96, 0x11, 0x2a, 0x32, 0x0f, 0x95, 0x26, 0x05, 0x6a, 0x77, 0x97, 0xd2, - 0x0b, 0x82, 0x12, 0x81, 0x53, 0x1a, 0x23, 0x22, 0xa4, 0xd4, 0x33, 0x22, 0xe4, 0x9f, 0x5a, 0x70, - 0x3a, 0xdb, 0x88, 0x13, 0x90, 0x4c, 0xab, 0xa6, 0x64, 0xfa, 0x68, 0x3f, 0x43, 0x5e, 0x20, 0x94, - 0xfe, 0xdd, 0x04, 0x9c, 0xed, 0xd8, 0xb9, 0x78, 0xdf, 0xed, 0xc2, 0xf4, 0x26, 0x53, 0xe1, 0xb5, - 0x5b, 0x61, 0xe2, 0x63, 0x72, 0x2f, 0xd0, 0x75, 0xbd, 0x42, 0xc6, 0xcd, 0x90, 0x0e, 0x12, 0xdc, - 0x59, 0x05, 0xfa, 0xa2, 0x05, 0xa7, 0x9d, 0x3b, 0x71, 0xc7, 0x93, 0x23, 0x62, 0xce, 0x3c, 0x9f, - 0xeb, 0x1d, 0xeb, 0xf1, 0x44, 0xc9, 0x62, 0xf5, 0x60, 0x7f, 0xf6, 0x74, 0x1e, 0x15, 0xce, 0xad, - 0x0b, 0x61, 0x91, 0x51, 0x8f, 0x6a, 0x39, 0x5d, 0xee, 0x2d, 0xe6, 0xdd, 0x2a, 0xe1, 0x32, 0x4a, - 0x62, 0xb0, 0xe2, 0x83, 0x6e, 0x43, 0x65, 0x53, 0x5e, 0xf5, 0x12, 0x32, 0x30, 0x77, 0x53, 0xc9, - 0xbd, 0x0f, 0xc6, 0x23, 0xf6, 0x15, 0x0a, 0xa7, 0xac, 0xd0, 0x2b, 0x50, 0x0e, 0x36, 0x62, 0x71, - 0x45, 0x3a, 0x3f, 0xbe, 0xc7, 0x8c, 0xa0, 0xe2, 0xf7, 0x4b, 0x6f, 0xac, 0x34, 0x30, 0x2d, 0x48, - 0xcb, 0x47, 0xeb, 0xae, 0x70, 0xe8, 0xe6, 0x96, 0xc7, 0x8b, 0xb5, 0xce, 0xf2, 0x78, 0xb1, 0x86, - 0x69, 0x41, 0xb4, 0x02, 0x83, 0xec, 0x9e, 0x89, 0xf0, 0xd6, 0xe6, 0xde, 0x8f, 0xef, 0xb8, 0x43, - 0xc3, 0x53, 0x25, 0x32, 0x30, 0xe6, 0xc5, 0xd1, 0xab, 0x30, 0xd4, 0x64, 0xb9, 0xf2, 0x85, 0x69, - 0x9d, 0x9f, 0xf3, 0xa1, 0x23, 0x9b, 0x3e, 0x3f, 0xa3, 0xe2, 0x70, 0x2c, 0x38, 0x30, 0x5e, 0xa4, - 0xb5, 0xb5, 0x11, 0x0b, 0x8b, 0x39, 0x9f, 0x57, 0xc7, 0xbb, 0x06, 0x82, 0x17, 0x83, 0x63, 0xc1, - 0x01, 0x7d, 0x0a, 0x4a, 0x1b, 0x4d, 0x71, 0xd1, 0x24, 0xd7, 0x37, 0x6b, 0x5e, 0xfd, 0x5d, 0x1c, - 0x3a, 0xd8, 0x9f, 0x2d, 0xad, 0x2c, 0xe1, 0xd2, 0x46, 0x13, 0xdd, 0x80, 0xe1, 0x0d, 0x7e, 0xc1, - 0x53, 0xe4, 0x45, 0x7d, 0x3c, 0xff, 0xee, 0x69, 0xc7, 0x1d, 0x50, 0x7e, 0xb3, 0x42, 0x20, 0xb0, - 0x64, 0x82, 0xd6, 0x00, 0x36, 0xd4, 0x45, 0x55, 0x91, 0x18, 0xf5, 0xa3, 0xfd, 0x5c, 0x67, 0x15, - 0x46, 0xa3, 0x82, 0x62, 0x8d, 0x0f, 0x9d, 0x99, 0x8e, 0x7c, 0xb0, 0x83, 0x25, 0x45, 0x2d, 0x98, - 0x99, 0xb9, 0xaf, 0x7a, 0xf0, 0x99, 0xa9, 0x50, 0x38, 0x65, 0x85, 0xb6, 0x61, 0x7c, 0x37, 0x6e, - 0x6d, 0x11, 0xb9, 0x18, 0x59, 0x7e, 0x54, 0xd3, 0xac, 0x4c, 0x93, 0xd9, 0x0a, 0x42, 0x2f, 0x4a, - 0xda, 0x8e, 0xdf, 0x21, 0x3f, 0x58, 0x7e, 0xaf, 0xdb, 0x3a, 0x33, 0x6c, 0xf2, 0xa6, 0x5d, 0xfd, - 0x6e, 0x3b, 0x5c, 0xdf, 0x4b, 0x88, 0xc8, 0x9a, 0x9a, 0xdb, 0xd5, 0xaf, 0x71, 0x92, 0xce, 0xae, - 0x16, 0x08, 0x2c, 0x99, 0xa8, 0x4e, 0x61, 0x72, 0x6f, 0xaa, 0x47, 0xa7, 0x74, 0xb4, 0x37, 0xed, - 0x14, 0x26, 0xe7, 0x52, 0x56, 0x4c, 0xbe, 0xb5, 0xb6, 0xc2, 0x24, 0x0c, 0x32, 0xb2, 0x75, 0xba, - 0x58, 0xbe, 0xd5, 0x73, 0xe8, 0x3b, 0xe5, 0x5b, 0x1e, 0x15, 0xce, 0xad, 0x0b, 0xb9, 0x30, 0xd1, - 0x0a, 0xa3, 0xe4, 0x4e, 0x18, 0xc9, 0xb9, 0x84, 0xba, 0x18, 0x4a, 0x06, 0xa5, 0xa8, 0x91, 0xc5, - 0xd2, 0x9a, 0x18, 0x9c, 0xe1, 0x49, 0x87, 0x24, 0x6e, 0x3a, 0x3e, 0x59, 0xbd, 0x59, 0x3d, 0x55, - 0x3c, 0x24, 0x0d, 0x4e, 0xd2, 0x39, 0x24, 0x02, 0x81, 0x25, 0x13, 0x2a, 0x69, 0x58, 0x02, 0x6e, - 0x96, 0xe6, 0xb5, 0x40, 0xd2, 0x74, 0x44, 0x99, 0x72, 0x49, 0xc3, 0xc0, 0x98, 0x17, 0x47, 0x9f, - 0x87, 0x8a, 0xd0, 0xff, 0xc2, 0xb8, 0x7a, 0xa6, 0x43, 0x1b, 0x4d, 0x5b, 0xc6, 0x89, 0x6e, 0x36, - 0xf2, 0xb7, 0x48, 0x71, 0x99, 0x4c, 0x12, 0xe1, 0x94, 0xa9, 0xfd, 0xa5, 0xa1, 0x4e, 0xcd, 0x80, - 0xe9, 0xf9, 0x5f, 0xb2, 0x3a, 0x8e, 0x4a, 0x3f, 0xde, 0xaf, 0x71, 0x7a, 0x8c, 0x87, 0xa6, 0x5f, - 0xb4, 0xe0, 0x6c, 0x2b, 0xf7, 0xa3, 0xc4, 0x36, 0xdb, 0x9f, 0x8d, 0xcb, 0xbb, 0x41, 0x25, 0x50, - 0xce, 0xc7, 0xe3, 0x82, 0x9a, 0xb2, 0xfa, 0x70, 0xf9, 0x7d, 0xeb, 0xc3, 0xd7, 0x61, 0x84, 0xa9, - 0x72, 0x69, 0xb2, 0x96, 0xbe, 0x02, 0x8e, 0xd8, 0x86, 0xbd, 0x24, 0x0a, 0x62, 0xc5, 0x02, 0xfd, - 0x82, 0x05, 0x0f, 0x67, 0x9b, 0x8e, 0x09, 0x43, 0x8b, 0xe4, 0x7f, 0xdc, 0xc4, 0x58, 0x11, 0xdf, - 0xff, 0x70, 0xbd, 0x1b, 0xf1, 0x61, 0x2f, 0x02, 0xdc, 0xbd, 0x32, 0x54, 0xcb, 0xb1, 0x71, 0x86, - 0xcc, 0x93, 0x94, 0xde, 0x76, 0xce, 0xc9, 0x6a, 0xe9, 0x5f, 0xb7, 0x72, 0xd4, 0x4b, 0x6e, 0x4f, - 0xbd, 0x6c, 0xda, 0x53, 0x8f, 0x65, 0xed, 0xa9, 0x0e, 0xef, 0x88, 0x61, 0x4a, 0xf5, 0x9f, 0x9e, - 0xb4, 0xdf, 0xbc, 0x34, 0xb6, 0x0f, 0x17, 0x7a, 0x89, 0x59, 0x16, 0x3e, 0xe5, 0xaa, 0x73, 0xc5, - 0x34, 0x7c, 0xca, 0x5d, 0xad, 0x61, 0x86, 0xe9, 0x37, 0x05, 0x82, 0xfd, 0x5f, 0x2c, 0x28, 0xd7, - 0x43, 0xf7, 0x04, 0xbc, 0x3d, 0x9f, 0x36, 0xbc, 0x3d, 0x0f, 0x16, 0x3c, 0x12, 0x57, 0xe8, 0xdb, - 0x59, 0xce, 0xf8, 0x76, 0x1e, 0x2e, 0x62, 0xd0, 0xdd, 0x93, 0xf3, 0x77, 0xca, 0xa0, 0x3f, 0x69, - 0x87, 0xfe, 0xc5, 0xbd, 0xc4, 0xe1, 0x96, 0xbb, 0xbd, 0x72, 0x27, 0x38, 0xb3, 0xa8, 0x2b, 0x79, - 0xc5, 0xef, 0xc7, 0x2c, 0x1c, 0xf7, 0x75, 0xe2, 0x6d, 0x6e, 0x25, 0xc4, 0xcd, 0x7e, 0xce, 0xc9, - 0x85, 0xe3, 0xfe, 0x47, 0x0b, 0x26, 0x33, 0xb5, 0x23, 0x3f, 0xef, 0xbe, 0xd0, 0x3d, 0xfa, 0x6f, - 0xa6, 0x7b, 0x5e, 0x30, 0x9a, 0x03, 0x50, 0xae, 0x74, 0xe9, 0x23, 0x61, 0xba, 0xab, 0xf2, 0xb5, - 0xc7, 0x58, 0xa3, 0x40, 0x2f, 0xc0, 0x68, 0x12, 0xb6, 0x42, 0x3f, 0xdc, 0xdc, 0xbb, 0x4a, 0x64, - 0xd2, 0x0d, 0x75, 0xe0, 0xb1, 0x96, 0xa2, 0xb0, 0x4e, 0x67, 0xff, 0x7a, 0x19, 0xb2, 0xcf, 0x20, - 0xfe, 0xbf, 0x39, 0xf9, 0xe1, 0x9c, 0x93, 0xdf, 0xb3, 0x60, 0x8a, 0xd6, 0xce, 0x22, 0x5a, 0x64, - 0x20, 0xab, 0x7a, 0xc7, 0xc0, 0xea, 0xf2, 0x8e, 0xc1, 0x63, 0x54, 0x76, 0xb9, 0x61, 0x3b, 0x11, - 0xbe, 0x1c, 0x4d, 0x38, 0x51, 0x28, 0x16, 0x58, 0x41, 0x47, 0xa2, 0x48, 0xdc, 0x02, 0xd2, 0xe9, - 0x48, 0x14, 0x61, 0x81, 0x95, 0xcf, 0x1c, 0x0c, 0x14, 0x3c, 0x73, 0xc0, 0xd2, 0x51, 0x89, 0x28, - 0x0a, 0xa1, 0x1a, 0x68, 0xe9, 0xa8, 0x64, 0x78, 0x45, 0x4a, 0x63, 0x7f, 0xb3, 0x0c, 0x63, 0xf5, - 0xd0, 0x4d, 0x63, 0xdf, 0x9f, 0x37, 0x62, 0xdf, 0x2f, 0x64, 0x62, 0xdf, 0xa7, 0x74, 0xda, 0xe3, - 0x09, 0x7d, 0x17, 0xc9, 0xca, 0xd8, 0xa3, 0x1b, 0xf7, 0x18, 0xf6, 0x6e, 0x24, 0x2b, 0x53, 0x8c, - 0xb0, 0xc9, 0xf7, 0x27, 0x29, 0xdc, 0xfd, 0xcf, 0x2d, 0x98, 0xa8, 0x87, 0x2e, 0x9d, 0xa0, 0x3f, - 0x49, 0xb3, 0x51, 0x4f, 0x76, 0x36, 0xd4, 0x25, 0xd9, 0xd9, 0xdf, 0xb5, 0x60, 0xb8, 0x1e, 0xba, - 0x27, 0xe0, 0xe7, 0x7c, 0xd9, 0xf4, 0x73, 0x3e, 0x50, 0x20, 0x65, 0x0b, 0x5c, 0x9b, 0xbf, 0x5d, - 0x86, 0x71, 0xda, 0xce, 0x70, 0x53, 0x8e, 0x92, 0xd1, 0x23, 0x56, 0x1f, 0x3d, 0x42, 0x95, 0xb9, - 0xd0, 0xf7, 0xc3, 0x3b, 0xd9, 0x11, 0x5b, 0x61, 0x50, 0x2c, 0xb0, 0xe8, 0x69, 0x18, 0x69, 0x45, - 0x64, 0xd7, 0x0b, 0xdb, 0x71, 0xf6, 0x1e, 0x61, 0x5d, 0xc0, 0xb1, 0xa2, 0x40, 0xcf, 0xc3, 0x58, - 0xec, 0x05, 0x4d, 0x22, 0x23, 0x2b, 0x06, 0x58, 0x64, 0x05, 0xcf, 0x17, 0xa9, 0xc1, 0xb1, 0x41, - 0x85, 0x5e, 0x87, 0x0a, 0xfb, 0xcf, 0xd6, 0xcd, 0xd1, 0x5f, 0x31, 0xe0, 0xa6, 0xaa, 0x64, 0x80, - 0x53, 0x5e, 0xe8, 0x12, 0x40, 0x22, 0x63, 0x40, 0x62, 0x71, 0xcd, 0x55, 0x69, 0x94, 0x2a, 0x3a, - 0x24, 0xc6, 0x1a, 0x15, 0x7a, 0x0a, 0x2a, 0x89, 0xe3, 0xf9, 0xd7, 0xbc, 0x80, 0xc4, 0x22, 0x86, - 0x46, 0xe4, 0x60, 0x16, 0x40, 0x9c, 0xe2, 0xe9, 0x8e, 0xce, 0x2e, 0x51, 0xf3, 0x37, 0x50, 0x46, - 0x18, 0x35, 0xdb, 0xd1, 0xaf, 0x29, 0x28, 0xd6, 0x28, 0xec, 0x17, 0xe1, 0x4c, 0x3d, 0x74, 0xeb, - 0x61, 0x94, 0xac, 0x84, 0xd1, 0x1d, 0x27, 0x72, 0xe5, 0xf8, 0xcd, 0xca, 0x74, 0xc0, 0x74, 0xd7, - 0x1d, 0xe4, 0x76, 0xbd, 0x91, 0xe8, 0xf7, 0x39, 0xb6, 0xa7, 0x1f, 0xf1, 0xc2, 0xc3, 0xbf, 0x2e, - 0x01, 0xaa, 0xb3, 0x28, 0x15, 0xe3, 0xa1, 0x9c, 0xb7, 0x61, 0x22, 0x26, 0xd7, 0xbc, 0xa0, 0x7d, - 0x57, 0xb0, 0xea, 0x76, 0x9b, 0xa4, 0xb1, 0xac, 0x53, 0x72, 0xdf, 0x88, 0x09, 0xc3, 0x19, 0x6e, - 0xb4, 0x0b, 0xa3, 0x76, 0xb0, 0x10, 0xdf, 0x8a, 0x49, 0x24, 0x1e, 0x86, 0x61, 0x5d, 0x88, 0x25, - 0x10, 0xa7, 0x78, 0x3a, 0x65, 0xd8, 0x9f, 0x1b, 0x61, 0x80, 0xc3, 0x30, 0x91, 0x93, 0x8c, 0x3d, - 0x2d, 0xa0, 0xc1, 0xb1, 0x41, 0x85, 0x56, 0x00, 0xc5, 0xed, 0x56, 0xcb, 0x67, 0x87, 0x7a, 0x8e, - 0x7f, 0x39, 0x0a, 0xdb, 0x2d, 0x1e, 0x66, 0x2c, 0xb2, 0xf2, 0x37, 0x3a, 0xb0, 0x38, 0xa7, 0x04, - 0x15, 0x0c, 0x1b, 0x31, 0xfb, 0x2d, 0xee, 0x51, 0x73, 0xdf, 0x64, 0x83, 0x81, 0xb0, 0xc4, 0xd9, - 0x5f, 0x60, 0x9b, 0x19, 0x7b, 0xcf, 0x23, 0x69, 0x47, 0x04, 0xed, 0xc0, 0x78, 0x8b, 0x6d, 0x58, - 0x49, 0x14, 0xfa, 0x3e, 0x91, 0x7a, 0xe3, 0xbd, 0x45, 0xcc, 0xf0, 0xfc, 0xfe, 0x3a, 0x3b, 0x6c, - 0x72, 0xb7, 0xbf, 0x34, 0xc9, 0xe4, 0x52, 0x83, 0x1b, 0x2d, 0xc3, 0x22, 0x0e, 0x56, 0x68, 0x68, - 0x33, 0xc5, 0xef, 0x67, 0xa5, 0x92, 0x5e, 0xc4, 0xd2, 0x62, 0x59, 0x16, 0xbd, 0xc6, 0xe2, 0xb3, - 0xb9, 0x30, 0xe8, 0xf5, 0x72, 0x1f, 0xa7, 0x32, 0x62, 0xb3, 0x45, 0x41, 0xac, 0x31, 0x41, 0xd7, - 0x60, 0x5c, 0x3c, 0xff, 0x20, 0x5c, 0x08, 0x65, 0xc3, 0xfc, 0x1d, 0xc7, 0x3a, 0xf2, 0x30, 0x0b, - 0xc0, 0x66, 0x61, 0xb4, 0x09, 0x0f, 0x6b, 0x8f, 0x15, 0xe5, 0x44, 0x6d, 0x71, 0xd9, 0xf2, 0xc8, - 0xc1, 0xfe, 0xec, 0xc3, 0x6b, 0xdd, 0x08, 0x71, 0x77, 0x3e, 0xe8, 0x26, 0x9c, 0x71, 0x9a, 0x89, - 0xb7, 0x4b, 0x6a, 0xc4, 0x71, 0x7d, 0x2f, 0x20, 0xe6, 0xc5, 0xfa, 0x73, 0x07, 0xfb, 0xb3, 0x67, - 0x16, 0xf2, 0x08, 0x70, 0x7e, 0x39, 0xf4, 0x32, 0x54, 0xdc, 0x20, 0x16, 0x7d, 0x30, 0x64, 0xbc, - 0xc3, 0x55, 0xa9, 0xdd, 0x68, 0xa8, 0xef, 0x4f, 0xff, 0xe0, 0xb4, 0x00, 0xda, 0xe4, 0xef, 0xb5, - 0x2b, 0x8b, 0x64, 0xb8, 0x23, 0x5b, 0x42, 0xd6, 0xb6, 0x35, 0x6e, 0x9c, 0x70, 0xff, 0x99, 0x8a, - 0x89, 0x34, 0x2e, 0xa3, 0x18, 0x8c, 0xd1, 0xab, 0x80, 0x62, 0x12, 0xed, 0x7a, 0x4d, 0xb2, 0xd0, - 0x64, 0x09, 0x55, 0x99, 0xd7, 0x65, 0xc4, 0x08, 0xf0, 0x47, 0x8d, 0x0e, 0x0a, 0x9c, 0x53, 0x0a, - 0x5d, 0xa1, 0x12, 0x45, 0x87, 0x8a, 0x10, 0x56, 0xa9, 0xe6, 0x55, 0x6b, 0xa4, 0x15, 0x91, 0xa6, - 0x93, 0x10, 0xd7, 0xe4, 0x88, 0x33, 0xe5, 0xe8, 0x7e, 0xa3, 0xf2, 0xd4, 0x83, 0x19, 0x78, 0xd9, - 0x99, 0xab, 0x9e, 0x5a, 0x48, 0x5b, 0x61, 0x9c, 0xdc, 0x20, 0xc9, 0x9d, 0x30, 0xda, 0x16, 0x49, - 0xad, 0xd2, 0x2c, 0x76, 0x29, 0x0a, 0xeb, 0x74, 0x54, 0x23, 0x62, 0x47, 0x57, 0xab, 0x35, 0x76, - 0xce, 0x30, 0x92, 0xae, 0x93, 0x2b, 0x1c, 0x8c, 0x25, 0x5e, 0x92, 0xae, 0xd6, 0x97, 0xd8, 0xe9, - 0x41, 0x86, 0x74, 0xb5, 0xbe, 0x84, 0x25, 0x1e, 0x91, 0xce, 0x37, 0xce, 0x26, 0x8a, 0x4f, 0x68, - 0x3a, 0xe5, 0x72, 0x9f, 0xcf, 0x9c, 0x05, 0x30, 0xa5, 0x5e, 0x57, 0xe3, 0xd9, 0xbe, 0xe2, 0xea, - 0x64, 0xf1, 0xc3, 0xf1, 0xb9, 0xa9, 0xc2, 0x94, 0x57, 0x6d, 0x35, 0xc3, 0x09, 0x77, 0xf0, 0x36, - 0x12, 0x36, 0x4c, 0xf5, 0x7c, 0x67, 0x60, 0x1e, 0x2a, 0x71, 0x7b, 0xdd, 0x0d, 0x77, 0x1c, 0x2f, - 0x60, 0x6e, 0x7f, 0xfd, 0x4d, 0x73, 0x89, 0xc0, 0x29, 0x0d, 0x5a, 0x81, 0x11, 0x47, 0x3e, 0xf6, - 0x8f, 0x8a, 0x6f, 0x70, 0xab, 0x57, 0xfe, 0x99, 0x47, 0x53, 0x3d, 0xef, 0xaf, 0xca, 0xa2, 0x97, - 0x60, 0x5c, 0x5c, 0x32, 0x12, 0xf1, 0x81, 0xa7, 0xcc, 0x78, 0xf4, 0x86, 0x8e, 0xc4, 0x26, 0x2d, - 0xfa, 0x19, 0x98, 0xa0, 0x5c, 0x52, 0xc1, 0x56, 0x3d, 0xdd, 0x8f, 0x44, 0xd4, 0xf2, 0x47, 0xeb, - 0x85, 0x71, 0x86, 0x19, 0x72, 0xe1, 0x21, 0xa7, 0x9d, 0x84, 0x3b, 0x74, 0x86, 0x9b, 0xf3, 0x7f, - 0x2d, 0xdc, 0x26, 0x01, 0xf3, 0xd3, 0x8f, 0x2c, 0x5e, 0x38, 0xd8, 0x9f, 0x7d, 0x68, 0xa1, 0x0b, - 0x1d, 0xee, 0xca, 0x05, 0xdd, 0x82, 0xd1, 0x24, 0xf4, 0x45, 0x60, 0x6f, 0x5c, 0x3d, 0x5b, 0x9c, - 0x70, 0x66, 0x4d, 0x91, 0xe9, 0xee, 0x04, 0x55, 0x14, 0xeb, 0x7c, 0xd0, 0x1a, 0x5f, 0x63, 0x2c, - 0x6f, 0x21, 0x89, 0xab, 0x0f, 0x14, 0x77, 0x8c, 0x4a, 0x6f, 0x68, 0x2e, 0x41, 0x51, 0x12, 0xeb, - 0x6c, 0xd0, 0x65, 0x98, 0x6e, 0x45, 0x5e, 0xc8, 0x26, 0xb6, 0x72, 0xf9, 0x56, 0x8d, 0x54, 0x64, - 0xd3, 0xf5, 0x2c, 0x01, 0xee, 0x2c, 0x83, 0x2e, 0x52, 0x05, 0x95, 0x03, 0xab, 0xe7, 0xf8, 0xfb, - 0x13, 0x5c, 0x39, 0xe5, 0x30, 0xac, 0xb0, 0x33, 0x9f, 0x81, 0xe9, 0x0e, 0x49, 0x79, 0xa4, 0x20, - 0xcb, 0xdf, 0x18, 0x84, 0x8a, 0x72, 0x07, 0xa2, 0x79, 0xd3, 0xcb, 0x7b, 0x2e, 0xeb, 0xe5, 0x1d, - 0xa1, 0xfa, 0x9a, 0xee, 0xd8, 0x5d, 0xcb, 0x79, 0x42, 0xfb, 0x42, 0x81, 0x68, 0xe8, 0xff, 0x46, - 0xd4, 0x11, 0x9e, 0x17, 0x4f, 0x0d, 0xc6, 0x81, 0xae, 0x06, 0x63, 0x9f, 0xcf, 0xd9, 0x51, 0xd3, - 0xb0, 0x15, 0xba, 0xab, 0xf5, 0xec, 0xfb, 0x4e, 0x75, 0x0a, 0xc4, 0x1c, 0xc7, 0x94, 0x7b, 0xba, - 0xad, 0x33, 0xe5, 0x7e, 0xf8, 0x1e, 0x95, 0x7b, 0xc9, 0x00, 0xa7, 0xbc, 0x90, 0x0f, 0xd3, 0x4d, - 0xf3, 0x69, 0x2e, 0x75, 0x0b, 0xea, 0xd1, 0x9e, 0x8f, 0x64, 0xb5, 0xb5, 0xf7, 0x3a, 0x96, 0xb2, - 0x5c, 0x70, 0x27, 0x63, 0xf4, 0x12, 0x8c, 0xbc, 0x1b, 0xc6, 0x6c, 0xda, 0x89, 0xbd, 0x4d, 0xde, - 0x3b, 0x19, 0x79, 0xed, 0x66, 0x83, 0xc1, 0x0f, 0xf7, 0x67, 0x47, 0xeb, 0xa1, 0x2b, 0xff, 0x62, - 0x55, 0x00, 0xdd, 0x85, 0x33, 0x86, 0x44, 0x50, 0xcd, 0x85, 0xfe, 0x9b, 0xfb, 0xb0, 0xa8, 0xee, - 0xcc, 0x6a, 0x1e, 0x27, 0x9c, 0x5f, 0x81, 0xfd, 0x2d, 0xee, 0xf4, 0x14, 0xae, 0x11, 0x12, 0xb7, - 0xfd, 0x93, 0x48, 0xca, 0xbf, 0x6c, 0x78, 0x6d, 0xee, 0xd9, 0xb1, 0xfe, 0x07, 0x16, 0x73, 0xac, - 0xaf, 0x91, 0x9d, 0x96, 0xef, 0x24, 0x27, 0x11, 0x5a, 0xfb, 0x1a, 0x8c, 0x24, 0xa2, 0xb6, 0x6e, - 0xef, 0x08, 0x68, 0x8d, 0x62, 0x87, 0x0b, 0x6a, 0x43, 0x94, 0x50, 0xac, 0xd8, 0xd8, 0xff, 0x98, - 0x8f, 0x80, 0xc4, 0x9c, 0x80, 0x6f, 0xa1, 0x66, 0xfa, 0x16, 0x66, 0x7b, 0x7c, 0x41, 0x81, 0x8f, - 0xe1, 0x1f, 0x99, 0xed, 0x66, 0xb6, 0xc7, 0x87, 0xfd, 0x44, 0xc7, 0xfe, 0x15, 0x0b, 0x4e, 0xe7, - 0x1d, 0xe9, 0x53, 0x25, 0x86, 0x5b, 0x3e, 0xea, 0x84, 0x4b, 0xf5, 0xe0, 0x6d, 0x01, 0xc7, 0x8a, - 0xa2, 0xef, 0x64, 0xdf, 0x47, 0x4b, 0xb2, 0x74, 0x13, 0xcc, 0x57, 0xdc, 0xd0, 0x2b, 0x3c, 0x56, - 0xde, 0x52, 0xcf, 0xac, 0x1d, 0x2d, 0x4e, 0xde, 0xfe, 0x46, 0x09, 0x4e, 0x73, 0x17, 0xf5, 0xc2, - 0x6e, 0xe8, 0xb9, 0xf5, 0xd0, 0x15, 0x37, 0x07, 0xde, 0x84, 0xb1, 0x96, 0x66, 0xae, 0x76, 0x4b, - 0xf3, 0xa2, 0x9b, 0xb5, 0xa9, 0xd9, 0xa0, 0x43, 0xb1, 0xc1, 0x0b, 0xb9, 0x30, 0x46, 0x76, 0xbd, - 0xa6, 0xf2, 0x73, 0x96, 0x8e, 0x2c, 0xd2, 0x55, 0x2d, 0xcb, 0x1a, 0x1f, 0x6c, 0x70, 0xbd, 0x0f, - 0x2f, 0x6e, 0xd8, 0x5f, 0xb5, 0xe0, 0x81, 0x82, 0xa4, 0x30, 0xb4, 0xba, 0x3b, 0xec, 0x30, 0x40, - 0x3c, 0x09, 0xa8, 0xaa, 0xe3, 0x47, 0x04, 0x58, 0x60, 0xd1, 0x4f, 0x03, 0x70, 0x17, 0x3f, 0x7b, - 0x80, 0xbd, 0xd4, 0xfd, 0xd6, 0xb9, 0x91, 0x2c, 0x41, 0xbb, 0x51, 0xaf, 0x9e, 0x5c, 0xd7, 0x78, - 0xd9, 0xbf, 0x56, 0x86, 0x41, 0xfe, 0x3e, 0xf4, 0x0a, 0x0c, 0x6f, 0xf1, 0x14, 0xb4, 0xfd, 0x64, - 0xbb, 0x4d, 0xcd, 0x11, 0x0e, 0xc0, 0xb2, 0x30, 0xba, 0x0e, 0xa7, 0xc4, 0xed, 0x94, 0x1a, 0xf1, - 0x9d, 0x3d, 0x69, 0xd5, 0xf2, 0x67, 0x18, 0x64, 0x0e, 0xf1, 0x53, 0xab, 0x9d, 0x24, 0x38, 0xaf, - 0x1c, 0x7a, 0xa5, 0x23, 0xf1, 0x1c, 0x4f, 0xde, 0xab, 0x74, 0xe0, 0x1e, 0xc9, 0xe7, 0x5e, 0x82, - 0xf1, 0x56, 0x87, 0xfd, 0xae, 0x3d, 0xcd, 0x6b, 0xda, 0xec, 0x26, 0x2d, 0x8b, 0x0f, 0x68, 0xb3, - 0x68, 0x88, 0xb5, 0xad, 0x88, 0xc4, 0x5b, 0xa1, 0xef, 0x8a, 0x77, 0x28, 0xd3, 0xf8, 0x80, 0x0c, - 0x1e, 0x77, 0x94, 0xa0, 0x5c, 0x36, 0x1c, 0xcf, 0x6f, 0x47, 0x24, 0xe5, 0x32, 0x64, 0x72, 0x59, - 0xc9, 0xe0, 0x71, 0x47, 0x09, 0x3a, 0x8f, 0xce, 0x88, 0x47, 0x0c, 0xe5, 0x9d, 0x65, 0x15, 0xf4, - 0x31, 0x2c, 0xa3, 0xd2, 0xbb, 0xe4, 0xd1, 0x10, 0x47, 0xfe, 0xea, 0x19, 0x44, 0xed, 0x79, 0x2c, - 0x11, 0x8f, 0x2e, 0xb9, 0xdc, 0xcb, 0x53, 0x7a, 0x7f, 0x6a, 0xc1, 0xa9, 0x9c, 0x40, 0x30, 0x2e, - 0xaa, 0x36, 0xbd, 0x38, 0x51, 0xcf, 0x03, 0x68, 0xa2, 0x8a, 0xc3, 0xb1, 0xa2, 0xa0, 0xeb, 0x81, - 0x0b, 0xc3, 0xac, 0x00, 0x14, 0xc1, 0x1b, 0x02, 0x7b, 0x34, 0x01, 0x88, 0x2e, 0xc0, 0x40, 0x3b, - 0x26, 0x91, 0x7c, 0x7f, 0x4e, 0xca, 0x6f, 0xe6, 0x11, 0x64, 0x18, 0xaa, 0x51, 0x6e, 0x2a, 0x67, - 0x9c, 0xa6, 0x51, 0x72, 0x77, 0x1c, 0xc7, 0xd9, 0x5f, 0x29, 0xc3, 0x64, 0x26, 0x6c, 0x93, 0x36, - 0x64, 0x27, 0x0c, 0xbc, 0x24, 0x54, 0x79, 0xcf, 0x78, 0x9a, 0x07, 0xd2, 0xda, 0xba, 0x2e, 0xe0, - 0x58, 0x51, 0xa0, 0xc7, 0xe4, 0xc3, 0xa4, 0xd9, 0x67, 0x0f, 0x16, 0x6b, 0xc6, 0xdb, 0xa4, 0xfd, - 0x3e, 0x4f, 0xf2, 0x28, 0x0c, 0xb4, 0x42, 0xf5, 0x6a, 0xb4, 0x1a, 0x4f, 0xbc, 0x58, 0xab, 0x87, - 0xa1, 0x8f, 0x19, 0x12, 0x7d, 0x4c, 0x7c, 0x7d, 0xe6, 0xbc, 0x02, 0x3b, 0x6e, 0x18, 0x6b, 0x5d, - 0xf0, 0x04, 0x0c, 0x6f, 0x93, 0xbd, 0xc8, 0x0b, 0x36, 0xb3, 0xa7, 0x35, 0x57, 0x39, 0x18, 0x4b, - 0xbc, 0x99, 0x2d, 0x7c, 0xf8, 0xbe, 0x3c, 0x41, 0x32, 0xd2, 0x73, 0x57, 0xfb, 0x6d, 0x0b, 0x26, - 0x59, 0x8e, 0x51, 0x71, 0x3b, 0xde, 0x0b, 0x83, 0x13, 0xd0, 0x13, 0x1e, 0x85, 0xc1, 0x88, 0x56, - 0x9a, 0x7d, 0x57, 0x80, 0xb5, 0x04, 0x73, 0x1c, 0x7a, 0x08, 0x06, 0x58, 0x13, 0xe8, 0xe0, 0x8d, - 0xf1, 0x2c, 0xe3, 0x35, 0x27, 0x71, 0x30, 0x83, 0xb2, 0x6b, 0x4a, 0x98, 0xb4, 0x7c, 0x8f, 0x37, - 0x3a, 0x75, 0xb7, 0x7e, 0x38, 0xae, 0x29, 0xe5, 0x36, 0xed, 0xfd, 0x5d, 0x53, 0xca, 0x67, 0xd9, - 0x5d, 0x07, 0xff, 0xaf, 0x25, 0x38, 0x9f, 0x5b, 0x2e, 0x3d, 0xd9, 0x5d, 0x31, 0x4e, 0x76, 0x2f, - 0x65, 0x4e, 0x76, 0xed, 0xee, 0xa5, 0x8f, 0xe7, 0xac, 0x37, 0xff, 0x08, 0xb6, 0x7c, 0x82, 0x47, - 0xb0, 0x03, 0xfd, 0xaa, 0x29, 0x83, 0x3d, 0xd4, 0x94, 0xef, 0x5a, 0x70, 0x2e, 0xb7, 0xcb, 0x3e, - 0x24, 0xf7, 0xc2, 0x72, 0xdb, 0x56, 0x60, 0x43, 0xfc, 0xa8, 0x54, 0xf0, 0x2d, 0xcc, 0x9a, 0xb8, - 0x48, 0xe5, 0x0c, 0x43, 0xc6, 0x42, 0xed, 0x1a, 0xe3, 0x32, 0x86, 0xc3, 0xb0, 0xc2, 0x22, 0x4f, - 0xbb, 0x61, 0xc5, 0x9b, 0xf6, 0xd2, 0x91, 0x96, 0xcc, 0x9c, 0xe9, 0x1d, 0xd7, 0xaf, 0xf2, 0x67, - 0x6f, 0x5b, 0x5d, 0xd7, 0x2c, 0xc0, 0x72, 0xff, 0x16, 0xe0, 0x58, 0xbe, 0xf5, 0x87, 0x16, 0x60, - 0x72, 0xc7, 0x0b, 0xd8, 0xdb, 0x9f, 0xa6, 0xde, 0xa3, 0xae, 0xa5, 0x5e, 0x37, 0xd1, 0x38, 0x4b, - 0x3f, 0xf3, 0x12, 0x8c, 0xdf, 0xbb, 0xcb, 0xea, 0x7b, 0x65, 0x78, 0xb0, 0xcb, 0xb2, 0xe7, 0xb2, - 0xde, 0x18, 0x03, 0x4d, 0xd6, 0x77, 0x8c, 0x43, 0x1d, 0x4e, 0x6f, 0xb4, 0x7d, 0x7f, 0x8f, 0x45, - 0x39, 0x11, 0x57, 0x52, 0x08, 0xc5, 0x44, 0x25, 0x10, 0x5e, 0xc9, 0xa1, 0xc1, 0xb9, 0x25, 0xd1, - 0xab, 0x80, 0xc2, 0x75, 0x96, 0xd4, 0xd6, 0x4d, 0x13, 0x14, 0xb0, 0x8e, 0x2f, 0xa7, 0x8b, 0xf1, - 0x66, 0x07, 0x05, 0xce, 0x29, 0x45, 0x35, 0x4c, 0xf6, 0x62, 0xb9, 0x6a, 0x56, 0x46, 0xc3, 0xc4, - 0x3a, 0x12, 0x9b, 0xb4, 0xe8, 0x32, 0x4c, 0x3b, 0xbb, 0x8e, 0xc7, 0x13, 0x56, 0x49, 0x06, 0x5c, - 0xc5, 0x54, 0x8e, 0xa2, 0x85, 0x2c, 0x01, 0xee, 0x2c, 0x83, 0x36, 0x0c, 0x2f, 0x1f, 0xcf, 0x97, - 0x7f, 0xa9, 0xef, 0xd9, 0xda, 0xb7, 0xdf, 0xcf, 0xfe, 0x0f, 0x16, 0xdd, 0xbe, 0x72, 0x1e, 0x9b, - 0xa4, 0xfd, 0xa0, 0xfc, 0x57, 0xda, 0xed, 0x30, 0xd5, 0x0f, 0x4b, 0x3a, 0x12, 0x9b, 0xb4, 0x7c, - 0x42, 0xc4, 0x69, 0xb8, 0xb4, 0xa1, 0x27, 0x8a, 0xeb, 0x94, 0x8a, 0x02, 0xbd, 0x01, 0xc3, 0xae, - 0xb7, 0xeb, 0xc5, 0x61, 0x24, 0x16, 0xcb, 0x51, 0x1f, 0x59, 0x56, 0x72, 0xb0, 0xc6, 0xd9, 0x60, - 0xc9, 0xcf, 0xfe, 0x4a, 0x09, 0xc6, 0x65, 0x8d, 0xaf, 0xb5, 0xc3, 0xc4, 0x39, 0x81, 0x6d, 0xf9, - 0xb2, 0xb1, 0x2d, 0x7f, 0xac, 0xdb, 0x9d, 0x52, 0xd6, 0xa4, 0xc2, 0xed, 0xf8, 0x66, 0x66, 0x3b, - 0x7e, 0xbc, 0x37, 0xab, 0xee, 0xdb, 0xf0, 0xef, 0x59, 0x30, 0x6d, 0xd0, 0x9f, 0xc0, 0x6e, 0xb0, - 0x62, 0xee, 0x06, 0x8f, 0xf4, 0xfc, 0x86, 0x82, 0x5d, 0xe0, 0xeb, 0xa5, 0x4c, 0xdb, 0x99, 0xf4, - 0x7f, 0x17, 0x06, 0xb6, 0x9c, 0xc8, 0xed, 0x96, 0x76, 0xb1, 0xa3, 0xd0, 0xdc, 0x15, 0x27, 0x72, - 0xb9, 0x0c, 0x7f, 0x5a, 0x3d, 0x94, 0xe5, 0x44, 0x6e, 0xcf, 0xdb, 0x01, 0xac, 0x2a, 0xf4, 0x22, - 0x0c, 0xc5, 0xcd, 0xb0, 0xa5, 0x62, 0x2f, 0x2f, 0xf0, 0x47, 0xb4, 0x28, 0xe4, 0x70, 0x7f, 0x16, - 0x99, 0xd5, 0x51, 0x30, 0x16, 0xf4, 0x33, 0x9b, 0x50, 0x51, 0x55, 0xdf, 0xd7, 0xa8, 0xf2, 0x3f, - 0x2e, 0xc3, 0xa9, 0x9c, 0x79, 0x81, 0x62, 0xa3, 0xb7, 0x9e, 0xed, 0x73, 0x3a, 0xbd, 0xcf, 0xfe, - 0x8a, 0x99, 0xc5, 0xe2, 0x8a, 0xf1, 0xef, 0xbb, 0xd2, 0x5b, 0x31, 0xc9, 0x56, 0x4a, 0x41, 0xbd, - 0x2b, 0xa5, 0x95, 0x9d, 0x58, 0x57, 0xd3, 0x8a, 0x54, 0x4b, 0xef, 0xeb, 0x98, 0xfe, 0xcf, 0x32, - 0x9c, 0xce, 0xbb, 0x8a, 0x8e, 0x7e, 0x2e, 0xf3, 0x88, 0xc3, 0xf3, 0xfd, 0x5e, 0x62, 0xe7, 0x2f, - 0x3b, 0x88, 0x0c, 0x2f, 0x73, 0xe6, 0xb3, 0x0e, 0x3d, 0xbb, 0x59, 0xd4, 0xc9, 0xae, 0xeb, 0x44, - 0xfc, 0xf1, 0x0d, 0xb9, 0xc4, 0x3f, 0xde, 0x77, 0x03, 0xc4, 0xab, 0x1d, 0x71, 0xe6, 0xba, 0x8e, - 0x04, 0xf7, 0xbe, 0xae, 0x23, 0x6b, 0x9e, 0xf1, 0x60, 0x54, 0xfb, 0x9a, 0xfb, 0x3a, 0xe2, 0xdb, - 0x74, 0x47, 0xd1, 0xda, 0x7d, 0x5f, 0x47, 0xfd, 0xab, 0x16, 0x64, 0xe2, 0xa4, 0x94, 0xff, 0xc3, - 0x2a, 0xf4, 0x7f, 0x5c, 0x80, 0x81, 0x28, 0xf4, 0x49, 0x36, 0xaf, 0x3f, 0x0e, 0x7d, 0x82, 0x19, - 0x46, 0x3d, 0x7a, 0x5b, 0x2e, 0x7a, 0xf4, 0x96, 0x9a, 0xc6, 0x3e, 0xd9, 0x25, 0xd2, 0x1b, 0xa1, - 0x64, 0xf2, 0x35, 0x0a, 0xc4, 0x1c, 0x67, 0xff, 0xe6, 0x00, 0x9c, 0xca, 0xb9, 0x9c, 0x46, 0x0d, - 0x95, 0x4d, 0x27, 0x21, 0x77, 0x9c, 0xbd, 0x6c, 0xae, 0xd1, 0xcb, 0x1c, 0x8c, 0x25, 0x9e, 0xc5, - 0x72, 0xf2, 0x74, 0x65, 0x19, 0x1f, 0x91, 0xc8, 0x52, 0x26, 0xb0, 0xf7, 0xeb, 0xa1, 0xd4, 0x4b, - 0x00, 0x71, 0xec, 0x2f, 0x07, 0x54, 0xf9, 0x72, 0x45, 0xa4, 0x68, 0x9a, 0xdb, 0xae, 0x71, 0x4d, - 0x60, 0xb0, 0x46, 0x85, 0x6a, 0x30, 0xd5, 0x8a, 0xc2, 0x84, 0xfb, 0xdd, 0x6a, 0x3c, 0x46, 0x61, - 0xd0, 0xbc, 0x66, 0x54, 0xcf, 0xe0, 0x71, 0x47, 0x09, 0xf4, 0x02, 0x8c, 0x8a, 0xab, 0x47, 0xf5, - 0x30, 0xf4, 0x85, 0x97, 0x46, 0x9d, 0x78, 0x37, 0x52, 0x14, 0xd6, 0xe9, 0xb4, 0x62, 0xcc, 0x99, - 0x37, 0x9c, 0x5b, 0x8c, 0x3b, 0xf4, 0x34, 0xba, 0x4c, 0x46, 0x8a, 0x91, 0xbe, 0x32, 0x52, 0xa4, - 0x7e, 0xab, 0x4a, 0xdf, 0xe7, 0x17, 0xd0, 0xd3, 0xd3, 0xf3, 0xad, 0x32, 0x0c, 0xf1, 0xa1, 0x38, - 0x01, 0x55, 0x6c, 0x45, 0xf8, 0x6e, 0xba, 0xe4, 0x01, 0xe0, 0x6d, 0x99, 0xab, 0x39, 0x89, 0xc3, - 0xc5, 0x90, 0x5a, 0x0d, 0xa9, 0x97, 0x07, 0xcd, 0x19, 0xeb, 0x65, 0x26, 0xe3, 0x9c, 0x00, 0xce, - 0x43, 0x5b, 0x3d, 0x6f, 0x03, 0xc4, 0xec, 0xb1, 0x4e, 0xca, 0x43, 0xe4, 0x2d, 0x7d, 0xb2, 0x4b, - 0xed, 0x0d, 0x45, 0xcc, 0xdb, 0x90, 0x4e, 0x41, 0x85, 0xc0, 0x1a, 0xc7, 0x99, 0x4f, 0x40, 0x45, - 0x11, 0xf7, 0xb2, 0xe4, 0xc6, 0x74, 0xe1, 0xf5, 0x69, 0x98, 0xcc, 0xd4, 0x75, 0x24, 0x43, 0xf0, - 0x77, 0x2c, 0x98, 0xcc, 0xbc, 0xfc, 0x8f, 0xde, 0x83, 0xd3, 0x7e, 0xce, 0xa2, 0x13, 0x23, 0xda, - 0xff, 0x22, 0x55, 0x86, 0x5f, 0x1e, 0x16, 0xe7, 0xd6, 0x41, 0x8d, 0x7f, 0xfe, 0xcc, 0xb0, 0xe3, - 0x8b, 0x08, 0xe4, 0x31, 0x9e, 0xcf, 0x99, 0xc3, 0xb0, 0xc2, 0xda, 0xdf, 0xb7, 0x60, 0xba, 0xe3, - 0x0d, 0xfa, 0x0f, 0xb4, 0xed, 0x22, 0x5d, 0x75, 0xa9, 0x20, 0x5d, 0xb5, 0xfe, 0x69, 0xe5, 0xae, - 0x9f, 0xf6, 0x0d, 0x0b, 0xc4, 0x0c, 0x3c, 0x01, 0x75, 0xfe, 0x33, 0xa6, 0x3a, 0x3f, 0x53, 0x3c, - 0xa9, 0x0b, 0xf4, 0xf8, 0x3f, 0xb7, 0x60, 0x8a, 0x13, 0xa4, 0x87, 0x17, 0x1f, 0xe8, 0x38, 0xf4, - 0xf3, 0x86, 0x8a, 0x7a, 0xb4, 0x32, 0xff, 0xa3, 0x8c, 0xc1, 0x1a, 0xe8, 0x3a, 0x58, 0xff, 0xd9, - 0x02, 0xc4, 0x3f, 0x3f, 0xfb, 0xf2, 0x32, 0xdf, 0x94, 0x34, 0x53, 0x3b, 0x15, 0x02, 0x0a, 0x83, - 0x35, 0xaa, 0x63, 0x69, 0x78, 0xe6, 0x6c, 0xa8, 0xdc, 0xfb, 0x6c, 0xe8, 0x08, 0xdf, 0xfa, 0x57, - 0x06, 0x20, 0x1b, 0x88, 0x88, 0x6e, 0xc3, 0x58, 0xd3, 0x69, 0x39, 0xeb, 0x9e, 0xef, 0x25, 0x1e, - 0x89, 0xbb, 0x1d, 0x2a, 0x2f, 0x69, 0x74, 0xe2, 0x20, 0x46, 0x83, 0x60, 0x83, 0x0f, 0x9a, 0x03, - 0x68, 0x45, 0xde, 0xae, 0xe7, 0x93, 0x4d, 0x66, 0x6b, 0xb0, 0xdb, 0x08, 0xfc, 0xa4, 0x54, 0x42, - 0xb1, 0x46, 0x91, 0x13, 0xbd, 0x5e, 0xbe, 0x7f, 0xd1, 0xeb, 0x03, 0x47, 0x8c, 0x5e, 0x1f, 0xec, - 0x2b, 0x7a, 0x1d, 0xc3, 0x59, 0xb9, 0xab, 0xd2, 0xff, 0x2b, 0x9e, 0x4f, 0x84, 0x2a, 0xc5, 0xef, - 0x28, 0xcc, 0x1c, 0xec, 0xcf, 0x9e, 0xc5, 0xb9, 0x14, 0xb8, 0xa0, 0x24, 0xfa, 0x69, 0xa8, 0x3a, - 0xbe, 0x1f, 0xde, 0x51, 0xbd, 0xb6, 0x1c, 0x37, 0x1d, 0x3f, 0x4d, 0x05, 0x3a, 0xb2, 0xf8, 0xd0, - 0xc1, 0xfe, 0x6c, 0x75, 0xa1, 0x80, 0x06, 0x17, 0x96, 0xb6, 0xb7, 0xe1, 0x54, 0x83, 0x44, 0xf2, - 0x21, 0x30, 0xb5, 0xfa, 0xd6, 0xa0, 0x12, 0x65, 0x96, 0x7b, 0x5f, 0x57, 0xd2, 0xb5, 0x04, 0x5c, - 0x72, 0x79, 0xa7, 0x8c, 0xec, 0x3f, 0xb3, 0x60, 0x58, 0x04, 0x37, 0x9e, 0x80, 0x96, 0xb1, 0x60, - 0x38, 0x7c, 0x66, 0xf3, 0x45, 0x22, 0x6b, 0x4c, 0xa1, 0xab, 0x67, 0x35, 0xe3, 0xea, 0x79, 0xa4, - 0x1b, 0x93, 0xee, 0x4e, 0x9e, 0x5f, 0x2e, 0xc3, 0x84, 0x19, 0xd8, 0x79, 0x02, 0x5d, 0x70, 0x03, - 0x86, 0x63, 0x11, 0x45, 0x5c, 0x2a, 0x8e, 0x46, 0xcb, 0x0e, 0x62, 0x7a, 0x66, 0x2d, 0xe2, 0x86, - 0x25, 0x93, 0xdc, 0xf0, 0xe4, 0xf2, 0x7d, 0x0c, 0x4f, 0xee, 0x15, 0x5b, 0x3b, 0x70, 0x1c, 0xb1, - 0xb5, 0xf6, 0xb7, 0x99, 0xf0, 0xd7, 0xe1, 0x27, 0xb0, 0x63, 0x5f, 0x36, 0xb7, 0x09, 0xbb, 0xcb, - 0xcc, 0x12, 0x8d, 0x2a, 0xd8, 0xb9, 0xff, 0x81, 0x05, 0xa3, 0x82, 0xf0, 0x04, 0x9a, 0xfd, 0x59, - 0xb3, 0xd9, 0x0f, 0x76, 0x69, 0x76, 0x41, 0x7b, 0xff, 0x66, 0x49, 0xb5, 0xb7, 0x2e, 0xde, 0xc8, - 0xef, 0x99, 0x1a, 0x7a, 0x84, 0xda, 0x69, 0x61, 0x33, 0xf4, 0x85, 0x5e, 0xf6, 0x50, 0x7a, 0x4d, - 0x8d, 0xc3, 0x0f, 0xb5, 0xdf, 0x58, 0x51, 0xb3, 0x5b, 0x54, 0x61, 0x94, 0x88, 0x0d, 0x34, 0xef, - 0x85, 0x7e, 0x17, 0x20, 0x7d, 0xe8, 0x5c, 0xdc, 0xeb, 0x3c, 0xfa, 0xdb, 0xff, 0xe9, 0xbd, 0x33, - 0xc5, 0x0b, 0x6b, 0x7c, 0xe5, 0xc5, 0x07, 0x56, 0xc7, 0xa0, 0x79, 0x12, 0x73, 0x43, 0xc0, 0xb1, - 0xa2, 0xb0, 0x3f, 0xc1, 0x64, 0x32, 0xeb, 0xa0, 0xa3, 0x5d, 0x09, 0xfb, 0xb7, 0xc3, 0xaa, 0x6b, - 0x99, 0x1b, 0xb6, 0xa6, 0x5f, 0x3c, 0xeb, 0x2e, 0x02, 0x69, 0xc5, 0x7a, 0x90, 0x6f, 0x7a, 0x3b, - 0x0d, 0x7d, 0xae, 0xe3, 0x80, 0xee, 0x99, 0x1e, 0xb2, 0xf4, 0x08, 0x47, 0x72, 0x2c, 0xd3, 0x1d, - 0xcb, 0x08, 0xb6, 0x5a, 0xcf, 0x26, 0xef, 0x5e, 0x92, 0x08, 0x9c, 0xd2, 0xa0, 0x79, 0x61, 0xf3, - 0x71, 0x07, 0xc8, 0x83, 0x19, 0x9b, 0x4f, 0x7e, 0xbe, 0x66, 0xf4, 0x3d, 0x0b, 0xa3, 0xea, 0x41, - 0x94, 0x3a, 0x7f, 0x57, 0xa2, 0xc2, 0x75, 0xa9, 0xe5, 0x14, 0x8c, 0x75, 0x1a, 0xb4, 0x06, 0x93, - 0x31, 0x7f, 0xad, 0x45, 0xde, 0x45, 0x10, 0x16, 0xfd, 0x93, 0x99, 0x27, 0xd5, 0x25, 0xfa, 0x90, - 0x81, 0xf8, 0x62, 0x95, 0xb7, 0x17, 0xb2, 0x2c, 0xd0, 0x2b, 0x30, 0xe1, 0xeb, 0xaf, 0x56, 0xd6, - 0x85, 0xc1, 0xaf, 0x82, 0xac, 0x8c, 0x37, 0x2d, 0xeb, 0x38, 0x43, 0x4d, 0x95, 0x00, 0x1d, 0x22, - 0x92, 0xd4, 0x38, 0xc1, 0x26, 0x89, 0xc5, 0x73, 0x0e, 0x4c, 0x09, 0xb8, 0x56, 0x40, 0x83, 0x0b, - 0x4b, 0xa3, 0x17, 0x61, 0x4c, 0x7e, 0xbe, 0x76, 0x37, 0x27, 0x0d, 0xe5, 0xd3, 0x70, 0xd8, 0xa0, - 0x44, 0x77, 0xe0, 0x8c, 0xfc, 0xbf, 0x16, 0x39, 0x1b, 0x1b, 0x5e, 0x53, 0x5c, 0x8d, 0x1a, 0x65, - 0x2c, 0x16, 0x64, 0x5c, 0xf3, 0x72, 0x1e, 0xd1, 0xe1, 0xfe, 0xec, 0x05, 0xd1, 0x6b, 0xb9, 0x78, - 0x36, 0x88, 0xf9, 0xfc, 0xd1, 0x75, 0x38, 0xb5, 0x45, 0x1c, 0x3f, 0xd9, 0x5a, 0xda, 0x22, 0xcd, - 0x6d, 0xb9, 0x88, 0xd8, 0x8d, 0x1f, 0x2d, 0x00, 0xee, 0x4a, 0x27, 0x09, 0xce, 0x2b, 0x87, 0xde, - 0x82, 0x6a, 0xab, 0xbd, 0xee, 0x7b, 0xf1, 0xd6, 0x8d, 0x30, 0x61, 0x67, 0x89, 0xea, 0x3d, 0x11, - 0x71, 0x35, 0x48, 0xdd, 0x76, 0xaa, 0x17, 0xd0, 0xe1, 0x42, 0x0e, 0xef, 0xef, 0x94, 0xf7, 0x5d, - 0x5a, 0x58, 0xd3, 0x30, 0xd0, 0xe7, 0x61, 0x4c, 0x1f, 0x49, 0x21, 0xe4, 0x1f, 0xeb, 0xf5, 0x4a, - 0xaa, 0xd0, 0x4f, 0xd4, 0xa8, 0xea, 0x38, 0x6c, 0x70, 0xb4, 0xff, 0x59, 0x09, 0x66, 0x7b, 0xe4, - 0x90, 0xca, 0xb8, 0xae, 0xac, 0xbe, 0x5c, 0x57, 0x0b, 0xf2, 0xe9, 0x90, 0x1b, 0x99, 0xc4, 0xd4, - 0x99, 0x67, 0x41, 0xd2, 0xf4, 0xd4, 0x59, 0xfa, 0xbe, 0xa3, 0xb6, 0x74, 0xef, 0xd7, 0x40, 0xcf, - 0xe0, 0xb5, 0xba, 0xee, 0xc6, 0x1c, 0xec, 0x5f, 0xdd, 0x2d, 0xf4, 0x60, 0xda, 0xdf, 0x2e, 0xc1, - 0x19, 0xd5, 0x85, 0x3f, 0xb9, 0x1d, 0x77, 0xab, 0xb3, 0xe3, 0x8e, 0xc1, 0xff, 0x6b, 0xdf, 0x84, - 0xa1, 0xc6, 0x5e, 0xdc, 0x4c, 0xfc, 0x3e, 0xb4, 0x83, 0x47, 0x8d, 0x95, 0x93, 0xee, 0x61, 0xec, - 0xf5, 0x2f, 0xb1, 0x90, 0xec, 0xbf, 0x68, 0xc1, 0xe4, 0xda, 0x52, 0xbd, 0x11, 0x36, 0xb7, 0x49, - 0xb2, 0xc0, 0xbd, 0x1b, 0x58, 0x28, 0x07, 0xd6, 0x3d, 0x6e, 0xfa, 0x79, 0xea, 0xc4, 0x05, 0x18, - 0xd8, 0x0a, 0xe3, 0x24, 0xeb, 0xe3, 0xbf, 0x12, 0xc6, 0x09, 0x66, 0x18, 0xfb, 0x4f, 0x2c, 0x18, - 0x64, 0x0f, 0x5e, 0xf5, 0x7a, 0x18, 0xad, 0x9f, 0xef, 0x42, 0x2f, 0xc0, 0x10, 0xd9, 0xd8, 0x20, - 0xcd, 0x44, 0x8c, 0xaa, 0xbc, 0x48, 0x32, 0xb4, 0xcc, 0xa0, 0x74, 0x47, 0x64, 0x95, 0xf1, 0xbf, - 0x58, 0x10, 0xa3, 0xcf, 0x41, 0x25, 0xf1, 0x76, 0xc8, 0x82, 0xeb, 0x0a, 0xf7, 0xfa, 0xd1, 0x22, - 0xa9, 0xd4, 0x0e, 0xbd, 0x26, 0x99, 0xe0, 0x94, 0x9f, 0xfd, 0x8b, 0x25, 0x80, 0xf4, 0xc2, 0x59, - 0xaf, 0xcf, 0x5c, 0xec, 0x78, 0xff, 0xed, 0xb1, 0x9c, 0xf7, 0xdf, 0x50, 0xca, 0x30, 0xe7, 0xf5, - 0x37, 0xd5, 0x55, 0xe5, 0xbe, 0xba, 0x6a, 0xe0, 0x28, 0x5d, 0xb5, 0x04, 0xd3, 0xe9, 0x85, 0x39, - 0xf3, 0xf6, 0x30, 0xcb, 0x0d, 0xbb, 0x96, 0x45, 0xe2, 0x4e, 0x7a, 0xfb, 0xcb, 0x16, 0x88, 0xe8, - 0xda, 0x3e, 0x26, 0xf4, 0x9b, 0xf2, 0xa9, 0x26, 0x23, 0xb1, 0xdd, 0x85, 0xe2, 0x70, 0x63, 0x91, - 0xce, 0x4e, 0x49, 0x76, 0x23, 0x89, 0x9d, 0xc1, 0xcb, 0xfe, 0x3d, 0x0b, 0x46, 0x39, 0xfa, 0x3a, - 0x33, 0x41, 0x7b, 0xb7, 0xe6, 0x48, 0x99, 0x85, 0xd9, 0x2b, 0x46, 0x94, 0xb1, 0x4a, 0x40, 0xab, - 0xbf, 0x62, 0x24, 0x11, 0x38, 0xa5, 0x41, 0x4f, 0xc0, 0x70, 0xdc, 0x5e, 0x67, 0xe4, 0x99, 0x00, - 0xdb, 0x06, 0x07, 0x63, 0x89, 0xa7, 0xf3, 0x6a, 0x2a, 0x1b, 0x5f, 0x8d, 0xae, 0xc0, 0x10, 0x17, - 0x1b, 0x62, 0x19, 0x77, 0x39, 0x4c, 0xd0, 0xa2, 0xb2, 0x81, 0x3f, 0xbb, 0xcd, 0xc4, 0x8d, 0x28, - 0x8f, 0xde, 0x82, 0x51, 0x37, 0xbc, 0x13, 0xdc, 0x71, 0x22, 0x77, 0xa1, 0xbe, 0x2a, 0x7a, 0x3d, - 0x37, 0x4a, 0xae, 0x96, 0x92, 0xe9, 0x91, 0xde, 0xcc, 0x3d, 0x97, 0xa2, 0xb0, 0xce, 0x0e, 0xad, - 0xb1, 0x1c, 0x1e, 0xfc, 0x31, 0xd0, 0x6e, 0x71, 0x23, 0xea, 0xfd, 0x50, 0x8d, 0xf3, 0xb8, 0x48, - 0xf4, 0x21, 0x9e, 0x12, 0x4d, 0x19, 0xd9, 0x5f, 0x3c, 0x05, 0xc6, 0x68, 0x1b, 0xf9, 0x7f, 0xad, - 0x63, 0xca, 0xff, 0x8b, 0x61, 0x84, 0xec, 0xb4, 0x92, 0xbd, 0x9a, 0x17, 0x75, 0x4b, 0xc8, 0xbe, - 0x2c, 0x68, 0x3a, 0x79, 0x4a, 0x0c, 0x56, 0x7c, 0xf2, 0x93, 0x34, 0x97, 0x3f, 0xc0, 0x24, 0xcd, - 0x03, 0x27, 0x98, 0xa4, 0xf9, 0x06, 0x0c, 0x6f, 0x7a, 0x09, 0x26, 0xad, 0x50, 0x6c, 0x99, 0xb9, - 0x33, 0xe1, 0x32, 0x27, 0xe9, 0x4c, 0x2f, 0x2a, 0x10, 0x58, 0x32, 0x41, 0xaf, 0xaa, 0x35, 0x30, - 0x54, 0xac, 0x0a, 0x76, 0x7a, 0xb7, 0x73, 0x57, 0x81, 0x48, 0xca, 0x3c, 0x7c, 0xaf, 0x49, 0x99, - 0x55, 0x52, 0xe5, 0x91, 0xf7, 0x97, 0x54, 0xd9, 0x48, 0x3a, 0x5d, 0x39, 0xbe, 0xa4, 0xd3, 0x5f, - 0xb6, 0xe0, 0x4c, 0x2b, 0x2f, 0xff, 0xba, 0x48, 0x94, 0xfc, 0x42, 0xdf, 0x79, 0xe8, 0x8d, 0x0a, - 0x59, 0x22, 0x89, 0x5c, 0x32, 0x9c, 0x5f, 0x9d, 0xcc, 0x5e, 0x3d, 0x7a, 0xaf, 0xd9, 0xab, 0xef, - 0x4f, 0x46, 0xe5, 0x34, 0x97, 0xf5, 0xf8, 0x31, 0xe6, 0xb2, 0x9e, 0x78, 0xdf, 0xb9, 0xac, 0xb5, - 0x7c, 0xd4, 0x93, 0xc7, 0x91, 0x8f, 0xfa, 0x6d, 0x53, 0xd8, 0xf3, 0x34, 0xc9, 0x4f, 0xf5, 0x10, - 0xf6, 0x06, 0xdf, 0xee, 0xe2, 0x9e, 0xe7, 0xde, 0x9e, 0xbe, 0xa7, 0xdc, 0xdb, 0x46, 0x56, 0x6b, - 0x74, 0x7c, 0x59, 0xad, 0x6f, 0xeb, 0x5b, 0xd0, 0xa9, 0x62, 0xbe, 0x6a, 0xa7, 0xe9, 0xe4, 0x9b, - 0xb7, 0x09, 0x75, 0x66, 0xcb, 0x3e, 0x7d, 0x32, 0xd9, 0xb2, 0xcf, 0x1c, 0x7b, 0xb6, 0xec, 0xb3, - 0x27, 0x90, 0x2d, 0xfb, 0x81, 0x0f, 0x34, 0x5b, 0x76, 0xf5, 0xfe, 0x66, 0xcb, 0x3e, 0x77, 0x1c, - 0xd9, 0xb2, 0x6f, 0x43, 0xa5, 0x25, 0xaf, 0xe0, 0x55, 0x67, 0x8a, 0x87, 0x24, 0xf7, 0x9e, 0x1e, - 0x1f, 0x12, 0x85, 0xc2, 0x29, 0x2b, 0xca, 0x37, 0xcd, 0x9e, 0xfd, 0x60, 0x31, 0xdf, 0x5c, 0xb3, - 0xbd, 0x4b, 0xce, 0xec, 0xbf, 0x54, 0x82, 0xf3, 0xdd, 0xe7, 0x75, 0x6a, 0xf3, 0xd7, 0x53, 0x07, - 0x6e, 0xc6, 0xe6, 0x67, 0x4a, 0x97, 0x46, 0xd5, 0xf7, 0x3d, 0xe5, 0xcb, 0x30, 0xad, 0x22, 0x91, - 0x7c, 0xaf, 0xb9, 0xa7, 0x3d, 0x6e, 0xa3, 0x82, 0xdb, 0x1b, 0x59, 0x02, 0xdc, 0x59, 0x06, 0x2d, - 0xc0, 0xa4, 0x01, 0x5c, 0xad, 0x09, 0x95, 0x5c, 0x39, 0x19, 0x1a, 0x26, 0x1a, 0x67, 0xe9, 0xed, - 0xaf, 0x5b, 0xf0, 0x40, 0x41, 0xe2, 0xcd, 0xbe, 0xaf, 0xe1, 0x6e, 0xc0, 0x64, 0xcb, 0x2c, 0xda, - 0xe3, 0xb6, 0xbe, 0x91, 0xde, 0x53, 0xb5, 0x35, 0x83, 0xc0, 0x59, 0xa6, 0x8b, 0x17, 0xbf, 0xf3, - 0x83, 0xf3, 0x1f, 0xf9, 0xa3, 0x1f, 0x9c, 0xff, 0xc8, 0xf7, 0x7f, 0x70, 0xfe, 0x23, 0xff, 0xdf, - 0xc1, 0x79, 0xeb, 0x3b, 0x07, 0xe7, 0xad, 0x3f, 0x3a, 0x38, 0x6f, 0x7d, 0xff, 0xe0, 0xbc, 0xf5, - 0xa7, 0x07, 0xe7, 0xad, 0x5f, 0xfc, 0xe1, 0xf9, 0x8f, 0xbc, 0x59, 0xda, 0x7d, 0xf6, 0xff, 0x06, - 0x00, 0x00, 0xff, 0xff, 0xb3, 0x2e, 0x6d, 0x84, 0xd7, 0xc9, 0x00, 0x00, + // 11523 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x59, 0x90, 0x24, 0xc7, + 0x75, 0x18, 0xab, 0x7b, 0xae, 0x7e, 0x73, 0xe7, 0x1e, 0xe8, 0x1d, 0x00, 0xdb, 0x8b, 0x02, 0x09, + 0x2c, 0xae, 0x19, 0x61, 0x01, 0x90, 0x10, 0x01, 0x82, 0x9c, 0x99, 0x9e, 0xd9, 0x1d, 0xec, 0xd5, + 0xc8, 0x9e, 0x5d, 0x08, 0x20, 0x04, 0xb1, 0xb6, 0x2b, 0x67, 0xa6, 0x30, 0x35, 0x55, 0x8d, 0xaa, + 0xea, 0xd9, 0x1d, 0x84, 0x18, 0x61, 0xd3, 0x14, 0x7d, 0x50, 0x1f, 0x0a, 0x87, 0xc2, 0x96, 0x45, + 0x86, 0x1c, 0xe1, 0x23, 0x24, 0x9a, 0xb6, 0x43, 0x32, 0x65, 0x1d, 0xa4, 0x1c, 0xb6, 0xe5, 0x23, + 0xc8, 0x1f, 0x59, 0x52, 0x84, 0x83, 0x8c, 0x70, 0x78, 0x24, 0x0e, 0x23, 0xec, 0xf0, 0x87, 0x1d, + 0x3e, 0xbe, 0xb4, 0x96, 0x4d, 0x47, 0x9e, 0x95, 0x59, 0x5d, 0xd5, 0xdd, 0xb3, 0x98, 0x1d, 0x80, + 0x0c, 0xff, 0x75, 0xbf, 0xf7, 0xf2, 0x65, 0x56, 0x1e, 0x2f, 0xdf, 0x7b, 0xf9, 0xf2, 0x25, 0xbc, + 0xb4, 0xfd, 0x62, 0x3c, 0xef, 0x85, 0x0b, 0xdb, 0x9d, 0x5b, 0x24, 0x0a, 0x48, 0x42, 0xe2, 0x85, + 0x5d, 0x12, 0xb8, 0x61, 0xb4, 0x20, 0x10, 0x4e, 0xdb, 0x5b, 0x68, 0x85, 0x11, 0x59, 0xd8, 0x7d, + 0x76, 0x61, 0x93, 0x04, 0x24, 0x72, 0x12, 0xe2, 0xce, 0xb7, 0xa3, 0x30, 0x09, 0x11, 0xe2, 0x34, + 0xf3, 0x4e, 0xdb, 0x9b, 0xa7, 0x34, 0xf3, 0xbb, 0xcf, 0xce, 0x3d, 0xb3, 0xe9, 0x25, 0x5b, 0x9d, + 0x5b, 0xf3, 0xad, 0x70, 0x67, 0x61, 0x33, 0xdc, 0x0c, 0x17, 0x18, 0xe9, 0xad, 0xce, 0x06, 0xfb, + 0xc7, 0xfe, 0xb0, 0x5f, 0x9c, 0xc5, 0xdc, 0xf3, 0x69, 0x35, 0x3b, 0x4e, 0x6b, 0xcb, 0x0b, 0x48, + 0xb4, 0xb7, 0xd0, 0xde, 0xde, 0x64, 0xf5, 0x46, 0x24, 0x0e, 0x3b, 0x51, 0x8b, 0x64, 0x2b, 0xee, + 0x59, 0x2a, 0x5e, 0xd8, 0x21, 0x89, 0x93, 0xd3, 0xdc, 0xb9, 0x85, 0xa2, 0x52, 0x51, 0x27, 0x48, + 0xbc, 0x9d, 0xee, 0x6a, 0x3e, 0xde, 0xaf, 0x40, 0xdc, 0xda, 0x22, 0x3b, 0x4e, 0x57, 0xb9, 0xe7, + 0x8a, 0xca, 0x75, 0x12, 0xcf, 0x5f, 0xf0, 0x82, 0x24, 0x4e, 0xa2, 0x6c, 0x21, 0xfb, 0xbb, 0x16, + 0x9c, 0x5b, 0x7c, 0xbd, 0xb9, 0xe2, 0x3b, 0x71, 0xe2, 0xb5, 0x96, 0xfc, 0xb0, 0xb5, 0xdd, 0x4c, + 0xc2, 0x88, 0xdc, 0x0c, 0xfd, 0xce, 0x0e, 0x69, 0xb2, 0x8e, 0x40, 0x4f, 0xc3, 0xd8, 0x2e, 0xfb, + 0xbf, 0x56, 0xaf, 0x5a, 0xe7, 0xac, 0xf3, 0x95, 0xa5, 0x99, 0x6f, 0xef, 0xd7, 0x3e, 0x72, 0xb0, + 0x5f, 0x1b, 0xbb, 0x29, 0xe0, 0x58, 0x51, 0xa0, 0xc7, 0x60, 0x64, 0x23, 0x5e, 0xdf, 0x6b, 0x93, + 0x6a, 0x89, 0xd1, 0x4e, 0x09, 0xda, 0x91, 0xd5, 0x26, 0x85, 0x62, 0x81, 0x45, 0x0b, 0x50, 0x69, + 0x3b, 0x51, 0xe2, 0x25, 0x5e, 0x18, 0x54, 0xcb, 0xe7, 0xac, 0xf3, 0xc3, 0x4b, 0xb3, 0x82, 0xb4, + 0xd2, 0x90, 0x08, 0x9c, 0xd2, 0xd0, 0x66, 0x44, 0xc4, 0x71, 0xaf, 0x07, 0xfe, 0x5e, 0x75, 0xe8, + 0x9c, 0x75, 0x7e, 0x2c, 0x6d, 0x06, 0x16, 0x70, 0xac, 0x28, 0xec, 0x5f, 0x2e, 0xc1, 0xd8, 0xe2, + 0xc6, 0x86, 0x17, 0x78, 0xc9, 0x1e, 0xba, 0x09, 0x13, 0x41, 0xe8, 0x12, 0xf9, 0x9f, 0x7d, 0xc5, + 0xf8, 0x85, 0x73, 0xf3, 0xdd, 0x53, 0x69, 0xfe, 0x9a, 0x46, 0xb7, 0x34, 0x73, 0xb0, 0x5f, 0x9b, + 0xd0, 0x21, 0xd8, 0xe0, 0x83, 0x30, 0x8c, 0xb7, 0x43, 0x57, 0xb1, 0x2d, 0x31, 0xb6, 0xb5, 0x3c, + 0xb6, 0x8d, 0x94, 0x6c, 0x69, 0xfa, 0x60, 0xbf, 0x36, 0xae, 0x01, 0xb0, 0xce, 0x04, 0xdd, 0x82, + 0x69, 0xfa, 0x37, 0x48, 0x3c, 0xc5, 0xb7, 0xcc, 0xf8, 0x3e, 0x5a, 0xc4, 0x57, 0x23, 0x5d, 0x3a, + 0x71, 0xb0, 0x5f, 0x9b, 0xce, 0x00, 0x71, 0x96, 0xa1, 0xfd, 0x1e, 0x4c, 0x2d, 0x26, 0x89, 0xd3, + 0xda, 0x22, 0x2e, 0x1f, 0x41, 0xf4, 0x3c, 0x0c, 0x05, 0xce, 0x0e, 0x11, 0xe3, 0x7b, 0x4e, 0x74, + 0xec, 0xd0, 0x35, 0x67, 0x87, 0xdc, 0xdd, 0xaf, 0xcd, 0xdc, 0x08, 0xbc, 0x77, 0x3b, 0x62, 0x56, + 0x50, 0x18, 0x66, 0xd4, 0xe8, 0x02, 0x80, 0x4b, 0x76, 0xbd, 0x16, 0x69, 0x38, 0xc9, 0x96, 0x18, + 0x6f, 0x24, 0xca, 0x42, 0x5d, 0x61, 0xb0, 0x46, 0x65, 0xdf, 0x81, 0xca, 0xe2, 0x6e, 0xe8, 0xb9, + 0x8d, 0xd0, 0x8d, 0xd1, 0x36, 0x4c, 0xb7, 0x23, 0xb2, 0x41, 0x22, 0x05, 0xaa, 0x5a, 0xe7, 0xca, + 0xe7, 0xc7, 0x2f, 0x9c, 0xcf, 0xfd, 0x58, 0x93, 0x74, 0x25, 0x48, 0xa2, 0xbd, 0xa5, 0x07, 0x44, + 0x7d, 0xd3, 0x19, 0x2c, 0xce, 0x72, 0xb6, 0xff, 0x75, 0x09, 0x4e, 0x2d, 0xbe, 0xd7, 0x89, 0x48, + 0xdd, 0x8b, 0xb7, 0xb3, 0x33, 0xdc, 0xf5, 0xe2, 0xed, 0x6b, 0x69, 0x0f, 0xa8, 0xa9, 0x55, 0x17, + 0x70, 0xac, 0x28, 0xd0, 0x33, 0x30, 0x4a, 0x7f, 0xdf, 0xc0, 0x6b, 0xe2, 0x93, 0x4f, 0x08, 0xe2, + 0xf1, 0xba, 0x93, 0x38, 0x75, 0x8e, 0xc2, 0x92, 0x06, 0x5d, 0x85, 0xf1, 0x16, 0x5b, 0x90, 0x9b, + 0x57, 0x43, 0x97, 0xb0, 0xc1, 0xac, 0x2c, 0x3d, 0x45, 0xc9, 0x97, 0x53, 0xf0, 0xdd, 0xfd, 0x5a, + 0x95, 0xb7, 0x4d, 0xb0, 0xd0, 0x70, 0x58, 0x2f, 0x8f, 0x6c, 0xb5, 0xbe, 0x86, 0x18, 0x27, 0xc8, + 0x59, 0x5b, 0xe7, 0xb5, 0xa5, 0x32, 0xcc, 0x96, 0xca, 0x44, 0xfe, 0x32, 0x41, 0xcf, 0xc2, 0xd0, + 0xb6, 0x17, 0xb8, 0xd5, 0x11, 0xc6, 0xeb, 0x61, 0x3a, 0xe6, 0x97, 0xbd, 0xc0, 0xbd, 0xbb, 0x5f, + 0x9b, 0x35, 0x9a, 0x43, 0x81, 0x98, 0x91, 0xda, 0xff, 0xc0, 0x12, 0xdd, 0xb8, 0xea, 0xf9, 0xa6, + 0xa0, 0xb8, 0x00, 0x10, 0x93, 0x56, 0x44, 0x12, 0xad, 0x23, 0xd5, 0x74, 0x68, 0x2a, 0x0c, 0xd6, + 0xa8, 0xa8, 0x18, 0x88, 0xb7, 0x9c, 0x88, 0xcd, 0x2a, 0xd1, 0x9d, 0x4a, 0x0c, 0x34, 0x25, 0x02, + 0xa7, 0x34, 0x86, 0x18, 0x28, 0xf7, 0x15, 0x03, 0xbf, 0x63, 0xc1, 0xe8, 0x92, 0x17, 0xb8, 0x5e, + 0xb0, 0x89, 0x3e, 0x07, 0x63, 0x54, 0x4a, 0xbb, 0x4e, 0xe2, 0x08, 0x09, 0xf0, 0x13, 0xda, 0x2c, + 0x53, 0x42, 0x73, 0xbe, 0xbd, 0xbd, 0x49, 0x01, 0xf1, 0x3c, 0xa5, 0xa6, 0xf3, 0xee, 0xfa, 0xad, + 0x77, 0x48, 0x2b, 0xb9, 0x4a, 0x12, 0x27, 0xfd, 0x9c, 0x14, 0x86, 0x15, 0x57, 0x74, 0x19, 0x46, + 0x12, 0x27, 0xda, 0x24, 0x89, 0x10, 0x05, 0xb9, 0x4b, 0x96, 0x97, 0xc4, 0x74, 0x6e, 0x92, 0xa0, + 0x45, 0x52, 0x01, 0xb9, 0xce, 0x8a, 0x62, 0xc1, 0xc2, 0x6e, 0xc1, 0xc4, 0xb2, 0xd3, 0x76, 0x6e, + 0x79, 0xbe, 0x97, 0x78, 0x24, 0x46, 0x8f, 0x43, 0xd9, 0x71, 0x5d, 0xb6, 0x3e, 0x2a, 0x4b, 0xa7, + 0x0e, 0xf6, 0x6b, 0xe5, 0x45, 0x97, 0x0e, 0x14, 0x28, 0xaa, 0x3d, 0x4c, 0x29, 0xd0, 0x93, 0x30, + 0xe4, 0x46, 0x61, 0xbb, 0x5a, 0x62, 0x94, 0xa7, 0xe9, 0x98, 0xd6, 0xa3, 0xb0, 0x9d, 0x21, 0x65, + 0x34, 0xf6, 0xb7, 0x4a, 0x80, 0x96, 0x49, 0x7b, 0x6b, 0xb5, 0x69, 0x8c, 0xe4, 0x79, 0x18, 0xdb, + 0x09, 0x03, 0x2f, 0x09, 0xa3, 0x58, 0x54, 0xc8, 0x26, 0xd0, 0x55, 0x01, 0xc3, 0x0a, 0x8b, 0xce, + 0xc1, 0x50, 0x3b, 0x5d, 0xfc, 0x13, 0x52, 0x70, 0xb0, 0x65, 0xcf, 0x30, 0x94, 0xa2, 0x13, 0x93, + 0x48, 0x4c, 0x7c, 0x45, 0x71, 0x23, 0x26, 0x11, 0x66, 0x98, 0x74, 0xde, 0xd0, 0x19, 0x25, 0xa6, + 0x75, 0x66, 0xde, 0x50, 0x0c, 0xd6, 0xa8, 0xd0, 0x0d, 0xa8, 0xf0, 0x7f, 0x98, 0x6c, 0xb0, 0x39, + 0x5e, 0x20, 0x33, 0xae, 0x84, 0x2d, 0xc7, 0xcf, 0x76, 0xf9, 0x24, 0x9b, 0x5d, 0xb2, 0x38, 0x4e, + 0x39, 0x19, 0xb3, 0x6b, 0xa4, 0xef, 0xec, 0xfa, 0x25, 0x0b, 0xd0, 0xb2, 0x17, 0xb8, 0x24, 0x3a, + 0x86, 0x0d, 0xf3, 0x70, 0x13, 0xff, 0x3f, 0xd0, 0xa6, 0x85, 0x3b, 0xed, 0x30, 0x20, 0x41, 0xb2, + 0x1c, 0x06, 0x2e, 0xdf, 0x44, 0x3f, 0x09, 0x43, 0x09, 0xad, 0x8a, 0x37, 0xeb, 0x31, 0x39, 0x18, + 0xb4, 0x82, 0xbb, 0xfb, 0xb5, 0xd3, 0xdd, 0x25, 0x58, 0x13, 0x58, 0x19, 0xf4, 0x93, 0x30, 0x12, + 0x27, 0x4e, 0xd2, 0x89, 0x45, 0x43, 0x1f, 0x91, 0x0d, 0x6d, 0x32, 0xe8, 0xdd, 0xfd, 0xda, 0xb4, + 0x2a, 0xc6, 0x41, 0x58, 0x14, 0x40, 0x4f, 0xc0, 0xe8, 0x0e, 0x89, 0x63, 0x67, 0x53, 0xca, 0xbf, + 0x69, 0x51, 0x76, 0xf4, 0x2a, 0x07, 0x63, 0x89, 0x47, 0x8f, 0xc2, 0x30, 0x89, 0xa2, 0x30, 0x12, + 0xf3, 0x60, 0x52, 0x10, 0x0e, 0xaf, 0x50, 0x20, 0xe6, 0x38, 0xfb, 0xdf, 0x59, 0x30, 0xad, 0xda, + 0xca, 0xeb, 0x3a, 0x86, 0xe5, 0xfd, 0x26, 0x40, 0x4b, 0x7e, 0x60, 0xcc, 0x96, 0xd7, 0xf8, 0x85, + 0xc7, 0xf2, 0x26, 0x5d, 0x77, 0x37, 0xa6, 0x9c, 0x15, 0x28, 0xc6, 0x1a, 0x37, 0xfb, 0x9f, 0x59, + 0x70, 0x22, 0xf3, 0x45, 0x57, 0xbc, 0x38, 0x41, 0x6f, 0x75, 0x7d, 0xd5, 0xfc, 0x60, 0x5f, 0x45, + 0x4b, 0xb3, 0x6f, 0x52, 0xb3, 0x44, 0x42, 0xb4, 0x2f, 0xba, 0x04, 0xc3, 0x5e, 0x42, 0x76, 0xe4, + 0xc7, 0x3c, 0xda, 0xf3, 0x63, 0x78, 0xab, 0xd2, 0x11, 0x59, 0xa3, 0x25, 0x31, 0x67, 0x60, 0xff, + 0x0f, 0x0b, 0x2a, 0xcb, 0x61, 0xb0, 0xe1, 0x6d, 0x5e, 0x75, 0xda, 0xc7, 0x30, 0x16, 0x6b, 0x30, + 0xc4, 0xb8, 0xf3, 0x86, 0x3f, 0x9e, 0xdf, 0x70, 0xd1, 0x9c, 0x79, 0xba, 0x8b, 0x71, 0x6d, 0x41, + 0x89, 0x1f, 0x0a, 0xc2, 0x8c, 0xc5, 0xdc, 0x27, 0xa0, 0xa2, 0x08, 0xd0, 0x0c, 0x94, 0xb7, 0x09, + 0xd7, 0x10, 0x2b, 0x98, 0xfe, 0x44, 0x27, 0x61, 0x78, 0xd7, 0xf1, 0x3b, 0x62, 0x79, 0x62, 0xfe, + 0xe7, 0x93, 0xa5, 0x17, 0x2d, 0xfb, 0x9b, 0x6c, 0x8d, 0x89, 0x4a, 0x56, 0x82, 0x5d, 0xb1, 0xfc, + 0xdf, 0x83, 0x93, 0x7e, 0x8e, 0xd4, 0x11, 0x1d, 0x31, 0xb8, 0x94, 0x7a, 0x48, 0xb4, 0xf5, 0x64, + 0x1e, 0x16, 0xe7, 0xd6, 0x41, 0x05, 0x77, 0xd8, 0xa6, 0x33, 0xca, 0xf1, 0x59, 0x7b, 0xc5, 0xce, + 0x7f, 0x5d, 0xc0, 0xb0, 0xc2, 0x52, 0x01, 0x71, 0x52, 0x35, 0xfe, 0x32, 0xd9, 0x6b, 0x12, 0x9f, + 0xb4, 0x92, 0x30, 0xfa, 0x40, 0x9b, 0xff, 0x30, 0xef, 0x7d, 0x2e, 0x5f, 0xc6, 0x05, 0x83, 0xf2, + 0x65, 0xb2, 0xc7, 0x87, 0x42, 0xff, 0xba, 0x72, 0xcf, 0xaf, 0xfb, 0x0d, 0x0b, 0x26, 0xd5, 0xd7, + 0x1d, 0xc3, 0x42, 0x5a, 0x32, 0x17, 0xd2, 0xc3, 0x3d, 0xe7, 0x63, 0xc1, 0x12, 0xfa, 0x21, 0x13, + 0x01, 0x82, 0xa6, 0x11, 0x85, 0xb4, 0x6b, 0xa8, 0xcc, 0xfe, 0x20, 0x07, 0x64, 0x90, 0xef, 0xba, + 0x4c, 0xf6, 0xd6, 0x43, 0xba, 0xe1, 0xe7, 0x7f, 0x97, 0x31, 0x6a, 0x43, 0x3d, 0x47, 0xed, 0x37, + 0x4b, 0x70, 0x4a, 0xf5, 0x80, 0xb1, 0xa5, 0xfe, 0xa8, 0xf7, 0xc1, 0xb3, 0x30, 0xee, 0x92, 0x0d, + 0xa7, 0xe3, 0x27, 0xca, 0x08, 0x18, 0xe6, 0x86, 0x60, 0x3d, 0x05, 0x63, 0x9d, 0xe6, 0x10, 0xdd, + 0xf6, 0x6f, 0x80, 0xc9, 0xde, 0xc4, 0xa1, 0x33, 0x98, 0xea, 0x5b, 0x9a, 0x29, 0x37, 0xa1, 0x9b, + 0x72, 0xc2, 0x6c, 0x7b, 0x14, 0x86, 0xbd, 0x1d, 0xba, 0x17, 0x97, 0xcc, 0x2d, 0x76, 0x8d, 0x02, + 0x31, 0xc7, 0xa1, 0x8f, 0xc1, 0x68, 0x2b, 0xdc, 0xd9, 0x71, 0x02, 0xb7, 0x5a, 0x66, 0x1a, 0xe0, + 0x38, 0xdd, 0xae, 0x97, 0x39, 0x08, 0x4b, 0x1c, 0x7a, 0x08, 0x86, 0x9c, 0x68, 0x33, 0xae, 0x0e, + 0x31, 0x9a, 0x31, 0x5a, 0xd3, 0x62, 0xb4, 0x19, 0x63, 0x06, 0xa5, 0x9a, 0xdd, 0xed, 0x30, 0xda, + 0xf6, 0x82, 0xcd, 0xba, 0x17, 0x31, 0x35, 0x4d, 0xd3, 0xec, 0x5e, 0x57, 0x18, 0xac, 0x51, 0xa1, + 0x55, 0x18, 0x6e, 0x87, 0x51, 0x12, 0x57, 0x47, 0x58, 0x77, 0x3f, 0x52, 0xb0, 0x94, 0xf8, 0xd7, + 0x36, 0xc2, 0x28, 0x49, 0x3f, 0x80, 0xfe, 0x8b, 0x31, 0x2f, 0x8e, 0x7e, 0x12, 0xca, 0x24, 0xd8, + 0xad, 0x8e, 0x32, 0x2e, 0x73, 0x79, 0x5c, 0x56, 0x82, 0xdd, 0x9b, 0x4e, 0x94, 0xca, 0x99, 0x95, + 0x60, 0x17, 0xd3, 0x32, 0xe8, 0x0d, 0xa8, 0x48, 0x37, 0x50, 0x5c, 0x1d, 0x2b, 0x9e, 0x62, 0x58, + 0x10, 0x61, 0xf2, 0x6e, 0xc7, 0x8b, 0xc8, 0x0e, 0x09, 0x92, 0x38, 0x35, 0x5f, 0x24, 0x36, 0xc6, + 0x29, 0x37, 0xf4, 0x06, 0x4c, 0x70, 0xcd, 0xef, 0x6a, 0xd8, 0x09, 0x92, 0xb8, 0x5a, 0x61, 0xcd, + 0xcb, 0xf5, 0x19, 0xdc, 0x4c, 0xe9, 0x96, 0x4e, 0x0a, 0xa6, 0x13, 0x1a, 0x30, 0xc6, 0x06, 0x2b, + 0x84, 0x61, 0xd2, 0xf7, 0x76, 0x49, 0x40, 0xe2, 0xb8, 0x11, 0x85, 0xb7, 0x48, 0x15, 0x58, 0xcb, + 0xcf, 0xe4, 0x9b, 0xd2, 0xe1, 0x2d, 0xb2, 0x34, 0x7b, 0xb0, 0x5f, 0x9b, 0xbc, 0xa2, 0x97, 0xc1, + 0x26, 0x0b, 0x74, 0x03, 0xa6, 0xa8, 0x4a, 0xe9, 0xa5, 0x4c, 0xc7, 0xfb, 0x31, 0x45, 0x07, 0xfb, + 0xb5, 0x29, 0x6c, 0x14, 0xc2, 0x19, 0x26, 0xe8, 0x55, 0xa8, 0xf8, 0xde, 0x06, 0x69, 0xed, 0xb5, + 0x7c, 0x52, 0x9d, 0x60, 0x1c, 0x73, 0x97, 0xd5, 0x15, 0x49, 0xc4, 0x55, 0x76, 0xf5, 0x17, 0xa7, + 0xc5, 0xd1, 0x4d, 0x38, 0x9d, 0x90, 0x68, 0xc7, 0x0b, 0x1c, 0xba, 0x1c, 0x84, 0x3e, 0xc9, 0x1c, + 0x12, 0x93, 0x6c, 0xbe, 0x9d, 0x15, 0x5d, 0x77, 0x7a, 0x3d, 0x97, 0x0a, 0x17, 0x94, 0x46, 0xd7, + 0x61, 0x9a, 0xad, 0x84, 0x46, 0xc7, 0xf7, 0x1b, 0xa1, 0xef, 0xb5, 0xf6, 0xaa, 0x53, 0x8c, 0xe1, + 0xc7, 0xa4, 0xc7, 0x61, 0xcd, 0x44, 0x53, 0x03, 0x2b, 0xfd, 0x87, 0xb3, 0xa5, 0xd1, 0x2d, 0x98, + 0x8e, 0x49, 0xab, 0x13, 0x79, 0xc9, 0x1e, 0x9d, 0xbf, 0xe4, 0x4e, 0x52, 0x9d, 0x2e, 0x36, 0x13, + 0x9b, 0x26, 0x29, 0xf7, 0xec, 0x64, 0x80, 0x38, 0xcb, 0x90, 0x2e, 0xed, 0x38, 0x71, 0xbd, 0xa0, + 0x3a, 0xc3, 0x24, 0x86, 0x5a, 0x19, 0x4d, 0x0a, 0xc4, 0x1c, 0xc7, 0x6c, 0x6e, 0xfa, 0xe3, 0x3a, + 0x95, 0xa0, 0xb3, 0x8c, 0x30, 0xb5, 0xb9, 0x25, 0x02, 0xa7, 0x34, 0x74, 0x5b, 0x4e, 0x92, 0xbd, + 0x2a, 0x62, 0xa4, 0x6a, 0xb9, 0xac, 0xaf, 0xbf, 0x81, 0x29, 0x1c, 0x5d, 0x81, 0x51, 0x12, 0xec, + 0xae, 0x46, 0xe1, 0x4e, 0xf5, 0x44, 0xf1, 0x9a, 0x5d, 0xe1, 0x24, 0x5c, 0xa0, 0xa7, 0x06, 0x80, + 0x00, 0x63, 0xc9, 0x02, 0xdd, 0x81, 0x6a, 0xce, 0x88, 0xf0, 0x01, 0x38, 0xc9, 0x06, 0xe0, 0x65, + 0x51, 0xb6, 0xba, 0x5e, 0x40, 0x77, 0xb7, 0x07, 0x0e, 0x17, 0x72, 0xb7, 0x6f, 0xc1, 0x94, 0x12, + 0x2c, 0x6c, 0x6c, 0x51, 0x0d, 0x86, 0xa9, 0xc4, 0x94, 0x46, 0x70, 0x85, 0x76, 0x25, 0x15, 0xa4, + 0x31, 0xe6, 0x70, 0xd6, 0x95, 0xde, 0x7b, 0x64, 0x69, 0x2f, 0x21, 0xdc, 0x2c, 0x2a, 0x6b, 0x5d, + 0x29, 0x11, 0x38, 0xa5, 0xb1, 0xff, 0x2f, 0x57, 0x4c, 0x52, 0xe9, 0x35, 0x80, 0xbc, 0x7e, 0x1a, + 0xc6, 0xb6, 0xc2, 0x38, 0xa1, 0xd4, 0xac, 0x8e, 0xe1, 0x54, 0x15, 0xb9, 0x24, 0xe0, 0x58, 0x51, + 0xa0, 0x97, 0x60, 0xb2, 0xa5, 0x57, 0x20, 0x36, 0x9b, 0x53, 0xa2, 0x88, 0x59, 0x3b, 0x36, 0x69, + 0xd1, 0x8b, 0x30, 0xc6, 0x3c, 0xc3, 0xad, 0xd0, 0x17, 0x06, 0x98, 0xdc, 0x31, 0xc7, 0x1a, 0x02, + 0x7e, 0x57, 0xfb, 0x8d, 0x15, 0x35, 0x35, 0x63, 0x69, 0x13, 0xd6, 0x1a, 0x42, 0xcc, 0x2b, 0x33, + 0xf6, 0x12, 0x83, 0x62, 0x81, 0xb5, 0xff, 0x7a, 0x49, 0xeb, 0x65, 0x6a, 0x52, 0x10, 0xd4, 0x80, + 0xd1, 0xdb, 0x8e, 0x97, 0x78, 0xc1, 0xa6, 0xd8, 0xcf, 0x9f, 0xe8, 0x29, 0xf3, 0x59, 0xa1, 0xd7, + 0x79, 0x01, 0xbe, 0x2b, 0x89, 0x3f, 0x58, 0xb2, 0xa1, 0x1c, 0xa3, 0x4e, 0x10, 0x50, 0x8e, 0xa5, + 0x41, 0x39, 0x62, 0x5e, 0x80, 0x73, 0x14, 0x7f, 0xb0, 0x64, 0x83, 0xde, 0x02, 0x90, 0xf3, 0x86, + 0xb8, 0xc2, 0x23, 0xfb, 0x74, 0x7f, 0xa6, 0xeb, 0xaa, 0xcc, 0xd2, 0x14, 0xdd, 0xf3, 0xd2, 0xff, + 0x58, 0xe3, 0x67, 0x27, 0x4c, 0xef, 0xe9, 0x6e, 0x0c, 0xfa, 0x2c, 0x5d, 0xaa, 0x4e, 0x94, 0x10, + 0x77, 0x31, 0x11, 0x9d, 0xf3, 0xe4, 0x60, 0x6a, 0xeb, 0xba, 0xb7, 0x43, 0xf4, 0x65, 0x2d, 0x98, + 0xe0, 0x94, 0x9f, 0xfd, 0xdb, 0x65, 0xa8, 0x16, 0x35, 0x97, 0x4e, 0x3a, 0x72, 0xc7, 0x4b, 0x96, + 0xa9, 0xba, 0x62, 0x99, 0x93, 0x6e, 0x45, 0xc0, 0xb1, 0xa2, 0xa0, 0xa3, 0x1f, 0x7b, 0x9b, 0xd2, + 0xea, 0x18, 0x4e, 0x47, 0xbf, 0xc9, 0xa0, 0x58, 0x60, 0x29, 0x5d, 0x44, 0x9c, 0x58, 0xb8, 0xfc, + 0xb5, 0x59, 0x82, 0x19, 0x14, 0x0b, 0xac, 0xee, 0x30, 0x18, 0xea, 0xe3, 0x30, 0x30, 0xba, 0x68, + 0xf8, 0x68, 0xbb, 0x08, 0xbd, 0x0d, 0xb0, 0xe1, 0x05, 0x5e, 0xbc, 0xc5, 0xb8, 0x8f, 0x1c, 0x9a, + 0xbb, 0x52, 0x76, 0x56, 0x15, 0x17, 0xac, 0x71, 0x44, 0x2f, 0xc0, 0xb8, 0x5a, 0x80, 0x6b, 0xf5, + 0xea, 0xa8, 0xe9, 0x4f, 0x4e, 0xa5, 0x51, 0x1d, 0xeb, 0x74, 0xf6, 0x3b, 0xd9, 0xf9, 0x22, 0x56, + 0x80, 0xd6, 0xbf, 0xd6, 0xa0, 0xfd, 0x5b, 0xea, 0xdd, 0xbf, 0xf6, 0xef, 0x97, 0x61, 0xda, 0xa8, + 0xac, 0x13, 0x0f, 0x20, 0xb3, 0x2e, 0xd2, 0x8d, 0xc8, 0x49, 0x88, 0x58, 0x7f, 0x76, 0xff, 0xa5, + 0xa2, 0x6f, 0x56, 0x74, 0x05, 0xf0, 0xf2, 0xe8, 0x6d, 0xa8, 0xf8, 0x4e, 0xcc, 0x9c, 0x0f, 0x44, + 0xac, 0xbb, 0x41, 0x98, 0xa5, 0x8a, 0xbe, 0x13, 0x27, 0xda, 0x5e, 0xc0, 0x79, 0xa7, 0x2c, 0xe9, + 0x8e, 0x49, 0x95, 0x13, 0x79, 0xa6, 0xa4, 0x1a, 0x41, 0x35, 0x98, 0x3d, 0xcc, 0x71, 0xe8, 0x45, + 0x98, 0x88, 0x08, 0x9b, 0x15, 0xcb, 0x54, 0xd7, 0x62, 0xd3, 0x6c, 0x38, 0x55, 0xca, 0xb0, 0x86, + 0xc3, 0x06, 0x65, 0xaa, 0x6b, 0x8f, 0xf4, 0xd0, 0xb5, 0x9f, 0x80, 0x51, 0xf6, 0x43, 0xcd, 0x00, + 0x35, 0x1a, 0x6b, 0x1c, 0x8c, 0x25, 0x3e, 0x3b, 0x61, 0xc6, 0x06, 0x9c, 0x30, 0x4f, 0xc2, 0x54, + 0xdd, 0x21, 0x3b, 0x61, 0xb0, 0x12, 0xb8, 0xed, 0xd0, 0x0b, 0x12, 0x54, 0x85, 0x21, 0xb6, 0x3b, + 0xf0, 0xb5, 0x3d, 0x44, 0x39, 0xe0, 0x21, 0xaa, 0x39, 0xdb, 0x7f, 0x54, 0x82, 0xc9, 0x3a, 0xf1, + 0x49, 0x42, 0xb8, 0xad, 0x11, 0xa3, 0x55, 0x40, 0x9b, 0x91, 0xd3, 0x22, 0x0d, 0x12, 0x79, 0xa1, + 0xdb, 0x24, 0xad, 0x30, 0x60, 0x27, 0x35, 0x74, 0xbb, 0x3b, 0x7d, 0xb0, 0x5f, 0x43, 0x17, 0xbb, + 0xb0, 0x38, 0xa7, 0x04, 0x7a, 0x13, 0x26, 0xdb, 0x11, 0x31, 0x7c, 0x68, 0x56, 0x91, 0xba, 0xd0, + 0xd0, 0x09, 0xb9, 0xa6, 0x6a, 0x80, 0xb0, 0xc9, 0x0a, 0x7d, 0x06, 0x66, 0xc2, 0xa8, 0xbd, 0xe5, + 0x04, 0x75, 0xd2, 0x26, 0x81, 0x4b, 0x55, 0x71, 0xe1, 0x23, 0x38, 0x79, 0xb0, 0x5f, 0x9b, 0xb9, + 0x9e, 0xc1, 0xe1, 0x2e, 0x6a, 0xf4, 0x26, 0xcc, 0xb6, 0xa3, 0xb0, 0xed, 0x6c, 0xb2, 0x89, 0x22, + 0x34, 0x0e, 0x2e, 0x7d, 0x9e, 0x3e, 0xd8, 0xaf, 0xcd, 0x36, 0xb2, 0xc8, 0xbb, 0xfb, 0xb5, 0x13, + 0xac, 0xa3, 0x28, 0x24, 0x45, 0xe2, 0x6e, 0x36, 0xf6, 0x26, 0x9c, 0xaa, 0x87, 0xb7, 0x83, 0xdb, + 0x4e, 0xe4, 0x2e, 0x36, 0xd6, 0x34, 0xe3, 0xfe, 0x9a, 0x34, 0x2e, 0xf9, 0xb9, 0x57, 0xee, 0x3e, + 0xa5, 0x95, 0xe4, 0xea, 0xff, 0xaa, 0xe7, 0x93, 0x02, 0x27, 0xc2, 0xdf, 0x2c, 0x19, 0x35, 0xa5, + 0xf4, 0xca, 0x53, 0x6f, 0x15, 0x7a, 0xea, 0x5f, 0x83, 0xb1, 0x0d, 0x8f, 0xf8, 0x2e, 0x26, 0x1b, + 0x62, 0x64, 0x1e, 0x2f, 0x3e, 0xc0, 0x58, 0xa5, 0x94, 0xd2, 0x69, 0xc4, 0x4d, 0xd3, 0x55, 0x51, + 0x18, 0x2b, 0x36, 0x68, 0x1b, 0x66, 0xa4, 0xed, 0x23, 0xb1, 0x62, 0x11, 0x3f, 0xd1, 0xcb, 0xa0, + 0x32, 0x99, 0xb3, 0x01, 0xc4, 0x19, 0x36, 0xb8, 0x8b, 0x31, 0xb5, 0x45, 0x77, 0xe8, 0x76, 0x35, + 0xc4, 0xa6, 0x34, 0xb3, 0x45, 0x99, 0x59, 0xcd, 0xa0, 0xf6, 0x57, 0x2d, 0x78, 0xa0, 0xab, 0x67, + 0x84, 0x7b, 0xe1, 0x88, 0x47, 0x21, 0x6b, 0xee, 0x97, 0xfa, 0x9b, 0xfb, 0xf6, 0xaf, 0x5b, 0x70, + 0x72, 0x65, 0xa7, 0x9d, 0xec, 0xd5, 0x3d, 0xf3, 0x34, 0xe1, 0x13, 0x30, 0xb2, 0x43, 0x5c, 0xaf, + 0xb3, 0x23, 0x46, 0xae, 0x26, 0x45, 0xfa, 0x55, 0x06, 0xbd, 0xbb, 0x5f, 0x9b, 0x6c, 0x26, 0x61, + 0xe4, 0x6c, 0x12, 0x0e, 0xc0, 0x82, 0x1c, 0xfd, 0x0c, 0xd7, 0x4d, 0xaf, 0x78, 0x3b, 0x9e, 0x3c, + 0x90, 0xea, 0xe9, 0xf2, 0x9a, 0x97, 0x1d, 0x3a, 0xff, 0x5a, 0xc7, 0x09, 0x12, 0x2f, 0xd9, 0x33, + 0x75, 0x59, 0xc6, 0x08, 0xa7, 0x3c, 0xed, 0xef, 0x5a, 0x30, 0x2d, 0xe5, 0xc9, 0xa2, 0xeb, 0x46, + 0x24, 0x8e, 0xd1, 0x1c, 0x94, 0xbc, 0xb6, 0x68, 0x29, 0x88, 0xd2, 0xa5, 0xb5, 0x06, 0x2e, 0x79, + 0x6d, 0xd4, 0x80, 0x0a, 0x3f, 0xdb, 0x4a, 0x27, 0xd8, 0x40, 0x27, 0x64, 0xcc, 0xf6, 0x5b, 0x97, + 0x25, 0x71, 0xca, 0x44, 0x6a, 0xc6, 0x6c, 0x2f, 0x2a, 0x9b, 0x27, 0x2d, 0x97, 0x04, 0x1c, 0x2b, + 0x0a, 0x74, 0x1e, 0xc6, 0x82, 0xd0, 0xe5, 0x47, 0x8d, 0x7c, 0x5d, 0xb3, 0x69, 0x7b, 0x4d, 0xc0, + 0xb0, 0xc2, 0xda, 0x3f, 0x6f, 0xc1, 0x84, 0xfc, 0xb2, 0x01, 0x95, 0x74, 0xba, 0xbc, 0x52, 0x05, + 0x3d, 0x5d, 0x5e, 0x54, 0xc9, 0x66, 0x18, 0x43, 0xb7, 0x2e, 0x1f, 0x46, 0xb7, 0xb6, 0xbf, 0x52, + 0x82, 0x29, 0xd9, 0x9c, 0x66, 0xe7, 0x56, 0x4c, 0x12, 0xb4, 0x0e, 0x15, 0x87, 0x77, 0x39, 0x91, + 0xb3, 0xf6, 0xd1, 0x7c, 0xab, 0xcb, 0x18, 0x9f, 0x74, 0x44, 0x17, 0x65, 0x69, 0x9c, 0x32, 0x42, + 0x3e, 0xcc, 0x06, 0x61, 0xc2, 0xb6, 0x3e, 0x85, 0xef, 0x75, 0x36, 0x90, 0xe5, 0x7e, 0x46, 0x70, + 0x9f, 0xbd, 0x96, 0xe5, 0x82, 0xbb, 0x19, 0xa3, 0x15, 0xe9, 0xe9, 0x29, 0xb3, 0x1a, 0xce, 0xf5, + 0xaa, 0xa1, 0xd8, 0xd1, 0x63, 0xff, 0x9e, 0x05, 0x15, 0x49, 0x76, 0x1c, 0xc7, 0x40, 0x57, 0x61, + 0x34, 0x66, 0x83, 0x20, 0xbb, 0xc6, 0xee, 0xd5, 0x70, 0x3e, 0x5e, 0xe9, 0x8e, 0xce, 0xff, 0xc7, + 0x58, 0xf2, 0x60, 0xae, 0x6a, 0xd5, 0xfc, 0x0f, 0x89, 0xab, 0x5a, 0xb5, 0xa7, 0x60, 0x97, 0xf9, + 0xcf, 0xac, 0xcd, 0x9a, 0x3d, 0x4f, 0x15, 0xcf, 0x76, 0x44, 0x36, 0xbc, 0x3b, 0x59, 0xc5, 0xb3, + 0xc1, 0xa0, 0x58, 0x60, 0xd1, 0x5b, 0x30, 0xd1, 0x92, 0x1e, 0xde, 0x54, 0x0c, 0x3c, 0xd6, 0xd3, + 0x5f, 0xae, 0x8e, 0x56, 0x78, 0x40, 0xce, 0xb2, 0x56, 0x1e, 0x1b, 0xdc, 0xa8, 0x84, 0x49, 0x4f, + 0x85, 0xcb, 0x3d, 0x9d, 0x2b, 0x11, 0x49, 0x52, 0xbe, 0x85, 0x07, 0xc2, 0xf6, 0xaf, 0x58, 0x30, + 0xc2, 0xfd, 0x84, 0x83, 0x39, 0x56, 0xb5, 0xa3, 0xa2, 0xb4, 0xef, 0x6e, 0x52, 0xa0, 0x38, 0x39, + 0x42, 0x57, 0xa1, 0xc2, 0x7e, 0x30, 0x7f, 0x49, 0xb9, 0x38, 0x12, 0x89, 0xd7, 0xaa, 0x37, 0xf0, + 0xa6, 0x2c, 0x86, 0x53, 0x0e, 0xf6, 0x2f, 0x96, 0xa9, 0xa8, 0x4a, 0x49, 0x8d, 0x5d, 0xdc, 0xba, + 0x7f, 0xbb, 0x78, 0xe9, 0x7e, 0xed, 0xe2, 0x9b, 0x30, 0xdd, 0xd2, 0xce, 0xa5, 0xd2, 0x91, 0x3c, + 0xdf, 0x73, 0x92, 0x68, 0x47, 0x58, 0xdc, 0x57, 0xb6, 0x6c, 0x32, 0xc1, 0x59, 0xae, 0xe8, 0xb3, + 0x30, 0xc1, 0xc7, 0x59, 0xd4, 0x32, 0xc4, 0x6a, 0xf9, 0x58, 0xf1, 0x7c, 0xd1, 0xab, 0x60, 0x33, + 0xb1, 0xa9, 0x15, 0xc7, 0x06, 0x33, 0xfb, 0x4b, 0xc3, 0x30, 0xbc, 0xb2, 0x4b, 0x82, 0xe4, 0x18, + 0x04, 0x52, 0x0b, 0xa6, 0xbc, 0x60, 0x37, 0xf4, 0x77, 0x89, 0xcb, 0xf1, 0x87, 0xd9, 0x5c, 0x4f, + 0x0b, 0xd6, 0x53, 0x6b, 0x06, 0x0b, 0x9c, 0x61, 0x79, 0x3f, 0x2c, 0xf7, 0x8b, 0x30, 0xc2, 0xc7, + 0x5e, 0x98, 0xed, 0xb9, 0x5e, 0x70, 0xd6, 0x89, 0x62, 0x15, 0xa4, 0x5e, 0x05, 0xee, 0x76, 0x17, + 0xc5, 0xd1, 0x3b, 0x30, 0xb5, 0xe1, 0x45, 0x71, 0x42, 0x4d, 0xee, 0x38, 0x71, 0x76, 0xda, 0xf7, + 0x60, 0xa9, 0xab, 0x7e, 0x58, 0x35, 0x38, 0xe1, 0x0c, 0x67, 0xb4, 0x09, 0x93, 0xd4, 0x78, 0x4c, + 0xab, 0x1a, 0x3d, 0x74, 0x55, 0xca, 0x15, 0x77, 0x45, 0x67, 0x84, 0x4d, 0xbe, 0x54, 0x98, 0xb4, + 0x98, 0xb1, 0x39, 0xc6, 0x34, 0x0a, 0x25, 0x4c, 0xb8, 0x95, 0xc9, 0x71, 0x54, 0x26, 0xb1, 0x78, + 0x8e, 0x8a, 0x29, 0x93, 0xd2, 0xa8, 0x0d, 0xfb, 0x6b, 0x74, 0x77, 0xa4, 0x7d, 0x78, 0x0c, 0x5b, + 0xcb, 0x2b, 0xe6, 0xd6, 0x72, 0xa6, 0x70, 0x3c, 0x0b, 0xb6, 0x95, 0xcf, 0xc1, 0xb8, 0x36, 0xdc, + 0x68, 0x01, 0x2a, 0x2d, 0x19, 0x7c, 0x20, 0xa4, 0xae, 0x52, 0x5f, 0x54, 0x54, 0x02, 0x4e, 0x69, + 0x68, 0x6f, 0x50, 0x65, 0x2f, 0x1b, 0x8c, 0x44, 0x55, 0x41, 0xcc, 0x30, 0xf6, 0x73, 0x00, 0x2b, + 0x77, 0x48, 0x6b, 0x91, 0x1b, 0x5f, 0xda, 0x19, 0x97, 0x55, 0x7c, 0xc6, 0x65, 0xff, 0xb1, 0x05, + 0x53, 0xab, 0xcb, 0x86, 0x52, 0x3e, 0x0f, 0xc0, 0xb5, 0xd0, 0xd7, 0x5f, 0xbf, 0x26, 0xbd, 0xc3, + 0xdc, 0xc1, 0xa7, 0xa0, 0x58, 0xa3, 0x40, 0x67, 0xa0, 0xec, 0x77, 0x02, 0xa1, 0x1c, 0x8e, 0x1e, + 0xec, 0xd7, 0xca, 0x57, 0x3a, 0x01, 0xa6, 0x30, 0x2d, 0xfe, 0xa7, 0x3c, 0x70, 0xfc, 0x4f, 0xdf, + 0xf8, 0x57, 0x54, 0x83, 0xe1, 0xdb, 0xb7, 0x3d, 0x37, 0xae, 0x0e, 0xa7, 0x9e, 0xeb, 0xd7, 0x5f, + 0x5f, 0xab, 0xc7, 0x98, 0xc3, 0xed, 0xbf, 0x58, 0x86, 0x99, 0x55, 0x9f, 0xdc, 0x31, 0x3e, 0xeb, + 0x31, 0x18, 0x71, 0x23, 0x6f, 0x97, 0x44, 0xd9, 0x5d, 0xbc, 0xce, 0xa0, 0x58, 0x60, 0x07, 0x8e, + 0x59, 0xba, 0xd1, 0xbd, 0x1f, 0x1f, 0x75, 0x94, 0x56, 0xff, 0xae, 0x78, 0x0b, 0x46, 0xf9, 0x51, + 0x29, 0xef, 0x8c, 0xf1, 0x0b, 0xcf, 0xe6, 0x35, 0x21, 0xdb, 0x17, 0xf3, 0xc2, 0xf9, 0xc1, 0xe3, + 0x46, 0x94, 0x10, 0x13, 0x50, 0x2c, 0x59, 0xce, 0x7d, 0x12, 0x26, 0x74, 0xca, 0x43, 0x05, 0x90, + 0xfc, 0x25, 0x0b, 0x4e, 0xac, 0xfa, 0x61, 0x6b, 0x3b, 0x13, 0x40, 0xf6, 0x02, 0x8c, 0xd3, 0xf5, + 0x14, 0x1b, 0x91, 0x94, 0x46, 0x94, 0xa9, 0x40, 0x61, 0x9d, 0x4e, 0x2b, 0x76, 0xe3, 0xc6, 0x5a, + 0x3d, 0x2f, 0x38, 0x55, 0xa0, 0xb0, 0x4e, 0x67, 0xff, 0x81, 0x05, 0x0f, 0x5f, 0x5c, 0x5e, 0x69, + 0x90, 0x28, 0xf6, 0xe2, 0x84, 0x04, 0x49, 0x57, 0x7c, 0x2c, 0x55, 0xee, 0x5c, 0xad, 0x29, 0xa9, + 0x72, 0x57, 0x67, 0xad, 0x10, 0xd8, 0x0f, 0x4b, 0xec, 0xf7, 0xaf, 0x59, 0x70, 0xe2, 0xa2, 0x97, + 0x60, 0xd2, 0x0e, 0xb3, 0xf1, 0xa9, 0x11, 0x69, 0x87, 0xb1, 0x97, 0x84, 0xd1, 0x5e, 0x36, 0x3e, + 0x15, 0x2b, 0x0c, 0xd6, 0xa8, 0x78, 0xcd, 0xbb, 0x5e, 0x4c, 0x5b, 0x5a, 0x32, 0x2d, 0x4c, 0x2c, + 0xe0, 0x58, 0x51, 0xd0, 0x0f, 0x73, 0xbd, 0x88, 0x69, 0x08, 0x7b, 0x62, 0x39, 0xab, 0x0f, 0xab, + 0x4b, 0x04, 0x4e, 0x69, 0xec, 0xaf, 0x5a, 0x70, 0xea, 0xa2, 0xdf, 0x89, 0x13, 0x12, 0x6d, 0xc4, + 0x46, 0x63, 0x9f, 0x83, 0x0a, 0x91, 0x5a, 0xb8, 0x68, 0xab, 0xda, 0x37, 0x94, 0x7a, 0xce, 0x83, + 0x63, 0x15, 0xdd, 0x00, 0xd1, 0x98, 0x87, 0x8b, 0x22, 0xfc, 0x46, 0x09, 0x26, 0x2f, 0xad, 0xaf, + 0x37, 0x2e, 0x92, 0x44, 0x88, 0xcc, 0xfe, 0x5e, 0x24, 0xac, 0x19, 0xc2, 0xbd, 0x74, 0x9d, 0x4e, + 0xe2, 0xf9, 0xf3, 0xfc, 0x5e, 0xc2, 0xfc, 0x5a, 0x90, 0x5c, 0x8f, 0x9a, 0x49, 0xe4, 0x05, 0x9b, + 0xb9, 0xa6, 0xb3, 0x14, 0xec, 0xe5, 0x22, 0xc1, 0x8e, 0x9e, 0x83, 0x11, 0x76, 0x31, 0x42, 0x6a, + 0x1d, 0x0f, 0x2a, 0x55, 0x81, 0x41, 0xef, 0xee, 0xd7, 0x2a, 0x37, 0xf0, 0x1a, 0xff, 0x83, 0x05, + 0x29, 0xba, 0x01, 0xe3, 0x5b, 0x49, 0xd2, 0xbe, 0x44, 0x1c, 0x97, 0x44, 0x52, 0x3a, 0x9c, 0xcd, + 0x93, 0x0e, 0xb4, 0x13, 0x38, 0x59, 0xba, 0xa0, 0x52, 0x58, 0x8c, 0x75, 0x3e, 0x76, 0x13, 0x20, + 0xc5, 0x1d, 0x91, 0xd9, 0x60, 0xff, 0xc0, 0x82, 0xd1, 0x4b, 0x4e, 0xe0, 0xfa, 0x24, 0x42, 0x2f, + 0xc3, 0x10, 0xb9, 0x43, 0x5a, 0x62, 0x07, 0xcf, 0x6d, 0x70, 0xba, 0xcb, 0x71, 0x47, 0x18, 0xfd, + 0x8f, 0x59, 0x29, 0x74, 0x09, 0x46, 0x69, 0x6b, 0x2f, 0xaa, 0x30, 0xe5, 0x47, 0x8a, 0xbe, 0x58, + 0x0d, 0x3b, 0xdf, 0x18, 0x05, 0x08, 0xcb, 0xe2, 0xcc, 0xa1, 0xd3, 0x6a, 0x37, 0xa9, 0x00, 0x4b, + 0x7a, 0x99, 0x5b, 0xeb, 0xcb, 0x0d, 0x4e, 0x24, 0xb8, 0x71, 0x87, 0x8e, 0x04, 0xe2, 0x94, 0x89, + 0xbd, 0x0e, 0x15, 0x3a, 0xa8, 0x8b, 0xbe, 0xe7, 0xf4, 0xf6, 0x25, 0x3d, 0x05, 0x15, 0xe9, 0xd7, + 0x89, 0x45, 0xa4, 0x33, 0xe3, 0x2a, 0xdd, 0x3e, 0x31, 0x4e, 0xf1, 0xf6, 0x8b, 0x70, 0x92, 0x1d, + 0x94, 0x3a, 0xc9, 0x96, 0xb1, 0xc6, 0xfa, 0x4e, 0x66, 0xfb, 0xeb, 0x43, 0x30, 0xbb, 0xd6, 0x5c, + 0x6e, 0x9a, 0xee, 0xc2, 0x17, 0x61, 0x82, 0xef, 0xed, 0x74, 0x8a, 0x3a, 0xbe, 0x28, 0xaf, 0x8e, + 0x03, 0xd6, 0x35, 0x1c, 0x36, 0x28, 0xd1, 0xc3, 0x50, 0xf6, 0xde, 0x0d, 0xb2, 0x01, 0x6e, 0x6b, + 0xaf, 0x5d, 0xc3, 0x14, 0x4e, 0xd1, 0x54, 0x4d, 0xe0, 0x22, 0x51, 0xa1, 0x95, 0xaa, 0xf0, 0x0a, + 0x4c, 0x79, 0x71, 0x2b, 0xf6, 0xd6, 0x02, 0x2a, 0x2f, 0x9c, 0x96, 0x9c, 0xec, 0xa9, 0x0e, 0x4f, + 0x9b, 0xaa, 0xb0, 0x38, 0x43, 0xad, 0xc9, 0xe7, 0xe1, 0x81, 0x55, 0x8d, 0xbe, 0x51, 0xd0, 0x54, + 0x8b, 0x6a, 0xb3, 0xaf, 0x8b, 0x59, 0xb0, 0x8d, 0xd0, 0xa2, 0xf8, 0x07, 0xc7, 0x58, 0xe2, 0xd0, + 0x45, 0x98, 0x6d, 0x6d, 0x39, 0xed, 0xc5, 0x4e, 0xb2, 0x55, 0xf7, 0xe2, 0x56, 0xb8, 0x4b, 0xa2, + 0x3d, 0xa6, 0xdb, 0x8e, 0xa5, 0x6e, 0x23, 0x85, 0x58, 0xbe, 0xb4, 0xd8, 0xa0, 0x94, 0xb8, 0xbb, + 0x8c, 0xa9, 0x54, 0xc0, 0x91, 0x29, 0x15, 0x8b, 0x30, 0x2d, 0xeb, 0x6a, 0x92, 0x98, 0x09, 0xfc, + 0x71, 0xd6, 0x3a, 0x75, 0xc3, 0x44, 0x80, 0x55, 0xdb, 0xb2, 0xf4, 0xf6, 0x3b, 0x50, 0x51, 0x81, + 0x60, 0x32, 0x96, 0xd1, 0x2a, 0x88, 0x65, 0xec, 0x2f, 0xaa, 0xa5, 0x3b, 0xbb, 0x9c, 0xeb, 0xce, + 0xfe, 0x5b, 0x16, 0xa4, 0xf1, 0x30, 0xe8, 0x12, 0x54, 0xda, 0x21, 0x3b, 0xd2, 0x8a, 0xe4, 0x39, + 0xf1, 0x83, 0xb9, 0xab, 0x9a, 0x4b, 0x10, 0xde, 0x0d, 0x0d, 0x59, 0x02, 0xa7, 0x85, 0xd1, 0x12, + 0x8c, 0xb6, 0x23, 0xd2, 0x4c, 0xd8, 0x05, 0x82, 0xbe, 0x7c, 0xf8, 0x50, 0x73, 0x7a, 0x2c, 0x0b, + 0xda, 0xbf, 0x69, 0x01, 0x70, 0x6f, 0xb1, 0x13, 0x6c, 0x92, 0x63, 0xb0, 0x80, 0xeb, 0x30, 0x14, + 0xb7, 0x49, 0xab, 0xd7, 0x61, 0x63, 0xda, 0x9e, 0x66, 0x9b, 0xb4, 0xd2, 0x0e, 0xa7, 0xff, 0x30, + 0x2b, 0x6d, 0xff, 0x1c, 0xc0, 0x54, 0x4a, 0x46, 0x2d, 0x13, 0xf4, 0x8c, 0x11, 0x2f, 0x7f, 0x26, + 0x13, 0x2f, 0x5f, 0x61, 0xd4, 0x5a, 0x88, 0xfc, 0x3b, 0x50, 0xde, 0x71, 0xee, 0x08, 0xf3, 0xe7, + 0xa9, 0xde, 0xcd, 0xa0, 0xfc, 0xe7, 0xaf, 0x3a, 0x77, 0xb8, 0x82, 0xf9, 0x94, 0x9c, 0x20, 0x57, + 0x9d, 0x3b, 0x77, 0xf9, 0x91, 0x22, 0x93, 0x35, 0xd4, 0xca, 0xfa, 0xc2, 0x9f, 0xa4, 0xff, 0xd9, + 0xb6, 0x41, 0x2b, 0x61, 0x75, 0x79, 0x81, 0xf0, 0x9d, 0x0e, 0x54, 0x97, 0x17, 0x64, 0xeb, 0xf2, + 0x82, 0x01, 0xea, 0xf2, 0x02, 0xf4, 0x1e, 0x8c, 0x8a, 0xb3, 0x0a, 0x16, 0xe8, 0x37, 0x7e, 0x61, + 0x61, 0x80, 0xfa, 0xc4, 0x51, 0x07, 0xaf, 0x73, 0x41, 0x2a, 0xd0, 0x02, 0xda, 0xb7, 0x5e, 0x59, + 0x21, 0xfa, 0x1b, 0x16, 0x4c, 0x89, 0xdf, 0x98, 0xbc, 0xdb, 0x21, 0x71, 0x22, 0x36, 0xea, 0x8f, + 0x0f, 0xde, 0x06, 0x51, 0x90, 0x37, 0xe5, 0xe3, 0x52, 0x5a, 0x9a, 0xc8, 0xbe, 0x2d, 0xca, 0xb4, + 0x02, 0xfd, 0x63, 0x0b, 0x4e, 0xee, 0x38, 0x77, 0x78, 0x8d, 0x1c, 0x86, 0x9d, 0xc4, 0x0b, 0x45, + 0xe0, 0xe2, 0xcb, 0x83, 0x0d, 0x7f, 0x57, 0x71, 0xde, 0x48, 0x19, 0xe3, 0x74, 0x32, 0x8f, 0xa4, + 0x6f, 0x53, 0x73, 0xdb, 0x35, 0xb7, 0x01, 0x63, 0x72, 0xbe, 0xe5, 0x98, 0x29, 0x75, 0x5d, 0x0b, + 0x39, 0xf4, 0x51, 0x91, 0x66, 0xd6, 0xb0, 0x7a, 0xc4, 0x5c, 0xbb, 0xaf, 0xf5, 0xbc, 0x03, 0x13, + 0xfa, 0x1c, 0xbb, 0xaf, 0x75, 0xbd, 0x0b, 0x27, 0x72, 0xe6, 0xd2, 0x7d, 0xad, 0xf2, 0x36, 0x9c, + 0x29, 0x9c, 0x1f, 0xf7, 0xb3, 0x62, 0xfb, 0x1b, 0x96, 0x2e, 0x07, 0x8f, 0xc1, 0x6f, 0xb4, 0x6c, + 0xfa, 0x8d, 0xce, 0xf6, 0x5e, 0x39, 0x05, 0xce, 0xa3, 0xb7, 0xf4, 0x46, 0x53, 0xa9, 0x8e, 0x5e, + 0x85, 0x11, 0x9f, 0x42, 0xe4, 0x01, 0x99, 0xdd, 0x7f, 0x45, 0xa6, 0x2a, 0x11, 0x83, 0xc7, 0x58, + 0x70, 0xb0, 0x7f, 0xc7, 0x82, 0xa1, 0x63, 0xe8, 0x09, 0x6c, 0xf6, 0xc4, 0x33, 0x85, 0xac, 0xc5, + 0x6d, 0xf0, 0x79, 0xec, 0xdc, 0x5e, 0xb9, 0x93, 0x90, 0x20, 0x66, 0x7a, 0x75, 0x6e, 0xc7, 0xfc, + 0x9f, 0x12, 0x8c, 0xd3, 0xaa, 0x64, 0x34, 0xc7, 0x4b, 0x30, 0xe9, 0x3b, 0xb7, 0x88, 0x2f, 0x7d, + 0xd9, 0x59, 0xeb, 0xf2, 0x8a, 0x8e, 0xc4, 0x26, 0x2d, 0x2d, 0xbc, 0xa1, 0xbb, 0xf5, 0x85, 0xfe, + 0xa2, 0x0a, 0x1b, 0x3e, 0x7f, 0x6c, 0xd2, 0x52, 0x43, 0xe7, 0xb6, 0x93, 0xb4, 0xb6, 0x84, 0xe5, + 0xa9, 0x9a, 0xfb, 0x3a, 0x05, 0x62, 0x8e, 0xa3, 0x7a, 0x98, 0x9c, 0x9d, 0x37, 0x49, 0xc4, 0xf4, + 0x30, 0xae, 0xe5, 0x2a, 0x3d, 0x0c, 0x9b, 0x68, 0x9c, 0xa5, 0x47, 0x9f, 0x84, 0x29, 0xda, 0x39, + 0x61, 0x27, 0x91, 0xb1, 0x2a, 0xc3, 0x2c, 0x56, 0x85, 0x85, 0x26, 0xaf, 0x1b, 0x18, 0x9c, 0xa1, + 0x44, 0x0d, 0x38, 0xe9, 0x05, 0x2d, 0xbf, 0xe3, 0x92, 0x1b, 0x81, 0x17, 0x78, 0x89, 0xe7, 0xf8, + 0xde, 0x7b, 0xc4, 0x15, 0x7a, 0xb0, 0x0a, 0x2b, 0x5a, 0xcb, 0xa1, 0xc1, 0xb9, 0x25, 0xed, 0x9f, + 0x81, 0x13, 0x57, 0x42, 0xc7, 0x5d, 0x72, 0x7c, 0x27, 0x68, 0x91, 0x68, 0x2d, 0xd8, 0xec, 0x7b, + 0x52, 0xae, 0x9f, 0x6b, 0x97, 0xfa, 0x9d, 0x6b, 0xdb, 0x5b, 0x80, 0xf4, 0x0a, 0x44, 0x8c, 0x16, + 0x86, 0x51, 0x8f, 0x57, 0x25, 0xa6, 0xff, 0xe3, 0xf9, 0x4a, 0x72, 0x57, 0xcb, 0xb4, 0xe8, 0x23, + 0x0e, 0xc0, 0x92, 0x11, 0x35, 0xa4, 0xf2, 0xb4, 0xea, 0xfe, 0x36, 0xae, 0xfd, 0x02, 0xcc, 0xb2, + 0x92, 0x87, 0xb4, 0xbf, 0xfe, 0xaa, 0x05, 0xd3, 0xd7, 0x32, 0x97, 0x53, 0x1f, 0x83, 0x91, 0x98, + 0x44, 0x39, 0x4e, 0xca, 0x26, 0x83, 0x62, 0x81, 0x3d, 0x72, 0x67, 0xc8, 0x0f, 0x2d, 0xa8, 0xb0, + 0xe0, 0xdf, 0x36, 0xb5, 0xa5, 0xee, 0xbf, 0x52, 0xbb, 0x6c, 0x28, 0xb5, 0xb9, 0x46, 0xba, 0x6a, + 0x4e, 0x91, 0x4e, 0x8b, 0x2e, 0xab, 0x4b, 0x9b, 0x3d, 0xec, 0xf3, 0x94, 0x0d, 0xbf, 0xe2, 0x37, + 0x65, 0xde, 0xec, 0x94, 0xd7, 0x38, 0xd9, 0x51, 0xb5, 0xa2, 0xfd, 0x90, 0x1c, 0x55, 0xab, 0xf6, + 0x14, 0x48, 0xbf, 0x86, 0xd6, 0x64, 0xb6, 0x2b, 0x7c, 0x9a, 0x85, 0x74, 0xb2, 0xb5, 0xa9, 0x6e, + 0x37, 0xd7, 0x44, 0x88, 0xa6, 0x80, 0xde, 0x65, 0x82, 0x4c, 0xfc, 0xe3, 0x57, 0xd6, 0xd3, 0x22, + 0xf6, 0x25, 0x98, 0xce, 0x74, 0x18, 0x7a, 0x01, 0x86, 0xdb, 0x5b, 0x4e, 0x4c, 0x32, 0x21, 0x3a, + 0xc3, 0x0d, 0x0a, 0xbc, 0xbb, 0x5f, 0x9b, 0x52, 0x05, 0x18, 0x04, 0x73, 0x6a, 0xfb, 0xbf, 0x5b, + 0x30, 0x74, 0x2d, 0x74, 0x8f, 0x63, 0x32, 0xbd, 0x62, 0x4c, 0xa6, 0x87, 0x8a, 0x52, 0x5f, 0x14, + 0xce, 0xa3, 0xd5, 0xcc, 0x3c, 0x3a, 0x5b, 0xc8, 0xa1, 0xf7, 0x14, 0xda, 0x81, 0x71, 0x96, 0x50, + 0x43, 0x84, 0x0b, 0x3d, 0x67, 0xd8, 0x57, 0xb5, 0x8c, 0x7d, 0x35, 0xad, 0x91, 0x6a, 0x56, 0xd6, + 0x13, 0x30, 0x2a, 0x42, 0x56, 0xb2, 0xc1, 0xab, 0x82, 0x16, 0x4b, 0xbc, 0xfd, 0x2b, 0x65, 0x30, + 0x12, 0x78, 0xa0, 0xdf, 0xb3, 0x60, 0x3e, 0xe2, 0xd7, 0x75, 0xdc, 0x7a, 0x27, 0xf2, 0x82, 0xcd, + 0x66, 0x6b, 0x8b, 0xb8, 0x1d, 0xdf, 0x0b, 0x36, 0xd7, 0x36, 0x83, 0x50, 0x81, 0x57, 0xee, 0x90, + 0x56, 0x87, 0x39, 0xa8, 0xfb, 0x64, 0x0b, 0x51, 0x47, 0xc2, 0x17, 0x0e, 0xf6, 0x6b, 0xf3, 0xf8, + 0x50, 0xbc, 0xf1, 0x21, 0xdb, 0x82, 0xfe, 0xc0, 0x82, 0x05, 0x9e, 0xd7, 0x62, 0xf0, 0xf6, 0xf7, + 0xb0, 0x46, 0x1b, 0x92, 0x55, 0xca, 0x64, 0x9d, 0x44, 0x3b, 0x4b, 0x9f, 0x10, 0x1d, 0xba, 0xd0, + 0x38, 0x5c, 0x5d, 0xf8, 0xb0, 0x8d, 0xb3, 0xff, 0x65, 0x19, 0x26, 0x69, 0x2f, 0xa6, 0x57, 0xd4, + 0x5f, 0x30, 0xa6, 0xc4, 0x23, 0x99, 0x29, 0x31, 0x6b, 0x10, 0x1f, 0xcd, 0xed, 0xf4, 0x18, 0x66, + 0x7d, 0x27, 0x4e, 0x2e, 0x11, 0x27, 0x4a, 0x6e, 0x11, 0x87, 0x9d, 0xc1, 0x8a, 0x69, 0x7e, 0x98, + 0x63, 0x5d, 0xe5, 0xc5, 0xba, 0x92, 0x65, 0x86, 0xbb, 0xf9, 0xa3, 0x5d, 0x40, 0xec, 0xbc, 0x37, + 0x72, 0x82, 0x98, 0x7f, 0x8b, 0x27, 0x9c, 0xd7, 0x87, 0xab, 0x75, 0x4e, 0xd4, 0x8a, 0xae, 0x74, + 0x71, 0xc3, 0x39, 0x35, 0x68, 0xe7, 0xf8, 0xc3, 0x83, 0x9e, 0xe3, 0x8f, 0xf4, 0x89, 0x10, 0xdf, + 0x81, 0x19, 0x31, 0x2a, 0x1b, 0xde, 0xa6, 0xd8, 0xa4, 0xdf, 0xc8, 0xc4, 0xf9, 0x58, 0x83, 0x47, + 0x24, 0xf4, 0x09, 0xf2, 0xb1, 0x7f, 0x16, 0x4e, 0xd0, 0xea, 0xcc, 0x78, 0xe6, 0x18, 0x11, 0x98, + 0xde, 0xee, 0xdc, 0x22, 0x3e, 0x49, 0x24, 0x4c, 0x54, 0x9a, 0xab, 0xf6, 0x9b, 0xa5, 0x53, 0xdd, + 0xf2, 0xb2, 0xc9, 0x02, 0x67, 0x79, 0xda, 0xbf, 0x6a, 0x01, 0x8b, 0x18, 0x3c, 0x86, 0xed, 0xef, + 0x53, 0xe6, 0xf6, 0x57, 0x2d, 0x92, 0x40, 0x05, 0x3b, 0xdf, 0xf3, 0x7c, 0x58, 0x1a, 0x51, 0x78, + 0x67, 0x4f, 0xea, 0xfe, 0xfd, 0x35, 0xae, 0xff, 0x6d, 0xf1, 0x05, 0xa9, 0x6e, 0x2f, 0xa2, 0xcf, + 0xc3, 0x58, 0xcb, 0x69, 0x3b, 0x2d, 0x9e, 0x39, 0xa9, 0xd0, 0xfb, 0x63, 0x14, 0x9a, 0x5f, 0x16, + 0x25, 0xb8, 0x37, 0xe3, 0x27, 0xe4, 0x57, 0x4a, 0x70, 0x5f, 0x0f, 0x86, 0xaa, 0x72, 0x6e, 0x1b, + 0x26, 0x0d, 0x66, 0xf7, 0xd5, 0xf4, 0xfd, 0x3c, 0xdf, 0x2e, 0x94, 0xc5, 0xb2, 0x03, 0xb3, 0x81, + 0xf6, 0x9f, 0x0a, 0x47, 0xa9, 0x4e, 0x7f, 0xb4, 0xdf, 0x86, 0xc0, 0x24, 0xa9, 0x16, 0x11, 0x99, + 0x61, 0x83, 0xbb, 0x39, 0xdb, 0x7f, 0xc7, 0x82, 0x07, 0x74, 0x42, 0xed, 0x62, 0x69, 0x3f, 0x7f, + 0x72, 0x1d, 0xc6, 0xc2, 0x36, 0x89, 0x9c, 0xd4, 0x26, 0x3b, 0x2f, 0x3b, 0xfd, 0xba, 0x80, 0xdf, + 0xdd, 0xaf, 0x9d, 0xd4, 0xb9, 0x4b, 0x38, 0x56, 0x25, 0x91, 0x0d, 0x23, 0xac, 0x33, 0x62, 0x71, + 0xe9, 0x97, 0x65, 0x17, 0x62, 0xe7, 0x50, 0x31, 0x16, 0x18, 0xfb, 0xe7, 0x2c, 0x3e, 0xb1, 0xf4, + 0xa6, 0xa3, 0x77, 0x61, 0x66, 0x87, 0x9a, 0x6f, 0x2b, 0x77, 0xda, 0x11, 0xf7, 0x86, 0xcb, 0x7e, + 0x7a, 0xaa, 0x5f, 0x3f, 0x69, 0x1f, 0xb9, 0x54, 0x15, 0x6d, 0x9e, 0xb9, 0x9a, 0x61, 0x86, 0xbb, + 0xd8, 0xdb, 0x7f, 0x56, 0xe2, 0x2b, 0x91, 0x69, 0x75, 0x4f, 0xc0, 0x68, 0x3b, 0x74, 0x97, 0xd7, + 0xea, 0x58, 0xf4, 0x90, 0x12, 0x57, 0x0d, 0x0e, 0xc6, 0x12, 0x8f, 0x2e, 0x00, 0x90, 0x3b, 0x09, + 0x89, 0x02, 0xc7, 0x57, 0xa7, 0xe4, 0x4a, 0x79, 0x5a, 0x51, 0x18, 0xac, 0x51, 0xd1, 0x32, 0xed, + 0x28, 0xdc, 0xf5, 0x5c, 0x76, 0xeb, 0xa2, 0x6c, 0x96, 0x69, 0x28, 0x0c, 0xd6, 0xa8, 0xa8, 0xa9, + 0xdc, 0x09, 0x62, 0xbe, 0x01, 0x3a, 0xb7, 0x44, 0x66, 0x9b, 0xb1, 0xd4, 0x54, 0xbe, 0xa1, 0x23, + 0xb1, 0x49, 0x8b, 0x16, 0x61, 0x24, 0x71, 0xd8, 0xd9, 0xef, 0x70, 0x71, 0x2c, 0xcd, 0x3a, 0xa5, + 0xd0, 0x13, 0x08, 0xd1, 0x02, 0x58, 0x14, 0x44, 0x6f, 0x4a, 0x11, 0xcc, 0x45, 0xb2, 0x88, 0x89, + 0x2a, 0x9c, 0xb6, 0xba, 0xf8, 0xd6, 0x65, 0xb0, 0x88, 0xb5, 0x32, 0x78, 0xd9, 0x5f, 0xac, 0x00, + 0xa4, 0xda, 0x1e, 0x7a, 0xaf, 0x4b, 0x44, 0x3c, 0xdd, 0x5b, 0x3f, 0x3c, 0x3a, 0xf9, 0x80, 0xbe, + 0x64, 0xc1, 0xb8, 0xe3, 0xfb, 0x61, 0xcb, 0x49, 0x58, 0x2f, 0x97, 0x7a, 0x8b, 0x28, 0x51, 0xff, + 0x62, 0x5a, 0x82, 0x37, 0xe1, 0x39, 0x79, 0xac, 0xab, 0x61, 0xfa, 0xb6, 0x42, 0xaf, 0x18, 0xfd, + 0x84, 0x34, 0x02, 0xf8, 0xf4, 0x98, 0xcb, 0x1a, 0x01, 0x15, 0x26, 0x8d, 0x35, 0xfd, 0x1f, 0xdd, + 0x30, 0x12, 0xca, 0x0c, 0x15, 0xdf, 0x9d, 0x35, 0x94, 0x9e, 0x7e, 0xb9, 0x64, 0x50, 0x43, 0x8f, + 0x0d, 0x1f, 0x2e, 0xbe, 0x60, 0xae, 0x69, 0xd7, 0x7d, 0xe2, 0xc2, 0xdf, 0x81, 0x69, 0xd7, 0xdc, + 0x6e, 0xc5, 0x6c, 0x7a, 0xbc, 0x88, 0x6f, 0x66, 0x77, 0x4e, 0x37, 0xd8, 0x0c, 0x02, 0x67, 0x19, + 0xa3, 0x06, 0x8f, 0xd2, 0x5f, 0x0b, 0x36, 0x42, 0x11, 0x5b, 0x67, 0x17, 0x8e, 0xe5, 0x5e, 0x9c, + 0x90, 0x1d, 0x4a, 0x99, 0xee, 0xa3, 0xd7, 0x44, 0x59, 0xac, 0xb8, 0xa0, 0x57, 0x61, 0x84, 0x5d, + 0x9f, 0x8a, 0xab, 0x63, 0xc5, 0x7e, 0x40, 0xf3, 0xe6, 0x6f, 0xba, 0xa8, 0xd8, 0xdf, 0x18, 0x0b, + 0x0e, 0xe8, 0x92, 0xbc, 0xbf, 0x1f, 0xaf, 0x05, 0x37, 0x62, 0xc2, 0xee, 0xef, 0x57, 0x96, 0x3e, + 0x9a, 0x5e, 0xcd, 0xe7, 0xf0, 0xdc, 0xa4, 0x79, 0x46, 0x49, 0xaa, 0xaf, 0x88, 0xff, 0x32, 0x17, + 0x5f, 0x15, 0x8a, 0x9b, 0x67, 0xe6, 0xeb, 0x4b, 0xbb, 0xf3, 0xa6, 0xc9, 0x02, 0x67, 0x79, 0x1e, + 0xeb, 0xf6, 0x39, 0x17, 0xc0, 0x4c, 0x76, 0x61, 0xdd, 0xd7, 0xed, 0xfa, 0x07, 0x43, 0x30, 0x65, + 0x4e, 0x04, 0xb4, 0x00, 0x15, 0xc1, 0x44, 0x65, 0xdf, 0x52, 0x73, 0xfb, 0xaa, 0x44, 0xe0, 0x94, + 0x86, 0x65, 0x1f, 0x63, 0xc5, 0xb5, 0xa0, 0xa9, 0x34, 0xfb, 0x98, 0xc2, 0x60, 0x8d, 0x8a, 0x2a, + 0xd1, 0xb7, 0xc2, 0x30, 0x51, 0x5b, 0x81, 0x9a, 0x2d, 0x4b, 0x0c, 0x8a, 0x05, 0x96, 0x6e, 0x01, + 0xdb, 0x24, 0x0a, 0x88, 0x6f, 0x7a, 0x32, 0xd5, 0x16, 0x70, 0x59, 0x47, 0x62, 0x93, 0x96, 0x6e, + 0x69, 0x61, 0xcc, 0xa6, 0x9f, 0x50, 0xd5, 0xd3, 0x20, 0xb4, 0x26, 0xbf, 0x3e, 0x28, 0xf1, 0xe8, + 0x0d, 0x78, 0x40, 0xdd, 0xf6, 0xc3, 0xdc, 0x33, 0x2c, 0x6b, 0x1c, 0x31, 0x2c, 0xeb, 0x07, 0x96, + 0xf3, 0xc9, 0x70, 0x51, 0x79, 0xf4, 0x0a, 0x4c, 0x09, 0x15, 0x58, 0x72, 0x1c, 0x35, 0x63, 0x0e, + 0x2e, 0x1b, 0x58, 0x9c, 0xa1, 0x46, 0x75, 0x98, 0xa1, 0x10, 0xa6, 0x85, 0x4a, 0x0e, 0xfc, 0xd6, + 0xa2, 0xda, 0xeb, 0x2f, 0x67, 0xf0, 0xb8, 0xab, 0x04, 0x5a, 0x84, 0x69, 0xae, 0xa3, 0x50, 0x9b, + 0x92, 0x8d, 0x83, 0x08, 0x79, 0x55, 0x0b, 0xe1, 0xba, 0x89, 0xc6, 0x59, 0x7a, 0xf4, 0x22, 0x4c, + 0x38, 0x51, 0x6b, 0xcb, 0x4b, 0x48, 0x2b, 0xe9, 0x44, 0x3c, 0x3b, 0x86, 0x16, 0xb4, 0xb1, 0xa8, + 0xe1, 0xb0, 0x41, 0x69, 0xbf, 0x07, 0x27, 0x72, 0xa2, 0xe5, 0xe9, 0xc4, 0x71, 0xda, 0x9e, 0xfc, + 0xa6, 0x4c, 0x38, 0xd9, 0x62, 0x63, 0x4d, 0x7e, 0x8d, 0x46, 0x45, 0x67, 0x27, 0x73, 0x89, 0x6b, + 0x09, 0x33, 0xd5, 0xec, 0x5c, 0x95, 0x08, 0x9c, 0xd2, 0xd8, 0xdf, 0x01, 0xd0, 0x1c, 0x3a, 0x03, + 0x04, 0x13, 0xbd, 0x08, 0x13, 0x32, 0xcb, 0xab, 0x96, 0x53, 0x51, 0x7d, 0xe6, 0x45, 0x0d, 0x87, + 0x0d, 0x4a, 0xda, 0xb6, 0x40, 0xba, 0xa9, 0xb2, 0xc1, 0x6b, 0xca, 0x7f, 0x85, 0x53, 0x1a, 0xf4, + 0x34, 0x8c, 0xc5, 0xc4, 0xdf, 0xb8, 0xe2, 0x05, 0xdb, 0x62, 0x62, 0x2b, 0x29, 0xdc, 0x14, 0x70, + 0xac, 0x28, 0xd0, 0x12, 0x94, 0x3b, 0x9e, 0x2b, 0xa6, 0xb2, 0xdc, 0xf0, 0xcb, 0x37, 0xd6, 0xea, + 0x77, 0xf7, 0x6b, 0x8f, 0x14, 0x25, 0xaf, 0xa5, 0xa6, 0x7d, 0x3c, 0x4f, 0x97, 0x1f, 0x2d, 0x9c, + 0x77, 0x36, 0x30, 0x72, 0xc8, 0xb3, 0x81, 0x0b, 0x00, 0xe2, 0xab, 0xe5, 0x5c, 0x2e, 0xa7, 0xa3, + 0x76, 0x51, 0x61, 0xb0, 0x46, 0x85, 0x62, 0x98, 0x6d, 0x45, 0xc4, 0x91, 0x36, 0x34, 0x8f, 0xfb, + 0x1e, 0xbb, 0x77, 0x07, 0xc1, 0x72, 0x96, 0x19, 0xee, 0xe6, 0x8f, 0x42, 0x98, 0x75, 0xc5, 0xe5, + 0xd2, 0xb4, 0xd2, 0xca, 0xe1, 0x83, 0xcd, 0x59, 0x5c, 0x4d, 0x96, 0x11, 0xee, 0xe6, 0x8d, 0xde, + 0x86, 0x39, 0x09, 0xec, 0xbe, 0xcf, 0xcb, 0x96, 0x4b, 0x79, 0xe9, 0xec, 0xc1, 0x7e, 0x6d, 0xae, + 0x5e, 0x48, 0x85, 0x7b, 0x70, 0x40, 0x18, 0x46, 0xd8, 0x59, 0x52, 0x5c, 0x1d, 0x67, 0xfb, 0xdc, + 0x93, 0xc5, 0xce, 0x00, 0x3a, 0xd7, 0xe7, 0xd9, 0x39, 0x94, 0x88, 0xbf, 0x4d, 0x8f, 0xe5, 0x18, + 0x10, 0x0b, 0x4e, 0x68, 0x03, 0xc6, 0x9d, 0x20, 0x08, 0x13, 0x87, 0xab, 0x50, 0x13, 0xc5, 0xba, + 0x9f, 0xc6, 0x78, 0x31, 0x2d, 0xc1, 0xb9, 0xab, 0x90, 0x3e, 0x0d, 0x83, 0x75, 0xc6, 0xe8, 0x36, + 0x4c, 0x87, 0xb7, 0xa9, 0x70, 0x94, 0x5e, 0x8a, 0xb8, 0x3a, 0xc9, 0xea, 0x7a, 0x7e, 0x40, 0x3f, + 0xad, 0x51, 0x58, 0x93, 0x5a, 0x26, 0x53, 0x9c, 0xad, 0x05, 0xcd, 0x1b, 0xde, 0xea, 0xa9, 0x34, + 0xd0, 0x3c, 0xf5, 0x56, 0xeb, 0xce, 0x69, 0x76, 0x3f, 0x9c, 0xc7, 0x93, 0xb2, 0xd5, 0x3f, 0x9d, + 0xb9, 0x1f, 0x9e, 0xa2, 0xb0, 0x4e, 0x87, 0xb6, 0x60, 0x22, 0x3d, 0xb2, 0x8a, 0x62, 0x96, 0x3e, + 0x66, 0xfc, 0xc2, 0x85, 0xc1, 0x3e, 0x6e, 0x4d, 0x2b, 0xc9, 0x2d, 0x07, 0x1d, 0x82, 0x0d, 0xce, + 0x73, 0x3f, 0x09, 0xe3, 0xda, 0xc0, 0x1e, 0x26, 0x5c, 0x7a, 0xee, 0x15, 0x98, 0xc9, 0x0e, 0xdd, + 0xa1, 0xc2, 0xad, 0xff, 0x67, 0x09, 0xa6, 0x73, 0x4e, 0xae, 0x58, 0x02, 0xdc, 0x8c, 0x40, 0x4d, + 0xf3, 0xdd, 0x9a, 0x62, 0xb1, 0x34, 0x80, 0x58, 0x94, 0x32, 0xba, 0x5c, 0x28, 0xa3, 0x85, 0x28, + 0x1c, 0x7a, 0x3f, 0xa2, 0xd0, 0xdc, 0x7d, 0x86, 0x07, 0xda, 0x7d, 0x8e, 0x40, 0x7c, 0x1a, 0x1b, + 0xd8, 0xe8, 0x00, 0x1b, 0xd8, 0x2f, 0x96, 0x60, 0x26, 0x0d, 0x2d, 0x17, 0xe9, 0xa6, 0xef, 0xff, + 0x79, 0xc7, 0xab, 0xc6, 0x79, 0x47, 0x7e, 0x3a, 0xe9, 0x4c, 0xab, 0x0a, 0xcf, 0x3e, 0x70, 0xe6, + 0xec, 0xe3, 0xc9, 0x81, 0xb8, 0xf5, 0x3e, 0x07, 0xf9, 0xbb, 0x25, 0x38, 0x95, 0x2d, 0xb2, 0xec, + 0x3b, 0xde, 0xce, 0x31, 0xf4, 0xcd, 0x75, 0xa3, 0x6f, 0x9e, 0x19, 0xe4, 0x6b, 0x58, 0xd3, 0x0a, + 0x3b, 0xe8, 0xf5, 0x4c, 0x07, 0x2d, 0x0c, 0xce, 0xb2, 0x77, 0x2f, 0x7d, 0xc7, 0x82, 0x33, 0xb9, + 0xe5, 0x8e, 0xc1, 0xfb, 0x7a, 0xcd, 0xf4, 0xbe, 0x3e, 0x31, 0xf0, 0x37, 0x15, 0xb8, 0x63, 0xbf, + 0x5a, 0x2e, 0xf8, 0x16, 0xe6, 0xbf, 0xba, 0x0e, 0xe3, 0x4e, 0xab, 0x45, 0xe2, 0xf8, 0x6a, 0xe8, + 0xaa, 0x7c, 0x53, 0xcf, 0xb0, 0x3d, 0x29, 0x05, 0xdf, 0xdd, 0xaf, 0xcd, 0x65, 0x59, 0xa4, 0x68, + 0xac, 0x73, 0x30, 0x73, 0xd8, 0x95, 0x8e, 0x34, 0x87, 0xdd, 0x05, 0x80, 0x5d, 0x65, 0xd5, 0x66, + 0x9d, 0x61, 0x9a, 0xbd, 0xab, 0x51, 0xa1, 0x9f, 0x66, 0xba, 0x22, 0x0f, 0x19, 0xe1, 0x87, 0x1c, + 0xcf, 0x0d, 0x38, 0x56, 0x7a, 0xf8, 0x09, 0xbf, 0xa1, 0xaa, 0x1c, 0x87, 0x8a, 0x25, 0xfa, 0x0c, + 0xcc, 0xc4, 0x3c, 0x09, 0xc2, 0xb2, 0xef, 0xc4, 0xec, 0x5e, 0x84, 0x90, 0x89, 0xec, 0xda, 0x69, + 0x33, 0x83, 0xc3, 0x5d, 0xd4, 0xf6, 0x3f, 0x2c, 0xc3, 0x83, 0x3d, 0xa6, 0x28, 0x5a, 0x34, 0x8f, + 0x78, 0x9f, 0xca, 0x7a, 0x77, 0xe6, 0x72, 0x0b, 0x1b, 0xee, 0x9e, 0xcc, 0x18, 0x97, 0xde, 0xf7, + 0x18, 0x7f, 0xd9, 0xd2, 0xfc, 0x6e, 0x3c, 0x10, 0xf4, 0x53, 0x87, 0x5c, 0x7a, 0x3f, 0xaa, 0x8e, + 0xfa, 0x2f, 0x58, 0xf0, 0x48, 0xee, 0x67, 0x19, 0xa1, 0x22, 0x0b, 0x50, 0x69, 0x51, 0xa0, 0x76, + 0x77, 0x29, 0xbd, 0x41, 0x28, 0x11, 0x38, 0xa5, 0x31, 0x22, 0x42, 0x4a, 0x7d, 0x23, 0x42, 0xfe, + 0xb9, 0x05, 0x27, 0xb3, 0x8d, 0x38, 0x06, 0xc9, 0xb4, 0x66, 0x4a, 0xa6, 0x8f, 0x0e, 0x32, 0xe4, + 0x05, 0x42, 0xe9, 0xdf, 0x4f, 0xc1, 0xe9, 0xae, 0x9d, 0x8b, 0xf7, 0xdd, 0x2e, 0xcc, 0x6e, 0x32, + 0x15, 0x5e, 0xbb, 0x15, 0x26, 0x3e, 0x26, 0xf7, 0x02, 0x5d, 0xcf, 0x2b, 0x64, 0xdc, 0x0c, 0xe9, + 0x22, 0xc1, 0xdd, 0x55, 0xa0, 0x2f, 0x58, 0x70, 0xd2, 0xb9, 0x1d, 0x77, 0xbd, 0x49, 0x22, 0xe6, + 0xcc, 0xf3, 0xb9, 0xde, 0xb1, 0x3e, 0x6f, 0x98, 0x2c, 0x55, 0x0f, 0xf6, 0x6b, 0x27, 0xf3, 0xa8, + 0x70, 0x6e, 0x5d, 0x08, 0x8b, 0x94, 0x7b, 0x54, 0xcb, 0xe9, 0x71, 0x6f, 0x31, 0xef, 0x56, 0x09, + 0x97, 0x51, 0x12, 0x83, 0x15, 0x1f, 0x74, 0x13, 0x2a, 0x9b, 0xf2, 0xaa, 0x97, 0x90, 0x81, 0xb9, + 0x9b, 0x4a, 0xee, 0x7d, 0x30, 0x1e, 0xb1, 0xaf, 0x50, 0x38, 0x65, 0x85, 0x5e, 0x81, 0x72, 0xb0, + 0x11, 0x8b, 0x3b, 0xd4, 0xf9, 0xf1, 0x3d, 0x66, 0x04, 0x15, 0xbf, 0x80, 0x7a, 0x6d, 0xb5, 0x89, + 0x69, 0x41, 0x5a, 0x3e, 0xba, 0xe5, 0x0a, 0x87, 0x6e, 0x6e, 0x79, 0xbc, 0x54, 0xef, 0x2e, 0x8f, + 0x97, 0xea, 0x98, 0x16, 0x44, 0xab, 0x30, 0xcc, 0xee, 0x99, 0x08, 0x6f, 0x6d, 0xee, 0x05, 0xfa, + 0xae, 0x3b, 0x34, 0xfc, 0x46, 0x2a, 0x03, 0x63, 0x5e, 0x1c, 0xbd, 0x0a, 0x23, 0x2d, 0x96, 0x4c, + 0x5f, 0x98, 0xd6, 0xf9, 0x49, 0x21, 0xba, 0xd2, 0xed, 0xf3, 0x33, 0x2a, 0x0e, 0xc7, 0x82, 0x03, + 0xe3, 0x45, 0xda, 0x5b, 0x1b, 0xb1, 0xb0, 0x98, 0xf3, 0x79, 0x75, 0x3d, 0x7c, 0x20, 0x78, 0x31, + 0x38, 0x16, 0x1c, 0xd0, 0x27, 0xa1, 0xb4, 0xd1, 0x12, 0x17, 0x4d, 0x72, 0x7d, 0xb3, 0xe6, 0xdd, + 0xe0, 0xa5, 0x91, 0x83, 0xfd, 0x5a, 0x69, 0x75, 0x19, 0x97, 0x36, 0x5a, 0xe8, 0x1a, 0x8c, 0x6e, + 0xf0, 0x0b, 0x9e, 0x22, 0x71, 0xea, 0xe3, 0xf9, 0x77, 0x4f, 0xbb, 0xee, 0x80, 0xf2, 0x9b, 0x15, + 0x02, 0x81, 0x25, 0x13, 0xb4, 0x0e, 0xb0, 0xa1, 0x2e, 0xaa, 0x8a, 0xcc, 0xa9, 0x1f, 0x1d, 0xe4, + 0x3a, 0xab, 0x30, 0x1a, 0x15, 0x14, 0x6b, 0x7c, 0xe8, 0xcc, 0x74, 0xe4, 0x8b, 0x1e, 0x2c, 0x6b, + 0x6a, 0xc1, 0xcc, 0xcc, 0x7d, 0xf6, 0x83, 0xcf, 0x4c, 0x85, 0xc2, 0x29, 0x2b, 0xb4, 0x0d, 0x93, + 0xbb, 0x71, 0x7b, 0x8b, 0xc8, 0xc5, 0xc8, 0x12, 0xa8, 0x9a, 0x66, 0x65, 0x9a, 0xed, 0x56, 0x10, + 0x7a, 0x51, 0xd2, 0x71, 0xfc, 0x2e, 0xf9, 0xc1, 0x12, 0x80, 0xdd, 0xd4, 0x99, 0x61, 0x93, 0x37, + 0xed, 0xea, 0x77, 0x3b, 0xe1, 0xad, 0xbd, 0x84, 0x88, 0xb4, 0xaa, 0xb9, 0x5d, 0xfd, 0x1a, 0x27, + 0xe9, 0xee, 0x6a, 0x81, 0xc0, 0x92, 0x89, 0xea, 0x14, 0x26, 0xf7, 0x66, 0xfa, 0x74, 0x4a, 0x57, + 0x7b, 0xd3, 0x4e, 0x61, 0x72, 0x2e, 0x65, 0xc5, 0xe4, 0x5b, 0x7b, 0x2b, 0x4c, 0xc2, 0x20, 0x23, + 0x5b, 0x67, 0x8b, 0xe5, 0x5b, 0x23, 0x87, 0xbe, 0x5b, 0xbe, 0xe5, 0x51, 0xe1, 0xdc, 0xba, 0x90, + 0x0b, 0x53, 0xed, 0x30, 0x4a, 0x6e, 0x87, 0x91, 0x9c, 0x4b, 0xa8, 0x87, 0xa1, 0x64, 0x50, 0x8a, + 0x1a, 0x59, 0x2c, 0xad, 0x89, 0xc1, 0x19, 0x9e, 0x74, 0x48, 0xe2, 0x96, 0xe3, 0x93, 0xb5, 0xeb, + 0xd5, 0x13, 0xc5, 0x43, 0xd2, 0xe4, 0x24, 0xdd, 0x43, 0x22, 0x10, 0x58, 0x32, 0xa1, 0x92, 0x86, + 0x65, 0xe8, 0x66, 0x79, 0x60, 0x0b, 0x24, 0x4d, 0x57, 0x94, 0x29, 0x97, 0x34, 0x0c, 0x8c, 0x79, + 0x71, 0xf4, 0x39, 0xa8, 0x08, 0xfd, 0x2f, 0x8c, 0xab, 0xa7, 0xba, 0xb4, 0xd1, 0xb4, 0x65, 0x9c, + 0xe8, 0x7a, 0x33, 0x7f, 0x8b, 0x14, 0x97, 0xc9, 0x24, 0x11, 0x4e, 0x99, 0xda, 0x5f, 0x1c, 0xe9, + 0xd6, 0x0c, 0x98, 0x9e, 0xff, 0x45, 0xab, 0xeb, 0xa8, 0xf4, 0xe3, 0x83, 0x1a, 0xa7, 0x47, 0x78, + 0x68, 0xfa, 0x05, 0x0b, 0x4e, 0xb7, 0x73, 0x3f, 0x4a, 0x6c, 0xb3, 0x83, 0xd9, 0xb8, 0xbc, 0x1b, + 0x54, 0x86, 0xe5, 0x7c, 0x3c, 0x2e, 0xa8, 0x29, 0xab, 0x0f, 0x97, 0xdf, 0xb7, 0x3e, 0x7c, 0x15, + 0xc6, 0x98, 0x2a, 0x97, 0x66, 0x73, 0x19, 0x28, 0xe0, 0x88, 0x6d, 0xd8, 0xcb, 0xa2, 0x20, 0x56, + 0x2c, 0xd0, 0xcf, 0x5b, 0xf0, 0x70, 0xb6, 0xe9, 0x98, 0x30, 0xb4, 0xc8, 0x0e, 0xc8, 0x4d, 0x8c, + 0x55, 0xf1, 0xfd, 0x0f, 0x37, 0x7a, 0x11, 0xdf, 0xed, 0x47, 0x80, 0x7b, 0x57, 0x86, 0xea, 0x39, + 0x36, 0xce, 0x88, 0x79, 0x92, 0xd2, 0xdf, 0xce, 0x39, 0x5e, 0x2d, 0xfd, 0x6b, 0x56, 0x8e, 0x7a, + 0xc9, 0xed, 0xa9, 0x97, 0x4d, 0x7b, 0xea, 0xb1, 0xac, 0x3d, 0xd5, 0xe5, 0x1d, 0x31, 0x4c, 0xa9, + 0xc1, 0xf3, 0x97, 0x0e, 0x9a, 0xb8, 0xc6, 0xf6, 0xe1, 0x5c, 0x3f, 0x31, 0xcb, 0xc2, 0xa7, 0x5c, + 0x75, 0xae, 0x98, 0x86, 0x4f, 0xb9, 0x6b, 0x75, 0xcc, 0x30, 0x83, 0xa6, 0x40, 0xb0, 0xff, 0xab, + 0x05, 0xe5, 0x46, 0xe8, 0x1e, 0x83, 0xb7, 0xe7, 0x53, 0x86, 0xb7, 0xe7, 0xc1, 0x82, 0x57, 0xe4, + 0x0a, 0x7d, 0x3b, 0x2b, 0x19, 0xdf, 0xce, 0xc3, 0x45, 0x0c, 0x7a, 0x7b, 0x72, 0xfe, 0x5e, 0x19, + 0xf4, 0x37, 0xef, 0xd0, 0xbf, 0xba, 0x97, 0x38, 0xdc, 0x72, 0xaf, 0x67, 0xf0, 0x04, 0x67, 0x16, + 0x75, 0x25, 0xaf, 0xf8, 0xfd, 0x88, 0x85, 0xe3, 0xbe, 0x4e, 0xbc, 0xcd, 0xad, 0x84, 0xb8, 0xd9, + 0xcf, 0x39, 0xbe, 0x70, 0xdc, 0xff, 0x64, 0xc1, 0x74, 0xa6, 0x76, 0xe4, 0xe7, 0xdd, 0x17, 0xba, + 0x47, 0xff, 0xcd, 0x6c, 0xdf, 0x0b, 0x46, 0xf3, 0x00, 0xca, 0x95, 0x2e, 0x7d, 0x24, 0x4c, 0x77, + 0x55, 0xbe, 0xf6, 0x18, 0x6b, 0x14, 0xe8, 0x05, 0x18, 0x4f, 0xc2, 0x76, 0xe8, 0x87, 0x9b, 0x7b, + 0x97, 0x89, 0x4c, 0xba, 0xa1, 0x0e, 0x3c, 0xd6, 0x53, 0x14, 0xd6, 0xe9, 0xec, 0x5f, 0x2b, 0x43, + 0xf6, 0x9d, 0xc4, 0xff, 0x3f, 0x27, 0x3f, 0x9c, 0x73, 0xf2, 0xbb, 0x16, 0xcc, 0xd0, 0xda, 0x59, + 0x44, 0x8b, 0x0c, 0x64, 0x55, 0x0f, 0x1d, 0x58, 0x3d, 0x1e, 0x3a, 0x78, 0x8c, 0xca, 0x2e, 0x37, + 0xec, 0x24, 0xc2, 0x97, 0xa3, 0x09, 0x27, 0x0a, 0xc5, 0x02, 0x2b, 0xe8, 0x48, 0x14, 0x89, 0x5b, + 0x40, 0x3a, 0x1d, 0x89, 0x22, 0x2c, 0xb0, 0xf2, 0x1d, 0x84, 0xa1, 0x82, 0x77, 0x10, 0x58, 0xbe, + 0x2a, 0x11, 0x45, 0x21, 0x54, 0x03, 0x2d, 0x5f, 0x95, 0x0c, 0xaf, 0x48, 0x69, 0xec, 0x6f, 0x94, + 0x61, 0xa2, 0x11, 0xba, 0x69, 0xec, 0xfb, 0xf3, 0x46, 0xec, 0xfb, 0xb9, 0x4c, 0xec, 0xfb, 0x8c, + 0x4e, 0x7b, 0x34, 0xa1, 0xef, 0x22, 0x9b, 0x19, 0x7b, 0x95, 0xe3, 0x1e, 0xc3, 0xde, 0x8d, 0x6c, + 0x66, 0x8a, 0x11, 0x36, 0xf9, 0xfe, 0x38, 0x85, 0xbb, 0xff, 0xb9, 0x05, 0x53, 0x8d, 0xd0, 0xa5, + 0x13, 0xf4, 0xc7, 0x69, 0x36, 0xea, 0xd9, 0xd0, 0x46, 0x7a, 0x64, 0x43, 0xfb, 0xfb, 0x16, 0x8c, + 0x36, 0x42, 0xf7, 0x18, 0xfc, 0x9c, 0x2f, 0x9b, 0x7e, 0xce, 0x07, 0x0a, 0xa4, 0x6c, 0x81, 0x6b, + 0xf3, 0xb7, 0xca, 0x30, 0x49, 0xdb, 0x19, 0x6e, 0xca, 0x51, 0x32, 0x7a, 0xc4, 0x1a, 0xa0, 0x47, + 0xa8, 0x32, 0x17, 0xfa, 0x7e, 0x78, 0x3b, 0x3b, 0x62, 0xab, 0x0c, 0x8a, 0x05, 0x16, 0x3d, 0x0d, + 0x63, 0xed, 0x88, 0xec, 0x7a, 0x61, 0x27, 0xce, 0xde, 0x23, 0x6c, 0x08, 0x38, 0x56, 0x14, 0xe8, + 0x79, 0x98, 0x88, 0xbd, 0xa0, 0x45, 0x64, 0x64, 0xc5, 0x10, 0x8b, 0xac, 0xe0, 0x09, 0x25, 0x35, + 0x38, 0x36, 0xa8, 0xd0, 0xeb, 0x50, 0x61, 0xff, 0xd9, 0xba, 0x39, 0xfc, 0x33, 0x07, 0xdc, 0x54, + 0x95, 0x0c, 0x70, 0xca, 0x0b, 0x5d, 0x00, 0x48, 0x64, 0x0c, 0x48, 0x2c, 0xae, 0xb9, 0x2a, 0x8d, + 0x52, 0x45, 0x87, 0xc4, 0x58, 0xa3, 0x42, 0x4f, 0x41, 0x25, 0x71, 0x3c, 0xff, 0x8a, 0x17, 0x90, + 0x58, 0xc4, 0xd0, 0x88, 0x24, 0xcd, 0x02, 0x88, 0x53, 0x3c, 0xdd, 0xd1, 0xd9, 0x25, 0x6a, 0xfe, + 0x48, 0xca, 0x18, 0xa3, 0x66, 0x3b, 0xfa, 0x15, 0x05, 0xc5, 0x1a, 0x85, 0xfd, 0x22, 0x9c, 0x6a, + 0x84, 0x6e, 0x23, 0x8c, 0x92, 0xd5, 0x30, 0xba, 0xed, 0x44, 0xae, 0x1c, 0xbf, 0x9a, 0xcc, 0x17, + 0x4c, 0x77, 0xdd, 0x61, 0x6e, 0xd7, 0x1b, 0x99, 0x80, 0x9f, 0x63, 0x7b, 0xfa, 0x21, 0x2f, 0x3c, + 0xfc, 0xdb, 0x12, 0xa0, 0x06, 0x8b, 0x52, 0x31, 0x5e, 0xd2, 0x79, 0x1b, 0xa6, 0x62, 0x72, 0xc5, + 0x0b, 0x3a, 0x77, 0x04, 0xab, 0x5e, 0xb7, 0x49, 0x9a, 0x2b, 0x3a, 0x25, 0xf7, 0x8d, 0x98, 0x30, + 0x9c, 0xe1, 0x46, 0xbb, 0x30, 0xea, 0x04, 0x8b, 0xf1, 0x8d, 0x98, 0x44, 0xe2, 0xe5, 0x18, 0xd6, + 0x85, 0x58, 0x02, 0x71, 0x8a, 0xa7, 0x53, 0x86, 0xfd, 0xb9, 0x16, 0x06, 0x38, 0x0c, 0x13, 0x39, + 0xc9, 0xd8, 0xdb, 0x03, 0x1a, 0x1c, 0x1b, 0x54, 0x68, 0x15, 0x50, 0xdc, 0x69, 0xb7, 0x7d, 0x76, + 0xa8, 0xe7, 0xf8, 0x17, 0xa3, 0xb0, 0xd3, 0xe6, 0x61, 0xc6, 0x22, 0x6d, 0x7f, 0xb3, 0x0b, 0x8b, + 0x73, 0x4a, 0x50, 0xc1, 0xb0, 0x11, 0xb3, 0xdf, 0xe2, 0x1e, 0x35, 0xf7, 0x4d, 0x36, 0x19, 0x08, + 0x4b, 0x9c, 0xfd, 0x79, 0xb6, 0x99, 0xb1, 0x07, 0x3f, 0x92, 0x4e, 0x44, 0xd0, 0x0e, 0x4c, 0xb6, + 0xd9, 0x86, 0x95, 0x44, 0xa1, 0xef, 0x13, 0xa9, 0x37, 0xde, 0x5b, 0xc4, 0x0c, 0x7f, 0x00, 0x40, + 0x67, 0x87, 0x4d, 0xee, 0xf6, 0x17, 0xa7, 0x99, 0x5c, 0x6a, 0x72, 0xa3, 0x65, 0x54, 0xc4, 0xc1, + 0x0a, 0x0d, 0x6d, 0xae, 0xf8, 0x81, 0xad, 0x54, 0xd2, 0x8b, 0x58, 0x5a, 0x2c, 0xcb, 0xa2, 0xd7, + 0x58, 0x7c, 0x36, 0x17, 0x06, 0xfd, 0x9e, 0xf6, 0xe3, 0x54, 0x46, 0x6c, 0xb6, 0x28, 0x88, 0x35, + 0x26, 0xe8, 0x0a, 0x4c, 0x8a, 0xf7, 0x21, 0x84, 0x0b, 0xa1, 0x6c, 0x98, 0xbf, 0x93, 0x58, 0x47, + 0xde, 0xcd, 0x02, 0xb0, 0x59, 0x18, 0x6d, 0xc2, 0xc3, 0xda, 0x6b, 0x46, 0x39, 0x51, 0x5b, 0x5c, + 0xb6, 0x3c, 0x72, 0xb0, 0x5f, 0x7b, 0x78, 0xbd, 0x17, 0x21, 0xee, 0xcd, 0x07, 0x5d, 0x87, 0x53, + 0x4e, 0x2b, 0xf1, 0x76, 0x49, 0x9d, 0x38, 0xae, 0xef, 0x05, 0xc4, 0xbc, 0x58, 0x7f, 0xe6, 0x60, + 0xbf, 0x76, 0x6a, 0x31, 0x8f, 0x00, 0xe7, 0x97, 0x43, 0x2f, 0x43, 0xc5, 0x0d, 0x62, 0xd1, 0x07, + 0x23, 0xc6, 0x43, 0x5d, 0x95, 0xfa, 0xb5, 0xa6, 0xfa, 0xfe, 0xf4, 0x0f, 0x4e, 0x0b, 0xa0, 0x4d, + 0xfe, 0xa0, 0xbb, 0xb2, 0x48, 0x46, 0xbb, 0xb2, 0x25, 0x64, 0x6d, 0x5b, 0xe3, 0xc6, 0x09, 0xf7, + 0x9f, 0xa9, 0x98, 0x48, 0xe3, 0x32, 0x8a, 0xc1, 0x18, 0xbd, 0x0a, 0x28, 0x26, 0xd1, 0xae, 0xd7, + 0x22, 0x8b, 0x2d, 0x96, 0x71, 0x95, 0x79, 0x5d, 0xc6, 0x8c, 0x00, 0x7f, 0xd4, 0xec, 0xa2, 0xc0, + 0x39, 0xa5, 0xd0, 0x25, 0x2a, 0x51, 0x74, 0xa8, 0x08, 0x61, 0x95, 0x6a, 0x5e, 0xb5, 0x4e, 0xda, + 0x11, 0x69, 0x39, 0x09, 0x71, 0x4d, 0x8e, 0x38, 0x53, 0x8e, 0xee, 0x37, 0x2a, 0x91, 0x3d, 0x98, + 0x81, 0x97, 0xdd, 0xc9, 0xec, 0xa9, 0x85, 0xb4, 0x15, 0xc6, 0xc9, 0x35, 0x92, 0xdc, 0x0e, 0xa3, + 0x6d, 0x91, 0xd4, 0x2a, 0xcd, 0x62, 0x97, 0xa2, 0xb0, 0x4e, 0x47, 0x35, 0x22, 0x76, 0x74, 0xb5, + 0x56, 0x67, 0xe7, 0x0c, 0x63, 0xe9, 0x3a, 0xb9, 0xc4, 0xc1, 0x58, 0xe2, 0x25, 0xe9, 0x5a, 0x63, + 0x99, 0x9d, 0x1e, 0x64, 0x48, 0xd7, 0x1a, 0xcb, 0x58, 0xe2, 0x11, 0xe9, 0x7e, 0x04, 0x6d, 0xaa, + 0xf8, 0x84, 0xa6, 0x5b, 0x2e, 0x0f, 0xf8, 0x0e, 0x5a, 0x00, 0x33, 0xea, 0xf9, 0x35, 0x9e, 0xed, + 0x2b, 0xae, 0x4e, 0x17, 0xbf, 0x2c, 0x9f, 0x9b, 0x2a, 0x4c, 0x79, 0xd5, 0xd6, 0x32, 0x9c, 0x70, + 0x17, 0x6f, 0x23, 0x61, 0xc3, 0x4c, 0xdf, 0x87, 0x08, 0x16, 0xa0, 0x12, 0x77, 0x6e, 0xb9, 0xe1, + 0x8e, 0xe3, 0x05, 0xcc, 0xed, 0xaf, 0x3f, 0x7a, 0x2e, 0x11, 0x38, 0xa5, 0x41, 0xab, 0x30, 0xe6, + 0x08, 0xe3, 0x4b, 0x38, 0xea, 0x73, 0x6f, 0x70, 0x4b, 0x03, 0x8d, 0x7b, 0x34, 0xd5, 0xfb, 0xff, + 0xaa, 0x2c, 0x7a, 0x09, 0x26, 0xc5, 0x25, 0x23, 0x11, 0x1f, 0x78, 0xc2, 0x8c, 0x47, 0x6f, 0xea, + 0x48, 0x6c, 0xd2, 0xa2, 0x9f, 0x86, 0x29, 0xca, 0x25, 0x15, 0x6c, 0xd5, 0x93, 0x83, 0x48, 0x44, + 0x2d, 0xc1, 0xb4, 0x5e, 0x18, 0x67, 0x98, 0x21, 0x17, 0x1e, 0x72, 0x3a, 0x49, 0xb8, 0x43, 0x67, + 0xb8, 0x39, 0xff, 0xd7, 0xc3, 0x6d, 0x12, 0x30, 0x3f, 0xfd, 0xd8, 0xd2, 0xb9, 0x83, 0xfd, 0xda, + 0x43, 0x8b, 0x3d, 0xe8, 0x70, 0x4f, 0x2e, 0xe8, 0x06, 0x8c, 0x27, 0xa1, 0x2f, 0x02, 0x7b, 0xe3, + 0xea, 0xe9, 0xe2, 0x84, 0x33, 0xeb, 0x8a, 0x4c, 0x77, 0x27, 0xa8, 0xa2, 0x58, 0xe7, 0x83, 0xd6, + 0xf9, 0x1a, 0x63, 0x79, 0x0b, 0x49, 0x5c, 0x7d, 0xa0, 0xb8, 0x63, 0x54, 0x7a, 0x43, 0x73, 0x09, + 0x8a, 0x92, 0x58, 0x67, 0x83, 0x2e, 0xc2, 0x6c, 0x3b, 0xf2, 0x42, 0x36, 0xb1, 0x95, 0xcb, 0xb7, + 0x6a, 0xa4, 0x22, 0x9b, 0x6d, 0x64, 0x09, 0x70, 0x77, 0x19, 0x74, 0x9e, 0x2a, 0xa8, 0x1c, 0x58, + 0x3d, 0xc3, 0x1f, 0xa8, 0xe0, 0xca, 0x29, 0x87, 0x61, 0x85, 0x9d, 0xfb, 0x34, 0xcc, 0x76, 0x49, + 0xca, 0x43, 0x05, 0x59, 0xfe, 0xfa, 0x30, 0x54, 0x94, 0x3b, 0x10, 0x2d, 0x98, 0x5e, 0xde, 0x33, + 0x59, 0x2f, 0xef, 0x18, 0xd5, 0xd7, 0x74, 0xc7, 0xee, 0x7a, 0xce, 0x1b, 0xdb, 0xe7, 0x0a, 0x44, + 0xc3, 0xe0, 0x37, 0xa2, 0x0e, 0xf1, 0xfe, 0x78, 0x6a, 0x30, 0x0e, 0xf5, 0x34, 0x18, 0x07, 0x7c, + 0xef, 0x8e, 0x9a, 0x86, 0xed, 0xd0, 0x5d, 0x6b, 0x64, 0x1f, 0x80, 0x6a, 0x50, 0x20, 0xe6, 0x38, + 0xa6, 0xdc, 0xd3, 0x6d, 0x9d, 0x29, 0xf7, 0xa3, 0xf7, 0xa8, 0xdc, 0x4b, 0x06, 0x38, 0xe5, 0x85, + 0x7c, 0x98, 0x6d, 0x99, 0x6f, 0x77, 0xa9, 0x5b, 0x50, 0x8f, 0xf6, 0x7d, 0x45, 0xab, 0xa3, 0x3d, + 0xe8, 0xb1, 0x9c, 0xe5, 0x82, 0xbb, 0x19, 0xa3, 0x97, 0x60, 0xec, 0xdd, 0x30, 0x66, 0xd3, 0x4e, + 0xec, 0x6d, 0xf2, 0xde, 0xc9, 0xd8, 0x6b, 0xd7, 0x9b, 0x0c, 0x7e, 0x77, 0xbf, 0x36, 0xde, 0x08, + 0x5d, 0xf9, 0x17, 0xab, 0x02, 0xe8, 0x0e, 0x9c, 0x32, 0x24, 0x82, 0x6a, 0x2e, 0x0c, 0xde, 0xdc, + 0x87, 0x45, 0x75, 0xa7, 0xd6, 0xf2, 0x38, 0xe1, 0xfc, 0x0a, 0xec, 0x6f, 0x72, 0xa7, 0xa7, 0x70, + 0x8d, 0x90, 0xb8, 0xe3, 0x1f, 0x47, 0xd6, 0xfe, 0x15, 0xc3, 0x6b, 0x73, 0xcf, 0x8e, 0xf5, 0xdf, + 0xb7, 0x98, 0x63, 0x7d, 0x9d, 0xec, 0xb4, 0x7d, 0x27, 0x39, 0x8e, 0xd0, 0xda, 0xd7, 0x60, 0x2c, + 0x11, 0xb5, 0xf5, 0x7a, 0x68, 0x40, 0x6b, 0x14, 0x3b, 0x5c, 0x50, 0x1b, 0xa2, 0x84, 0x62, 0xc5, + 0xc6, 0xfe, 0xa7, 0x7c, 0x04, 0x24, 0xe6, 0x18, 0x7c, 0x0b, 0x75, 0xd3, 0xb7, 0x50, 0xeb, 0xf3, + 0x05, 0x05, 0x3e, 0x86, 0x7f, 0x62, 0xb6, 0x9b, 0xd9, 0x1e, 0x1f, 0xf6, 0x13, 0x1d, 0xfb, 0x97, + 0x2d, 0x38, 0x99, 0x77, 0xa4, 0x4f, 0x95, 0x18, 0x6e, 0xf9, 0xa8, 0x13, 0x2e, 0xd5, 0x83, 0x37, + 0x05, 0x1c, 0x2b, 0x8a, 0x81, 0x93, 0x7d, 0x1f, 0x2e, 0xc9, 0xd2, 0x75, 0x30, 0x9f, 0x79, 0x43, + 0xaf, 0xf0, 0x58, 0x79, 0x4b, 0xbd, 0xc3, 0x76, 0xb8, 0x38, 0x79, 0xfb, 0xeb, 0x25, 0x38, 0xc9, + 0x5d, 0xd4, 0x8b, 0xbb, 0xa1, 0xe7, 0x36, 0x42, 0x57, 0xdc, 0x1c, 0x78, 0x13, 0x26, 0xda, 0x9a, + 0xb9, 0xda, 0x2b, 0xcd, 0x8b, 0x6e, 0xd6, 0xa6, 0x66, 0x83, 0x0e, 0xc5, 0x06, 0x2f, 0xe4, 0xc2, + 0x04, 0xd9, 0xf5, 0x5a, 0xca, 0xcf, 0x59, 0x3a, 0xb4, 0x48, 0x57, 0xb5, 0xac, 0x68, 0x7c, 0xb0, + 0xc1, 0xf5, 0x3e, 0x3c, 0xc9, 0x61, 0x7f, 0xc5, 0x82, 0x07, 0x0a, 0x92, 0xc2, 0xd0, 0xea, 0x6e, + 0xb3, 0xc3, 0x00, 0xf1, 0x66, 0xa0, 0xaa, 0x8e, 0x1f, 0x11, 0x60, 0x81, 0x45, 0x3f, 0x05, 0xc0, + 0x5d, 0xfc, 0xec, 0x85, 0xf6, 0x52, 0xef, 0x5b, 0xe7, 0x46, 0xb2, 0x04, 0xed, 0x46, 0xbd, 0x7a, + 0x93, 0x5d, 0xe3, 0x65, 0xff, 0x6a, 0x19, 0x86, 0xf9, 0x03, 0xd2, 0xab, 0x30, 0xba, 0xc5, 0x53, + 0xd0, 0x0e, 0x92, 0xed, 0x36, 0x35, 0x47, 0x38, 0x00, 0xcb, 0xc2, 0xe8, 0x2a, 0x9c, 0x10, 0xb7, + 0x53, 0xea, 0xc4, 0x77, 0xf6, 0xa4, 0x55, 0xcb, 0xdf, 0x69, 0x90, 0x39, 0xc4, 0x4f, 0xac, 0x75, + 0x93, 0xe0, 0xbc, 0x72, 0xe8, 0x95, 0xae, 0xc4, 0x73, 0x3c, 0x79, 0xaf, 0xd2, 0x81, 0xfb, 0x24, + 0x9f, 0x7b, 0x09, 0x26, 0xdb, 0x5d, 0xf6, 0xbb, 0xf6, 0x76, 0xaf, 0x69, 0xb3, 0x9b, 0xb4, 0x2c, + 0x3e, 0xa0, 0xc3, 0xa2, 0x21, 0xd6, 0xb7, 0x22, 0x12, 0x6f, 0x85, 0xbe, 0x2b, 0x1e, 0xaa, 0x4c, + 0xe3, 0x03, 0x32, 0x78, 0xdc, 0x55, 0x82, 0x72, 0xd9, 0x70, 0x3c, 0xbf, 0x13, 0x91, 0x94, 0xcb, + 0x88, 0xc9, 0x65, 0x35, 0x83, 0xc7, 0x5d, 0x25, 0xe8, 0x3c, 0x3a, 0x25, 0x5e, 0x39, 0x94, 0x77, + 0x96, 0x55, 0xd0, 0xc7, 0xa8, 0x8c, 0x4a, 0xef, 0x91, 0x47, 0x43, 0x1c, 0xf9, 0xab, 0x77, 0x12, + 0xb5, 0xf7, 0xb3, 0x44, 0x3c, 0xba, 0xe4, 0x72, 0x2f, 0x6f, 0xed, 0xfd, 0xa9, 0x05, 0x27, 0x72, + 0x02, 0xc1, 0xb8, 0xa8, 0xda, 0xf4, 0xe2, 0x44, 0x3d, 0x0f, 0xa0, 0x89, 0x2a, 0x0e, 0xc7, 0x8a, + 0x82, 0xae, 0x07, 0x2e, 0x0c, 0xb3, 0x02, 0x50, 0x04, 0x6f, 0x08, 0xec, 0xe1, 0x04, 0x20, 0x3a, + 0x07, 0x43, 0x9d, 0x98, 0x44, 0xf2, 0x81, 0x3a, 0x29, 0xbf, 0x99, 0x47, 0x90, 0x61, 0xa8, 0x46, + 0xb9, 0xa9, 0x9c, 0x71, 0x9a, 0x46, 0xc9, 0xdd, 0x71, 0x1c, 0x67, 0x7f, 0xb9, 0x0c, 0xd3, 0x99, + 0xb0, 0x4d, 0xda, 0x90, 0x9d, 0x30, 0xf0, 0x92, 0x50, 0xe5, 0x3d, 0xe3, 0x69, 0x1e, 0x48, 0x7b, + 0xeb, 0xaa, 0x80, 0x63, 0x45, 0x81, 0x1e, 0x93, 0x2f, 0x97, 0x66, 0x9f, 0x3d, 0x58, 0xaa, 0x1b, + 0x8f, 0x97, 0x0e, 0xfa, 0x7e, 0xc9, 0xa3, 0x30, 0xd4, 0x0e, 0xd5, 0xb3, 0xd2, 0x6a, 0x3c, 0xf1, + 0x52, 0xbd, 0x11, 0x86, 0x3e, 0x66, 0x48, 0xf4, 0x31, 0xf1, 0xf5, 0x99, 0xf3, 0x0a, 0xec, 0xb8, + 0x61, 0xac, 0x75, 0xc1, 0x13, 0x30, 0xba, 0x4d, 0xf6, 0x22, 0x2f, 0xd8, 0xcc, 0x9e, 0xd6, 0x5c, + 0xe6, 0x60, 0x2c, 0xf1, 0x66, 0xb6, 0xf0, 0xd1, 0xfb, 0xf2, 0x04, 0xc9, 0x58, 0xdf, 0x5d, 0xed, + 0xb7, 0x2c, 0x98, 0x66, 0x39, 0x46, 0xc5, 0xed, 0x78, 0x2f, 0x0c, 0x8e, 0x41, 0x4f, 0x78, 0x14, + 0x86, 0x23, 0x5a, 0x69, 0xf6, 0x5d, 0x01, 0xd6, 0x12, 0xcc, 0x71, 0xe8, 0x21, 0x18, 0x62, 0x4d, + 0xa0, 0x83, 0x37, 0xc1, 0xb3, 0x8c, 0xd7, 0x9d, 0xc4, 0xc1, 0x0c, 0xca, 0xae, 0x29, 0x61, 0xd2, + 0xf6, 0x3d, 0xde, 0xe8, 0xd4, 0xdd, 0xfa, 0xe1, 0xb8, 0xa6, 0x94, 0xdb, 0xb4, 0xf7, 0x77, 0x4d, + 0x29, 0x9f, 0x65, 0x6f, 0x1d, 0xfc, 0xbf, 0x95, 0xe0, 0x6c, 0x6e, 0xb9, 0xf4, 0x64, 0x77, 0xd5, + 0x38, 0xd9, 0xbd, 0x90, 0x39, 0xd9, 0xb5, 0x7b, 0x97, 0x3e, 0x9a, 0xb3, 0xde, 0xfc, 0x23, 0xd8, + 0xf2, 0x31, 0x1e, 0xc1, 0x0e, 0x0d, 0xaa, 0xa6, 0x0c, 0xf7, 0x51, 0x53, 0xbe, 0x63, 0xc1, 0x99, + 0xdc, 0x2e, 0xfb, 0x90, 0xdc, 0x0b, 0xcb, 0x6d, 0x5b, 0x81, 0x0d, 0xf1, 0xc3, 0x52, 0xc1, 0xb7, + 0x30, 0x6b, 0xe2, 0x3c, 0x95, 0x33, 0x0c, 0x19, 0x0b, 0xb5, 0x6b, 0x82, 0xcb, 0x18, 0x0e, 0xc3, + 0x0a, 0x8b, 0x3c, 0xed, 0x86, 0x15, 0x6f, 0xda, 0x4b, 0x87, 0x5a, 0x32, 0xf3, 0xa6, 0x77, 0x5c, + 0xbf, 0xca, 0x9f, 0xbd, 0x6d, 0x75, 0x55, 0xb3, 0x00, 0xcb, 0x83, 0x5b, 0x80, 0x13, 0xf9, 0xd6, + 0x1f, 0x5a, 0x84, 0xe9, 0x1d, 0x2f, 0x60, 0x8f, 0x83, 0x9a, 0x7a, 0x8f, 0xba, 0x96, 0x7a, 0xd5, + 0x44, 0xe3, 0x2c, 0xfd, 0xdc, 0x4b, 0x30, 0x79, 0xef, 0x2e, 0xab, 0xef, 0x96, 0xe1, 0xc1, 0x1e, + 0xcb, 0x9e, 0xcb, 0x7a, 0x63, 0x0c, 0x34, 0x59, 0xdf, 0x35, 0x0e, 0x0d, 0x38, 0xb9, 0xd1, 0xf1, + 0xfd, 0x3d, 0x16, 0xe5, 0x44, 0x5c, 0x49, 0x21, 0x14, 0x13, 0x95, 0x40, 0x78, 0x35, 0x87, 0x06, + 0xe7, 0x96, 0x44, 0xaf, 0x02, 0x0a, 0x6f, 0xb1, 0xa4, 0xb6, 0x6e, 0x9a, 0xa0, 0x80, 0x75, 0x7c, + 0x39, 0x5d, 0x8c, 0xd7, 0xbb, 0x28, 0x70, 0x4e, 0x29, 0xaa, 0x61, 0xb2, 0x27, 0xcd, 0x55, 0xb3, + 0x32, 0x1a, 0x26, 0xd6, 0x91, 0xd8, 0xa4, 0x45, 0x17, 0x61, 0xd6, 0xd9, 0x75, 0x3c, 0x9e, 0xb0, + 0x4a, 0x32, 0xe0, 0x2a, 0xa6, 0x72, 0x14, 0x2d, 0x66, 0x09, 0x70, 0x77, 0x19, 0xb4, 0x61, 0x78, + 0xf9, 0x78, 0xbe, 0xfc, 0x0b, 0x03, 0xcf, 0xd6, 0x81, 0xfd, 0x7e, 0xf6, 0x7f, 0xb4, 0xe8, 0xf6, + 0x95, 0xf3, 0x1a, 0x25, 0xed, 0x07, 0xe5, 0xbf, 0xd2, 0x6e, 0x87, 0xa9, 0x7e, 0x58, 0xd6, 0x91, + 0xd8, 0xa4, 0xe5, 0x13, 0x22, 0x4e, 0xc3, 0xa5, 0x0d, 0x3d, 0x51, 0x5c, 0xa7, 0x54, 0x14, 0xe8, + 0x0d, 0x18, 0x75, 0xbd, 0x5d, 0x2f, 0x0e, 0x23, 0xb1, 0x58, 0x0e, 0xfb, 0x0a, 0xb3, 0x92, 0x83, + 0x75, 0xce, 0x06, 0x4b, 0x7e, 0xf6, 0x97, 0x4b, 0x30, 0x29, 0x6b, 0x7c, 0xad, 0x13, 0x26, 0xce, + 0x31, 0x6c, 0xcb, 0x17, 0x8d, 0x6d, 0xf9, 0x63, 0xbd, 0xee, 0x94, 0xb2, 0x26, 0x15, 0x6e, 0xc7, + 0xd7, 0x33, 0xdb, 0xf1, 0xe3, 0xfd, 0x59, 0xf5, 0xde, 0x86, 0x7f, 0xd7, 0x82, 0x59, 0x83, 0xfe, + 0x18, 0x76, 0x83, 0x55, 0x73, 0x37, 0x78, 0xa4, 0xef, 0x37, 0x14, 0xec, 0x02, 0x5f, 0x2b, 0x65, + 0xda, 0xce, 0xa4, 0xff, 0xbb, 0x30, 0xb4, 0xe5, 0x44, 0x6e, 0xaf, 0xb4, 0x8b, 0x5d, 0x85, 0xe6, + 0x2f, 0x39, 0x91, 0xcb, 0x65, 0xf8, 0xd3, 0xea, 0xa1, 0x2c, 0x27, 0x72, 0xfb, 0xde, 0x0e, 0x60, + 0x55, 0xa1, 0x17, 0x61, 0x24, 0x6e, 0x85, 0x6d, 0x15, 0x7b, 0x79, 0x8e, 0x3f, 0xa2, 0x45, 0x21, + 0x77, 0xf7, 0x6b, 0xc8, 0xac, 0x8e, 0x82, 0xb1, 0xa0, 0x9f, 0xdb, 0x84, 0x8a, 0xaa, 0xfa, 0xbe, + 0x46, 0x95, 0xff, 0x51, 0x19, 0x4e, 0xe4, 0xcc, 0x0b, 0x14, 0x1b, 0xbd, 0xf5, 0xec, 0x80, 0xd3, + 0xe9, 0x7d, 0xf6, 0x57, 0xcc, 0x2c, 0x16, 0x57, 0x8c, 0xff, 0xc0, 0x95, 0xde, 0x88, 0x49, 0xb6, + 0x52, 0x0a, 0xea, 0x5f, 0x29, 0xad, 0xec, 0xd8, 0xba, 0x9a, 0x56, 0xa4, 0x5a, 0x7a, 0x5f, 0xc7, + 0xf4, 0x7f, 0x95, 0xe1, 0x64, 0xde, 0x55, 0x74, 0xf4, 0xb3, 0x99, 0x47, 0x1c, 0x9e, 0x1f, 0xf4, + 0x12, 0x3b, 0x7f, 0xd9, 0x41, 0x64, 0x78, 0x99, 0x37, 0x9f, 0x75, 0xe8, 0xdb, 0xcd, 0xa2, 0x4e, + 0x76, 0x5d, 0x27, 0xe2, 0x8f, 0x6f, 0xc8, 0x25, 0xfe, 0xf1, 0x81, 0x1b, 0x20, 0x5e, 0xed, 0x88, + 0x33, 0xd7, 0x75, 0x24, 0xb8, 0xff, 0x75, 0x1d, 0x59, 0xf3, 0x9c, 0x07, 0xe3, 0xda, 0xd7, 0xdc, + 0xd7, 0x11, 0xdf, 0xa6, 0x3b, 0x8a, 0xd6, 0xee, 0xfb, 0x3a, 0xea, 0x5f, 0xb1, 0x20, 0x13, 0x27, + 0xa5, 0xfc, 0x1f, 0x56, 0xa1, 0xff, 0xe3, 0x1c, 0x0c, 0x45, 0xa1, 0x4f, 0xb2, 0x79, 0xfd, 0x71, + 0xe8, 0x13, 0xcc, 0x30, 0xea, 0x55, 0xdc, 0x72, 0xd1, 0xab, 0xb8, 0xd4, 0x34, 0xf6, 0xc9, 0x2e, + 0x91, 0xde, 0x08, 0x25, 0x93, 0xaf, 0x50, 0x20, 0xe6, 0x38, 0xfb, 0x37, 0x86, 0xe0, 0x44, 0xce, + 0xe5, 0x34, 0x6a, 0xa8, 0x6c, 0x3a, 0x09, 0xb9, 0xed, 0xec, 0x65, 0x73, 0x8d, 0x5e, 0xe4, 0x60, + 0x2c, 0xf1, 0x2c, 0x96, 0x93, 0xa7, 0x2b, 0xcb, 0xf8, 0x88, 0x44, 0x96, 0x32, 0x81, 0xbd, 0x5f, + 0x0f, 0xa5, 0x5e, 0x00, 0x88, 0x63, 0x7f, 0x25, 0xa0, 0xca, 0x97, 0x2b, 0x22, 0x45, 0xd3, 0xdc, + 0x76, 0xcd, 0x2b, 0x02, 0x83, 0x35, 0x2a, 0x54, 0x87, 0x99, 0x76, 0x14, 0x26, 0xdc, 0xef, 0x56, + 0xe7, 0x31, 0x0a, 0xc3, 0xe6, 0x35, 0xa3, 0x46, 0x06, 0x8f, 0xbb, 0x4a, 0xa0, 0x17, 0x60, 0x5c, + 0x5c, 0x3d, 0x6a, 0x84, 0xa1, 0x2f, 0xbc, 0x34, 0xea, 0xc4, 0xbb, 0x99, 0xa2, 0xb0, 0x4e, 0xa7, + 0x15, 0x63, 0xce, 0xbc, 0xd1, 0xdc, 0x62, 0xdc, 0xa1, 0xa7, 0xd1, 0x65, 0x32, 0x52, 0x8c, 0x0d, + 0x94, 0x91, 0x22, 0xf5, 0x5b, 0x55, 0x06, 0x3e, 0xbf, 0x80, 0xbe, 0x9e, 0x9e, 0x6f, 0x96, 0x61, + 0x84, 0x0f, 0xc5, 0x31, 0xa8, 0x62, 0xab, 0xc2, 0x77, 0xd3, 0x23, 0x0f, 0x00, 0x6f, 0xcb, 0x7c, + 0xdd, 0x49, 0x1c, 0x2e, 0x86, 0xd4, 0x6a, 0x48, 0xbd, 0x3c, 0x68, 0xde, 0x58, 0x2f, 0x73, 0x19, + 0xe7, 0x04, 0x70, 0x1e, 0xda, 0xea, 0x79, 0x1b, 0x20, 0x66, 0x8f, 0x75, 0x52, 0x1e, 0x22, 0x6f, + 0xe9, 0x93, 0x3d, 0x6a, 0x6f, 0x2a, 0x62, 0xde, 0x86, 0x74, 0x0a, 0x2a, 0x04, 0xd6, 0x38, 0xce, + 0x7d, 0x02, 0x2a, 0x8a, 0xb8, 0x9f, 0x25, 0x37, 0xa1, 0x0b, 0xaf, 0x4f, 0xc1, 0x74, 0xa6, 0xae, + 0x43, 0x19, 0x82, 0xbf, 0x6d, 0xc1, 0x34, 0x6f, 0xf2, 0x4a, 0xb0, 0x2b, 0x16, 0xfb, 0x7b, 0x70, + 0xd2, 0xcf, 0x59, 0x74, 0x62, 0x44, 0x07, 0x5f, 0xa4, 0xca, 0xf0, 0xcb, 0xc3, 0xe2, 0xdc, 0x3a, + 0xa8, 0xf1, 0xcf, 0x9f, 0x19, 0x76, 0x7c, 0x11, 0x81, 0x3c, 0xc1, 0xf3, 0x39, 0x73, 0x18, 0x56, + 0x58, 0xfb, 0x7b, 0x16, 0xcc, 0x76, 0x3d, 0x52, 0xff, 0x81, 0xb6, 0x5d, 0xa4, 0xab, 0x2e, 0x15, + 0xa4, 0xab, 0xd6, 0x3f, 0xad, 0xdc, 0xf3, 0xd3, 0xbe, 0x6e, 0x81, 0x98, 0x81, 0xc7, 0xa0, 0xce, + 0x7f, 0xda, 0x54, 0xe7, 0xe7, 0x8a, 0x27, 0x75, 0x81, 0x1e, 0xff, 0xe7, 0x16, 0xcc, 0x70, 0x82, + 0xf4, 0xf0, 0xe2, 0x03, 0x1d, 0x87, 0x41, 0xde, 0x50, 0x51, 0x8f, 0x56, 0xe6, 0x7f, 0x94, 0x31, + 0x58, 0x43, 0x3d, 0x07, 0xeb, 0xbf, 0x58, 0x80, 0xf8, 0xe7, 0x67, 0x5f, 0x5e, 0xe6, 0x9b, 0x92, + 0x66, 0x6a, 0xa7, 0x42, 0x40, 0x61, 0xb0, 0x46, 0x75, 0x24, 0x0d, 0xcf, 0x9c, 0x0d, 0x95, 0xfb, + 0x9f, 0x0d, 0x1d, 0xe2, 0x5b, 0xff, 0xda, 0x10, 0x64, 0x03, 0x11, 0xd1, 0x4d, 0x98, 0x68, 0x39, + 0x6d, 0xe7, 0x96, 0xe7, 0x7b, 0x89, 0x47, 0xe2, 0x5e, 0x87, 0xca, 0xcb, 0x1a, 0x9d, 0x38, 0x88, + 0xd1, 0x20, 0xd8, 0xe0, 0x83, 0xe6, 0x01, 0xda, 0x91, 0xb7, 0xeb, 0xf9, 0x64, 0x93, 0xd9, 0x1a, + 0xec, 0x36, 0x02, 0x3f, 0x29, 0x95, 0x50, 0xac, 0x51, 0xe4, 0x44, 0xaf, 0x97, 0xef, 0x5f, 0xf4, + 0xfa, 0xd0, 0x21, 0xa3, 0xd7, 0x87, 0x07, 0x8a, 0x5e, 0xc7, 0x70, 0x5a, 0xee, 0xaa, 0xf4, 0xff, + 0xaa, 0xe7, 0x13, 0xa1, 0x4a, 0xf1, 0x3b, 0x0a, 0x73, 0x07, 0xfb, 0xb5, 0xd3, 0x38, 0x97, 0x02, + 0x17, 0x94, 0x44, 0x3f, 0x05, 0x55, 0xc7, 0xf7, 0xc3, 0xdb, 0xaa, 0xd7, 0x56, 0xe2, 0x96, 0xe3, + 0xa7, 0xa9, 0x40, 0xc7, 0x96, 0x1e, 0x3a, 0xd8, 0xaf, 0x55, 0x17, 0x0b, 0x68, 0x70, 0x61, 0x69, + 0x7b, 0x1b, 0x4e, 0x34, 0x49, 0x24, 0x1f, 0x02, 0x53, 0xab, 0x6f, 0x1d, 0x2a, 0x51, 0x66, 0xb9, + 0x0f, 0x74, 0x25, 0x5d, 0x4b, 0xc0, 0x25, 0x97, 0x77, 0xca, 0xc8, 0xfe, 0x33, 0x0b, 0x46, 0x45, + 0x70, 0xe3, 0x31, 0x68, 0x19, 0x8b, 0x86, 0xc3, 0xa7, 0x96, 0x2f, 0x12, 0x59, 0x63, 0x0a, 0x5d, + 0x3d, 0x6b, 0x19, 0x57, 0xcf, 0x23, 0xbd, 0x98, 0xf4, 0x76, 0xf2, 0xfc, 0x52, 0x19, 0xa6, 0xcc, + 0xc0, 0xce, 0x63, 0xe8, 0x82, 0x6b, 0x30, 0x1a, 0x8b, 0x28, 0xe2, 0x52, 0x71, 0x34, 0x5a, 0x76, + 0x10, 0xd3, 0x33, 0x6b, 0x11, 0x37, 0x2c, 0x99, 0xe4, 0x86, 0x27, 0x97, 0xef, 0x63, 0x78, 0x72, + 0xbf, 0xd8, 0xda, 0xa1, 0xa3, 0x88, 0xad, 0xb5, 0xbf, 0xc5, 0x84, 0xbf, 0x0e, 0x3f, 0x86, 0x1d, + 0xfb, 0xa2, 0xb9, 0x4d, 0xd8, 0x3d, 0x66, 0x96, 0x68, 0x54, 0xc1, 0xce, 0xfd, 0x8f, 0x2c, 0x18, + 0x17, 0x84, 0xc7, 0xd0, 0xec, 0xcf, 0x98, 0xcd, 0x7e, 0xb0, 0x47, 0xb3, 0x0b, 0xda, 0xfb, 0xb7, + 0x4b, 0xaa, 0xbd, 0x0d, 0xf1, 0x46, 0x7e, 0xdf, 0xd4, 0xd0, 0x63, 0xd4, 0x4e, 0x0b, 0x5b, 0xa1, + 0x2f, 0xf4, 0xb2, 0x87, 0xd2, 0x6b, 0x6a, 0x1c, 0x7e, 0x57, 0xfb, 0x8d, 0x15, 0x35, 0xbb, 0x45, + 0x15, 0x46, 0x89, 0xd8, 0x40, 0xf3, 0x5e, 0xe8, 0x77, 0x01, 0xd2, 0x87, 0xce, 0xc5, 0xbd, 0xce, + 0xc3, 0xbf, 0xfd, 0x9f, 0xde, 0x3b, 0x53, 0xbc, 0xb0, 0xc6, 0x57, 0x5e, 0x7c, 0x60, 0x75, 0x0c, + 0x9b, 0x27, 0x31, 0xd7, 0x04, 0x1c, 0x2b, 0x0a, 0xfb, 0x13, 0x4c, 0x26, 0xb3, 0x0e, 0x3a, 0xdc, + 0x95, 0xb0, 0x3f, 0x1e, 0x55, 0x5d, 0xcb, 0xdc, 0xb0, 0x75, 0xfd, 0xe2, 0x59, 0x6f, 0x11, 0x48, + 0x2b, 0xd6, 0x83, 0x7c, 0xd3, 0xdb, 0x69, 0xe8, 0xb3, 0x5d, 0x07, 0x74, 0xcf, 0xf4, 0x91, 0xa5, + 0x87, 0x38, 0x92, 0x63, 0x99, 0xee, 0x58, 0x46, 0xb0, 0xb5, 0x46, 0x36, 0x79, 0xf7, 0xb2, 0x44, + 0xe0, 0x94, 0x06, 0x2d, 0x08, 0x9b, 0x8f, 0x3b, 0x40, 0x1e, 0xcc, 0xd8, 0x7c, 0xf2, 0xf3, 0x35, + 0xa3, 0xef, 0x59, 0x18, 0x57, 0x0f, 0xa2, 0x34, 0xf8, 0xbb, 0x12, 0x15, 0xae, 0x4b, 0xad, 0xa4, + 0x60, 0xac, 0xd3, 0xa0, 0x75, 0x98, 0x8e, 0xf9, 0x6b, 0x2d, 0xf2, 0x2e, 0x82, 0xb0, 0xe8, 0x9f, + 0xcc, 0x3c, 0xa9, 0x2e, 0xd1, 0x77, 0x19, 0x88, 0x2f, 0x56, 0x79, 0x7b, 0x21, 0xcb, 0x02, 0xbd, + 0x02, 0x53, 0xbe, 0xfe, 0x6a, 0x65, 0x43, 0x18, 0xfc, 0x2a, 0xc8, 0xca, 0x78, 0xd3, 0xb2, 0x81, + 0x33, 0xd4, 0x54, 0x09, 0xd0, 0x21, 0x22, 0x49, 0x8d, 0x13, 0x6c, 0x92, 0x58, 0x3c, 0xe7, 0xc0, + 0x94, 0x80, 0x2b, 0x05, 0x34, 0xb8, 0xb0, 0x34, 0x7a, 0x11, 0x26, 0xe4, 0xe7, 0x6b, 0x77, 0x73, + 0xd2, 0x50, 0x3e, 0x0d, 0x87, 0x0d, 0x4a, 0x74, 0x1b, 0x4e, 0xc9, 0xff, 0xeb, 0x91, 0xb3, 0xb1, + 0xe1, 0xb5, 0xc4, 0xd5, 0xa8, 0x71, 0xc6, 0x62, 0x51, 0xc6, 0x35, 0xaf, 0xe4, 0x11, 0xdd, 0xdd, + 0xaf, 0x9d, 0x13, 0xbd, 0x96, 0x8b, 0x67, 0x83, 0x98, 0xcf, 0x1f, 0x5d, 0x85, 0x13, 0x5b, 0xc4, + 0xf1, 0x93, 0xad, 0xe5, 0x2d, 0xd2, 0xda, 0x96, 0x8b, 0x88, 0xdd, 0xf8, 0xd1, 0x02, 0xe0, 0x2e, + 0x75, 0x93, 0xe0, 0xbc, 0x72, 0xe8, 0x2d, 0xa8, 0xb6, 0x3b, 0xb7, 0x7c, 0x2f, 0xde, 0xba, 0x16, + 0x26, 0xec, 0x2c, 0x51, 0xbd, 0x27, 0x22, 0xae, 0x06, 0xa9, 0xdb, 0x4e, 0x8d, 0x02, 0x3a, 0x5c, + 0xc8, 0xe1, 0xfd, 0x9d, 0xf2, 0xbe, 0x4b, 0x0b, 0x6b, 0x1a, 0x06, 0xfa, 0x1c, 0x4c, 0xe8, 0x23, + 0x29, 0x84, 0xfc, 0x63, 0xfd, 0x5e, 0x49, 0x15, 0xfa, 0x89, 0x1a, 0x55, 0x1d, 0x87, 0x0d, 0x8e, + 0xf6, 0xbf, 0x28, 0x41, 0xad, 0x4f, 0x0e, 0xa9, 0x8c, 0xeb, 0xca, 0x1a, 0xc8, 0x75, 0xb5, 0x28, + 0x9f, 0x0e, 0xb9, 0x96, 0x49, 0x4c, 0x9d, 0x79, 0x16, 0x24, 0x4d, 0x4f, 0x9d, 0xa5, 0x1f, 0x38, + 0x6a, 0x4b, 0xf7, 0x7e, 0x0d, 0xf5, 0x0d, 0x5e, 0x6b, 0xe8, 0x6e, 0xcc, 0xe1, 0xc1, 0xd5, 0xdd, + 0x42, 0x0f, 0xa6, 0xfd, 0xad, 0x12, 0x9c, 0x52, 0x5d, 0xf8, 0xe3, 0xdb, 0x71, 0x37, 0xba, 0x3b, + 0xee, 0x08, 0xfc, 0xbf, 0xf6, 0x75, 0x18, 0x69, 0xee, 0xc5, 0xad, 0xc4, 0x1f, 0x40, 0x3b, 0x78, + 0xd4, 0x58, 0x39, 0xe9, 0x1e, 0xc6, 0x5e, 0xff, 0x12, 0x0b, 0xc9, 0xfe, 0xcb, 0x16, 0x4c, 0xaf, + 0x2f, 0x37, 0x9a, 0x61, 0x6b, 0x9b, 0x24, 0x8b, 0xdc, 0xbb, 0x81, 0x85, 0x72, 0x60, 0xdd, 0xe3, + 0xa6, 0x9f, 0xa7, 0x4e, 0x9c, 0x83, 0xa1, 0xad, 0x30, 0x4e, 0xb2, 0x3e, 0xfe, 0x4b, 0x61, 0x9c, + 0x60, 0x86, 0xb1, 0xff, 0xc4, 0x82, 0x61, 0xf6, 0xe0, 0x55, 0xbf, 0x87, 0xd1, 0x06, 0xf9, 0x2e, + 0xf4, 0x02, 0x8c, 0x90, 0x8d, 0x0d, 0xd2, 0x4a, 0xc4, 0xa8, 0xca, 0x8b, 0x24, 0x23, 0x2b, 0x0c, + 0x4a, 0x77, 0x44, 0x56, 0x19, 0xff, 0x8b, 0x05, 0x31, 0xfa, 0x2c, 0x54, 0x12, 0x6f, 0x87, 0x2c, + 0xba, 0xae, 0x70, 0xaf, 0x1f, 0x2e, 0x92, 0x4a, 0xed, 0xd0, 0xeb, 0x92, 0x09, 0x4e, 0xf9, 0xd9, + 0xbf, 0x50, 0x02, 0x48, 0x2f, 0x9c, 0xf5, 0xfb, 0xcc, 0xa5, 0xae, 0xf7, 0xdf, 0x1e, 0xcb, 0x79, + 0xff, 0x0d, 0xa5, 0x0c, 0x73, 0x5e, 0x7f, 0x53, 0x5d, 0x55, 0x1e, 0xa8, 0xab, 0x86, 0x0e, 0xd3, + 0x55, 0xcb, 0x30, 0x9b, 0x5e, 0x98, 0x33, 0x6f, 0x0f, 0xb3, 0xdc, 0xb0, 0xeb, 0x59, 0x24, 0xee, + 0xa6, 0xb7, 0xbf, 0x64, 0x81, 0x88, 0xae, 0x1d, 0x60, 0x42, 0xbf, 0x29, 0x9f, 0x6a, 0x32, 0x12, + 0xdb, 0x9d, 0x2b, 0x0e, 0x37, 0x16, 0xe9, 0xec, 0x94, 0x64, 0x37, 0x92, 0xd8, 0x19, 0xbc, 0xec, + 0xdf, 0xb5, 0x60, 0x9c, 0xa3, 0xaf, 0x32, 0x13, 0xb4, 0x7f, 0x6b, 0x0e, 0x95, 0x59, 0x98, 0xbd, + 0x62, 0x44, 0x19, 0xab, 0x04, 0xb4, 0xfa, 0x2b, 0x46, 0x12, 0x81, 0x53, 0x1a, 0xf4, 0x04, 0x8c, + 0xc6, 0x9d, 0x5b, 0x8c, 0x3c, 0x13, 0x60, 0xdb, 0xe4, 0x60, 0x2c, 0xf1, 0x74, 0x5e, 0xcd, 0x64, + 0xe3, 0xab, 0xd1, 0x25, 0x18, 0xe1, 0x62, 0x43, 0x2c, 0xe3, 0x1e, 0x87, 0x09, 0x5a, 0x54, 0x36, + 0xf0, 0x67, 0xb7, 0x99, 0xb8, 0x11, 0xe5, 0xd1, 0x5b, 0x30, 0xee, 0x86, 0xb7, 0x83, 0xdb, 0x4e, + 0xe4, 0x2e, 0x36, 0xd6, 0x44, 0xaf, 0xe7, 0x46, 0xc9, 0xd5, 0x53, 0x32, 0x3d, 0xd2, 0x9b, 0xb9, + 0xe7, 0x52, 0x14, 0xd6, 0xd9, 0xa1, 0x75, 0x96, 0xc3, 0x83, 0x3f, 0x06, 0xda, 0x2b, 0x6e, 0x44, + 0xbd, 0x1f, 0xaa, 0x71, 0x9e, 0x14, 0x89, 0x3e, 0xc4, 0x53, 0xa2, 0x29, 0x23, 0xfb, 0x0b, 0x27, + 0xc0, 0x18, 0x6d, 0x23, 0xff, 0xaf, 0x75, 0x44, 0xf9, 0x7f, 0x31, 0x8c, 0x91, 0x9d, 0x76, 0xb2, + 0x57, 0xf7, 0xa2, 0x5e, 0x09, 0xd9, 0x57, 0x04, 0x4d, 0x37, 0x4f, 0x89, 0xc1, 0x8a, 0x4f, 0x7e, + 0x92, 0xe6, 0xf2, 0x07, 0x98, 0xa4, 0x79, 0xe8, 0x18, 0x93, 0x34, 0x5f, 0x83, 0xd1, 0x4d, 0x2f, + 0xc1, 0xa4, 0x1d, 0x8a, 0x2d, 0x33, 0x77, 0x26, 0x5c, 0xe4, 0x24, 0xdd, 0xe9, 0x45, 0x05, 0x02, + 0x4b, 0x26, 0xe8, 0x55, 0xb5, 0x06, 0x46, 0x8a, 0x55, 0xc1, 0x6e, 0xef, 0x76, 0xee, 0x2a, 0x10, + 0x49, 0x99, 0x47, 0xef, 0x35, 0x29, 0xb3, 0x4a, 0xaa, 0x3c, 0xf6, 0xfe, 0x92, 0x2a, 0x1b, 0x49, + 0xa7, 0x2b, 0x47, 0x97, 0x74, 0xfa, 0x4b, 0x16, 0x9c, 0x6a, 0xe7, 0xe5, 0x5f, 0x17, 0x89, 0x92, + 0x5f, 0x18, 0x38, 0x0f, 0xbd, 0x51, 0x21, 0x4b, 0x24, 0x91, 0x4b, 0x86, 0xf3, 0xab, 0x93, 0xd9, + 0xab, 0xc7, 0xef, 0x35, 0x7b, 0xf5, 0xfd, 0xc9, 0xa8, 0x9c, 0xe6, 0xb2, 0x9e, 0x3c, 0xc2, 0x5c, + 0xd6, 0x53, 0xef, 0x3b, 0x97, 0xb5, 0x96, 0x8f, 0x7a, 0xfa, 0x28, 0xf2, 0x51, 0xbf, 0x6d, 0x0a, + 0x7b, 0x9e, 0x26, 0xf9, 0xa9, 0x3e, 0xc2, 0xde, 0xe0, 0xdb, 0x5b, 0xdc, 0xf3, 0xdc, 0xdb, 0xb3, + 0xf7, 0x94, 0x7b, 0xdb, 0xc8, 0x6a, 0x8d, 0x8e, 0x2e, 0xab, 0xf5, 0x4d, 0x7d, 0x0b, 0x3a, 0x51, + 0xcc, 0x57, 0xed, 0x34, 0xdd, 0x7c, 0xf3, 0x36, 0xa1, 0xee, 0x6c, 0xd9, 0x27, 0x8f, 0x27, 0x5b, + 0xf6, 0xa9, 0x23, 0xcf, 0x96, 0x7d, 0xfa, 0x18, 0xb2, 0x65, 0x3f, 0xf0, 0x81, 0x66, 0xcb, 0xae, + 0xde, 0xdf, 0x6c, 0xd9, 0x67, 0x8e, 0x22, 0x5b, 0xf6, 0x4d, 0xa8, 0xb4, 0xe5, 0x15, 0xbc, 0xea, + 0x5c, 0xf1, 0x90, 0xe4, 0xde, 0xd3, 0xe3, 0x43, 0xa2, 0x50, 0x38, 0x65, 0x45, 0xf9, 0xa6, 0xd9, + 0xb3, 0x1f, 0x2c, 0xe6, 0x9b, 0x6b, 0xb6, 0xf7, 0xc8, 0x99, 0xfd, 0x57, 0x4a, 0x70, 0xb6, 0xf7, + 0xbc, 0x4e, 0x6d, 0xfe, 0x46, 0xea, 0xc0, 0xcd, 0xd8, 0xfc, 0x4c, 0xe9, 0xd2, 0xa8, 0x06, 0xbe, + 0xa7, 0x7c, 0x11, 0x66, 0x55, 0x24, 0x92, 0xef, 0xb5, 0xf6, 0xb4, 0xc7, 0x6d, 0x54, 0x70, 0x7b, + 0x33, 0x4b, 0x80, 0xbb, 0xcb, 0xa0, 0x45, 0x98, 0x36, 0x80, 0x6b, 0x75, 0xa1, 0x92, 0x2b, 0x27, + 0x43, 0xd3, 0x44, 0xe3, 0x2c, 0xbd, 0xfd, 0x35, 0x0b, 0x1e, 0x28, 0x48, 0xbc, 0x39, 0xf0, 0x35, + 0xdc, 0x0d, 0x98, 0x6e, 0x9b, 0x45, 0xfb, 0xdc, 0xd6, 0x37, 0xd2, 0x7b, 0xaa, 0xb6, 0x66, 0x10, + 0x38, 0xcb, 0x74, 0xe9, 0xfc, 0xb7, 0xbf, 0x7f, 0xf6, 0x23, 0x7f, 0xf8, 0xfd, 0xb3, 0x1f, 0xf9, + 0xde, 0xf7, 0xcf, 0x7e, 0xe4, 0x2f, 0x1c, 0x9c, 0xb5, 0xbe, 0x7d, 0x70, 0xd6, 0xfa, 0xc3, 0x83, + 0xb3, 0xd6, 0xf7, 0x0e, 0xce, 0x5a, 0x7f, 0x7a, 0x70, 0xd6, 0xfa, 0x85, 0x1f, 0x9c, 0xfd, 0xc8, + 0x9b, 0xa5, 0xdd, 0x67, 0xff, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x81, 0xfc, 0x41, 0x31, 0xf8, + 0xc9, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index 60ec75b5f10..fc8d5999806 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -1014,10 +1014,12 @@ message ExecAction { // Fibre Channel volumes can only be mounted as read/write once. // Fibre Channel volumes support ownership management and SELinux relabeling. message FCVolumeSource { - // Required: FC target worldwide names (WWNs) + // Optional: FC target worldwide names (WWNs) + // +optional repeated string targetWWNs = 1; - // Required: FC target lun number + // Optional: FC target lun number + // +optional optional int32 lun = 2; // Filesystem type to mount. @@ -1031,6 +1033,11 @@ message FCVolumeSource { // the ReadOnly setting in VolumeMounts. // +optional optional bool readOnly = 4; + + // Optional: FC volume world wide identifiers (wwids) + // Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. + // +optional + repeated string wwids = 5; } // FlexVolume represents a generic volume resource that is diff --git a/staging/src/k8s.io/api/core/v1/types.generated.go b/staging/src/k8s.io/api/core/v1/types.generated.go index df9f41bc213..edf39c93b35 100644 --- a/staging/src/k8s.io/api/core/v1/types.generated.go +++ b/staging/src/k8s.io/api/core/v1/types.generated.go @@ -17212,16 +17212,19 @@ func (x *FCVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [4]bool + var yyq2 [5]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false + yyq2[0] = len(x.TargetWWNs) != 0 + yyq2[1] = x.Lun != nil yyq2[2] = x.FSType != "" yyq2[3] = x.ReadOnly != false + yyq2[4] = len(x.WWIDs) != 0 var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(4) + r.EncodeArrayStart(5) } else { - yynn2 = 2 + yynn2 = 0 for _, b := range yyq2 { if b { yynn2++ @@ -17232,57 +17235,69 @@ func (x *FCVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) { } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if x.TargetWWNs == nil { - r.EncodeNil() - } else { - yym4 := z.EncBinary() - _ = yym4 - if false { + if yyq2[0] { + if x.TargetWWNs == nil { + r.EncodeNil() } else { - z.F.EncSliceStringV(x.TargetWWNs, false, e) + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + z.F.EncSliceStringV(x.TargetWWNs, false, e) + } } + } else { + r.EncodeNil() } } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("targetWWNs")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - if x.TargetWWNs == nil { - r.EncodeNil() - } else { - yym5 := z.EncBinary() - _ = yym5 - if false { + if yyq2[0] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("targetWWNs")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.TargetWWNs == nil { + r.EncodeNil() } else { - z.F.EncSliceStringV(x.TargetWWNs, false, e) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + z.F.EncSliceStringV(x.TargetWWNs, false, e) + } } } } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayElem1234) - if x.Lun == nil { - r.EncodeNil() - } else { - yy7 := *x.Lun - yym8 := z.EncBinary() - _ = yym8 - if false { + if yyq2[1] { + if x.Lun == nil { + r.EncodeNil() } else { - r.EncodeInt(int64(yy7)) + yy7 := *x.Lun + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeInt(int64(yy7)) + } } + } else { + r.EncodeNil() } } else { - z.EncSendContainerState(codecSelfer_containerMapKey1234) - r.EncodeString(codecSelferC_UTF81234, string("lun")) - z.EncSendContainerState(codecSelfer_containerMapValue1234) - if x.Lun == nil { - r.EncodeNil() - } else { - yy9 := *x.Lun - yym10 := z.EncBinary() - _ = yym10 - if false { + if yyq2[1] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("lun")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.Lun == nil { + r.EncodeNil() } else { - r.EncodeInt(int64(yy9)) + yy9 := *x.Lun + yym10 := z.EncBinary() + _ = yym10 + if false { + } else { + r.EncodeInt(int64(yy9)) + } } } } @@ -17336,6 +17351,39 @@ func (x *FCVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) { } } } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[4] { + if x.WWIDs == nil { + r.EncodeNil() + } else { + yym18 := z.EncBinary() + _ = yym18 + if false { + } else { + z.F.EncSliceStringV(x.WWIDs, false, e) + } + } + } else { + r.EncodeNil() + } + } else { + if yyq2[4] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("wwids")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.WWIDs == nil { + r.EncodeNil() + } else { + yym19 := z.EncBinary() + _ = yym19 + if false { + } else { + z.F.EncSliceStringV(x.WWIDs, false, e) + } + } + } + } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { @@ -17449,6 +17497,18 @@ func (x *FCVolumeSource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { *((*bool)(yyv10)) = r.DecodeBool() } } + case "wwids": + if r.TryDecodeAsNil() { + x.WWIDs = nil + } else { + yyv12 := &x.WWIDs + yym13 := z.DecBinary() + _ = yym13 + if false { + } else { + z.F.DecSliceStringX(yyv12, false, d) + } + } default: z.DecStructFieldNotFound(-1, yys3) } // end switch yys3 @@ -17460,16 +17520,16 @@ func (x *FCVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj12 int - var yyb12 bool - var yyhl12 bool = l >= 0 - yyj12++ - if yyhl12 { - yyb12 = yyj12 > l + var yyj14 int + var yyb14 bool + var yyhl14 bool = l >= 0 + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l } else { - yyb12 = r.CheckBreak() + yyb14 = r.CheckBreak() } - if yyb12 { + if yyb14 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -17477,21 +17537,21 @@ func (x *FCVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.TargetWWNs = nil } else { - yyv13 := &x.TargetWWNs - yym14 := z.DecBinary() - _ = yym14 + yyv15 := &x.TargetWWNs + yym16 := z.DecBinary() + _ = yym16 if false { } else { - z.F.DecSliceStringX(yyv13, false, d) + z.F.DecSliceStringX(yyv15, false, d) } } - yyj12++ - if yyhl12 { - yyb12 = yyj12 > l + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l } else { - yyb12 = r.CheckBreak() + yyb14 = r.CheckBreak() } - if yyb12 { + if yyb14 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -17504,20 +17564,20 @@ func (x *FCVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if x.Lun == nil { x.Lun = new(int32) } - yym16 := z.DecBinary() - _ = yym16 + yym18 := z.DecBinary() + _ = yym18 if false { } else { *((*int32)(x.Lun)) = int32(r.DecodeInt(32)) } } - yyj12++ - if yyhl12 { - yyb12 = yyj12 > l + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l } else { - yyb12 = r.CheckBreak() + yyb14 = r.CheckBreak() } - if yyb12 { + if yyb14 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -17525,21 +17585,21 @@ func (x *FCVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.FSType = "" } else { - yyv17 := &x.FSType - yym18 := z.DecBinary() - _ = yym18 + yyv19 := &x.FSType + yym20 := z.DecBinary() + _ = yym20 if false { } else { - *((*string)(yyv17)) = r.DecodeString() + *((*string)(yyv19)) = r.DecodeString() } } - yyj12++ - if yyhl12 { - yyb12 = yyj12 > l + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l } else { - yyb12 = r.CheckBreak() + yyb14 = r.CheckBreak() } - if yyb12 { + if yyb14 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -17547,26 +17607,48 @@ func (x *FCVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { if r.TryDecodeAsNil() { x.ReadOnly = false } else { - yyv19 := &x.ReadOnly - yym20 := z.DecBinary() - _ = yym20 + yyv21 := &x.ReadOnly + yym22 := z.DecBinary() + _ = yym22 if false { } else { - *((*bool)(yyv19)) = r.DecodeBool() + *((*bool)(yyv21)) = r.DecodeBool() + } + } + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l + } else { + yyb14 = r.CheckBreak() + } + if yyb14 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.WWIDs = nil + } else { + yyv23 := &x.WWIDs + yym24 := z.DecBinary() + _ = yym24 + if false { + } else { + z.F.DecSliceStringX(yyv23, false, d) } } for { - yyj12++ - if yyhl12 { - yyb12 = yyj12 > l + yyj14++ + if yyhl14 { + yyb14 = yyj14 > l } else { - yyb12 = r.CheckBreak() + yyb14 = r.CheckBreak() } - if yyb12 { + if yyb14 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj12-1, "") + z.DecStructFieldNotFound(yyj14-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index a702310fb45..e1c5c4cacd0 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -541,10 +541,11 @@ func (ExecAction) SwaggerDoc() map[string]string { var map_FCVolumeSource = map[string]string{ "": "Represents a Fibre Channel volume. Fibre Channel volumes can only be mounted as read/write once. Fibre Channel volumes support ownership management and SELinux relabeling.", - "targetWWNs": "Required: FC target worldwide names (WWNs)", - "lun": "Required: FC target lun number", + "targetWWNs": "Optional: FC target worldwide names (WWNs)", + "lun": "Optional: FC target lun number", "fsType": "Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. \"ext4\", \"xfs\", \"ntfs\". Implicitly inferred to be \"ext4\" if unspecified.", "readOnly": "Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "wwids": "Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", } func (FCVolumeSource) SwaggerDoc() map[string]string { diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index ba103b4e7e8..ea1542df8d6 100644 --- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -2084,6 +2084,11 @@ func (in *FCVolumeSource) DeepCopyInto(out *FCVolumeSource) { **out = **in } } + if in.WWIDs != nil { + in, out := &in.WWIDs, &out.WWIDs + *out = make([]string, len(*in)) + copy(*out, *in) + } return } From 5a4ac692fa66eb4688fc14cabbe9a1e5d4ca1d6e Mon Sep 17 00:00:00 2001 From: Jordan Liggitt Date: Thu, 10 Aug 2017 11:01:01 -0400 Subject: [PATCH 166/183] Detect missing steps in edit testcases --- pkg/kubectl/cmd/edit_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/kubectl/cmd/edit_test.go b/pkg/kubectl/cmd/edit_test.go index e821793a3d3..ef3be5e40d1 100644 --- a/pkg/kubectl/cmd/edit_test.go +++ b/pkg/kubectl/cmd/edit_test.go @@ -280,6 +280,9 @@ func TestEdit(t *testing.T) { t.Errorf("%s: expected to see '%s' in stderr\n\nstdout:\n%s\n\nstderr:\n%s", name, s, stdout, stderr) } } + if i < len(testcase.Steps) { + t.Errorf("%s: saw %d steps, testcase included %d additional steps that were not exercised", name, i, len(testcase.Steps)-i) + } } } From cade629d25f784c17a2076d01a1c878cb5591c25 Mon Sep 17 00:00:00 2001 From: fangyuhao Date: Thu, 10 Aug 2017 23:51:18 +0800 Subject: [PATCH 167/183] remove the duplicate address of glusterfs --- pkg/volume/glusterfs/BUILD | 1 + pkg/volume/glusterfs/glusterfs.go | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/volume/glusterfs/BUILD b/pkg/volume/glusterfs/BUILD index 081e5b6caf9..296eb0e5a10 100644 --- a/pkg/volume/glusterfs/BUILD +++ b/pkg/volume/glusterfs/BUILD @@ -33,6 +33,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", ], diff --git a/pkg/volume/glusterfs/glusterfs.go b/pkg/volume/glusterfs/glusterfs.go index d24b903f34d..0d9d2eba0ae 100644 --- a/pkg/volume/glusterfs/glusterfs.go +++ b/pkg/volume/glusterfs/glusterfs.go @@ -35,6 +35,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/sets" clientset "k8s.io/client-go/kubernetes" v1helper "k8s.io/kubernetes/pkg/api/v1/helper" "k8s.io/kubernetes/pkg/util/mount" @@ -322,12 +323,14 @@ func (b *glusterfsMounter) setUpAtInternal(dir string) error { if b.hosts == nil { return fmt.Errorf("glusterfs: endpoint is nil") } - addr := make(map[string]struct{}) + addr := sets.String{} if b.hosts.Subsets != nil { for _, s := range b.hosts.Subsets { for _, a := range s.Addresses { - addr[a.IP] = struct{}{} - addrlist = append(addrlist, a.IP) + if !addr.Has(a.IP) { + addr.Insert(a.IP) + addrlist = append(addrlist, a.IP) + } } } From 58ea4e41d4947c0eff0b59685b29d86b3cbe50ae Mon Sep 17 00:00:00 2001 From: Yu-Ju Hong Date: Tue, 8 Aug 2017 14:19:45 -0700 Subject: [PATCH 168/183] GCE: filter addresses by IP when listing Also move the function to gce_addresses.go so that metrics can be recorded for the call. --- .../providers/gce/gce_addresses.go | 29 +++++++++++++++++ .../providers/gce/gce_addresses_fakes.go | 17 ++++++++-- .../gce/gce_loadbalancer_external.go | 32 ++----------------- pkg/cloudprovider/providers/gce/gce_util.go | 4 +++ 4 files changed, 51 insertions(+), 31 deletions(-) diff --git a/pkg/cloudprovider/providers/gce/gce_addresses.go b/pkg/cloudprovider/providers/gce/gce_addresses.go index 3592fcf3b6c..0a7b0d19974 100644 --- a/pkg/cloudprovider/providers/gce/gce_addresses.go +++ b/pkg/cloudprovider/providers/gce/gce_addresses.go @@ -17,8 +17,10 @@ limitations under the License. package gce import ( + "fmt" "time" + "github.com/golang/glog" compute "google.golang.org/api/compute/v1" ) @@ -85,3 +87,30 @@ func (gce *GCECloud) GetRegionAddress(name, region string) (*compute.Address, er v, err := gce.service.Addresses.Get(gce.projectID, region, name).Do() return v, mc.Observe(err) } + +// GetRegionAddressByIP returns the regional address matching the given IP +// address. +func (gce *GCECloud) GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error) { + mc := newAddressMetricContext("list", region) + addrs, err := gce.service.Addresses.List(gce.projectID, region).Filter("address eq " + ipAddress).Do() + // Record the metrics for the call. + mc.Observe(err) + if err != nil { + return nil, err + } + + if len(addrs.Items) > 1 { + // We don't expect more than one match. + addrsToPrint := []compute.Address{} + for _, addr := range addrs.Items { + addrsToPrint = append(addrsToPrint, *addr) + } + glog.Errorf("More than one addresses matching the IP %q: %+v", ipAddress, addrsToPrint) + } + for _, addr := range addrs.Items { + if addr.Address == ipAddress { + return addr, nil + } + } + return nil, makeGoogleAPINotFoundError(fmt.Sprintf("Address with IP %q was not found in region %q", ipAddress, region)) +} diff --git a/pkg/cloudprovider/providers/gce/gce_addresses_fakes.go b/pkg/cloudprovider/providers/gce/gce_addresses_fakes.go index bafb3e9ab0a..156aaeb6d23 100644 --- a/pkg/cloudprovider/providers/gce/gce_addresses_fakes.go +++ b/pkg/cloudprovider/providers/gce/gce_addresses_fakes.go @@ -66,12 +66,25 @@ func (cas *FakeCloudAddressService) ReserveRegionAddress(addr *compute.Address, func (cas *FakeCloudAddressService) GetRegionAddress(name, region string) (*compute.Address, error) { if _, exists := cas.addrsByRegionAndName[region]; !exists { - return nil, &googleapi.Error{Code: http.StatusNotFound} + return nil, makeGoogleAPINotFoundError("") } if addr, exists := cas.addrsByRegionAndName[region][name]; !exists { - return nil, &googleapi.Error{Code: http.StatusNotFound} + return nil, makeGoogleAPINotFoundError("") } else { return addr, nil } } + +func (cas *FakeCloudAddressService) GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error) { + if _, exists := cas.addrsByRegionAndName[region]; !exists { + return nil, makeGoogleAPINotFoundError("") + } + + for _, addr := range cas.addrsByRegionAndName[region] { + if addr.Address == ipAddress { + return addr, nil + } + } + return nil, makeGoogleAPINotFoundError("") +} diff --git a/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go b/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go index e3e9b80212f..f8d3ff4603b 100644 --- a/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go +++ b/pkg/cloudprovider/providers/gce/gce_loadbalancer_external.go @@ -127,14 +127,14 @@ func (gce *GCECloud) ensureExternalLoadBalancer(clusterName, clusterID string, a // a different IP, it will be harmlessly abandoned because it was only an // ephemeral IP (or it was a different static IP owned by the user, in which // case we shouldn't delete it anyway). - if isStatic, err := gce.projectOwnsStaticIP(loadBalancerName, gce.region, loadBalancerIP); err != nil { + if existingAddress, err := gce.GetRegionAddressByIP(gce.region, loadBalancerIP); err != nil && !isNotFound(err) { return nil, fmt.Errorf("failed to test if this GCE project owns the static IP %s: %v", loadBalancerIP, err) - } else if isStatic { + } else if err == nil { // The requested IP is a static IP, owned and managed by the user. isUserOwnedIP = true isSafeToReleaseIP = false ipAddress = loadBalancerIP - glog.V(4).Infof("EnsureLoadBalancer(%v(%v)): using user-provided static IP %s", loadBalancerName, serviceName, ipAddress) + glog.V(4).Infof("EnsureLoadBalancer(%v(%v)): using user-provided static IP %s (name: %s)", loadBalancerName, serviceName, ipAddress, existingAddress.Name) } else if loadBalancerIP == fwdRuleIP { // The requested IP is not a static IP, but is currently assigned // to this forwarding rule, so we can keep it. @@ -880,32 +880,6 @@ func (gce *GCECloud) firewallObject(name, region, desc string, sourceRanges nets return firewall, nil } -func (gce *GCECloud) projectOwnsStaticIP(name, region string, ipAddress string) (bool, error) { - pageToken := "" - page := 0 - for ; page == 0 || (pageToken != "" && page < maxPages); page++ { - listCall := gce.service.Addresses.List(gce.projectID, region) - if pageToken != "" { - listCall = listCall.PageToken(pageToken) - } - addresses, err := listCall.Do() - if err != nil { - return false, fmt.Errorf("failed to list gce IP addresses: %v", err) - } - pageToken = addresses.NextPageToken - for _, addr := range addresses.Items { - if addr.Address == ipAddress { - // This project does own the address, so return success. - return true, nil - } - } - } - if page >= maxPages { - glog.Errorf("projectOwnsStaticIP exceeded maxPages=%d for Addresses.List; truncating.", maxPages) - } - return false, nil -} - func ensureStaticIP(s CloudAddressService, name, serviceName, region, existingIP string) (ipAddress string, existing bool, err error) { // If the address doesn't exist, this will create it. // If the existingIP exists but is ephemeral, this will promote it to static. diff --git a/pkg/cloudprovider/providers/gce/gce_util.go b/pkg/cloudprovider/providers/gce/gce_util.go index bcbd523c889..a28fb0d6255 100644 --- a/pkg/cloudprovider/providers/gce/gce_util.go +++ b/pkg/cloudprovider/providers/gce/gce_util.go @@ -149,3 +149,7 @@ func ignoreNotFound(err error) error { func isNotFoundOrInUse(err error) bool { return isNotFound(err) || isInUsedByError(err) } + +func makeGoogleAPINotFoundError(message string) error { + return &googleapi.Error{Code: http.StatusNotFound, Message: message} +} From 2dd359ba192aedf37a9789992b46f7d9f0468fec Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Mon, 24 Jul 2017 16:40:11 -0500 Subject: [PATCH 169/183] kubeadm: add pubkeypin package (public key pinning hash implementation). This change adds a `k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin` package which implements x509 public key pinning in the style of RFC7469. This is the public key hash format used by the new `kubeadm join --discovery-token-ca-cert-hash` flag. Hashes are namespaced with a short type, with "sha256" being the only currently-supported format. Type "sha256" is a hex-encoded SHA-256 hash over the Subject Public Key Info (SPKI) object in DER-encoded ASN.1. --- cmd/kubeadm/app/util/BUILD | 1 + cmd/kubeadm/app/util/pubkeypin/BUILD | 35 ++++ cmd/kubeadm/app/util/pubkeypin/pubkeypin.go | 108 ++++++++++++ .../app/util/pubkeypin/pubkeypin_test.go | 158 ++++++++++++++++++ 4 files changed, 302 insertions(+) create mode 100644 cmd/kubeadm/app/util/pubkeypin/BUILD create mode 100644 cmd/kubeadm/app/util/pubkeypin/pubkeypin.go create mode 100644 cmd/kubeadm/app/util/pubkeypin/pubkeypin_test.go diff --git a/cmd/kubeadm/app/util/BUILD b/cmd/kubeadm/app/util/BUILD index 2b3d9eabe1d..9cda2c92684 100644 --- a/cmd/kubeadm/app/util/BUILD +++ b/cmd/kubeadm/app/util/BUILD @@ -55,6 +55,7 @@ filegroup( "//cmd/kubeadm/app/util/apiclient:all-srcs", "//cmd/kubeadm/app/util/config:all-srcs", "//cmd/kubeadm/app/util/kubeconfig:all-srcs", + "//cmd/kubeadm/app/util/pubkeypin:all-srcs", "//cmd/kubeadm/app/util/token:all-srcs", ], tags = ["automanaged"], diff --git a/cmd/kubeadm/app/util/pubkeypin/BUILD b/cmd/kubeadm/app/util/pubkeypin/BUILD new file mode 100644 index 00000000000..195b85c9287 --- /dev/null +++ b/cmd/kubeadm/app/util/pubkeypin/BUILD @@ -0,0 +1,35 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", + "go_test", +) + +go_test( + name = "go_default_test", + srcs = ["pubkeypin_test.go"], + library = ":go_default_library", + tags = ["automanaged"], +) + +go_library( + name = "go_default_library", + srcs = ["pubkeypin.go"], + tags = ["automanaged"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/cmd/kubeadm/app/util/pubkeypin/pubkeypin.go b/cmd/kubeadm/app/util/pubkeypin/pubkeypin.go new file mode 100644 index 00000000000..1766e957555 --- /dev/null +++ b/cmd/kubeadm/app/util/pubkeypin/pubkeypin.go @@ -0,0 +1,108 @@ +/* +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. +*/ + +// Package pubkeypin provides primitives for x509 public key pinning in the +// style of RFC7469. +package pubkeypin + +import ( + "crypto/sha256" + "crypto/x509" + "encoding/hex" + "fmt" + "strings" +) + +const ( + // formatSHA256 is the prefix for pins that are full-length SHA-256 hashes encoded in base 16 (hex) + formatSHA256 = "sha256" +) + +// Set is a set of pinned x509 public keys. +type Set struct { + sha256Hashes map[string]bool +} + +// NewSet returns a new, empty PubKeyPinSet +func NewSet() *Set { + return &Set{make(map[string]bool)} +} + +// Allow adds an allowed public key hash to the Set +func (s *Set) Allow(pubKeyHashes ...string) error { + for _, pubKeyHash := range pubKeyHashes { + parts := strings.Split(pubKeyHash, ":") + if len(parts) != 2 { + return fmt.Errorf("invalid public key hash, expected \"format:value\"") + } + format, value := parts[0], parts[1] + + switch strings.ToLower(format) { + case "sha256": + return s.allowSHA256(value) + default: + return fmt.Errorf("unknown hash format %q", format) + } + } + return nil +} + +// Check if a certificate matches one of the public keys in the set +func (s *Set) Check(certificate *x509.Certificate) error { + if s.checkSHA256(certificate) { + return nil + } + return fmt.Errorf("public key %s not pinned", Hash(certificate)) +} + +// Empty returns true if the Set contains no pinned public keys. +func (s *Set) Empty() bool { + return len(s.sha256Hashes) == 0 +} + +// Hash calculates the SHA-256 hash of the Subject Public Key Information (SPKI) +// object in an x509 certificate (in DER encoding). It returns the full hash as a +// hex encoded string (suitable for passing to Set.Allow). +func Hash(certificate *x509.Certificate) string { + spkiHash := sha256.Sum256(certificate.RawSubjectPublicKeyInfo) + return formatSHA256 + ":" + strings.ToLower(hex.EncodeToString(spkiHash[:])) +} + +// allowSHA256 validates a "sha256" format hash and adds a canonical version of it into the Set +func (s *Set) allowSHA256(hash string) error { + // validate that the hash is the right length to be a full SHA-256 hash + hashLength := hex.DecodedLen(len(hash)) + if hashLength != sha256.Size { + return fmt.Errorf("expected a %d byte SHA-256 hash, found %d bytes", sha256.Size, hashLength) + } + + // validate that the hash is valid hex + _, err := hex.DecodeString(hash) + if err != nil { + return err + } + + // in the end, just store the original hex string in memory (in lowercase) + s.sha256Hashes[strings.ToLower(hash)] = true + return nil +} + +// checkSHA256 returns true if the certificate's "sha256" hash is pinned in the Set +func (s *Set) checkSHA256(certificate *x509.Certificate) bool { + actualHash := sha256.Sum256(certificate.RawSubjectPublicKeyInfo) + actualHashHex := strings.ToLower(hex.EncodeToString(actualHash[:])) + return s.sha256Hashes[actualHashHex] +} diff --git a/cmd/kubeadm/app/util/pubkeypin/pubkeypin_test.go b/cmd/kubeadm/app/util/pubkeypin/pubkeypin_test.go new file mode 100644 index 00000000000..4e578a4bdb9 --- /dev/null +++ b/cmd/kubeadm/app/util/pubkeypin/pubkeypin_test.go @@ -0,0 +1,158 @@ +/* +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. +*/ + +package pubkeypin + +import ( + "crypto/x509" + "encoding/pem" + "strings" + "testing" +) + +// testCertPEM is a simple self-signed test certificate issued with the openssl CLI: +// openssl req -new -newkey rsa:2048 -days 36500 -nodes -x509 -keyout /dev/null -out test.crt +const testCertPEM = ` +-----BEGIN CERTIFICATE----- +MIIDRDCCAiygAwIBAgIJAJgVaCXvC6HkMA0GCSqGSIb3DQEBBQUAMB8xHTAbBgNV +BAMTFGt1YmVhZG0ta2V5cGlucy10ZXN0MCAXDTE3MDcwNTE3NDMxMFoYDzIxMTcw +NjExMTc0MzEwWjAfMR0wGwYDVQQDExRrdWJlYWRtLWtleXBpbnMtdGVzdDCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK0ba8mHU9UtYlzM1Own2Fk/XGjR +J4uJQvSeGLtz1hID1IA0dLwruvgLCPadXEOw/f/IWIWcmT+ZmvIHZKa/woq2iHi5 ++HLhXs7aG4tjKGLYhag1hLjBI7icqV7ovkjdGAt9pWkxEzhIYClFMXDjKpMSynu+ +YX6nZ9tic1cOkHmx2yiZdMkuriRQnpTOa7bb03OC1VfGl7gHlOAIYaj4539WCOr8 ++ACTUMJUFEHcRZ2o8a/v6F9GMK+7SC8SJUI+GuroXqlMAdhEv4lX5Co52enYaClN ++D9FJLRpBv2YfiCQdJRaiTvCBSxEFz6BN+PtP5l2Hs703ZWEkOqCByM6HV8CAwEA +AaOBgDB+MB0GA1UdDgQWBBRQgUX8MhK2rWBWQiPHWcKzoWDH5DBPBgNVHSMESDBG +gBRQgUX8MhK2rWBWQiPHWcKzoWDH5KEjpCEwHzEdMBsGA1UEAxMUa3ViZWFkbS1r +ZXlwaW5zLXRlc3SCCQCYFWgl7wuh5DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB +BQUAA4IBAQCaAUif7Pfx3X0F08cxhx8/Hdx4jcJw6MCq6iq6rsXM32ge43t8OHKC +pJW08dk58a3O1YQSMMvD6GJDAiAfXzfwcwY6j258b1ZlI9Ag0VokvhMl/XfdCsdh +AWImnL1t4hvU5jLaImUUMlYxMcSfHBGAm7WJIZ2LdEfg6YWfZh+WGbg1W7uxLxk6 +y4h5rWdNnzBHWAGf7zJ0oEDV6W6RSwNXtC0JNnLaeIUm/6xdSddJlQPwUv8YH4jX +c1vuFqTnJBPcb7W//R/GI2Paicm1cmns9NLnPR35exHxFTy+D1yxmGokpoPMdife +aH+sfuxT8xeTPb3kjzF9eJTlnEquUDLM +-----END CERTIFICATE-----` + +// expectedHash can be verified using the openssl CLI: +// openssl x509 -pubkey -in test.crt openssl rsa -pubin -outform der 2>&/dev/null | openssl dgst -sha256 -hex +const expectedHash = `sha256:345959acb2c3b2feb87d281961c893f62a314207ef02599f1cc4a5fb255480b3` + +// testCert2PEM is a second test cert generated the same way as testCertPEM +const testCert2PEM = ` +-----BEGIN CERTIFICATE----- +MIID9jCCAt6gAwIBAgIJAN5MXZDic7qYMA0GCSqGSIb3DQEBBQUAMFkxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQxEjAQBgNVBAMTCXRlc3RDZXJ0MjAgFw0xNzA3MjQxNjA0 +MDFaGA8yMTE3MDYzMDE2MDQwMVowWTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNv +bWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDESMBAG +A1UEAxMJdGVzdENlcnQyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA +0brwpJYN2ytPWzRBtZSVc3dhkQlA59AzxzqeLLkano0Pxo9NIc3T/y58nnRI8uaS +I1P7BzUfJTiUEvmAtX8NggqKK4ld/gPrU+IRww1CUYS4KCkA/0d0ctPy0JwBCjD+ +b57G3rmNE8c+0jns6J96ZzNtqmv6N+ZlFBAXm1p4S+k0kGi5+hoQ6H7SYXjk2lG+ +r/8jPQEjy/NSdw1dcCA0Nc6o+hPr32927dS6J9KOhBeXNYUNdbuDDmroM9/gN2e/ +YMSA1olLeDPQ7Xvhk0PIyEDnHh83AffPCx5yM3htVRGddjIsPAVUJEL3z5leJtxe +fzyPghOhHJY0PXqznDQTcwIDAQABo4G+MIG7MB0GA1UdDgQWBBRP0IJqv/5rQ4Uf +SByl77dJeEapRDCBiwYDVR0jBIGDMIGAgBRP0IJqv/5rQ4UfSByl77dJeEapRKFd +pFswWTELMAkGA1UEBhMCQVUxEzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoT +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDESMBAGA1UEAxMJdGVzdENlcnQyggkA +3kxdkOJzupgwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEA0RIMHc10 +wHHPMh9UflqBgDMF7gfbOL0juJfGloAOcohWWfMZBBJ0CQKMy3xRyoK3HmbW1eeb +iATjesw7t4VEAwf7mgKAd+eTfWYB952uq5qYJ2TI28mSofEq1Wz3RmrNkC1KCBs1 +u+YMFGwyl6necV9zKCeiju4jeovI1GA38TvH7MgYln6vMJ+FbgOXj7XCpek7dQiY +KGaeSSH218mGNQaWRQw2Sm3W6cFdANoCJUph4w18s7gjtFpfV63s80hXRps+vEyv +jEQMEQpG8Ss7HGJLGLBw/xAmG0e//XS/o2dDonbGbvzToFByz8OGxjMhk6yV6hdd ++iyvsLAw/MYMSA== +-----END CERTIFICATE----- +` + +// testCert is a small helper to get a test x509.Certificate from the PEM constants +func testCert(t *testing.T, pemString string) *x509.Certificate { + // Decode the example certificate from a PEM file into a PEM block + pemBlock, _ := pem.Decode([]byte(pemString)) + if pemBlock == nil { + t.Fatal("failed to parse test certificate PEM") + return nil + } + + // Parse the PEM block into an x509.Certificate + result, err := x509.ParseCertificate(pemBlock.Bytes) + if err != nil { + t.Fatalf("failed to parse test certificate: %v", err) + return nil + } + return result +} + +func TestSet(t *testing.T) { + s := NewSet() + if !s.Empty() { + t.Error("expected a new set to be empty") + return + } + err := s.Allow("xyz") + if err == nil || !s.Empty() { + t.Error("expected allowing junk to fail") + return + } + + err = s.Allow("0011223344") + if err == nil || !s.Empty() { + t.Error("expected allowing something too short to fail") + return + } + + err = s.Allow(expectedHash + expectedHash) + if err == nil || !s.Empty() { + t.Error("expected allowing something too long to fail") + return + } + + err = s.Check(testCert(t, testCertPEM)) + if err == nil { + t.Error("expected test cert to not be allowed (yet)") + return + } + + err = s.Allow(strings.ToUpper(expectedHash)) + if err != nil || s.Empty() { + t.Error("expected allowing uppercase expectedHash to succeed") + return + } + + err = s.Check(testCert(t, testCertPEM)) + if err != nil { + t.Errorf("expected test cert to be allowed, but got back: %v", err) + return + } + + err = s.Check(testCert(t, testCert2PEM)) + if err == nil { + t.Error("expected the second test cert to be disallowed") + return + } +} + +func TestHash(t *testing.T) { + actualHash := Hash(testCert(t, testCertPEM)) + if actualHash != expectedHash { + t.Errorf( + "failed to Hash() to the expected value\n\texpected: %q\n\t actual: %q", + expectedHash, + actualHash, + ) + } +} From 1be639d6b05f314513c982087ee26fcc4ed30d79 Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Mon, 24 Jul 2017 16:34:36 -0500 Subject: [PATCH 170/183] kubeadm: implement TLS discovery root CA pinning. This change adds the `--discovery-token-ca-cert-hash` and `--discovery-token-unsafe-skip-ca-verification` flags for `kubeadm join` and corresponding fields on the kubeadm NodeConfiguration struct. These flags configure enhanced TLS validation for token-based discovery. The enhanced TLS validation works by pinning the public key hashes of the cluster CA. This is done by connecting to the `cluster-info` endpoint initially using an unvalidated/unsafe TLS connection. After the cluster info has been loaded, parsed, and validated with the existing symmetric signature/MAC scheme, the root CA is validated against the pinned public key set. A second request is made using validated/safe TLS using the newly-known CA and the result is validated to make sure the same `cluster-info` was returned from both requests. This validation prevents a class of attacks where a leaked bootstrap token (such as from a compromised worker node) allows an attacker to impersonate the API server. This change also update `kubeadm init` to print the correct `--discovery-token-ca-cert-hash` flag in the example `kubeadm join` command it prints at the end of initialization. --- cmd/kubeadm/app/apis/kubeadm/types.go | 15 +++ .../app/apis/kubeadm/v1alpha1/types.go | 15 +++ .../app/apis/kubeadm/validation/validation.go | 11 ++ cmd/kubeadm/app/cmd/BUILD | 2 + cmd/kubeadm/app/cmd/init.go | 11 +- cmd/kubeadm/app/cmd/join.go | 22 ++++ cmd/kubeadm/app/discovery/discovery.go | 2 +- cmd/kubeadm/app/discovery/token/BUILD | 1 + cmd/kubeadm/app/discovery/token/token.go | 122 +++++++++++++++--- cmd/kubeadm/app/discovery/token/token_test.go | 54 ++++++++ 10 files changed, 236 insertions(+), 19 deletions(-) diff --git a/cmd/kubeadm/app/apis/kubeadm/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go index b6baf01ee64..93ad6803344 100644 --- a/cmd/kubeadm/app/apis/kubeadm/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/types.go @@ -100,6 +100,21 @@ type NodeConfiguration struct { NodeName string TLSBootstrapToken string Token string + + // DiscoveryTokenCACertHashes specifies a set of public key pins to verify + // when token-based discovery is used. The root CA found during discovery + // must match one of these values. Specifying an empty set disables root CA + // pinning, which can be unsafe. Each hash is specified as ":", + // where the only currently supported type is "sha256". This is a hex-encoded + // SHA-256 hash of the Subject Public Key Info (SPKI) object in DER-encoded + // ASN.1. These hashes can be calculated using, for example, OpenSSL: + // openssl x509 -pubkey -in ca.crt openssl rsa -pubin -outform der 2>&/dev/null | openssl dgst -sha256 -hex + DiscoveryTokenCACertHashes []string + + // DiscoveryTokenUnsafeSkipCAVerification allows token-based discovery + // without CA verification via DiscoveryTokenCACertHashes. This can weaken + // the security of kubeadm since other nodes can impersonate the master. + DiscoveryTokenUnsafeSkipCAVerification bool } func (cfg *MasterConfiguration) GetMasterEndpoint() string { diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go index 38c2e77b123..f7c1cdf7ac1 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go @@ -98,4 +98,19 @@ type NodeConfiguration struct { NodeName string `json:"nodeName"` TLSBootstrapToken string `json:"tlsBootstrapToken"` Token string `json:"token"` + + // DiscoveryTokenCACertHashes specifies a set of public key pins to verify + // when token-based discovery is used. The root CA found during discovery + // must match one of these values. Specifying an empty set disables root CA + // pinning, which can be unsafe. Each hash is specified as ":", + // where the only currently supported type is "sha256". This is a hex-encoded + // SHA-256 hash of the Subject Public Key Info (SPKI) object in DER-encoded + // ASN.1. These hashes can be calculated using, for example, OpenSSL: + // openssl x509 -pubkey -in ca.crt openssl rsa -pubin -outform der 2>&/dev/null | openssl dgst -sha256 -hex + DiscoveryTokenCACertHashes []string `json:"discoveryTokenCACertHashes"` + + // DiscoveryTokenUnsafeSkipCAVerification allows token-based discovery + // without CA verification via DiscoveryTokenCACertHashes. This can weaken + // the security of kubeadm since other nodes can impersonate the master. + DiscoveryTokenUnsafeSkipCAVerification bool `json:"discoveryTokenUnsafeSkipCAVerification"` } diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go index 3c19c02d3ec..dbdd252dccb 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/validation.go +++ b/cmd/kubeadm/app/apis/kubeadm/validation/validation.go @@ -137,6 +137,17 @@ func ValidateArgSelection(cfg *kubeadm.NodeConfiguration, fldPath *field.Path) f if len(cfg.DiscoveryTokenAPIServers) < 1 && len(cfg.DiscoveryToken) != 0 { allErrs = append(allErrs, field.Required(fldPath, "DiscoveryTokenAPIServers not set")) } + + if len(cfg.DiscoveryFile) != 0 && len(cfg.DiscoveryTokenCACertHashes) != 0 { + allErrs = append(allErrs, field.Invalid(fldPath, "", "DiscoveryTokenCACertHashes cannot be used with DiscoveryFile")) + } + + // TODO: convert this warning to an error after v1.8 + if len(cfg.DiscoveryFile) == 0 && len(cfg.DiscoveryTokenCACertHashes) == 0 && !cfg.DiscoveryTokenUnsafeSkipCAVerification { + fmt.Println("[validation] WARNING: using token-based discovery without DiscoveryTokenCACertHashes can be unsafe (see https://kubernetes.io/docs/admin/kubeadm/#kubeadm-join).") + fmt.Println("[validation] WARNING: Pass --discovery-token-unsafe-skip-ca-verification to disable this warning. This warning will become an error in Kubernetes 1.9.") + } + // TODO remove once we support multiple api servers if len(cfg.DiscoveryTokenAPIServers) > 1 { fmt.Println("[validation] WARNING: kubeadm doesn't fully support multiple API Servers yet") diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index 2955ae3fdd4..a907ab6a3fe 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -32,6 +32,7 @@ go_library( "//cmd/kubeadm/app/phases/apiconfig:go_default_library", "//cmd/kubeadm/app/phases/bootstraptoken/clusterinfo:go_default_library", "//cmd/kubeadm/app/phases/bootstraptoken/node:go_default_library", + "//cmd/kubeadm/app/phases/certs/pkiutil:go_default_library", "//cmd/kubeadm/app/phases/controlplane:go_default_library", "//cmd/kubeadm/app/phases/kubeconfig:go_default_library", "//cmd/kubeadm/app/phases/markmaster:go_default_library", @@ -41,6 +42,7 @@ go_library( "//cmd/kubeadm/app/util:go_default_library", "//cmd/kubeadm/app/util/config:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", + "//cmd/kubeadm/app/util/pubkeypin:go_default_library", "//cmd/kubeadm/app/util/token:go_default_library", "//pkg/api:go_default_library", "//pkg/bootstrap/api:go_default_library", diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index 6eaa449638f..9933ffd0647 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -38,6 +38,7 @@ import ( apiconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/apiconfig" clusterinfophase "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo" nodebootstraptokenphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" + "k8s.io/kubernetes/cmd/kubeadm/app/phases/certs/pkiutil" controlplanephase "k8s.io/kubernetes/cmd/kubeadm/app/phases/controlplane" kubeconfigphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/kubeconfig" markmasterphase "k8s.io/kubernetes/cmd/kubeadm/app/phases/markmaster" @@ -46,6 +47,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/preflight" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" + "k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/util/version" ) @@ -67,7 +69,7 @@ var ( You can now join any number of machines by running the following on each node as root: - kubeadm join --token {{.Token}} {{.MasterIP}}:{{.MasterPort}} + kubeadm join --token {{.Token}} {{.MasterIP}}:{{.MasterPort}} --discovery-token-ca-cert-hash {{.CAPubKeyPin}} `))) ) @@ -310,10 +312,17 @@ func (i *Init) Run(out io.Writer) error { } } + // Load the CA certificate from so we can pin its public key + caCert, err := pkiutil.TryLoadCertFromDisk(i.cfg.CertificatesDir, kubeadmconstants.CACertAndKeyBaseName) + if err != nil { + return err + } + ctx := map[string]string{ "KubeConfigPath": filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName), "KubeConfigName": kubeadmconstants.AdminKubeConfigFileName, "Token": i.cfg.Token, + "CAPubKeyPin": pubkeypin.Hash(caCert), "MasterIP": i.cfg.API.AdvertiseAddress, "MasterPort": strconv.Itoa(int(i.cfg.API.BindPort)), } diff --git a/cmd/kubeadm/app/cmd/join.go b/cmd/kubeadm/app/cmd/join.go index a4b6a8e787e..acc8a094070 100644 --- a/cmd/kubeadm/app/cmd/join.go +++ b/cmd/kubeadm/app/cmd/join.go @@ -77,6 +77,21 @@ func NewCmdJoin(out io.Writer) *cobra.Command { the discovery information is loaded from a URL, HTTPS must be used and the host installed CA bundle is used to verify the connection. + If you use a shared token for discovery, you should also pass the + --discovery-token-ca-cert-hash flag to validate the public key of the + root certificate authority (CA) presented by the Kubernetes Master. The + value of this flag is specified as ":", + where the supported hash type is "sha256". The hash is calculated over + the bytes of the Subject Public Key Info (SPKI) object (as in RFC7469). + This value is available in the output of "kubeadm init" or can be + calcuated using standard tools. The --discovery-token-ca-cert-hash flag + may be repeated multiple times to allow more than one public key. + + If you cannot know the CA public key hash ahead of time, you can pass + the --discovery-token-unsafe-skip-ca-verification flag to disable this + verification. This weakens the kubeadm security model since other nodes + can potentially impersonate the Kubernetes Master. + The TLS bootstrap mechanism is also driven via a shared token. This is used to temporarily authenticate with the Kubernetes Master to submit a certificate signing request (CSR) for a locally created key pair. By @@ -117,6 +132,13 @@ func NewCmdJoin(out io.Writer) *cobra.Command { cmd.PersistentFlags().StringVar( &cfg.TLSBootstrapToken, "tls-bootstrap-token", "", "A token used for TLS bootstrapping") + cmd.PersistentFlags().StringSliceVar( + &cfg.DiscoveryTokenCACertHashes, "discovery-token-ca-cert-hash", []string{}, + "For token-based discovery, validate that the root CA public key matches this hash (format: \":\").") + cmd.PersistentFlags().BoolVar( + &cfg.DiscoveryTokenUnsafeSkipCAVerification, "discovery-token-unsafe-skip-ca-verification", false, + "For token-based discovery, allow joining without --discovery-token-ca-cert-hash pinning.") + cmd.PersistentFlags().StringVar( &cfg.Token, "token", "", "Use this token for both discovery-token and tls-bootstrap-token") diff --git a/cmd/kubeadm/app/discovery/discovery.go b/cmd/kubeadm/app/discovery/discovery.go index b452285fa41..a1bff386449 100644 --- a/cmd/kubeadm/app/discovery/discovery.go +++ b/cmd/kubeadm/app/discovery/discovery.go @@ -58,7 +58,7 @@ func GetValidatedClusterInfoObject(cfg *kubeadmapi.NodeConfiguration) (*clientcm } return file.RetrieveValidatedClusterInfo(cfg.DiscoveryFile) case len(cfg.DiscoveryToken) != 0: - return token.RetrieveValidatedClusterInfo(cfg.DiscoveryToken, cfg.DiscoveryTokenAPIServers) + return token.RetrieveValidatedClusterInfo(cfg.DiscoveryToken, cfg.DiscoveryTokenAPIServers, cfg.DiscoveryTokenCACertHashes) default: return nil, fmt.Errorf("couldn't find a valid discovery configuration.") } diff --git a/cmd/kubeadm/app/discovery/token/BUILD b/cmd/kubeadm/app/discovery/token/BUILD index 45c345c156a..a5acdcf4bbc 100644 --- a/cmd/kubeadm/app/discovery/token/BUILD +++ b/cmd/kubeadm/app/discovery/token/BUILD @@ -15,6 +15,7 @@ go_library( deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", + "//cmd/kubeadm/app/util/pubkeypin:go_default_library", "//cmd/kubeadm/app/util/token:go_default_library", "//pkg/bootstrap/api:go_default_library", "//pkg/controller/bootstrap:go_default_library", diff --git a/cmd/kubeadm/app/discovery/token/token.go b/cmd/kubeadm/app/discovery/token/token.go index f765a4153dc..a1dc464604f 100644 --- a/cmd/kubeadm/app/discovery/token/token.go +++ b/cmd/kubeadm/app/discovery/token/token.go @@ -17,6 +17,9 @@ limitations under the License. package token import ( + "bytes" + "crypto/x509" + "encoding/pem" "fmt" "sync" @@ -27,6 +30,7 @@ import ( clientcmdapi "k8s.io/client-go/tools/clientcmd/api" "k8s.io/kubernetes/cmd/kubeadm/app/constants" kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" + "k8s.io/kubernetes/cmd/kubeadm/app/util/pubkeypin" tokenutil "k8s.io/kubernetes/cmd/kubeadm/app/util/token" bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" "k8s.io/kubernetes/pkg/controller/bootstrap" @@ -35,32 +39,40 @@ import ( const BootstrapUser = "token-bootstrap-client" // RetrieveValidatedClusterInfo connects to the API Server and tries to fetch the cluster-info ConfigMap -// It then makes sure it can trust the API Server by looking at the JWS-signed tokens -func RetrieveValidatedClusterInfo(discoveryToken string, tokenAPIServers []string) (*clientcmdapi.Cluster, error) { - +// It then makes sure it can trust the API Server by looking at the JWS-signed tokens and (if rootCAPubKeys is not empty) +// validating the cluster CA against a set of pinned public keys +func RetrieveValidatedClusterInfo(discoveryToken string, tokenAPIServers, rootCAPubKeys []string) (*clientcmdapi.Cluster, error) { tokenId, tokenSecret, err := tokenutil.ParseToken(discoveryToken) if err != nil { return nil, err } + // Load the cfg.DiscoveryTokenCACertHashes into a pubkeypin.Set + pubKeyPins := pubkeypin.NewSet() + err = pubKeyPins.Allow(rootCAPubKeys...) + if err != nil { + return nil, err + } + // The function below runs for every endpoint, and all endpoints races with each other. // The endpoint that wins the race and completes the task first gets its kubeconfig returned below baseKubeConfig := runForEndpointsAndReturnFirst(tokenAPIServers, func(endpoint string) (*clientcmdapi.Config, error) { - bootstrapConfig := buildInsecureBootstrapKubeConfig(endpoint) - clusterName := bootstrapConfig.Contexts[bootstrapConfig.CurrentContext].Cluster + insecureBootstrapConfig := buildInsecureBootstrapKubeConfig(endpoint) + clusterName := insecureBootstrapConfig.Contexts[insecureBootstrapConfig.CurrentContext].Cluster - client, err := kubeconfigutil.KubeConfigToClientSet(bootstrapConfig) + insecureClient, err := kubeconfigutil.KubeConfigToClientSet(insecureBootstrapConfig) if err != nil { return nil, err } - fmt.Printf("[discovery] Created cluster-info discovery client, requesting info from %q\n", bootstrapConfig.Clusters[clusterName].Server) + fmt.Printf("[discovery] Created cluster-info discovery client, requesting info from %q\n", insecureBootstrapConfig.Clusters[clusterName].Server) - var clusterinfo *v1.ConfigMap + // Make an initial insecure connection to get the cluster-info ConfigMap + var insecureClusterInfo *v1.ConfigMap wait.PollImmediateInfinite(constants.DiscoveryRetryInterval, func() (bool, error) { var err error - clusterinfo, err = client.CoreV1().ConfigMaps(metav1.NamespacePublic).Get(bootstrapapi.ConfigMapClusterInfo, metav1.GetOptions{}) + insecureClusterInfo, err = insecureClient.CoreV1().ConfigMaps(metav1.NamespacePublic).Get(bootstrapapi.ConfigMapClusterInfo, metav1.GetOptions{}) if err != nil { fmt.Printf("[discovery] Failed to request cluster info, will try again: [%s]\n", err) return false, nil @@ -68,25 +80,82 @@ func RetrieveValidatedClusterInfo(discoveryToken string, tokenAPIServers []strin return true, nil }) - kubeConfigString, ok := clusterinfo.Data[bootstrapapi.KubeConfigKey] - if !ok || len(kubeConfigString) == 0 { + // Validate the MAC on the kubeconfig from the ConfigMap and load it + insecureKubeconfigString, ok := insecureClusterInfo.Data[bootstrapapi.KubeConfigKey] + if !ok || len(insecureKubeconfigString) == 0 { return nil, fmt.Errorf("there is no %s key in the %s ConfigMap. This API Server isn't set up for token bootstrapping, can't connect", bootstrapapi.KubeConfigKey, bootstrapapi.ConfigMapClusterInfo) } - detachedJWSToken, ok := clusterinfo.Data[bootstrapapi.JWSSignatureKeyPrefix+tokenId] + detachedJWSToken, ok := insecureClusterInfo.Data[bootstrapapi.JWSSignatureKeyPrefix+tokenId] if !ok || len(detachedJWSToken) == 0 { return nil, fmt.Errorf("there is no JWS signed token in the %s ConfigMap. This token id %q is invalid for this cluster, can't connect", bootstrapapi.ConfigMapClusterInfo, tokenId) } - if !bootstrap.DetachedTokenIsValid(detachedJWSToken, kubeConfigString, tokenId, tokenSecret) { + if !bootstrap.DetachedTokenIsValid(detachedJWSToken, insecureKubeconfigString, tokenId, tokenSecret) { return nil, fmt.Errorf("failed to verify JWS signature of received cluster info object, can't trust this API Server") } - - finalConfig, err := clientcmd.Load([]byte(kubeConfigString)) + insecureKubeconfigBytes := []byte(insecureKubeconfigString) + insecureConfig, err := clientcmd.Load(insecureKubeconfigBytes) if err != nil { return nil, fmt.Errorf("couldn't parse the kubeconfig file in the %s configmap: %v", bootstrapapi.ConfigMapClusterInfo, err) } - fmt.Printf("[discovery] Cluster info signature and contents are valid, will use API Server %q\n", bootstrapConfig.Clusters[clusterName].Server) - return finalConfig, nil + // If no TLS root CA pinning was specified, we're done + if pubKeyPins.Empty() { + fmt.Printf("[discovery] Cluster info signature and contents are valid and no TLS pinning was specified, will use API Server %q\n", endpoint) + return insecureConfig, nil + } + + // Load the cluster CA from the Config + if len(insecureConfig.Clusters) != 1 { + return nil, fmt.Errorf("expected the kubeconfig file in the %s configmap to have a single cluster, but it had %d", bootstrapapi.ConfigMapClusterInfo, len(insecureConfig.Clusters)) + } + var clusterCABytes []byte + for _, cluster := range insecureConfig.Clusters { + clusterCABytes = cluster.CertificateAuthorityData + } + clusterCA, err := parsePEMCert(clusterCABytes) + if err != nil { + return nil, fmt.Errorf("failed to parse cluster CA from the %s configmap: %v", bootstrapapi.ConfigMapClusterInfo, err) + + } + + // Validate the cluster CA public key against the pinned set + err = pubKeyPins.Check(clusterCA) + if err != nil { + return nil, fmt.Errorf("cluster CA found in %s configmap is invalid: %v", bootstrapapi.ConfigMapClusterInfo, err) + } + + // Now that we know the proported cluster CA, connect back a second time validating with that CA + secureBootstrapConfig := buildSecureBootstrapKubeConfig(endpoint, clusterCABytes) + secureClient, err := kubeconfigutil.KubeConfigToClientSet(secureBootstrapConfig) + if err != nil { + return nil, err + } + + fmt.Printf("[discovery] Requesting info from %q again to validate TLS against the pinned public key\n", insecureBootstrapConfig.Clusters[clusterName].Server) + var secureClusterInfo *v1.ConfigMap + wait.PollImmediateInfinite(constants.DiscoveryRetryInterval, func() (bool, error) { + var err error + secureClusterInfo, err = secureClient.CoreV1().ConfigMaps(metav1.NamespacePublic).Get(bootstrapapi.ConfigMapClusterInfo, metav1.GetOptions{}) + if err != nil { + fmt.Printf("[discovery] Failed to request cluster info, will try again: [%s]\n", err) + return false, nil + } + return true, nil + }) + + // Pull the kubeconfig from the securely-obtained ConfigMap and validate that it's the same as what we found the first time + secureKubeconfigBytes := []byte(secureClusterInfo.Data[bootstrapapi.KubeConfigKey]) + if !bytes.Equal(secureKubeconfigBytes, insecureKubeconfigBytes) { + return nil, fmt.Errorf("the second kubeconfig from the %s configmap (using validated TLS) was different from the first", bootstrapapi.ConfigMapClusterInfo) + } + + secureKubeconfig, err := clientcmd.Load(secureKubeconfigBytes) + if err != nil { + return nil, fmt.Errorf("couldn't parse the kubeconfig file in the %s configmap: %v", bootstrapapi.ConfigMapClusterInfo, err) + } + + fmt.Printf("[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server %q\n", endpoint) + return secureKubeconfig, nil }) return kubeconfigutil.GetClusterFromKubeConfig(baseKubeConfig), nil @@ -101,6 +170,13 @@ func buildInsecureBootstrapKubeConfig(endpoint string) *clientcmdapi.Config { return bootstrapConfig } +// buildSecureBootstrapKubeConfig makes a KubeConfig object that connects securely to the API Server for bootstrapping purposes (validating with the specified CA) +func buildSecureBootstrapKubeConfig(endpoint string, caCert []byte) *clientcmdapi.Config { + masterEndpoint := fmt.Sprintf("https://%s", endpoint) + bootstrapConfig := kubeconfigutil.CreateBasic(masterEndpoint, "kubernetes", BootstrapUser, caCert) + return bootstrapConfig +} + // runForEndpointsAndReturnFirst loops the endpoints slice and let's the endpoints race for connecting to the master func runForEndpointsAndReturnFirst(endpoints []string, fetchKubeConfigFunc func(string) (*clientcmdapi.Config, error)) *clientcmdapi.Config { stopChan := make(chan struct{}) @@ -131,3 +207,15 @@ func runForEndpointsAndReturnFirst(endpoints []string, fetchKubeConfigFunc func( wg.Wait() return resultingKubeConfig } + +// parsePEMCert decodes a PEM-formatted certificate and returns it as an x509.Certificate +func parsePEMCert(certData []byte) (*x509.Certificate, error) { + pemBlock, trailingData := pem.Decode(certData) + if pemBlock == nil { + return nil, fmt.Errorf("invalid PEM data") + } + if len(trailingData) != 0 { + return nil, fmt.Errorf("trailing data after first PEM block") + } + return x509.ParseCertificate(pemBlock.Bytes) +} diff --git a/cmd/kubeadm/app/discovery/token/token_test.go b/cmd/kubeadm/app/discovery/token/token_test.go index 06012608bd1..4c59ddfbd48 100644 --- a/cmd/kubeadm/app/discovery/token/token_test.go +++ b/cmd/kubeadm/app/discovery/token/token_test.go @@ -25,6 +25,30 @@ import ( kubeconfigutil "k8s.io/kubernetes/cmd/kubeadm/app/util/kubeconfig" ) +// testCertPEM is a simple self-signed test certificate issued with the openssl CLI: +// openssl req -new -newkey rsa:2048 -days 36500 -nodes -x509 -keyout /dev/null -out test.crt +const testCertPEM = ` +-----BEGIN CERTIFICATE----- +MIIDRDCCAiygAwIBAgIJAJgVaCXvC6HkMA0GCSqGSIb3DQEBBQUAMB8xHTAbBgNV +BAMTFGt1YmVhZG0ta2V5cGlucy10ZXN0MCAXDTE3MDcwNTE3NDMxMFoYDzIxMTcw +NjExMTc0MzEwWjAfMR0wGwYDVQQDExRrdWJlYWRtLWtleXBpbnMtdGVzdDCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK0ba8mHU9UtYlzM1Own2Fk/XGjR +J4uJQvSeGLtz1hID1IA0dLwruvgLCPadXEOw/f/IWIWcmT+ZmvIHZKa/woq2iHi5 ++HLhXs7aG4tjKGLYhag1hLjBI7icqV7ovkjdGAt9pWkxEzhIYClFMXDjKpMSynu+ +YX6nZ9tic1cOkHmx2yiZdMkuriRQnpTOa7bb03OC1VfGl7gHlOAIYaj4539WCOr8 ++ACTUMJUFEHcRZ2o8a/v6F9GMK+7SC8SJUI+GuroXqlMAdhEv4lX5Co52enYaClN ++D9FJLRpBv2YfiCQdJRaiTvCBSxEFz6BN+PtP5l2Hs703ZWEkOqCByM6HV8CAwEA +AaOBgDB+MB0GA1UdDgQWBBRQgUX8MhK2rWBWQiPHWcKzoWDH5DBPBgNVHSMESDBG +gBRQgUX8MhK2rWBWQiPHWcKzoWDH5KEjpCEwHzEdMBsGA1UEAxMUa3ViZWFkbS1r +ZXlwaW5zLXRlc3SCCQCYFWgl7wuh5DAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEB +BQUAA4IBAQCaAUif7Pfx3X0F08cxhx8/Hdx4jcJw6MCq6iq6rsXM32ge43t8OHKC +pJW08dk58a3O1YQSMMvD6GJDAiAfXzfwcwY6j258b1ZlI9Ag0VokvhMl/XfdCsdh +AWImnL1t4hvU5jLaImUUMlYxMcSfHBGAm7WJIZ2LdEfg6YWfZh+WGbg1W7uxLxk6 +y4h5rWdNnzBHWAGf7zJ0oEDV6W6RSwNXtC0JNnLaeIUm/6xdSddJlQPwUv8YH4jX +c1vuFqTnJBPcb7W//R/GI2Paicm1cmns9NLnPR35exHxFTy+D1yxmGokpoPMdife +aH+sfuxT8xeTPb3kjzF9eJTlnEquUDLM +-----END CERTIFICATE-----` + func TestRunForEndpointsAndReturnFirst(t *testing.T) { tests := []struct { endpoints []string @@ -59,3 +83,33 @@ func TestRunForEndpointsAndReturnFirst(t *testing.T) { } } } + +func TestParsePEMCert(t *testing.T) { + for _, testCase := range []struct { + name string + input []byte + expectValid bool + }{ + {"invalid certificate data", []byte{0}, false}, + {"certificate with junk appended", []byte(testCertPEM + "\nABC"), false}, + {"multiple certificates", []byte(testCertPEM + "\n" + testCertPEM), false}, + {"valid", []byte(testCertPEM), true}, + } { + cert, err := parsePEMCert(testCase.input) + if testCase.expectValid { + if err != nil { + t.Errorf("failed TestParsePEMCert(%s): unexpected error %v", testCase.name, err) + } + if cert == nil { + t.Errorf("failed TestParsePEMCert(%s): returned nil", testCase.name) + } + } else { + if err == nil { + t.Errorf("failed TestParsePEMCert(%s): expected an error", testCase.name) + } + if cert != nil { + t.Errorf("failed TestParsePEMCert(%s): expected not to get a certificate back, but got one", testCase.name) + } + } + } +} From 358806e18b91bbcb846fcd7af0f3e2a99adf4769 Mon Sep 17 00:00:00 2001 From: Matt Moyer Date: Mon, 24 Jul 2017 16:39:47 -0500 Subject: [PATCH 171/183] kubeadm: generated deepcopy for `k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm` and `k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1`. --- .../app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go | 5 +++++ cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go index fddd84c7689..3750f87b64c 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/zz_generated.deepcopy.go @@ -194,6 +194,11 @@ func (in *NodeConfiguration) DeepCopyInto(out *NodeConfiguration) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.DiscoveryTokenCACertHashes != nil { + in, out := &in.DiscoveryTokenCACertHashes, &out.DiscoveryTokenCACertHashes + *out = make([]string, len(*in)) + copy(*out, *in) + } return } diff --git a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go index 6e5eb7b00a1..7fae52156a9 100644 --- a/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go +++ b/cmd/kubeadm/app/apis/kubeadm/zz_generated.deepcopy.go @@ -199,6 +199,11 @@ func (in *NodeConfiguration) DeepCopyInto(out *NodeConfiguration) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.DiscoveryTokenCACertHashes != nil { + in, out := &in.DiscoveryTokenCACertHashes, &out.DiscoveryTokenCACertHashes + *out = make([]string, len(*in)) + copy(*out, *in) + } return } From 6cad5bbff918726becddf4a64ef9b130bbcf13e7 Mon Sep 17 00:00:00 2001 From: "Bobby (Babak) Salamat" Date: Tue, 25 Jul 2017 18:26:11 -0700 Subject: [PATCH 172/183] Add a heap data store to client-go --- .../src/k8s.io/client-go/tools/cache/heap.go | 323 +++++++++++++++ .../k8s.io/client-go/tools/cache/heap_test.go | 382 ++++++++++++++++++ 2 files changed, 705 insertions(+) create mode 100644 staging/src/k8s.io/client-go/tools/cache/heap.go create mode 100644 staging/src/k8s.io/client-go/tools/cache/heap_test.go diff --git a/staging/src/k8s.io/client-go/tools/cache/heap.go b/staging/src/k8s.io/client-go/tools/cache/heap.go new file mode 100644 index 00000000000..78e492455ea --- /dev/null +++ b/staging/src/k8s.io/client-go/tools/cache/heap.go @@ -0,0 +1,323 @@ +/* +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. +*/ + +// This file implements a heap data structure. + +package cache + +import ( + "container/heap" + "fmt" + "sync" +) + +const ( + closedMsg = "heap is closed" +) + +type LessFunc func(interface{}, interface{}) bool +type heapItem struct { + obj interface{} // The object which is stored in the heap. + index int // The index of the object's key in the Heap.queue. +} + +type itemKeyValue struct { + key string + obj interface{} +} + +// heapData is an internal struct that implements the standard heap interface +// and keeps the data stored in the heap. +type heapData struct { + // items is a map from key of the objects to the objects and their index. + // We depend on the property that items in the map are in the queue and vice versa. + items map[string]*heapItem + // queue implements a heap data structure and keeps the order of elements + // according to the heap invariant. The queue keeps the keys of objects stored + // in "items". + queue []string + + // keyFunc is used to make the key used for queued item insertion and retrieval, and + // should be deterministic. + keyFunc KeyFunc + // lessFunc is used to compare two objects in the heap. + lessFunc LessFunc +} + +var ( + _ = heap.Interface(&heapData{}) // heapData is a standard heap +) + +// Less compares two objects and returns true if the first one should go +// in front of the second one in the heap. +func (h *heapData) Less(i, j int) bool { + if i > len(h.queue) || j > len(h.queue) { + return false + } + itemi, ok := h.items[h.queue[i]] + if !ok { + return false + } + itemj, ok := h.items[h.queue[j]] + if !ok { + return false + } + return h.lessFunc(itemi.obj, itemj.obj) +} + +// Len returns the number of items in the Heap. +func (h *heapData) Len() int { return len(h.queue) } + +// Swap implements swapping of two elements in the heap. This is a part of standard +// heap interface and should never be called directly. +func (h *heapData) Swap(i, j int) { + h.queue[i], h.queue[j] = h.queue[j], h.queue[i] + item := h.items[h.queue[i]] + item.index = i + item = h.items[h.queue[j]] + item.index = j +} + +// Push is supposed to be called by heap.Push only. +func (h *heapData) Push(kv interface{}) { + keyValue := kv.(*itemKeyValue) + n := len(h.queue) + h.items[keyValue.key] = &heapItem{keyValue.obj, n} + h.queue = append(h.queue, keyValue.key) +} + +// Pop is supposed to be called by heap.Pop only. +func (h *heapData) Pop() interface{} { + key := h.queue[len(h.queue)-1] + h.queue = h.queue[0 : len(h.queue)-1] + item, ok := h.items[key] + if !ok { + // This is an error + return nil + } + delete(h.items, key) + return item.obj +} + +// Heap is a thread-safe producer/consumer queue that implements a heap data structure. +// It can be used to implement priority queues and similar data structures. +type Heap struct { + lock sync.RWMutex + cond sync.Cond + + // data stores objects and has a queue that keeps their ordering according + // to the heap invariant. + data *heapData + + // closed indicates that the queue is closed. + // It is mainly used to let Pop() exit its control loop while waiting for an item. + closed bool +} + +// Close the Heap and signals condition variables that may be waiting to pop +// items from the heap. +func (h *Heap) Close() { + h.lock.Lock() + defer h.lock.Unlock() + h.closed = true + h.cond.Broadcast() +} + +// Add inserts an item, and puts it in the queue. The item is updated if it +// already exists. +func (h *Heap) Add(obj interface{}) error { + key, err := h.data.keyFunc(obj) + if err != nil { + return KeyError{obj, err} + } + h.lock.Lock() + defer h.lock.Unlock() + if h.closed { + return fmt.Errorf(closedMsg) + } + if _, exists := h.data.items[key]; exists { + h.data.items[key].obj = obj + heap.Fix(h.data, h.data.items[key].index) + } else { + h.addIfNotPresentLocked(key, obj) + } + h.cond.Broadcast() + return nil +} + +// Adds all the items in the list to the queue and then signals the condition +// variable. It is useful when the caller would like to add all of the items +// to the queue before consumer starts processing them. +func (h *Heap) BulkAdd(list []interface{}) error { + h.lock.Lock() + defer h.lock.Unlock() + if h.closed { + return fmt.Errorf(closedMsg) + } + for _, obj := range list { + key, err := h.data.keyFunc(obj) + if err != nil { + return KeyError{obj, err} + } + if _, exists := h.data.items[key]; exists { + h.data.items[key].obj = obj + heap.Fix(h.data, h.data.items[key].index) + } else { + h.addIfNotPresentLocked(key, obj) + } + } + h.cond.Broadcast() + return nil +} + +// AddIfNotPresent inserts an item, and puts it in the queue. If an item with +// the key is present in the map, no changes is made to the item. +// +// This is useful in a single producer/consumer scenario so that the consumer can +// safely retry items without contending with the producer and potentially enqueueing +// stale items. +func (h *Heap) AddIfNotPresent(obj interface{}) error { + id, err := h.data.keyFunc(obj) + if err != nil { + return KeyError{obj, err} + } + h.lock.Lock() + defer h.lock.Unlock() + if h.closed { + return fmt.Errorf(closedMsg) + } + h.addIfNotPresentLocked(id, obj) + h.cond.Broadcast() + return nil +} + +// addIfNotPresentLocked assumes the lock is already held and adds the the provided +// item to the queue if it does not already exist. +func (h *Heap) addIfNotPresentLocked(key string, obj interface{}) { + if _, exists := h.data.items[key]; exists { + return + } + heap.Push(h.data, &itemKeyValue{key, obj}) +} + +// Update is the same as Add in this implementation. When the item does not +// exist, it is added. +func (h *Heap) Update(obj interface{}) error { + return h.Add(obj) +} + +// Delete removes an item. +func (h *Heap) Delete(obj interface{}) error { + key, err := h.data.keyFunc(obj) + if err != nil { + return KeyError{obj, err} + } + h.lock.Lock() + defer h.lock.Unlock() + if item, ok := h.data.items[key]; ok { + heap.Remove(h.data, item.index) + return nil + } + return fmt.Errorf("object not found") +} + +// Pop waits until an item is ready. If multiple items are +// ready, they are returned in the order given by Heap.data.lessFunc. +func (h *Heap) Pop() (interface{}, error) { + h.lock.Lock() + defer h.lock.Unlock() + for len(h.data.queue) == 0 { + // When the queue is empty, invocation of Pop() is blocked until new item is enqueued. + // When Close() is called, the h.closed is set and the condition is broadcast, + // which causes this loop to continue and return from the Pop(). + if h.closed { + return nil, fmt.Errorf("heap is closed") + } + h.cond.Wait() + } + obj := heap.Pop(h.data) + if obj != nil { + return obj, nil + } else { + return nil, fmt.Errorf("object was removed from heap data") + } +} + +// List returns a list of all the items. +func (h *Heap) List() []interface{} { + h.lock.RLock() + defer h.lock.RUnlock() + list := make([]interface{}, 0, len(h.data.items)) + for _, item := range h.data.items { + list = append(list, item.obj) + } + return list +} + +// ListKeys returns a list of all the keys of the objects currently in the Heap. +func (h *Heap) ListKeys() []string { + h.lock.RLock() + defer h.lock.RUnlock() + list := make([]string, 0, len(h.data.items)) + for key := range h.data.items { + list = append(list, key) + } + return list +} + +// Get returns the requested item, or sets exists=false. +func (h *Heap) Get(obj interface{}) (interface{}, bool, error) { + key, err := h.data.keyFunc(obj) + if err != nil { + return nil, false, KeyError{obj, err} + } + return h.GetByKey(key) +} + +// GetByKey returns the requested item, or sets exists=false. +func (h *Heap) GetByKey(key string) (interface{}, bool, error) { + h.lock.RLock() + defer h.lock.RUnlock() + item, exists := h.data.items[key] + if !exists { + return nil, false, nil + } + return item.obj, true, nil +} + +// IsClosed returns true if the queue is closed. +func (h *Heap) IsClosed() bool { + h.lock.RLock() + defer h.lock.RUnlock() + if h.closed { + return true + } + return false +} + +// NewHeap returns a Heap which can be used to queue up items to process. +func NewHeap(keyFn KeyFunc, lessFn LessFunc) *Heap { + h := &Heap{ + data: &heapData{ + items: map[string]*heapItem{}, + queue: []string{}, + keyFunc: keyFn, + lessFunc: lessFn, + }, + } + h.cond.L = &h.lock + return h +} diff --git a/staging/src/k8s.io/client-go/tools/cache/heap_test.go b/staging/src/k8s.io/client-go/tools/cache/heap_test.go new file mode 100644 index 00000000000..c2e476988f7 --- /dev/null +++ b/staging/src/k8s.io/client-go/tools/cache/heap_test.go @@ -0,0 +1,382 @@ +/* +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. +*/ + +package cache + +import ( + "sync" + "testing" + "time" +) + +func testHeapObjectKeyFunc(obj interface{}) (string, error) { + return obj.(testHeapObject).name, nil +} + +type testHeapObject struct { + name string + val interface{} +} + +func mkHeapObj(name string, val interface{}) testHeapObject { + return testHeapObject{name: name, val: val} +} + +func compareInts(val1 interface{}, val2 interface{}) bool { + first := val1.(testHeapObject).val.(int) + second := val2.(testHeapObject).val.(int) + return first < second +} + +// TestHeapBasic tests Heap invariant and synchronization. +func TestHeapBasic(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + var wg sync.WaitGroup + wg.Add(2) + const amount = 500 + var i, u int + // Insert items in the heap in opposite orders in two go routines. + go func() { + for i = amount; i > 0; i-- { + h.Add(mkHeapObj(string([]rune{'a', rune(i)}), i)) + } + wg.Done() + }() + go func() { + for u = 0; u < amount; u++ { + h.Add(mkHeapObj(string([]rune{'b', rune(u)}), u+1)) + } + wg.Done() + }() + // Wait for the two go routines to finish. + wg.Wait() + // Make sure that the numbers are popped in ascending order. + prevNum := 0 + for i := 0; i < amount*2; i++ { + obj, err := h.Pop() + num := obj.(testHeapObject).val.(int) + // All the items must be sorted. + if err != nil || prevNum > num { + t.Errorf("got %v out of order, last was %v", obj, prevNum) + } + prevNum = num + } +} + +// Tests Heap.Add and ensures that heap invariant is preserved after adding items. +func TestHeap_Add(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.Add(mkHeapObj("foo", 10)) + h.Add(mkHeapObj("bar", 1)) + h.Add(mkHeapObj("baz", 11)) + h.Add(mkHeapObj("zab", 30)) + h.Add(mkHeapObj("foo", 13)) // This updates "foo". + + item, err := h.Pop() + if e, a := 1, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + item, err = h.Pop() + if e, a := 11, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + h.Delete(mkHeapObj("baz", 11)) // Nothing is deleted. + h.Add(mkHeapObj("foo", 14)) // foo is updated. + item, err = h.Pop() + if e, a := 14, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + item, err = h.Pop() + if e, a := 30, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } +} + +// TestHeap_BulkAdd tests Heap.BulkAdd functionality and ensures that all the +// items given to BulkAdd are added to the queue before Pop reads them. +func TestHeap_BulkAdd(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + const amount = 500 + // Insert items in the heap in opposite orders in a go routine. + go func() { + l := []interface{}{} + for i := amount; i > 0; i-- { + l = append(l, mkHeapObj(string([]rune{'a', rune(i)}), i)) + } + h.BulkAdd(l) + }() + prevNum := -1 + for i := 0; i < amount; i++ { + obj, err := h.Pop() + num := obj.(testHeapObject).val.(int) + // All the items must be sorted. + if err != nil || prevNum >= num { + t.Errorf("got %v out of order, last was %v", obj, prevNum) + } + prevNum = num + } +} + +// TestHeapEmptyPop tests that pop returns properly after heap is closed. +func TestHeapEmptyPop(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + go func() { + time.Sleep(1 * time.Second) + h.Close() + }() + _, err := h.Pop() + if err == nil || err.Error() != closedMsg { + t.Errorf("pop should have returned heap closed error: %v", err) + } +} + +// TestHeap_AddIfNotPresent tests Heap.AddIfNotPresent and ensures that heap +// invariant is preserved after adding items. +func TestHeap_AddIfNotPresent(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.AddIfNotPresent(mkHeapObj("foo", 10)) + h.AddIfNotPresent(mkHeapObj("bar", 1)) + h.AddIfNotPresent(mkHeapObj("baz", 11)) + h.AddIfNotPresent(mkHeapObj("zab", 30)) + h.AddIfNotPresent(mkHeapObj("foo", 13)) // This is not added. + + if len := len(h.data.items); len != 4 { + t.Errorf("unexpected number of items: %d", len) + } + if val := h.data.items["foo"].obj.(testHeapObject).val; val != 10 { + t.Errorf("unexpected value: %d", val) + } + item, err := h.Pop() + if e, a := 1, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + item, err = h.Pop() + if e, a := 10, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + // bar is already popped. Let's add another one. + h.AddIfNotPresent(mkHeapObj("bar", 14)) + item, err = h.Pop() + if e, a := 11, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + item, err = h.Pop() + if e, a := 14, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } +} + +// TestHeap_Delete tests Heap.Delete and ensures that heap invariant is +// preserved after deleting items. +func TestHeap_Delete(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.Add(mkHeapObj("foo", 10)) + h.Add(mkHeapObj("bar", 1)) + h.Add(mkHeapObj("bal", 31)) + h.Add(mkHeapObj("baz", 11)) + + // Delete head. Delete should work with "key" and doesn't care about the value. + if err := h.Delete(mkHeapObj("bar", 200)); err != nil { + t.Fatalf("Failed to delete head.") + } + item, err := h.Pop() + if e, a := 10, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + h.Add(mkHeapObj("zab", 30)) + h.Add(mkHeapObj("faz", 30)) + len := h.data.Len() + // Delete non-existing item. + if err = h.Delete(mkHeapObj("non-existent", 10)); err == nil || len != h.data.Len() { + t.Fatalf("Didn't expect any item removal") + } + // Delete tail. + if err = h.Delete(mkHeapObj("bal", 31)); err != nil { + t.Fatalf("Failed to delete tail.") + } + // Delete one of the items with value 30. + if err = h.Delete(mkHeapObj("zab", 30)); err != nil { + t.Fatalf("Failed to delete item.") + } + item, err = h.Pop() + if e, a := 11, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + item, err = h.Pop() + if e, a := 30, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + if h.data.Len() != 0 { + t.Fatalf("expected an empty heap.") + } +} + +// TestHeap_Update tests Heap.Update and ensures that heap invariant is +// preserved after adding items. +func TestHeap_Update(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.Add(mkHeapObj("foo", 10)) + h.Add(mkHeapObj("bar", 1)) + h.Add(mkHeapObj("bal", 31)) + h.Add(mkHeapObj("baz", 11)) + + // Update an item to a value that should push it to the head. + h.Update(mkHeapObj("baz", 0)) + if h.data.queue[0] != "baz" || h.data.items["baz"].index != 0 { + t.Fatalf("expected baz to be at the head") + } + item, err := h.Pop() + if e, a := 0, item.(testHeapObject).val; err != nil || a != e { + t.Fatalf("expected %d, got %d", e, a) + } + // Update bar to push it farther back in the queue. + h.Update(mkHeapObj("bar", 100)) + if h.data.queue[0] != "foo" || h.data.items["foo"].index != 0 { + t.Fatalf("expected foo to be at the head") + } +} + +// TestHeap_Get tests Heap.Get. +func TestHeap_Get(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.Add(mkHeapObj("foo", 10)) + h.Add(mkHeapObj("bar", 1)) + h.Add(mkHeapObj("bal", 31)) + h.Add(mkHeapObj("baz", 11)) + + // Get works with the key. + obj, exists, err := h.Get(mkHeapObj("baz", 0)) + if err != nil || exists == false || obj.(testHeapObject).val != 11 { + t.Fatalf("unexpected error in getting element") + } + // Get non-existing object. + _, exists, err = h.Get(mkHeapObj("non-existing", 0)) + if err != nil || exists == true { + t.Fatalf("didn't expect to get any object") + } +} + +// TestHeap_GetByKey tests Heap.GetByKey and is very similar to TestHeap_Get. +func TestHeap_GetByKey(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.Add(mkHeapObj("foo", 10)) + h.Add(mkHeapObj("bar", 1)) + h.Add(mkHeapObj("bal", 31)) + h.Add(mkHeapObj("baz", 11)) + + obj, exists, err := h.GetByKey("baz") + if err != nil || exists == false || obj.(testHeapObject).val != 11 { + t.Fatalf("unexpected error in getting element") + } + // Get non-existing object. + _, exists, err = h.GetByKey("non-existing") + if err != nil || exists == true { + t.Fatalf("didn't expect to get any object") + } +} + +// TestHeap_Close tests Heap.Close and Heap.IsClosed functions. +func TestHeap_Close(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.Add(mkHeapObj("foo", 10)) + h.Add(mkHeapObj("bar", 1)) + + if h.IsClosed() { + t.Fatalf("didn't expect heap to be closed") + } + h.Close() + if !h.IsClosed() { + t.Fatalf("expect heap to be closed") + } +} + +// TestHeap_List tests Heap.List function. +func TestHeap_List(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + list := h.List() + if len(list) != 0 { + t.Errorf("expected an empty list") + } + + items := map[string]int{ + "foo": 10, + "bar": 1, + "bal": 30, + "baz": 11, + "faz": 30, + } + for k, v := range items { + h.Add(mkHeapObj(k, v)) + } + list = h.List() + if len(list) != len(items) { + t.Errorf("expected %d items, got %d", len(items), len(list)) + } + for _, obj := range list { + heapObj := obj.(testHeapObject) + v, ok := items[heapObj.name] + if !ok || v != heapObj.val { + t.Errorf("unexpected item in the list: %v", heapObj) + } + } +} + +// TestHeap_ListKeys tests Heap.ListKeys function. Scenario is the same as +// TestHeap_list. +func TestHeap_ListKeys(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + list := h.ListKeys() + if len(list) != 0 { + t.Errorf("expected an empty list") + } + + items := map[string]int{ + "foo": 10, + "bar": 1, + "bal": 30, + "baz": 11, + "faz": 30, + } + for k, v := range items { + h.Add(mkHeapObj(k, v)) + } + list = h.ListKeys() + if len(list) != len(items) { + t.Errorf("expected %d items, got %d", len(items), len(list)) + } + for _, key := range list { + _, ok := items[key] + if !ok { + t.Errorf("unexpected item in the list: %v", key) + } + } +} + +// TestHeapAddAfterClose tests that heap returns an error if anything is added +// after it is closed. +func TestHeapAddAfterClose(t *testing.T) { + h := NewHeap(testHeapObjectKeyFunc, compareInts) + h.Close() + if err := h.Add(mkHeapObj("test", 1)); err == nil || err.Error() != closedMsg { + t.Errorf("expected heap closed error") + } + if err := h.AddIfNotPresent(mkHeapObj("test", 1)); err == nil || err.Error() != closedMsg { + t.Errorf("expected heap closed error") + } + if err := h.BulkAdd([]interface{}{mkHeapObj("test", 1)}); err == nil || err.Error() != closedMsg { + t.Errorf("expected heap closed error") + } +} From 68926a22ac1365a47caba55b0f9fcbebfdf0de76 Mon Sep 17 00:00:00 2001 From: "Bobby (Babak) Salamat" Date: Thu, 27 Jul 2017 14:45:42 -0700 Subject: [PATCH 173/183] autogenerated files --- staging/src/k8s.io/client-go/tools/cache/BUILD | 2 ++ 1 file changed, 2 insertions(+) diff --git a/staging/src/k8s.io/client-go/tools/cache/BUILD b/staging/src/k8s.io/client-go/tools/cache/BUILD index 6c5fd44edd5..ed9ee01e557 100644 --- a/staging/src/k8s.io/client-go/tools/cache/BUILD +++ b/staging/src/k8s.io/client-go/tools/cache/BUILD @@ -15,6 +15,7 @@ go_test( "delta_fifo_test.go", "expiration_cache_test.go", "fifo_test.go", + "heap_test.go", "index_test.go", "mutation_detector_test.go", "processor_listener_test.go", @@ -50,6 +51,7 @@ go_library( "expiration_cache_fakes.go", "fake_custom_store.go", "fifo.go", + "heap.go", "index.go", "listers.go", "listwatch.go", From d7659dffff3cad5bd0cbdc827570195169477dca Mon Sep 17 00:00:00 2001 From: ymqytw Date: Thu, 6 Jul 2017 21:18:03 -0700 Subject: [PATCH 174/183] move logs to kubectl/util --- cmd/gke-certificates-controller/BUILD | 2 +- cmd/gke-certificates-controller/main.go | 2 +- cmd/kubectl/app/BUILD | 2 +- cmd/kubectl/app/kubectl.go | 2 +- federation/cmd/kubefed/app/BUILD | 2 +- federation/cmd/kubefed/app/kubefed.go | 2 +- pkg/kubectl/util/BUILD | 1 + pkg/{ => kubectl}/util/logs/BUILD | 0 pkg/{ => kubectl}/util/logs/logs.go | 0 pkg/util/BUILD | 1 - test/e2e/BUILD | 2 +- test/e2e/e2e.go | 2 +- 12 files changed, 9 insertions(+), 9 deletions(-) rename pkg/{ => kubectl}/util/logs/BUILD (100%) rename pkg/{ => kubectl}/util/logs/logs.go (100%) diff --git a/cmd/gke-certificates-controller/BUILD b/cmd/gke-certificates-controller/BUILD index 787fedd608e..9ec77ac35e5 100644 --- a/cmd/gke-certificates-controller/BUILD +++ b/cmd/gke-certificates-controller/BUILD @@ -14,7 +14,7 @@ go_library( tags = ["automanaged"], deps = [ "//cmd/gke-certificates-controller/app:go_default_library", - "//pkg/util/logs:go_default_library", + "//pkg/kubectl/util/logs:go_default_library", "//pkg/version/verflag:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", diff --git a/cmd/gke-certificates-controller/main.go b/cmd/gke-certificates-controller/main.go index 21e07157cd4..a0679d95d69 100644 --- a/cmd/gke-certificates-controller/main.go +++ b/cmd/gke-certificates-controller/main.go @@ -25,7 +25,7 @@ import ( "k8s.io/apiserver/pkg/util/flag" "k8s.io/kubernetes/cmd/gke-certificates-controller/app" - "k8s.io/kubernetes/pkg/util/logs" + "k8s.io/kubernetes/pkg/kubectl/util/logs" "k8s.io/kubernetes/pkg/version/verflag" "github.com/spf13/pflag" diff --git a/cmd/kubectl/app/BUILD b/cmd/kubectl/app/BUILD index 9ed063cbd00..93c710518a9 100644 --- a/cmd/kubectl/app/BUILD +++ b/cmd/kubectl/app/BUILD @@ -16,7 +16,7 @@ go_library( "//pkg/client/metrics/prometheus:go_default_library", "//pkg/kubectl/cmd:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", - "//pkg/util/logs:go_default_library", + "//pkg/kubectl/util/logs:go_default_library", "//pkg/version/prometheus:go_default_library", "//vendor/k8s.io/client-go/plugin/pkg/client/auth:go_default_library", ], diff --git a/cmd/kubectl/app/kubectl.go b/cmd/kubectl/app/kubectl.go index 536aa57b959..7d39fd7ec72 100644 --- a/cmd/kubectl/app/kubectl.go +++ b/cmd/kubectl/app/kubectl.go @@ -23,7 +23,7 @@ import ( _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration "k8s.io/kubernetes/pkg/kubectl/cmd" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/logs" + "k8s.io/kubernetes/pkg/kubectl/util/logs" _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration ) diff --git a/federation/cmd/kubefed/app/BUILD b/federation/cmd/kubefed/app/BUILD index 75ae5bb2c6d..66ab4458d98 100644 --- a/federation/cmd/kubefed/app/BUILD +++ b/federation/cmd/kubefed/app/BUILD @@ -15,7 +15,7 @@ go_library( "//federation/pkg/kubefed:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", - "//pkg/util/logs:go_default_library", + "//pkg/kubectl/util/logs:go_default_library", "//pkg/version:go_default_library", "//pkg/version/prometheus:go_default_library", ], diff --git a/federation/cmd/kubefed/app/kubefed.go b/federation/cmd/kubefed/app/kubefed.go index a08d363fa50..4b481c0bab2 100644 --- a/federation/cmd/kubefed/app/kubefed.go +++ b/federation/cmd/kubefed/app/kubefed.go @@ -23,7 +23,7 @@ import ( "k8s.io/kubernetes/federation/pkg/kubefed" _ "k8s.io/kubernetes/pkg/client/metrics/prometheus" // for client metric registration cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" - "k8s.io/kubernetes/pkg/util/logs" + "k8s.io/kubernetes/pkg/kubectl/util/logs" "k8s.io/kubernetes/pkg/version" _ "k8s.io/kubernetes/pkg/version/prometheus" // for version metric registration ) diff --git a/pkg/kubectl/util/BUILD b/pkg/kubectl/util/BUILD index 58209d598a3..ee530bdf5d7 100644 --- a/pkg/kubectl/util/BUILD +++ b/pkg/kubectl/util/BUILD @@ -32,6 +32,7 @@ filegroup( srcs = [ ":package-srcs", "//pkg/kubectl/util/crlf:all-srcs", + "//pkg/kubectl/util/logs:all-srcs", "//pkg/kubectl/util/slice:all-srcs", "//pkg/kubectl/util/term:all-srcs", ], diff --git a/pkg/util/logs/BUILD b/pkg/kubectl/util/logs/BUILD similarity index 100% rename from pkg/util/logs/BUILD rename to pkg/kubectl/util/logs/BUILD diff --git a/pkg/util/logs/logs.go b/pkg/kubectl/util/logs/logs.go similarity index 100% rename from pkg/util/logs/logs.go rename to pkg/kubectl/util/logs/logs.go diff --git a/pkg/util/BUILD b/pkg/util/BUILD index a2916a9a137..8b130c885ce 100644 --- a/pkg/util/BUILD +++ b/pkg/util/BUILD @@ -33,7 +33,6 @@ filegroup( "//pkg/util/keymutex:all-srcs", "//pkg/util/labels:all-srcs", "//pkg/util/limitwriter:all-srcs", - "//pkg/util/logs:all-srcs", "//pkg/util/maps:all-srcs", "//pkg/util/metrics:all-srcs", "//pkg/util/mount:all-srcs", diff --git a/test/e2e/BUILD b/test/e2e/BUILD index ff80b72bbe1..f54746f0866 100644 --- a/test/e2e/BUILD +++ b/test/e2e/BUILD @@ -76,9 +76,9 @@ go_library( "//pkg/cloudprovider/providers/azure:go_default_library", "//pkg/cloudprovider/providers/gce:go_default_library", "//pkg/controller/node:go_default_library", + "//pkg/kubectl/util/logs:go_default_library", "//pkg/kubelet/apis:go_default_library", "//pkg/quota/evaluator/core:go_default_library", - "//pkg/util/logs:go_default_library", "//pkg/util/version:go_default_library", "//plugin/pkg/admission/serviceaccount:go_default_library", "//test/e2e/common:go_default_library", diff --git a/test/e2e/e2e.go b/test/e2e/e2e.go index 73dda449f75..dd20e04cf98 100644 --- a/test/e2e/e2e.go +++ b/test/e2e/e2e.go @@ -36,7 +36,7 @@ import ( clientset "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/cloudprovider/providers/azure" gcecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/gce" - "k8s.io/kubernetes/pkg/util/logs" + "k8s.io/kubernetes/pkg/kubectl/util/logs" commontest "k8s.io/kubernetes/test/e2e/common" "k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework/ginkgowrapper" From bc3794b6136967b2484def6edc20d0d857c744ec Mon Sep 17 00:00:00 2001 From: Jeffrey Regan Date: Tue, 6 Jun 2017 12:39:40 -0700 Subject: [PATCH 175/183] Fix my incorrect username in #46649 My mistake - used goog username rather than github. --- OWNERS | 2 +- build/visible_to/OWNERS | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/OWNERS b/OWNERS index 1f898c88e7f..ec80d280a66 100644 --- a/OWNERS +++ b/OWNERS @@ -10,7 +10,7 @@ approvers: - brendandburns - dchen1107 - jbeda - - jregan # To modify BUILD files per proposal #598 + - monopole # To move code per kubernetes/community#598 - lavalamp - smarterclayton - thockin diff --git a/build/visible_to/OWNERS b/build/visible_to/OWNERS index 3e1133eafa4..8bc54f89e4e 100644 --- a/build/visible_to/OWNERS +++ b/build/visible_to/OWNERS @@ -3,9 +3,9 @@ reviewers: - dchen1107 - ixdy - jbeda - - jregan - lavalamp - mikedanese + - monopole - pwittrock - smarterclayton - thockin @@ -15,9 +15,9 @@ approvers: - dchen1107 - ixdy - jbeda - - jregan - lavalamp - mikedanese + - monopole - pwittrock - smarterclayton - thockin From 2e5dc7d727882122922334af849cf26a5e4b8610 Mon Sep 17 00:00:00 2001 From: zhouhaibing089 Date: Fri, 4 Aug 2017 14:09:36 +0800 Subject: [PATCH 176/183] add fuzzer dir for each apigroup --- federation/registry/cluster/BUILD | 1 + federation/registry/cluster/strategy_test.go | 3 + pkg/api/BUILD | 1 + pkg/api/fuzzer/BUILD | 38 + pkg/api/fuzzer/fuzzer.go | 443 +++++++++++ pkg/api/testing/BUILD | 22 +- pkg/api/testing/fuzzer.go | 728 +----------------- pkg/apis/abac/BUILD | 1 + pkg/apis/abac/fuzzer/BUILD | 28 + pkg/apis/abac/fuzzer/fuzzer.go | 26 + pkg/apis/admission/BUILD | 1 + pkg/apis/admission/fuzzer/BUILD | 28 + pkg/apis/admission/fuzzer/fuzzer.go | 26 + pkg/apis/admissionregistration/BUILD | 1 + pkg/apis/admissionregistration/fuzzer/BUILD | 32 + .../admissionregistration/fuzzer/fuzzer.go | 40 + pkg/apis/apps/BUILD | 1 + pkg/apis/apps/fuzzer/BUILD | 32 + pkg/apis/apps/fuzzer/fuzzer.go | 51 ++ pkg/apis/authentication/BUILD | 1 + pkg/apis/authentication/fuzzer/BUILD | 28 + pkg/apis/authentication/fuzzer/fuzzer.go | 26 + pkg/apis/authorization/BUILD | 1 + pkg/apis/authorization/fuzzer/BUILD | 28 + pkg/apis/authorization/fuzzer/fuzzer.go | 26 + pkg/apis/autoscaling/BUILD | 1 + pkg/apis/autoscaling/fuzzer/BUILD | 34 + pkg/apis/autoscaling/fuzzer/fuzzer.go | 89 +++ pkg/apis/batch/BUILD | 1 + pkg/apis/batch/fuzzer/BUILD | 32 + pkg/apis/batch/fuzzer/fuzzer.go | 68 ++ pkg/apis/certificates/BUILD | 1 + pkg/apis/certificates/fuzzer/BUILD | 32 + pkg/apis/certificates/fuzzer/fuzzer.go | 34 + pkg/apis/componentconfig/BUILD | 1 + pkg/apis/componentconfig/fuzzer/BUILD | 28 + pkg/apis/componentconfig/fuzzer/fuzzer.go | 26 + pkg/apis/extensions/BUILD | 1 + pkg/apis/extensions/fuzzer/BUILD | 34 + pkg/apis/extensions/fuzzer/fuzzer.go | 109 +++ pkg/apis/imagepolicy/BUILD | 1 + pkg/apis/imagepolicy/fuzzer/BUILD | 28 + pkg/apis/imagepolicy/fuzzer/fuzzer.go | 26 + pkg/apis/networking/BUILD | 1 + pkg/apis/networking/fuzzer/BUILD | 28 + pkg/apis/networking/fuzzer/fuzzer.go | 26 + pkg/apis/policy/BUILD | 1 + pkg/apis/policy/fuzzer/BUILD | 32 + pkg/apis/policy/fuzzer/fuzzer.go | 34 + pkg/apis/rbac/BUILD | 1 + pkg/apis/rbac/fuzzer/BUILD | 32 + pkg/apis/rbac/fuzzer/fuzzer.go | 59 ++ pkg/apis/scheduling/BUILD | 1 + pkg/apis/scheduling/fuzzer/BUILD | 28 + pkg/apis/scheduling/fuzzer/fuzzer.go | 26 + pkg/apis/settings/BUILD | 1 + pkg/apis/settings/fuzzer/BUILD | 28 + pkg/apis/settings/fuzzer/fuzzer.go | 26 + pkg/apis/storage/BUILD | 1 + pkg/apis/storage/fuzzer/BUILD | 28 + pkg/apis/storage/fuzzer/fuzzer.go | 26 + pkg/registry/core/event/BUILD | 1 + pkg/registry/core/event/strategy_test.go | 3 + pkg/registry/core/namespace/BUILD | 1 + pkg/registry/core/namespace/strategy_test.go | 3 + pkg/registry/core/node/BUILD | 1 + pkg/registry/core/node/strategy_test.go | 3 + pkg/registry/core/persistentvolume/BUILD | 1 + .../core/persistentvolume/strategy_test.go | 3 + pkg/registry/core/persistentvolumeclaim/BUILD | 1 + .../persistentvolumeclaim/strategy_test.go | 3 + pkg/registry/core/pod/BUILD | 1 + pkg/registry/core/pod/strategy_test.go | 3 + pkg/registry/core/replicationcontroller/BUILD | 1 + .../replicationcontroller/strategy_test.go | 3 + pkg/registry/core/secret/BUILD | 1 + pkg/registry/core/secret/strategy_test.go | 3 + 77 files changed, 1847 insertions(+), 723 deletions(-) create mode 100644 pkg/api/fuzzer/BUILD create mode 100644 pkg/api/fuzzer/fuzzer.go create mode 100644 pkg/apis/abac/fuzzer/BUILD create mode 100644 pkg/apis/abac/fuzzer/fuzzer.go create mode 100644 pkg/apis/admission/fuzzer/BUILD create mode 100644 pkg/apis/admission/fuzzer/fuzzer.go create mode 100644 pkg/apis/admissionregistration/fuzzer/BUILD create mode 100644 pkg/apis/admissionregistration/fuzzer/fuzzer.go create mode 100644 pkg/apis/apps/fuzzer/BUILD create mode 100644 pkg/apis/apps/fuzzer/fuzzer.go create mode 100644 pkg/apis/authentication/fuzzer/BUILD create mode 100644 pkg/apis/authentication/fuzzer/fuzzer.go create mode 100644 pkg/apis/authorization/fuzzer/BUILD create mode 100644 pkg/apis/authorization/fuzzer/fuzzer.go create mode 100644 pkg/apis/autoscaling/fuzzer/BUILD create mode 100644 pkg/apis/autoscaling/fuzzer/fuzzer.go create mode 100644 pkg/apis/batch/fuzzer/BUILD create mode 100644 pkg/apis/batch/fuzzer/fuzzer.go create mode 100644 pkg/apis/certificates/fuzzer/BUILD create mode 100644 pkg/apis/certificates/fuzzer/fuzzer.go create mode 100644 pkg/apis/componentconfig/fuzzer/BUILD create mode 100644 pkg/apis/componentconfig/fuzzer/fuzzer.go create mode 100644 pkg/apis/extensions/fuzzer/BUILD create mode 100644 pkg/apis/extensions/fuzzer/fuzzer.go create mode 100644 pkg/apis/imagepolicy/fuzzer/BUILD create mode 100644 pkg/apis/imagepolicy/fuzzer/fuzzer.go create mode 100644 pkg/apis/networking/fuzzer/BUILD create mode 100644 pkg/apis/networking/fuzzer/fuzzer.go create mode 100644 pkg/apis/policy/fuzzer/BUILD create mode 100644 pkg/apis/policy/fuzzer/fuzzer.go create mode 100644 pkg/apis/rbac/fuzzer/BUILD create mode 100644 pkg/apis/rbac/fuzzer/fuzzer.go create mode 100644 pkg/apis/scheduling/fuzzer/BUILD create mode 100644 pkg/apis/scheduling/fuzzer/fuzzer.go create mode 100644 pkg/apis/settings/fuzzer/BUILD create mode 100644 pkg/apis/settings/fuzzer/fuzzer.go create mode 100644 pkg/apis/storage/fuzzer/BUILD create mode 100644 pkg/apis/storage/fuzzer/fuzzer.go diff --git a/federation/registry/cluster/BUILD b/federation/registry/cluster/BUILD index e9461311a18..cee61740c2e 100644 --- a/federation/registry/cluster/BUILD +++ b/federation/registry/cluster/BUILD @@ -42,6 +42,7 @@ go_test( deps = [ "//federation/apis/federation:go_default_library", "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", diff --git a/federation/registry/cluster/strategy_test.go b/federation/registry/cluster/strategy_test.go index f01a82976d4..8a53ad3f292 100644 --- a/federation/registry/cluster/strategy_test.go +++ b/federation/registry/cluster/strategy_test.go @@ -28,6 +28,9 @@ import ( "k8s.io/kubernetes/federation/apis/federation" "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func validNewCluster() *federation.Cluster { diff --git a/pkg/api/BUILD b/pkg/api/BUILD index a19431bbb15..4c15747dd47 100644 --- a/pkg/api/BUILD +++ b/pkg/api/BUILD @@ -108,6 +108,7 @@ filegroup( "//pkg/api/endpoints:all-srcs", "//pkg/api/errors:all-srcs", "//pkg/api/events:all-srcs", + "//pkg/api/fuzzer:all-srcs", "//pkg/api/helper:all-srcs", "//pkg/api/install:all-srcs", "//pkg/api/meta:all-srcs", diff --git a/pkg/api/fuzzer/BUILD b/pkg/api/fuzzer/BUILD new file mode 100644 index 00000000000..7b5ef881c23 --- /dev/null +++ b/pkg/api/fuzzer/BUILD @@ -0,0 +1,38 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/api/fuzzer/fuzzer.go b/pkg/api/fuzzer/fuzzer.go new file mode 100644 index 00000000000..9d0f94a2678 --- /dev/null +++ b/pkg/api/fuzzer/fuzzer.go @@ -0,0 +1,443 @@ +/* +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. +*/ + +package fuzzer + +import ( + "reflect" + "strconv" + + fuzz "github.com/google/gofuzz" + + "k8s.io/apimachinery/pkg/api/resource" + "k8s.io/apimachinery/pkg/fields" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/kubernetes/pkg/api" +) + +// Funcs returns the fuzzer functions for the core api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(q *resource.Quantity, c fuzz.Continue) { + *q = *resource.NewQuantity(c.Int63n(1000), resource.DecimalExponent) + }, + func(j *api.ObjectReference, c fuzz.Continue) { + // We have to customize the randomization of TypeMetas because their + // APIVersion and Kind must remain blank in memory. + j.APIVersion = c.RandString() + j.Kind = c.RandString() + j.Namespace = c.RandString() + j.Name = c.RandString() + j.ResourceVersion = strconv.FormatUint(c.RandUint64(), 10) + j.FieldPath = c.RandString() + }, + func(j *api.ListOptions, c fuzz.Continue) { + label, _ := labels.Parse("a=b") + j.LabelSelector = label + field, _ := fields.ParseSelector("a=b") + j.FieldSelector = field + }, + func(j *api.PodExecOptions, c fuzz.Continue) { + j.Stdout = true + j.Stderr = true + }, + func(j *api.PodAttachOptions, c fuzz.Continue) { + j.Stdout = true + j.Stderr = true + }, + func(j *api.PodPortForwardOptions, c fuzz.Continue) { + if c.RandBool() { + j.Ports = make([]int32, c.Intn(10)) + for i := range j.Ports { + j.Ports[i] = c.Int31n(65535) + } + } + }, + func(s *api.PodSpec, c fuzz.Continue) { + c.FuzzNoCustom(s) + // has a default value + ttl := int64(30) + if c.RandBool() { + ttl = int64(c.Uint32()) + } + s.TerminationGracePeriodSeconds = &ttl + + c.Fuzz(s.SecurityContext) + + if s.SecurityContext == nil { + s.SecurityContext = new(api.PodSecurityContext) + } + if s.Affinity == nil { + s.Affinity = new(api.Affinity) + } + if s.SchedulerName == "" { + s.SchedulerName = api.DefaultSchedulerName + } + }, + func(j *api.PodPhase, c fuzz.Continue) { + statuses := []api.PodPhase{api.PodPending, api.PodRunning, api.PodFailed, api.PodUnknown} + *j = statuses[c.Rand.Intn(len(statuses))] + }, + func(j *api.Binding, c fuzz.Continue) { + c.Fuzz(&j.ObjectMeta) + j.Target.Name = c.RandString() + }, + func(j *api.ReplicationControllerSpec, c fuzz.Continue) { + c.FuzzNoCustom(j) // fuzz self without calling this function again + //j.TemplateRef = nil // this is required for round trip + }, + func(j *api.List, c fuzz.Continue) { + c.FuzzNoCustom(j) // fuzz self without calling this function again + // TODO: uncomment when round trip starts from a versioned object + if false { //j.Items == nil { + j.Items = []runtime.Object{} + } + }, + func(q *api.ResourceRequirements, c fuzz.Continue) { + randomQuantity := func() resource.Quantity { + var q resource.Quantity + c.Fuzz(&q) + // precalc the string for benchmarking purposes + _ = q.String() + return q + } + q.Limits = make(api.ResourceList) + q.Requests = make(api.ResourceList) + cpuLimit := randomQuantity() + q.Limits[api.ResourceCPU] = *cpuLimit.Copy() + q.Requests[api.ResourceCPU] = *cpuLimit.Copy() + memoryLimit := randomQuantity() + q.Limits[api.ResourceMemory] = *memoryLimit.Copy() + q.Requests[api.ResourceMemory] = *memoryLimit.Copy() + storageLimit := randomQuantity() + q.Limits[api.ResourceStorage] = *storageLimit.Copy() + q.Requests[api.ResourceStorage] = *storageLimit.Copy() + }, + func(q *api.LimitRangeItem, c fuzz.Continue) { + var cpuLimit resource.Quantity + c.Fuzz(&cpuLimit) + + q.Type = api.LimitTypeContainer + q.Default = make(api.ResourceList) + q.Default[api.ResourceCPU] = *(cpuLimit.Copy()) + + q.DefaultRequest = make(api.ResourceList) + q.DefaultRequest[api.ResourceCPU] = *(cpuLimit.Copy()) + + q.Max = make(api.ResourceList) + q.Max[api.ResourceCPU] = *(cpuLimit.Copy()) + + q.Min = make(api.ResourceList) + q.Min[api.ResourceCPU] = *(cpuLimit.Copy()) + + q.MaxLimitRequestRatio = make(api.ResourceList) + q.MaxLimitRequestRatio[api.ResourceCPU] = resource.MustParse("10") + }, + func(p *api.PullPolicy, c fuzz.Continue) { + policies := []api.PullPolicy{api.PullAlways, api.PullNever, api.PullIfNotPresent} + *p = policies[c.Rand.Intn(len(policies))] + }, + func(rp *api.RestartPolicy, c fuzz.Continue) { + policies := []api.RestartPolicy{api.RestartPolicyAlways, api.RestartPolicyNever, api.RestartPolicyOnFailure} + *rp = policies[c.Rand.Intn(len(policies))] + }, + // api.DownwardAPIVolumeFile needs to have a specific func since FieldRef has to be + // defaulted to a version otherwise roundtrip will fail + func(m *api.DownwardAPIVolumeFile, c fuzz.Continue) { + m.Path = c.RandString() + versions := []string{"v1"} + m.FieldRef = &api.ObjectFieldSelector{} + m.FieldRef.APIVersion = versions[c.Rand.Intn(len(versions))] + m.FieldRef.FieldPath = c.RandString() + c.Fuzz(m.Mode) + if m.Mode != nil { + *m.Mode &= 0777 + } + }, + func(s *api.SecretVolumeSource, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + + if c.RandBool() { + opt := c.RandBool() + s.Optional = &opt + } + // DefaultMode should always be set, it has a default + // value and it is expected to be between 0 and 0777 + var mode int32 + c.Fuzz(&mode) + mode &= 0777 + s.DefaultMode = &mode + }, + func(cm *api.ConfigMapVolumeSource, c fuzz.Continue) { + c.FuzzNoCustom(cm) // fuzz self without calling this function again + + if c.RandBool() { + opt := c.RandBool() + cm.Optional = &opt + } + // DefaultMode should always be set, it has a default + // value and it is expected to be between 0 and 0777 + var mode int32 + c.Fuzz(&mode) + mode &= 0777 + cm.DefaultMode = &mode + }, + func(d *api.DownwardAPIVolumeSource, c fuzz.Continue) { + c.FuzzNoCustom(d) // fuzz self without calling this function again + + // DefaultMode should always be set, it has a default + // value and it is expected to be between 0 and 0777 + var mode int32 + c.Fuzz(&mode) + mode &= 0777 + d.DefaultMode = &mode + }, + func(s *api.ProjectedVolumeSource, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + + // DefaultMode should always be set, it has a default + // value and it is expected to be between 0 and 0777 + var mode int32 + c.Fuzz(&mode) + mode &= 0777 + s.DefaultMode = &mode + }, + func(k *api.KeyToPath, c fuzz.Continue) { + c.FuzzNoCustom(k) // fuzz self without calling this function again + k.Key = c.RandString() + k.Path = c.RandString() + + // Mode is not mandatory, but if it is set, it should be + // a value between 0 and 0777 + if k.Mode != nil { + *k.Mode &= 0777 + } + }, + func(vs *api.VolumeSource, c fuzz.Continue) { + // Exactly one of the fields must be set. + v := reflect.ValueOf(vs).Elem() + i := int(c.RandUint64() % uint64(v.NumField())) + t := v.Field(i).Addr() + for v.Field(i).IsNil() { + c.Fuzz(t.Interface()) + } + }, + func(i *api.ISCSIVolumeSource, c fuzz.Continue) { + i.ISCSIInterface = c.RandString() + if i.ISCSIInterface == "" { + i.ISCSIInterface = "default" + } + }, + func(d *api.DNSPolicy, c fuzz.Continue) { + policies := []api.DNSPolicy{api.DNSClusterFirst, api.DNSDefault} + *d = policies[c.Rand.Intn(len(policies))] + }, + func(p *api.Protocol, c fuzz.Continue) { + protocols := []api.Protocol{api.ProtocolTCP, api.ProtocolUDP} + *p = protocols[c.Rand.Intn(len(protocols))] + }, + func(p *api.ServiceAffinity, c fuzz.Continue) { + types := []api.ServiceAffinity{api.ServiceAffinityClientIP, api.ServiceAffinityNone} + *p = types[c.Rand.Intn(len(types))] + }, + func(p *api.ServiceType, c fuzz.Continue) { + types := []api.ServiceType{api.ServiceTypeClusterIP, api.ServiceTypeNodePort, api.ServiceTypeLoadBalancer} + *p = types[c.Rand.Intn(len(types))] + }, + func(p *api.ServiceExternalTrafficPolicyType, c fuzz.Continue) { + types := []api.ServiceExternalTrafficPolicyType{api.ServiceExternalTrafficPolicyTypeCluster, api.ServiceExternalTrafficPolicyTypeLocal} + *p = types[c.Rand.Intn(len(types))] + }, + func(ct *api.Container, c fuzz.Continue) { + c.FuzzNoCustom(ct) // fuzz self without calling this function again + ct.TerminationMessagePath = "/" + ct.TerminationMessagePath // Must be non-empty + ct.TerminationMessagePolicy = "File" + }, + func(p *api.Probe, c fuzz.Continue) { + c.FuzzNoCustom(p) + // These fields have default values. + intFieldsWithDefaults := [...]string{"TimeoutSeconds", "PeriodSeconds", "SuccessThreshold", "FailureThreshold"} + v := reflect.ValueOf(p).Elem() + for _, field := range intFieldsWithDefaults { + f := v.FieldByName(field) + if f.Int() == 0 { + f.SetInt(1) + } + } + }, + func(ev *api.EnvVar, c fuzz.Continue) { + ev.Name = c.RandString() + if c.RandBool() { + ev.Value = c.RandString() + } else { + ev.ValueFrom = &api.EnvVarSource{} + ev.ValueFrom.FieldRef = &api.ObjectFieldSelector{} + + versions := []schema.GroupVersion{ + {Group: "admission.k8s.io", Version: "v1alpha1"}, + {Group: "apps", Version: "v1beta1"}, + {Group: "apps", Version: "v1beta2"}, + {Group: "foo", Version: "v42"}, + } + + ev.ValueFrom.FieldRef.APIVersion = versions[c.Rand.Intn(len(versions))].String() + ev.ValueFrom.FieldRef.FieldPath = c.RandString() + } + }, + func(ev *api.EnvFromSource, c fuzz.Continue) { + if c.RandBool() { + ev.Prefix = "p_" + } + if c.RandBool() { + c.Fuzz(&ev.ConfigMapRef) + } else { + c.Fuzz(&ev.SecretRef) + } + }, + func(cm *api.ConfigMapEnvSource, c fuzz.Continue) { + c.FuzzNoCustom(cm) // fuzz self without calling this function again + if c.RandBool() { + opt := c.RandBool() + cm.Optional = &opt + } + }, + func(s *api.SecretEnvSource, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + }, + func(sc *api.SecurityContext, c fuzz.Continue) { + c.FuzzNoCustom(sc) // fuzz self without calling this function again + if c.RandBool() { + priv := c.RandBool() + sc.Privileged = &priv + } + + if c.RandBool() { + sc.Capabilities = &api.Capabilities{ + Add: make([]api.Capability, 0), + Drop: make([]api.Capability, 0), + } + c.Fuzz(&sc.Capabilities.Add) + c.Fuzz(&sc.Capabilities.Drop) + } + }, + func(s *api.Secret, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + s.Type = api.SecretTypeOpaque + }, + func(r *api.RBDVolumeSource, c fuzz.Continue) { + r.RBDPool = c.RandString() + if r.RBDPool == "" { + r.RBDPool = "rbd" + } + r.RadosUser = c.RandString() + if r.RadosUser == "" { + r.RadosUser = "admin" + } + r.Keyring = c.RandString() + if r.Keyring == "" { + r.Keyring = "/etc/ceph/keyring" + } + }, + func(pv *api.PersistentVolume, c fuzz.Continue) { + c.FuzzNoCustom(pv) // fuzz self without calling this function again + types := []api.PersistentVolumePhase{api.VolumeAvailable, api.VolumePending, api.VolumeBound, api.VolumeReleased, api.VolumeFailed} + pv.Status.Phase = types[c.Rand.Intn(len(types))] + pv.Status.Message = c.RandString() + reclamationPolicies := []api.PersistentVolumeReclaimPolicy{api.PersistentVolumeReclaimRecycle, api.PersistentVolumeReclaimRetain} + pv.Spec.PersistentVolumeReclaimPolicy = reclamationPolicies[c.Rand.Intn(len(reclamationPolicies))] + }, + func(pvc *api.PersistentVolumeClaim, c fuzz.Continue) { + c.FuzzNoCustom(pvc) // fuzz self without calling this function again + types := []api.PersistentVolumeClaimPhase{api.ClaimBound, api.ClaimPending, api.ClaimLost} + pvc.Status.Phase = types[c.Rand.Intn(len(types))] + }, + func(obj *api.AzureDiskVolumeSource, c fuzz.Continue) { + if obj.CachingMode == nil { + obj.CachingMode = new(api.AzureDataDiskCachingMode) + *obj.CachingMode = api.AzureDataDiskCachingReadWrite + } + if obj.Kind == nil { + obj.Kind = new(api.AzureDataDiskKind) + *obj.Kind = api.AzureSharedBlobDisk + } + if obj.FSType == nil { + obj.FSType = new(string) + *obj.FSType = "ext4" + } + if obj.ReadOnly == nil { + obj.ReadOnly = new(bool) + *obj.ReadOnly = false + } + }, + func(sio *api.ScaleIOVolumeSource, c fuzz.Continue) { + sio.ProtectionDomain = c.RandString() + if sio.ProtectionDomain == "" { + sio.ProtectionDomain = "default" + } + sio.StoragePool = c.RandString() + if sio.StoragePool == "" { + sio.StoragePool = "default" + } + sio.StorageMode = c.RandString() + if sio.StorageMode == "" { + sio.StorageMode = "ThinProvisioned" + } + sio.FSType = c.RandString() + if sio.FSType == "" { + sio.FSType = "xfs" + } + }, + func(s *api.NamespaceSpec, c fuzz.Continue) { + s.Finalizers = []api.FinalizerName{api.FinalizerKubernetes} + }, + func(s *api.NamespaceStatus, c fuzz.Continue) { + s.Phase = api.NamespaceActive + }, + func(http *api.HTTPGetAction, c fuzz.Continue) { + c.FuzzNoCustom(http) // fuzz self without calling this function again + http.Path = "/" + http.Path // can't be blank + http.Scheme = "x" + http.Scheme // can't be blank + }, + func(ss *api.ServiceSpec, c fuzz.Continue) { + c.FuzzNoCustom(ss) // fuzz self without calling this function again + if len(ss.Ports) == 0 { + // There must be at least 1 port. + ss.Ports = append(ss.Ports, api.ServicePort{}) + c.Fuzz(&ss.Ports[0]) + } + for i := range ss.Ports { + switch ss.Ports[i].TargetPort.Type { + case intstr.Int: + ss.Ports[i].TargetPort.IntVal = 1 + ss.Ports[i].TargetPort.IntVal%65535 // non-zero + case intstr.String: + ss.Ports[i].TargetPort.StrVal = "x" + ss.Ports[i].TargetPort.StrVal // non-empty + } + } + }, + func(n *api.Node, c fuzz.Continue) { + c.FuzzNoCustom(n) + n.Spec.ExternalID = "external" + }, + func(s *api.NodeStatus, c fuzz.Continue) { + c.FuzzNoCustom(s) + s.Allocatable = s.Capacity + }, + } +} diff --git a/pkg/api/testing/BUILD b/pkg/api/testing/BUILD index a0858217a65..e1fdcbb0e47 100644 --- a/pkg/api/testing/BUILD +++ b/pkg/api/testing/BUILD @@ -18,29 +18,25 @@ go_library( deps = [ "//cmd/kubeadm/app/apis/kubeadm/fuzzer:go_default_library", "//pkg/api:go_default_library", - "//pkg/api/testapi:go_default_library", - "//pkg/apis/admissionregistration:go_default_library", - "//pkg/apis/apps:go_default_library", - "//pkg/apis/autoscaling:go_default_library", - "//pkg/apis/batch:go_default_library", - "//pkg/apis/certificates:go_default_library", + "//pkg/api/fuzzer:go_default_library", + "//pkg/apis/admissionregistration/fuzzer:go_default_library", + "//pkg/apis/apps/fuzzer:go_default_library", + "//pkg/apis/autoscaling/fuzzer:go_default_library", + "//pkg/apis/batch/fuzzer:go_default_library", + "//pkg/apis/certificates/fuzzer:go_default_library", "//pkg/apis/extensions:go_default_library", + "//pkg/apis/extensions/fuzzer:go_default_library", "//pkg/apis/extensions/v1beta1:go_default_library", - "//pkg/apis/policy:go_default_library", - "//pkg/apis/rbac:go_default_library", + "//pkg/apis/policy/fuzzer:go_default_library", + "//pkg/apis/rbac/fuzzer:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", ], ) diff --git a/pkg/api/testing/fuzzer.go b/pkg/api/testing/fuzzer.go index 56492941243..cb1d85ecb8a 100644 --- a/pkg/api/testing/fuzzer.go +++ b/pkg/api/testing/fuzzer.go @@ -18,35 +18,28 @@ package testing import ( "fmt" - "reflect" - "strconv" "github.com/google/gofuzz" "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/resource" apitesting "k8s.io/apimachinery/pkg/api/testing" "k8s.io/apimachinery/pkg/api/testing/fuzzer" genericfuzzer "k8s.io/apimachinery/pkg/apis/meta/fuzzer" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/fields" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" - "k8s.io/apimachinery/pkg/util/intstr" kubeadmfuzzer "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/fuzzer" "k8s.io/kubernetes/pkg/api" - "k8s.io/kubernetes/pkg/api/testapi" - "k8s.io/kubernetes/pkg/apis/admissionregistration" - "k8s.io/kubernetes/pkg/apis/apps" - "k8s.io/kubernetes/pkg/apis/autoscaling" - "k8s.io/kubernetes/pkg/apis/batch" - "k8s.io/kubernetes/pkg/apis/certificates" + corefuzzer "k8s.io/kubernetes/pkg/api/fuzzer" + admissionregistrationfuzzer "k8s.io/kubernetes/pkg/apis/admissionregistration/fuzzer" + appsfuzzer "k8s.io/kubernetes/pkg/apis/apps/fuzzer" + autoscalingfuzzer "k8s.io/kubernetes/pkg/apis/autoscaling/fuzzer" + batchfuzzer "k8s.io/kubernetes/pkg/apis/batch/fuzzer" + certificatesfuzzer "k8s.io/kubernetes/pkg/apis/certificates/fuzzer" "k8s.io/kubernetes/pkg/apis/extensions" + extensionsfuzzer "k8s.io/kubernetes/pkg/apis/extensions/fuzzer" extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1" - "k8s.io/kubernetes/pkg/apis/policy" - "k8s.io/kubernetes/pkg/apis/rbac" + policyfuzzer "k8s.io/kubernetes/pkg/apis/policy/fuzzer" + rbacfuzzer "k8s.io/kubernetes/pkg/apis/rbac/fuzzer" ) // overrideGenericFuncs override some generic fuzzer funcs from k8s.io/apiserver in order to have more realistic @@ -94,702 +87,17 @@ func overrideGenericFuncs(codecs runtimeserializer.CodecFactory) []interface{} { } } -func coreFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(q *resource.Quantity, c fuzz.Continue) { - *q = *resource.NewQuantity(c.Int63n(1000), resource.DecimalExponent) - }, - func(j *api.ObjectReference, c fuzz.Continue) { - // We have to customize the randomization of TypeMetas because their - // APIVersion and Kind must remain blank in memory. - j.APIVersion = c.RandString() - j.Kind = c.RandString() - j.Namespace = c.RandString() - j.Name = c.RandString() - j.ResourceVersion = strconv.FormatUint(c.RandUint64(), 10) - j.FieldPath = c.RandString() - }, - func(j *api.ListOptions, c fuzz.Continue) { - label, _ := labels.Parse("a=b") - j.LabelSelector = label - field, _ := fields.ParseSelector("a=b") - j.FieldSelector = field - }, - func(j *api.PodExecOptions, c fuzz.Continue) { - j.Stdout = true - j.Stderr = true - }, - func(j *api.PodAttachOptions, c fuzz.Continue) { - j.Stdout = true - j.Stderr = true - }, - func(j *api.PodPortForwardOptions, c fuzz.Continue) { - if c.RandBool() { - j.Ports = make([]int32, c.Intn(10)) - for i := range j.Ports { - j.Ports[i] = c.Int31n(65535) - } - } - }, - func(s *api.PodSpec, c fuzz.Continue) { - c.FuzzNoCustom(s) - // has a default value - ttl := int64(30) - if c.RandBool() { - ttl = int64(c.Uint32()) - } - s.TerminationGracePeriodSeconds = &ttl - - c.Fuzz(s.SecurityContext) - - if s.SecurityContext == nil { - s.SecurityContext = new(api.PodSecurityContext) - } - if s.Affinity == nil { - s.Affinity = new(api.Affinity) - } - if s.SchedulerName == "" { - s.SchedulerName = api.DefaultSchedulerName - } - }, - func(j *api.PodPhase, c fuzz.Continue) { - statuses := []api.PodPhase{api.PodPending, api.PodRunning, api.PodFailed, api.PodUnknown} - *j = statuses[c.Rand.Intn(len(statuses))] - }, - func(j *api.Binding, c fuzz.Continue) { - c.Fuzz(&j.ObjectMeta) - j.Target.Name = c.RandString() - }, - func(j *api.ReplicationControllerSpec, c fuzz.Continue) { - c.FuzzNoCustom(j) // fuzz self without calling this function again - //j.TemplateRef = nil // this is required for round trip - }, - func(j *api.List, c fuzz.Continue) { - c.FuzzNoCustom(j) // fuzz self without calling this function again - // TODO: uncomment when round trip starts from a versioned object - if false { //j.Items == nil { - j.Items = []runtime.Object{} - } - }, - func(q *api.ResourceRequirements, c fuzz.Continue) { - randomQuantity := func() resource.Quantity { - var q resource.Quantity - c.Fuzz(&q) - // precalc the string for benchmarking purposes - _ = q.String() - return q - } - q.Limits = make(api.ResourceList) - q.Requests = make(api.ResourceList) - cpuLimit := randomQuantity() - q.Limits[api.ResourceCPU] = *cpuLimit.Copy() - q.Requests[api.ResourceCPU] = *cpuLimit.Copy() - memoryLimit := randomQuantity() - q.Limits[api.ResourceMemory] = *memoryLimit.Copy() - q.Requests[api.ResourceMemory] = *memoryLimit.Copy() - storageLimit := randomQuantity() - q.Limits[api.ResourceStorage] = *storageLimit.Copy() - q.Requests[api.ResourceStorage] = *storageLimit.Copy() - }, - func(q *api.LimitRangeItem, c fuzz.Continue) { - var cpuLimit resource.Quantity - c.Fuzz(&cpuLimit) - - q.Type = api.LimitTypeContainer - q.Default = make(api.ResourceList) - q.Default[api.ResourceCPU] = *(cpuLimit.Copy()) - - q.DefaultRequest = make(api.ResourceList) - q.DefaultRequest[api.ResourceCPU] = *(cpuLimit.Copy()) - - q.Max = make(api.ResourceList) - q.Max[api.ResourceCPU] = *(cpuLimit.Copy()) - - q.Min = make(api.ResourceList) - q.Min[api.ResourceCPU] = *(cpuLimit.Copy()) - - q.MaxLimitRequestRatio = make(api.ResourceList) - q.MaxLimitRequestRatio[api.ResourceCPU] = resource.MustParse("10") - }, - func(p *api.PullPolicy, c fuzz.Continue) { - policies := []api.PullPolicy{api.PullAlways, api.PullNever, api.PullIfNotPresent} - *p = policies[c.Rand.Intn(len(policies))] - }, - func(rp *api.RestartPolicy, c fuzz.Continue) { - policies := []api.RestartPolicy{api.RestartPolicyAlways, api.RestartPolicyNever, api.RestartPolicyOnFailure} - *rp = policies[c.Rand.Intn(len(policies))] - }, - // api.DownwardAPIVolumeFile needs to have a specific func since FieldRef has to be - // defaulted to a version otherwise roundtrip will fail - func(m *api.DownwardAPIVolumeFile, c fuzz.Continue) { - m.Path = c.RandString() - versions := []string{"v1"} - m.FieldRef = &api.ObjectFieldSelector{} - m.FieldRef.APIVersion = versions[c.Rand.Intn(len(versions))] - m.FieldRef.FieldPath = c.RandString() - c.Fuzz(m.Mode) - if m.Mode != nil { - *m.Mode &= 0777 - } - }, - func(s *api.SecretVolumeSource, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - - if c.RandBool() { - opt := c.RandBool() - s.Optional = &opt - } - // DefaultMode should always be set, it has a default - // value and it is expected to be between 0 and 0777 - var mode int32 - c.Fuzz(&mode) - mode &= 0777 - s.DefaultMode = &mode - }, - func(cm *api.ConfigMapVolumeSource, c fuzz.Continue) { - c.FuzzNoCustom(cm) // fuzz self without calling this function again - - if c.RandBool() { - opt := c.RandBool() - cm.Optional = &opt - } - // DefaultMode should always be set, it has a default - // value and it is expected to be between 0 and 0777 - var mode int32 - c.Fuzz(&mode) - mode &= 0777 - cm.DefaultMode = &mode - }, - func(d *api.DownwardAPIVolumeSource, c fuzz.Continue) { - c.FuzzNoCustom(d) // fuzz self without calling this function again - - // DefaultMode should always be set, it has a default - // value and it is expected to be between 0 and 0777 - var mode int32 - c.Fuzz(&mode) - mode &= 0777 - d.DefaultMode = &mode - }, - func(s *api.ProjectedVolumeSource, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - - // DefaultMode should always be set, it has a default - // value and it is expected to be between 0 and 0777 - var mode int32 - c.Fuzz(&mode) - mode &= 0777 - s.DefaultMode = &mode - }, - func(k *api.KeyToPath, c fuzz.Continue) { - c.FuzzNoCustom(k) // fuzz self without calling this function again - k.Key = c.RandString() - k.Path = c.RandString() - - // Mode is not mandatory, but if it is set, it should be - // a value between 0 and 0777 - if k.Mode != nil { - *k.Mode &= 0777 - } - }, - func(vs *api.VolumeSource, c fuzz.Continue) { - // Exactly one of the fields must be set. - v := reflect.ValueOf(vs).Elem() - i := int(c.RandUint64() % uint64(v.NumField())) - t := v.Field(i).Addr() - for v.Field(i).IsNil() { - c.Fuzz(t.Interface()) - } - }, - func(i *api.ISCSIVolumeSource, c fuzz.Continue) { - i.ISCSIInterface = c.RandString() - if i.ISCSIInterface == "" { - i.ISCSIInterface = "default" - } - }, - func(d *api.DNSPolicy, c fuzz.Continue) { - policies := []api.DNSPolicy{api.DNSClusterFirst, api.DNSDefault} - *d = policies[c.Rand.Intn(len(policies))] - }, - func(p *api.Protocol, c fuzz.Continue) { - protocols := []api.Protocol{api.ProtocolTCP, api.ProtocolUDP} - *p = protocols[c.Rand.Intn(len(protocols))] - }, - func(p *api.ServiceAffinity, c fuzz.Continue) { - types := []api.ServiceAffinity{api.ServiceAffinityClientIP, api.ServiceAffinityNone} - *p = types[c.Rand.Intn(len(types))] - }, - func(p *api.ServiceType, c fuzz.Continue) { - types := []api.ServiceType{api.ServiceTypeClusterIP, api.ServiceTypeNodePort, api.ServiceTypeLoadBalancer} - *p = types[c.Rand.Intn(len(types))] - }, - func(p *api.ServiceExternalTrafficPolicyType, c fuzz.Continue) { - types := []api.ServiceExternalTrafficPolicyType{api.ServiceExternalTrafficPolicyTypeCluster, api.ServiceExternalTrafficPolicyTypeLocal} - *p = types[c.Rand.Intn(len(types))] - }, - func(ct *api.Container, c fuzz.Continue) { - c.FuzzNoCustom(ct) // fuzz self without calling this function again - ct.TerminationMessagePath = "/" + ct.TerminationMessagePath // Must be non-empty - ct.TerminationMessagePolicy = "File" - }, - func(p *api.Probe, c fuzz.Continue) { - c.FuzzNoCustom(p) - // These fields have default values. - intFieldsWithDefaults := [...]string{"TimeoutSeconds", "PeriodSeconds", "SuccessThreshold", "FailureThreshold"} - v := reflect.ValueOf(p).Elem() - for _, field := range intFieldsWithDefaults { - f := v.FieldByName(field) - if f.Int() == 0 { - f.SetInt(1) - } - } - }, - func(ev *api.EnvVar, c fuzz.Continue) { - ev.Name = c.RandString() - if c.RandBool() { - ev.Value = c.RandString() - } else { - ev.ValueFrom = &api.EnvVarSource{} - ev.ValueFrom.FieldRef = &api.ObjectFieldSelector{} - - var versions []schema.GroupVersion - for _, testGroup := range testapi.Groups { - versions = append(versions, *testGroup.GroupVersion()) - } - - ev.ValueFrom.FieldRef.APIVersion = versions[c.Rand.Intn(len(versions))].String() - ev.ValueFrom.FieldRef.FieldPath = c.RandString() - } - }, - func(ev *api.EnvFromSource, c fuzz.Continue) { - if c.RandBool() { - ev.Prefix = "p_" - } - if c.RandBool() { - c.Fuzz(&ev.ConfigMapRef) - } else { - c.Fuzz(&ev.SecretRef) - } - }, - func(cm *api.ConfigMapEnvSource, c fuzz.Continue) { - c.FuzzNoCustom(cm) // fuzz self without calling this function again - if c.RandBool() { - opt := c.RandBool() - cm.Optional = &opt - } - }, - func(s *api.SecretEnvSource, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - }, - func(sc *api.SecurityContext, c fuzz.Continue) { - c.FuzzNoCustom(sc) // fuzz self without calling this function again - if c.RandBool() { - priv := c.RandBool() - sc.Privileged = &priv - } - - if c.RandBool() { - sc.Capabilities = &api.Capabilities{ - Add: make([]api.Capability, 0), - Drop: make([]api.Capability, 0), - } - c.Fuzz(&sc.Capabilities.Add) - c.Fuzz(&sc.Capabilities.Drop) - } - }, - func(s *api.Secret, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - s.Type = api.SecretTypeOpaque - }, - func(r *api.RBDVolumeSource, c fuzz.Continue) { - r.RBDPool = c.RandString() - if r.RBDPool == "" { - r.RBDPool = "rbd" - } - r.RadosUser = c.RandString() - if r.RadosUser == "" { - r.RadosUser = "admin" - } - r.Keyring = c.RandString() - if r.Keyring == "" { - r.Keyring = "/etc/ceph/keyring" - } - }, - func(pv *api.PersistentVolume, c fuzz.Continue) { - c.FuzzNoCustom(pv) // fuzz self without calling this function again - types := []api.PersistentVolumePhase{api.VolumeAvailable, api.VolumePending, api.VolumeBound, api.VolumeReleased, api.VolumeFailed} - pv.Status.Phase = types[c.Rand.Intn(len(types))] - pv.Status.Message = c.RandString() - reclamationPolicies := []api.PersistentVolumeReclaimPolicy{api.PersistentVolumeReclaimRecycle, api.PersistentVolumeReclaimRetain} - pv.Spec.PersistentVolumeReclaimPolicy = reclamationPolicies[c.Rand.Intn(len(reclamationPolicies))] - }, - func(pvc *api.PersistentVolumeClaim, c fuzz.Continue) { - c.FuzzNoCustom(pvc) // fuzz self without calling this function again - types := []api.PersistentVolumeClaimPhase{api.ClaimBound, api.ClaimPending, api.ClaimLost} - pvc.Status.Phase = types[c.Rand.Intn(len(types))] - }, - func(obj *api.AzureDiskVolumeSource, c fuzz.Continue) { - if obj.CachingMode == nil { - obj.CachingMode = new(api.AzureDataDiskCachingMode) - *obj.CachingMode = api.AzureDataDiskCachingReadWrite - } - if obj.Kind == nil { - obj.Kind = new(api.AzureDataDiskKind) - *obj.Kind = api.AzureSharedBlobDisk - } - if obj.FSType == nil { - obj.FSType = new(string) - *obj.FSType = "ext4" - } - if obj.ReadOnly == nil { - obj.ReadOnly = new(bool) - *obj.ReadOnly = false - } - }, - func(sio *api.ScaleIOVolumeSource, c fuzz.Continue) { - sio.ProtectionDomain = c.RandString() - if sio.ProtectionDomain == "" { - sio.ProtectionDomain = "default" - } - sio.StoragePool = c.RandString() - if sio.StoragePool == "" { - sio.StoragePool = "default" - } - sio.StorageMode = c.RandString() - if sio.StorageMode == "" { - sio.StorageMode = "ThinProvisioned" - } - sio.FSType = c.RandString() - if sio.FSType == "" { - sio.FSType = "xfs" - } - }, - func(s *api.NamespaceSpec, c fuzz.Continue) { - s.Finalizers = []api.FinalizerName{api.FinalizerKubernetes} - }, - func(s *api.NamespaceStatus, c fuzz.Continue) { - s.Phase = api.NamespaceActive - }, - func(http *api.HTTPGetAction, c fuzz.Continue) { - c.FuzzNoCustom(http) // fuzz self without calling this function again - http.Path = "/" + http.Path // can't be blank - http.Scheme = "x" + http.Scheme // can't be blank - }, - func(ss *api.ServiceSpec, c fuzz.Continue) { - c.FuzzNoCustom(ss) // fuzz self without calling this function again - if len(ss.Ports) == 0 { - // There must be at least 1 port. - ss.Ports = append(ss.Ports, api.ServicePort{}) - c.Fuzz(&ss.Ports[0]) - } - for i := range ss.Ports { - switch ss.Ports[i].TargetPort.Type { - case intstr.Int: - ss.Ports[i].TargetPort.IntVal = 1 + ss.Ports[i].TargetPort.IntVal%65535 // non-zero - case intstr.String: - ss.Ports[i].TargetPort.StrVal = "x" + ss.Ports[i].TargetPort.StrVal // non-empty - } - } - }, - func(n *api.Node, c fuzz.Continue) { - c.FuzzNoCustom(n) - n.Spec.ExternalID = "external" - }, - func(s *api.NodeStatus, c fuzz.Continue) { - c.FuzzNoCustom(s) - s.Allocatable = s.Capacity - }, - } -} - -func extensionFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(j *extensions.DeploymentSpec, c fuzz.Continue) { - c.FuzzNoCustom(j) // fuzz self without calling this function again - rhl := int32(c.Rand.Int31()) - pds := int32(c.Rand.Int31()) - j.RevisionHistoryLimit = &rhl - j.ProgressDeadlineSeconds = &pds - }, - func(j *extensions.DeploymentStrategy, c fuzz.Continue) { - c.FuzzNoCustom(j) // fuzz self without calling this function again - // Ensure that strategyType is one of valid values. - strategyTypes := []extensions.DeploymentStrategyType{extensions.RecreateDeploymentStrategyType, extensions.RollingUpdateDeploymentStrategyType} - j.Type = strategyTypes[c.Rand.Intn(len(strategyTypes))] - if j.Type != extensions.RollingUpdateDeploymentStrategyType { - j.RollingUpdate = nil - } else { - rollingUpdate := extensions.RollingUpdateDeployment{} - if c.RandBool() { - rollingUpdate.MaxUnavailable = intstr.FromInt(int(c.Rand.Int31())) - rollingUpdate.MaxSurge = intstr.FromInt(int(c.Rand.Int31())) - } else { - rollingUpdate.MaxSurge = intstr.FromString(fmt.Sprintf("%d%%", c.Rand.Int31())) - } - j.RollingUpdate = &rollingUpdate - } - }, - func(psp *extensions.PodSecurityPolicySpec, c fuzz.Continue) { - c.FuzzNoCustom(psp) // fuzz self without calling this function again - runAsUserRules := []extensions.RunAsUserStrategy{extensions.RunAsUserStrategyMustRunAsNonRoot, extensions.RunAsUserStrategyMustRunAs, extensions.RunAsUserStrategyRunAsAny} - psp.RunAsUser.Rule = runAsUserRules[c.Rand.Intn(len(runAsUserRules))] - seLinuxRules := []extensions.SELinuxStrategy{extensions.SELinuxStrategyRunAsAny, extensions.SELinuxStrategyMustRunAs} - psp.SELinux.Rule = seLinuxRules[c.Rand.Intn(len(seLinuxRules))] - }, - func(s *extensions.Scale, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - // TODO: Implement a fuzzer to generate valid keys, values and operators for - // selector requirements. - if s.Status.Selector != nil { - s.Status.Selector = &metav1.LabelSelector{ - MatchLabels: map[string]string{ - "testlabelkey": "testlabelval", - }, - MatchExpressions: []metav1.LabelSelectorRequirement{ - { - Key: "testkey", - Operator: metav1.LabelSelectorOpIn, - Values: []string{"val1", "val2", "val3"}, - }, - }, - } - } - }, - func(j *extensions.DaemonSetSpec, c fuzz.Continue) { - c.FuzzNoCustom(j) // fuzz self without calling this function again - rhl := int32(c.Rand.Int31()) - j.RevisionHistoryLimit = &rhl - }, - func(j *extensions.DaemonSetUpdateStrategy, c fuzz.Continue) { - c.FuzzNoCustom(j) // fuzz self without calling this function again - // Ensure that strategyType is one of valid values. - strategyTypes := []extensions.DaemonSetUpdateStrategyType{extensions.RollingUpdateDaemonSetStrategyType, extensions.OnDeleteDaemonSetStrategyType} - j.Type = strategyTypes[c.Rand.Intn(len(strategyTypes))] - if j.Type != extensions.RollingUpdateDaemonSetStrategyType { - j.RollingUpdate = nil - } else { - rollingUpdate := extensions.RollingUpdateDaemonSet{} - if c.RandBool() { - if c.RandBool() { - rollingUpdate.MaxUnavailable = intstr.FromInt(1 + int(c.Rand.Int31())) - } else { - rollingUpdate.MaxUnavailable = intstr.FromString(fmt.Sprintf("%d%%", 1+c.Rand.Int31())) - } - } - j.RollingUpdate = &rollingUpdate - } - }, - } -} - -func batchFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(j *batch.JobSpec, c fuzz.Continue) { - c.FuzzNoCustom(j) // fuzz self without calling this function again - completions := int32(c.Rand.Int31()) - parallelism := int32(c.Rand.Int31()) - j.Completions = &completions - j.Parallelism = ¶llelism - if c.Rand.Int31()%2 == 0 { - j.ManualSelector = newBool(true) - } else { - j.ManualSelector = nil - } - }, - func(sj *batch.CronJobSpec, c fuzz.Continue) { - c.FuzzNoCustom(sj) - suspend := c.RandBool() - sj.Suspend = &suspend - sds := int64(c.RandUint64()) - sj.StartingDeadlineSeconds = &sds - sj.Schedule = c.RandString() - if hasSuccessLimit := c.RandBool(); hasSuccessLimit { - successfulJobsHistoryLimit := int32(c.Rand.Int31()) - sj.SuccessfulJobsHistoryLimit = &successfulJobsHistoryLimit - } - if hasFailedLimit := c.RandBool(); hasFailedLimit { - failedJobsHistoryLimit := int32(c.Rand.Int31()) - sj.FailedJobsHistoryLimit = &failedJobsHistoryLimit - } - }, - func(cp *batch.ConcurrencyPolicy, c fuzz.Continue) { - policies := []batch.ConcurrencyPolicy{batch.AllowConcurrent, batch.ForbidConcurrent, batch.ReplaceConcurrent} - *cp = policies[c.Rand.Intn(len(policies))] - }, - } -} - -func autoscalingFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(s *autoscaling.HorizontalPodAutoscalerSpec, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - minReplicas := int32(c.Rand.Int31()) - s.MinReplicas = &minReplicas - - randomQuantity := func() resource.Quantity { - var q resource.Quantity - c.Fuzz(&q) - // precalc the string for benchmarking purposes - _ = q.String() - return q - } - - targetUtilization := int32(c.RandUint64()) - s.Metrics = []autoscaling.MetricSpec{ - { - Type: autoscaling.PodsMetricSourceType, - Pods: &autoscaling.PodsMetricSource{ - MetricName: c.RandString(), - TargetAverageValue: randomQuantity(), - }, - }, - { - Type: autoscaling.ResourceMetricSourceType, - Resource: &autoscaling.ResourceMetricSource{ - Name: api.ResourceCPU, - TargetAverageUtilization: &targetUtilization, - }, - }, - } - }, - func(s *autoscaling.HorizontalPodAutoscalerStatus, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - randomQuantity := func() resource.Quantity { - var q resource.Quantity - c.Fuzz(&q) - // precalc the string for benchmarking purposes - _ = q.String() - return q - } - currentUtilization := int32(c.RandUint64()) - s.CurrentMetrics = []autoscaling.MetricStatus{ - { - Type: autoscaling.PodsMetricSourceType, - Pods: &autoscaling.PodsMetricStatus{ - MetricName: c.RandString(), - CurrentAverageValue: randomQuantity(), - }, - }, - { - Type: autoscaling.ResourceMetricSourceType, - Resource: &autoscaling.ResourceMetricStatus{ - Name: api.ResourceCPU, - CurrentAverageUtilization: ¤tUtilization, - }, - }, - } - }, - } -} - -func rbacFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(r *rbac.RoleRef, c fuzz.Continue) { - c.FuzzNoCustom(r) // fuzz self without calling this function again - - // match defaulter - if len(r.APIGroup) == 0 { - r.APIGroup = rbac.GroupName - } - }, - func(r *rbac.Subject, c fuzz.Continue) { - switch c.Int31n(3) { - case 0: - r.Kind = rbac.ServiceAccountKind - r.APIGroup = "" - c.FuzzNoCustom(&r.Name) - c.FuzzNoCustom(&r.Namespace) - case 1: - r.Kind = rbac.UserKind - r.APIGroup = rbac.GroupName - c.FuzzNoCustom(&r.Name) - // user "*" won't round trip because we convert it to the system:authenticated group. try again. - for r.Name == "*" { - c.FuzzNoCustom(&r.Name) - } - case 2: - r.Kind = rbac.GroupKind - r.APIGroup = rbac.GroupName - c.FuzzNoCustom(&r.Name) - } - }, - } -} - -func appsFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(s *apps.StatefulSet, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - - // match defaulter - if len(s.Spec.PodManagementPolicy) == 0 { - s.Spec.PodManagementPolicy = apps.OrderedReadyPodManagement - } - if len(s.Spec.UpdateStrategy.Type) == 0 { - s.Spec.UpdateStrategy.Type = apps.RollingUpdateStatefulSetStrategyType - } - if s.Spec.RevisionHistoryLimit == nil { - s.Spec.RevisionHistoryLimit = new(int32) - *s.Spec.RevisionHistoryLimit = 10 - } - if s.Status.ObservedGeneration == nil { - s.Status.ObservedGeneration = new(int64) - } - if s.Status.CollisionCount == nil { - s.Status.CollisionCount = new(int64) - } - }, - } -} -func policyFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(s *policy.PodDisruptionBudgetStatus, c fuzz.Continue) { - c.FuzzNoCustom(s) // fuzz self without calling this function again - s.PodDisruptionsAllowed = int32(c.Rand.Intn(2)) - }, - } -} - -func certificateFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(obj *certificates.CertificateSigningRequestSpec, c fuzz.Continue) { - c.FuzzNoCustom(obj) // fuzz self without calling this function again - obj.Usages = []certificates.KeyUsage{certificates.UsageKeyEncipherment} - }, - } -} - -func admissionregistrationFuncs(codecs runtimeserializer.CodecFactory) []interface{} { - return []interface{}{ - func(obj *admissionregistration.ExternalAdmissionHook, c fuzz.Continue) { - c.FuzzNoCustom(obj) // fuzz self without calling this function again - p := admissionregistration.FailurePolicyType("Fail") - obj.FailurePolicy = &p - }, - func(obj *admissionregistration.Initializer, c fuzz.Continue) { - c.FuzzNoCustom(obj) // fuzz self without calling this function again - p := admissionregistration.FailurePolicyType("Fail") - obj.FailurePolicy = &p - }, - } -} - var FuzzerFuncs = fuzzer.MergeFuzzerFuncs( genericfuzzer.Funcs, overrideGenericFuncs, - coreFuncs, - extensionFuncs, - appsFuncs, - batchFuncs, - autoscalingFuncs, - rbacFuncs, + corefuzzer.Funcs, + extensionsfuzzer.Funcs, + appsfuzzer.Funcs, + batchfuzzer.Funcs, + autoscalingfuzzer.Funcs, + rbacfuzzer.Funcs, kubeadmfuzzer.Funcs, - policyFuncs, - certificateFuncs, - admissionregistrationFuncs, + policyfuzzer.Funcs, + certificatesfuzzer.Funcs, + admissionregistrationfuzzer.Funcs, ) - -func newBool(val bool) *bool { - p := new(bool) - *p = val - return p -} diff --git a/pkg/apis/abac/BUILD b/pkg/apis/abac/BUILD index 92e6ea9683c..e0915a84f2b 100644 --- a/pkg/apis/abac/BUILD +++ b/pkg/apis/abac/BUILD @@ -36,6 +36,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/abac/fuzzer:all-srcs", "//pkg/apis/abac/latest:all-srcs", "//pkg/apis/abac/v0:all-srcs", "//pkg/apis/abac/v1beta1:all-srcs", diff --git a/pkg/apis/abac/fuzzer/BUILD b/pkg/apis/abac/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/abac/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/abac/fuzzer/fuzzer.go b/pkg/apis/abac/fuzzer/fuzzer.go new file mode 100644 index 00000000000..9f6e432bc6e --- /dev/null +++ b/pkg/apis/abac/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the abac api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/admission/BUILD b/pkg/apis/admission/BUILD index cc3632025b2..3d57e510d10 100644 --- a/pkg/apis/admission/BUILD +++ b/pkg/apis/admission/BUILD @@ -37,6 +37,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/admission/fuzzer:all-srcs", "//pkg/apis/admission/install:all-srcs", "//pkg/apis/admission/v1alpha1:all-srcs", ], diff --git a/pkg/apis/admission/fuzzer/BUILD b/pkg/apis/admission/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/admission/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/admission/fuzzer/fuzzer.go b/pkg/apis/admission/fuzzer/fuzzer.go new file mode 100644 index 00000000000..6b4aea2de13 --- /dev/null +++ b/pkg/apis/admission/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the admission api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/admissionregistration/BUILD b/pkg/apis/admissionregistration/BUILD index 72f4fd29b83..e8136f1b40a 100644 --- a/pkg/apis/admissionregistration/BUILD +++ b/pkg/apis/admissionregistration/BUILD @@ -35,6 +35,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/admissionregistration/fuzzer:all-srcs", "//pkg/apis/admissionregistration/install:all-srcs", "//pkg/apis/admissionregistration/v1alpha1:all-srcs", "//pkg/apis/admissionregistration/validation:all-srcs", diff --git a/pkg/apis/admissionregistration/fuzzer/BUILD b/pkg/apis/admissionregistration/fuzzer/BUILD new file mode 100644 index 00000000000..aa940764d65 --- /dev/null +++ b/pkg/apis/admissionregistration/fuzzer/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/admissionregistration:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/admissionregistration/fuzzer/fuzzer.go b/pkg/apis/admissionregistration/fuzzer/fuzzer.go new file mode 100644 index 00000000000..4029e02298c --- /dev/null +++ b/pkg/apis/admissionregistration/fuzzer/fuzzer.go @@ -0,0 +1,40 @@ +/* +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. +*/ + +package fuzzer + +import ( + fuzz "github.com/google/gofuzz" + + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/apis/admissionregistration" +) + +// Funcs returns the fuzzer functions for the admissionregistration api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(obj *admissionregistration.ExternalAdmissionHook, c fuzz.Continue) { + c.FuzzNoCustom(obj) // fuzz self without calling this function again + p := admissionregistration.FailurePolicyType("Fail") + obj.FailurePolicy = &p + }, + func(obj *admissionregistration.Initializer, c fuzz.Continue) { + c.FuzzNoCustom(obj) // fuzz self without calling this function again + p := admissionregistration.FailurePolicyType("Fail") + obj.FailurePolicy = &p + }, + } +} diff --git a/pkg/apis/apps/BUILD b/pkg/apis/apps/BUILD index 890b1ecc1c3..baff881d1a6 100644 --- a/pkg/apis/apps/BUILD +++ b/pkg/apis/apps/BUILD @@ -37,6 +37,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/apps/fuzzer:all-srcs", "//pkg/apis/apps/install:all-srcs", "//pkg/apis/apps/v1beta1:all-srcs", "//pkg/apis/apps/v1beta2:all-srcs", diff --git a/pkg/apis/apps/fuzzer/BUILD b/pkg/apis/apps/fuzzer/BUILD new file mode 100644 index 00000000000..e759932eecf --- /dev/null +++ b/pkg/apis/apps/fuzzer/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/apps:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/apps/fuzzer/fuzzer.go b/pkg/apis/apps/fuzzer/fuzzer.go new file mode 100644 index 00000000000..beb97dc1684 --- /dev/null +++ b/pkg/apis/apps/fuzzer/fuzzer.go @@ -0,0 +1,51 @@ +/* +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. +*/ + +package fuzzer + +import ( + fuzz "github.com/google/gofuzz" + + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/apis/apps" +) + +// Funcs returns the fuzzer functions for the apps api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(s *apps.StatefulSet, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + + // match defaulter + if len(s.Spec.PodManagementPolicy) == 0 { + s.Spec.PodManagementPolicy = apps.OrderedReadyPodManagement + } + if len(s.Spec.UpdateStrategy.Type) == 0 { + s.Spec.UpdateStrategy.Type = apps.RollingUpdateStatefulSetStrategyType + } + if s.Spec.RevisionHistoryLimit == nil { + s.Spec.RevisionHistoryLimit = new(int32) + *s.Spec.RevisionHistoryLimit = 10 + } + if s.Status.ObservedGeneration == nil { + s.Status.ObservedGeneration = new(int64) + } + if s.Status.CollisionCount == nil { + s.Status.CollisionCount = new(int64) + } + }, + } +} diff --git a/pkg/apis/authentication/BUILD b/pkg/apis/authentication/BUILD index 996c1eff8fd..51b6d55acd4 100644 --- a/pkg/apis/authentication/BUILD +++ b/pkg/apis/authentication/BUILD @@ -35,6 +35,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/authentication/fuzzer:all-srcs", "//pkg/apis/authentication/install:all-srcs", "//pkg/apis/authentication/v1:all-srcs", "//pkg/apis/authentication/v1beta1:all-srcs", diff --git a/pkg/apis/authentication/fuzzer/BUILD b/pkg/apis/authentication/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/authentication/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/authentication/fuzzer/fuzzer.go b/pkg/apis/authentication/fuzzer/fuzzer.go new file mode 100644 index 00000000000..7bb5204e92c --- /dev/null +++ b/pkg/apis/authentication/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the authentication api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/authorization/BUILD b/pkg/apis/authorization/BUILD index 4cdc7b8deed..c7c67fadd1c 100644 --- a/pkg/apis/authorization/BUILD +++ b/pkg/apis/authorization/BUILD @@ -35,6 +35,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/authorization/fuzzer:all-srcs", "//pkg/apis/authorization/install:all-srcs", "//pkg/apis/authorization/v1:all-srcs", "//pkg/apis/authorization/v1beta1:all-srcs", diff --git a/pkg/apis/authorization/fuzzer/BUILD b/pkg/apis/authorization/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/authorization/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/authorization/fuzzer/fuzzer.go b/pkg/apis/authorization/fuzzer/fuzzer.go new file mode 100644 index 00000000000..fb154c0d751 --- /dev/null +++ b/pkg/apis/authorization/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the authorization api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/autoscaling/BUILD b/pkg/apis/autoscaling/BUILD index 7543110a8da..f57abeee54e 100644 --- a/pkg/apis/autoscaling/BUILD +++ b/pkg/apis/autoscaling/BUILD @@ -38,6 +38,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/autoscaling/fuzzer:all-srcs", "//pkg/apis/autoscaling/install:all-srcs", "//pkg/apis/autoscaling/v1:all-srcs", "//pkg/apis/autoscaling/v2alpha1:all-srcs", diff --git a/pkg/apis/autoscaling/fuzzer/BUILD b/pkg/apis/autoscaling/fuzzer/BUILD new file mode 100644 index 00000000000..879ad183809 --- /dev/null +++ b/pkg/apis/autoscaling/fuzzer/BUILD @@ -0,0 +1,34 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/api:go_default_library", + "//pkg/apis/autoscaling:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/autoscaling/fuzzer/fuzzer.go b/pkg/apis/autoscaling/fuzzer/fuzzer.go new file mode 100644 index 00000000000..7133c162735 --- /dev/null +++ b/pkg/apis/autoscaling/fuzzer/fuzzer.go @@ -0,0 +1,89 @@ +/* +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. +*/ + +package fuzzer + +import ( + fuzz "github.com/google/gofuzz" + "k8s.io/apimachinery/pkg/api/resource" + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/apis/autoscaling" +) + +// Funcs returns the fuzzer functions for the autoscaling api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(s *autoscaling.HorizontalPodAutoscalerSpec, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + minReplicas := int32(c.Rand.Int31()) + s.MinReplicas = &minReplicas + + randomQuantity := func() resource.Quantity { + var q resource.Quantity + c.Fuzz(&q) + // precalc the string for benchmarking purposes + _ = q.String() + return q + } + + targetUtilization := int32(c.RandUint64()) + s.Metrics = []autoscaling.MetricSpec{ + { + Type: autoscaling.PodsMetricSourceType, + Pods: &autoscaling.PodsMetricSource{ + MetricName: c.RandString(), + TargetAverageValue: randomQuantity(), + }, + }, + { + Type: autoscaling.ResourceMetricSourceType, + Resource: &autoscaling.ResourceMetricSource{ + Name: api.ResourceCPU, + TargetAverageUtilization: &targetUtilization, + }, + }, + } + }, + func(s *autoscaling.HorizontalPodAutoscalerStatus, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + randomQuantity := func() resource.Quantity { + var q resource.Quantity + c.Fuzz(&q) + // precalc the string for benchmarking purposes + _ = q.String() + return q + } + currentUtilization := int32(c.RandUint64()) + s.CurrentMetrics = []autoscaling.MetricStatus{ + { + Type: autoscaling.PodsMetricSourceType, + Pods: &autoscaling.PodsMetricStatus{ + MetricName: c.RandString(), + CurrentAverageValue: randomQuantity(), + }, + }, + { + Type: autoscaling.ResourceMetricSourceType, + Resource: &autoscaling.ResourceMetricStatus{ + Name: api.ResourceCPU, + CurrentAverageUtilization: ¤tUtilization, + }, + }, + } + }, + } +} diff --git a/pkg/apis/batch/BUILD b/pkg/apis/batch/BUILD index 4ee030ca40c..effedcb0d18 100644 --- a/pkg/apis/batch/BUILD +++ b/pkg/apis/batch/BUILD @@ -36,6 +36,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/batch/fuzzer:all-srcs", "//pkg/apis/batch/install:all-srcs", "//pkg/apis/batch/v1:all-srcs", "//pkg/apis/batch/v2alpha1:all-srcs", diff --git a/pkg/apis/batch/fuzzer/BUILD b/pkg/apis/batch/fuzzer/BUILD new file mode 100644 index 00000000000..7d85a093893 --- /dev/null +++ b/pkg/apis/batch/fuzzer/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/batch:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/batch/fuzzer/fuzzer.go b/pkg/apis/batch/fuzzer/fuzzer.go new file mode 100644 index 00000000000..cb4b751f6d1 --- /dev/null +++ b/pkg/apis/batch/fuzzer/fuzzer.go @@ -0,0 +1,68 @@ +/* +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. +*/ + +package fuzzer + +import ( + fuzz "github.com/google/gofuzz" + + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/apis/batch" +) + +func newBool(val bool) *bool { + p := new(bool) + *p = val + return p +} + +// Funcs returns the fuzzer functions for the batch api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(j *batch.JobSpec, c fuzz.Continue) { + c.FuzzNoCustom(j) // fuzz self without calling this function again + completions := int32(c.Rand.Int31()) + parallelism := int32(c.Rand.Int31()) + j.Completions = &completions + j.Parallelism = ¶llelism + if c.Rand.Int31()%2 == 0 { + j.ManualSelector = newBool(true) + } else { + j.ManualSelector = nil + } + }, + func(sj *batch.CronJobSpec, c fuzz.Continue) { + c.FuzzNoCustom(sj) + suspend := c.RandBool() + sj.Suspend = &suspend + sds := int64(c.RandUint64()) + sj.StartingDeadlineSeconds = &sds + sj.Schedule = c.RandString() + if hasSuccessLimit := c.RandBool(); hasSuccessLimit { + successfulJobsHistoryLimit := int32(c.Rand.Int31()) + sj.SuccessfulJobsHistoryLimit = &successfulJobsHistoryLimit + } + if hasFailedLimit := c.RandBool(); hasFailedLimit { + failedJobsHistoryLimit := int32(c.Rand.Int31()) + sj.FailedJobsHistoryLimit = &failedJobsHistoryLimit + } + }, + func(cp *batch.ConcurrencyPolicy, c fuzz.Continue) { + policies := []batch.ConcurrencyPolicy{batch.AllowConcurrent, batch.ForbidConcurrent, batch.ReplaceConcurrent} + *cp = policies[c.Rand.Intn(len(policies))] + }, + } +} diff --git a/pkg/apis/certificates/BUILD b/pkg/apis/certificates/BUILD index 44cb3863035..2d3922c582a 100644 --- a/pkg/apis/certificates/BUILD +++ b/pkg/apis/certificates/BUILD @@ -36,6 +36,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/certificates/fuzzer:all-srcs", "//pkg/apis/certificates/install:all-srcs", "//pkg/apis/certificates/v1beta1:all-srcs", "//pkg/apis/certificates/validation:all-srcs", diff --git a/pkg/apis/certificates/fuzzer/BUILD b/pkg/apis/certificates/fuzzer/BUILD new file mode 100644 index 00000000000..2f4db68d723 --- /dev/null +++ b/pkg/apis/certificates/fuzzer/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/certificates:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/certificates/fuzzer/fuzzer.go b/pkg/apis/certificates/fuzzer/fuzzer.go new file mode 100644 index 00000000000..ccfca013bed --- /dev/null +++ b/pkg/apis/certificates/fuzzer/fuzzer.go @@ -0,0 +1,34 @@ +/* +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. +*/ + +package fuzzer + +import ( + fuzz "github.com/google/gofuzz" + + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/apis/certificates" +) + +// Funcs returns the fuzzer functions for the certificates api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(obj *certificates.CertificateSigningRequestSpec, c fuzz.Continue) { + c.FuzzNoCustom(obj) // fuzz self without calling this function again + obj.Usages = []certificates.KeyUsage{certificates.UsageKeyEncipherment} + }, + } +} diff --git a/pkg/apis/componentconfig/BUILD b/pkg/apis/componentconfig/BUILD index f6d6ab2b2e3..89f76295813 100644 --- a/pkg/apis/componentconfig/BUILD +++ b/pkg/apis/componentconfig/BUILD @@ -48,6 +48,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/componentconfig/fuzzer:all-srcs", "//pkg/apis/componentconfig/install:all-srcs", "//pkg/apis/componentconfig/v1alpha1:all-srcs", "//pkg/apis/componentconfig/validation:all-srcs", diff --git a/pkg/apis/componentconfig/fuzzer/BUILD b/pkg/apis/componentconfig/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/componentconfig/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/componentconfig/fuzzer/fuzzer.go b/pkg/apis/componentconfig/fuzzer/fuzzer.go new file mode 100644 index 00000000000..cfde7535a30 --- /dev/null +++ b/pkg/apis/componentconfig/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the componentconfig api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/extensions/BUILD b/pkg/apis/extensions/BUILD index a9de8e682ee..8289b25bb5b 100644 --- a/pkg/apis/extensions/BUILD +++ b/pkg/apis/extensions/BUILD @@ -47,6 +47,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/extensions/fuzzer:all-srcs", "//pkg/apis/extensions/install:all-srcs", "//pkg/apis/extensions/v1beta1:all-srcs", "//pkg/apis/extensions/validation:all-srcs", diff --git a/pkg/apis/extensions/fuzzer/BUILD b/pkg/apis/extensions/fuzzer/BUILD new file mode 100644 index 00000000000..8271f15c826 --- /dev/null +++ b/pkg/apis/extensions/fuzzer/BUILD @@ -0,0 +1,34 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/extensions:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/extensions/fuzzer/fuzzer.go b/pkg/apis/extensions/fuzzer/fuzzer.go new file mode 100644 index 00000000000..a36148b79d7 --- /dev/null +++ b/pkg/apis/extensions/fuzzer/fuzzer.go @@ -0,0 +1,109 @@ +/* +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. +*/ + +package fuzzer + +import ( + "fmt" + + fuzz "github.com/google/gofuzz" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/util/intstr" + "k8s.io/kubernetes/pkg/apis/extensions" +) + +// Funcs returns the fuzzer functions for the extensions api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(j *extensions.DeploymentSpec, c fuzz.Continue) { + c.FuzzNoCustom(j) // fuzz self without calling this function again + rhl := int32(c.Rand.Int31()) + pds := int32(c.Rand.Int31()) + j.RevisionHistoryLimit = &rhl + j.ProgressDeadlineSeconds = &pds + }, + func(j *extensions.DeploymentStrategy, c fuzz.Continue) { + c.FuzzNoCustom(j) // fuzz self without calling this function again + // Ensure that strategyType is one of valid values. + strategyTypes := []extensions.DeploymentStrategyType{extensions.RecreateDeploymentStrategyType, extensions.RollingUpdateDeploymentStrategyType} + j.Type = strategyTypes[c.Rand.Intn(len(strategyTypes))] + if j.Type != extensions.RollingUpdateDeploymentStrategyType { + j.RollingUpdate = nil + } else { + rollingUpdate := extensions.RollingUpdateDeployment{} + if c.RandBool() { + rollingUpdate.MaxUnavailable = intstr.FromInt(int(c.Rand.Int31())) + rollingUpdate.MaxSurge = intstr.FromInt(int(c.Rand.Int31())) + } else { + rollingUpdate.MaxSurge = intstr.FromString(fmt.Sprintf("%d%%", c.Rand.Int31())) + } + j.RollingUpdate = &rollingUpdate + } + }, + func(psp *extensions.PodSecurityPolicySpec, c fuzz.Continue) { + c.FuzzNoCustom(psp) // fuzz self without calling this function again + runAsUserRules := []extensions.RunAsUserStrategy{extensions.RunAsUserStrategyMustRunAsNonRoot, extensions.RunAsUserStrategyMustRunAs, extensions.RunAsUserStrategyRunAsAny} + psp.RunAsUser.Rule = runAsUserRules[c.Rand.Intn(len(runAsUserRules))] + seLinuxRules := []extensions.SELinuxStrategy{extensions.SELinuxStrategyRunAsAny, extensions.SELinuxStrategyMustRunAs} + psp.SELinux.Rule = seLinuxRules[c.Rand.Intn(len(seLinuxRules))] + }, + func(s *extensions.Scale, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + // TODO: Implement a fuzzer to generate valid keys, values and operators for + // selector requirements. + if s.Status.Selector != nil { + s.Status.Selector = &metav1.LabelSelector{ + MatchLabels: map[string]string{ + "testlabelkey": "testlabelval", + }, + MatchExpressions: []metav1.LabelSelectorRequirement{ + { + Key: "testkey", + Operator: metav1.LabelSelectorOpIn, + Values: []string{"val1", "val2", "val3"}, + }, + }, + } + } + }, + func(j *extensions.DaemonSetSpec, c fuzz.Continue) { + c.FuzzNoCustom(j) // fuzz self without calling this function again + rhl := int32(c.Rand.Int31()) + j.RevisionHistoryLimit = &rhl + }, + func(j *extensions.DaemonSetUpdateStrategy, c fuzz.Continue) { + c.FuzzNoCustom(j) // fuzz self without calling this function again + // Ensure that strategyType is one of valid values. + strategyTypes := []extensions.DaemonSetUpdateStrategyType{extensions.RollingUpdateDaemonSetStrategyType, extensions.OnDeleteDaemonSetStrategyType} + j.Type = strategyTypes[c.Rand.Intn(len(strategyTypes))] + if j.Type != extensions.RollingUpdateDaemonSetStrategyType { + j.RollingUpdate = nil + } else { + rollingUpdate := extensions.RollingUpdateDaemonSet{} + if c.RandBool() { + if c.RandBool() { + rollingUpdate.MaxUnavailable = intstr.FromInt(1 + int(c.Rand.Int31())) + } else { + rollingUpdate.MaxUnavailable = intstr.FromString(fmt.Sprintf("%d%%", 1+c.Rand.Int31())) + } + } + j.RollingUpdate = &rollingUpdate + } + }, + } +} diff --git a/pkg/apis/imagepolicy/BUILD b/pkg/apis/imagepolicy/BUILD index b63c74769c9..eb1c95a4d7c 100644 --- a/pkg/apis/imagepolicy/BUILD +++ b/pkg/apis/imagepolicy/BUILD @@ -35,6 +35,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/imagepolicy/fuzzer:all-srcs", "//pkg/apis/imagepolicy/install:all-srcs", "//pkg/apis/imagepolicy/v1alpha1:all-srcs", ], diff --git a/pkg/apis/imagepolicy/fuzzer/BUILD b/pkg/apis/imagepolicy/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/imagepolicy/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/imagepolicy/fuzzer/fuzzer.go b/pkg/apis/imagepolicy/fuzzer/fuzzer.go new file mode 100644 index 00000000000..fedada09f0b --- /dev/null +++ b/pkg/apis/imagepolicy/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the imagepolicy api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/networking/BUILD b/pkg/apis/networking/BUILD index 385b9ef7195..f72f8058253 100644 --- a/pkg/apis/networking/BUILD +++ b/pkg/apis/networking/BUILD @@ -37,6 +37,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/networking/fuzzer:all-srcs", "//pkg/apis/networking/install:all-srcs", "//pkg/apis/networking/v1:all-srcs", "//pkg/apis/networking/validation:all-srcs", diff --git a/pkg/apis/networking/fuzzer/BUILD b/pkg/apis/networking/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/networking/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/networking/fuzzer/fuzzer.go b/pkg/apis/networking/fuzzer/fuzzer.go new file mode 100644 index 00000000000..6e142826d3b --- /dev/null +++ b/pkg/apis/networking/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the networking api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/policy/BUILD b/pkg/apis/policy/BUILD index e971f0bd3c9..0bd08a80d2e 100644 --- a/pkg/apis/policy/BUILD +++ b/pkg/apis/policy/BUILD @@ -36,6 +36,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/policy/fuzzer:all-srcs", "//pkg/apis/policy/install:all-srcs", "//pkg/apis/policy/v1alpha1:all-srcs", "//pkg/apis/policy/v1beta1:all-srcs", diff --git a/pkg/apis/policy/fuzzer/BUILD b/pkg/apis/policy/fuzzer/BUILD new file mode 100644 index 00000000000..70477501902 --- /dev/null +++ b/pkg/apis/policy/fuzzer/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/policy:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/policy/fuzzer/fuzzer.go b/pkg/apis/policy/fuzzer/fuzzer.go new file mode 100644 index 00000000000..e6b5a6b9798 --- /dev/null +++ b/pkg/apis/policy/fuzzer/fuzzer.go @@ -0,0 +1,34 @@ +/* +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. +*/ + +package fuzzer + +import ( + fuzz "github.com/google/gofuzz" + + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/apis/policy" +) + +// Funcs returns the fuzzer functions for the policy api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(s *policy.PodDisruptionBudgetStatus, c fuzz.Continue) { + c.FuzzNoCustom(s) // fuzz self without calling this function again + s.PodDisruptionsAllowed = int32(c.Rand.Intn(2)) + }, + } +} diff --git a/pkg/apis/rbac/BUILD b/pkg/apis/rbac/BUILD index 06ac7a23f48..0b519637f58 100644 --- a/pkg/apis/rbac/BUILD +++ b/pkg/apis/rbac/BUILD @@ -37,6 +37,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/rbac/fuzzer:all-srcs", "//pkg/apis/rbac/install:all-srcs", "//pkg/apis/rbac/v1:all-srcs", "//pkg/apis/rbac/v1alpha1:all-srcs", diff --git a/pkg/apis/rbac/fuzzer/BUILD b/pkg/apis/rbac/fuzzer/BUILD new file mode 100644 index 00000000000..c558047bf2b --- /dev/null +++ b/pkg/apis/rbac/fuzzer/BUILD @@ -0,0 +1,32 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = [ + "//pkg/apis/rbac:go_default_library", + "//vendor/github.com/google/gofuzz:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + ], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/rbac/fuzzer/fuzzer.go b/pkg/apis/rbac/fuzzer/fuzzer.go new file mode 100644 index 00000000000..ca8f462ec54 --- /dev/null +++ b/pkg/apis/rbac/fuzzer/fuzzer.go @@ -0,0 +1,59 @@ +/* +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. +*/ + +package fuzzer + +import ( + fuzz "github.com/google/gofuzz" + + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/kubernetes/pkg/apis/rbac" +) + +// Funcs returns the fuzzer functions for the rbac api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{ + func(r *rbac.RoleRef, c fuzz.Continue) { + c.FuzzNoCustom(r) // fuzz self without calling this function again + + // match defaulter + if len(r.APIGroup) == 0 { + r.APIGroup = rbac.GroupName + } + }, + func(r *rbac.Subject, c fuzz.Continue) { + switch c.Int31n(3) { + case 0: + r.Kind = rbac.ServiceAccountKind + r.APIGroup = "" + c.FuzzNoCustom(&r.Name) + c.FuzzNoCustom(&r.Namespace) + case 1: + r.Kind = rbac.UserKind + r.APIGroup = rbac.GroupName + c.FuzzNoCustom(&r.Name) + // user "*" won't round trip because we convert it to the system:authenticated group. try again. + for r.Name == "*" { + c.FuzzNoCustom(&r.Name) + } + case 2: + r.Kind = rbac.GroupKind + r.APIGroup = rbac.GroupName + c.FuzzNoCustom(&r.Name) + } + }, + } +} diff --git a/pkg/apis/scheduling/BUILD b/pkg/apis/scheduling/BUILD index f8e055121a1..34899cbae4c 100644 --- a/pkg/apis/scheduling/BUILD +++ b/pkg/apis/scheduling/BUILD @@ -35,6 +35,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/scheduling/fuzzer:all-srcs", "//pkg/apis/scheduling/install:all-srcs", "//pkg/apis/scheduling/v1alpha1:all-srcs", "//pkg/apis/scheduling/validation:all-srcs", diff --git a/pkg/apis/scheduling/fuzzer/BUILD b/pkg/apis/scheduling/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/scheduling/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/scheduling/fuzzer/fuzzer.go b/pkg/apis/scheduling/fuzzer/fuzzer.go new file mode 100644 index 00000000000..ee9286de2cb --- /dev/null +++ b/pkg/apis/scheduling/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the scheduling api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/settings/BUILD b/pkg/apis/settings/BUILD index 96a9ee6421f..17b22780f7b 100644 --- a/pkg/apis/settings/BUILD +++ b/pkg/apis/settings/BUILD @@ -36,6 +36,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/settings/fuzzer:all-srcs", "//pkg/apis/settings/install:all-srcs", "//pkg/apis/settings/v1alpha1:all-srcs", "//pkg/apis/settings/validation:all-srcs", diff --git a/pkg/apis/settings/fuzzer/BUILD b/pkg/apis/settings/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/settings/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/settings/fuzzer/fuzzer.go b/pkg/apis/settings/fuzzer/fuzzer.go new file mode 100644 index 00000000000..be5a228f5a1 --- /dev/null +++ b/pkg/apis/settings/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the settings api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/apis/storage/BUILD b/pkg/apis/storage/BUILD index 24f25759fa5..4aa001b3a64 100644 --- a/pkg/apis/storage/BUILD +++ b/pkg/apis/storage/BUILD @@ -35,6 +35,7 @@ filegroup( name = "all-srcs", srcs = [ ":package-srcs", + "//pkg/apis/storage/fuzzer:all-srcs", "//pkg/apis/storage/install:all-srcs", "//pkg/apis/storage/util:all-srcs", "//pkg/apis/storage/v1:all-srcs", diff --git a/pkg/apis/storage/fuzzer/BUILD b/pkg/apis/storage/fuzzer/BUILD new file mode 100644 index 00000000000..2aa37c3b8f5 --- /dev/null +++ b/pkg/apis/storage/fuzzer/BUILD @@ -0,0 +1,28 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_library", +) + +go_library( + name = "go_default_library", + srcs = ["fuzzer.go"], + tags = ["automanaged"], + deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], +) diff --git a/pkg/apis/storage/fuzzer/fuzzer.go b/pkg/apis/storage/fuzzer/fuzzer.go new file mode 100644 index 00000000000..a0a68bdf9ff --- /dev/null +++ b/pkg/apis/storage/fuzzer/fuzzer.go @@ -0,0 +1,26 @@ +/* +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. +*/ + +package fuzzer + +import ( + runtimeserializer "k8s.io/apimachinery/pkg/runtime/serializer" +) + +// Funcs returns the fuzzer functions for the storage api group. +var Funcs = func(codecs runtimeserializer.CodecFactory) []interface{} { + return []interface{}{} +} diff --git a/pkg/registry/core/event/BUILD b/pkg/registry/core/event/BUILD index 4a9fd1b4daa..4fa7714d20c 100644 --- a/pkg/registry/core/event/BUILD +++ b/pkg/registry/core/event/BUILD @@ -37,6 +37,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", diff --git a/pkg/registry/core/event/strategy_test.go b/pkg/registry/core/event/strategy_test.go index 9b5e5959abd..be78b5aa0f8 100644 --- a/pkg/registry/core/event/strategy_test.go +++ b/pkg/registry/core/event/strategy_test.go @@ -25,6 +25,9 @@ import ( "k8s.io/apimachinery/pkg/util/diff" "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func testEvent(name string) *api.Event { diff --git a/pkg/registry/core/namespace/BUILD b/pkg/registry/core/namespace/BUILD index 95123b7ccbd..40b3985c608 100644 --- a/pkg/registry/core/namespace/BUILD +++ b/pkg/registry/core/namespace/BUILD @@ -41,6 +41,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/pkg/registry/core/namespace/strategy_test.go b/pkg/registry/core/namespace/strategy_test.go index 37691ac7201..8e3dbc3e800 100644 --- a/pkg/registry/core/namespace/strategy_test.go +++ b/pkg/registry/core/namespace/strategy_test.go @@ -23,6 +23,9 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestNamespaceStrategy(t *testing.T) { diff --git a/pkg/registry/core/node/BUILD b/pkg/registry/core/node/BUILD index b8791bcac12..3509b9be2ac 100644 --- a/pkg/registry/core/node/BUILD +++ b/pkg/registry/core/node/BUILD @@ -45,6 +45,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/pkg/registry/core/node/strategy_test.go b/pkg/registry/core/node/strategy_test.go index 2fd33f6ac73..ec740efdc2f 100644 --- a/pkg/registry/core/node/strategy_test.go +++ b/pkg/registry/core/node/strategy_test.go @@ -23,6 +23,9 @@ import ( "k8s.io/apimachinery/pkg/labels" "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestMatchNode(t *testing.T) { diff --git a/pkg/registry/core/persistentvolume/BUILD b/pkg/registry/core/persistentvolume/BUILD index 2d2df364970..6ab27cd0daa 100644 --- a/pkg/registry/core/persistentvolume/BUILD +++ b/pkg/registry/core/persistentvolume/BUILD @@ -37,6 +37,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", ], ) diff --git a/pkg/registry/core/persistentvolume/strategy_test.go b/pkg/registry/core/persistentvolume/strategy_test.go index 65b975e8b9b..1bec01dac3c 100644 --- a/pkg/registry/core/persistentvolume/strategy_test.go +++ b/pkg/registry/core/persistentvolume/strategy_test.go @@ -21,6 +21,9 @@ import ( "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestSelectableFieldLabelConversions(t *testing.T) { diff --git a/pkg/registry/core/persistentvolumeclaim/BUILD b/pkg/registry/core/persistentvolumeclaim/BUILD index c19290269dd..c9e86230ac4 100644 --- a/pkg/registry/core/persistentvolumeclaim/BUILD +++ b/pkg/registry/core/persistentvolumeclaim/BUILD @@ -36,6 +36,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", ], ) diff --git a/pkg/registry/core/persistentvolumeclaim/strategy_test.go b/pkg/registry/core/persistentvolumeclaim/strategy_test.go index e8fe5e60273..90824c4db2a 100644 --- a/pkg/registry/core/persistentvolumeclaim/strategy_test.go +++ b/pkg/registry/core/persistentvolumeclaim/strategy_test.go @@ -21,6 +21,9 @@ import ( "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestSelectableFieldLabelConversions(t *testing.T) { diff --git a/pkg/registry/core/pod/BUILD b/pkg/registry/core/pod/BUILD index 429a1a9d672..08a1793d439 100644 --- a/pkg/registry/core/pod/BUILD +++ b/pkg/registry/core/pod/BUILD @@ -42,6 +42,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//pkg/kubelet/client:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/registry/core/pod/strategy_test.go b/pkg/registry/core/pod/strategy_test.go index eed6fcf15fd..e2f34621085 100644 --- a/pkg/registry/core/pod/strategy_test.go +++ b/pkg/registry/core/pod/strategy_test.go @@ -32,6 +32,9 @@ import ( "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" "k8s.io/kubernetes/pkg/kubelet/client" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestMatchPod(t *testing.T) { diff --git a/pkg/registry/core/replicationcontroller/BUILD b/pkg/registry/core/replicationcontroller/BUILD index 2082af00556..6f6465d0ec9 100644 --- a/pkg/registry/core/replicationcontroller/BUILD +++ b/pkg/registry/core/replicationcontroller/BUILD @@ -43,6 +43,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/pkg/registry/core/replicationcontroller/strategy_test.go b/pkg/registry/core/replicationcontroller/strategy_test.go index 6c9513cc7bf..1b20fbada47 100644 --- a/pkg/registry/core/replicationcontroller/strategy_test.go +++ b/pkg/registry/core/replicationcontroller/strategy_test.go @@ -24,6 +24,9 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestControllerStrategy(t *testing.T) { diff --git a/pkg/registry/core/secret/BUILD b/pkg/registry/core/secret/BUILD index bc1ccf4563e..6f7d517cb6b 100644 --- a/pkg/registry/core/secret/BUILD +++ b/pkg/registry/core/secret/BUILD @@ -42,6 +42,7 @@ go_test( tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", + "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/pkg/registry/core/secret/strategy_test.go b/pkg/registry/core/secret/strategy_test.go index f021be5d64e..1e284efa5b9 100644 --- a/pkg/registry/core/secret/strategy_test.go +++ b/pkg/registry/core/secret/strategy_test.go @@ -25,6 +25,9 @@ import ( genericapirequest "k8s.io/apiserver/pkg/endpoints/request" "k8s.io/kubernetes/pkg/api" apitesting "k8s.io/kubernetes/pkg/api/testing" + + // install all api groups for testing + _ "k8s.io/kubernetes/pkg/api/testapi" ) func TestExportSecret(t *testing.T) { From fa432e131c9b97d5c5357145cccfd3057710f8d5 Mon Sep 17 00:00:00 2001 From: Klaus Ma Date: Mon, 24 Jul 2017 20:08:35 +0800 Subject: [PATCH 177/183] Requeue DaemonSets if non-daemon pods were deleted. --- pkg/controller/daemon/BUILD | 1 + pkg/controller/daemon/daemon_controller.go | 105 ++++++++++- .../daemon/daemon_controller_test.go | 173 ++++++++++++++++++ 3 files changed, 273 insertions(+), 6 deletions(-) diff --git a/pkg/controller/daemon/BUILD b/pkg/controller/daemon/BUILD index ce90c100cef..f64a6d9e1bd 100644 --- a/pkg/controller/daemon/BUILD +++ b/pkg/controller/daemon/BUILD @@ -40,6 +40,7 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/informers/apps/v1beta1:go_default_library", diff --git a/pkg/controller/daemon/daemon_controller.go b/pkg/controller/daemon/daemon_controller.go index 61919a412e0..f104e163161 100644 --- a/pkg/controller/daemon/daemon_controller.go +++ b/pkg/controller/daemon/daemon_controller.go @@ -31,6 +31,7 @@ import ( "k8s.io/apimachinery/pkg/labels" utilerrors "k8s.io/apimachinery/pkg/util/errors" utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" utilfeature "k8s.io/apiserver/pkg/util/feature" appsinformers "k8s.io/client-go/informers/apps/v1beta1" @@ -94,7 +95,8 @@ type DaemonSetsController struct { // To allow injection of syncDaemonSet for testing. syncHandler func(dsKey string) error // used for unit testing - enqueueDaemonSet func(ds *extensions.DaemonSet) + enqueueDaemonSet func(ds *extensions.DaemonSet) + enqueueDaemonSetRateLimited func(ds *extensions.DaemonSet) // A TTLCache of pod creates/deletes each ds expects to see expectations controller.ControllerExpectationsInterface // dsLister can list/get daemonsets from the shared informer's store @@ -120,6 +122,11 @@ type DaemonSetsController struct { // DaemonSet keys that need to be synced. queue workqueue.RateLimitingInterface + + // The DaemonSet that has suspended pods on nodes; the key is node name, the value + // is DaemonSet set that want to run pods but can't schedule in latest syncup cycle. + suspendedDaemonPodsMutex sync.Mutex + suspendedDaemonPods map[string]sets.String } func NewDaemonSetsController(daemonSetInformer extensionsinformers.DaemonSetInformer, historyInformer appsinformers.ControllerRevisionInformer, podInformer coreinformers.PodInformer, nodeInformer coreinformers.NodeInformer, kubeClient clientset.Interface) *DaemonSetsController { @@ -141,9 +148,10 @@ func NewDaemonSetsController(daemonSetInformer extensionsinformers.DaemonSetInfo crControl: controller.RealControllerRevisionControl{ KubeClient: kubeClient, }, - burstReplicas: BurstReplicas, - expectations: controller.NewControllerExpectations(), - queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "daemonset"), + burstReplicas: BurstReplicas, + expectations: controller.NewControllerExpectations(), + queue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "daemonset"), + suspendedDaemonPods: map[string]sets.String{}, } daemonSetInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ @@ -191,6 +199,7 @@ func NewDaemonSetsController(daemonSetInformer extensionsinformers.DaemonSetInfo dsc.syncHandler = dsc.syncDaemonSet dsc.enqueueDaemonSet = dsc.enqueue + dsc.enqueueDaemonSetRateLimited = dsc.enqueueRateLimited return dsc } @@ -267,6 +276,16 @@ func (dsc *DaemonSetsController) enqueue(ds *extensions.DaemonSet) { dsc.queue.Add(key) } +func (dsc *DaemonSetsController) enqueueRateLimited(ds *extensions.DaemonSet) { + key, err := controller.KeyFunc(ds) + if err != nil { + utilruntime.HandleError(fmt.Errorf("Couldn't get key for object %#v: %v", ds, err)) + return + } + + dsc.queue.AddRateLimited(key) +} + func (dsc *DaemonSetsController) enqueueDaemonSetAfter(obj interface{}, after time.Duration) { key, err := controller.KeyFunc(obj) if err != nil { @@ -519,6 +538,67 @@ func (dsc *DaemonSetsController) updatePod(old, cur interface{}) { } } +// listSuspendedDaemonPods lists the Daemon pods that 'want to run, but should not schedule' +// for the node. +func (dsc *DaemonSetsController) listSuspendedDaemonPods(node string) (dss []string) { + dsc.suspendedDaemonPodsMutex.Lock() + defer dsc.suspendedDaemonPodsMutex.Unlock() + + if _, found := dsc.suspendedDaemonPods[node]; !found { + return nil + } + + for k := range dsc.suspendedDaemonPods[node] { + dss = append(dss, k) + } + return +} + +// requeueSuspendedDaemonPods enqueues all DaemonSets which has pods that 'want to run, +// but should not schedule' for the node; so DaemonSetController will sync up them again. +func (dsc *DaemonSetsController) requeueSuspendedDaemonPods(node string) { + dss := dsc.listSuspendedDaemonPods(node) + for _, dsKey := range dss { + if ns, name, err := cache.SplitMetaNamespaceKey(dsKey); err != nil { + glog.Errorf("Failed to get DaemonSet's namespace and name from %s: %v", dsKey, err) + continue + } else if ds, err := dsc.dsLister.DaemonSets(ns).Get(name); err != nil { + glog.Errorf("Failed to get DaemonSet %s/%s: %v", ns, name, err) + continue + } else { + dsc.enqueueDaemonSetRateLimited(ds) + } + } +} + +// addSuspendedDaemonPods adds DaemonSet which has pods that 'want to run, +// but should not schedule' for the node to the suspended queue. +func (dsc *DaemonSetsController) addSuspendedDaemonPods(node, ds string) { + dsc.suspendedDaemonPodsMutex.Lock() + defer dsc.suspendedDaemonPodsMutex.Unlock() + + if _, found := dsc.suspendedDaemonPods[node]; !found { + dsc.suspendedDaemonPods[node] = sets.NewString() + } + dsc.suspendedDaemonPods[node].Insert(ds) +} + +// removeSuspendedDaemonPods removes DaemonSet which has pods that 'want to run, +// but should not schedule' for the node from suspended queue. +func (dsc *DaemonSetsController) removeSuspendedDaemonPods(node, ds string) { + dsc.suspendedDaemonPodsMutex.Lock() + defer dsc.suspendedDaemonPodsMutex.Unlock() + + if _, found := dsc.suspendedDaemonPods[node]; !found { + return + } + dsc.suspendedDaemonPods[node].Delete(ds) + + if len(dsc.suspendedDaemonPods[node]) == 0 { + delete(dsc.suspendedDaemonPods, node) + } +} + func (dsc *DaemonSetsController) deletePod(obj interface{}) { pod, ok := obj.(*v1.Pod) // When a delete is dropped, the relist will notice a pod in the store not @@ -542,10 +622,18 @@ func (dsc *DaemonSetsController) deletePod(obj interface{}) { controllerRef := controller.GetControllerOf(pod) if controllerRef == nil { // No controller should care about orphans being deleted. + if len(pod.Spec.NodeName) != 0 { + // If scheduled pods were deleted, requeue suspended daemon pods. + dsc.requeueSuspendedDaemonPods(pod.Spec.NodeName) + } return } ds := dsc.resolveControllerRef(pod.Namespace, controllerRef) if ds == nil { + if len(pod.Spec.NodeName) != 0 { + // If scheduled pods were deleted, requeue suspended daemon pods. + dsc.requeueSuspendedDaemonPods(pod.Spec.NodeName) + } return } dsKey, err := controller.KeyFunc(ds) @@ -729,20 +817,25 @@ func (dsc *DaemonSetsController) manage(ds *extensions.DaemonSet, hash string) e var nodesNeedingDaemonPods, podsToDelete []string var failedPodsObserved int for _, node := range nodeList { - _, shouldSchedule, shouldContinueRunning, err := dsc.nodeShouldRunDaemonPod(node, ds) + wantToRun, shouldSchedule, shouldContinueRunning, err := dsc.nodeShouldRunDaemonPod(node, ds) if err != nil { continue } daemonPods, exists := nodeToDaemonPods[node.Name] + dsKey, _ := cache.MetaNamespaceKeyFunc(ds) + dsc.removeSuspendedDaemonPods(node.Name, dsKey) switch { + case wantToRun && !shouldSchedule: + // If daemon pod is supposed to run, but can not be scheduled, add to suspended list. + dsc.addSuspendedDaemonPods(node.Name, dsKey) case shouldSchedule && !exists: // If daemon pod is supposed to be running on node, but isn't, create daemon pod. nodesNeedingDaemonPods = append(nodesNeedingDaemonPods, node.Name) case shouldContinueRunning: // If a daemon pod failed, delete it - // If there's no daemon pods left on this node, we will create it in the next sync loop + // If there's non-daemon pods left on this node, we will create it in the next sync loop var daemonPodsRunning []*v1.Pod for _, pod := range daemonPods { if pod.Status.Phase == v1.PodFailed { diff --git a/pkg/controller/daemon/daemon_controller_test.go b/pkg/controller/daemon/daemon_controller_test.go index 921cd6fc3dd..ad5f7acb1d7 100644 --- a/pkg/controller/daemon/daemon_controller_test.go +++ b/pkg/controller/daemon/daemon_controller_test.go @@ -1553,6 +1553,179 @@ func TestUpdateNode(t *testing.T) { } } +// DaemonSets should be resynced when non-daemon pods was deleted. +func TestDeleteNoDaemonPod(t *testing.T) { + var enqueued bool + + cases := []struct { + test string + node *v1.Node + existPods []*v1.Pod + deletedPod *v1.Pod + ds *extensions.DaemonSet + shouldEnqueue bool + }{ + { + test: "Deleted non-daemon pods to release resources", + node: func() *v1.Node { + node := newNode("node1", nil) + node.Status.Conditions = []v1.NodeCondition{ + {Type: v1.NodeReady, Status: v1.ConditionTrue}, + } + node.Status.Allocatable = allocatableResources("200M", "200m") + return node + }(), + existPods: func() []*v1.Pod { + pods := []*v1.Pod{} + for i := 0; i < 4; i++ { + podSpec := resourcePodSpec("node1", "50M", "50m") + pods = append(pods, &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("pod_%d", i), + }, + Spec: podSpec, + }) + } + return pods + }(), + deletedPod: func() *v1.Pod { + podSpec := resourcePodSpec("node1", "50M", "50m") + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod_0", + }, + Spec: podSpec, + } + }(), + ds: func() *extensions.DaemonSet { + ds := newDaemonSet("ds") + ds.Spec.Template.Spec = resourcePodSpec("", "50M", "50m") + return ds + }(), + shouldEnqueue: true, + }, + { + test: "Deleted non-daemon pods (with controller) to release resources", + node: func() *v1.Node { + node := newNode("node1", nil) + node.Status.Conditions = []v1.NodeCondition{ + {Type: v1.NodeReady, Status: v1.ConditionTrue}, + } + node.Status.Allocatable = allocatableResources("200M", "200m") + return node + }(), + existPods: func() []*v1.Pod { + pods := []*v1.Pod{} + for i := 0; i < 4; i++ { + podSpec := resourcePodSpec("node1", "50M", "50m") + pods = append(pods, &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("pod_%d", i), + OwnerReferences: []metav1.OwnerReference{ + {Controller: func() *bool { res := true; return &res }()}, + }, + }, + Spec: podSpec, + }) + } + return pods + }(), + deletedPod: func() *v1.Pod { + podSpec := resourcePodSpec("node1", "50M", "50m") + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod_0", + OwnerReferences: []metav1.OwnerReference{ + {Controller: func() *bool { res := true; return &res }()}, + }, + }, + Spec: podSpec, + } + }(), + ds: func() *extensions.DaemonSet { + ds := newDaemonSet("ds") + ds.Spec.Template.Spec = resourcePodSpec("", "50M", "50m") + return ds + }(), + shouldEnqueue: true, + }, + { + test: "Deleted no scheduled pods", + node: func() *v1.Node { + node := newNode("node1", nil) + node.Status.Conditions = []v1.NodeCondition{ + {Type: v1.NodeReady, Status: v1.ConditionTrue}, + } + node.Status.Allocatable = allocatableResources("200M", "200m") + return node + }(), + existPods: func() []*v1.Pod { + pods := []*v1.Pod{} + for i := 0; i < 4; i++ { + podSpec := resourcePodSpec("node1", "50M", "50m") + pods = append(pods, &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: fmt.Sprintf("pod_%d", i), + OwnerReferences: []metav1.OwnerReference{ + {Controller: func() *bool { res := true; return &res }()}, + }, + }, + Spec: podSpec, + }) + } + return pods + }(), + deletedPod: func() *v1.Pod { + podSpec := resourcePodSpec("", "50M", "50m") + return &v1.Pod{ + ObjectMeta: metav1.ObjectMeta{ + Name: "pod_5", + }, + Spec: podSpec, + } + }(), + ds: func() *extensions.DaemonSet { + ds := newDaemonSet("ds") + ds.Spec.Template.Spec = resourcePodSpec("", "50M", "50m") + return ds + }(), + shouldEnqueue: false, + }, + } + + for _, c := range cases { + for _, strategy := range updateStrategies() { + manager, podControl, _ := newTestController() + manager.nodeStore.Add(c.node) + c.ds.Spec.UpdateStrategy = *strategy + manager.dsStore.Add(c.ds) + for _, pod := range c.existPods { + manager.podStore.Add(pod) + } + switch strategy.Type { + case extensions.OnDeleteDaemonSetStrategyType: + syncAndValidateDaemonSets(t, manager, c.ds, podControl, 0, 0, 2) + case extensions.RollingUpdateDaemonSetStrategyType: + syncAndValidateDaemonSets(t, manager, c.ds, podControl, 0, 0, 3) + default: + t.Fatalf("unexpected UpdateStrategy %+v", strategy) + } + + manager.enqueueDaemonSetRateLimited = func(ds *extensions.DaemonSet) { + if ds.Name == "ds" { + enqueued = true + } + } + + enqueued = false + manager.deletePod(c.deletedPod) + if enqueued != c.shouldEnqueue { + t.Errorf("Test case: '%s', expected: %t, got: %t", c.test, c.shouldEnqueue, enqueued) + } + } + } +} + func TestGetNodesToDaemonPods(t *testing.T) { for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") From 7717c0bbe6e1a4b26ed2935b74f66c535f874ece Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 9 Aug 2017 15:23:07 -0700 Subject: [PATCH 178/183] Bump rules_go --- build/root/WORKSPACE | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build/root/WORKSPACE b/build/root/WORKSPACE index 8617e1905e2..53fb0ef1836 100644 --- a/build/root/WORKSPACE +++ b/build/root/WORKSPACE @@ -1,8 +1,8 @@ http_archive( name = "io_bazel_rules_go", - sha256 = "abdea3986d9e850eda27b12163b0b558accdb5bca69ef945b022356f920d430d", - strip_prefix = "rules_go-473417ec48310325e1fcb1c154621a83197a17fe", - urls = ["https://github.com/bazelbuild/rules_go/archive/473417ec48310325e1fcb1c154621a83197a17fe.tar.gz"], + sha256 = "f9cc31e9d66dad1154de3c214158916411040e2c2614e4fbc2bab67330e95f82", + strip_prefix = "rules_go-82483596ec203eb9c1849937636f4cbed83733eb", + urls = ["https://github.com/bazelbuild/rules_go/archive/82483596ec203eb9c1849937636f4cbed83733eb.tar.gz"], ) http_archive( From cce84c3e19709a1c891654bcbcce6c3dc7da149a Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 9 Aug 2017 15:31:10 -0700 Subject: [PATCH 179/183] Use gazelle and kazel together to manage BUILD files --- build/root/.kazelcfg.json | 1 - build/root/BUILD.root | 5 +++++ build/root/WORKSPACE | 6 +++--- hack/update-bazel.sh | 5 ++++- hack/verify-bazel.sh | 11 +++++++++-- pkg/generated/openapi/BUILD | 3 +++ 6 files changed, 24 insertions(+), 7 deletions(-) diff --git a/build/root/.kazelcfg.json b/build/root/.kazelcfg.json index e8f32e586d3..3d5d1a1edb7 100644 --- a/build/root/.kazelcfg.json +++ b/build/root/.kazelcfg.json @@ -4,6 +4,5 @@ "^_.*" ], "AddSourcesRules": true, - "VendorMultipleBuildFiles": true, "K8sOpenAPIGen": true } diff --git a/build/root/BUILD.root b/build/root/BUILD.root index de10cbaafda..58e2dadd952 100644 --- a/build/root/BUILD.root +++ b/build/root/BUILD.root @@ -1,3 +1,8 @@ +# gazelle:exclude _artifacts +# gazelle:exclude _gopath +# gazelle:exclude _output +# gazelle:exclude _tmp + package(default_visibility = ["//visibility:public"]) licenses(["notice"]) diff --git a/build/root/WORKSPACE b/build/root/WORKSPACE index 53fb0ef1836..866af12da0e 100644 --- a/build/root/WORKSPACE +++ b/build/root/WORKSPACE @@ -7,9 +7,9 @@ http_archive( http_archive( name = "io_kubernetes_build", - sha256 = "232fec0ffcb53df5e87fc036ae3e966ea32122fc89ead4c32581b3255c1ab7d0", - strip_prefix = "repo-infra-f521b5d472e00e05da5394994942064510a6e8bf", - urls = ["https://github.com/kubernetes/repo-infra/archive/f521b5d472e00e05da5394994942064510a6e8bf.tar.gz"], + sha256 = "5ba54d17d582ec099ba65d4e409e318e209216b15be819c922a5baae3f4d4283", + strip_prefix = "repo-infra-e9d1a126ef355ff5d38e20612c889b07728225a4", + urls = ["https://github.com/kubernetes/repo-infra/archive/e9d1a126ef355ff5d38e20612c889b07728225a4.tar.gz"], ) ETCD_VERSION = "3.0.17" diff --git a/hack/update-bazel.sh b/hack/update-bazel.sh index 9a138ca10bb..bf841685b79 100755 --- a/hack/update-bazel.sh +++ b/hack/update-bazel.sh @@ -24,6 +24,9 @@ source "${KUBE_ROOT}/hack/lib/init.sh" # TODO(spxtr): Remove this line once Bazel is the only way to build. rm -f "${KUBE_ROOT}/pkg/generated/openapi/zz_generated.openapi.go" -kube::util::go_install_from_commit github.com/kubernetes/repo-infra/kazel d651a70c51ec9a450135ff08ea045d857a6be014 +# The git commit sha1s here should match the values in $KUBE_ROOT/WORKSPACE. +kube::util::go_install_from_commit github.com/kubernetes/repo-infra/kazel e9d1a126ef355ff5d38e20612c889b07728225a4 +kube::util::go_install_from_commit github.com/bazelbuild/rules_go/go/tools/gazelle/gazelle 82483596ec203eb9c1849937636f4cbed83733eb +gazelle fix -build_file_name=BUILD,BUILD.bazel -external=vendored -mode=fix -repo_root="$(kube::realpath ${KUBE_ROOT})" kazel -root="$(kube::realpath ${KUBE_ROOT})" diff --git a/hack/verify-bazel.sh b/hack/verify-bazel.sh index 4757a1eaf8e..07a3bd7ecab 100755 --- a/hack/verify-bazel.sh +++ b/hack/verify-bazel.sh @@ -24,9 +24,16 @@ source "${KUBE_ROOT}/hack/lib/init.sh" # TODO(spxtr): Remove this line once Bazel is the only way to build. rm -f "${KUBE_ROOT}/pkg/generated/openapi/zz_generated.openapi.go" -kube::util::go_install_from_commit github.com/kubernetes/repo-infra/kazel d651a70c51ec9a450135ff08ea045d857a6be014 +# The git commit sha1s here should match the values in $KUBE_ROOT/WORKSPACE. +kube::util::go_install_from_commit github.com/kubernetes/repo-infra/kazel e9d1a126ef355ff5d38e20612c889b07728225a4 +kube::util::go_install_from_commit github.com/bazelbuild/rules_go/go/tools/gazelle/gazelle 82483596ec203eb9c1849937636f4cbed83733eb -if ! kazel -validate -print-diff -root="$(kube::realpath ${KUBE_ROOT})" ; then +gazelle_diff=$(gazelle fix -build_file_name=BUILD,BUILD.bazel -external=vendored -mode=diff -repo_root="$(kube::realpath ${KUBE_ROOT})") +kazel_diff=$(kazel -dry-run -print-diff -root="$(kube::realpath ${KUBE_ROOT})") + +if [[ -n "${gazelle_diff}" || -n "${kazel_diff}" ]]; then + echo "${gazelle_diff}" + echo "${kazel_diff}" echo echo "Run ./hack/update-bazel.sh" exit 1 diff --git a/pkg/generated/openapi/BUILD b/pkg/generated/openapi/BUILD index 280367f267b..b7104b28ce3 100644 --- a/pkg/generated/openapi/BUILD +++ b/pkg/generated/openapi/BUILD @@ -1,3 +1,6 @@ +# doc.go is managed by kazel, so gazelle should ignore it. +# gazelle:exclude doc.go + package(default_visibility = ["//visibility:public"]) load("//pkg/generated/openapi:def.bzl", "openapi_library") From cf55f9ed45e6df2431d47cfc5b9c9b30758527f1 Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 9 Aug 2017 15:45:29 -0700 Subject: [PATCH 180/183] Autogenerate BUILD files --- cmd/kubectl/BUILD | 1 + cmd/kubelet/app/BUILD | 17 ++- federation/apis/federation/v1beta1/BUILD | 6 + hack/BUILD | 1 + pkg/api/BUILD | 2 +- pkg/api/v1/BUILD | 2 +- pkg/apis/abac/v0/BUILD | 2 +- pkg/apis/abac/v1beta1/BUILD | 2 +- pkg/apis/apps/v1beta1/BUILD | 2 +- pkg/apis/apps/v1beta2/BUILD | 2 +- pkg/apis/autoscaling/v1/BUILD | 2 +- pkg/apis/batch/v1/BUILD | 2 +- pkg/apis/batch/v2alpha1/BUILD | 2 +- pkg/apis/extensions/v1beta1/BUILD | 2 +- pkg/kubectl/cmd/testdata/edit/BUILD | 2 + pkg/kubectl/cmd/util/jsonmerge/BUILD | 1 + pkg/kubectl/cmd/util/openapi/BUILD | 2 +- pkg/kubectl/util/BUILD | 7 +- pkg/kubectl/util/term/BUILD | 7 +- pkg/kubelet/BUILD | 7 +- pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD | 6 + pkg/kubelet/cadvisor/BUILD | 58 ++++++---- pkg/kubelet/cm/BUILD | 104 +++++++++++------- pkg/kubelet/cm/util/BUILD | 20 +++- pkg/kubelet/config/BUILD | 33 ++++-- pkg/kubelet/container/BUILD | 19 +++- pkg/kubelet/dockershim/BUILD | 28 ++++- pkg/kubelet/dockershim/cm/BUILD | 32 ++++-- pkg/kubelet/envvars/BUILD | 2 +- pkg/kubelet/eviction/BUILD | 17 ++- pkg/kubelet/network/cni/BUILD | 42 ++++--- pkg/kubelet/network/kubenet/BUILD | 89 +++++++++------ pkg/kubelet/util/BUILD | 22 +++- pkg/printers/BUILD | 2 +- pkg/proxy/userspace/BUILD | 7 +- pkg/security/apparmor/BUILD | 1 + pkg/serviceaccount/BUILD | 2 +- pkg/util/bandwidth/BUILD | 39 +++++-- pkg/util/flock/BUILD | 22 +++- pkg/util/iptables/BUILD | 43 +++++--- pkg/util/mount/BUILD | 32 ++++-- pkg/util/oom/BUILD | 34 ++++-- pkg/util/procfs/BUILD | 34 ++++-- pkg/util/resourcecontainer/BUILD | 20 +++- pkg/util/rlimit/BUILD | 16 ++- pkg/util/selinux/BUILD | 16 ++- pkg/util/term/BUILD | 9 +- pkg/volume/BUILD | 27 +++-- pkg/volume/empty_dir/BUILD | 47 +++++--- pkg/volume/host_path/BUILD | 32 ++++-- pkg/volume/util/BUILD | 46 ++++++-- .../authorizer/rbac/bootstrappolicy/BUILD | 3 +- .../src/k8s.io/api/admission/v1alpha1/BUILD | 6 + .../api/admissionregistration/v1alpha1/BUILD | 6 + staging/src/k8s.io/api/apps/v1beta1/BUILD | 6 + staging/src/k8s.io/api/apps/v1beta2/BUILD | 6 + .../src/k8s.io/api/authentication/v1/BUILD | 6 + .../k8s.io/api/authentication/v1beta1/BUILD | 6 + staging/src/k8s.io/api/authorization/v1/BUILD | 6 + .../k8s.io/api/authorization/v1beta1/BUILD | 6 + staging/src/k8s.io/api/autoscaling/v1/BUILD | 6 + .../src/k8s.io/api/autoscaling/v2alpha1/BUILD | 6 + staging/src/k8s.io/api/batch/v1/BUILD | 6 + staging/src/k8s.io/api/batch/v2alpha1/BUILD | 6 + .../src/k8s.io/api/certificates/v1beta1/BUILD | 6 + staging/src/k8s.io/api/core/v1/BUILD | 6 + .../src/k8s.io/api/extensions/v1beta1/BUILD | 6 + .../src/k8s.io/api/imagepolicy/v1alpha1/BUILD | 6 + staging/src/k8s.io/api/networking/v1/BUILD | 6 + staging/src/k8s.io/api/policy/v1beta1/BUILD | 6 + staging/src/k8s.io/api/rbac/v1/BUILD | 6 + staging/src/k8s.io/api/rbac/v1alpha1/BUILD | 6 + staging/src/k8s.io/api/rbac/v1beta1/BUILD | 6 + .../src/k8s.io/api/scheduling/v1alpha1/BUILD | 6 + .../src/k8s.io/api/settings/v1alpha1/BUILD | 6 + staging/src/k8s.io/api/storage/v1/BUILD | 6 + staging/src/k8s.io/api/storage/v1beta1/BUILD | 6 + .../pkg/apis/apiextensions/v1beta1/BUILD | 6 + .../apimachinery/pkg/api/resource/BUILD | 6 + .../apimachinery/pkg/apis/meta/v1/BUILD | 6 + .../apimachinery/pkg/apis/meta/v1alpha1/BUILD | 6 + .../pkg/apis/testapigroup/v1/BUILD | 6 + .../src/k8s.io/apimachinery/pkg/runtime/BUILD | 6 + .../apimachinery/pkg/runtime/schema/BUILD | 6 + .../k8s.io/apimachinery/pkg/util/intstr/BUILD | 6 + .../apiserver/pkg/apis/audit/v1alpha1/BUILD | 6 + .../apiserver/pkg/apis/example/v1/BUILD | 6 + .../k8s.io/apiserver/pkg/server/options/BUILD | 1 + staging/src/k8s.io/client-go/util/cert/BUILD | 1 + .../pkg/apis/apiregistration/v1beta1/BUILD | 6 + .../pkg/apis/custom_metrics/v1alpha1/BUILD | 6 + .../metrics/pkg/apis/metrics/v1alpha1/BUILD | 6 + test/e2e/generated/BUILD | 2 +- test/e2e_node/BUILD | 78 +++++++------ third_party/forked/etcd221/pkg/fileutil/BUILD | 12 +- third_party/forked/etcd221/wal/walpb/BUILD | 6 + third_party/forked/etcd237/pkg/fileutil/BUILD | 15 ++- third_party/forked/etcd237/wal/walpb/BUILD | 6 + .../bitbucket.org/bertimus9/systemstat/BUILD | 8 +- vendor/github.com/Azure/go-ansiterm/BUILD | 5 +- .../Azure/go-ansiterm/winterm/BUILD | 40 +++++++ vendor/github.com/Microsoft/go-winio/BUILD | 19 +++- vendor/github.com/Sirupsen/logrus/BUILD | 17 ++- .../aws/aws-sdk-go/aws/request/BUILD | 1 + vendor/github.com/boltdb/bolt/BUILD | 18 ++- .../containernetworking/cni/pkg/invoke/BUILD | 14 ++- .../github.com/coreos/etcd/auth/authpb/BUILD | 6 + .../coreos/etcd/etcdserver/etcdserverpb/BUILD | 10 ++ .../coreos/etcd/lease/leasepb/BUILD | 6 + .../github.com/coreos/etcd/mvcc/backend/BUILD | 9 +- .../github.com/coreos/etcd/mvcc/mvccpb/BUILD | 6 + .../github.com/coreos/etcd/pkg/fileutil/BUILD | 23 +++- .../github.com/coreos/etcd/pkg/netutil/BUILD | 20 +++- .../github.com/coreos/etcd/pkg/runtime/BUILD | 9 +- .../github.com/coreos/etcd/raft/raftpb/BUILD | 6 + .../github.com/coreos/etcd/snap/snappb/BUILD | 6 + vendor/github.com/coreos/etcd/wal/BUILD | 7 +- vendor/github.com/coreos/etcd/wal/walpb/BUILD | 6 + .../github.com/coreos/go-systemd/util/BUILD | 7 +- vendor/github.com/coreos/pkg/capnslog/BUILD | 7 +- vendor/github.com/coreos/pkg/dlopen/BUILD | 12 +- .../github.com/coreos/rkt/api/v1alpha/BUILD | 6 + .../github.com/daviddengcn/go-colortext/BUILD | 7 +- .../docker/docker/api/types/container/BUILD | 7 +- vendor/github.com/docker/docker/client/BUILD | 14 ++- .../github.com/docker/docker/pkg/mount/BUILD | 21 +++- .../docker/docker/pkg/symlink/BUILD | 16 ++- .../github.com/docker/docker/pkg/system/BUILD | 48 ++++++-- .../github.com/docker/docker/pkg/term/BUILD | 23 +++- .../docker/docker/pkg/term/windows/BUILD | 18 ++- .../docker/docker/pkg/tlsconfig/BUILD | 6 +- .../github.com/docker/engine-api/client/BUILD | 14 ++- .../client/transport/cancellable/BUILD | 1 + .../docker/engine-api/types/container/BUILD | 7 +- .../docker/go-connections/sockets/BUILD | 24 +++- .../docker/go-connections/tlsconfig/BUILD | 1 + vendor/github.com/fsnotify/fsnotify/BUILD | 27 ++++- vendor/github.com/godbus/dbus/BUILD | 13 ++- .../github.com/gogo/protobuf/gogoproto/BUILD | 6 + .../golang/protobuf/ptypes/any/BUILD | 6 + .../golang/protobuf/ptypes/duration/BUILD | 6 + .../golang/protobuf/ptypes/timestamp/BUILD | 6 + vendor/github.com/google/cadvisor/fs/BUILD | 25 +++-- .../cadvisor/utils/cpuload/netlink/BUILD | 3 +- .../certificate-transparency/go/x509/BUILD | 27 ++++- .../googleapis/gnostic/OpenAPIv2/BUILD | 6 + .../googleapis/gnostic/extensions/BUILD | 6 + .../grpc-gateway/runtime/internal/BUILD | 6 + .../inconshreveable/mousetrap/BUILD | 10 +- vendor/github.com/kardianos/osext/BUILD | 14 ++- vendor/github.com/kr/pty/BUILD | 20 +++- .../libopenstorage/openstorage/api/BUILD | 6 + vendor/github.com/miekg/dns/BUILD | 12 +- .../onsi/ginkgo/ginkgo/interrupthandler/BUILD | 14 ++- .../onsi/ginkgo/ginkgo/testsuite/BUILD | 1 + .../onsi/ginkgo/internal/remote/BUILD | 14 ++- .../stenographer/support/go-colorable/BUILD | 13 ++- .../stenographer/support/go-isatty/BUILD | 14 ++- .../opencontainers/runc/libcontainer/BUILD | 91 ++++++++------- .../runc/libcontainer/apparmor/BUILD | 1 + .../runc/libcontainer/cgroups/BUILD | 24 ++-- .../runc/libcontainer/cgroups/fs/BUILD | 52 +++++---- .../runc/libcontainer/cgroups/systemd/BUILD | 23 +++- .../runc/libcontainer/configs/BUILD | 22 +++- .../runc/libcontainer/criurpc/BUILD | 6 + .../runc/libcontainer/keys/BUILD | 7 +- .../runc/libcontainer/selinux/BUILD | 14 ++- .../runc/libcontainer/system/BUILD | 21 +++- .../runc/libcontainer/user/BUILD | 12 +- vendor/github.com/pkg/sftp/BUILD | 25 ++++- .../client_golang/prometheus/promhttp/BUILD | 1 + .../seccomp/libseccomp-golang/BUILD | 17 ++- vendor/github.com/spf13/afero/BUILD | 7 +- vendor/github.com/spf13/cobra/BUILD | 16 ++- vendor/github.com/storageos/go-api/BUILD | 14 ++- .../syndtr/gocapability/capability/BUILD | 11 +- vendor/github.com/ugorji/go/codec/BUILD | 2 + vendor/github.com/vishvananda/netlink/BUILD | 25 +++-- .../github.com/vishvananda/netlink/nl/BUILD | 23 ++-- .../photon-controller-go-sdk/SSPI/BUILD | 9 +- .../photon/lightwave/BUILD | 13 ++- vendor/golang.org/x/crypto/curve25519/BUILD | 39 +++++-- vendor/golang.org/x/crypto/poly1305/BUILD | 19 +++- .../golang.org/x/crypto/salsa20/salsa/BUILD | 19 +++- vendor/golang.org/x/crypto/ssh/terminal/BUILD | 17 ++- vendor/golang.org/x/exp/inotify/BUILD | 7 +- vendor/golang.org/x/net/context/BUILD | 1 + vendor/golang.org/x/net/context/ctxhttp/BUILD | 5 +- vendor/golang.org/x/net/http2/BUILD | 4 + vendor/golang.org/x/sys/unix/BUILD | 73 ++++++++---- vendor/golang.org/x/sys/windows/BUILD | 24 +++- vendor/golang.org/x/text/language/BUILD | 1 + .../x/tools/container/intsets/BUILD | 19 +++- .../google.golang.org/grpc/credentials/BUILD | 1 + vendor/google.golang.org/grpc/transport/BUILD | 2 + vendor/gopkg.in/gcfg.v1/BUILD | 1 + vendor/gopkg.in/natefinch/lumberjack.v2/BUILD | 9 +- 197 files changed, 2140 insertions(+), 591 deletions(-) create mode 100644 vendor/github.com/Azure/go-ansiterm/winterm/BUILD diff --git a/cmd/kubectl/BUILD b/cmd/kubectl/BUILD index 3d6c79e184e..82c5a2bae74 100644 --- a/cmd/kubectl/BUILD +++ b/cmd/kubectl/BUILD @@ -27,6 +27,7 @@ go_library( name = "go_default_library", srcs = ["kubectl.go"], tags = ["automanaged"], + visibility = ["//visibility:private"], deps = ["//cmd/kubectl/app:go_default_library"], ) diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index 77403348bc0..a5515a3dfb5 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -22,8 +22,13 @@ go_library( "auth.go", "plugins.go", "server.go", - "server_linux.go", - ], + "server_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "server_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//cmd/kubelet/app/options:go_default_library", @@ -98,7 +103,6 @@ go_library( "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", - "//vendor/golang.org/x/exp/inotify:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", @@ -119,7 +123,12 @@ go_library( "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/exp/inotify:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/federation/apis/federation/v1beta1/BUILD b/federation/apis/federation/v1beta1/BUILD index 1044467c914..acb9fb4365b 100644 --- a/federation/apis/federation/v1beta1/BUILD +++ b/federation/apis/federation/v1beta1/BUILD @@ -49,3 +49,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/hack/BUILD b/hack/BUILD index a4c14ab7e8f..5c171e42a71 100644 --- a/hack/BUILD +++ b/hack/BUILD @@ -65,6 +65,7 @@ go_binary( go_test( name = "go_default_test", srcs = ["e2e_test.go"], + data = glob(["testdata/**"]), library = ":go_default_library", tags = ["automanaged"], ) diff --git a/pkg/api/BUILD b/pkg/api/BUILD index 4c15747dd47..19739cb6fa9 100644 --- a/pkg/api/BUILD +++ b/pkg/api/BUILD @@ -61,7 +61,7 @@ go_test( ], tags = ["automanaged"], deps = [ - "//pkg/api:go_default_library", + ":go_default_library", "//pkg/api/testapi:go_default_library", "//pkg/api/testing:go_default_library", "//pkg/api/v1:go_default_library", diff --git a/pkg/api/v1/BUILD b/pkg/api/v1/BUILD index 7f46d85e2d1..ad92be4ef49 100644 --- a/pkg/api/v1/BUILD +++ b/pkg/api/v1/BUILD @@ -46,10 +46,10 @@ go_test( ], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/api/testing/compat:go_default_library", - "//pkg/api/v1:go_default_library", "//pkg/api/validation:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/pkg/apis/abac/v0/BUILD b/pkg/apis/abac/v0/BUILD index 12a9c67c51d..6588b7540dd 100644 --- a/pkg/apis/abac/v0/BUILD +++ b/pkg/apis/abac/v0/BUILD @@ -32,8 +32,8 @@ go_test( srcs = ["conversion_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/apis/abac:go_default_library", - "//pkg/apis/abac/v0:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", ], ) diff --git a/pkg/apis/abac/v1beta1/BUILD b/pkg/apis/abac/v1beta1/BUILD index e6ed5eb772c..719a4d03625 100644 --- a/pkg/apis/abac/v1beta1/BUILD +++ b/pkg/apis/abac/v1beta1/BUILD @@ -34,8 +34,8 @@ go_test( srcs = ["conversion_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/apis/abac:go_default_library", - "//pkg/apis/abac/v1beta1:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", ], ) diff --git a/pkg/apis/apps/v1beta1/BUILD b/pkg/apis/apps/v1beta1/BUILD index 95414092113..a4cc4dd1ea7 100644 --- a/pkg/apis/apps/v1beta1/BUILD +++ b/pkg/apis/apps/v1beta1/BUILD @@ -52,10 +52,10 @@ go_test( srcs = ["defaults_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/apis/apps/install:go_default_library", - "//pkg/apis/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/pkg/apis/apps/v1beta2/BUILD b/pkg/apis/apps/v1beta2/BUILD index 447128368a4..3930361cfed 100644 --- a/pkg/apis/apps/v1beta2/BUILD +++ b/pkg/apis/apps/v1beta2/BUILD @@ -52,10 +52,10 @@ go_test( srcs = ["defaults_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/apis/apps/install:go_default_library", - "//pkg/apis/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/pkg/apis/autoscaling/v1/BUILD b/pkg/apis/autoscaling/v1/BUILD index 3d951b6da7f..a9e819e3397 100644 --- a/pkg/apis/autoscaling/v1/BUILD +++ b/pkg/apis/autoscaling/v1/BUILD @@ -37,10 +37,10 @@ go_test( srcs = ["defaults_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/apis/autoscaling/install:go_default_library", - "//pkg/apis/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/pkg/apis/batch/v1/BUILD b/pkg/apis/batch/v1/BUILD index 0a73fab2186..f57f60a0cdf 100644 --- a/pkg/apis/batch/v1/BUILD +++ b/pkg/apis/batch/v1/BUILD @@ -37,10 +37,10 @@ go_test( srcs = ["defaults_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/apis/batch/install:go_default_library", - "//pkg/apis/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/batch/v2alpha1/BUILD b/pkg/apis/batch/v2alpha1/BUILD index 8dc368540f8..06e1b9f815b 100644 --- a/pkg/apis/batch/v2alpha1/BUILD +++ b/pkg/apis/batch/v2alpha1/BUILD @@ -38,10 +38,10 @@ go_test( srcs = ["defaults_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/apis/batch/install:go_default_library", - "//pkg/apis/batch/v2alpha1:go_default_library", "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", ], diff --git a/pkg/apis/extensions/v1beta1/BUILD b/pkg/apis/extensions/v1beta1/BUILD index 050d7366545..0d010002e58 100644 --- a/pkg/apis/extensions/v1beta1/BUILD +++ b/pkg/apis/extensions/v1beta1/BUILD @@ -39,10 +39,10 @@ go_test( srcs = ["defaults_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/apis/extensions/install:go_default_library", - "//pkg/apis/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/pkg/kubectl/cmd/testdata/edit/BUILD b/pkg/kubectl/cmd/testdata/edit/BUILD index e97742e3f02..2fc4003611d 100644 --- a/pkg/kubectl/cmd/testdata/edit/BUILD +++ b/pkg/kubectl/cmd/testdata/edit/BUILD @@ -10,12 +10,14 @@ go_binary( name = "edit", library = ":go_default_library", tags = ["automanaged"], + visibility = ["//visibility:public"], ) go_library( name = "go_default_library", srcs = ["record.go"], tags = ["automanaged"], + visibility = ["//visibility:private"], deps = ["//vendor/gopkg.in/yaml.v2:go_default_library"], ) diff --git a/pkg/kubectl/cmd/util/jsonmerge/BUILD b/pkg/kubectl/cmd/util/jsonmerge/BUILD index f606fa21015..cf59579f887 100644 --- a/pkg/kubectl/cmd/util/jsonmerge/BUILD +++ b/pkg/kubectl/cmd/util/jsonmerge/BUILD @@ -9,6 +9,7 @@ go_library( name = "go_default_library", srcs = ["jsonmerge.go"], tags = ["automanaged"], + visibility = ["//visibility:public"], deps = [ "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/kubectl/cmd/util/openapi/BUILD b/pkg/kubectl/cmd/util/openapi/BUILD index eb926ee7e97..4e3bbb3e4d4 100644 --- a/pkg/kubectl/cmd/util/openapi/BUILD +++ b/pkg/kubectl/cmd/util/openapi/BUILD @@ -43,7 +43,7 @@ go_test( data = ["//api/openapi-spec:swagger-spec"], tags = ["automanaged"], deps = [ - "//pkg/kubectl/cmd/util/openapi:go_default_library", + ":go_default_library", "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", "//vendor/github.com/googleapis/gnostic/compiler:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", diff --git a/pkg/kubectl/util/BUILD b/pkg/kubectl/util/BUILD index ee530bdf5d7..b17be99f25c 100644 --- a/pkg/kubectl/util/BUILD +++ b/pkg/kubectl/util/BUILD @@ -10,7 +10,12 @@ go_library( srcs = [ "umask.go", "util.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "umask_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], visibility = ["//build/visible_to:pkg_kubectl_util_CONSUMERS"], deps = [ diff --git a/pkg/kubectl/util/term/BUILD b/pkg/kubectl/util/term/BUILD index 2a22b3ead7f..526b4d96076 100644 --- a/pkg/kubectl/util/term/BUILD +++ b/pkg/kubectl/util/term/BUILD @@ -15,7 +15,12 @@ go_library( "resizeevents.go", "term.go", "term_writer.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "resizeevents_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/util/interrupt:go_default_library", diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index 495036c105a..ffc6c1dbfdb 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -162,7 +162,12 @@ go_test( "pod_workers_test.go", "reason_cache_test.go", "runonce_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "kubelet_pods_windows_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], deps = [ diff --git a/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD b/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD index 83824989671..07e26b69b12 100644 --- a/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD +++ b/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD @@ -35,3 +35,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["api.proto"], + visibility = ["//visibility:public"], +) diff --git a/pkg/kubelet/cadvisor/BUILD b/pkg/kubelet/cadvisor/BUILD index 33996af2b99..9b227266bfe 100644 --- a/pkg/kubelet/cadvisor/BUILD +++ b/pkg/kubelet/cadvisor/BUILD @@ -11,41 +11,61 @@ load( go_library( name = "go_default_library", srcs = [ - "cadvisor_linux.go", + "cadvisor_unsupported.go", "doc.go", "types.go", "util.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cadvisor_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "cadvisor_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//pkg/kubelet/types:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/google/cadvisor/cache/memory:go_default_library", - "//vendor/github.com/google/cadvisor/container:go_default_library", "//vendor/github.com/google/cadvisor/events:go_default_library", - "//vendor/github.com/google/cadvisor/fs:go_default_library", - "//vendor/github.com/google/cadvisor/http:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/info/v2:go_default_library", - "//vendor/github.com/google/cadvisor/manager:go_default_library", - "//vendor/github.com/google/cadvisor/metrics:go_default_library", - "//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/kubelet/types:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/google/cadvisor/cache/memory:go_default_library", + "//vendor/github.com/google/cadvisor/container:go_default_library", + "//vendor/github.com/google/cadvisor/fs:go_default_library", + "//vendor/github.com/google/cadvisor/http:go_default_library", + "//vendor/github.com/google/cadvisor/manager:go_default_library", + "//vendor/github.com/google/cadvisor/metrics:go_default_library", + "//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", - srcs = ["cadvisor_linux_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cadvisor_linux_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], - deps = [ - "//pkg/kubelet/types:go_default_library", - "//vendor/github.com/google/cadvisor/info/v1:go_default_library", - "//vendor/github.com/google/cadvisor/metrics:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/kubelet/types:go_default_library", + "//vendor/github.com/google/cadvisor/info/v1:go_default_library", + "//vendor/github.com/google/cadvisor/metrics:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/cm/BUILD b/pkg/kubelet/cm/BUILD index 98455c5adf6..e14eb9ec1cf 100644 --- a/pkg/kubelet/cm/BUILD +++ b/pkg/kubelet/cm/BUILD @@ -11,70 +11,94 @@ load( go_library( name = "go_default_library", srcs = [ - "cgroup_manager_linux.go", + "cgroup_manager_unsupported.go", "container_manager.go", - "container_manager_linux.go", "container_manager_stub.go", - "helpers_linux.go", - "node_container_manager.go", - "pod_container_manager_linux.go", + "container_manager_unsupported.go", + "helpers_unsupported.go", "pod_container_manager_stub.go", - "qos_container_manager_linux.go", + "pod_container_manager_unsupported.go", "types.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cgroup_manager_linux.go", + "container_manager_linux.go", + "helpers_linux.go", + "node_container_manager.go", + "pod_container_manager_linux.go", + "qos_container_manager_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "container_manager_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//pkg/api/v1/helper/qos:go_default_library", - "//pkg/api/v1/resource:go_default_library", "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", - "//pkg/kubelet/cm/util:go_default_library", - "//pkg/kubelet/events:go_default_library", "//pkg/kubelet/eviction/api:go_default_library", - "//pkg/kubelet/metrics:go_default_library", - "//pkg/kubelet/qos:go_default_library", - "//pkg/util/file:go_default_library", "//pkg/util/mount:go_default_library", - "//pkg/util/oom:go_default_library", - "//pkg/util/procfs:go_default_library", - "//pkg/util/sysctl:go_default_library", - "//pkg/util/version:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/google/cadvisor/info/v2:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/api/v1/helper/qos:go_default_library", + "//pkg/api/v1/resource:go_default_library", + "//pkg/kubelet/cm/util:go_default_library", + "//pkg/kubelet/events:go_default_library", + "//pkg/kubelet/metrics:go_default_library", + "//pkg/kubelet/qos:go_default_library", + "//pkg/util/file:go_default_library", + "//pkg/util/oom:go_default_library", + "//pkg/util/procfs:go_default_library", + "//pkg/util/sysctl:go_default_library", + "//pkg/util/version:go_default_library", + "//vendor/github.com/google/cadvisor/info/v2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", srcs = [ - "cgroup_manager_linux_test.go", - "cgroup_manager_test.go", - "container_manager_linux_test.go", - "helpers_linux_test.go", - "node_container_manager_test.go", - ], + "container_manager_unsupported_test.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cgroup_manager_linux_test.go", + "cgroup_manager_test.go", + "container_manager_linux_test.go", + "helpers_linux_test.go", + "node_container_manager_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], deps = [ - "//pkg/apis/componentconfig:go_default_library", - "//pkg/kubelet/eviction/api:go_default_library", "//pkg/util/mount:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/github.com/stretchr/testify/require:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/apis/componentconfig:go_default_library", + "//pkg/kubelet/eviction/api:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/github.com/stretchr/testify/require:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/cm/util/BUILD b/pkg/kubelet/cm/util/BUILD index 36688c5753c..9d5d79a2ae1 100644 --- a/pkg/kubelet/cm/util/BUILD +++ b/pkg/kubelet/cm/util/BUILD @@ -9,12 +9,22 @@ load( go_library( name = "go_default_library", - srcs = ["cgroups_linux.go"], + srcs = [ + "cgroups_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cgroups_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = [ - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/config/BUILD b/pkg/kubelet/config/BUILD index 7ea9a36b8e3..ade26a92731 100644 --- a/pkg/kubelet/config/BUILD +++ b/pkg/kubelet/config/BUILD @@ -16,10 +16,15 @@ go_library( "config.go", "doc.go", "file.go", - "file_linux.go", + "file_unsupported.go", "http.go", "sources.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "file_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", @@ -35,7 +40,6 @@ go_library( "//pkg/util/config:go_default_library", "//pkg/util/hash:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/exp/inotify:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", @@ -48,7 +52,12 @@ go_library( "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/exp/inotify:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( @@ -57,9 +66,13 @@ go_test( "apiserver_test.go", "common_test.go", "config_test.go", - "file_linux_test.go", "http_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "file_linux_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], deps = [ @@ -74,13 +87,17 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", "//vendor/k8s.io/client-go/util/testing:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/container/BUILD b/pkg/kubelet/container/BUILD index 473d2ca1feb..ea731709e2c 100644 --- a/pkg/kubelet/container/BUILD +++ b/pkg/kubelet/container/BUILD @@ -16,14 +16,19 @@ go_library( "container_reference_manager.go", "helpers.go", "os.go", - "pty_linux.go", + "pty_unsupported.go", "ref.go", "resize.go", "runtime.go", "runtime_cache.go", "runtime_cache_fake.go", "sync_result.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "pty_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", @@ -34,7 +39,6 @@ go_library( "//pkg/volume:go_default_library", "//third_party/forked/golang/expansion:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/kr/pty:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -45,7 +49,12 @@ go_library( "//vendor/k8s.io/client-go/tools/reference:go_default_library", "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/kr/pty:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( @@ -73,7 +82,7 @@ go_test( srcs = ["runtime_cache_test.go"], tags = ["automanaged"], deps = [ - "//pkg/kubelet/container:go_default_library", + ":go_default_library", "//pkg/kubelet/container/testing:go_default_library", ], ) diff --git a/pkg/kubelet/dockershim/BUILD b/pkg/kubelet/dockershim/BUILD index d95675cd271..20f6a0ecbbb 100644 --- a/pkg/kubelet/dockershim/BUILD +++ b/pkg/kubelet/dockershim/BUILD @@ -24,11 +24,19 @@ go_library( "docker_streaming.go", "exec.go", "helpers.go", - "helpers_linux.go", + "helpers_unsupported.go", "naming.go", "security_context.go", "selinux_util.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "helpers_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "helpers_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", @@ -82,12 +90,16 @@ go_test( "docker_legacy_test.go", "docker_sandbox_test.go", "docker_service_test.go", - "helpers_linux_test.go", "helpers_test.go", "naming_test.go", "security_context_test.go", "selinux_util_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "helpers_linux_test.go", + ], + "//conditions:default": [], + }), data = [ "fixtures/seccomp/sub/subtest", "fixtures/seccomp/test", @@ -114,9 +126,13 @@ go_test( "//vendor/github.com/golang/mock/gomock:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/k8s.io/api/core/v1:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/dockershim/cm/BUILD b/pkg/kubelet/dockershim/cm/BUILD index 426cc237d68..ddfa24b6513 100644 --- a/pkg/kubelet/dockershim/cm/BUILD +++ b/pkg/kubelet/dockershim/cm/BUILD @@ -11,19 +11,31 @@ go_library( name = "go_default_library", srcs = [ "container_manager.go", - "container_manager_linux.go", - ], + "container_manager_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "container_manager_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "container_manager_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//pkg/kubelet/cm:go_default_library", "//pkg/kubelet/dockershim/libdocker:go_default_library", - "//pkg/kubelet/qos:go_default_library", - "//pkg/util/version:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/kubelet/cm:go_default_library", + "//pkg/kubelet/qos:go_default_library", + "//pkg/util/version:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/envvars/BUILD b/pkg/kubelet/envvars/BUILD index 6b710f1a784..6bddc057e13 100644 --- a/pkg/kubelet/envvars/BUILD +++ b/pkg/kubelet/envvars/BUILD @@ -26,7 +26,7 @@ go_test( srcs = ["envvars_test.go"], tags = ["automanaged"], deps = [ - "//pkg/kubelet/envvars:go_default_library", + ":go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ], diff --git a/pkg/kubelet/eviction/BUILD b/pkg/kubelet/eviction/BUILD index 27639e09415..53fa17d4aa9 100644 --- a/pkg/kubelet/eviction/BUILD +++ b/pkg/kubelet/eviction/BUILD @@ -40,9 +40,14 @@ go_library( "doc.go", "eviction_manager.go", "helpers.go", - "threshold_notifier_linux.go", + "threshold_notifier_unsupported.go", "types.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "threshold_notifier_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", @@ -59,7 +64,6 @@ go_library( "//pkg/kubelet/util/format:go_default_library", "//pkg/quota/evaluator/core:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -68,7 +72,12 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/network/cni/BUILD b/pkg/kubelet/network/cni/BUILD index 01b57ce3fe6..f12475b3b4f 100644 --- a/pkg/kubelet/network/cni/BUILD +++ b/pkg/kubelet/network/cni/BUILD @@ -25,25 +25,33 @@ go_library( go_test( name = "go_default_test", - srcs = ["cni_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cni_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], - deps = [ - "//pkg/apis/componentconfig:go_default_library", - "//pkg/kubelet/container:go_default_library", - "//pkg/kubelet/container/testing:go_default_library", - "//pkg/kubelet/network:go_default_library", - "//pkg/kubelet/network/cni/testing:go_default_library", - "//pkg/kubelet/network/hostport:go_default_library", - "//pkg/kubelet/network/testing:go_default_library", - "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", - "//vendor/github.com/stretchr/testify/mock:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/util/testing:go_default_library", - "//vendor/k8s.io/utils/exec:go_default_library", - "//vendor/k8s.io/utils/exec/testing:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/apis/componentconfig:go_default_library", + "//pkg/kubelet/container:go_default_library", + "//pkg/kubelet/container/testing:go_default_library", + "//pkg/kubelet/network:go_default_library", + "//pkg/kubelet/network/cni/testing:go_default_library", + "//pkg/kubelet/network/hostport:go_default_library", + "//pkg/kubelet/network/testing:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", + "//vendor/github.com/stretchr/testify/mock:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/util/testing:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/exec/testing:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/network/kubenet/BUILD b/pkg/kubelet/network/kubenet/BUILD index 691bdeda79e..6330488c24b 100644 --- a/pkg/kubelet/network/kubenet/BUILD +++ b/pkg/kubelet/network/kubenet/BUILD @@ -12,53 +12,70 @@ go_library( name = "go_default_library", srcs = [ "kubenet.go", - "kubenet_linux.go", - ], + "kubenet_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "kubenet_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/network:go_default_library", - "//pkg/kubelet/network/hostport:go_default_library", - "//pkg/util/bandwidth:go_default_library", - "//pkg/util/dbus:go_default_library", - "//pkg/util/ebtables:go_default_library", - "//pkg/util/iptables:go_default_library", - "//pkg/util/sysctl:go_default_library", - "//vendor/github.com/containernetworking/cni/libcni:go_default_library", - "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", - "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/vishvananda/netlink:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/utils/exec:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/kubelet/network/hostport:go_default_library", + "//pkg/util/bandwidth:go_default_library", + "//pkg/util/dbus:go_default_library", + "//pkg/util/ebtables:go_default_library", + "//pkg/util/iptables:go_default_library", + "//pkg/util/sysctl:go_default_library", + "//vendor/github.com/containernetworking/cni/libcni:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", + "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/vishvananda/netlink:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", - srcs = ["kubenet_linux_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "kubenet_linux_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], - deps = [ - "//pkg/apis/componentconfig:go_default_library", - "//pkg/kubelet/container:go_default_library", - "//pkg/kubelet/network:go_default_library", - "//pkg/kubelet/network/cni/testing:go_default_library", - "//pkg/kubelet/network/hostport/testing:go_default_library", - "//pkg/kubelet/network/testing:go_default_library", - "//pkg/util/bandwidth:go_default_library", - "//pkg/util/iptables/testing:go_default_library", - "//pkg/util/sysctl/testing:go_default_library", - "//vendor/github.com/stretchr/testify/assert:go_default_library", - "//vendor/github.com/stretchr/testify/mock:go_default_library", - "//vendor/k8s.io/utils/exec:go_default_library", - "//vendor/k8s.io/utils/exec/testing:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/apis/componentconfig:go_default_library", + "//pkg/kubelet/container:go_default_library", + "//pkg/kubelet/network:go_default_library", + "//pkg/kubelet/network/cni/testing:go_default_library", + "//pkg/kubelet/network/hostport/testing:go_default_library", + "//pkg/kubelet/network/testing:go_default_library", + "//pkg/util/bandwidth:go_default_library", + "//pkg/util/iptables/testing:go_default_library", + "//pkg/util/sysctl/testing:go_default_library", + "//vendor/github.com/stretchr/testify/assert:go_default_library", + "//vendor/github.com/stretchr/testify/mock:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/exec/testing:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/kubelet/util/BUILD b/pkg/kubelet/util/BUILD index b8942ee512c..4d201ccce35 100644 --- a/pkg/kubelet/util/BUILD +++ b/pkg/kubelet/util/BUILD @@ -21,14 +21,26 @@ go_library( srcs = [ "doc.go", "util.go", - "util_linux.go", - ], + "util_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "util_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "util_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/printers/BUILD b/pkg/printers/BUILD index cc22aa2c112..5a80dd58399 100644 --- a/pkg/printers/BUILD +++ b/pkg/printers/BUILD @@ -43,8 +43,8 @@ go_test( srcs = ["customcolumn_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", - "//pkg/printers:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/pkg/proxy/userspace/BUILD b/pkg/proxy/userspace/BUILD index 3597b329da7..30d28736484 100644 --- a/pkg/proxy/userspace/BUILD +++ b/pkg/proxy/userspace/BUILD @@ -18,7 +18,12 @@ go_library( "rlimit.go", "roundrobin.go", "udp_server.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "rlimit_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", diff --git a/pkg/security/apparmor/BUILD b/pkg/security/apparmor/BUILD index 4dbadae70ad..0326884e47b 100644 --- a/pkg/security/apparmor/BUILD +++ b/pkg/security/apparmor/BUILD @@ -13,6 +13,7 @@ go_library( srcs = [ "helpers.go", "validate.go", + "validate_disabled.go", ], tags = ["automanaged"], deps = [ diff --git a/pkg/serviceaccount/BUILD b/pkg/serviceaccount/BUILD index c0babddda4c..cf112fb6395 100644 --- a/pkg/serviceaccount/BUILD +++ b/pkg/serviceaccount/BUILD @@ -31,8 +31,8 @@ go_test( srcs = ["jwt_test.go"], tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/controller/serviceaccount:go_default_library", - "//pkg/serviceaccount:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/serviceaccount:go_default_library", diff --git a/pkg/util/bandwidth/BUILD b/pkg/util/bandwidth/BUILD index 7b8676c7f14..3454c7e1303 100644 --- a/pkg/util/bandwidth/BUILD +++ b/pkg/util/bandwidth/BUILD @@ -14,33 +14,50 @@ go_library( "doc.go", "fake_shaper.go", "interfaces.go", - "linux.go", + "unsupported.go", "utils.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/utils/exec:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", srcs = [ - "linux_test.go", "utils_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "linux_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/utils/exec:go_default_library", - "//vendor/k8s.io/utils/exec/testing:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/exec/testing:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/flock/BUILD b/pkg/util/flock/BUILD index 2d2e6b40a89..7c8093e5703 100644 --- a/pkg/util/flock/BUILD +++ b/pkg/util/flock/BUILD @@ -9,9 +9,27 @@ load( go_library( name = "go_default_library", - srcs = ["flock_unix.go"], + srcs = [ + "flock_other.go", + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "flock_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "flock_unix.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = ["//vendor/golang.org/x/sys/unix:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/iptables/BUILD b/pkg/util/iptables/BUILD index 276e464cd9b..c2fd47fdf37 100644 --- a/pkg/util/iptables/BUILD +++ b/pkg/util/iptables/BUILD @@ -13,34 +13,51 @@ go_library( srcs = [ "doc.go", "iptables.go", - "iptables_linux.go", + "iptables_unsupported.go", "save_restore.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "iptables_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/util/dbus:go_default_library", "//pkg/util/version:go_default_library", "//vendor/github.com/godbus/dbus:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", - srcs = ["iptables_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "iptables_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], - deps = [ - "//pkg/util/dbus:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/utils/exec:go_default_library", - "//vendor/k8s.io/utils/exec/testing:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/util/dbus:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/utils/exec:go_default_library", + "//vendor/k8s.io/utils/exec/testing:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/mount/BUILD b/pkg/util/mount/BUILD index 497f64c991d..ba1fd9fbc9a 100644 --- a/pkg/util/mount/BUILD +++ b/pkg/util/mount/BUILD @@ -14,25 +14,39 @@ go_library( "doc.go", "fake.go", "mount.go", - "mount_linux.go", - "nsenter_mount.go", - ], + "mount_unsupported.go", + "nsenter_mount_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "mount_linux.go", + "nsenter_mount.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", srcs = [ - "mount_linux_test.go", - "nsenter_mount_test.go", "safe_format_and_mount_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "mount_linux_test.go", + "nsenter_mount_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], deps = [ diff --git a/pkg/util/oom/BUILD b/pkg/util/oom/BUILD index 698ba71dfcf..a00dc62c5f7 100644 --- a/pkg/util/oom/BUILD +++ b/pkg/util/oom/BUILD @@ -14,21 +14,39 @@ go_library( "doc.go", "oom.go", "oom_fake.go", - "oom_linux.go", - ], + "oom_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "oom_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = [ - "//pkg/kubelet/cm/util:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/kubelet/cm/util:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", - srcs = ["oom_linux_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "oom_linux_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], - deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/stretchr/testify/assert:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/procfs/BUILD b/pkg/util/procfs/BUILD index 141c693af87..9bbeba22a5b 100644 --- a/pkg/util/procfs/BUILD +++ b/pkg/util/procfs/BUILD @@ -14,18 +14,31 @@ go_library( "doc.go", "procfs.go", "procfs_fake.go", - "procfs_linux.go", - ], + "procfs_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "procfs_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = [ - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", - srcs = ["procfs_linux_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "procfs_linux_test.go", + ], + "//conditions:default": [], + }), data = [ "example_proc_cgroup", ], @@ -33,7 +46,12 @@ go_test( tags = [ "automanaged", ], - deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/stretchr/testify/assert:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/resourcecontainer/BUILD b/pkg/util/resourcecontainer/BUILD index 0aa3a24abeb..f74cfda1170 100644 --- a/pkg/util/resourcecontainer/BUILD +++ b/pkg/util/resourcecontainer/BUILD @@ -9,12 +9,22 @@ load( go_library( name = "go_default_library", - srcs = ["resource_container_linux.go"], + srcs = [ + "resource_container_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "resource_container_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = [ - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/rlimit/BUILD b/pkg/util/rlimit/BUILD index 757e2e7da4d..7f9a594818c 100644 --- a/pkg/util/rlimit/BUILD +++ b/pkg/util/rlimit/BUILD @@ -9,9 +9,21 @@ load( go_library( name = "go_default_library", - srcs = ["rlimit_linux.go"], + srcs = [ + "rlimit_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "rlimit_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = ["//vendor/golang.org/x/sys/unix:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/selinux/BUILD b/pkg/util/selinux/BUILD index 7332ff366ba..ad1a2876430 100644 --- a/pkg/util/selinux/BUILD +++ b/pkg/util/selinux/BUILD @@ -12,10 +12,20 @@ go_library( srcs = [ "doc.go", "selinux.go", - "selinux_linux.go", - ], + "selinux_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "selinux_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = ["//vendor/github.com/opencontainers/runc/libcontainer/selinux:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/opencontainers/runc/libcontainer/selinux:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/util/term/BUILD b/pkg/util/term/BUILD index 0182b46ed25..89abf2e871a 100644 --- a/pkg/util/term/BUILD +++ b/pkg/util/term/BUILD @@ -9,7 +9,14 @@ load( go_library( name = "go_default_library", - srcs = ["setsize.go"], + srcs = [ + "setsize.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "setsize_unsupported.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/pkg/term:go_default_library", diff --git a/pkg/volume/BUILD b/pkg/volume/BUILD index dfd782201f8..fcc4f08b3ae 100644 --- a/pkg/volume/BUILD +++ b/pkg/volume/BUILD @@ -20,8 +20,13 @@ go_library( "plugins.go", "util.go", "volume.go", - "volume_linux.go", - ], + "volume_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "volume_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", @@ -68,16 +73,24 @@ go_test( go_test( name = "go_default_xtest", srcs = [ - "metrics_du_test.go", "metrics_statfs_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "metrics_du_test.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//pkg/volume:go_default_library", + ":go_default_library", "//pkg/volume/testing:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", "//vendor/k8s.io/client-go/util/testing:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/volume/empty_dir/BUILD b/pkg/volume/empty_dir/BUILD index c117c552d1a..c7667667559 100644 --- a/pkg/volume/empty_dir/BUILD +++ b/pkg/volume/empty_dir/BUILD @@ -13,8 +13,13 @@ go_library( srcs = [ "doc.go", "empty_dir.go", - "empty_dir_linux.go", - ], + "empty_dir_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "empty_dir_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", @@ -22,28 +27,40 @@ go_library( "//pkg/volume:go_default_library", "//pkg/volume/util:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", - srcs = ["empty_dir_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "empty_dir_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], - deps = [ - "//pkg/util/mount:go_default_library", - "//pkg/volume:go_default_library", - "//pkg/volume/testing:go_default_library", - "//pkg/volume/util:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/client-go/util/testing:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/util/mount:go_default_library", + "//pkg/volume:go_default_library", + "//pkg/volume/testing:go_default_library", + "//pkg/volume/util:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/client-go/util/testing:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/volume/host_path/BUILD b/pkg/volume/host_path/BUILD index ecc3b5e96b7..0d44a85eb95 100644 --- a/pkg/volume/host_path/BUILD +++ b/pkg/volume/host_path/BUILD @@ -28,20 +28,28 @@ go_library( go_test( name = "go_default_test", - srcs = ["host_path_test.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "host_path_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], - deps = [ - "//pkg/util/file:go_default_library", - "//pkg/volume:go_default_library", - "//pkg/volume/testing:go_default_library", - "//vendor/k8s.io/api/core/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/util/file:go_default_library", + "//pkg/volume:go_default_library", + "//pkg/volume/testing:go_default_library", + "//vendor/k8s.io/api/core/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/fake:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/pkg/volume/util/BUILD b/pkg/volume/util/BUILD index 62a1814fd68..d302434516b 100644 --- a/pkg/volume/util/BUILD +++ b/pkg/volume/util/BUILD @@ -13,19 +13,27 @@ go_library( srcs = [ "atomic_writer.go", "device_util.go", - "device_util_linux.go", + "device_util_unsupported.go", "doc.go", - "fs.go", + "fs_unsupported.go", "io_util.go", "util.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "fs.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "device_util_linux.go", + "fs.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/helper:go_default_library", "//pkg/util/mount:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/golang.org/x/sys/unix:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -34,16 +42,28 @@ go_library( "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( name = "go_default_test", srcs = [ - "atomic_writer_test.go", - "device_util_linux_test.go", "util_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "atomic_writer_test.go", + "device_util_linux_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = ["automanaged"], deps = [ @@ -51,9 +71,13 @@ go_test( "//pkg/api/v1/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", - "//vendor/k8s.io/client-go/util/testing:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", + "//vendor/k8s.io/client-go/util/testing:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD index 5320c75b389..774ac4da051 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD @@ -36,12 +36,12 @@ go_test( ]), tags = ["automanaged"], deps = [ + ":go_default_library", "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", "//pkg/apis/rbac:go_default_library", "//pkg/apis/rbac/install:go_default_library", "//pkg/registry/rbac/validation:go_default_library", - "//plugin/pkg/auth/authorizer/rbac/bootstrappolicy:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", @@ -55,6 +55,7 @@ go_test( go_test( name = "go_default_test", srcs = ["controller_policy_test.go"], + data = glob(["testdata/**"]), library = ":go_default_library", tags = ["automanaged"], deps = [ diff --git a/staging/src/k8s.io/api/admission/v1alpha1/BUILD b/staging/src/k8s.io/api/admission/v1alpha1/BUILD index cf1b05c5ad2..cef913829f9 100644 --- a/staging/src/k8s.io/api/admission/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/admission/v1alpha1/BUILD @@ -44,3 +44,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD index 9ca847dc73e..ab7e740400a 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD @@ -42,3 +42,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/apps/v1beta1/BUILD b/staging/src/k8s.io/api/apps/v1beta1/BUILD index f79c4c357b9..514a204239e 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/api/apps/v1beta1/BUILD @@ -46,3 +46,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/apps/v1beta2/BUILD b/staging/src/k8s.io/api/apps/v1beta2/BUILD index c4f1dc1985f..172670f2a94 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/api/apps/v1beta2/BUILD @@ -42,3 +42,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/authentication/v1/BUILD b/staging/src/k8s.io/api/authentication/v1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/authentication/v1/BUILD +++ b/staging/src/k8s.io/api/authentication/v1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/authentication/v1beta1/BUILD b/staging/src/k8s.io/api/authentication/v1beta1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/authentication/v1beta1/BUILD +++ b/staging/src/k8s.io/api/authentication/v1beta1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/authorization/v1/BUILD b/staging/src/k8s.io/api/authorization/v1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/authorization/v1/BUILD +++ b/staging/src/k8s.io/api/authorization/v1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/authorization/v1beta1/BUILD b/staging/src/k8s.io/api/authorization/v1beta1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/authorization/v1beta1/BUILD +++ b/staging/src/k8s.io/api/authorization/v1beta1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/autoscaling/v1/BUILD b/staging/src/k8s.io/api/autoscaling/v1/BUILD index 6f674112ecf..d7e6ea364af 100644 --- a/staging/src/k8s.io/api/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/api/autoscaling/v1/BUILD @@ -44,3 +44,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD index 6f674112ecf..d7e6ea364af 100644 --- a/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD @@ -44,3 +44,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/batch/v1/BUILD b/staging/src/k8s.io/api/batch/v1/BUILD index 5976417ae95..d7137908124 100644 --- a/staging/src/k8s.io/api/batch/v1/BUILD +++ b/staging/src/k8s.io/api/batch/v1/BUILD @@ -45,3 +45,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/batch/v2alpha1/BUILD b/staging/src/k8s.io/api/batch/v2alpha1/BUILD index 83db55c3095..604383bc5fb 100644 --- a/staging/src/k8s.io/api/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/api/batch/v2alpha1/BUILD @@ -46,3 +46,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/certificates/v1beta1/BUILD b/staging/src/k8s.io/api/certificates/v1beta1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/api/certificates/v1beta1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/core/v1/BUILD b/staging/src/k8s.io/api/core/v1/BUILD index 856b6cda075..8356eef83f6 100644 --- a/staging/src/k8s.io/api/core/v1/BUILD +++ b/staging/src/k8s.io/api/core/v1/BUILD @@ -62,3 +62,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/extensions/v1beta1/BUILD b/staging/src/k8s.io/api/extensions/v1beta1/BUILD index 688fc138dcb..329654e84cb 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/api/extensions/v1beta1/BUILD @@ -47,3 +47,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD b/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/networking/v1/BUILD b/staging/src/k8s.io/api/networking/v1/BUILD index 0f9426b44c6..9b602781600 100644 --- a/staging/src/k8s.io/api/networking/v1/BUILD +++ b/staging/src/k8s.io/api/networking/v1/BUILD @@ -44,3 +44,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/policy/v1beta1/BUILD b/staging/src/k8s.io/api/policy/v1beta1/BUILD index a9e5c276572..35106f4ed19 100644 --- a/staging/src/k8s.io/api/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/api/policy/v1beta1/BUILD @@ -44,3 +44,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/rbac/v1/BUILD b/staging/src/k8s.io/api/rbac/v1/BUILD index 9ca847dc73e..ab7e740400a 100644 --- a/staging/src/k8s.io/api/rbac/v1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1/BUILD @@ -42,3 +42,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/rbac/v1alpha1/BUILD b/staging/src/k8s.io/api/rbac/v1alpha1/BUILD index 9ca847dc73e..ab7e740400a 100644 --- a/staging/src/k8s.io/api/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1alpha1/BUILD @@ -42,3 +42,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/rbac/v1beta1/BUILD b/staging/src/k8s.io/api/rbac/v1beta1/BUILD index 9ca847dc73e..ab7e740400a 100644 --- a/staging/src/k8s.io/api/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1beta1/BUILD @@ -42,3 +42,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD index 1876dcfa310..5ca20c29956 100644 --- a/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD @@ -39,3 +39,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/settings/v1alpha1/BUILD b/staging/src/k8s.io/api/settings/v1alpha1/BUILD index 6f674112ecf..d7e6ea364af 100644 --- a/staging/src/k8s.io/api/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/settings/v1alpha1/BUILD @@ -44,3 +44,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/storage/v1/BUILD b/staging/src/k8s.io/api/storage/v1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/storage/v1/BUILD +++ b/staging/src/k8s.io/api/storage/v1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/api/storage/v1beta1/BUILD b/staging/src/k8s.io/api/storage/v1beta1/BUILD index 33f73ac3c72..8e8ea74e5ef 100644 --- a/staging/src/k8s.io/api/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/api/storage/v1beta1/BUILD @@ -43,3 +43,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD index 11b877b0e86..fc3ebb25614 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD @@ -42,3 +42,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD index 22ba0dcb723..29bfb0532ef 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD @@ -66,3 +66,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD index 9bc45be79ce..980abeb60d3 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD @@ -89,3 +89,9 @@ filegroup( ], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD index 87a10d4e5a3..c805a8748d9 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD @@ -42,3 +42,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD index abc6cfd224d..1d3f653eb2e 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD @@ -48,3 +48,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD index 9c33e113dd3..4ac2490e1b5 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD @@ -85,3 +85,9 @@ filegroup( ], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD index 3c8593cfff8..9aa374f3c1b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD @@ -38,3 +38,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD index 729f86888bb..eb4618c27bc 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD @@ -44,3 +44,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD index 2991463db63..30791e5ad9c 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD @@ -45,3 +45,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD index 5797464f26c..73b8af7fe0d 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD @@ -48,3 +48,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD index 0c3d4fe6320..617712348f5 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD @@ -11,6 +11,7 @@ load( go_test( name = "go_default_test", srcs = ["serving_test.go"], + data = glob(["testdata/**"]), library = ":go_default_library", tags = ["automanaged"], deps = [ diff --git a/staging/src/k8s.io/client-go/util/cert/BUILD b/staging/src/k8s.io/client-go/util/cert/BUILD index 7da56bb01ce..36855a3db8d 100644 --- a/staging/src/k8s.io/client-go/util/cert/BUILD +++ b/staging/src/k8s.io/client-go/util/cert/BUILD @@ -14,6 +14,7 @@ go_test( "csr_test.go", "pem_test.go", ], + data = glob(["testdata/**"]), library = ":go_default_library", tags = ["automanaged"], ) diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD index 935e7f8ad42..4aa4698d0e0 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD @@ -40,3 +40,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD index 4b783399291..e595c4c6473 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD @@ -45,3 +45,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD index e83db4b5575..63bd26f28e1 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD @@ -46,3 +46,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["generated.proto"], + visibility = ["//visibility:public"], +) diff --git a/test/e2e/generated/BUILD b/test/e2e/generated/BUILD index dc3bd386141..1e0d2f3cfb7 100644 --- a/test/e2e/generated/BUILD +++ b/test/e2e/generated/BUILD @@ -10,9 +10,9 @@ load( go_library( name = "go_default_library", srcs = [ + "bindata.go", "gobindata_util.go", "main.go", - ":bindata", ], deps = [ "//vendor/github.com/golang/glog:go_default_library", diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 18841759ef4..425066df278 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -11,21 +11,24 @@ load( go_library( name = "go_default_library", srcs = [ - "benchmark_util.go", "container.go", "doc.go", "docker_util.go", "gpus.go", "image_list.go", - "node_problem_detector_linux.go", - "resource_collector.go", "simple_mount.go", "util.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "benchmark_util.go", + "node_problem_detector_linux.go", + "resource_collector.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", - "//pkg/api/v1/node:go_default_library", "//pkg/api/v1/pod:go_default_library", "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/componentconfig/v1alpha1:go_default_library", @@ -34,36 +37,41 @@ go_library( "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/metrics:go_default_library", "//pkg/kubelet/remote:go_default_library", - "//pkg/util/procfs:go_default_library", "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", "//test/e2e/framework/metrics:go_default_library", - "//test/e2e/perftype:go_default_library", - "//test/e2e_node/perftype:go_default_library", "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/docker/docker/client:go_default_library", "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/google/cadvisor/client/v2:go_default_library", - "//vendor/github.com/google/cadvisor/info/v2:go_default_library", "//vendor/github.com/onsi/ginkgo:go_default_library", "//vendor/github.com/onsi/gomega:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/uuid:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//pkg/api/v1/node:go_default_library", + "//pkg/util/procfs:go_default_library", + "//test/e2e/perftype:go_default_library", + "//test/e2e_node/perftype:go_default_library", + "//vendor/github.com/google/cadvisor/client/v2:go_default_library", + "//vendor/github.com/google/cadvisor/info/v2:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", + "//vendor/k8s.io/client-go/kubernetes:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", + ], + "//conditions:default": [], + }), ) go_test( @@ -71,9 +79,7 @@ go_test( srcs = [ "allocatable_eviction_test.go", "apparmor_test.go", - "container_manager_test.go", "critical_pod_test.go", - "density_test.go", "disk_eviction_test.go", "docker_test.go", "dockershim_checkpoint_test.go", @@ -90,15 +96,21 @@ go_test( "log_path_test.go", "memory_eviction_test.go", "mirror_pod_test.go", - "node_container_manager_test.go", "pods_container_manager_test.go", - "resource_usage_test.go", - "restart_test.go", "runtime_conformance_test.go", "security_context_test.go", "summary_test.go", "volume_manager_test.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "container_manager_test.go", + "density_test.go", + "node_container_manager_test.go", + "resource_usage_test.go", + "restart_test.go", + ], + "//conditions:default": [], + }), library = ":go_default_library", tags = [ "automanaged", @@ -119,10 +131,8 @@ go_test( "//pkg/security/apparmor:go_default_library", "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", - "//test/e2e/framework/metrics:go_default_library", "//test/e2e_node/services:go_default_library", "//test/e2e_node/system:go_default_library", - "//test/utils:go_default_library", "//vendor/github.com/coreos/go-systemd/util:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -138,8 +148,6 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", - "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", @@ -150,9 +158,17 @@ go_test( "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", - "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", - "//vendor/k8s.io/client-go/tools/cache:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//test/e2e/framework/metrics:go_default_library", + "//test/utils:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/client-go/kubernetes/scheme:go_default_library", + "//vendor/k8s.io/client-go/tools/cache:go_default_library", + ], + "//conditions:default": [], + }), ) genrule( diff --git a/third_party/forked/etcd221/pkg/fileutil/BUILD b/third_party/forked/etcd221/pkg/fileutil/BUILD index 333804f94ce..7a489eb8ac4 100644 --- a/third_party/forked/etcd221/pkg/fileutil/BUILD +++ b/third_party/forked/etcd221/pkg/fileutil/BUILD @@ -25,9 +25,17 @@ go_library( srcs = [ "fileutil.go", "lock_unix.go", - "preallocate.go", + "perallocate_unsupported.go", "purge.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "preallocate.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "lock_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/third_party/forked/etcd221/wal/walpb/BUILD b/third_party/forked/etcd221/wal/walpb/BUILD index 7c725af1975..6d0510ee8d9 100644 --- a/third_party/forked/etcd221/wal/walpb/BUILD +++ b/third_party/forked/etcd221/wal/walpb/BUILD @@ -29,3 +29,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["record.proto"], + visibility = ["//visibility:public"], +) diff --git a/third_party/forked/etcd237/pkg/fileutil/BUILD b/third_party/forked/etcd237/pkg/fileutil/BUILD index 0b0c77bf61a..fae51f48890 100644 --- a/third_party/forked/etcd237/pkg/fileutil/BUILD +++ b/third_party/forked/etcd237/pkg/fileutil/BUILD @@ -26,10 +26,19 @@ go_library( "fileutil.go", "lock.go", "lock_unix.go", - "preallocate.go", + "perallocate_unsupported.go", "purge.go", - "sync_linux.go", - ], + "sync.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "preallocate.go", + "sync_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "lock_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/third_party/forked/etcd237/wal/walpb/BUILD b/third_party/forked/etcd237/wal/walpb/BUILD index 4976ff58b01..e9a930a9c91 100644 --- a/third_party/forked/etcd237/wal/walpb/BUILD +++ b/third_party/forked/etcd237/wal/walpb/BUILD @@ -29,3 +29,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["record.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/bitbucket.org/bertimus9/systemstat/BUILD b/vendor/bitbucket.org/bertimus9/systemstat/BUILD index 38bccee1976..c4e72b091b8 100644 --- a/vendor/bitbucket.org/bertimus9/systemstat/BUILD +++ b/vendor/bitbucket.org/bertimus9/systemstat/BUILD @@ -11,8 +11,12 @@ go_library( name = "go_default_library", srcs = [ "systemstat.go", - "systemstat_linux.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "systemstat_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/Azure/go-ansiterm/BUILD b/vendor/github.com/Azure/go-ansiterm/BUILD index 6da8d8fba4e..57a20857a6c 100644 --- a/vendor/github.com/Azure/go-ansiterm/BUILD +++ b/vendor/github.com/Azure/go-ansiterm/BUILD @@ -38,6 +38,9 @@ filegroup( filegroup( name = "all-srcs", - srcs = [":package-srcs"], + srcs = [ + ":package-srcs", + "//vendor/github.com/Azure/go-ansiterm/winterm:all-srcs", + ], tags = ["automanaged"], ) diff --git a/vendor/github.com/Azure/go-ansiterm/winterm/BUILD b/vendor/github.com/Azure/go-ansiterm/winterm/BUILD new file mode 100644 index 00000000000..52807b1cf46 --- /dev/null +++ b/vendor/github.com/Azure/go-ansiterm/winterm/BUILD @@ -0,0 +1,40 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "ansi.go", + "api.go", + "attr_translation.go", + "cursor_helpers.go", + "erase_helpers.go", + "scroll_helper.go", + "utilities.go", + "win_event_handler.go", + ], + "//conditions:default": [], + }), + visibility = ["//visibility:public"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/Azure/go-ansiterm:go_default_library", + "//vendor/github.com/Sirupsen/logrus:go_default_library", + ], + "//conditions:default": [], + }), +) + +filegroup( + name = "package-srcs", + srcs = glob(["**"]), + tags = ["automanaged"], + visibility = ["//visibility:private"], +) + +filegroup( + name = "all-srcs", + srcs = [":package-srcs"], + tags = ["automanaged"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/Microsoft/go-winio/BUILD b/vendor/github.com/Microsoft/go-winio/BUILD index e006289e2f0..9ec35d4be31 100644 --- a/vendor/github.com/Microsoft/go-winio/BUILD +++ b/vendor/github.com/Microsoft/go-winio/BUILD @@ -12,8 +12,25 @@ go_library( srcs = [ "reparse.go", "syscall.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "backup.go", + "file.go", + "fileinfo.go", + "pipe.go", + "privilege.go", + "sd.go", + "zsyscall_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/Sirupsen/logrus/BUILD b/vendor/github.com/Sirupsen/logrus/BUILD index 4a9045454c7..3b41e05e243 100644 --- a/vendor/github.com/Sirupsen/logrus/BUILD +++ b/vendor/github.com/Sirupsen/logrus/BUILD @@ -17,10 +17,21 @@ go_library( "json_formatter.go", "logger.go", "logrus.go", - "terminal_linux.go", - "terminal_notwindows.go", "text_formatter.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "terminal_darwin.go", + "terminal_notwindows.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "terminal_linux.go", + "terminal_notwindows.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "terminal_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD index 12a2cf577fe..994364cccea 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD @@ -14,6 +14,7 @@ go_library( "http_request.go", "offset_reader.go", "request.go", + "request_1_7.go", "request_1_8.go", "request_pagination.go", "retryer.go", diff --git a/vendor/github.com/boltdb/bolt/BUILD b/vendor/github.com/boltdb/bolt/BUILD index c7d4b56832c..bb598cb5339 100644 --- a/vendor/github.com/boltdb/bolt/BUILD +++ b/vendor/github.com/boltdb/bolt/BUILD @@ -10,9 +10,8 @@ load( go_library( name = "go_default_library", srcs = [ - "bolt_amd64.go", - "bolt_linux.go", "bolt_unix.go", + "boltsync_unix.go", "bucket.go", "cursor.go", "db.go", @@ -22,7 +21,20 @@ go_library( "node.go", "page.go", "tx.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "bolt_amd64.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "bolt_amd64.go", + "bolt_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "bolt_amd64.go", + "bolt_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD index c2d1b3cde3a..f9bdc0b8b9a 100644 --- a/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD @@ -14,9 +14,19 @@ go_library( "delegate.go", "exec.go", "find.go", - "os_unix.go", "raw_exec.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "os_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "os_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "os_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", diff --git a/vendor/github.com/coreos/etcd/auth/authpb/BUILD b/vendor/github.com/coreos/etcd/auth/authpb/BUILD index 39a2cb9529a..cd0848952f0 100644 --- a/vendor/github.com/coreos/etcd/auth/authpb/BUILD +++ b/vendor/github.com/coreos/etcd/auth/authpb/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["auth.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD b/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD index 01d0a6c1aed..429f9cf6781 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD @@ -41,3 +41,13 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = [ + "etcdserver.proto", + "raft_internal.proto", + "rpc.proto", + ], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/etcd/lease/leasepb/BUILD b/vendor/github.com/coreos/etcd/lease/leasepb/BUILD index 7717884d728..17421df4e94 100644 --- a/vendor/github.com/coreos/etcd/lease/leasepb/BUILD +++ b/vendor/github.com/coreos/etcd/lease/leasepb/BUILD @@ -29,3 +29,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["lease.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/etcd/mvcc/backend/BUILD b/vendor/github.com/coreos/etcd/mvcc/backend/BUILD index 38001ca3178..694df187699 100644 --- a/vendor/github.com/coreos/etcd/mvcc/backend/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/backend/BUILD @@ -12,10 +12,15 @@ go_library( srcs = [ "backend.go", "batch_tx.go", - "boltoption_linux.go", + "boltoption_default.go", "doc.go", "metrics.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "boltoption_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/boltdb/bolt:go_default_library", diff --git a/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD b/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD index ea0765f4ff9..19ef602cd7c 100644 --- a/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["kv.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD b/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD index 2bbd9fa623b..31d5d62e330 100644 --- a/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD @@ -14,12 +14,27 @@ go_library( "fileutil.go", "lock.go", "lock_flock.go", - "lock_linux.go", + "lock_unix.go", "preallocate.go", - "preallocate_unix.go", + "preallocate_unsupported.go", "purge.go", - "sync_linux.go", - ], + "sync.go", + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "preallocate_darwin.go", + "sync_darwin.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "lock_linux.go", + "preallocate_unix.go", + "sync_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "dir_windows.go", + "lock_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/pkg/netutil/BUILD b/vendor/github.com/coreos/etcd/pkg/netutil/BUILD index 098221e88b7..e98e555fd5f 100644 --- a/vendor/github.com/coreos/etcd/pkg/netutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/netutil/BUILD @@ -10,17 +10,27 @@ load( go_library( name = "go_default_library", srcs = [ - "isolate_linux.go", + "isolate_stub.go", "netutil.go", - "routes_linux.go", - ], + "routes.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "isolate_linux.go", + "routes_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//vendor/github.com/coreos/etcd/pkg/cpuutil:go_default_library", "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", "//vendor/github.com/coreos/pkg/capnslog:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/coreos/etcd/pkg/cpuutil:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/runtime/BUILD b/vendor/github.com/coreos/etcd/pkg/runtime/BUILD index c15020ff294..3189b53db3e 100644 --- a/vendor/github.com/coreos/etcd/pkg/runtime/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/runtime/BUILD @@ -9,7 +9,14 @@ load( go_library( name = "go_default_library", - srcs = ["fds_linux.go"], + srcs = [ + "fds_other.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "fds_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/coreos/etcd/raft/raftpb/BUILD b/vendor/github.com/coreos/etcd/raft/raftpb/BUILD index fb934bc07cc..289608a6161 100644 --- a/vendor/github.com/coreos/etcd/raft/raftpb/BUILD +++ b/vendor/github.com/coreos/etcd/raft/raftpb/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["raft.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/etcd/snap/snappb/BUILD b/vendor/github.com/coreos/etcd/snap/snappb/BUILD index 011a2f0df00..29f836ad23b 100644 --- a/vendor/github.com/coreos/etcd/snap/snappb/BUILD +++ b/vendor/github.com/coreos/etcd/snap/snappb/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["snap.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/etcd/wal/BUILD b/vendor/github.com/coreos/etcd/wal/BUILD index 4fdb911910c..d9fd97da6f9 100644 --- a/vendor/github.com/coreos/etcd/wal/BUILD +++ b/vendor/github.com/coreos/etcd/wal/BUILD @@ -19,7 +19,12 @@ go_library( "util.go", "wal.go", "wal_unix.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "wal_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/pkg/crc:go_default_library", diff --git a/vendor/github.com/coreos/etcd/wal/walpb/BUILD b/vendor/github.com/coreos/etcd/wal/walpb/BUILD index 4976ff58b01..e9a930a9c91 100644 --- a/vendor/github.com/coreos/etcd/wal/walpb/BUILD +++ b/vendor/github.com/coreos/etcd/wal/walpb/BUILD @@ -29,3 +29,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["record.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/coreos/go-systemd/util/BUILD b/vendor/github.com/coreos/go-systemd/util/BUILD index c0d70c2084d..ff41170ccde 100644 --- a/vendor/github.com/coreos/go-systemd/util/BUILD +++ b/vendor/github.com/coreos/go-systemd/util/BUILD @@ -22,8 +22,11 @@ cgo_genrule( go_library( name = "go_default_library", - srcs = ["util.go"], - library = ":cgo_codegen", + srcs = [ + "util.go", + "util_cgo.go", + ], + cgo = True, tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/dlopen:go_default_library"], ) diff --git a/vendor/github.com/coreos/pkg/capnslog/BUILD b/vendor/github.com/coreos/pkg/capnslog/BUILD index 6b0b4879543..44d022652ea 100644 --- a/vendor/github.com/coreos/pkg/capnslog/BUILD +++ b/vendor/github.com/coreos/pkg/capnslog/BUILD @@ -18,7 +18,12 @@ go_library( "logmap.go", "pkg_logger.go", "syslog_formatter.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "init_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = ["//vendor/github.com/coreos/go-systemd/journal:go_default_library"], ) diff --git a/vendor/github.com/coreos/pkg/dlopen/BUILD b/vendor/github.com/coreos/pkg/dlopen/BUILD index 78c6c020ebe..3992b0ee0d3 100644 --- a/vendor/github.com/coreos/pkg/dlopen/BUILD +++ b/vendor/github.com/coreos/pkg/dlopen/BUILD @@ -25,8 +25,16 @@ cgo_genrule( go_library( name = "go_default_library", - srcs = [], - library = ":cgo_codegen", + srcs = [ + "dlopen.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "dlopen_example.go", + ], + "//conditions:default": [], + }), + cgo = True, + clinkopts = ["-ldl"], tags = ["automanaged"], ) diff --git a/vendor/github.com/coreos/rkt/api/v1alpha/BUILD b/vendor/github.com/coreos/rkt/api/v1alpha/BUILD index 25b5b0f2df1..0a2ad3fd2dc 100644 --- a/vendor/github.com/coreos/rkt/api/v1alpha/BUILD +++ b/vendor/github.com/coreos/rkt/api/v1alpha/BUILD @@ -30,3 +30,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["api.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/daviddengcn/go-colortext/BUILD b/vendor/github.com/daviddengcn/go-colortext/BUILD index 131075b8125..ad9e2ad4739 100644 --- a/vendor/github.com/daviddengcn/go-colortext/BUILD +++ b/vendor/github.com/daviddengcn/go-colortext/BUILD @@ -12,7 +12,12 @@ go_library( srcs = [ "ct.go", "ct_ansi.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "ct_win.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/docker/docker/api/types/container/BUILD b/vendor/github.com/docker/docker/api/types/container/BUILD index 382cbf9196e..6c8b160087d 100644 --- a/vendor/github.com/docker/docker/api/types/container/BUILD +++ b/vendor/github.com/docker/docker/api/types/container/BUILD @@ -16,7 +16,12 @@ go_library( "container_wait.go", "host_config.go", "hostconfig_unix.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "hostconfig_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/api/types/blkiodev:go_default_library", diff --git a/vendor/github.com/docker/docker/client/BUILD b/vendor/github.com/docker/docker/client/BUILD index 39b6df2c6ca..a36abe35ab5 100644 --- a/vendor/github.com/docker/docker/client/BUILD +++ b/vendor/github.com/docker/docker/client/BUILD @@ -14,7 +14,6 @@ go_library( "checkpoint_delete.go", "checkpoint_list.go", "client.go", - "client_unix.go", "container_attach.go", "container_commit.go", "container_copy.go", @@ -113,7 +112,18 @@ go_library( "volume_list.go", "volume_prune.go", "volume_remove.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "client_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "client_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "client_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/docker/distribution/reference:go_default_library", diff --git a/vendor/github.com/docker/docker/pkg/mount/BUILD b/vendor/github.com/docker/docker/pkg/mount/BUILD index f992f3e8292..47e04d7d300 100644 --- a/vendor/github.com/docker/docker/pkg/mount/BUILD +++ b/vendor/github.com/docker/docker/pkg/mount/BUILD @@ -11,13 +11,24 @@ go_library( name = "go_default_library", srcs = [ "flags.go", - "flags_linux.go", + "flags_unsupported.go", "mount.go", - "mounter_linux.go", + "mounter_unsupported.go", "mountinfo.go", - "mountinfo_linux.go", - "sharedsubtree_linux.go", - ], + "mountinfo_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "flags_linux.go", + "mounter_linux.go", + "mountinfo_linux.go", + "sharedsubtree_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "mountinfo_windows.go", + ], + "//conditions:default": [], + }), + cgo = True, tags = ["automanaged"], ) diff --git a/vendor/github.com/docker/docker/pkg/symlink/BUILD b/vendor/github.com/docker/docker/pkg/symlink/BUILD index 1735399a66b..99c5bf85743 100644 --- a/vendor/github.com/docker/docker/pkg/symlink/BUILD +++ b/vendor/github.com/docker/docker/pkg/symlink/BUILD @@ -12,9 +12,21 @@ go_library( srcs = [ "fs.go", "fs_unix.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "fs_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = ["//vendor/github.com/docker/docker/pkg/system:go_default_library"], + deps = [ + "//vendor/github.com/docker/docker/pkg/system:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/docker/docker/pkg/longpath:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/system/BUILD b/vendor/github.com/docker/docker/pkg/system/BUILD index c5fa07261d6..92cedd13331 100644 --- a/vendor/github.com/docker/docker/pkg/system/BUILD +++ b/vendor/github.com/docker/docker/pkg/system/BUILD @@ -17,18 +17,52 @@ go_library( "filesys.go", "lstat.go", "meminfo.go", - "meminfo_linux.go", + "meminfo_unsupported.go", "mknod.go", "path_unix.go", "stat.go", - "stat_linux.go", - "syscall_unix.go", + "stat_unsupported.go", "umask.go", - "utimes_linux.go", - "xattrs_linux.go", - ], + "utimes_unsupported.go", + "xattrs_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "stat_darwin.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "meminfo_linux.go", + "stat_linux.go", + "syscall_unix.go", + "utimes_linux.go", + "xattrs_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "chtimes_windows.go", + "events_windows.go", + "filesys_windows.go", + "lstat_windows.go", + "meminfo_windows.go", + "mknod_windows.go", + "path_windows.go", + "stat_windows.go", + "syscall_windows.go", + "umask_windows.go", + ], + "//conditions:default": [], + }), + cgo = True, tags = ["automanaged"], - deps = ["//vendor/github.com/docker/go-units:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/docker/go-units:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + "//vendor/github.com/Sirupsen/logrus:go_default_library", + "//vendor/golang.org/x/sys/windows:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/term/BUILD b/vendor/github.com/docker/docker/pkg/term/BUILD index 9dd91e30603..309ba3389c9 100644 --- a/vendor/github.com/docker/docker/pkg/term/BUILD +++ b/vendor/github.com/docker/docker/pkg/term/BUILD @@ -24,11 +24,30 @@ go_library( name = "go_default_library", srcs = [ "ascii.go", + "tc_other.go", "term.go", "term_unix.go", - ], - library = ":cgo_codegen", + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "termios_darwin.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "tc_linux_cgo.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "term_windows.go", + ], + "//conditions:default": [], + }), + cgo = True, tags = ["automanaged"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/Azure/go-ansiterm/winterm:go_default_library", + "//vendor/github.com/docker/docker/pkg/term/windows:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/term/windows/BUILD b/vendor/github.com/docker/docker/pkg/term/windows/BUILD index 02c75db5c38..62901ae2fe8 100644 --- a/vendor/github.com/docker/docker/pkg/term/windows/BUILD +++ b/vendor/github.com/docker/docker/pkg/term/windows/BUILD @@ -9,12 +9,26 @@ load( go_library( name = "go_default_library", - srcs = ["windows.go"], + srcs = [ + "windows.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "ansi_reader.go", + "ansi_writer.go", + "console.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-ansiterm:go_default_library", "//vendor/github.com/Sirupsen/logrus:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/Azure/go-ansiterm/winterm:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD b/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD index aab2f504dff..57e26a8795e 100644 --- a/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD +++ b/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD @@ -9,7 +9,11 @@ load( go_library( name = "go_default_library", - srcs = ["tlsconfig_clone.go"], + srcs = [ + "tlsconfig_clone.go", + "tlsconfig_clone_go16.go", + "tlsconfig_clone_go17.go", + ], tags = ["automanaged"], ) diff --git a/vendor/github.com/docker/engine-api/client/BUILD b/vendor/github.com/docker/engine-api/client/BUILD index 331e9c52949..0b03a9b69a5 100644 --- a/vendor/github.com/docker/engine-api/client/BUILD +++ b/vendor/github.com/docker/engine-api/client/BUILD @@ -11,7 +11,6 @@ go_library( name = "go_default_library", srcs = [ "client.go", - "client_unix.go", "container_attach.go", "container_commit.go", "container_copy.go", @@ -66,7 +65,18 @@ go_library( "volume_inspect.go", "volume_list.go", "volume_remove.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "client_darwin.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "client_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "client_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/docker/distribution/reference:go_default_library", diff --git a/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD b/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD index 61ec7cc313c..8623d9df571 100644 --- a/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD +++ b/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD @@ -11,6 +11,7 @@ go_library( name = "go_default_library", srcs = [ "canceler.go", + "canceler_go14.go", "cancellable.go", ], tags = ["automanaged"], diff --git a/vendor/github.com/docker/engine-api/types/container/BUILD b/vendor/github.com/docker/engine-api/types/container/BUILD index 9f9042ddea1..95ce73d7146 100644 --- a/vendor/github.com/docker/engine-api/types/container/BUILD +++ b/vendor/github.com/docker/engine-api/types/container/BUILD @@ -13,7 +13,12 @@ go_library( "config.go", "host_config.go", "hostconfig_unix.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "hostconfig_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/docker/engine-api/types/blkiodev:go_default_library", diff --git a/vendor/github.com/docker/go-connections/sockets/BUILD b/vendor/github.com/docker/go-connections/sockets/BUILD index 95bd4bb1a66..1bb85d36633 100644 --- a/vendor/github.com/docker/go-connections/sockets/BUILD +++ b/vendor/github.com/docker/go-connections/sockets/BUILD @@ -15,14 +15,28 @@ go_library( "sockets.go", "sockets_unix.go", "tcp_socket.go", - "unix_socket.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "unix_socket.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "sockets_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//vendor/github.com/Sirupsen/logrus:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", "//vendor/golang.org/x/net/proxy:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/Sirupsen/logrus:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/docker/go-connections/tlsconfig/BUILD b/vendor/github.com/docker/go-connections/tlsconfig/BUILD index 3cde4a968da..ab66051efbb 100644 --- a/vendor/github.com/docker/go-connections/tlsconfig/BUILD +++ b/vendor/github.com/docker/go-connections/tlsconfig/BUILD @@ -12,6 +12,7 @@ go_library( srcs = [ "config.go", "config_client_ciphers.go", + "config_legacy_client_ciphers.go", ], tags = ["automanaged"], deps = ["//vendor/github.com/Sirupsen/logrus:go_default_library"], diff --git a/vendor/github.com/fsnotify/fsnotify/BUILD b/vendor/github.com/fsnotify/fsnotify/BUILD index 563dbc6667e..0071034da52 100644 --- a/vendor/github.com/fsnotify/fsnotify/BUILD +++ b/vendor/github.com/fsnotify/fsnotify/BUILD @@ -11,11 +11,30 @@ go_library( name = "go_default_library", srcs = [ "fsnotify.go", - "inotify.go", - "inotify_poller.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "kqueue.go", + "open_mode_darwin.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "inotify.go", + "inotify_poller.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = ["//vendor/golang.org/x/sys/unix:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/golang.org/x/sys/unix:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/godbus/dbus/BUILD b/vendor/github.com/godbus/dbus/BUILD index 8eecd34b825..42ab7d65aec 100644 --- a/vendor/github.com/godbus/dbus/BUILD +++ b/vendor/github.com/godbus/dbus/BUILD @@ -28,11 +28,20 @@ go_library( "sig.go", "transport_generic.go", "transport_unix.go", - "transport_unixcred_linux.go", "variant.go", "variant_lexer.go", "variant_parser.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "conn_darwin.go", + "transport_darwin.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "transport_unixcred_linux.go", + ], + "//conditions:default": [], + }), + cgo = True, tags = ["automanaged"], ) diff --git a/vendor/github.com/gogo/protobuf/gogoproto/BUILD b/vendor/github.com/gogo/protobuf/gogoproto/BUILD index acbcf470f57..852c0738ef5 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/BUILD +++ b/vendor/github.com/gogo/protobuf/gogoproto/BUILD @@ -33,3 +33,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["gogo.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/any/BUILD b/vendor/github.com/golang/protobuf/ptypes/any/BUILD index b8c925ab4ca..4a08af74c41 100644 --- a/vendor/github.com/golang/protobuf/ptypes/any/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/any/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["any.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/BUILD b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD index 32d428ba458..0ebec532016 100644 --- a/vendor/github.com/golang/protobuf/ptypes/duration/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["duration.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD index d655bd914c3..35a469047ef 100644 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["timestamp.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/google/cadvisor/fs/BUILD b/vendor/github.com/google/cadvisor/fs/BUILD index 5777e951951..44eb349b426 100644 --- a/vendor/github.com/google/cadvisor/fs/BUILD +++ b/vendor/github.com/google/cadvisor/fs/BUILD @@ -10,17 +10,24 @@ load( go_library( name = "go_default_library", srcs = [ - "fs.go", "types.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "fs.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = [ - "//vendor/github.com/docker/docker/pkg/mount:go_default_library", - "//vendor/github.com/golang/glog:go_default_library", - "//vendor/github.com/google/cadvisor/devicemapper:go_default_library", - "//vendor/github.com/google/cadvisor/utils/docker:go_default_library", - "//vendor/github.com/mistifyio/go-zfs:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/docker/docker/pkg/mount:go_default_library", + "//vendor/github.com/golang/glog:go_default_library", + "//vendor/github.com/google/cadvisor/devicemapper:go_default_library", + "//vendor/github.com/google/cadvisor/utils/docker:go_default_library", + "//vendor/github.com/mistifyio/go-zfs:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD index d6d4831352e..c3fb54631ff 100644 --- a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD @@ -24,10 +24,11 @@ go_library( name = "go_default_library", srcs = [ "conn.go", + "defs.go", "netlink.go", "reader.go", ], - library = ":cgo_codegen", + cgo = True, tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/github.com/google/certificate-transparency/go/x509/BUILD b/vendor/github.com/google/certificate-transparency/go/x509/BUILD index 059253971b2..ecf78fd772b 100644 --- a/vendor/github.com/google/certificate-transparency/go/x509/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/x509/BUILD @@ -15,11 +15,34 @@ go_library( "pkcs1.go", "pkcs8.go", "root.go", - "root_unix.go", "sec1.go", "verify.go", "x509.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "root_darwin.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "root_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "root_windows.go", + ], + "//conditions:default": [], + }), + cgo = True, + clinkopts = select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "-framework CoreFoundation -framework Security", + ], + "//conditions:default": [], + }), + copts = select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "-mmacosx-version-min=10.6 -D__MAC_OS_X_VERSION_MAX_ALLOWED=1060", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/google/certificate-transparency/go/asn1:go_default_library", diff --git a/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD b/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD index 7552825a511..529db562129 100644 --- a/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD +++ b/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD @@ -34,3 +34,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["OpenAPIv2.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/googleapis/gnostic/extensions/BUILD b/vendor/github.com/googleapis/gnostic/extensions/BUILD index da13d979311..bc8897d7c5b 100644 --- a/vendor/github.com/googleapis/gnostic/extensions/BUILD +++ b/vendor/github.com/googleapis/gnostic/extensions/BUILD @@ -33,3 +33,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["extension.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD index 082b39a94b4..73dafd9f3a7 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["stream_chunk.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/inconshreveable/mousetrap/BUILD b/vendor/github.com/inconshreveable/mousetrap/BUILD index ba2d22bc978..75e742d1162 100644 --- a/vendor/github.com/inconshreveable/mousetrap/BUILD +++ b/vendor/github.com/inconshreveable/mousetrap/BUILD @@ -9,7 +9,15 @@ load( go_library( name = "go_default_library", - srcs = ["trap_others.go"], + srcs = [ + "trap_others.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "trap_windows.go", + "trap_windows_1.4.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/kardianos/osext/BUILD b/vendor/github.com/kardianos/osext/BUILD index c47b00d888d..cbef9b0f18a 100644 --- a/vendor/github.com/kardianos/osext/BUILD +++ b/vendor/github.com/kardianos/osext/BUILD @@ -11,8 +11,18 @@ go_library( name = "go_default_library", srcs = [ "osext.go", - "osext_procfs.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "osext_sysctl.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "osext_procfs.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "osext_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/kr/pty/BUILD b/vendor/github.com/kr/pty/BUILD index 9e91f90eed4..5a3f3d57084 100644 --- a/vendor/github.com/kr/pty/BUILD +++ b/vendor/github.com/kr/pty/BUILD @@ -12,11 +12,25 @@ go_library( srcs = [ "doc.go", "ioctl.go", - "pty_linux.go", + "pty_unsupported.go", "run.go", "util.go", - "ztypes_amd64.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "ioctl_bsd.go", + "pty_darwin.go", + "ztypes_amd64.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "pty_linux.go", + "ztypes_amd64.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "ztypes_amd64.go", + ], + "//conditions:default": [], + }), + cgo = True, tags = ["automanaged"], ) diff --git a/vendor/github.com/libopenstorage/openstorage/api/BUILD b/vendor/github.com/libopenstorage/openstorage/api/BUILD index 61888772d56..cca21d8e96c 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/BUILD @@ -37,3 +37,9 @@ filegroup( ], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["api.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/miekg/dns/BUILD b/vendor/github.com/miekg/dns/BUILD index be2868fc250..d829c628481 100644 --- a/vendor/github.com/miekg/dns/BUILD +++ b/vendor/github.com/miekg/dns/BUILD @@ -40,12 +40,20 @@ go_library( "tsig.go", "types.go", "udp.go", - "udp_linux.go", + "udp_other.go", "update.go", "xfr.go", "zmsg.go", "ztypes.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "udp_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "udp_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD index 2c0cecf621c..3f3231f5c7f 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD @@ -11,8 +11,18 @@ go_library( name = "go_default_library", srcs = [ "interrupt_handler.go", - "sigquit_swallower_unix.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "sigquit_swallower_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "sigquit_swallower_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "sigquit_swallower_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD index 960ca64ddb9..c076dfd9f52 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD @@ -11,6 +11,7 @@ go_library( name = "go_default_library", srcs = [ "test_suite.go", + "vendor_check_go15.go", "vendor_check_go16.go", ], tags = ["automanaged"], diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/BUILD b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD index c6cf8b9b7a7..29711955ba9 100644 --- a/vendor/github.com/onsi/ginkgo/internal/remote/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD @@ -13,10 +13,20 @@ go_library( "aggregator.go", "forwarding_reporter.go", "output_interceptor.go", - "output_interceptor_unix.go", "server.go", "syscall_dup_unix.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "output_interceptor_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "output_interceptor_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "output_interceptor_win.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD index 7d7fe0d12e9..e4f48e5284c 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD @@ -12,8 +12,19 @@ go_library( srcs = [ "colorable_others.go", "noncolorable.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "colorable_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD index 637bb54aaa8..750985cf890 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD @@ -11,8 +11,18 @@ go_library( name = "go_default_library", srcs = [ "doc.go", - "isatty_linux.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "isatty_bsd.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "isatty_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "isatty_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/BUILD index 351bed4e87e..66c0b8f3b59 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/BUILD @@ -10,55 +10,70 @@ load( go_library( name = "go_default_library", srcs = [ - "capabilities_linux.go", "console.go", - "console_linux.go", "container.go", - "container_linux.go", - "criu_opts_unix.go", "error.go", "factory.go", - "factory_linux.go", "generic_error.go", - "init_linux.go", - "message_linux.go", - "network_linux.go", - "notify_linux.go", "process.go", - "process_linux.go", - "restored_process.go", - "rootfs_linux.go", - "setgroups_linux.go", - "setns_init_linux.go", - "standard_init_linux.go", - "state_linux.go", "stats.go", - "stats_linux.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "capabilities_linux.go", + "compat_1.5_linux.go", + "console_linux.go", + "container_linux.go", + "criu_opts_unix.go", + "factory_linux.go", + "init_linux.go", + "message_linux.go", + "network_linux.go", + "notify_linux.go", + "process_linux.go", + "restored_process.go", + "rootfs_linux.go", + "setgroups_linux.go", + "setns_init_linux.go", + "standard_init_linux.go", + "state_linux.go", + "stats_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "console_windows.go", + "container_windows.go", + "criu_opts_windows.go", + "stats_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//vendor/github.com/Sirupsen/logrus:go_default_library", - "//vendor/github.com/docker/docker/pkg/mount:go_default_library", - "//vendor/github.com/docker/docker/pkg/symlink:go_default_library", - "//vendor/github.com/golang/protobuf/proto:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/apparmor:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/configs/validate:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/criurpc:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/keys:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/label:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/seccomp:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/stacktrace:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", - "//vendor/github.com/syndtr/gocapability/capability:go_default_library", - "//vendor/github.com/vishvananda/netlink:go_default_library", - "//vendor/github.com/vishvananda/netlink/nl:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/Sirupsen/logrus:go_default_library", + "//vendor/github.com/docker/docker/pkg/mount:go_default_library", + "//vendor/github.com/docker/docker/pkg/symlink:go_default_library", + "//vendor/github.com/golang/protobuf/proto:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/apparmor:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs/validate:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/criurpc:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/keys:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/label:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/seccomp:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/user:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", + "//vendor/github.com/syndtr/gocapability/capability:go_default_library", + "//vendor/github.com/vishvananda/netlink:go_default_library", + "//vendor/github.com/vishvananda/netlink/nl:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD index 4b95302511b..9fa75598b3a 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD @@ -10,6 +10,7 @@ load( go_library( name = "go_default_library", srcs = ["apparmor_disabled.go"], + cgo = True, tags = ["automanaged"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD index 2d6bd7c44ca..9614c962cd0 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD @@ -10,15 +10,23 @@ load( go_library( name = "go_default_library", srcs = [ - "cgroups.go", - "stats.go", - "utils.go", - ], + "cgroups_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cgroups.go", + "stats.go", + "utils.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = [ - "//vendor/github.com/docker/go-units:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/docker/go-units:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD index 04ffd13d03f..1499ddcceb9 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD @@ -10,29 +10,37 @@ load( go_library( name = "go_default_library", srcs = [ - "apply_raw.go", - "blkio.go", - "cpu.go", - "cpuacct.go", - "cpuset.go", - "devices.go", - "freezer.go", - "hugetlb.go", - "memory.go", - "name.go", - "net_cls.go", - "net_prio.go", - "perf_event.go", - "pids.go", - "utils.go", - ], + "fs_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "apply_raw.go", + "blkio.go", + "cpu.go", + "cpuacct.go", + "cpuset.go", + "devices.go", + "freezer.go", + "hugetlb.go", + "memory.go", + "name.go", + "net_cls.go", + "net_prio.go", + "perf_event.go", + "pids.go", + "utils.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = [ - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", - ], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/utils:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD index 82f543f8473..c7087ec0f74 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD @@ -9,16 +9,27 @@ load( go_library( name = "go_default_library", - srcs = ["apply_systemd.go"], + srcs = [ + "apply_nosystemd.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "apply_systemd.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ - "//vendor/github.com/coreos/go-systemd/dbus:go_default_library", - "//vendor/github.com/coreos/go-systemd/util:go_default_library", - "//vendor/github.com/godbus/dbus:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", - "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/coreos/go-systemd/dbus:go_default_library", + "//vendor/github.com/coreos/go-systemd/util:go_default_library", + "//vendor/github.com/godbus/dbus:go_default_library", + "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD index 62f460e546e..a3938627377 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD @@ -11,19 +11,29 @@ go_library( name = "go_default_library", srcs = [ "blkio_device.go", - "cgroup_unix.go", + "cgroup_unsupported.go", "config.go", - "config_unix.go", "device.go", - "device_defaults.go", "hugepage_limit.go", "interface_priority_map.go", "mount.go", "namespaces.go", - "namespaces_syscall.go", - "namespaces_unix.go", + "namespaces_syscall_unsupported.go", + "namespaces_unsupported.go", "network.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "cgroup_unix.go", + "config_unix.go", + "device_defaults.go", + "namespaces_syscall.go", + "namespaces_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "cgroup_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = ["//vendor/github.com/Sirupsen/logrus:go_default_library"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD index 93ad771b2b4..f006433babb 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD @@ -26,3 +26,9 @@ filegroup( srcs = [":package-srcs"], tags = ["automanaged"], ) + +filegroup( + name = "go_default_library_protos", + srcs = ["criurpc.proto"], + visibility = ["//visibility:public"], +) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD index 3e353b0fb7a..c2d93acec3f 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD @@ -9,7 +9,12 @@ load( go_library( name = "go_default_library", - srcs = ["keyctl.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "keyctl.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD index ace4d5c9c46..8098fd69d45 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD @@ -9,9 +9,19 @@ load( go_library( name = "go_default_library", - srcs = ["selinux.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "selinux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = ["//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library"], + deps = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD index acd6f51ecf1..c8c2ae12db0 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD @@ -23,13 +23,22 @@ cgo_genrule( go_library( name = "go_default_library", srcs = [ - "linux.go", "proc.go", - "setns_linux.go", - "syscall_linux_64.go", - "xattrs_linux.go", - ], - library = ":cgo_codegen", + "unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "linux.go", + "setns_linux.go", + "syscall_linux_64.go", + "sysconfig.go", + "xattrs_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "sysconfig_notcgo.go", + ], + "//conditions:default": [], + }), + cgo = True, tags = ["automanaged"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD index 33662738a47..97d2963adbc 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD @@ -11,9 +11,17 @@ go_library( name = "go_default_library", srcs = [ "lookup.go", - "lookup_unix.go", + "lookup_unsupported.go", "user.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "lookup_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "lookup_unix.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/pkg/sftp/BUILD b/vendor/github.com/pkg/sftp/BUILD index 141f53cfdca..973d4dd3f5f 100644 --- a/vendor/github.com/pkg/sftp/BUILD +++ b/vendor/github.com/pkg/sftp/BUILD @@ -11,17 +11,32 @@ go_library( name = "go_default_library", srcs = [ "attrs.go", - "attrs_unix.go", "client.go", "conn.go", "packet.go", "release.go", "server.go", - "server_statvfs_impl.go", - "server_statvfs_linux.go", - "server_unix.go", + "server_statvfs_stubs.go", "sftp.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "attrs_unix.go", + "server_statvfs_darwin.go", + "server_statvfs_impl.go", + "server_unix.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "attrs_unix.go", + "server_statvfs_impl.go", + "server_statvfs_linux.go", + "server_unix.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "attrs_stubs.go", + "server_stubs.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/kr/fs:go_default_library", diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD index 77d2c7fe28e..92a4dd9642c 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD @@ -10,6 +10,7 @@ load( go_library( name = "go_default_library", srcs = [ + "delegator_1_7.go", "delegator_1_8.go", "http.go", "instrument_client.go", diff --git a/vendor/github.com/seccomp/libseccomp-golang/BUILD b/vendor/github.com/seccomp/libseccomp-golang/BUILD index 91e6400e979..f5913c7a084 100644 --- a/vendor/github.com/seccomp/libseccomp-golang/BUILD +++ b/vendor/github.com/seccomp/libseccomp-golang/BUILD @@ -25,8 +25,21 @@ cgo_genrule( go_library( name = "go_default_library", - srcs = [], - library = ":cgo_codegen", + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "seccomp.go", + "seccomp_internal.go", + ], + "//conditions:default": [], + }), + cgo = True, + clinkopts = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "-lseccomp", + "-lseccomp", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/spf13/afero/BUILD b/vendor/github.com/spf13/afero/BUILD index 92276cee3b8..7e20568f2c2 100644 --- a/vendor/github.com/spf13/afero/BUILD +++ b/vendor/github.com/spf13/afero/BUILD @@ -26,7 +26,12 @@ go_library( "sftp.go", "unionFile.go", "util.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "const_bsds.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/pkg/sftp:go_default_library", diff --git a/vendor/github.com/spf13/cobra/BUILD b/vendor/github.com/spf13/cobra/BUILD index 5484971caee..17a4a36eca9 100644 --- a/vendor/github.com/spf13/cobra/BUILD +++ b/vendor/github.com/spf13/cobra/BUILD @@ -14,9 +14,21 @@ go_library( "cobra.go", "command.go", "command_notwin.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "command_win.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], - deps = ["//vendor/github.com/spf13/pflag:go_default_library"], + deps = [ + "//vendor/github.com/spf13/pflag:go_default_library", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/inconshreveable/mousetrap:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/storageos/go-api/BUILD b/vendor/github.com/storageos/go-api/BUILD index 4c5e1e9529f..969a5e7f0df 100644 --- a/vendor/github.com/storageos/go-api/BUILD +++ b/vendor/github.com/storageos/go-api/BUILD @@ -22,12 +22,22 @@ go_library( "util.go", "validation.go", "volume.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "client_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = [ "//vendor/github.com/gorilla/websocket:go_default_library", "//vendor/github.com/storageos/go-api/types:go_default_library", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/Microsoft/go-winio:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/github.com/syndtr/gocapability/capability/BUILD b/vendor/github.com/syndtr/gocapability/capability/BUILD index 2a837a65434..24abfdeb38f 100644 --- a/vendor/github.com/syndtr/gocapability/capability/BUILD +++ b/vendor/github.com/syndtr/gocapability/capability/BUILD @@ -11,11 +11,16 @@ go_library( name = "go_default_library", srcs = [ "capability.go", - "capability_linux.go", + "capability_noop.go", "enum.go", "enum_gen.go", - "syscall_linux.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "capability_linux.go", + "syscall_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/ugorji/go/codec/BUILD b/vendor/github.com/ugorji/go/codec/BUILD index ee7d0d82f3f..e07083e7beb 100644 --- a/vendor/github.com/ugorji/go/codec/BUILD +++ b/vendor/github.com/ugorji/go/codec/BUILD @@ -15,11 +15,13 @@ go_library( "cbor.go", "decode.go", "decode_go.go", + "decode_go14.go", "encode.go", "fast-path.generated.go", "gen.generated.go", "gen.go", "gen-helper.generated.go", + "gen_15.go", "gen_16.go", "gen_17.go", "helper.go", diff --git a/vendor/github.com/vishvananda/netlink/BUILD b/vendor/github.com/vishvananda/netlink/BUILD index 4914c81ff67..88cf7a17c5d 100644 --- a/vendor/github.com/vishvananda/netlink/BUILD +++ b/vendor/github.com/vishvananda/netlink/BUILD @@ -11,26 +11,31 @@ go_library( name = "go_default_library", srcs = [ "addr.go", - "addr_linux.go", "filter.go", - "filter_linux.go", "link.go", - "link_linux.go", "neigh.go", - "neigh_linux.go", "netlink.go", + "netlink_unspecified.go", "protinfo.go", - "protinfo_linux.go", "qdisc.go", - "qdisc_linux.go", "route.go", - "route_linux.go", "xfrm.go", "xfrm_policy.go", - "xfrm_policy_linux.go", "xfrm_state.go", - "xfrm_state_linux.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "addr_linux.go", + "filter_linux.go", + "link_linux.go", + "neigh_linux.go", + "protinfo_linux.go", + "qdisc_linux.go", + "route_linux.go", + "xfrm_policy_linux.go", + "xfrm_state_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], deps = ["//vendor/github.com/vishvananda/netlink/nl:go_default_library"], ) diff --git a/vendor/github.com/vishvananda/netlink/nl/BUILD b/vendor/github.com/vishvananda/netlink/nl/BUILD index 30456d29140..889548c179d 100644 --- a/vendor/github.com/vishvananda/netlink/nl/BUILD +++ b/vendor/github.com/vishvananda/netlink/nl/BUILD @@ -9,16 +9,19 @@ load( go_library( name = "go_default_library", - srcs = [ - "addr_linux.go", - "link_linux.go", - "nl_linux.go", - "route_linux.go", - "tc_linux.go", - "xfrm_linux.go", - "xfrm_policy_linux.go", - "xfrm_state_linux.go", - ], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "addr_linux.go", + "link_linux.go", + "nl_linux.go", + "route_linux.go", + "tc_linux.go", + "xfrm_linux.go", + "xfrm_policy_linux.go", + "xfrm_state_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD index 9757edae8d7..69669fb6db9 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD @@ -9,7 +9,14 @@ load( go_library( name = "go_default_library", - srcs = ["sspi_unsupported.go"], + srcs = [ + "sspi_unsupported.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "sspi.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD index 5ae09ea1017..334cad75be0 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD @@ -13,8 +13,19 @@ go_library( "jwttoken.go", "oidcclient.go", "oidcclient_sspi_unsupported.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "oidcclient_sspi.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], + deps = select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "//vendor/github.com/vmware/photon-controller-go-sdk/SSPI:go_default_library", + ], + "//conditions:default": [], + }), ) filegroup( diff --git a/vendor/golang.org/x/crypto/curve25519/BUILD b/vendor/golang.org/x/crypto/curve25519/BUILD index fe43abbea6e..117551c2ac7 100644 --- a/vendor/golang.org/x/crypto/curve25519/BUILD +++ b/vendor/golang.org/x/crypto/curve25519/BUILD @@ -10,15 +10,38 @@ load( go_library( name = "go_default_library", srcs = [ - "const_amd64.s", - "cswap_amd64.s", + "curve25519.go", "doc.go", - "freeze_amd64.s", - "ladderstep_amd64.s", - "mont25519_amd64.go", - "mul_amd64.s", - "square_amd64.s", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "const_amd64.s", + "cswap_amd64.s", + "freeze_amd64.s", + "ladderstep_amd64.s", + "mont25519_amd64.go", + "mul_amd64.s", + "square_amd64.s", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "const_amd64.s", + "cswap_amd64.s", + "freeze_amd64.s", + "ladderstep_amd64.s", + "mont25519_amd64.go", + "mul_amd64.s", + "square_amd64.s", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "const_amd64.s", + "cswap_amd64.s", + "freeze_amd64.s", + "ladderstep_amd64.s", + "mont25519_amd64.go", + "mul_amd64.s", + "square_amd64.s", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/crypto/poly1305/BUILD b/vendor/golang.org/x/crypto/poly1305/BUILD index c11beb17b03..90759436065 100644 --- a/vendor/golang.org/x/crypto/poly1305/BUILD +++ b/vendor/golang.org/x/crypto/poly1305/BUILD @@ -11,9 +11,22 @@ go_library( name = "go_default_library", srcs = [ "poly1305.go", - "poly1305_amd64.s", - "sum_amd64.go", - ], + "sum_ref.go", + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "poly1305_amd64.s", + "sum_amd64.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "poly1305_amd64.s", + "sum_amd64.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "poly1305_amd64.s", + "sum_amd64.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/BUILD b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD index be4b5c42505..585e023afa0 100644 --- a/vendor/golang.org/x/crypto/salsa20/salsa/BUILD +++ b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD @@ -11,10 +11,23 @@ go_library( name = "go_default_library", srcs = [ "hsalsa20.go", - "salsa2020_amd64.s", "salsa208.go", - "salsa20_amd64.go", - ], + "salsa20_ref.go", + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "salsa2020_amd64.s", + "salsa20_amd64.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "salsa2020_amd64.s", + "salsa20_amd64.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "salsa2020_amd64.s", + "salsa20_amd64.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/crypto/ssh/terminal/BUILD b/vendor/golang.org/x/crypto/ssh/terminal/BUILD index e636c07a8e4..e7f58b613ee 100644 --- a/vendor/golang.org/x/crypto/ssh/terminal/BUILD +++ b/vendor/golang.org/x/crypto/ssh/terminal/BUILD @@ -11,9 +11,20 @@ go_library( name = "go_default_library", srcs = [ "terminal.go", - "util.go", - "util_linux.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "util.go", + "util_bsd.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "util.go", + "util_linux.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "util_windows.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/exp/inotify/BUILD b/vendor/golang.org/x/exp/inotify/BUILD index 6bb5a0b3788..6efc7dc32c2 100644 --- a/vendor/golang.org/x/exp/inotify/BUILD +++ b/vendor/golang.org/x/exp/inotify/BUILD @@ -9,7 +9,12 @@ load( go_library( name = "go_default_library", - srcs = ["inotify_linux.go"], + srcs = select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "inotify_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/net/context/BUILD b/vendor/golang.org/x/net/context/BUILD index dbb39d55cba..49d76ff35bc 100644 --- a/vendor/golang.org/x/net/context/BUILD +++ b/vendor/golang.org/x/net/context/BUILD @@ -12,6 +12,7 @@ go_library( srcs = [ "context.go", "go17.go", + "pre_go17.go", ], tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/net/context/ctxhttp/BUILD b/vendor/golang.org/x/net/context/ctxhttp/BUILD index efa77b9b428..c6e131f305c 100644 --- a/vendor/golang.org/x/net/context/ctxhttp/BUILD +++ b/vendor/golang.org/x/net/context/ctxhttp/BUILD @@ -9,7 +9,10 @@ load( go_library( name = "go_default_library", - srcs = ["ctxhttp.go"], + srcs = [ + "ctxhttp.go", + "ctxhttp_pre17.go", + ], tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], ) diff --git a/vendor/golang.org/x/net/http2/BUILD b/vendor/golang.org/x/net/http2/BUILD index a103412c644..769f9a5ef88 100644 --- a/vendor/golang.org/x/net/http2/BUILD +++ b/vendor/golang.org/x/net/http2/BUILD @@ -18,10 +18,14 @@ go_library( "frame.go", "go16.go", "go17.go", + "go17_not18.go", "go18.go", "gotrack.go", "headermap.go", "http2.go", + "not_go16.go", + "not_go17.go", + "not_go18.go", "pipe.go", "server.go", "transport.go", diff --git a/vendor/golang.org/x/sys/unix/BUILD b/vendor/golang.org/x/sys/unix/BUILD index bed30da32aa..62001aabcb3 100644 --- a/vendor/golang.org/x/sys/unix/BUILD +++ b/vendor/golang.org/x/sys/unix/BUILD @@ -10,30 +10,59 @@ load( go_library( name = "go_default_library", srcs = [ - "asm_linux_amd64.s", - "bluetooth_linux.go", - "constants.go", - "dirent.go", - "endian_little.go", - "env_unix.go", "env_unset.go", "file_unix.go", - "flock.go", - "race0.go", - "sockcmsg_linux.go", - "sockcmsg_unix.go", - "str.go", - "syscall.go", - "syscall_linux.go", - "syscall_linux_amd64.go", - "syscall_linux_amd64_gc.go", - "syscall_unix.go", - "syscall_unix_gc.go", - "zerrors_linux_amd64.go", - "zsyscall_linux_amd64.go", - "zsysnum_linux_amd64.go", - "ztypes_linux_amd64.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "asm_darwin_amd64.s", + "constants.go", + "dirent.go", + "endian_little.go", + "env_unix.go", + "flock.go", + "race0.go", + "sockcmsg_unix.go", + "str.go", + "syscall.go", + "syscall_bsd.go", + "syscall_darwin.go", + "syscall_darwin_amd64.go", + "syscall_unix.go", + "syscall_unix_gc.go", + "zerrors_darwin_amd64.go", + "zsyscall_darwin_amd64.go", + "zsysnum_darwin_amd64.go", + "ztypes_darwin_amd64.go", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "asm_linux_amd64.s", + "bluetooth_linux.go", + "constants.go", + "dirent.go", + "endian_little.go", + "env_unix.go", + "flock.go", + "race0.go", + "sockcmsg_linux.go", + "sockcmsg_unix.go", + "str.go", + "syscall.go", + "syscall_linux.go", + "syscall_linux_amd64.go", + "syscall_linux_amd64_gc.go", + "syscall_unix.go", + "syscall_unix_gc.go", + "zerrors_linux_amd64.go", + "zsyscall_linux_amd64.go", + "zsysnum_linux_amd64.go", + "ztypes_linux_amd64.go", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "endian_little.go", + ], + "//conditions:default": [], + }), + cgo = True, tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/sys/windows/BUILD b/vendor/golang.org/x/sys/windows/BUILD index 7117d56a4eb..b3fb5d5b4c7 100644 --- a/vendor/golang.org/x/sys/windows/BUILD +++ b/vendor/golang.org/x/sys/windows/BUILD @@ -9,7 +9,29 @@ load( go_library( name = "go_default_library", - srcs = ["mksyscall.go"], + srcs = [ + "mksyscall.go", + ] + select({ + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "asm_windows_amd64.s", + "dll_windows.go", + "env_unset.go", + "env_windows.go", + "eventlog.go", + "exec_windows.go", + "memory_windows.go", + "race0.go", + "security_windows.go", + "service.go", + "str.go", + "syscall.go", + "syscall_windows.go", + "zsyscall_windows.go", + "ztypes_windows.go", + "ztypes_windows_amd64.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/golang.org/x/text/language/BUILD b/vendor/golang.org/x/text/language/BUILD index aae748fa55a..863722e4cab 100644 --- a/vendor/golang.org/x/text/language/BUILD +++ b/vendor/golang.org/x/text/language/BUILD @@ -12,6 +12,7 @@ go_library( srcs = [ "common.go", "coverage.go", + "go1_1.go", "go1_2.go", "index.go", "language.go", diff --git a/vendor/golang.org/x/tools/container/intsets/BUILD b/vendor/golang.org/x/tools/container/intsets/BUILD index c6b2fa906a0..fe66071f9d4 100644 --- a/vendor/golang.org/x/tools/container/intsets/BUILD +++ b/vendor/golang.org/x/tools/container/intsets/BUILD @@ -10,11 +10,24 @@ load( go_library( name = "go_default_library", srcs = [ - "popcnt_amd64.go", - "popcnt_amd64.s", + "popcnt_generic.go", "sparse.go", "util.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:darwin_amd64": [ + "popcnt_amd64.go", + "popcnt_amd64.s", + ], + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "popcnt_amd64.go", + "popcnt_amd64.s", + ], + "@io_bazel_rules_go//go/platform:windows_amd64": [ + "popcnt_amd64.go", + "popcnt_amd64.s", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) diff --git a/vendor/google.golang.org/grpc/credentials/BUILD b/vendor/google.golang.org/grpc/credentials/BUILD index 4a779eddbf9..6ee3ce41741 100644 --- a/vendor/google.golang.org/grpc/credentials/BUILD +++ b/vendor/google.golang.org/grpc/credentials/BUILD @@ -12,6 +12,7 @@ go_library( srcs = [ "credentials.go", "credentials_util_go17.go", + "credentials_util_pre_go17.go", ], tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], diff --git a/vendor/google.golang.org/grpc/transport/BUILD b/vendor/google.golang.org/grpc/transport/BUILD index 4fb3cecea90..0432029f4a7 100644 --- a/vendor/google.golang.org/grpc/transport/BUILD +++ b/vendor/google.golang.org/grpc/transport/BUILD @@ -11,11 +11,13 @@ go_library( name = "go_default_library", srcs = [ "control.go", + "go16.go", "go17.go", "handler_server.go", "http2_client.go", "http2_server.go", "http_util.go", + "pre_go16.go", "transport.go", ], tags = ["automanaged"], diff --git a/vendor/gopkg.in/gcfg.v1/BUILD b/vendor/gopkg.in/gcfg.v1/BUILD index 7f584416c68..8e95d145b34 100644 --- a/vendor/gopkg.in/gcfg.v1/BUILD +++ b/vendor/gopkg.in/gcfg.v1/BUILD @@ -12,6 +12,7 @@ go_library( srcs = [ "doc.go", "errors.go", + "go1_0.go", "go1_2.go", "read.go", "set.go", diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD b/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD index e8827c50339..8a716a93b2e 100644 --- a/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD @@ -10,9 +10,14 @@ load( go_library( name = "go_default_library", srcs = [ - "chown_linux.go", + "chown.go", "lumberjack.go", - ], + ] + select({ + "@io_bazel_rules_go//go/platform:linux_amd64": [ + "chown_linux.go", + ], + "//conditions:default": [], + }), tags = ["automanaged"], ) From 5f637116812c86592182fc60d3253c02731e7b70 Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 9 Aug 2017 15:51:41 -0700 Subject: [PATCH 181/183] Remove deprecated cgo_genrules --- vendor/github.com/coreos/go-systemd/util/BUILD | 13 ------------- vendor/github.com/coreos/pkg/dlopen/BUILD | 16 ---------------- vendor/github.com/docker/docker/pkg/term/BUILD | 13 ------------- .../google/cadvisor/utils/cpuload/netlink/BUILD | 13 ------------- .../runc/libcontainer/system/BUILD | 13 ------------- .../github.com/seccomp/libseccomp-golang/BUILD | 16 ---------------- 6 files changed, 84 deletions(-) diff --git a/vendor/github.com/coreos/go-systemd/util/BUILD b/vendor/github.com/coreos/go-systemd/util/BUILD index ff41170ccde..f0409d44108 100644 --- a/vendor/github.com/coreos/go-systemd/util/BUILD +++ b/vendor/github.com/coreos/go-systemd/util/BUILD @@ -4,22 +4,9 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", - "cgo_genrule", "go_library", ) -cgo_genrule( - name = "cgo_codegen", - srcs = ["util_cgo.go"], - clinkopts = [ - "-lz", - "-lm", - "-lpthread", - "-ldl", - ], - tags = ["automanaged"], -) - go_library( name = "go_default_library", srcs = [ diff --git a/vendor/github.com/coreos/pkg/dlopen/BUILD b/vendor/github.com/coreos/pkg/dlopen/BUILD index 3992b0ee0d3..c68dee59a8f 100644 --- a/vendor/github.com/coreos/pkg/dlopen/BUILD +++ b/vendor/github.com/coreos/pkg/dlopen/BUILD @@ -4,25 +4,9 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", - "cgo_genrule", "go_library", ) -cgo_genrule( - name = "cgo_codegen", - srcs = [ - "dlopen.go", - "dlopen_example.go", - ], - clinkopts = [ - "-lz", - "-lm", - "-lpthread", - "-ldl", - ], - tags = ["automanaged"], -) - go_library( name = "go_default_library", srcs = [ diff --git a/vendor/github.com/docker/docker/pkg/term/BUILD b/vendor/github.com/docker/docker/pkg/term/BUILD index 309ba3389c9..b58a145cd0a 100644 --- a/vendor/github.com/docker/docker/pkg/term/BUILD +++ b/vendor/github.com/docker/docker/pkg/term/BUILD @@ -4,22 +4,9 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", - "cgo_genrule", "go_library", ) -cgo_genrule( - name = "cgo_codegen", - srcs = ["tc_linux_cgo.go"], - clinkopts = [ - "-lz", - "-lm", - "-lpthread", - "-ldl", - ], - tags = ["automanaged"], -) - go_library( name = "go_default_library", srcs = [ diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD index c3fb54631ff..29a252ad439 100644 --- a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD @@ -4,22 +4,9 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", - "cgo_genrule", "go_library", ) -cgo_genrule( - name = "cgo_codegen", - srcs = ["defs.go"], - clinkopts = [ - "-lz", - "-lm", - "-lpthread", - "-ldl", - ], - tags = ["automanaged"], -) - go_library( name = "go_default_library", srcs = [ diff --git a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD index c8c2ae12db0..e83cda8d3be 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD @@ -4,22 +4,9 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", - "cgo_genrule", "go_library", ) -cgo_genrule( - name = "cgo_codegen", - srcs = ["sysconfig.go"], - clinkopts = [ - "-lz", - "-lm", - "-lpthread", - "-ldl", - ], - tags = ["automanaged"], -) - go_library( name = "go_default_library", srcs = [ diff --git a/vendor/github.com/seccomp/libseccomp-golang/BUILD b/vendor/github.com/seccomp/libseccomp-golang/BUILD index f5913c7a084..b006a463799 100644 --- a/vendor/github.com/seccomp/libseccomp-golang/BUILD +++ b/vendor/github.com/seccomp/libseccomp-golang/BUILD @@ -4,25 +4,9 @@ licenses(["notice"]) load( "@io_bazel_rules_go//go:def.bzl", - "cgo_genrule", "go_library", ) -cgo_genrule( - name = "cgo_codegen", - srcs = [ - "seccomp.go", - "seccomp_internal.go", - ], - clinkopts = [ - "-lz", - "-lm", - "-lpthread", - "-ldl", - ], - tags = ["automanaged"], -) - go_library( name = "go_default_library", srcs = select({ From 33276f06be5e872bf53ca62a095fcf0a6b6c11a8 Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 9 Aug 2017 15:57:14 -0700 Subject: [PATCH 182/183] Use buildozer to remove deprecated automanaged tags --- cluster/addons/fluentd-elasticsearch/es-image/BUILD | 2 -- cluster/gce/gci/mounter/BUILD | 2 -- cluster/images/etcd-version-monitor/BUILD | 2 -- cluster/images/etcd/attachlease/BUILD | 2 -- cluster/images/etcd/rollback/BUILD | 2 -- cmd/clicheck/BUILD | 2 -- cmd/cloud-controller-manager/BUILD | 2 -- cmd/cloud-controller-manager/app/BUILD | 1 - cmd/cloud-controller-manager/app/options/BUILD | 1 - cmd/gendocs/BUILD | 2 -- cmd/genkubedocs/BUILD | 2 -- cmd/genman/BUILD | 2 -- cmd/genslateyaml/BUILD | 2 -- cmd/genswaggertypedocs/BUILD | 2 -- cmd/genutils/BUILD | 2 -- cmd/genyaml/BUILD | 2 -- cmd/gke-certificates-controller/BUILD | 2 -- cmd/gke-certificates-controller/app/BUILD | 2 -- cmd/hyperkube/BUILD | 3 --- cmd/importverifier/BUILD | 2 -- cmd/kube-apiserver/BUILD | 2 -- cmd/kube-apiserver/app/BUILD | 1 - cmd/kube-apiserver/app/options/BUILD | 2 -- cmd/kube-apiserver/app/testing/BUILD | 2 -- cmd/kube-controller-manager/BUILD | 2 -- cmd/kube-controller-manager/app/BUILD | 2 -- cmd/kube-controller-manager/app/options/BUILD | 1 - cmd/kube-proxy/BUILD | 2 -- cmd/kube-proxy/app/BUILD | 2 -- cmd/kubeadm/BUILD | 2 -- cmd/kubeadm/app/BUILD | 1 - cmd/kubeadm/app/apis/kubeadm/BUILD | 1 - cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD | 1 - cmd/kubeadm/app/apis/kubeadm/install/BUILD | 2 -- cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD | 1 - cmd/kubeadm/app/apis/kubeadm/validation/BUILD | 2 -- cmd/kubeadm/app/cmd/BUILD | 2 -- cmd/kubeadm/app/cmd/features/BUILD | 1 - cmd/kubeadm/app/cmd/phases/BUILD | 2 -- cmd/kubeadm/app/constants/BUILD | 2 -- cmd/kubeadm/app/discovery/BUILD | 2 -- cmd/kubeadm/app/discovery/file/BUILD | 1 - cmd/kubeadm/app/discovery/https/BUILD | 1 - cmd/kubeadm/app/discovery/token/BUILD | 2 -- cmd/kubeadm/app/images/BUILD | 2 -- cmd/kubeadm/app/node/BUILD | 2 -- cmd/kubeadm/app/phases/addons/BUILD | 2 -- cmd/kubeadm/app/phases/apiconfig/BUILD | 2 -- cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD | 2 -- cmd/kubeadm/app/phases/bootstraptoken/node/BUILD | 2 -- cmd/kubeadm/app/phases/certs/BUILD | 2 -- cmd/kubeadm/app/phases/certs/pkiutil/BUILD | 2 -- cmd/kubeadm/app/phases/controlplane/BUILD | 2 -- cmd/kubeadm/app/phases/kubeconfig/BUILD | 2 -- cmd/kubeadm/app/phases/markmaster/BUILD | 2 -- cmd/kubeadm/app/phases/selfhosting/BUILD | 2 -- cmd/kubeadm/app/phases/uploadconfig/BUILD | 1 - cmd/kubeadm/app/preflight/BUILD | 2 -- cmd/kubeadm/app/util/BUILD | 2 -- cmd/kubeadm/app/util/apiclient/BUILD | 1 - cmd/kubeadm/app/util/config/BUILD | 2 -- cmd/kubeadm/app/util/kubeconfig/BUILD | 2 -- cmd/kubeadm/app/util/pubkeypin/BUILD | 2 -- cmd/kubeadm/app/util/token/BUILD | 2 -- cmd/kubeadm/test/BUILD | 1 - cmd/kubeadm/test/certs/BUILD | 1 - cmd/kubeadm/test/cmd/BUILD | 2 -- cmd/kubeadm/test/kubeconfig/BUILD | 1 - cmd/kubectl/BUILD | 2 -- cmd/kubectl/app/BUILD | 1 - cmd/kubelet/BUILD | 2 -- cmd/kubelet/app/BUILD | 2 -- cmd/kubelet/app/options/BUILD | 1 - cmd/kubemark/BUILD | 2 -- cmd/linkcheck/BUILD | 2 -- cmd/mungedocs/BUILD | 3 --- examples/BUILD | 2 -- examples/explorer/BUILD | 2 -- examples/guestbook-go/BUILD | 2 -- examples/https-nginx/BUILD | 2 -- examples/sharing-clusters/BUILD | 2 -- federation/apis/core/BUILD | 1 - federation/apis/core/install/BUILD | 1 - federation/apis/core/v1/BUILD | 1 - federation/apis/federation/BUILD | 1 - federation/apis/federation/install/BUILD | 2 -- federation/apis/federation/v1beta1/BUILD | 1 - federation/apis/federation/validation/BUILD | 2 -- federation/client/cache/BUILD | 1 - .../client/clientset_generated/federation_clientset/BUILD | 1 - .../clientset_generated/federation_clientset/fake/BUILD | 1 - .../clientset_generated/federation_clientset/scheme/BUILD | 1 - .../federation_clientset/typed/autoscaling/v1/BUILD | 1 - .../federation_clientset/typed/autoscaling/v1/fake/BUILD | 1 - .../federation_clientset/typed/batch/v1/BUILD | 1 - .../federation_clientset/typed/batch/v1/fake/BUILD | 1 - .../federation_clientset/typed/core/v1/BUILD | 1 - .../federation_clientset/typed/core/v1/fake/BUILD | 1 - .../federation_clientset/typed/extensions/v1beta1/BUILD | 1 - .../typed/extensions/v1beta1/fake/BUILD | 1 - .../federation_clientset/typed/federation/v1beta1/BUILD | 1 - .../typed/federation/v1beta1/fake/BUILD | 1 - federation/cmd/federation-apiserver/BUILD | 2 -- federation/cmd/federation-apiserver/app/BUILD | 1 - federation/cmd/federation-apiserver/app/options/BUILD | 1 - federation/cmd/federation-controller-manager/BUILD | 2 -- federation/cmd/federation-controller-manager/app/BUILD | 2 -- .../cmd/federation-controller-manager/app/options/BUILD | 1 - federation/cmd/genfeddocs/BUILD | 2 -- federation/cmd/kubefed/BUILD | 2 -- federation/cmd/kubefed/app/BUILD | 1 - federation/pkg/dnsprovider/BUILD | 2 -- federation/pkg/dnsprovider/providers/aws/route53/BUILD | 2 -- .../pkg/dnsprovider/providers/aws/route53/stubs/BUILD | 1 - federation/pkg/dnsprovider/providers/coredns/BUILD | 2 -- federation/pkg/dnsprovider/providers/coredns/stubs/BUILD | 1 - .../pkg/dnsprovider/providers/google/clouddns/BUILD | 2 -- .../dnsprovider/providers/google/clouddns/internal/BUILD | 1 - .../providers/google/clouddns/internal/interfaces/BUILD | 1 - .../providers/google/clouddns/internal/stubs/BUILD | 1 - federation/pkg/dnsprovider/rrstype/BUILD | 1 - federation/pkg/dnsprovider/tests/BUILD | 1 - federation/pkg/federatedtypes/BUILD | 2 -- federation/pkg/federatedtypes/crudtester/BUILD | 1 - federation/pkg/federation-controller/BUILD | 1 - federation/pkg/federation-controller/cluster/BUILD | 2 -- federation/pkg/federation-controller/ingress/BUILD | 2 -- federation/pkg/federation-controller/job/BUILD | 2 -- federation/pkg/federation-controller/service/BUILD | 2 -- federation/pkg/federation-controller/service/dns/BUILD | 2 -- .../pkg/federation-controller/service/ingress/BUILD | 1 - federation/pkg/federation-controller/sync/BUILD | 2 -- federation/pkg/federation-controller/util/BUILD | 2 -- .../pkg/federation-controller/util/clusterselector/BUILD | 2 -- .../pkg/federation-controller/util/deletionhelper/BUILD | 1 - federation/pkg/federation-controller/util/eventsink/BUILD | 2 -- .../pkg/federation-controller/util/finalizers/BUILD | 2 -- federation/pkg/federation-controller/util/planner/BUILD | 2 -- .../pkg/federation-controller/util/podanalyzer/BUILD | 2 -- .../federation-controller/util/replicapreferences/BUILD | 2 -- federation/pkg/federation-controller/util/test/BUILD | 1 - federation/pkg/kubefed/BUILD | 2 -- federation/pkg/kubefed/init/BUILD | 2 -- federation/pkg/kubefed/testing/BUILD | 1 - federation/pkg/kubefed/util/BUILD | 1 - federation/plugin/pkg/admission/schedulingpolicy/BUILD | 2 -- federation/registry/cluster/BUILD | 2 -- federation/registry/cluster/etcd/BUILD | 2 -- hack/BUILD | 3 --- hack/boilerplate/test/BUILD | 1 - hack/cmd/teststale/BUILD | 3 --- pkg/api/BUILD | 3 --- pkg/api/endpoints/BUILD | 2 -- pkg/api/errors/BUILD | 1 - pkg/api/events/BUILD | 2 -- pkg/api/fuzzer/BUILD | 1 - pkg/api/helper/BUILD | 2 -- pkg/api/helper/qos/BUILD | 1 - pkg/api/install/BUILD | 2 -- pkg/api/meta/BUILD | 1 - pkg/api/meta/metatypes/BUILD | 1 - pkg/api/persistentvolume/BUILD | 2 -- pkg/api/pod/BUILD | 2 -- pkg/api/ref/BUILD | 2 -- pkg/api/resource/BUILD | 2 -- pkg/api/service/BUILD | 2 -- pkg/api/testapi/BUILD | 2 -- pkg/api/testing/BUILD | 1 - pkg/api/testing/compat/BUILD | 1 - pkg/api/unversioned/BUILD | 1 - pkg/api/util/BUILD | 2 -- pkg/api/v1/BUILD | 2 -- pkg/api/v1/endpoints/BUILD | 2 -- pkg/api/v1/helper/BUILD | 2 -- pkg/api/v1/helper/qos/BUILD | 2 -- pkg/api/v1/node/BUILD | 1 - pkg/api/v1/pod/BUILD | 2 -- pkg/api/v1/resource/BUILD | 2 -- pkg/api/v1/service/BUILD | 2 -- pkg/api/v1/validation/BUILD | 1 - pkg/api/validation/BUILD | 2 -- pkg/apimachinery/tests/BUILD | 1 - pkg/apis/abac/BUILD | 1 - pkg/apis/abac/fuzzer/BUILD | 1 - pkg/apis/abac/latest/BUILD | 1 - pkg/apis/abac/v0/BUILD | 2 -- pkg/apis/abac/v1beta1/BUILD | 2 -- pkg/apis/admission/BUILD | 1 - pkg/apis/admission/fuzzer/BUILD | 1 - pkg/apis/admission/install/BUILD | 1 - pkg/apis/admission/v1alpha1/BUILD | 1 - pkg/apis/admissionregistration/BUILD | 1 - pkg/apis/admissionregistration/fuzzer/BUILD | 1 - pkg/apis/admissionregistration/install/BUILD | 1 - pkg/apis/admissionregistration/v1alpha1/BUILD | 1 - pkg/apis/admissionregistration/validation/BUILD | 2 -- pkg/apis/apps/BUILD | 1 - pkg/apis/apps/fuzzer/BUILD | 1 - pkg/apis/apps/install/BUILD | 1 - pkg/apis/apps/v1beta1/BUILD | 2 -- pkg/apis/apps/v1beta2/BUILD | 2 -- pkg/apis/apps/validation/BUILD | 2 -- pkg/apis/authentication/BUILD | 1 - pkg/apis/authentication/fuzzer/BUILD | 1 - pkg/apis/authentication/install/BUILD | 1 - pkg/apis/authentication/v1/BUILD | 1 - pkg/apis/authentication/v1beta1/BUILD | 1 - pkg/apis/authorization/BUILD | 1 - pkg/apis/authorization/fuzzer/BUILD | 1 - pkg/apis/authorization/install/BUILD | 1 - pkg/apis/authorization/v1/BUILD | 1 - pkg/apis/authorization/v1beta1/BUILD | 1 - pkg/apis/authorization/validation/BUILD | 2 -- pkg/apis/autoscaling/BUILD | 1 - pkg/apis/autoscaling/fuzzer/BUILD | 1 - pkg/apis/autoscaling/install/BUILD | 1 - pkg/apis/autoscaling/v1/BUILD | 2 -- pkg/apis/autoscaling/v2alpha1/BUILD | 1 - pkg/apis/autoscaling/validation/BUILD | 2 -- pkg/apis/batch/BUILD | 1 - pkg/apis/batch/fuzzer/BUILD | 1 - pkg/apis/batch/install/BUILD | 1 - pkg/apis/batch/v1/BUILD | 2 -- pkg/apis/batch/v2alpha1/BUILD | 2 -- pkg/apis/batch/validation/BUILD | 2 -- pkg/apis/certificates/BUILD | 1 - pkg/apis/certificates/fuzzer/BUILD | 1 - pkg/apis/certificates/install/BUILD | 1 - pkg/apis/certificates/v1beta1/BUILD | 1 - pkg/apis/certificates/validation/BUILD | 1 - pkg/apis/componentconfig/BUILD | 2 -- pkg/apis/componentconfig/fuzzer/BUILD | 1 - pkg/apis/componentconfig/install/BUILD | 1 - pkg/apis/componentconfig/v1alpha1/BUILD | 2 -- pkg/apis/componentconfig/validation/BUILD | 1 - pkg/apis/extensions/BUILD | 2 -- pkg/apis/extensions/fuzzer/BUILD | 1 - pkg/apis/extensions/install/BUILD | 1 - pkg/apis/extensions/v1beta1/BUILD | 2 -- pkg/apis/extensions/validation/BUILD | 2 -- pkg/apis/imagepolicy/BUILD | 1 - pkg/apis/imagepolicy/fuzzer/BUILD | 1 - pkg/apis/imagepolicy/install/BUILD | 1 - pkg/apis/imagepolicy/v1alpha1/BUILD | 1 - pkg/apis/meta/v1/BUILD | 1 - pkg/apis/networking/BUILD | 1 - pkg/apis/networking/fuzzer/BUILD | 1 - pkg/apis/networking/install/BUILD | 1 - pkg/apis/networking/v1/BUILD | 1 - pkg/apis/networking/validation/BUILD | 2 -- pkg/apis/policy/BUILD | 1 - pkg/apis/policy/fuzzer/BUILD | 1 - pkg/apis/policy/install/BUILD | 1 - pkg/apis/policy/v1alpha1/BUILD | 1 - pkg/apis/policy/v1beta1/BUILD | 1 - pkg/apis/policy/validation/BUILD | 2 -- pkg/apis/rbac/BUILD | 1 - pkg/apis/rbac/fuzzer/BUILD | 1 - pkg/apis/rbac/install/BUILD | 1 - pkg/apis/rbac/v1/BUILD | 1 - pkg/apis/rbac/v1alpha1/BUILD | 2 -- pkg/apis/rbac/v1beta1/BUILD | 1 - pkg/apis/rbac/validation/BUILD | 2 -- pkg/apis/scheduling/BUILD | 1 - pkg/apis/scheduling/fuzzer/BUILD | 1 - pkg/apis/scheduling/install/BUILD | 1 - pkg/apis/scheduling/v1alpha1/BUILD | 1 - pkg/apis/scheduling/validation/BUILD | 2 -- pkg/apis/settings/BUILD | 1 - pkg/apis/settings/fuzzer/BUILD | 1 - pkg/apis/settings/install/BUILD | 1 - pkg/apis/settings/v1alpha1/BUILD | 1 - pkg/apis/settings/validation/BUILD | 2 -- pkg/apis/storage/BUILD | 1 - pkg/apis/storage/fuzzer/BUILD | 1 - pkg/apis/storage/install/BUILD | 1 - pkg/apis/storage/util/BUILD | 1 - pkg/apis/storage/v1/BUILD | 1 - pkg/apis/storage/v1/util/BUILD | 1 - pkg/apis/storage/v1beta1/BUILD | 1 - pkg/apis/storage/v1beta1/util/BUILD | 1 - pkg/apis/storage/validation/BUILD | 2 -- pkg/auth/authorizer/abac/BUILD | 2 -- pkg/auth/nodeidentifier/BUILD | 2 -- pkg/auth/user/BUILD | 1 - pkg/bootstrap/api/BUILD | 1 - pkg/capabilities/BUILD | 1 - pkg/client/chaosclient/BUILD | 2 -- pkg/client/clientset_generated/internalclientset/BUILD | 1 - .../clientset_generated/internalclientset/fake/BUILD | 1 - .../clientset_generated/internalclientset/scheme/BUILD | 1 - .../typed/admissionregistration/internalversion/BUILD | 1 - .../admissionregistration/internalversion/fake/BUILD | 1 - .../internalclientset/typed/apps/internalversion/BUILD | 1 - .../typed/apps/internalversion/fake/BUILD | 1 - .../typed/authentication/internalversion/BUILD | 1 - .../typed/authentication/internalversion/fake/BUILD | 1 - .../typed/authorization/internalversion/BUILD | 1 - .../typed/authorization/internalversion/fake/BUILD | 1 - .../typed/autoscaling/internalversion/BUILD | 1 - .../typed/autoscaling/internalversion/fake/BUILD | 1 - .../internalclientset/typed/batch/internalversion/BUILD | 1 - .../typed/batch/internalversion/fake/BUILD | 1 - .../typed/certificates/internalversion/BUILD | 1 - .../typed/certificates/internalversion/fake/BUILD | 1 - .../internalclientset/typed/core/internalversion/BUILD | 1 - .../typed/core/internalversion/fake/BUILD | 1 - .../typed/extensions/internalversion/BUILD | 1 - .../typed/extensions/internalversion/fake/BUILD | 1 - .../typed/networking/internalversion/BUILD | 1 - .../typed/networking/internalversion/fake/BUILD | 1 - .../internalclientset/typed/policy/internalversion/BUILD | 1 - .../typed/policy/internalversion/fake/BUILD | 1 - .../internalclientset/typed/rbac/internalversion/BUILD | 1 - .../typed/rbac/internalversion/fake/BUILD | 1 - .../typed/scheduling/internalversion/BUILD | 1 - .../typed/scheduling/internalversion/fake/BUILD | 1 - .../typed/settings/internalversion/BUILD | 1 - .../typed/settings/internalversion/fake/BUILD | 1 - .../internalclientset/typed/storage/internalversion/BUILD | 1 - .../typed/storage/internalversion/fake/BUILD | 1 - pkg/client/conditions/BUILD | 1 - .../informers/informers_generated/internalversion/BUILD | 1 - .../internalversion/admissionregistration/BUILD | 1 - .../admissionregistration/internalversion/BUILD | 1 - .../informers_generated/internalversion/apps/BUILD | 1 - .../internalversion/apps/internalversion/BUILD | 1 - .../informers_generated/internalversion/autoscaling/BUILD | 1 - .../internalversion/autoscaling/internalversion/BUILD | 1 - .../informers_generated/internalversion/batch/BUILD | 1 - .../internalversion/batch/internalversion/BUILD | 1 - .../internalversion/certificates/BUILD | 1 - .../internalversion/certificates/internalversion/BUILD | 1 - .../informers_generated/internalversion/core/BUILD | 1 - .../internalversion/core/internalversion/BUILD | 1 - .../informers_generated/internalversion/extensions/BUILD | 1 - .../internalversion/extensions/internalversion/BUILD | 1 - .../internalversion/internalinterfaces/BUILD | 1 - .../informers_generated/internalversion/networking/BUILD | 1 - .../internalversion/networking/internalversion/BUILD | 1 - .../informers_generated/internalversion/policy/BUILD | 1 - .../internalversion/policy/internalversion/BUILD | 1 - .../informers_generated/internalversion/rbac/BUILD | 1 - .../internalversion/rbac/internalversion/BUILD | 1 - .../informers_generated/internalversion/scheduling/BUILD | 1 - .../internalversion/scheduling/internalversion/BUILD | 1 - .../informers_generated/internalversion/settings/BUILD | 1 - .../internalversion/settings/internalversion/BUILD | 1 - .../informers_generated/internalversion/storage/BUILD | 1 - .../internalversion/storage/internalversion/BUILD | 1 - pkg/client/leaderelectionconfig/BUILD | 1 - .../listers/admissionregistration/internalversion/BUILD | 1 - pkg/client/listers/apps/internalversion/BUILD | 1 - pkg/client/listers/authentication/internalversion/BUILD | 1 - pkg/client/listers/authorization/internalversion/BUILD | 1 - pkg/client/listers/autoscaling/internalversion/BUILD | 1 - pkg/client/listers/batch/internalversion/BUILD | 2 -- pkg/client/listers/certificates/internalversion/BUILD | 1 - pkg/client/listers/core/internalversion/BUILD | 1 - pkg/client/listers/extensions/internalversion/BUILD | 2 -- pkg/client/listers/imagepolicy/internalversion/BUILD | 1 - pkg/client/listers/networking/internalversion/BUILD | 1 - pkg/client/listers/policy/internalversion/BUILD | 1 - pkg/client/listers/rbac/internalversion/BUILD | 1 - pkg/client/listers/scheduling/internalversion/BUILD | 1 - pkg/client/listers/settings/internalversion/BUILD | 1 - pkg/client/listers/storage/internalversion/BUILD | 1 - pkg/client/metrics/BUILD | 1 - pkg/client/metrics/prometheus/BUILD | 1 - pkg/client/retry/BUILD | 2 -- pkg/client/tests/BUILD | 2 -- pkg/client/unversioned/BUILD | 2 -- pkg/client/unversioned/testclient/simple/BUILD | 1 - pkg/cloudprovider/BUILD | 1 - pkg/cloudprovider/providers/BUILD | 1 - pkg/cloudprovider/providers/aws/BUILD | 2 -- pkg/cloudprovider/providers/azure/BUILD | 2 -- pkg/cloudprovider/providers/cloudstack/BUILD | 2 -- pkg/cloudprovider/providers/fake/BUILD | 1 - pkg/cloudprovider/providers/gce/BUILD | 2 -- pkg/cloudprovider/providers/openstack/BUILD | 2 -- pkg/cloudprovider/providers/ovirt/BUILD | 2 -- pkg/cloudprovider/providers/photon/BUILD | 2 -- pkg/cloudprovider/providers/rackspace/BUILD | 2 -- pkg/cloudprovider/providers/vsphere/BUILD | 2 -- pkg/cloudprovider/providers/vsphere/vclib/BUILD | 1 - .../providers/vsphere/vclib/diskmanagers/BUILD | 1 - pkg/controller/BUILD | 2 -- pkg/controller/bootstrap/BUILD | 2 -- pkg/controller/certificates/BUILD | 2 -- pkg/controller/certificates/approver/BUILD | 2 -- pkg/controller/certificates/signer/BUILD | 2 -- pkg/controller/cloud/BUILD | 2 -- pkg/controller/cronjob/BUILD | 2 -- pkg/controller/daemon/BUILD | 2 -- pkg/controller/daemon/util/BUILD | 2 -- pkg/controller/deployment/BUILD | 2 -- pkg/controller/deployment/util/BUILD | 2 -- pkg/controller/disruption/BUILD | 2 -- pkg/controller/endpoint/BUILD | 2 -- pkg/controller/garbagecollector/BUILD | 2 -- pkg/controller/garbagecollector/metaonly/BUILD | 2 -- pkg/controller/history/BUILD | 2 -- pkg/controller/job/BUILD | 2 -- pkg/controller/namespace/BUILD | 1 - pkg/controller/namespace/deletion/BUILD | 2 -- pkg/controller/node/BUILD | 2 -- pkg/controller/node/ipam/BUILD | 2 -- pkg/controller/node/ipam/cidrset/BUILD | 2 -- pkg/controller/node/scheduler/BUILD | 2 -- pkg/controller/node/util/BUILD | 1 - pkg/controller/podautoscaler/BUILD | 2 -- pkg/controller/podautoscaler/metrics/BUILD | 2 -- pkg/controller/podgc/BUILD | 2 -- pkg/controller/replicaset/BUILD | 2 -- pkg/controller/replicaset/options/BUILD | 1 - pkg/controller/replication/BUILD | 2 -- pkg/controller/resourcequota/BUILD | 2 -- pkg/controller/route/BUILD | 2 -- pkg/controller/service/BUILD | 2 -- pkg/controller/serviceaccount/BUILD | 2 -- pkg/controller/statefulset/BUILD | 2 -- pkg/controller/testutil/BUILD | 1 - pkg/controller/ttl/BUILD | 2 -- pkg/controller/volume/attachdetach/BUILD | 2 -- pkg/controller/volume/attachdetach/cache/BUILD | 2 -- pkg/controller/volume/attachdetach/populator/BUILD | 2 -- pkg/controller/volume/attachdetach/reconciler/BUILD | 2 -- pkg/controller/volume/attachdetach/statusupdater/BUILD | 1 - pkg/controller/volume/attachdetach/testing/BUILD | 1 - pkg/controller/volume/attachdetach/util/BUILD | 1 - pkg/controller/volume/events/BUILD | 1 - pkg/controller/volume/persistentvolume/BUILD | 2 -- pkg/controller/volume/persistentvolume/options/BUILD | 1 - pkg/conversion/BUILD | 1 - pkg/conversion/queryparams/BUILD | 1 - pkg/credentialprovider/BUILD | 2 -- pkg/credentialprovider/aws/BUILD | 2 -- pkg/credentialprovider/azure/BUILD | 2 -- pkg/credentialprovider/gcp/BUILD | 2 -- pkg/credentialprovider/rancher/BUILD | 2 -- pkg/features/BUILD | 1 - pkg/fieldpath/BUILD | 2 -- pkg/fields/BUILD | 1 - pkg/generated/BUILD | 1 - pkg/hyperkube/BUILD | 1 - pkg/kubeapiserver/BUILD | 2 -- pkg/kubeapiserver/admission/BUILD | 2 -- pkg/kubeapiserver/admission/configuration/BUILD | 2 -- pkg/kubeapiserver/authenticator/BUILD | 1 - pkg/kubeapiserver/authorizer/BUILD | 2 -- pkg/kubeapiserver/authorizer/modes/BUILD | 2 -- pkg/kubeapiserver/options/BUILD | 2 -- pkg/kubeapiserver/server/BUILD | 1 - pkg/kubectl/BUILD | 2 -- pkg/kubectl/cmd/BUILD | 4 ---- pkg/kubectl/cmd/auth/BUILD | 2 -- pkg/kubectl/cmd/config/BUILD | 2 -- pkg/kubectl/cmd/rollout/BUILD | 1 - pkg/kubectl/cmd/set/BUILD | 2 -- pkg/kubectl/cmd/templates/BUILD | 1 - pkg/kubectl/cmd/testdata/edit/BUILD | 2 -- pkg/kubectl/cmd/testing/BUILD | 1 - pkg/kubectl/cmd/util/BUILD | 2 -- pkg/kubectl/cmd/util/editor/BUILD | 2 -- pkg/kubectl/cmd/util/jsonmerge/BUILD | 1 - pkg/kubectl/cmd/util/openapi/BUILD | 2 -- pkg/kubectl/cmd/util/sanity/BUILD | 1 - pkg/kubectl/metricsutil/BUILD | 1 - pkg/kubectl/plugins/BUILD | 2 -- pkg/kubectl/proxy/BUILD | 2 -- pkg/kubectl/resource/BUILD | 4 ---- pkg/kubectl/testing/BUILD | 1 - pkg/kubectl/util/BUILD | 1 - pkg/kubectl/util/crlf/BUILD | 1 - pkg/kubectl/util/logs/BUILD | 1 - pkg/kubectl/util/slice/BUILD | 2 -- pkg/kubectl/util/term/BUILD | 2 -- pkg/kubelet/BUILD | 2 -- pkg/kubelet/apis/BUILD | 1 - pkg/kubelet/apis/cri/BUILD | 1 - pkg/kubelet/apis/cri/testing/BUILD | 1 - pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD | 1 - pkg/kubelet/apis/stats/v1alpha1/BUILD | 1 - pkg/kubelet/cadvisor/BUILD | 2 -- pkg/kubelet/cadvisor/testing/BUILD | 1 - pkg/kubelet/certificate/BUILD | 2 -- pkg/kubelet/certificate/bootstrap/BUILD | 2 -- pkg/kubelet/client/BUILD | 4 ---- pkg/kubelet/cm/BUILD | 2 -- pkg/kubelet/cm/util/BUILD | 1 - pkg/kubelet/config/BUILD | 2 -- pkg/kubelet/configmap/BUILD | 2 -- pkg/kubelet/container/BUILD | 3 --- pkg/kubelet/container/testing/BUILD | 1 - pkg/kubelet/custommetrics/BUILD | 2 -- pkg/kubelet/dockershim/BUILD | 2 -- pkg/kubelet/dockershim/cm/BUILD | 1 - pkg/kubelet/dockershim/errors/BUILD | 1 - pkg/kubelet/dockershim/libdocker/BUILD | 2 -- pkg/kubelet/dockershim/remote/BUILD | 1 - pkg/kubelet/dockershim/testing/BUILD | 1 - pkg/kubelet/envvars/BUILD | 2 -- pkg/kubelet/events/BUILD | 1 - pkg/kubelet/eviction/BUILD | 2 -- pkg/kubelet/eviction/api/BUILD | 1 - pkg/kubelet/gpu/BUILD | 1 - pkg/kubelet/gpu/nvidia/BUILD | 2 -- pkg/kubelet/images/BUILD | 2 -- pkg/kubelet/kubeletconfig/BUILD | 1 - pkg/kubelet/kubeletconfig/badconfig/BUILD | 2 -- pkg/kubelet/kubeletconfig/checkpoint/BUILD | 2 -- pkg/kubelet/kubeletconfig/checkpoint/store/BUILD | 2 -- pkg/kubelet/kubeletconfig/configfiles/BUILD | 1 - pkg/kubelet/kubeletconfig/startups/BUILD | 2 -- pkg/kubelet/kubeletconfig/status/BUILD | 1 - pkg/kubelet/kubeletconfig/util/codec/BUILD | 1 - pkg/kubelet/kubeletconfig/util/equal/BUILD | 1 - pkg/kubelet/kubeletconfig/util/files/BUILD | 1 - pkg/kubelet/kubeletconfig/util/filesystem/BUILD | 1 - pkg/kubelet/kubeletconfig/util/log/BUILD | 1 - pkg/kubelet/kubeletconfig/util/panic/BUILD | 1 - pkg/kubelet/kubeletconfig/util/test/BUILD | 1 - pkg/kubelet/kuberuntime/BUILD | 2 -- pkg/kubelet/leaky/BUILD | 1 - pkg/kubelet/lifecycle/BUILD | 2 -- pkg/kubelet/metrics/BUILD | 1 - pkg/kubelet/network/BUILD | 1 - pkg/kubelet/network/cni/BUILD | 2 -- pkg/kubelet/network/cni/testing/BUILD | 1 - pkg/kubelet/network/hairpin/BUILD | 2 -- pkg/kubelet/network/hostport/BUILD | 2 -- pkg/kubelet/network/hostport/testing/BUILD | 1 - pkg/kubelet/network/kubenet/BUILD | 2 -- pkg/kubelet/network/testing/BUILD | 2 -- pkg/kubelet/pleg/BUILD | 2 -- pkg/kubelet/pod/BUILD | 2 -- pkg/kubelet/pod/testing/BUILD | 1 - pkg/kubelet/preemption/BUILD | 2 -- pkg/kubelet/prober/BUILD | 2 -- pkg/kubelet/prober/results/BUILD | 2 -- pkg/kubelet/prober/testing/BUILD | 1 - pkg/kubelet/qos/BUILD | 2 -- pkg/kubelet/remote/BUILD | 1 - pkg/kubelet/rkt/BUILD | 2 -- pkg/kubelet/rktshim/BUILD | 2 -- pkg/kubelet/secret/BUILD | 2 -- pkg/kubelet/server/BUILD | 2 -- pkg/kubelet/server/portforward/BUILD | 2 -- pkg/kubelet/server/remotecommand/BUILD | 1 - pkg/kubelet/server/stats/BUILD | 2 -- pkg/kubelet/server/streaming/BUILD | 2 -- pkg/kubelet/status/BUILD | 2 -- pkg/kubelet/status/testing/BUILD | 1 - pkg/kubelet/sysctl/BUILD | 2 -- pkg/kubelet/types/BUILD | 2 -- pkg/kubelet/util/BUILD | 2 -- pkg/kubelet/util/cache/BUILD | 2 -- pkg/kubelet/util/csr/BUILD | 2 -- pkg/kubelet/util/format/BUILD | 2 -- pkg/kubelet/util/ioutils/BUILD | 1 - pkg/kubelet/util/queue/BUILD | 2 -- pkg/kubelet/util/sliceutils/BUILD | 2 -- pkg/kubelet/volumemanager/BUILD | 2 -- pkg/kubelet/volumemanager/cache/BUILD | 2 -- pkg/kubelet/volumemanager/populator/BUILD | 2 -- pkg/kubelet/volumemanager/reconciler/BUILD | 2 -- pkg/kubemark/BUILD | 1 - pkg/labels/BUILD | 1 - pkg/master/BUILD | 2 -- pkg/master/controller/crdregistration/BUILD | 2 -- pkg/master/ports/BUILD | 1 - pkg/master/tunneler/BUILD | 2 -- pkg/printers/BUILD | 2 -- pkg/printers/internalversion/BUILD | 2 -- pkg/printers/storage/BUILD | 1 - pkg/probe/BUILD | 1 - pkg/probe/exec/BUILD | 2 -- pkg/probe/http/BUILD | 2 -- pkg/probe/tcp/BUILD | 2 -- pkg/proxy/BUILD | 1 - pkg/proxy/config/BUILD | 2 -- pkg/proxy/healthcheck/BUILD | 2 -- pkg/proxy/iptables/BUILD | 2 -- pkg/proxy/userspace/BUILD | 2 -- pkg/proxy/util/BUILD | 2 -- pkg/proxy/winuserspace/BUILD | 2 -- pkg/quota/BUILD | 2 -- pkg/quota/evaluator/core/BUILD | 2 -- pkg/quota/generic/BUILD | 1 - pkg/quota/install/BUILD | 1 - pkg/registry/BUILD | 1 - .../externaladmissionhookconfiguration/BUILD | 1 - .../externaladmissionhookconfiguration/storage/BUILD | 1 - .../admissionregistration/initializerconfiguration/BUILD | 1 - .../initializerconfiguration/storage/BUILD | 1 - pkg/registry/admissionregistration/rest/BUILD | 1 - pkg/registry/apps/controllerrevision/BUILD | 2 -- pkg/registry/apps/controllerrevision/storage/BUILD | 2 -- pkg/registry/apps/rest/BUILD | 1 - pkg/registry/apps/statefulset/BUILD | 2 -- pkg/registry/apps/statefulset/storage/BUILD | 2 -- pkg/registry/authentication/rest/BUILD | 1 - pkg/registry/authentication/tokenreview/BUILD | 1 - pkg/registry/authorization/localsubjectaccessreview/BUILD | 1 - pkg/registry/authorization/rest/BUILD | 1 - pkg/registry/authorization/selfsubjectaccessreview/BUILD | 1 - pkg/registry/authorization/subjectaccessreview/BUILD | 2 -- pkg/registry/authorization/util/BUILD | 2 -- pkg/registry/autoscaling/horizontalpodautoscaler/BUILD | 1 - .../autoscaling/horizontalpodautoscaler/storage/BUILD | 2 -- pkg/registry/autoscaling/rest/BUILD | 1 - pkg/registry/batch/cronjob/BUILD | 2 -- pkg/registry/batch/cronjob/storage/BUILD | 2 -- pkg/registry/batch/job/BUILD | 2 -- pkg/registry/batch/job/storage/BUILD | 2 -- pkg/registry/batch/rest/BUILD | 1 - pkg/registry/cachesize/BUILD | 1 - pkg/registry/certificates/certificates/BUILD | 2 -- pkg/registry/certificates/certificates/storage/BUILD | 1 - pkg/registry/certificates/rest/BUILD | 1 - pkg/registry/core/componentstatus/BUILD | 2 -- pkg/registry/core/configmap/BUILD | 2 -- pkg/registry/core/configmap/storage/BUILD | 2 -- pkg/registry/core/endpoint/BUILD | 1 - pkg/registry/core/endpoint/storage/BUILD | 2 -- pkg/registry/core/event/BUILD | 2 -- pkg/registry/core/event/storage/BUILD | 2 -- pkg/registry/core/limitrange/BUILD | 1 - pkg/registry/core/limitrange/storage/BUILD | 2 -- pkg/registry/core/namespace/BUILD | 2 -- pkg/registry/core/namespace/storage/BUILD | 2 -- pkg/registry/core/node/BUILD | 2 -- pkg/registry/core/node/rest/BUILD | 1 - pkg/registry/core/node/storage/BUILD | 2 -- pkg/registry/core/persistentvolume/BUILD | 2 -- pkg/registry/core/persistentvolume/storage/BUILD | 2 -- pkg/registry/core/persistentvolumeclaim/BUILD | 2 -- pkg/registry/core/persistentvolumeclaim/storage/BUILD | 2 -- pkg/registry/core/pod/BUILD | 2 -- pkg/registry/core/pod/rest/BUILD | 2 -- pkg/registry/core/pod/storage/BUILD | 2 -- pkg/registry/core/podtemplate/BUILD | 1 - pkg/registry/core/podtemplate/storage/BUILD | 2 -- pkg/registry/core/rangeallocation/BUILD | 1 - pkg/registry/core/replicationcontroller/BUILD | 2 -- pkg/registry/core/replicationcontroller/storage/BUILD | 2 -- pkg/registry/core/resourcequota/BUILD | 2 -- pkg/registry/core/resourcequota/storage/BUILD | 2 -- pkg/registry/core/rest/BUILD | 2 -- pkg/registry/core/secret/BUILD | 2 -- pkg/registry/core/secret/storage/BUILD | 2 -- pkg/registry/core/service/BUILD | 2 -- pkg/registry/core/service/allocator/BUILD | 2 -- pkg/registry/core/service/allocator/storage/BUILD | 2 -- pkg/registry/core/service/ipallocator/BUILD | 2 -- pkg/registry/core/service/ipallocator/controller/BUILD | 2 -- pkg/registry/core/service/ipallocator/storage/BUILD | 2 -- pkg/registry/core/service/portallocator/BUILD | 2 -- pkg/registry/core/service/portallocator/controller/BUILD | 2 -- pkg/registry/core/service/storage/BUILD | 2 -- pkg/registry/core/serviceaccount/BUILD | 1 - pkg/registry/core/serviceaccount/storage/BUILD | 2 -- pkg/registry/extensions/controller/storage/BUILD | 2 -- pkg/registry/extensions/daemonset/BUILD | 2 -- pkg/registry/extensions/daemonset/storage/BUILD | 2 -- pkg/registry/extensions/deployment/BUILD | 2 -- pkg/registry/extensions/deployment/storage/BUILD | 2 -- pkg/registry/extensions/ingress/BUILD | 2 -- pkg/registry/extensions/ingress/storage/BUILD | 2 -- pkg/registry/extensions/networkpolicy/BUILD | 2 -- pkg/registry/extensions/networkpolicy/storage/BUILD | 2 -- pkg/registry/extensions/podsecuritypolicy/BUILD | 1 - pkg/registry/extensions/podsecuritypolicy/storage/BUILD | 2 -- pkg/registry/extensions/replicaset/BUILD | 2 -- pkg/registry/extensions/replicaset/storage/BUILD | 2 -- pkg/registry/extensions/rest/BUILD | 1 - pkg/registry/networking/networkpolicy/BUILD | 1 - pkg/registry/networking/networkpolicy/storage/BUILD | 1 - pkg/registry/networking/rest/BUILD | 1 - pkg/registry/policy/poddisruptionbudget/BUILD | 2 -- pkg/registry/policy/poddisruptionbudget/storage/BUILD | 2 -- pkg/registry/policy/rest/BUILD | 1 - pkg/registry/rbac/BUILD | 2 -- pkg/registry/rbac/clusterrole/BUILD | 1 - pkg/registry/rbac/clusterrole/policybased/BUILD | 1 - pkg/registry/rbac/clusterrole/storage/BUILD | 1 - pkg/registry/rbac/clusterrolebinding/BUILD | 1 - pkg/registry/rbac/clusterrolebinding/policybased/BUILD | 1 - pkg/registry/rbac/clusterrolebinding/storage/BUILD | 1 - pkg/registry/rbac/reconciliation/BUILD | 2 -- pkg/registry/rbac/rest/BUILD | 1 - pkg/registry/rbac/role/BUILD | 1 - pkg/registry/rbac/role/policybased/BUILD | 1 - pkg/registry/rbac/role/storage/BUILD | 1 - pkg/registry/rbac/rolebinding/BUILD | 1 - pkg/registry/rbac/rolebinding/policybased/BUILD | 1 - pkg/registry/rbac/rolebinding/storage/BUILD | 1 - pkg/registry/rbac/validation/BUILD | 2 -- pkg/registry/registrytest/BUILD | 1 - pkg/registry/scheduling/priorityclass/BUILD | 2 -- pkg/registry/scheduling/priorityclass/storage/BUILD | 2 -- pkg/registry/scheduling/rest/BUILD | 1 - pkg/registry/settings/podpreset/BUILD | 1 - pkg/registry/settings/podpreset/storage/BUILD | 1 - pkg/registry/settings/rest/BUILD | 1 - pkg/registry/storage/rest/BUILD | 1 - pkg/registry/storage/storageclass/BUILD | 2 -- pkg/registry/storage/storageclass/storage/BUILD | 2 -- pkg/routes/BUILD | 1 - pkg/runtime/BUILD | 1 - pkg/runtime/serializer/BUILD | 1 - pkg/runtime/serializer/json/BUILD | 1 - pkg/runtime/serializer/protobuf/BUILD | 1 - pkg/runtime/serializer/recognizer/BUILD | 1 - pkg/runtime/serializer/streaming/BUILD | 1 - pkg/runtime/serializer/versioning/BUILD | 1 - pkg/security/BUILD | 1 - pkg/security/apparmor/BUILD | 2 -- pkg/security/podsecuritypolicy/BUILD | 2 -- pkg/security/podsecuritypolicy/apparmor/BUILD | 2 -- pkg/security/podsecuritypolicy/capabilities/BUILD | 2 -- pkg/security/podsecuritypolicy/group/BUILD | 2 -- pkg/security/podsecuritypolicy/seccomp/BUILD | 2 -- pkg/security/podsecuritypolicy/selinux/BUILD | 2 -- pkg/security/podsecuritypolicy/sysctl/BUILD | 2 -- pkg/security/podsecuritypolicy/user/BUILD | 2 -- pkg/security/podsecuritypolicy/util/BUILD | 2 -- pkg/securitycontext/BUILD | 2 -- pkg/serviceaccount/BUILD | 2 -- pkg/ssh/BUILD | 2 -- pkg/types/BUILD | 1 - pkg/util/async/BUILD | 2 -- pkg/util/bandwidth/BUILD | 2 -- pkg/util/config/BUILD | 2 -- pkg/util/configz/BUILD | 2 -- pkg/util/dbus/BUILD | 2 -- pkg/util/ebtables/BUILD | 2 -- pkg/util/env/BUILD | 2 -- pkg/util/file/BUILD | 1 - pkg/util/flock/BUILD | 1 - pkg/util/goroutinemap/BUILD | 2 -- pkg/util/goroutinemap/exponentialbackoff/BUILD | 1 - pkg/util/hash/BUILD | 2 -- pkg/util/i18n/BUILD | 2 -- pkg/util/initsystem/BUILD | 1 - pkg/util/interrupt/BUILD | 1 - pkg/util/io/BUILD | 1 - pkg/util/ipconfig/BUILD | 2 -- pkg/util/iptables/BUILD | 2 -- pkg/util/iptables/testing/BUILD | 1 - pkg/util/keymutex/BUILD | 2 -- pkg/util/labels/BUILD | 2 -- pkg/util/limitwriter/BUILD | 2 -- pkg/util/maps/BUILD | 1 - pkg/util/metrics/BUILD | 1 - pkg/util/mount/BUILD | 2 -- pkg/util/net/sets/BUILD | 2 -- pkg/util/netsh/BUILD | 1 - pkg/util/netsh/testing/BUILD | 1 - pkg/util/node/BUILD | 2 -- pkg/util/oom/BUILD | 2 -- pkg/util/parsers/BUILD | 2 -- pkg/util/pointer/BUILD | 2 -- pkg/util/procfs/BUILD | 4 ---- pkg/util/reflector/prometheus/BUILD | 1 - pkg/util/removeall/BUILD | 2 -- pkg/util/resourcecontainer/BUILD | 1 - pkg/util/rlimit/BUILD | 1 - pkg/util/selinux/BUILD | 1 - pkg/util/slice/BUILD | 2 -- pkg/util/strings/BUILD | 2 -- pkg/util/sysctl/BUILD | 1 - pkg/util/sysctl/testing/BUILD | 1 - pkg/util/system/BUILD | 2 -- pkg/util/tail/BUILD | 2 -- pkg/util/taints/BUILD | 2 -- pkg/util/template/BUILD | 2 -- pkg/util/term/BUILD | 1 - pkg/util/threading/BUILD | 2 -- pkg/util/tolerations/BUILD | 2 -- pkg/util/version/BUILD | 2 -- pkg/util/workqueue/prometheus/BUILD | 1 - pkg/version/BUILD | 1 - pkg/version/prometheus/BUILD | 1 - pkg/version/verflag/BUILD | 1 - pkg/volume/BUILD | 3 --- pkg/volume/aws_ebs/BUILD | 2 -- pkg/volume/azure_dd/BUILD | 2 -- pkg/volume/azure_file/BUILD | 2 -- pkg/volume/cephfs/BUILD | 2 -- pkg/volume/cinder/BUILD | 2 -- pkg/volume/configmap/BUILD | 2 -- pkg/volume/downwardapi/BUILD | 2 -- pkg/volume/empty_dir/BUILD | 2 -- pkg/volume/fc/BUILD | 2 -- pkg/volume/flexvolume/BUILD | 2 -- pkg/volume/flocker/BUILD | 2 -- pkg/volume/gce_pd/BUILD | 2 -- pkg/volume/git_repo/BUILD | 2 -- pkg/volume/glusterfs/BUILD | 2 -- pkg/volume/host_path/BUILD | 2 -- pkg/volume/iscsi/BUILD | 2 -- pkg/volume/local/BUILD | 2 -- pkg/volume/nfs/BUILD | 2 -- pkg/volume/photon_pd/BUILD | 2 -- pkg/volume/portworx/BUILD | 2 -- pkg/volume/projected/BUILD | 2 -- pkg/volume/quobyte/BUILD | 2 -- pkg/volume/rbd/BUILD | 2 -- pkg/volume/scaleio/BUILD | 2 -- pkg/volume/secret/BUILD | 2 -- pkg/volume/storageos/BUILD | 2 -- pkg/volume/testing/BUILD | 1 - pkg/volume/util/BUILD | 2 -- pkg/volume/util/nestedpendingoperations/BUILD | 2 -- pkg/volume/util/operationexecutor/BUILD | 2 -- pkg/volume/util/types/BUILD | 1 - pkg/volume/util/volumehelper/BUILD | 1 - pkg/volume/validation/BUILD | 2 -- pkg/volume/vsphere_volume/BUILD | 2 -- pkg/watch/BUILD | 1 - pkg/watch/json/BUILD | 1 - pkg/watch/versioned/BUILD | 1 - plugin/cmd/kube-scheduler/BUILD | 2 -- plugin/cmd/kube-scheduler/app/BUILD | 2 -- plugin/cmd/kube-scheduler/app/options/BUILD | 1 - plugin/pkg/admission/admit/BUILD | 2 -- plugin/pkg/admission/alwayspullimages/BUILD | 2 -- plugin/pkg/admission/antiaffinity/BUILD | 2 -- plugin/pkg/admission/defaulttolerationseconds/BUILD | 2 -- plugin/pkg/admission/deny/BUILD | 2 -- plugin/pkg/admission/exec/BUILD | 2 -- plugin/pkg/admission/gc/BUILD | 2 -- plugin/pkg/admission/imagepolicy/BUILD | 2 -- plugin/pkg/admission/initialization/BUILD | 2 -- plugin/pkg/admission/initialresources/BUILD | 2 -- plugin/pkg/admission/limitranger/BUILD | 2 -- plugin/pkg/admission/namespace/autoprovision/BUILD | 2 -- plugin/pkg/admission/namespace/exists/BUILD | 2 -- plugin/pkg/admission/noderestriction/BUILD | 2 -- plugin/pkg/admission/persistentvolume/label/BUILD | 2 -- plugin/pkg/admission/podnodeselector/BUILD | 2 -- plugin/pkg/admission/podpreset/BUILD | 2 -- plugin/pkg/admission/podtolerationrestriction/BUILD | 2 -- .../apis/podtolerationrestriction/BUILD | 1 - .../apis/podtolerationrestriction/install/BUILD | 1 - .../apis/podtolerationrestriction/v1alpha1/BUILD | 1 - .../apis/podtolerationrestriction/validation/BUILD | 2 -- plugin/pkg/admission/resourcequota/BUILD | 2 -- .../pkg/admission/resourcequota/apis/resourcequota/BUILD | 1 - .../resourcequota/apis/resourcequota/install/BUILD | 1 - .../resourcequota/apis/resourcequota/v1alpha1/BUILD | 1 - .../resourcequota/apis/resourcequota/validation/BUILD | 2 -- plugin/pkg/admission/security/BUILD | 1 - plugin/pkg/admission/security/podsecuritypolicy/BUILD | 2 -- plugin/pkg/admission/securitycontext/scdeny/BUILD | 2 -- plugin/pkg/admission/serviceaccount/BUILD | 2 -- plugin/pkg/admission/storageclass/setdefault/BUILD | 2 -- plugin/pkg/admission/webhook/BUILD | 2 -- plugin/pkg/auth/BUILD | 1 - plugin/pkg/auth/authenticator/token/bootstrap/BUILD | 2 -- plugin/pkg/auth/authorizer/BUILD | 1 - plugin/pkg/auth/authorizer/node/BUILD | 2 -- plugin/pkg/auth/authorizer/rbac/BUILD | 2 -- plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD | 3 --- plugin/pkg/scheduler/BUILD | 2 -- plugin/pkg/scheduler/algorithm/BUILD | 2 -- plugin/pkg/scheduler/algorithm/predicates/BUILD | 2 -- plugin/pkg/scheduler/algorithm/priorities/BUILD | 2 -- plugin/pkg/scheduler/algorithm/priorities/util/BUILD | 2 -- plugin/pkg/scheduler/algorithmprovider/BUILD | 4 ---- plugin/pkg/scheduler/algorithmprovider/defaults/BUILD | 2 -- plugin/pkg/scheduler/api/BUILD | 1 - plugin/pkg/scheduler/api/latest/BUILD | 1 - plugin/pkg/scheduler/api/v1/BUILD | 1 - plugin/pkg/scheduler/api/validation/BUILD | 2 -- plugin/pkg/scheduler/core/BUILD | 2 -- plugin/pkg/scheduler/factory/BUILD | 2 -- plugin/pkg/scheduler/metrics/BUILD | 1 - plugin/pkg/scheduler/schedulercache/BUILD | 2 -- plugin/pkg/scheduler/testing/BUILD | 1 - plugin/pkg/scheduler/util/BUILD | 2 -- staging/BUILD | 2 -- staging/src/k8s.io/api/admission/v1alpha1/BUILD | 1 - .../src/k8s.io/api/admissionregistration/v1alpha1/BUILD | 1 - staging/src/k8s.io/api/apps/v1beta1/BUILD | 1 - staging/src/k8s.io/api/apps/v1beta2/BUILD | 1 - staging/src/k8s.io/api/authentication/v1/BUILD | 1 - staging/src/k8s.io/api/authentication/v1beta1/BUILD | 1 - staging/src/k8s.io/api/authorization/v1/BUILD | 1 - staging/src/k8s.io/api/authorization/v1beta1/BUILD | 1 - staging/src/k8s.io/api/autoscaling/v1/BUILD | 1 - staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD | 1 - staging/src/k8s.io/api/batch/v1/BUILD | 1 - staging/src/k8s.io/api/batch/v2alpha1/BUILD | 1 - staging/src/k8s.io/api/certificates/v1beta1/BUILD | 1 - staging/src/k8s.io/api/core/v1/BUILD | 2 -- staging/src/k8s.io/api/extensions/v1beta1/BUILD | 1 - staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD | 1 - staging/src/k8s.io/api/networking/v1/BUILD | 1 - staging/src/k8s.io/api/policy/v1beta1/BUILD | 1 - staging/src/k8s.io/api/rbac/v1/BUILD | 1 - staging/src/k8s.io/api/rbac/v1alpha1/BUILD | 1 - staging/src/k8s.io/api/rbac/v1beta1/BUILD | 1 - staging/src/k8s.io/api/scheduling/v1alpha1/BUILD | 1 - staging/src/k8s.io/api/settings/v1alpha1/BUILD | 1 - staging/src/k8s.io/api/storage/v1/BUILD | 1 - staging/src/k8s.io/api/storage/v1beta1/BUILD | 1 - staging/src/k8s.io/apiextensions-apiserver/BUILD | 2 -- .../apiextensions-apiserver/examples/client-go/BUILD | 2 -- .../examples/client-go/apis/cr/v1/BUILD | 2 -- .../examples/client-go/client/BUILD | 1 - .../examples/client-go/controller/BUILD | 1 - .../apiextensions-apiserver/pkg/apis/apiextensions/BUILD | 2 -- .../pkg/apis/apiextensions/fuzzer/BUILD | 1 - .../pkg/apis/apiextensions/install/BUILD | 2 -- .../pkg/apis/apiextensions/v1beta1/BUILD | 1 - .../pkg/apis/apiextensions/validation/BUILD | 2 -- .../k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD | 1 - .../pkg/client/clientset/clientset/BUILD | 1 - .../pkg/client/clientset/clientset/fake/BUILD | 1 - .../pkg/client/clientset/clientset/scheme/BUILD | 1 - .../clientset/clientset/typed/apiextensions/v1beta1/BUILD | 1 - .../clientset/typed/apiextensions/v1beta1/fake/BUILD | 1 - .../pkg/client/clientset/internalclientset/BUILD | 1 - .../pkg/client/clientset/internalclientset/fake/BUILD | 1 - .../pkg/client/clientset/internalclientset/scheme/BUILD | 1 - .../typed/apiextensions/internalversion/BUILD | 1 - .../typed/apiextensions/internalversion/fake/BUILD | 1 - .../pkg/client/informers/externalversions/BUILD | 1 - .../client/informers/externalversions/apiextensions/BUILD | 1 - .../externalversions/apiextensions/v1beta1/BUILD | 1 - .../informers/externalversions/internalinterfaces/BUILD | 1 - .../pkg/client/informers/internalversion/BUILD | 1 - .../client/informers/internalversion/apiextensions/BUILD | 1 - .../internalversion/apiextensions/internalversion/BUILD | 1 - .../informers/internalversion/internalinterfaces/BUILD | 1 - .../client/listers/apiextensions/internalversion/BUILD | 1 - .../pkg/client/listers/apiextensions/v1beta1/BUILD | 1 - .../k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD | 1 - .../pkg/controller/finalizer/BUILD | 1 - .../apiextensions-apiserver/pkg/controller/status/BUILD | 2 -- .../pkg/registry/customresource/BUILD | 1 - .../pkg/registry/customresourcedefinition/BUILD | 1 - .../k8s.io/apiextensions-apiserver/test/integration/BUILD | 5 +---- .../test/integration/testserver/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD | 3 --- staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD | 1 - .../src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD | 2 -- .../k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/api/validation/path/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD | 2 -- .../k8s.io/apimachinery/pkg/apimachinery/announced/BUILD | 2 -- .../k8s.io/apimachinery/pkg/apimachinery/registered/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD | 1 - .../apimachinery/pkg/apis/meta/internalversion/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD | 2 -- .../apimachinery/pkg/apis/meta/v1/unstructured/BUILD | 2 -- .../k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD | 1 - .../src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD | 1 - .../apimachinery/pkg/apis/testapigroup/fuzzer/BUILD | 1 - .../apimachinery/pkg/apis/testapigroup/install/BUILD | 2 -- .../k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/conversion/BUILD | 2 -- .../k8s.io/apimachinery/pkg/conversion/queryparams/BUILD | 2 -- .../k8s.io/apimachinery/pkg/conversion/unstructured/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/fields/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/labels/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/runtime/BUILD | 3 --- staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD | 2 -- .../k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD | 3 --- .../apimachinery/pkg/runtime/serializer/protobuf/BUILD | 1 - .../apimachinery/pkg/runtime/serializer/recognizer/BUILD | 1 - .../pkg/runtime/serializer/recognizer/testing/BUILD | 1 - .../apimachinery/pkg/runtime/serializer/streaming/BUILD | 2 -- .../apimachinery/pkg/runtime/serializer/testing/BUILD | 1 - .../apimachinery/pkg/runtime/serializer/versioning/BUILD | 2 -- .../k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/selection/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/test/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/types/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD | 2 -- .../k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/json/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/net/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD | 1 - .../src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD | 2 -- .../k8s.io/apimachinery/pkg/util/validation/field/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/version/BUILD | 1 - staging/src/k8s.io/apimachinery/pkg/watch/BUILD | 3 --- .../apimachinery/third_party/forked/golang/json/BUILD | 1 - .../apimachinery/third_party/forked/golang/netutil/BUILD | 1 - .../apimachinery/third_party/forked/golang/reflect/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/admission/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/admission/initializer/BUILD | 2 -- .../pkg/admission/plugin/namespace/lifecycle/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD | 1 - .../src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD | 1 - .../k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD | 1 - .../src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD | 1 - .../src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/example/BUILD | 1 - .../src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD | 1 - .../src/k8s.io/apiserver/pkg/apis/example/install/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/audit/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD | 2 -- .../apiserver/pkg/authentication/authenticator/BUILD | 1 - .../pkg/authentication/authenticatorfactory/BUILD | 1 - .../src/k8s.io/apiserver/pkg/authentication/group/BUILD | 2 -- .../apiserver/pkg/authentication/request/anonymous/BUILD | 2 -- .../pkg/authentication/request/bearertoken/BUILD | 2 -- .../pkg/authentication/request/headerrequest/BUILD | 2 -- .../apiserver/pkg/authentication/request/union/BUILD | 2 -- .../apiserver/pkg/authentication/request/websocket/BUILD | 2 -- .../apiserver/pkg/authentication/request/x509/BUILD | 2 -- .../apiserver/pkg/authentication/serviceaccount/BUILD | 2 -- .../apiserver/pkg/authentication/token/tokenfile/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/authentication/user/BUILD | 1 - .../k8s.io/apiserver/pkg/authorization/authorizer/BUILD | 1 - .../apiserver/pkg/authorization/authorizerfactory/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/authorization/union/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD | 2 -- .../apiserver/pkg/endpoints/handlers/negotiation/BUILD | 2 -- .../pkg/endpoints/handlers/responsewriters/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD | 2 -- .../k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD | 3 --- staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/features/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/registry/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD | 1 - .../k8s.io/apiserver/pkg/registry/generic/registry/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/server/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/filters/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/mux/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/options/BUILD | 2 -- .../apiserver/pkg/server/options/encryptionconfig/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/routes/BUILD | 1 - .../k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/server/storage/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD | 1 - .../src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD | 1 - .../src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD | 1 - .../apiserver/pkg/storage/etcd/testing/testingcert/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD | 2 -- .../k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/names/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD | 1 - .../apiserver/pkg/storage/storagebackend/factory/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/value/BUILD | 2 -- .../k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD | 2 -- .../apiserver/pkg/storage/value/encrypt/envelope/BUILD | 2 -- .../apiserver/pkg/storage/value/encrypt/identity/BUILD | 1 - .../apiserver/pkg/storage/value/encrypt/secretbox/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/feature/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/flag/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/logs/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/trace/BUILD | 1 - staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD | 2 -- staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD | 1 - staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD | 1 - .../src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD | 2 -- .../src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD | 1 - .../apiserver/plugin/pkg/authenticator/password/BUILD | 1 - .../plugin/pkg/authenticator/password/allow/BUILD | 2 -- .../plugin/pkg/authenticator/password/keystone/BUILD | 1 - .../plugin/pkg/authenticator/password/passwordfile/BUILD | 2 -- .../plugin/pkg/authenticator/request/basicauth/BUILD | 2 -- .../apiserver/plugin/pkg/authenticator/token/oidc/BUILD | 2 -- .../plugin/pkg/authenticator/token/oidc/testing/BUILD | 1 - .../plugin/pkg/authenticator/token/tokentest/BUILD | 1 - .../plugin/pkg/authenticator/token/webhook/BUILD | 2 -- .../k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD | 2 -- staging/src/k8s.io/client-go/discovery/BUILD | 2 -- staging/src/k8s.io/client-go/discovery/cached/BUILD | 2 -- staging/src/k8s.io/client-go/discovery/fake/BUILD | 1 - staging/src/k8s.io/client-go/dynamic/BUILD | 2 -- staging/src/k8s.io/client-go/dynamic/fake/BUILD | 1 - .../examples/create-update-delete-deployment/BUILD | 2 -- .../examples/in-cluster-client-configuration/BUILD | 2 -- .../examples/out-of-cluster-client-configuration/BUILD | 2 -- staging/src/k8s.io/client-go/examples/workqueue/BUILD | 2 -- staging/src/k8s.io/client-go/informers/BUILD | 1 - .../client-go/informers/admissionregistration/BUILD | 1 - .../informers/admissionregistration/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/informers/apps/BUILD | 1 - staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD | 1 - staging/src/k8s.io/client-go/informers/autoscaling/BUILD | 1 - .../src/k8s.io/client-go/informers/autoscaling/v1/BUILD | 1 - .../k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD | 1 - staging/src/k8s.io/client-go/informers/batch/BUILD | 1 - staging/src/k8s.io/client-go/informers/batch/v1/BUILD | 1 - .../src/k8s.io/client-go/informers/batch/v2alpha1/BUILD | 1 - staging/src/k8s.io/client-go/informers/certificates/BUILD | 1 - .../k8s.io/client-go/informers/certificates/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/informers/core/BUILD | 1 - staging/src/k8s.io/client-go/informers/core/v1/BUILD | 1 - staging/src/k8s.io/client-go/informers/extensions/BUILD | 1 - .../k8s.io/client-go/informers/extensions/v1beta1/BUILD | 1 - .../k8s.io/client-go/informers/internalinterfaces/BUILD | 1 - staging/src/k8s.io/client-go/informers/networking/BUILD | 1 - .../src/k8s.io/client-go/informers/networking/v1/BUILD | 1 - staging/src/k8s.io/client-go/informers/policy/BUILD | 1 - .../src/k8s.io/client-go/informers/policy/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/informers/rbac/BUILD | 1 - staging/src/k8s.io/client-go/informers/rbac/v1/BUILD | 1 - .../src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/informers/scheduling/BUILD | 1 - .../k8s.io/client-go/informers/scheduling/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/informers/settings/BUILD | 1 - .../k8s.io/client-go/informers/settings/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/informers/storage/BUILD | 1 - staging/src/k8s.io/client-go/informers/storage/v1/BUILD | 1 - .../src/k8s.io/client-go/informers/storage/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/kubernetes/BUILD | 1 - staging/src/k8s.io/client-go/kubernetes/fake/BUILD | 1 - staging/src/k8s.io/client-go/kubernetes/scheme/BUILD | 1 - .../kubernetes/typed/admissionregistration/v1alpha1/BUILD | 1 - .../typed/admissionregistration/v1alpha1/fake/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD | 1 - .../client-go/kubernetes/typed/apps/v1beta1/fake/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD | 1 - .../client-go/kubernetes/typed/apps/v1beta2/fake/BUILD | 1 - .../client-go/kubernetes/typed/authentication/v1/BUILD | 1 - .../kubernetes/typed/authentication/v1/fake/BUILD | 1 - .../kubernetes/typed/authentication/v1beta1/BUILD | 1 - .../kubernetes/typed/authentication/v1beta1/fake/BUILD | 1 - .../client-go/kubernetes/typed/authorization/v1/BUILD | 1 - .../kubernetes/typed/authorization/v1/fake/BUILD | 1 - .../kubernetes/typed/authorization/v1beta1/BUILD | 1 - .../kubernetes/typed/authorization/v1beta1/fake/BUILD | 1 - .../client-go/kubernetes/typed/autoscaling/v1/BUILD | 1 - .../client-go/kubernetes/typed/autoscaling/v1/fake/BUILD | 1 - .../client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD | 1 - .../kubernetes/typed/autoscaling/v2alpha1/fake/BUILD | 1 - .../src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD | 1 - .../client-go/kubernetes/typed/batch/v2alpha1/BUILD | 1 - .../client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD | 1 - .../client-go/kubernetes/typed/certificates/v1beta1/BUILD | 1 - .../kubernetes/typed/certificates/v1beta1/fake/BUILD | 1 - .../src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD | 1 - .../client-go/kubernetes/typed/extensions/v1beta1/BUILD | 1 - .../kubernetes/typed/extensions/v1beta1/fake/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/networking/v1/BUILD | 1 - .../client-go/kubernetes/typed/networking/v1/fake/BUILD | 1 - .../client-go/kubernetes/typed/policy/v1beta1/BUILD | 1 - .../client-go/kubernetes/typed/policy/v1beta1/fake/BUILD | 1 - .../src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD | 1 - .../client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD | 1 - .../client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD | 1 - .../client-go/kubernetes/typed/scheduling/v1alpha1/BUILD | 1 - .../kubernetes/typed/scheduling/v1alpha1/fake/BUILD | 1 - .../client-go/kubernetes/typed/settings/v1alpha1/BUILD | 1 - .../kubernetes/typed/settings/v1alpha1/fake/BUILD | 1 - .../k8s.io/client-go/kubernetes/typed/storage/v1/BUILD | 1 - .../client-go/kubernetes/typed/storage/v1/fake/BUILD | 1 - .../client-go/kubernetes/typed/storage/v1beta1/BUILD | 1 - .../client-go/kubernetes/typed/storage/v1beta1/fake/BUILD | 1 - .../listers/admissionregistration/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD | 1 - .../src/k8s.io/client-go/listers/authentication/v1/BUILD | 1 - .../k8s.io/client-go/listers/authentication/v1beta1/BUILD | 1 - .../src/k8s.io/client-go/listers/authorization/v1/BUILD | 1 - .../k8s.io/client-go/listers/authorization/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD | 1 - .../k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD | 1 - staging/src/k8s.io/client-go/listers/batch/v1/BUILD | 1 - staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD | 1 - .../k8s.io/client-go/listers/certificates/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/listers/core/v1/BUILD | 1 - .../src/k8s.io/client-go/listers/extensions/v1beta1/BUILD | 2 -- .../k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/listers/networking/v1/BUILD | 1 - staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/listers/rbac/v1/BUILD | 1 - staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD | 1 - .../k8s.io/client-go/listers/scheduling/v1alpha1/BUILD | 1 - .../src/k8s.io/client-go/listers/settings/v1alpha1/BUILD | 1 - staging/src/k8s.io/client-go/listers/storage/v1/BUILD | 1 - .../src/k8s.io/client-go/listers/storage/v1beta1/BUILD | 1 - staging/src/k8s.io/client-go/pkg/version/BUILD | 1 - .../pkg/auth/authenticator/token/oidc/testing/BUILD | 1 - staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD | 1 - .../k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD | 2 -- .../src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD | 2 -- .../k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD | 2 -- .../client-go/plugin/pkg/client/auth/openstack/BUILD | 2 -- staging/src/k8s.io/client-go/rest/BUILD | 2 -- staging/src/k8s.io/client-go/rest/fake/BUILD | 1 - staging/src/k8s.io/client-go/rest/watch/BUILD | 2 -- staging/src/k8s.io/client-go/testing/BUILD | 1 - .../client-go/third_party/forked/golang/template/BUILD | 1 - staging/src/k8s.io/client-go/tools/auth/BUILD | 2 -- staging/src/k8s.io/client-go/tools/cache/BUILD | 2 -- staging/src/k8s.io/client-go/tools/cache/testing/BUILD | 2 -- staging/src/k8s.io/client-go/tools/clientcmd/BUILD | 2 -- staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD | 2 -- .../src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD | 1 - staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD | 1 - staging/src/k8s.io/client-go/tools/leaderelection/BUILD | 2 -- .../client-go/tools/leaderelection/resourcelock/BUILD | 1 - staging/src/k8s.io/client-go/tools/metrics/BUILD | 1 - staging/src/k8s.io/client-go/tools/portforward/BUILD | 2 -- staging/src/k8s.io/client-go/tools/record/BUILD | 2 -- staging/src/k8s.io/client-go/tools/reference/BUILD | 1 - staging/src/k8s.io/client-go/tools/remotecommand/BUILD | 2 -- staging/src/k8s.io/client-go/transport/BUILD | 2 -- staging/src/k8s.io/client-go/transport/spdy/BUILD | 1 - staging/src/k8s.io/client-go/util/cert/BUILD | 2 -- staging/src/k8s.io/client-go/util/cert/triple/BUILD | 1 - staging/src/k8s.io/client-go/util/exec/BUILD | 1 - staging/src/k8s.io/client-go/util/flowcontrol/BUILD | 2 -- staging/src/k8s.io/client-go/util/homedir/BUILD | 1 - staging/src/k8s.io/client-go/util/integer/BUILD | 2 -- staging/src/k8s.io/client-go/util/jsonpath/BUILD | 2 -- staging/src/k8s.io/client-go/util/testing/BUILD | 2 -- staging/src/k8s.io/client-go/util/workqueue/BUILD | 3 --- staging/src/k8s.io/kube-aggregator/BUILD | 2 -- .../k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD | 1 - .../pkg/apis/apiregistration/install/BUILD | 1 - .../pkg/apis/apiregistration/v1beta1/BUILD | 1 - .../pkg/apis/apiregistration/validation/BUILD | 1 - staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/BUILD | 1 - .../pkg/client/clientset_generated/clientset/fake/BUILD | 1 - .../pkg/client/clientset_generated/clientset/scheme/BUILD | 1 - .../clientset/typed/apiregistration/v1beta1/BUILD | 1 - .../clientset/typed/apiregistration/v1beta1/fake/BUILD | 1 - .../client/clientset_generated/internalclientset/BUILD | 1 - .../clientset_generated/internalclientset/fake/BUILD | 1 - .../clientset_generated/internalclientset/scheme/BUILD | 1 - .../typed/apiregistration/internalversion/BUILD | 1 - .../typed/apiregistration/internalversion/fake/BUILD | 1 - .../pkg/client/informers/externalversions/BUILD | 1 - .../informers/externalversions/apiregistration/BUILD | 1 - .../externalversions/apiregistration/v1beta1/BUILD | 1 - .../informers/externalversions/internalinterfaces/BUILD | 1 - .../pkg/client/informers/internalversion/BUILD | 1 - .../informers/internalversion/apiregistration/BUILD | 1 - .../internalversion/apiregistration/internalversion/BUILD | 1 - .../informers/internalversion/internalinterfaces/BUILD | 1 - .../client/listers/apiregistration/internalversion/BUILD | 1 - .../pkg/client/listers/apiregistration/v1beta1/BUILD | 1 - staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD | 1 - staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD | 1 - .../kube-aggregator/pkg/controllers/autoregister/BUILD | 2 -- .../k8s.io/kube-aggregator/pkg/controllers/status/BUILD | 2 -- .../k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD | 1 - .../kube-aggregator/pkg/registry/apiservice/etcd/BUILD | 1 - staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD | 1 - .../src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD | 1 - .../k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD | 1 - .../kube-gen/cmd/client-gen/generators/scheme/BUILD | 1 - .../k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD | 1 - staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD | 2 -- .../k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD | 1 - staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD | 2 -- .../src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD | 2 -- .../kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD | 2 -- .../src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD | 1 - staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD | 2 -- .../src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD | 1 - staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD | 1 - .../src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD | 1 - staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD | 1 - staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD | 1 - .../k8s.io/kube-gen/test/clientset/internal/fake/BUILD | 1 - .../k8s.io/kube-gen/test/clientset/internal/scheme/BUILD | 1 - .../internal/typed/testgroup/internalversion/BUILD | 1 - .../internal/typed/testgroup/internalversion/fake/BUILD | 1 - .../src/k8s.io/kube-gen/test/clientset/versioned/BUILD | 1 - .../k8s.io/kube-gen/test/clientset/versioned/fake/BUILD | 1 - .../k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD | 1 - .../test/clientset/versioned/typed/testgroup/v1/BUILD | 1 - .../clientset/versioned/typed/testgroup/v1/fake/BUILD | 1 - .../k8s.io/kube-gen/test/informers/externalversions/BUILD | 1 - .../informers/externalversions/internalinterfaces/BUILD | 1 - .../test/informers/externalversions/testgroup/BUILD | 1 - .../test/informers/externalversions/testgroup/v1/BUILD | 1 - .../k8s.io/kube-gen/test/informers/internalversion/BUILD | 1 - .../informers/internalversion/internalinterfaces/BUILD | 1 - .../test/informers/internalversion/testgroup/BUILD | 1 - .../internalversion/testgroup/internalversion/BUILD | 1 - .../kube-gen/test/listers/testgroup/internalversion/BUILD | 1 - .../src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD | 1 - .../kube-gen/third_party/forked/golang/reflect/BUILD | 1 - staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD | 1 - .../k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD | 1 - .../k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD | 1 - staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD | 1 - staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD | 1 - .../src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD | 1 - .../pkg/client/clientset_generated/clientset/BUILD | 1 - .../pkg/client/clientset_generated/clientset/fake/BUILD | 1 - .../pkg/client/clientset_generated/clientset/scheme/BUILD | 1 - .../clientset/typed/metrics/v1alpha1/BUILD | 1 - .../clientset/typed/metrics/v1alpha1/fake/BUILD | 1 - .../src/k8s.io/metrics/pkg/client/custom_metrics/BUILD | 1 - .../k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD | 1 - staging/src/k8s.io/sample-apiserver/BUILD | 2 -- .../pkg/admission/plugin/banflunder/BUILD | 2 -- .../pkg/admission/wardleinitializer/BUILD | 2 -- staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD | 1 - .../k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD | 2 -- .../sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD | 1 - staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/BUILD | 1 - .../pkg/client/clientset_generated/clientset/fake/BUILD | 1 - .../pkg/client/clientset_generated/clientset/scheme/BUILD | 1 - .../clientset/typed/wardle/v1alpha1/BUILD | 1 - .../clientset/typed/wardle/v1alpha1/fake/BUILD | 1 - .../client/clientset_generated/internalclientset/BUILD | 1 - .../clientset_generated/internalclientset/fake/BUILD | 1 - .../clientset_generated/internalclientset/scheme/BUILD | 1 - .../internalclientset/typed/wardle/internalversion/BUILD | 1 - .../typed/wardle/internalversion/fake/BUILD | 1 - .../pkg/client/informers_generated/externalversions/BUILD | 1 - .../externalversions/internalinterfaces/BUILD | 1 - .../informers_generated/externalversions/wardle/BUILD | 1 - .../externalversions/wardle/v1alpha1/BUILD | 1 - .../pkg/client/informers_generated/internalversion/BUILD | 1 - .../internalversion/internalinterfaces/BUILD | 1 - .../informers_generated/internalversion/wardle/BUILD | 1 - .../internalversion/wardle/internalversion/BUILD | 1 - .../client/listers_generated/wardle/internalversion/BUILD | 1 - .../pkg/client/listers_generated/wardle/v1alpha1/BUILD | 1 - staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD | 1 - staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD | 1 - .../sample-apiserver/pkg/registry/wardle/fischer/BUILD | 1 - .../sample-apiserver/pkg/registry/wardle/flunder/BUILD | 1 - test/e2e/BUILD | 2 -- test/e2e/apimachinery/BUILD | 1 - test/e2e/apps/BUILD | 1 - test/e2e/autoscaling/BUILD | 1 - test/e2e/chaosmonkey/BUILD | 2 -- test/e2e/common/BUILD | 1 - test/e2e/framework/BUILD | 1 - test/e2e/framework/ginkgowrapper/BUILD | 1 - test/e2e/framework/metrics/BUILD | 1 - test/e2e/instrumentation/BUILD | 1 - test/e2e/instrumentation/common/BUILD | 1 - test/e2e/instrumentation/logging/BUILD | 1 - test/e2e/instrumentation/logging/elasticsearch/BUILD | 1 - test/e2e/instrumentation/logging/stackdrvier/BUILD | 1 - test/e2e/instrumentation/logging/utils/BUILD | 1 - test/e2e/instrumentation/monitoring/BUILD | 1 - test/e2e/kubectl/BUILD | 1 - test/e2e/lifecycle/BUILD | 1 - test/e2e/lifecycle/bootstrap/BUILD | 1 - test/e2e/manifest/BUILD | 1 - test/e2e/network/BUILD | 1 - test/e2e/node/BUILD | 1 - test/e2e/perftype/BUILD | 1 - test/e2e/scalability/BUILD | 1 - test/e2e/scheduling/BUILD | 1 - test/e2e/storage/BUILD | 1 - test/e2e/upgrades/BUILD | 1 - test/e2e/upgrades/apps/BUILD | 1 - test/e2e/upgrades/storage/BUILD | 1 - test/e2e_federation/BUILD | 1 - test/e2e_federation/framework/BUILD | 1 - test/e2e_federation/upgrades/BUILD | 1 - test/e2e_node/BUILD | 6 +----- test/e2e_node/builder/BUILD | 1 - test/e2e_node/environment/BUILD | 2 -- test/e2e_node/perftype/BUILD | 1 - test/e2e_node/remote/BUILD | 1 - test/e2e_node/runner/local/BUILD | 2 -- test/e2e_node/runner/remote/BUILD | 2 -- test/e2e_node/services/BUILD | 1 - test/e2e_node/system/BUILD | 2 -- test/images/clusterapi-tester/BUILD | 2 -- test/images/entrypoint-tester/BUILD | 2 -- test/images/fakegitserver/BUILD | 2 -- test/images/goproxy/BUILD | 2 -- test/images/liveness/BUILD | 2 -- test/images/logs-generator/BUILD | 2 -- test/images/mounttest/BUILD | 2 -- test/images/n-way-http/BUILD | 2 -- test/images/net/BUILD | 2 -- test/images/net/common/BUILD | 1 - test/images/net/nat/BUILD | 1 - test/images/netexec/BUILD | 2 -- test/images/nettest/BUILD | 2 -- test/images/no-snat-test-proxy/BUILD | 2 -- test/images/no-snat-test/BUILD | 2 -- test/images/port-forward-tester/BUILD | 2 -- test/images/porter/BUILD | 2 -- test/images/resource-consumer/BUILD | 2 -- test/images/resource-consumer/common/BUILD | 1 - test/images/resource-consumer/consume-cpu/BUILD | 2 -- test/images/resource-consumer/controller/BUILD | 2 -- test/images/serve-hostname/BUILD | 2 -- test/images/test-webserver/BUILD | 2 -- test/integration/BUILD | 1 - test/integration/apiserver/BUILD | 1 - test/integration/auth/BUILD | 5 +---- test/integration/client/BUILD | 5 +---- test/integration/configmap/BUILD | 5 +---- test/integration/defaulttolerationseconds/BUILD | 1 - test/integration/deployment/BUILD | 2 -- test/integration/etcd/BUILD | 1 - test/integration/evictions/BUILD | 5 +---- test/integration/examples/BUILD | 5 +---- test/integration/federation/BUILD | 5 +---- test/integration/federation/framework/BUILD | 1 - test/integration/framework/BUILD | 1 - test/integration/garbagecollector/BUILD | 5 +---- test/integration/kubectl/BUILD | 5 +---- test/integration/master/BUILD | 5 +---- test/integration/metrics/BUILD | 6 +----- test/integration/objectmeta/BUILD | 5 +---- test/integration/openshift/BUILD | 5 +---- test/integration/pods/BUILD | 5 +---- test/integration/quota/BUILD | 5 +---- test/integration/replicaset/BUILD | 5 +---- test/integration/replicationcontroller/BUILD | 5 +---- test/integration/scheduler/BUILD | 6 +----- test/integration/scheduler_perf/BUILD | 8 +------- test/integration/secrets/BUILD | 5 +---- test/integration/serviceaccount/BUILD | 5 +---- test/integration/storageclasses/BUILD | 5 +---- test/integration/ttlcontroller/BUILD | 1 - test/integration/volume/BUILD | 5 +---- test/list/BUILD | 3 --- test/soak/cauldron/BUILD | 2 -- test/soak/serve_hostnames/BUILD | 2 -- test/utils/BUILD | 1 - test/utils/junit/BUILD | 1 - third_party/forked/etcd221/pkg/fileutil/BUILD | 2 -- third_party/forked/etcd221/wal/BUILD | 1 - third_party/forked/etcd221/wal/walpb/BUILD | 1 - third_party/forked/etcd237/pkg/fileutil/BUILD | 2 -- third_party/forked/etcd237/wal/BUILD | 1 - third_party/forked/etcd237/wal/walpb/BUILD | 1 - third_party/forked/golang/expansion/BUILD | 2 -- third_party/forked/golang/reflect/BUILD | 2 -- third_party/forked/golang/template/BUILD | 1 - third_party/forked/gonum/graph/BUILD | 1 - third_party/forked/gonum/graph/internal/linear/BUILD | 1 - third_party/forked/gonum/graph/simple/BUILD | 2 -- third_party/forked/gonum/graph/traverse/BUILD | 1 - vendor/bitbucket.org/bertimus9/systemstat/BUILD | 1 - vendor/bitbucket.org/ww/goautoneg/BUILD | 1 - vendor/cloud.google.com/go/compute/metadata/BUILD | 1 - vendor/cloud.google.com/go/internal/BUILD | 1 - .../github.com/Azure/azure-sdk-for-go/arm/compute/BUILD | 1 - .../Azure/azure-sdk-for-go/arm/containerregistry/BUILD | 1 - vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD | 1 - .../github.com/Azure/azure-sdk-for-go/arm/network/BUILD | 1 - .../github.com/Azure/azure-sdk-for-go/arm/storage/BUILD | 1 - vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD | 1 - vendor/github.com/Azure/go-ansiterm/BUILD | 1 - vendor/github.com/Azure/go-autorest/autorest/BUILD | 1 - vendor/github.com/Azure/go-autorest/autorest/adal/BUILD | 1 - vendor/github.com/Azure/go-autorest/autorest/azure/BUILD | 1 - vendor/github.com/Azure/go-autorest/autorest/date/BUILD | 1 - vendor/github.com/Azure/go-autorest/autorest/to/BUILD | 1 - .../Azure/go-autorest/autorest/validation/BUILD | 1 - vendor/github.com/MakeNowJust/heredoc/BUILD | 1 - vendor/github.com/Microsoft/go-winio/BUILD | 1 - vendor/github.com/NYTimes/gziphandler/BUILD | 1 - vendor/github.com/PuerkitoBio/purell/BUILD | 1 - vendor/github.com/PuerkitoBio/urlesc/BUILD | 1 - vendor/github.com/Sirupsen/logrus/BUILD | 1 - vendor/github.com/abbot/go-http-auth/BUILD | 1 - vendor/github.com/appc/spec/schema/BUILD | 1 - vendor/github.com/appc/spec/schema/common/BUILD | 1 - vendor/github.com/appc/spec/schema/types/BUILD | 1 - vendor/github.com/appc/spec/schema/types/resource/BUILD | 1 - vendor/github.com/armon/circbuf/BUILD | 1 - vendor/github.com/asaskevich/govalidator/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/client/BUILD | 1 - .../github.com/aws/aws-sdk-go/aws/client/metadata/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD | 1 - .../aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD | 1 - .../aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD | 1 - .../aws/aws-sdk-go/aws/credentials/stscreds/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/request/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/session/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD | 1 - .../aws/aws-sdk-go/private/protocol/ec2query/BUILD | 1 - .../aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD | 1 - .../aws/aws-sdk-go/private/protocol/jsonrpc/BUILD | 1 - .../aws/aws-sdk-go/private/protocol/query/BUILD | 1 - .../aws/aws-sdk-go/private/protocol/query/queryutil/BUILD | 1 - .../github.com/aws/aws-sdk-go/private/protocol/rest/BUILD | 1 - .../aws/aws-sdk-go/private/protocol/restxml/BUILD | 1 - .../aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD | 1 - .../github.com/aws/aws-sdk-go/service/autoscaling/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/service/elb/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/service/route53/BUILD | 1 - vendor/github.com/aws/aws-sdk-go/service/sts/BUILD | 1 - vendor/github.com/beorn7/perks/quantile/BUILD | 1 - vendor/github.com/blang/semver/BUILD | 1 - vendor/github.com/boltdb/bolt/BUILD | 1 - vendor/github.com/chai2010/gettext-go/gettext/BUILD | 1 - vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD | 1 - .../github.com/chai2010/gettext-go/gettext/plural/BUILD | 1 - vendor/github.com/chai2010/gettext-go/gettext/po/BUILD | 1 - vendor/github.com/cloudflare/cfssl/auth/BUILD | 1 - vendor/github.com/cloudflare/cfssl/certdb/BUILD | 1 - vendor/github.com/cloudflare/cfssl/config/BUILD | 1 - vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD | 1 - vendor/github.com/cloudflare/cfssl/csr/BUILD | 1 - vendor/github.com/cloudflare/cfssl/errors/BUILD | 1 - vendor/github.com/cloudflare/cfssl/helpers/BUILD | 1 - .../github.com/cloudflare/cfssl/helpers/derhelpers/BUILD | 1 - vendor/github.com/cloudflare/cfssl/info/BUILD | 1 - vendor/github.com/cloudflare/cfssl/log/BUILD | 1 - vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD | 1 - vendor/github.com/cloudflare/cfssl/signer/BUILD | 1 - vendor/github.com/cloudflare/cfssl/signer/local/BUILD | 1 - vendor/github.com/clusterhq/flocker-go/BUILD | 1 - vendor/github.com/codedellemc/goscaleio/BUILD | 1 - vendor/github.com/codedellemc/goscaleio/types/v1/BUILD | 1 - vendor/github.com/codegangsta/negroni/BUILD | 1 - vendor/github.com/containernetworking/cni/libcni/BUILD | 1 - .../github.com/containernetworking/cni/pkg/invoke/BUILD | 1 - .../containernetworking/cni/pkg/types/020/BUILD | 1 - vendor/github.com/containernetworking/cni/pkg/types/BUILD | 1 - .../containernetworking/cni/pkg/types/current/BUILD | 1 - .../github.com/containernetworking/cni/pkg/version/BUILD | 1 - vendor/github.com/coreos/etcd/alarm/BUILD | 1 - vendor/github.com/coreos/etcd/auth/BUILD | 1 - vendor/github.com/coreos/etcd/auth/authpb/BUILD | 1 - vendor/github.com/coreos/etcd/client/BUILD | 1 - vendor/github.com/coreos/etcd/clientv3/BUILD | 1 - vendor/github.com/coreos/etcd/compactor/BUILD | 1 - vendor/github.com/coreos/etcd/discovery/BUILD | 1 - vendor/github.com/coreos/etcd/error/BUILD | 1 - vendor/github.com/coreos/etcd/etcdserver/BUILD | 1 - vendor/github.com/coreos/etcd/etcdserver/api/BUILD | 1 - vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD | 1 - .../coreos/etcd/etcdserver/api/v2http/httptypes/BUILD | 1 - vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD | 1 - .../coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD | 1 - vendor/github.com/coreos/etcd/etcdserver/auth/BUILD | 1 - .../github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD | 1 - vendor/github.com/coreos/etcd/etcdserver/membership/BUILD | 1 - vendor/github.com/coreos/etcd/etcdserver/stats/BUILD | 1 - vendor/github.com/coreos/etcd/integration/BUILD | 1 - vendor/github.com/coreos/etcd/lease/BUILD | 1 - vendor/github.com/coreos/etcd/lease/leasehttp/BUILD | 1 - vendor/github.com/coreos/etcd/lease/leasepb/BUILD | 1 - vendor/github.com/coreos/etcd/mvcc/BUILD | 1 - vendor/github.com/coreos/etcd/mvcc/backend/BUILD | 1 - vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/adt/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/contention/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/crc/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/fileutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/httputil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/idutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/ioutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/logutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/monotime/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/netutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/pathutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/pbutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/runtime/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/schedule/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/testutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/transport/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/types/BUILD | 1 - vendor/github.com/coreos/etcd/pkg/wait/BUILD | 1 - vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD | 1 - vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD | 1 - vendor/github.com/coreos/etcd/raft/BUILD | 1 - vendor/github.com/coreos/etcd/raft/raftpb/BUILD | 1 - vendor/github.com/coreos/etcd/rafthttp/BUILD | 1 - vendor/github.com/coreos/etcd/snap/BUILD | 1 - vendor/github.com/coreos/etcd/snap/snappb/BUILD | 1 - vendor/github.com/coreos/etcd/store/BUILD | 1 - vendor/github.com/coreos/etcd/version/BUILD | 1 - vendor/github.com/coreos/etcd/wal/BUILD | 1 - vendor/github.com/coreos/etcd/wal/walpb/BUILD | 1 - vendor/github.com/coreos/go-oidc/http/BUILD | 1 - vendor/github.com/coreos/go-oidc/jose/BUILD | 1 - vendor/github.com/coreos/go-oidc/key/BUILD | 1 - vendor/github.com/coreos/go-oidc/oauth2/BUILD | 1 - vendor/github.com/coreos/go-oidc/oidc/BUILD | 1 - vendor/github.com/coreos/go-semver/semver/BUILD | 1 - vendor/github.com/coreos/go-systemd/daemon/BUILD | 1 - vendor/github.com/coreos/go-systemd/dbus/BUILD | 1 - vendor/github.com/coreos/go-systemd/journal/BUILD | 1 - vendor/github.com/coreos/go-systemd/unit/BUILD | 1 - vendor/github.com/coreos/go-systemd/util/BUILD | 1 - vendor/github.com/coreos/pkg/capnslog/BUILD | 1 - vendor/github.com/coreos/pkg/dlopen/BUILD | 1 - vendor/github.com/coreos/pkg/health/BUILD | 1 - vendor/github.com/coreos/pkg/httputil/BUILD | 1 - vendor/github.com/coreos/pkg/timeutil/BUILD | 1 - vendor/github.com/coreos/rkt/api/v1alpha/BUILD | 1 - vendor/github.com/cpuguy83/go-md2man/md2man/BUILD | 1 - vendor/github.com/davecgh/go-spew/spew/BUILD | 1 - vendor/github.com/daviddengcn/go-colortext/BUILD | 1 - vendor/github.com/dgrijalva/jwt-go/BUILD | 1 - vendor/github.com/docker/distribution/digest/BUILD | 1 - vendor/github.com/docker/distribution/reference/BUILD | 1 - vendor/github.com/docker/docker/api/types/BUILD | 1 - vendor/github.com/docker/docker/api/types/blkiodev/BUILD | 1 - vendor/github.com/docker/docker/api/types/container/BUILD | 1 - vendor/github.com/docker/docker/api/types/events/BUILD | 1 - vendor/github.com/docker/docker/api/types/filters/BUILD | 1 - vendor/github.com/docker/docker/api/types/mount/BUILD | 1 - vendor/github.com/docker/docker/api/types/network/BUILD | 1 - vendor/github.com/docker/docker/api/types/reference/BUILD | 1 - vendor/github.com/docker/docker/api/types/registry/BUILD | 1 - vendor/github.com/docker/docker/api/types/strslice/BUILD | 1 - vendor/github.com/docker/docker/api/types/swarm/BUILD | 1 - vendor/github.com/docker/docker/api/types/time/BUILD | 1 - vendor/github.com/docker/docker/api/types/versions/BUILD | 1 - vendor/github.com/docker/docker/api/types/volume/BUILD | 1 - vendor/github.com/docker/docker/client/BUILD | 1 - vendor/github.com/docker/docker/pkg/jsonlog/BUILD | 1 - vendor/github.com/docker/docker/pkg/jsonmessage/BUILD | 1 - vendor/github.com/docker/docker/pkg/longpath/BUILD | 1 - vendor/github.com/docker/docker/pkg/mount/BUILD | 1 - vendor/github.com/docker/docker/pkg/stdcopy/BUILD | 1 - vendor/github.com/docker/docker/pkg/symlink/BUILD | 1 - vendor/github.com/docker/docker/pkg/system/BUILD | 1 - vendor/github.com/docker/docker/pkg/term/BUILD | 1 - vendor/github.com/docker/docker/pkg/term/windows/BUILD | 1 - vendor/github.com/docker/docker/pkg/tlsconfig/BUILD | 1 - vendor/github.com/docker/engine-api/client/BUILD | 1 - .../github.com/docker/engine-api/client/transport/BUILD | 1 - .../docker/engine-api/client/transport/cancellable/BUILD | 1 - vendor/github.com/docker/engine-api/types/BUILD | 1 - vendor/github.com/docker/engine-api/types/blkiodev/BUILD | 1 - vendor/github.com/docker/engine-api/types/container/BUILD | 1 - vendor/github.com/docker/engine-api/types/filters/BUILD | 1 - vendor/github.com/docker/engine-api/types/network/BUILD | 1 - vendor/github.com/docker/engine-api/types/reference/BUILD | 1 - vendor/github.com/docker/engine-api/types/registry/BUILD | 1 - vendor/github.com/docker/engine-api/types/strslice/BUILD | 1 - vendor/github.com/docker/engine-api/types/time/BUILD | 1 - vendor/github.com/docker/engine-api/types/versions/BUILD | 1 - vendor/github.com/docker/go-connections/nat/BUILD | 1 - vendor/github.com/docker/go-connections/sockets/BUILD | 1 - vendor/github.com/docker/go-connections/tlsconfig/BUILD | 1 - vendor/github.com/docker/go-units/BUILD | 1 - vendor/github.com/docker/spdystream/BUILD | 1 - vendor/github.com/docker/spdystream/spdy/BUILD | 1 - vendor/github.com/elazarl/go-bindata-assetfs/BUILD | 1 - vendor/github.com/elazarl/goproxy/BUILD | 1 - vendor/github.com/emicklei/go-restful-swagger12/BUILD | 1 - vendor/github.com/emicklei/go-restful/BUILD | 1 - vendor/github.com/emicklei/go-restful/log/BUILD | 1 - vendor/github.com/evanphx/json-patch/BUILD | 1 - vendor/github.com/exponent-io/jsonpath/BUILD | 1 - vendor/github.com/fatih/camelcase/BUILD | 1 - vendor/github.com/fsnotify/fsnotify/BUILD | 1 - vendor/github.com/garyburd/redigo/internal/BUILD | 1 - vendor/github.com/garyburd/redigo/redis/BUILD | 1 - vendor/github.com/ghodss/yaml/BUILD | 1 - vendor/github.com/go-ini/ini/BUILD | 1 - vendor/github.com/go-openapi/analysis/BUILD | 1 - vendor/github.com/go-openapi/errors/BUILD | 1 - vendor/github.com/go-openapi/jsonpointer/BUILD | 1 - vendor/github.com/go-openapi/jsonreference/BUILD | 1 - vendor/github.com/go-openapi/loads/BUILD | 1 - vendor/github.com/go-openapi/runtime/BUILD | 1 - vendor/github.com/go-openapi/spec/BUILD | 1 - vendor/github.com/go-openapi/strfmt/BUILD | 1 - vendor/github.com/go-openapi/swag/BUILD | 1 - vendor/github.com/go-openapi/validate/BUILD | 1 - vendor/github.com/godbus/dbus/BUILD | 1 - vendor/github.com/gogo/protobuf/gogoproto/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/compare/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/description/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/equal/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/face/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/gostring/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/populate/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/size/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/stringer/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/testgen/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/union/BUILD | 1 - vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD | 1 - vendor/github.com/gogo/protobuf/proto/BUILD | 1 - .../gogo/protobuf/protoc-gen-gogo/descriptor/BUILD | 1 - .../gogo/protobuf/protoc-gen-gogo/generator/BUILD | 1 - .../github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD | 1 - .../github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD | 1 - vendor/github.com/gogo/protobuf/sortkeys/BUILD | 1 - vendor/github.com/gogo/protobuf/vanity/BUILD | 1 - vendor/github.com/gogo/protobuf/vanity/command/BUILD | 1 - vendor/github.com/golang/glog/BUILD | 1 - vendor/github.com/golang/groupcache/lru/BUILD | 1 - vendor/github.com/golang/mock/gomock/BUILD | 1 - vendor/github.com/golang/protobuf/jsonpb/BUILD | 1 - vendor/github.com/golang/protobuf/proto/BUILD | 1 - vendor/github.com/golang/protobuf/ptypes/BUILD | 1 - vendor/github.com/golang/protobuf/ptypes/any/BUILD | 1 - vendor/github.com/golang/protobuf/ptypes/duration/BUILD | 1 - vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD | 1 - vendor/github.com/google/btree/BUILD | 1 - vendor/github.com/google/cadvisor/api/BUILD | 1 - vendor/github.com/google/cadvisor/cache/memory/BUILD | 1 - vendor/github.com/google/cadvisor/client/v2/BUILD | 1 - vendor/github.com/google/cadvisor/collector/BUILD | 1 - vendor/github.com/google/cadvisor/container/BUILD | 1 - vendor/github.com/google/cadvisor/container/common/BUILD | 1 - vendor/github.com/google/cadvisor/container/docker/BUILD | 1 - .../google/cadvisor/container/libcontainer/BUILD | 1 - vendor/github.com/google/cadvisor/container/raw/BUILD | 1 - vendor/github.com/google/cadvisor/container/rkt/BUILD | 1 - vendor/github.com/google/cadvisor/container/systemd/BUILD | 1 - vendor/github.com/google/cadvisor/devicemapper/BUILD | 1 - vendor/github.com/google/cadvisor/events/BUILD | 1 - vendor/github.com/google/cadvisor/fs/BUILD | 1 - vendor/github.com/google/cadvisor/healthz/BUILD | 1 - vendor/github.com/google/cadvisor/http/BUILD | 1 - vendor/github.com/google/cadvisor/http/mux/BUILD | 1 - vendor/github.com/google/cadvisor/info/v1/BUILD | 1 - vendor/github.com/google/cadvisor/info/v2/BUILD | 1 - vendor/github.com/google/cadvisor/machine/BUILD | 1 - vendor/github.com/google/cadvisor/manager/BUILD | 1 - vendor/github.com/google/cadvisor/manager/watcher/BUILD | 1 - .../github.com/google/cadvisor/manager/watcher/raw/BUILD | 1 - .../github.com/google/cadvisor/manager/watcher/rkt/BUILD | 1 - vendor/github.com/google/cadvisor/metrics/BUILD | 1 - vendor/github.com/google/cadvisor/pages/BUILD | 1 - vendor/github.com/google/cadvisor/pages/static/BUILD | 1 - vendor/github.com/google/cadvisor/storage/BUILD | 1 - vendor/github.com/google/cadvisor/summary/BUILD | 1 - vendor/github.com/google/cadvisor/utils/BUILD | 1 - vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD | 1 - vendor/github.com/google/cadvisor/utils/cpuload/BUILD | 1 - .../google/cadvisor/utils/cpuload/netlink/BUILD | 1 - vendor/github.com/google/cadvisor/utils/docker/BUILD | 1 - vendor/github.com/google/cadvisor/utils/oomparser/BUILD | 1 - vendor/github.com/google/cadvisor/utils/sysfs/BUILD | 1 - vendor/github.com/google/cadvisor/utils/sysinfo/BUILD | 1 - vendor/github.com/google/cadvisor/utils/tail/BUILD | 1 - vendor/github.com/google/cadvisor/validate/BUILD | 1 - vendor/github.com/google/cadvisor/version/BUILD | 1 - vendor/github.com/google/cadvisor/zfs/BUILD | 1 - .../github.com/google/certificate-transparency/go/BUILD | 1 - .../google/certificate-transparency/go/asn1/BUILD | 1 - .../google/certificate-transparency/go/client/BUILD | 1 - .../google/certificate-transparency/go/x509/BUILD | 1 - .../google/certificate-transparency/go/x509/pkix/BUILD | 1 - vendor/github.com/google/gofuzz/BUILD | 1 - vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD | 1 - vendor/github.com/googleapis/gnostic/compiler/BUILD | 1 - vendor/github.com/googleapis/gnostic/extensions/BUILD | 1 - vendor/github.com/gophercloud/gophercloud/BUILD | 1 - vendor/github.com/gophercloud/gophercloud/openstack/BUILD | 1 - .../openstack/blockstorage/v1/apiversions/BUILD | 1 - .../gophercloud/openstack/blockstorage/v1/volumes/BUILD | 1 - .../gophercloud/openstack/blockstorage/v2/volumes/BUILD | 1 - .../gophercloud/openstack/common/extensions/BUILD | 1 - .../openstack/compute/v2/extensions/volumeattach/BUILD | 1 - .../gophercloud/openstack/compute/v2/flavors/BUILD | 1 - .../gophercloud/openstack/compute/v2/images/BUILD | 1 - .../gophercloud/openstack/compute/v2/servers/BUILD | 1 - .../gophercloud/openstack/identity/v2/tenants/BUILD | 1 - .../gophercloud/openstack/identity/v2/tokens/BUILD | 1 - .../openstack/identity/v3/extensions/trusts/BUILD | 1 - .../gophercloud/openstack/identity/v3/tokens/BUILD | 1 - .../gophercloud/openstack/networking/v2/extensions/BUILD | 1 - .../networking/v2/extensions/layer3/floatingips/BUILD | 1 - .../networking/v2/extensions/layer3/routers/BUILD | 1 - .../networking/v2/extensions/lbaas/members/BUILD | 1 - .../networking/v2/extensions/lbaas/monitors/BUILD | 1 - .../openstack/networking/v2/extensions/lbaas/pools/BUILD | 1 - .../openstack/networking/v2/extensions/lbaas/vips/BUILD | 1 - .../networking/v2/extensions/lbaas_v2/listeners/BUILD | 1 - .../networking/v2/extensions/lbaas_v2/loadbalancers/BUILD | 1 - .../networking/v2/extensions/lbaas_v2/monitors/BUILD | 1 - .../networking/v2/extensions/lbaas_v2/pools/BUILD | 1 - .../networking/v2/extensions/security/groups/BUILD | 1 - .../networking/v2/extensions/security/rules/BUILD | 1 - .../gophercloud/openstack/networking/v2/ports/BUILD | 1 - .../gophercloud/gophercloud/openstack/utils/BUILD | 1 - .../github.com/gophercloud/gophercloud/pagination/BUILD | 1 - vendor/github.com/gorilla/context/BUILD | 1 - vendor/github.com/gorilla/mux/BUILD | 1 - vendor/github.com/gorilla/websocket/BUILD | 1 - vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD | 1 - .../github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD | 1 - .../grpc-ecosystem/grpc-gateway/runtime/internal/BUILD | 1 - .../grpc-ecosystem/grpc-gateway/utilities/BUILD | 1 - vendor/github.com/hashicorp/golang-lru/BUILD | 1 - vendor/github.com/hashicorp/golang-lru/simplelru/BUILD | 1 - vendor/github.com/hashicorp/hcl/BUILD | 1 - vendor/github.com/hashicorp/hcl/hcl/ast/BUILD | 1 - vendor/github.com/hashicorp/hcl/hcl/parser/BUILD | 1 - vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD | 1 - vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD | 1 - vendor/github.com/hashicorp/hcl/hcl/token/BUILD | 1 - vendor/github.com/hashicorp/hcl/json/parser/BUILD | 1 - vendor/github.com/hashicorp/hcl/json/scanner/BUILD | 1 - vendor/github.com/hashicorp/hcl/json/token/BUILD | 1 - .../github.com/hawkular/hawkular-client-go/metrics/BUILD | 1 - .../github.com/heketi/heketi/client/api/go-client/BUILD | 1 - vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD | 1 - vendor/github.com/heketi/heketi/pkg/utils/BUILD | 1 - vendor/github.com/howeyc/gopass/BUILD | 1 - vendor/github.com/imdario/mergo/BUILD | 1 - vendor/github.com/inconshreveable/mousetrap/BUILD | 1 - vendor/github.com/influxdata/influxdb/client/BUILD | 1 - vendor/github.com/influxdata/influxdb/client/v2/BUILD | 1 - vendor/github.com/influxdata/influxdb/models/BUILD | 1 - vendor/github.com/influxdata/influxdb/pkg/escape/BUILD | 1 - vendor/github.com/jmespath/go-jmespath/BUILD | 1 - vendor/github.com/jonboulle/clockwork/BUILD | 1 - vendor/github.com/jteeuwen/go-bindata/BUILD | 1 - vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD | 2 -- vendor/github.com/juju/ratelimit/BUILD | 1 - vendor/github.com/kardianos/osext/BUILD | 1 - vendor/github.com/karlseguin/ccache/BUILD | 1 - vendor/github.com/kr/fs/BUILD | 1 - vendor/github.com/kr/pty/BUILD | 1 - vendor/github.com/libopenstorage/openstorage/api/BUILD | 1 - .../libopenstorage/openstorage/api/client/BUILD | 1 - .../libopenstorage/openstorage/api/client/volume/BUILD | 1 - .../github.com/libopenstorage/openstorage/api/spec/BUILD | 1 - .../github.com/libopenstorage/openstorage/pkg/units/BUILD | 1 - vendor/github.com/libopenstorage/openstorage/volume/BUILD | 1 - vendor/github.com/lpabon/godbc/BUILD | 1 - vendor/github.com/magiconair/properties/BUILD | 1 - vendor/github.com/mailru/easyjson/buffer/BUILD | 1 - vendor/github.com/mailru/easyjson/jlexer/BUILD | 1 - vendor/github.com/mailru/easyjson/jwriter/BUILD | 1 - .../matttproud/golang_protobuf_extensions/pbutil/BUILD | 1 - vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD | 1 - vendor/github.com/miekg/dns/BUILD | 1 - vendor/github.com/mistifyio/go-zfs/BUILD | 1 - vendor/github.com/mitchellh/go-wordwrap/BUILD | 1 - vendor/github.com/mitchellh/mapstructure/BUILD | 1 - vendor/github.com/mreiferson/go-httpclient/BUILD | 1 - vendor/github.com/mvdan/xurls/BUILD | 1 - vendor/github.com/mxk/go-flowrate/flowrate/BUILD | 1 - vendor/github.com/onsi/ginkgo/BUILD | 1 - vendor/github.com/onsi/ginkgo/config/BUILD | 1 - vendor/github.com/onsi/ginkgo/ginkgo/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD | 1 - .../github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD | 1 - vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD | 1 - vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD | 1 - vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD | 1 - vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD | 1 - .../github.com/onsi/ginkgo/internal/containernode/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/failer/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/remote/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/spec/BUILD | 1 - .../github.com/onsi/ginkgo/internal/spec_iterator/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/suite/BUILD | 1 - .../github.com/onsi/ginkgo/internal/testingtproxy/BUILD | 1 - vendor/github.com/onsi/ginkgo/internal/writer/BUILD | 1 - vendor/github.com/onsi/ginkgo/reporters/BUILD | 1 - .../github.com/onsi/ginkgo/reporters/stenographer/BUILD | 1 - .../reporters/stenographer/support/go-colorable/BUILD | 1 - .../ginkgo/reporters/stenographer/support/go-isatty/BUILD | 1 - vendor/github.com/onsi/ginkgo/types/BUILD | 1 - vendor/github.com/onsi/gomega/BUILD | 1 - vendor/github.com/onsi/gomega/format/BUILD | 1 - vendor/github.com/onsi/gomega/gstruct/BUILD | 1 - vendor/github.com/onsi/gomega/gstruct/errors/BUILD | 1 - vendor/github.com/onsi/gomega/internal/assertion/BUILD | 1 - .../github.com/onsi/gomega/internal/asyncassertion/BUILD | 1 - .../github.com/onsi/gomega/internal/oraclematcher/BUILD | 1 - .../github.com/onsi/gomega/internal/testingtsupport/BUILD | 1 - vendor/github.com/onsi/gomega/matchers/BUILD | 1 - .../gomega/matchers/support/goraph/bipartitegraph/BUILD | 1 - .../onsi/gomega/matchers/support/goraph/edge/BUILD | 1 - .../onsi/gomega/matchers/support/goraph/node/BUILD | 1 - .../onsi/gomega/matchers/support/goraph/util/BUILD | 1 - vendor/github.com/onsi/gomega/types/BUILD | 1 - vendor/github.com/opencontainers/runc/libcontainer/BUILD | 1 - .../opencontainers/runc/libcontainer/apparmor/BUILD | 1 - .../opencontainers/runc/libcontainer/cgroups/BUILD | 1 - .../opencontainers/runc/libcontainer/cgroups/fs/BUILD | 1 - .../runc/libcontainer/cgroups/systemd/BUILD | 1 - .../opencontainers/runc/libcontainer/configs/BUILD | 1 - .../runc/libcontainer/configs/validate/BUILD | 1 - .../opencontainers/runc/libcontainer/criurpc/BUILD | 1 - .../opencontainers/runc/libcontainer/keys/BUILD | 1 - .../opencontainers/runc/libcontainer/label/BUILD | 1 - .../opencontainers/runc/libcontainer/seccomp/BUILD | 1 - .../opencontainers/runc/libcontainer/selinux/BUILD | 1 - .../opencontainers/runc/libcontainer/stacktrace/BUILD | 1 - .../opencontainers/runc/libcontainer/system/BUILD | 1 - .../opencontainers/runc/libcontainer/user/BUILD | 1 - .../opencontainers/runc/libcontainer/utils/BUILD | 1 - vendor/github.com/pborman/uuid/BUILD | 1 - vendor/github.com/pelletier/go-buffruneio/BUILD | 1 - vendor/github.com/pelletier/go-toml/BUILD | 1 - vendor/github.com/pkg/errors/BUILD | 1 - vendor/github.com/pkg/sftp/BUILD | 1 - vendor/github.com/pmezard/go-difflib/difflib/BUILD | 1 - .../github.com/prometheus/client_golang/prometheus/BUILD | 1 - .../prometheus/client_golang/prometheus/promhttp/BUILD | 1 - vendor/github.com/prometheus/client_model/go/BUILD | 1 - vendor/github.com/prometheus/common/expfmt/BUILD | 1 - .../common/internal/bitbucket.org/ww/goautoneg/BUILD | 1 - vendor/github.com/prometheus/common/model/BUILD | 1 - vendor/github.com/prometheus/procfs/BUILD | 1 - vendor/github.com/prometheus/procfs/xfs/BUILD | 1 - vendor/github.com/quobyte/api/BUILD | 1 - vendor/github.com/rackspace/gophercloud/BUILD | 1 - vendor/github.com/rackspace/gophercloud/openstack/BUILD | 1 - .../gophercloud/openstack/blockstorage/v1/volumes/BUILD | 1 - .../openstack/compute/v2/extensions/bootfromvolume/BUILD | 1 - .../openstack/compute/v2/extensions/diskconfig/BUILD | 1 - .../openstack/compute/v2/extensions/volumeattach/BUILD | 1 - .../gophercloud/openstack/compute/v2/flavors/BUILD | 1 - .../gophercloud/openstack/compute/v2/images/BUILD | 1 - .../gophercloud/openstack/compute/v2/servers/BUILD | 1 - .../gophercloud/openstack/identity/v2/tenants/BUILD | 1 - .../gophercloud/openstack/identity/v2/tokens/BUILD | 1 - .../gophercloud/openstack/identity/v3/tokens/BUILD | 1 - .../rackspace/gophercloud/openstack/utils/BUILD | 1 - vendor/github.com/rackspace/gophercloud/pagination/BUILD | 1 - vendor/github.com/rackspace/gophercloud/rackspace/BUILD | 1 - .../gophercloud/rackspace/blockstorage/v1/volumes/BUILD | 1 - .../gophercloud/rackspace/compute/v2/servers/BUILD | 1 - .../gophercloud/rackspace/compute/v2/volumeattach/BUILD | 1 - .../gophercloud/rackspace/identity/v2/tokens/BUILD | 1 - vendor/github.com/rackspace/gophercloud/testhelper/BUILD | 1 - .../rackspace/gophercloud/testhelper/client/BUILD | 1 - vendor/github.com/rancher/go-rancher/client/BUILD | 1 - vendor/github.com/renstrom/dedent/BUILD | 1 - vendor/github.com/robfig/cron/BUILD | 1 - vendor/github.com/rubiojr/go-vhd/vhd/BUILD | 1 - vendor/github.com/russross/blackfriday/BUILD | 1 - vendor/github.com/satori/uuid/BUILD | 1 - vendor/github.com/seccomp/libseccomp-golang/BUILD | 1 - vendor/github.com/shurcooL/sanitized_anchor_name/BUILD | 1 - vendor/github.com/spf13/afero/BUILD | 1 - vendor/github.com/spf13/afero/mem/BUILD | 1 - vendor/github.com/spf13/afero/sftp/BUILD | 1 - vendor/github.com/spf13/cast/BUILD | 1 - vendor/github.com/spf13/cobra/BUILD | 1 - vendor/github.com/spf13/cobra/doc/BUILD | 1 - vendor/github.com/spf13/jwalterweatherman/BUILD | 1 - vendor/github.com/spf13/pflag/BUILD | 1 - vendor/github.com/spf13/viper/BUILD | 1 - vendor/github.com/square/go-jose/BUILD | 1 - vendor/github.com/square/go-jose/cipher/BUILD | 1 - vendor/github.com/square/go-jose/json/BUILD | 1 - vendor/github.com/storageos/go-api/BUILD | 1 - vendor/github.com/storageos/go-api/types/BUILD | 1 - vendor/github.com/stretchr/objx/BUILD | 1 - vendor/github.com/stretchr/testify/assert/BUILD | 1 - vendor/github.com/stretchr/testify/mock/BUILD | 1 - vendor/github.com/stretchr/testify/require/BUILD | 1 - vendor/github.com/syndtr/gocapability/capability/BUILD | 1 - vendor/github.com/ugorji/go/codec/BUILD | 1 - vendor/github.com/ugorji/go/codec/codecgen/BUILD | 2 -- vendor/github.com/vishvananda/netlink/BUILD | 1 - vendor/github.com/vishvananda/netlink/nl/BUILD | 1 - vendor/github.com/vmware/govmomi/BUILD | 1 - vendor/github.com/vmware/govmomi/find/BUILD | 1 - vendor/github.com/vmware/govmomi/list/BUILD | 1 - vendor/github.com/vmware/govmomi/object/BUILD | 1 - vendor/github.com/vmware/govmomi/pbm/BUILD | 1 - vendor/github.com/vmware/govmomi/pbm/methods/BUILD | 1 - vendor/github.com/vmware/govmomi/pbm/types/BUILD | 1 - vendor/github.com/vmware/govmomi/property/BUILD | 1 - vendor/github.com/vmware/govmomi/session/BUILD | 1 - vendor/github.com/vmware/govmomi/task/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/debug/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/methods/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/mo/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/progress/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/soap/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/types/BUILD | 1 - vendor/github.com/vmware/govmomi/vim25/xml/BUILD | 1 - .../github.com/vmware/photon-controller-go-sdk/SSPI/BUILD | 1 - .../vmware/photon-controller-go-sdk/photon/BUILD | 1 - .../photon-controller-go-sdk/photon/lightwave/BUILD | 1 - vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD | 1 - vendor/github.com/xiang90/probing/BUILD | 1 - vendor/github.com/xyproto/simpleredis/BUILD | 1 - vendor/go.pedge.io/pb/go/google/protobuf/BUILD | 1 - vendor/go4.org/errorutil/BUILD | 1 - vendor/golang.org/x/crypto/bcrypt/BUILD | 1 - vendor/golang.org/x/crypto/blowfish/BUILD | 1 - vendor/golang.org/x/crypto/curve25519/BUILD | 1 - vendor/golang.org/x/crypto/ed25519/BUILD | 1 - .../x/crypto/ed25519/internal/edwards25519/BUILD | 1 - vendor/golang.org/x/crypto/nacl/secretbox/BUILD | 1 - vendor/golang.org/x/crypto/pkcs12/BUILD | 1 - vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD | 1 - vendor/golang.org/x/crypto/poly1305/BUILD | 1 - vendor/golang.org/x/crypto/salsa20/salsa/BUILD | 1 - vendor/golang.org/x/crypto/ssh/BUILD | 1 - vendor/golang.org/x/crypto/ssh/terminal/BUILD | 1 - vendor/golang.org/x/exp/inotify/BUILD | 1 - vendor/golang.org/x/net/context/BUILD | 1 - vendor/golang.org/x/net/context/ctxhttp/BUILD | 1 - vendor/golang.org/x/net/html/BUILD | 1 - vendor/golang.org/x/net/html/atom/BUILD | 1 - vendor/golang.org/x/net/http2/BUILD | 1 - vendor/golang.org/x/net/http2/hpack/BUILD | 1 - vendor/golang.org/x/net/idna/BUILD | 1 - vendor/golang.org/x/net/internal/timeseries/BUILD | 1 - vendor/golang.org/x/net/lex/httplex/BUILD | 1 - vendor/golang.org/x/net/proxy/BUILD | 1 - vendor/golang.org/x/net/trace/BUILD | 1 - vendor/golang.org/x/net/websocket/BUILD | 1 - vendor/golang.org/x/oauth2/BUILD | 1 - vendor/golang.org/x/oauth2/google/BUILD | 1 - vendor/golang.org/x/oauth2/internal/BUILD | 1 - vendor/golang.org/x/oauth2/jws/BUILD | 1 - vendor/golang.org/x/oauth2/jwt/BUILD | 1 - vendor/golang.org/x/sys/unix/BUILD | 1 - vendor/golang.org/x/sys/windows/BUILD | 1 - vendor/golang.org/x/text/cases/BUILD | 1 - vendor/golang.org/x/text/encoding/BUILD | 1 - vendor/golang.org/x/text/encoding/internal/BUILD | 1 - .../golang.org/x/text/encoding/internal/identifier/BUILD | 1 - vendor/golang.org/x/text/encoding/unicode/BUILD | 1 - vendor/golang.org/x/text/internal/tag/BUILD | 1 - vendor/golang.org/x/text/internal/utf8internal/BUILD | 1 - vendor/golang.org/x/text/language/BUILD | 1 - vendor/golang.org/x/text/runes/BUILD | 1 - vendor/golang.org/x/text/secure/bidirule/BUILD | 1 - vendor/golang.org/x/text/secure/precis/BUILD | 1 - vendor/golang.org/x/text/transform/BUILD | 1 - vendor/golang.org/x/text/unicode/bidi/BUILD | 1 - vendor/golang.org/x/text/unicode/norm/BUILD | 1 - vendor/golang.org/x/text/width/BUILD | 1 - vendor/golang.org/x/time/rate/BUILD | 1 - vendor/golang.org/x/tools/container/intsets/BUILD | 1 - vendor/google.golang.org/api/cloudkms/v1/BUILD | 1 - .../google.golang.org/api/cloudmonitoring/v2beta2/BUILD | 1 - vendor/google.golang.org/api/compute/v0.alpha/BUILD | 1 - vendor/google.golang.org/api/compute/v0.beta/BUILD | 1 - vendor/google.golang.org/api/compute/v1/BUILD | 1 - vendor/google.golang.org/api/container/v1/BUILD | 1 - vendor/google.golang.org/api/dns/v1/BUILD | 1 - vendor/google.golang.org/api/gensupport/BUILD | 1 - vendor/google.golang.org/api/googleapi/BUILD | 1 - .../api/googleapi/internal/uritemplates/BUILD | 1 - vendor/google.golang.org/api/logging/v2beta1/BUILD | 1 - vendor/google.golang.org/api/monitoring/v3/BUILD | 1 - vendor/google.golang.org/api/pubsub/v1/BUILD | 1 - vendor/google.golang.org/grpc/BUILD | 1 - vendor/google.golang.org/grpc/codes/BUILD | 1 - vendor/google.golang.org/grpc/credentials/BUILD | 1 - vendor/google.golang.org/grpc/grpclog/BUILD | 1 - vendor/google.golang.org/grpc/internal/BUILD | 1 - vendor/google.golang.org/grpc/metadata/BUILD | 1 - vendor/google.golang.org/grpc/naming/BUILD | 1 - vendor/google.golang.org/grpc/peer/BUILD | 1 - vendor/google.golang.org/grpc/transport/BUILD | 1 - vendor/gopkg.in/gcfg.v1/BUILD | 1 - vendor/gopkg.in/gcfg.v1/scanner/BUILD | 1 - vendor/gopkg.in/gcfg.v1/token/BUILD | 1 - vendor/gopkg.in/gcfg.v1/types/BUILD | 1 - vendor/gopkg.in/inf.v0/BUILD | 1 - vendor/gopkg.in/natefinch/lumberjack.v2/BUILD | 1 - vendor/gopkg.in/warnings.v0/BUILD | 1 - vendor/gopkg.in/yaml.v2/BUILD | 1 - vendor/k8s.io/gengo/args/BUILD | 1 - .../k8s.io/gengo/examples/deepcopy-gen/generators/BUILD | 1 - .../k8s.io/gengo/examples/defaulter-gen/generators/BUILD | 1 - vendor/k8s.io/gengo/examples/import-boss/generators/BUILD | 1 - vendor/k8s.io/gengo/examples/set-gen/generators/BUILD | 1 - vendor/k8s.io/gengo/examples/set-gen/sets/BUILD | 1 - vendor/k8s.io/gengo/generator/BUILD | 1 - vendor/k8s.io/gengo/namer/BUILD | 1 - vendor/k8s.io/gengo/parser/BUILD | 1 - vendor/k8s.io/gengo/types/BUILD | 1 - vendor/k8s.io/heapster/metrics/api/v1/types/BUILD | 1 - vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD | 1 - vendor/k8s.io/kube-openapi/pkg/builder/BUILD | 1 - vendor/k8s.io/kube-openapi/pkg/common/BUILD | 1 - vendor/k8s.io/kube-openapi/pkg/generators/BUILD | 1 - vendor/k8s.io/kube-openapi/pkg/handler/BUILD | 1 - vendor/k8s.io/kube-openapi/pkg/util/BUILD | 1 - vendor/k8s.io/utils/exec/BUILD | 1 - vendor/k8s.io/utils/exec/testing/BUILD | 1 - vendor/vbom.ml/util/sortorder/BUILD | 1 - 2165 files changed, 24 insertions(+), 2959 deletions(-) diff --git a/cluster/addons/fluentd-elasticsearch/es-image/BUILD b/cluster/addons/fluentd-elasticsearch/es-image/BUILD index b2766104112..792c3f69a7d 100644 --- a/cluster/addons/fluentd-elasticsearch/es-image/BUILD +++ b/cluster/addons/fluentd-elasticsearch/es-image/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "es-image", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["elasticsearch_logging_discovery.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/cluster/gce/gci/mounter/BUILD b/cluster/gce/gci/mounter/BUILD index 444be64cbeb..4b2394535c7 100644 --- a/cluster/gce/gci/mounter/BUILD +++ b/cluster/gce/gci/mounter/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "mounter", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["mounter.go"], - tags = ["automanaged"], ) filegroup( diff --git a/cluster/images/etcd-version-monitor/BUILD b/cluster/images/etcd-version-monitor/BUILD index e1532513dab..0abbec72a90 100644 --- a/cluster/images/etcd-version-monitor/BUILD +++ b/cluster/images/etcd-version-monitor/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "etcd-version-monitor", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["etcd-version-monitor.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/cluster/images/etcd/attachlease/BUILD b/cluster/images/etcd/attachlease/BUILD index 32a94f0ee62..887a39631c9 100644 --- a/cluster/images/etcd/attachlease/BUILD +++ b/cluster/images/etcd/attachlease/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "attachlease", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["attachlease.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/clientv3:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/cluster/images/etcd/rollback/BUILD b/cluster/images/etcd/rollback/BUILD index 7928f290d4e..e1468bbb6d3 100644 --- a/cluster/images/etcd/rollback/BUILD +++ b/cluster/images/etcd/rollback/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "rollback", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["rollback.go"], - tags = ["automanaged"], deps = [ "//third_party/forked/etcd221/wal:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver:go_default_library", diff --git a/cmd/clicheck/BUILD b/cmd/clicheck/BUILD index dd54b00a3ac..e17da096950 100644 --- a/cmd/clicheck/BUILD +++ b/cmd/clicheck/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "clicheck", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["check_cli_conventions.go"], - tags = ["automanaged"], deps = [ "//pkg/kubectl/cmd:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", diff --git a/cmd/cloud-controller-manager/BUILD b/cmd/cloud-controller-manager/BUILD index d635b5548a4..5596f28d940 100644 --- a/cmd/cloud-controller-manager/BUILD +++ b/cmd/cloud-controller-manager/BUILD @@ -18,14 +18,12 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["controller-manager.go"], - tags = ["automanaged"], deps = [ "//cmd/cloud-controller-manager/app:go_default_library", "//cmd/cloud-controller-manager/app/options:go_default_library", diff --git a/cmd/cloud-controller-manager/app/BUILD b/cmd/cloud-controller-manager/app/BUILD index e441565a1a8..574ec9fac73 100644 --- a/cmd/cloud-controller-manager/app/BUILD +++ b/cmd/cloud-controller-manager/app/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["controllermanager.go"], - tags = ["automanaged"], deps = [ "//cmd/cloud-controller-manager/app/options:go_default_library", "//pkg/api:go_default_library", diff --git a/cmd/cloud-controller-manager/app/options/BUILD b/cmd/cloud-controller-manager/app/options/BUILD index 94a6333d054..fc01320e15a 100644 --- a/cmd/cloud-controller-manager/app/options/BUILD +++ b/cmd/cloud-controller-manager/app/options/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["options.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/client/leaderelectionconfig:go_default_library", diff --git a/cmd/gendocs/BUILD b/cmd/gendocs/BUILD index a0a531a7241..8f3ee96b68c 100644 --- a/cmd/gendocs/BUILD +++ b/cmd/gendocs/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "gendocs", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["gen_kubectl_docs.go"], - tags = ["automanaged"], deps = [ "//cmd/genutils:go_default_library", "//pkg/kubectl/cmd:go_default_library", diff --git a/cmd/genkubedocs/BUILD b/cmd/genkubedocs/BUILD index 61f0c4f5133..2b5b4eebbda 100644 --- a/cmd/genkubedocs/BUILD +++ b/cmd/genkubedocs/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "genkubedocs", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["gen_kube_docs.go"], - tags = ["automanaged"], deps = [ "//cmd/cloud-controller-manager/app:go_default_library", "//cmd/genutils:go_default_library", diff --git a/cmd/genman/BUILD b/cmd/genman/BUILD index b6e57067d74..a12a59bb91c 100644 --- a/cmd/genman/BUILD +++ b/cmd/genman/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "genman", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["gen_kube_man.go"], - tags = ["automanaged"], deps = [ "//cmd/cloud-controller-manager/app:go_default_library", "//cmd/genutils:go_default_library", diff --git a/cmd/genslateyaml/BUILD b/cmd/genslateyaml/BUILD index 6125a0be7e4..7363689a362 100644 --- a/cmd/genslateyaml/BUILD +++ b/cmd/genslateyaml/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "genslateyaml", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["gen_slate_yaml.go"], - tags = ["automanaged"], deps = [ "//pkg/kubectl/cmd:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", diff --git a/cmd/genswaggertypedocs/BUILD b/cmd/genswaggertypedocs/BUILD index 17f8325dd7b..7222739c4a4 100644 --- a/cmd/genswaggertypedocs/BUILD +++ b/cmd/genswaggertypedocs/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "genswaggertypedocs", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["swagger_type_docs.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/cmd/genutils/BUILD b/cmd/genutils/BUILD index e3f842da462..3fc6794d0c7 100644 --- a/cmd/genutils/BUILD +++ b/cmd/genutils/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["genutils.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["genutils_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/cmd/genyaml/BUILD b/cmd/genyaml/BUILD index e7bd9171cc7..9cb64c80ba2 100644 --- a/cmd/genyaml/BUILD +++ b/cmd/genyaml/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "genyaml", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["gen_kubectl_yaml.go"], - tags = ["automanaged"], deps = [ "//cmd/genutils:go_default_library", "//pkg/kubectl/cmd:go_default_library", diff --git a/cmd/gke-certificates-controller/BUILD b/cmd/gke-certificates-controller/BUILD index 9ec77ac35e5..426fadf4515 100644 --- a/cmd/gke-certificates-controller/BUILD +++ b/cmd/gke-certificates-controller/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//cmd/gke-certificates-controller/app:go_default_library", "//pkg/kubectl/util/logs:go_default_library", @@ -40,5 +39,4 @@ filegroup( go_binary( name = "gke-certificates-controller", library = ":go_default_library", - tags = ["automanaged"], ) diff --git a/cmd/gke-certificates-controller/app/BUILD b/cmd/gke-certificates-controller/app/BUILD index 0d2ba7408f4..2bc43137776 100644 --- a/cmd/gke-certificates-controller/app/BUILD +++ b/cmd/gke-certificates-controller/app/BUILD @@ -15,7 +15,6 @@ go_library( "gke_signer.go", "options.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/certificates/install:go_default_library", @@ -56,7 +55,6 @@ go_test( name = "go_default_test", srcs = ["gke_signer_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/tools/record:go_default_library", diff --git a/cmd/hyperkube/BUILD b/cmd/hyperkube/BUILD index 9d05d7045a4..6ac532c8d75 100644 --- a/cmd/hyperkube/BUILD +++ b/cmd/hyperkube/BUILD @@ -13,7 +13,6 @@ load("//pkg/version:def.bzl", "version_x_defs") go_binary( name = "hyperkube", library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) @@ -21,7 +20,6 @@ go_test( name = "go_default_test", srcs = ["hyperkube_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -44,7 +42,6 @@ go_library( "main.go", "server.go", ], - tags = ["automanaged"], deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", diff --git a/cmd/importverifier/BUILD b/cmd/importverifier/BUILD index 69ac54727fb..7c342c872b0 100644 --- a/cmd/importverifier/BUILD +++ b/cmd/importverifier/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "importverifier", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["importverifier.go"], - tags = ["automanaged"], ) filegroup( diff --git a/cmd/kube-apiserver/BUILD b/cmd/kube-apiserver/BUILD index 373aad377b4..3c4d1fe1f51 100644 --- a/cmd/kube-apiserver/BUILD +++ b/cmd/kube-apiserver/BUILD @@ -18,14 +18,12 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["apiserver.go"], - tags = ["automanaged"], deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", diff --git a/cmd/kube-apiserver/app/BUILD b/cmd/kube-apiserver/app/BUILD index 5ae34121120..d91a1662321 100644 --- a/cmd/kube-apiserver/app/BUILD +++ b/cmd/kube-apiserver/app/BUILD @@ -15,7 +15,6 @@ go_library( "plugins.go", "server.go", ], - tags = ["automanaged"], deps = [ "//cmd/kube-apiserver/app/options:go_default_library", "//pkg/api:go_default_library", diff --git a/cmd/kube-apiserver/app/options/BUILD b/cmd/kube-apiserver/app/options/BUILD index 8a6c0592eba..18bd284c340 100644 --- a/cmd/kube-apiserver/app/options/BUILD +++ b/cmd/kube-apiserver/app/options/BUILD @@ -14,7 +14,6 @@ go_library( "options.go", "validation.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["options_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubeapiserver/options:go_default_library", diff --git a/cmd/kube-apiserver/app/testing/BUILD b/cmd/kube-apiserver/app/testing/BUILD index ce33e30777a..9a8839da2d2 100644 --- a/cmd/kube-apiserver/app/testing/BUILD +++ b/cmd/kube-apiserver/app/testing/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["server_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", @@ -33,7 +32,6 @@ go_test( go_library( name = "go_default_library", srcs = ["testserver.go"], - tags = ["automanaged"], deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", diff --git a/cmd/kube-controller-manager/BUILD b/cmd/kube-controller-manager/BUILD index 6d7de6abe5a..5c63770dac0 100644 --- a/cmd/kube-controller-manager/BUILD +++ b/cmd/kube-controller-manager/BUILD @@ -18,14 +18,12 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["controller-manager.go"], - tags = ["automanaged"], deps = [ "//cmd/kube-controller-manager/app:go_default_library", "//cmd/kube-controller-manager/app/options:go_default_library", diff --git a/cmd/kube-controller-manager/app/BUILD b/cmd/kube-controller-manager/app/BUILD index ec464becb36..aba82700296 100644 --- a/cmd/kube-controller-manager/app/BUILD +++ b/cmd/kube-controller-manager/app/BUILD @@ -23,7 +23,6 @@ go_library( "plugins.go", "policy.go", ], - tags = ["automanaged"], deps = [ "//cmd/kube-controller-manager/app/options:go_default_library", "//pkg/api:go_default_library", @@ -153,6 +152,5 @@ go_test( name = "go_default_test", srcs = ["controller_manager_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library"], ) diff --git a/cmd/kube-controller-manager/app/options/BUILD b/cmd/kube-controller-manager/app/options/BUILD index 39f587d08a7..455b2ade080 100644 --- a/cmd/kube-controller-manager/app/options/BUILD +++ b/cmd/kube-controller-manager/app/options/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["options.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/client/leaderelectionconfig:go_default_library", diff --git a/cmd/kube-proxy/BUILD b/cmd/kube-proxy/BUILD index ee0d501d9f9..c9c002a168c 100644 --- a/cmd/kube-proxy/BUILD +++ b/cmd/kube-proxy/BUILD @@ -18,14 +18,12 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["proxy.go"], - tags = ["automanaged"], deps = [ "//cmd/kube-proxy/app:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", diff --git a/cmd/kube-proxy/app/BUILD b/cmd/kube-proxy/app/BUILD index 31f56757d46..a37ce339ca3 100644 --- a/cmd/kube-proxy/app/BUILD +++ b/cmd/kube-proxy/app/BUILD @@ -14,7 +14,6 @@ go_library( "conntrack.go", "server.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", @@ -69,7 +68,6 @@ go_test( name = "go_default_test", srcs = ["server_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", diff --git a/cmd/kubeadm/BUILD b/cmd/kubeadm/BUILD index c15300af93b..c85760d96b0 100644 --- a/cmd/kubeadm/BUILD +++ b/cmd/kubeadm/BUILD @@ -18,14 +18,12 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["kubeadm.go"], - tags = ["automanaged"], deps = ["//cmd/kubeadm/app:go_default_library"], ) diff --git a/cmd/kubeadm/app/BUILD b/cmd/kubeadm/app/BUILD index 12e2efeb3c0..67edd6fb656 100644 --- a/cmd/kubeadm/app/BUILD +++ b/cmd/kubeadm/app/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["kubeadm.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm/install:go_default_library", "//cmd/kubeadm/app/cmd:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/BUILD b/cmd/kubeadm/app/apis/kubeadm/BUILD index ea3badd6a77..d1a45872b50 100644 --- a/cmd/kubeadm/app/apis/kubeadm/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD b/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD index f2c41c93f16..c5994be8c13 100644 --- a/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/install/BUILD b/cmd/kubeadm/app/apis/kubeadm/install/BUILD index 7e3da0c15d9..31808b82a70 100644 --- a/cmd/kubeadm/app/apis/kubeadm/install/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/install/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "install.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", @@ -42,7 +41,6 @@ go_test( name = "go_default_test", srcs = ["install_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm/fuzzer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD index d861234c205..025006cb7c8 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/BUILD b/cmd/kubeadm/app/apis/kubeadm/validation/BUILD index f9b9adf17bb..ff6e26732e7 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/validation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/cmd/features:go_default_library", diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index a907ab6a3fe..457afea5144 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -19,7 +19,6 @@ go_library( "token.go", "version.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", @@ -74,7 +73,6 @@ go_test( "token_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/preflight:go_default_library", diff --git a/cmd/kubeadm/app/cmd/features/BUILD b/cmd/kubeadm/app/cmd/features/BUILD index c5b61b4cbaf..9d69b27fab2 100644 --- a/cmd/kubeadm/app/cmd/features/BUILD +++ b/cmd/kubeadm/app/cmd/features/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["features.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library"], ) diff --git a/cmd/kubeadm/app/cmd/phases/BUILD b/cmd/kubeadm/app/cmd/phases/BUILD index 5cf2d2aca94..0ce123ecab2 100644 --- a/cmd/kubeadm/app/cmd/phases/BUILD +++ b/cmd/kubeadm/app/cmd/phases/BUILD @@ -20,7 +20,6 @@ go_library( "selfhosting.go", "uploadconfig.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", @@ -52,7 +51,6 @@ go_test( "phase_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/install:go_default_library", diff --git a/cmd/kubeadm/app/constants/BUILD b/cmd/kubeadm/app/constants/BUILD index e166329e927..14125c090d8 100644 --- a/cmd/kubeadm/app/constants/BUILD +++ b/cmd/kubeadm/app/constants/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["constants.go"], - tags = ["automanaged"], deps = [ "//pkg/util/version:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -35,5 +34,4 @@ go_test( name = "go_default_test", srcs = ["constants_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) diff --git a/cmd/kubeadm/app/discovery/BUILD b/cmd/kubeadm/app/discovery/BUILD index 628276987e3..c417eaaadd6 100644 --- a/cmd/kubeadm/app/discovery/BUILD +++ b/cmd/kubeadm/app/discovery/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["discovery.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/discovery/file:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["discovery_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/apis/kubeadm:go_default_library"], ) diff --git a/cmd/kubeadm/app/discovery/file/BUILD b/cmd/kubeadm/app/discovery/file/BUILD index fdc7b60afff..682ba3c01b8 100644 --- a/cmd/kubeadm/app/discovery/file/BUILD +++ b/cmd/kubeadm/app/discovery/file/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["file.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", diff --git a/cmd/kubeadm/app/discovery/https/BUILD b/cmd/kubeadm/app/discovery/https/BUILD index 4d4686b190c..1ec08fcc853 100644 --- a/cmd/kubeadm/app/discovery/https/BUILD +++ b/cmd/kubeadm/app/discovery/https/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["https.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/discovery/file:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", diff --git a/cmd/kubeadm/app/discovery/token/BUILD b/cmd/kubeadm/app/discovery/token/BUILD index a5acdcf4bbc..c92fd2662c2 100644 --- a/cmd/kubeadm/app/discovery/token/BUILD +++ b/cmd/kubeadm/app/discovery/token/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["token.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util/kubeconfig:go_default_library", @@ -44,7 +43,6 @@ go_test( name = "go_default_test", srcs = ["token_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/util/kubeconfig:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", diff --git a/cmd/kubeadm/app/images/BUILD b/cmd/kubeadm/app/images/BUILD index b2e3dd7c011..564f034618a 100644 --- a/cmd/kubeadm/app/images/BUILD +++ b/cmd/kubeadm/app/images/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["images.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["images_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/constants:go_default_library"], ) diff --git a/cmd/kubeadm/app/node/BUILD b/cmd/kubeadm/app/node/BUILD index 72441de453a..a0c3c60cb43 100644 --- a/cmd/kubeadm/app/node/BUILD +++ b/cmd/kubeadm/app/node/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validate.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["validate_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/version:go_default_library", diff --git a/cmd/kubeadm/app/phases/addons/BUILD b/cmd/kubeadm/app/phases/addons/BUILD index afbee920cef..dc25bc0b20a 100644 --- a/cmd/kubeadm/app/phases/addons/BUILD +++ b/cmd/kubeadm/app/phases/addons/BUILD @@ -14,7 +14,6 @@ go_library( "addons.go", "manifests.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", @@ -48,6 +47,5 @@ go_test( name = "go_default_test", srcs = ["addons_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/util:go_default_library"], ) diff --git a/cmd/kubeadm/app/phases/apiconfig/BUILD b/cmd/kubeadm/app/phases/apiconfig/BUILD index 7973830671a..8a826e95458 100644 --- a/cmd/kubeadm/app/phases/apiconfig/BUILD +++ b/cmd/kubeadm/app/phases/apiconfig/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["clusterroles_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -25,7 +24,6 @@ go_test( go_library( name = "go_default_library", srcs = ["clusterroles.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", diff --git a/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD index dd1a29d905d..bcf903ea693 100644 --- a/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD +++ b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["clusterinfo_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -25,7 +24,6 @@ go_test( go_library( name = "go_default_library", srcs = ["clusterinfo.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/util/apiclient:go_default_library", "//pkg/apis/rbac/v1beta1:go_default_library", diff --git a/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD b/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD index 64f49019afa..575d699ab65 100644 --- a/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD +++ b/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["token_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/apis/kubeadm:go_default_library"], ) @@ -22,7 +21,6 @@ go_library( "tlsbootstrap.go", "token.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/util/apiclient:go_default_library", diff --git a/cmd/kubeadm/app/phases/certs/BUILD b/cmd/kubeadm/app/phases/certs/BUILD index cc99563df8a..1816183d005 100644 --- a/cmd/kubeadm/app/phases/certs/BUILD +++ b/cmd/kubeadm/app/phases/certs/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["certs_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", @@ -25,7 +24,6 @@ go_library( "certs.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", diff --git a/cmd/kubeadm/app/phases/certs/pkiutil/BUILD b/cmd/kubeadm/app/phases/certs/pkiutil/BUILD index 221c8b5079b..8e5a5cef099 100644 --- a/cmd/kubeadm/app/phases/certs/pkiutil/BUILD +++ b/cmd/kubeadm/app/phases/certs/pkiutil/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["pki_helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/util/cert:go_default_library"], ) go_library( name = "go_default_library", srcs = ["pki_helpers.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/util/cert:go_default_library"], ) diff --git a/cmd/kubeadm/app/phases/controlplane/BUILD b/cmd/kubeadm/app/phases/controlplane/BUILD index 97ca9e06e58..e96cf3a00c3 100644 --- a/cmd/kubeadm/app/phases/controlplane/BUILD +++ b/cmd/kubeadm/app/phases/controlplane/BUILD @@ -15,7 +15,6 @@ go_test( "volumes_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", @@ -33,7 +32,6 @@ go_library( "manifests.go", "volumes.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", diff --git a/cmd/kubeadm/app/phases/kubeconfig/BUILD b/cmd/kubeadm/app/phases/kubeconfig/BUILD index 2164a903bb9..f1fcf64fe7b 100644 --- a/cmd/kubeadm/app/phases/kubeconfig/BUILD +++ b/cmd/kubeadm/app/phases/kubeconfig/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "kubeconfig.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", @@ -43,7 +42,6 @@ go_test( name = "go_default_test", srcs = ["kubeconfig_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", diff --git a/cmd/kubeadm/app/phases/markmaster/BUILD b/cmd/kubeadm/app/phases/markmaster/BUILD index 7495e2bc1f9..1adf8a539a2 100644 --- a/cmd/kubeadm/app/phases/markmaster/BUILD +++ b/cmd/kubeadm/app/phases/markmaster/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["markmaster_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//pkg/kubelet/apis:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["markmaster.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//pkg/kubelet/apis:go_default_library", diff --git a/cmd/kubeadm/app/phases/selfhosting/BUILD b/cmd/kubeadm/app/phases/selfhosting/BUILD index 5cd98a4045f..8f435b839a1 100644 --- a/cmd/kubeadm/app/phases/selfhosting/BUILD +++ b/cmd/kubeadm/app/phases/selfhosting/BUILD @@ -16,7 +16,6 @@ go_test( "selfhosting_volumes_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", @@ -32,7 +31,6 @@ go_library( "selfhosting.go", "selfhosting_volumes.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", diff --git a/cmd/kubeadm/app/phases/uploadconfig/BUILD b/cmd/kubeadm/app/phases/uploadconfig/BUILD index f2117181897..fd78bf03f2c 100644 --- a/cmd/kubeadm/app/phases/uploadconfig/BUILD +++ b/cmd/kubeadm/app/phases/uploadconfig/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["uploadconfig.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", diff --git a/cmd/kubeadm/app/preflight/BUILD b/cmd/kubeadm/app/preflight/BUILD index 99c53133b98..111776763e4 100644 --- a/cmd/kubeadm/app/preflight/BUILD +++ b/cmd/kubeadm/app/preflight/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["checks.go"], - tags = ["automanaged"], deps = [ "//cmd/kube-apiserver/app/options:go_default_library", "//cmd/kube-controller-manager/app/options:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["checks_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//vendor/github.com/renstrom/dedent:go_default_library", diff --git a/cmd/kubeadm/app/util/BUILD b/cmd/kubeadm/app/util/BUILD index 9cda2c92684..f9f69d326de 100644 --- a/cmd/kubeadm/app/util/BUILD +++ b/cmd/kubeadm/app/util/BUILD @@ -16,7 +16,6 @@ go_library( "template.go", "version.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//cmd/kubeadm/app/preflight:go_default_library", @@ -37,7 +36,6 @@ go_test( "version_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/preflight:go_default_library"], ) diff --git a/cmd/kubeadm/app/util/apiclient/BUILD b/cmd/kubeadm/app/util/apiclient/BUILD index 31ad1913b42..6c40968cc9a 100644 --- a/cmd/kubeadm/app/util/apiclient/BUILD +++ b/cmd/kubeadm/app/util/apiclient/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["idempotency.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", diff --git a/cmd/kubeadm/app/util/config/BUILD b/cmd/kubeadm/app/util/config/BUILD index 4b642ac95c4..952a6b26728 100644 --- a/cmd/kubeadm/app/util/config/BUILD +++ b/cmd/kubeadm/app/util/config/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["masterconfig.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/apis/kubeadm/v1alpha1:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["masterconfig_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/cmd/kubeadm/app/util/kubeconfig/BUILD b/cmd/kubeadm/app/util/kubeconfig/BUILD index 4ff7a79be5d..d8089a84595 100644 --- a/cmd/kubeadm/app/util/kubeconfig/BUILD +++ b/cmd/kubeadm/app/util/kubeconfig/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["kubeconfig_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["kubeconfig.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/kubernetes:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd:go_default_library", diff --git a/cmd/kubeadm/app/util/pubkeypin/BUILD b/cmd/kubeadm/app/util/pubkeypin/BUILD index 195b85c9287..f508a292524 100644 --- a/cmd/kubeadm/app/util/pubkeypin/BUILD +++ b/cmd/kubeadm/app/util/pubkeypin/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["pubkeypin_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["pubkeypin.go"], - tags = ["automanaged"], ) filegroup( diff --git a/cmd/kubeadm/app/util/token/BUILD b/cmd/kubeadm/app/util/token/BUILD index 2e71b54f460..5db4d948541 100644 --- a/cmd/kubeadm/app/util/token/BUILD +++ b/cmd/kubeadm/app/util/token/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["tokens_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/apis/kubeadm:go_default_library"], ) go_library( name = "go_default_library", srcs = ["tokens.go"], - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/apis/kubeadm:go_default_library"], ) diff --git a/cmd/kubeadm/test/BUILD b/cmd/kubeadm/test/BUILD index 27b845a4ca3..7c5dba97c17 100644 --- a/cmd/kubeadm/test/BUILD +++ b/cmd/kubeadm/test/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm:go_default_library", "//cmd/kubeadm/app/constants:go_default_library", diff --git a/cmd/kubeadm/test/certs/BUILD b/cmd/kubeadm/test/certs/BUILD index a12d0b2fe19..96dab6b4b97 100644 --- a/cmd/kubeadm/test/certs/BUILD +++ b/cmd/kubeadm/test/certs/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = ["//cmd/kubeadm/app/phases/certs/pkiutil:go_default_library"], ) diff --git a/cmd/kubeadm/test/cmd/BUILD b/cmd/kubeadm/test/cmd/BUILD index 3a489fa9f50..a459fe06bef 100644 --- a/cmd/kubeadm/test/cmd/BUILD +++ b/cmd/kubeadm/test/cmd/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/cobra:go_default_library"], ) @@ -28,7 +27,6 @@ go_test( data = ["//cmd/kubeadm"], library = ":go_default_library", tags = [ - "automanaged", "integration", "skip", ], diff --git a/cmd/kubeadm/test/kubeconfig/BUILD b/cmd/kubeadm/test/kubeconfig/BUILD index 972410efdbb..818e8ac8f7a 100644 --- a/cmd/kubeadm/test/kubeconfig/BUILD +++ b/cmd/kubeadm/test/kubeconfig/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/test/certs:go_default_library", "//vendor/k8s.io/client-go/tools/clientcmd/api:go_default_library", diff --git a/cmd/kubectl/BUILD b/cmd/kubectl/BUILD index 82c5a2bae74..fab72d10c07 100644 --- a/cmd/kubectl/BUILD +++ b/cmd/kubectl/BUILD @@ -16,7 +16,6 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], visibility = [ "//build/visible_to:COMMON_release", ], @@ -26,7 +25,6 @@ go_binary( go_library( name = "go_default_library", srcs = ["kubectl.go"], - tags = ["automanaged"], visibility = ["//visibility:private"], deps = ["//cmd/kubectl/app:go_default_library"], ) diff --git a/cmd/kubectl/app/BUILD b/cmd/kubectl/app/BUILD index 93c710518a9..bd1f6383207 100644 --- a/cmd/kubectl/app/BUILD +++ b/cmd/kubectl/app/BUILD @@ -8,7 +8,6 @@ load( go_library( name = "go_default_library", srcs = ["kubectl.go"], - tags = ["automanaged"], visibility = [ "//build/visible_to:cmd_kubectl_app_CONSUMERS", ], diff --git a/cmd/kubelet/BUILD b/cmd/kubelet/BUILD index 7f83f8fced6..64658acee96 100644 --- a/cmd/kubelet/BUILD +++ b/cmd/kubelet/BUILD @@ -12,14 +12,12 @@ load("//pkg/version:def.bzl", "version_x_defs") go_binary( name = "kubelet", library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["kubelet.go"], - tags = ["automanaged"], deps = [ "//cmd/kubelet/app:go_default_library", "//cmd/kubelet/app/options:go_default_library", diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index a5515a3dfb5..4fd691e9dc5 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["server_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/apis/componentconfig:go_default_library"], ) @@ -29,7 +28,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//cmd/kubelet/app/options:go_default_library", "//pkg/api:go_default_library", diff --git a/cmd/kubelet/app/options/BUILD b/cmd/kubelet/app/options/BUILD index 215b5f0d42e..b3c8b77b22c 100644 --- a/cmd/kubelet/app/options/BUILD +++ b/cmd/kubelet/app/options/BUILD @@ -13,7 +13,6 @@ go_library( "container_runtime.go", "options.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", diff --git a/cmd/kubemark/BUILD b/cmd/kubemark/BUILD index 63364f941e8..57815c1c6c3 100644 --- a/cmd/kubemark/BUILD +++ b/cmd/kubemark/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "kubemark", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["hollow-node.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/cmd/linkcheck/BUILD b/cmd/linkcheck/BUILD index d968ab82b19..c19e517cfe9 100644 --- a/cmd/linkcheck/BUILD +++ b/cmd/linkcheck/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "linkcheck", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["links.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/mvdan/xurls:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/cmd/mungedocs/BUILD b/cmd/mungedocs/BUILD index fc68999b0c6..923b84bbe39 100644 --- a/cmd/mungedocs/BUILD +++ b/cmd/mungedocs/BUILD @@ -12,7 +12,6 @@ load( go_binary( name = "mungedocs", library = ":go_default_library", - tags = ["automanaged"], ) go_test( @@ -34,7 +33,6 @@ go_test( "//docs:srcs", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], ) @@ -52,7 +50,6 @@ go_library( "util.go", "whitespace.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) diff --git a/examples/BUILD b/examples/BUILD index 2ce21e40872..58acaec7941 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -29,13 +29,11 @@ filegroup( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) go_test( name = "go_default_xtest", srcs = ["examples_test.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/examples/explorer/BUILD b/examples/explorer/BUILD index 562838d55ce..111ca0ffc19 100644 --- a/examples/explorer/BUILD +++ b/examples/explorer/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "explorer", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["explorer.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/davecgh/go-spew/spew:go_default_library"], ) diff --git a/examples/guestbook-go/BUILD b/examples/guestbook-go/BUILD index c24a6d7bb4f..f7485bafce9 100644 --- a/examples/guestbook-go/BUILD +++ b/examples/guestbook-go/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "guestbook-go", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/codegangsta/negroni:go_default_library", "//vendor/github.com/gorilla/mux:go_default_library", diff --git a/examples/https-nginx/BUILD b/examples/https-nginx/BUILD index b8cd0357b5d..8bc5d63626f 100644 --- a/examples/https-nginx/BUILD +++ b/examples/https-nginx/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "https-nginx", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["make_secret.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/examples/sharing-clusters/BUILD b/examples/sharing-clusters/BUILD index 4405a0ab4ca..e378d3af54c 100644 --- a/examples/sharing-clusters/BUILD +++ b/examples/sharing-clusters/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "sharing-clusters", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["make_secret.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/federation/apis/core/BUILD b/federation/apis/core/BUILD index 2aca7242cd0..95899155b40 100644 --- a/federation/apis/core/BUILD +++ b/federation/apis/core/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["register.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/federation/apis/core/install/BUILD b/federation/apis/core/install/BUILD index af13fc7f14b..9091d0f855b 100644 --- a/federation/apis/core/install/BUILD +++ b/federation/apis/core/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//federation/apis/core:go_default_library", "//federation/apis/core/v1:go_default_library", diff --git a/federation/apis/core/v1/BUILD b/federation/apis/core/v1/BUILD index 41a1c35583b..2befb90d81f 100644 --- a/federation/apis/core/v1/BUILD +++ b/federation/apis/core/v1/BUILD @@ -16,7 +16,6 @@ go_library( "register.go", "zz_generated.conversion.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/federation/apis/federation/BUILD b/federation/apis/federation/BUILD index f3be811bd45..4ec3384d03f 100644 --- a/federation/apis/federation/BUILD +++ b/federation/apis/federation/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/federation/apis/federation/install/BUILD b/federation/apis/federation/install/BUILD index b8260f07026..d92235c3273 100644 --- a/federation/apis/federation/install/BUILD +++ b/federation/apis/federation/install/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", @@ -27,7 +26,6 @@ go_test( name = "go_default_test", srcs = ["install_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", diff --git a/federation/apis/federation/v1beta1/BUILD b/federation/apis/federation/v1beta1/BUILD index acb9fb4365b..98e64fc6240 100644 --- a/federation/apis/federation/v1beta1/BUILD +++ b/federation/apis/federation/v1beta1/BUILD @@ -22,7 +22,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//pkg/api:go_default_library", diff --git a/federation/apis/federation/validation/BUILD b/federation/apis/federation/validation/BUILD index 572f6be517c..f56118d9b01 100644 --- a/federation/apis/federation/validation/BUILD +++ b/federation/apis/federation/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//pkg/api/validation:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//pkg/api:go_default_library", diff --git a/federation/client/cache/BUILD b/federation/client/cache/BUILD index d35f6605d59..94e500d1f1c 100644 --- a/federation/client/cache/BUILD +++ b/federation/client/cache/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["cluster_cache.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/BUILD b/federation/client/clientset_generated/federation_clientset/BUILD index e0794d84c1c..ef8d23bf586 100644 --- a/federation/client/clientset_generated/federation_clientset/BUILD +++ b/federation/client/clientset_generated/federation_clientset/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "import_known_versions.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/install:go_default_library", "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/fake/BUILD b/federation/client/clientset_generated/federation_clientset/fake/BUILD index ee5b31c9db5..59d1346b277 100644 --- a/federation/client/clientset_generated/federation_clientset/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/scheme/BUILD b/federation/client/clientset_generated/federation_clientset/scheme/BUILD index dc01170f591..4738763d3bc 100644 --- a/federation/client/clientset_generated/federation_clientset/scheme/BUILD +++ b/federation/client/clientset_generated/federation_clientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD index b1ef5ecb675..c80abe9f954 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD @@ -15,7 +15,6 @@ go_library( "generated_expansion.go", "horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD index cb275da37c2..d092a12a89d 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_autoscaling_client.go", "fake_horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD index 75facd2c6a5..f4d37848a66 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD @@ -15,7 +15,6 @@ go_library( "generated_expansion.go", "job.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD index 534a2173406..0c499de18d2 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_batch_client.go", "fake_job.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/typed/batch/v1:go_default_library", "//vendor/k8s.io/api/batch/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD index 6d3dd67fa8c..742081800e0 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD @@ -20,7 +20,6 @@ go_library( "secret.go", "service.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD index 11de9111975..ece4ada55f1 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD @@ -19,7 +19,6 @@ go_library( "fake_secret.go", "fake_service.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/typed/core/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD index 1291403aedd..66e02ec5c38 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD @@ -19,7 +19,6 @@ go_library( "ingress.go", "replicaset.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD index 607c9232d8f..e15f769a71b 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD @@ -18,7 +18,6 @@ go_library( "fake_ingress.go", "fake_replicaset.go", ], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD index 3baed06fad0..53614261ba6 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "federation_client.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/scheme:go_default_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD index 6d2c900c4b8..4134295d5cc 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_cluster.go", "fake_federation_client.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1:go_default_library", diff --git a/federation/cmd/federation-apiserver/BUILD b/federation/cmd/federation-apiserver/BUILD index 29599ad5ee1..ba14b5146af 100644 --- a/federation/cmd/federation-apiserver/BUILD +++ b/federation/cmd/federation-apiserver/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "federation-apiserver", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["apiserver.go"], - tags = ["automanaged"], deps = [ "//federation/cmd/federation-apiserver/app:go_default_library", "//federation/cmd/federation-apiserver/app/options:go_default_library", diff --git a/federation/cmd/federation-apiserver/app/BUILD b/federation/cmd/federation-apiserver/app/BUILD index 74a51a155ec..3ebc8c11f8b 100644 --- a/federation/cmd/federation-apiserver/app/BUILD +++ b/federation/cmd/federation-apiserver/app/BUILD @@ -19,7 +19,6 @@ go_library( "plugins.go", "server.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/core:go_default_library", "//federation/apis/core/install:go_default_library", diff --git a/federation/cmd/federation-apiserver/app/options/BUILD b/federation/cmd/federation-apiserver/app/options/BUILD index 798ac00ca7c..0d7122a1950 100644 --- a/federation/cmd/federation-apiserver/app/options/BUILD +++ b/federation/cmd/federation-apiserver/app/options/BUILD @@ -13,7 +13,6 @@ go_library( "options.go", "validation.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/features:go_default_library", diff --git a/federation/cmd/federation-controller-manager/BUILD b/federation/cmd/federation-controller-manager/BUILD index 0a610f149c2..6f6522cb574 100644 --- a/federation/cmd/federation-controller-manager/BUILD +++ b/federation/cmd/federation-controller-manager/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "federation-controller-manager", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["controller-manager.go"], - tags = ["automanaged"], deps = [ "//federation/cmd/federation-controller-manager/app:go_default_library", "//federation/cmd/federation-controller-manager/app/options:go_default_library", diff --git a/federation/cmd/federation-controller-manager/app/BUILD b/federation/cmd/federation-controller-manager/app/BUILD index 43bd19b51c7..c272da21d8b 100644 --- a/federation/cmd/federation-controller-manager/app/BUILD +++ b/federation/cmd/federation-controller-manager/app/BUILD @@ -14,7 +14,6 @@ go_library( "controllermanager.go", "plugins.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", @@ -58,7 +57,6 @@ go_test( name = "go_default_test", srcs = ["controllermanager_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/pkg/federation-controller/ingress:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/federation/cmd/federation-controller-manager/app/options/BUILD b/federation/cmd/federation-controller-manager/app/options/BUILD index 72e4bdfcde4..640216df74a 100644 --- a/federation/cmd/federation-controller-manager/app/options/BUILD +++ b/federation/cmd/federation-controller-manager/app/options/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["options.go"], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//pkg/apis/componentconfig:go_default_library", diff --git a/federation/cmd/genfeddocs/BUILD b/federation/cmd/genfeddocs/BUILD index 4d97e1359c8..91c68bb38bf 100644 --- a/federation/cmd/genfeddocs/BUILD +++ b/federation/cmd/genfeddocs/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "genfeddocs", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["gen_fed_docs.go"], - tags = ["automanaged"], deps = [ "//cmd/genutils:go_default_library", "//federation/cmd/federation-apiserver/app:go_default_library", diff --git a/federation/cmd/kubefed/BUILD b/federation/cmd/kubefed/BUILD index 27a7bdd81f9..99f0116e6ca 100644 --- a/federation/cmd/kubefed/BUILD +++ b/federation/cmd/kubefed/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "kubefed", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["kubefed.go"], - tags = ["automanaged"], deps = ["//federation/cmd/kubefed/app:go_default_library"], ) diff --git a/federation/cmd/kubefed/app/BUILD b/federation/cmd/kubefed/app/BUILD index 66ab4458d98..7080ad44194 100644 --- a/federation/cmd/kubefed/app/BUILD +++ b/federation/cmd/kubefed/app/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["kubefed.go"], - tags = ["automanaged"], deps = [ "//federation/pkg/kubefed:go_default_library", "//pkg/client/metrics/prometheus:go_default_library", diff --git a/federation/pkg/dnsprovider/BUILD b/federation/pkg/dnsprovider/BUILD index 4bf94d3b59f..6d42a7026c0 100644 --- a/federation/pkg/dnsprovider/BUILD +++ b/federation/pkg/dnsprovider/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "plugins.go", ], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider/rrstype:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["dns_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//federation/pkg/dnsprovider/rrstype:go_default_library"], ) diff --git a/federation/pkg/dnsprovider/providers/aws/route53/BUILD b/federation/pkg/dnsprovider/providers/aws/route53/BUILD index cbac8d00753..71469271dc9 100644 --- a/federation/pkg/dnsprovider/providers/aws/route53/BUILD +++ b/federation/pkg/dnsprovider/providers/aws/route53/BUILD @@ -19,7 +19,6 @@ go_library( "zone.go", "zones.go", ], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//federation/pkg/dnsprovider/providers/aws/route53/stubs:go_default_library", @@ -37,7 +36,6 @@ go_test( name = "go_default_test", srcs = ["route53_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//federation/pkg/dnsprovider/providers/aws/route53/stubs:go_default_library", diff --git a/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD b/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD index 3dd71fc659e..9db033da69d 100644 --- a/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD +++ b/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["route53api.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library", diff --git a/federation/pkg/dnsprovider/providers/coredns/BUILD b/federation/pkg/dnsprovider/providers/coredns/BUILD index f1654143a05..e6843cca5a6 100644 --- a/federation/pkg/dnsprovider/providers/coredns/BUILD +++ b/federation/pkg/dnsprovider/providers/coredns/BUILD @@ -19,7 +19,6 @@ go_library( "zone.go", "zones.go", ], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//federation/pkg/dnsprovider/providers/coredns/stubs:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["coredns_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//federation/pkg/dnsprovider/providers/coredns/stubs:go_default_library", diff --git a/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD b/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD index 7c336dd68e8..409cab0305e 100644 --- a/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD +++ b/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["corednsapi.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/BUILD index 9426542654c..339bd15cfc4 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/BUILD @@ -19,7 +19,6 @@ go_library( "zone.go", "zones.go", ], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//federation/pkg/dnsprovider/providers/google/clouddns/internal:go_default_library", @@ -41,7 +40,6 @@ go_test( name = "go_default_test", srcs = ["clouddns_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//federation/pkg/dnsprovider/rrstype:go_default_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD index eb91807d884..116bdfdf787 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD @@ -27,7 +27,6 @@ go_library( "rrsets_service.go", "service.go", ], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces:go_default_library", "//federation/pkg/dnsprovider/rrstype:go_default_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD index 19d071ce222..6e13bf867b8 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interfaces.go"], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider/rrstype:go_default_library", "//vendor/google.golang.org/api/googleapi:go_default_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD index 2e382702340..a6045adf0fb 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD @@ -27,7 +27,6 @@ go_library( "rrsets_service.go", "service.go", ], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces:go_default_library", "//federation/pkg/dnsprovider/rrstype:go_default_library", diff --git a/federation/pkg/dnsprovider/rrstype/BUILD b/federation/pkg/dnsprovider/rrstype/BUILD index c940e961783..dc3e3b9735a 100644 --- a/federation/pkg/dnsprovider/rrstype/BUILD +++ b/federation/pkg/dnsprovider/rrstype/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["rrstype.go"], - tags = ["automanaged"], ) filegroup( diff --git a/federation/pkg/dnsprovider/tests/BUILD b/federation/pkg/dnsprovider/tests/BUILD index 7d50c5d28ed..25d5ff64c32 100644 --- a/federation/pkg/dnsprovider/tests/BUILD +++ b/federation/pkg/dnsprovider/tests/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["commontests.go"], - tags = ["automanaged"], deps = [ "//federation/pkg/dnsprovider:go_default_library", "//federation/pkg/dnsprovider/rrstype:go_default_library", diff --git a/federation/pkg/federatedtypes/BUILD b/federation/pkg/federatedtypes/BUILD index 692c63eae15..6068dd36f28 100644 --- a/federation/pkg/federatedtypes/BUILD +++ b/federation/pkg/federatedtypes/BUILD @@ -15,7 +15,6 @@ go_test( "scheduling_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/pkg/federation-controller/util/test:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -42,7 +41,6 @@ go_library( "scheduling.go", "secret.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", diff --git a/federation/pkg/federatedtypes/crudtester/BUILD b/federation/pkg/federatedtypes/crudtester/BUILD index 25e5bdd57a5..ae9237eb049 100644 --- a/federation/pkg/federatedtypes/crudtester/BUILD +++ b/federation/pkg/federatedtypes/crudtester/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["crudtester.go"], - tags = ["automanaged"], deps = [ "//federation/pkg/federatedtypes:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/federation/pkg/federation-controller/BUILD b/federation/pkg/federation-controller/BUILD index 951da1b7786..6c95eae5c17 100644 --- a/federation/pkg/federation-controller/BUILD +++ b/federation/pkg/federation-controller/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/federation/pkg/federation-controller/cluster/BUILD b/federation/pkg/federation-controller/cluster/BUILD index a0128b969ce..58cdb8a84c2 100644 --- a/federation/pkg/federation-controller/cluster/BUILD +++ b/federation/pkg/federation-controller/cluster/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["clustercontroller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", @@ -35,7 +34,6 @@ go_library( "clustercontroller.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/cache:go_default_library", diff --git a/federation/pkg/federation-controller/ingress/BUILD b/federation/pkg/federation-controller/ingress/BUILD index 53b295eaac3..c47796e50e7 100644 --- a/federation/pkg/federation-controller/ingress/BUILD +++ b/federation/pkg/federation-controller/ingress/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["ingress_controller.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", @@ -41,7 +40,6 @@ go_test( name = "go_default_test", srcs = ["ingress_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", diff --git a/federation/pkg/federation-controller/job/BUILD b/federation/pkg/federation-controller/job/BUILD index da81dc92077..cbd4988ed27 100644 --- a/federation/pkg/federation-controller/job/BUILD +++ b/federation/pkg/federation-controller/job/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["jobcontroller.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", @@ -45,7 +44,6 @@ go_test( name = "go_default_test", srcs = ["jobcontroller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", diff --git a/federation/pkg/federation-controller/service/BUILD b/federation/pkg/federation-controller/service/BUILD index 7782fde50c1..1eb79a464fd 100644 --- a/federation/pkg/federation-controller/service/BUILD +++ b/federation/pkg/federation-controller/service/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["servicecontroller.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", @@ -47,7 +46,6 @@ go_test( name = "go_default_test", srcs = ["servicecontroller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", diff --git a/federation/pkg/federation-controller/service/dns/BUILD b/federation/pkg/federation-controller/service/dns/BUILD index a31a2c9a6e7..a8d4791eeba 100644 --- a/federation/pkg/federation-controller/service/dns/BUILD +++ b/federation/pkg/federation-controller/service/dns/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["dns_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["dns.go"], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset:go_default_library", "//federation/pkg/dnsprovider:go_default_library", diff --git a/federation/pkg/federation-controller/service/ingress/BUILD b/federation/pkg/federation-controller/service/ingress/BUILD index d582cfde30b..b7dce37540f 100644 --- a/federation/pkg/federation-controller/service/ingress/BUILD +++ b/federation/pkg/federation-controller/service/ingress/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["ingress.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/federation/pkg/federation-controller/sync/BUILD b/federation/pkg/federation-controller/sync/BUILD index 9b3de98d23b..abde2aa6c3b 100644 --- a/federation/pkg/federation-controller/sync/BUILD +++ b/federation/pkg/federation-controller/sync/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/pkg/federatedtypes:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["controller.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", diff --git a/federation/pkg/federation-controller/util/BUILD b/federation/pkg/federation-controller/util/BUILD index bfe43ee7f80..cfbf58024ee 100644 --- a/federation/pkg/federation-controller/util/BUILD +++ b/federation/pkg/federation-controller/util/BUILD @@ -22,7 +22,6 @@ go_library( "meta.go", "secret.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", @@ -59,7 +58,6 @@ go_test( "meta_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", diff --git a/federation/pkg/federation-controller/util/clusterselector/BUILD b/federation/pkg/federation-controller/util/clusterselector/BUILD index 05d9d8cda90..4f87e01cef6 100644 --- a/federation/pkg/federation-controller/util/clusterselector/BUILD +++ b/federation/pkg/federation-controller/util/clusterselector/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["clusterselector_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["clusterselector.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/federation/pkg/federation-controller/util/deletionhelper/BUILD b/federation/pkg/federation-controller/util/deletionhelper/BUILD index 6565c0c7de8..1f88e2da79f 100644 --- a/federation/pkg/federation-controller/util/deletionhelper/BUILD +++ b/federation/pkg/federation-controller/util/deletionhelper/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["deletion_helper.go"], - tags = ["automanaged"], deps = [ "//federation/pkg/federation-controller/util:go_default_library", "//federation/pkg/federation-controller/util/finalizers:go_default_library", diff --git a/federation/pkg/federation-controller/util/eventsink/BUILD b/federation/pkg/federation-controller/util/eventsink/BUILD index 9095029e7b6..102fc5bfc7b 100644 --- a/federation/pkg/federation-controller/util/eventsink/BUILD +++ b/federation/pkg/federation-controller/util/eventsink/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["eventsink.go"], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -28,7 +27,6 @@ go_test( name = "go_default_test", srcs = ["eventsink_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", "//federation/pkg/federation-controller/util/test:go_default_library", diff --git a/federation/pkg/federation-controller/util/finalizers/BUILD b/federation/pkg/federation-controller/util/finalizers/BUILD index afeb7ed27f5..1a4a8859b84 100644 --- a/federation/pkg/federation-controller/util/finalizers/BUILD +++ b/federation/pkg/federation-controller/util/finalizers/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["finalizers.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["finalizers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/federation/pkg/federation-controller/util/planner/BUILD b/federation/pkg/federation-controller/util/planner/BUILD index 768db370af6..eca972160b2 100644 --- a/federation/pkg/federation-controller/util/planner/BUILD +++ b/federation/pkg/federation-controller/util/planner/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["planner.go"], - tags = ["automanaged"], deps = ["//federation/apis/federation:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["planner_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/federation/pkg/federation-controller/util/podanalyzer/BUILD b/federation/pkg/federation-controller/util/podanalyzer/BUILD index 3e7b1b9da9f..365b671a8b4 100644 --- a/federation/pkg/federation-controller/util/podanalyzer/BUILD +++ b/federation/pkg/federation-controller/util/podanalyzer/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["pod_helper.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["pod_helper_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/federation/pkg/federation-controller/util/replicapreferences/BUILD b/federation/pkg/federation-controller/util/replicapreferences/BUILD index b1e0cc8f94c..bda5cf93d56 100644 --- a/federation/pkg/federation-controller/util/replicapreferences/BUILD +++ b/federation/pkg/federation-controller/util/replicapreferences/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["preferences.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["preferences_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", diff --git a/federation/pkg/federation-controller/util/test/BUILD b/federation/pkg/federation-controller/util/test/BUILD index 5f8ff0a96ee..2efa963408c 100644 --- a/federation/pkg/federation-controller/util/test/BUILD +++ b/federation/pkg/federation-controller/util/test/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["test_helper.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/pkg/federation-controller/util:go_default_library", diff --git a/federation/pkg/kubefed/BUILD b/federation/pkg/kubefed/BUILD index b333603ac72..baebf44514a 100644 --- a/federation/pkg/kubefed/BUILD +++ b/federation/pkg/kubefed/BUILD @@ -15,7 +15,6 @@ go_library( "kubefed.go", "unjoin.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", @@ -52,7 +51,6 @@ go_test( "unjoin_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", diff --git a/federation/pkg/kubefed/init/BUILD b/federation/pkg/kubefed/init/BUILD index 6af03754b3a..31b22ca48e1 100644 --- a/federation/pkg/kubefed/init/BUILD +++ b/federation/pkg/kubefed/init/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["init.go"], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/util/kubeconfig:go_default_library", "//federation/apis/federation:go_default_library", @@ -44,7 +43,6 @@ go_test( name = "go_default_test", srcs = ["init_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/pkg/dnsprovider/providers/coredns:go_default_library", diff --git a/federation/pkg/kubefed/testing/BUILD b/federation/pkg/kubefed/testing/BUILD index d02149a6f7e..fd253064b40 100644 --- a/federation/pkg/kubefed/testing/BUILD +++ b/federation/pkg/kubefed/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["testing.go"], - tags = ["automanaged"], deps = [ "//federation/client/clientset_generated/federation_clientset:go_default_library", "//federation/pkg/kubefed/util:go_default_library", diff --git a/federation/pkg/kubefed/util/BUILD b/federation/pkg/kubefed/util/BUILD index ed0b412500b..2ace2676451 100644 --- a/federation/pkg/kubefed/util/BUILD +++ b/federation/pkg/kubefed/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", diff --git a/federation/plugin/pkg/admission/schedulingpolicy/BUILD b/federation/plugin/pkg/admission/schedulingpolicy/BUILD index 688556af8b6..fd3c23d338a 100644 --- a/federation/plugin/pkg/admission/schedulingpolicy/BUILD +++ b/federation/plugin/pkg/admission/schedulingpolicy/BUILD @@ -15,7 +15,6 @@ go_test( "merge_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", @@ -36,7 +35,6 @@ go_library( "merge.go", "query.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/ref:go_default_library", diff --git a/federation/registry/cluster/BUILD b/federation/registry/cluster/BUILD index cee61740c2e..d61e30a2b31 100644 --- a/federation/registry/cluster/BUILD +++ b/federation/registry/cluster/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/validation:go_default_library", @@ -38,7 +37,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//pkg/api:go_default_library", diff --git a/federation/registry/cluster/etcd/BUILD b/federation/registry/cluster/etcd/BUILD index 959eb281cf9..7ac1d4e81e2 100644 --- a/federation/registry/cluster/etcd/BUILD +++ b/federation/registry/cluster/etcd/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["etcd.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/registry/cluster:go_default_library", @@ -29,7 +28,6 @@ go_test( name = "go_default_test", srcs = ["etcd_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//pkg/api:go_default_library", diff --git a/hack/BUILD b/hack/BUILD index 5c171e42a71..8692ff24d39 100644 --- a/hack/BUILD +++ b/hack/BUILD @@ -59,7 +59,6 @@ test_suite( go_binary( name = "hack", library = ":go_default_library", - tags = ["automanaged"], ) go_test( @@ -67,11 +66,9 @@ go_test( srcs = ["e2e_test.go"], data = glob(["testdata/**"]), library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["e2e.go"], - tags = ["automanaged"], ) diff --git a/hack/boilerplate/test/BUILD b/hack/boilerplate/test/BUILD index 7ba4a5a541b..0532afd752a 100644 --- a/hack/boilerplate/test/BUILD +++ b/hack/boilerplate/test/BUILD @@ -13,7 +13,6 @@ go_library( "fail.go", "pass.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/hack/cmd/teststale/BUILD b/hack/cmd/teststale/BUILD index 592e6a65137..5ce7822f04d 100644 --- a/hack/cmd/teststale/BUILD +++ b/hack/cmd/teststale/BUILD @@ -12,20 +12,17 @@ load( go_binary( name = "teststale", library = ":go_default_library", - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["teststale_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["teststale.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/pkg/api/BUILD b/pkg/api/BUILD index 19739cb6fa9..5e94f83b6c7 100644 --- a/pkg/api/BUILD +++ b/pkg/api/BUILD @@ -23,7 +23,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", @@ -44,7 +43,6 @@ go_test( name = "go_default_test", srcs = ["taint_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_test( @@ -59,7 +57,6 @@ go_test( "serialization_test.go", "unstructured_test.go", ], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/api/endpoints/BUILD b/pkg/api/endpoints/BUILD index 02d29ce42c1..1eb3ae93923 100644 --- a/pkg/api/endpoints/BUILD +++ b/pkg/api/endpoints/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/util/hash:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/davecgh/go-spew/spew:go_default_library", diff --git a/pkg/api/errors/BUILD b/pkg/api/errors/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/api/errors/BUILD +++ b/pkg/api/errors/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/api/events/BUILD b/pkg/api/events/BUILD index 23caf608ecf..13b91bcef18 100644 --- a/pkg/api/events/BUILD +++ b/pkg/api/events/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["sorted_event_list.go"], - tags = ["automanaged"], deps = ["//pkg/api:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["sorted_event_list_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/api/fuzzer/BUILD b/pkg/api/fuzzer/BUILD index 7b5ef881c23..101a57df4da 100644 --- a/pkg/api/fuzzer/BUILD +++ b/pkg/api/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/api/helper/BUILD b/pkg/api/helper/BUILD index 159760269b0..c42081bcd02 100644 --- a/pkg/api/helper/BUILD +++ b/pkg/api/helper/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/api/helper/qos/BUILD b/pkg/api/helper/qos/BUILD index 9dfe7de8549..a9dcde34613 100644 --- a/pkg/api/helper/qos/BUILD +++ b/pkg/api/helper/qos/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["qos.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/api/install/BUILD b/pkg/api/install/BUILD index c13e1e212a6..975765273d5 100644 --- a/pkg/api/install/BUILD +++ b/pkg/api/install/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["install_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/api/meta/BUILD b/pkg/api/meta/BUILD index 711339ed894..74263240a78 100644 --- a/pkg/api/meta/BUILD +++ b/pkg/api/meta/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/api/meta/metatypes/BUILD b/pkg/api/meta/metatypes/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/api/meta/metatypes/BUILD +++ b/pkg/api/meta/metatypes/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/api/persistentvolume/BUILD b/pkg/api/persistentvolume/BUILD index 1699f870c30..2c5c86a894c 100644 --- a/pkg/api/persistentvolume/BUILD +++ b/pkg/api/persistentvolume/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = ["//pkg/api:go_default_library"], ) @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/pkg/api/pod/BUILD b/pkg/api/pod/BUILD index 53074031c36..b040134d4ee 100644 --- a/pkg/api/pod/BUILD +++ b/pkg/api/pod/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -35,7 +34,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/pkg/api/ref/BUILD b/pkg/api/ref/BUILD index 29ad23ec654..b2f16d14123 100644 --- a/pkg/api/ref/BUILD +++ b/pkg/api/ref/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["ref_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["ref.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/pkg/api/resource/BUILD b/pkg/api/resource/BUILD index 1625024d411..ddb496cf919 100644 --- a/pkg/api/resource/BUILD +++ b/pkg/api/resource/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -35,7 +34,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/api/service/BUILD b/pkg/api/service/BUILD index 2fa3a6e54f3..e8fd570288a 100644 --- a/pkg/api/service/BUILD +++ b/pkg/api/service/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/util/net/sets:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/util/net/sets:go_default_library", diff --git a/pkg/api/testapi/BUILD b/pkg/api/testapi/BUILD index de3284b29f3..bcf2d6a5796 100644 --- a/pkg/api/testapi/BUILD +++ b/pkg/api/testapi/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["testapi.go"], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/install:go_default_library", @@ -60,7 +59,6 @@ go_test( name = "go_default_test", srcs = ["testapi_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/pkg/api/testing/BUILD b/pkg/api/testing/BUILD index e1fdcbb0e47..edc37a4332f 100644 --- a/pkg/api/testing/BUILD +++ b/pkg/api/testing/BUILD @@ -14,7 +14,6 @@ go_library( "fuzzer.go", "pod_specs.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/apis/kubeadm/fuzzer:go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/api/testing/compat/BUILD b/pkg/api/testing/compat/BUILD index 73d70baf39f..c80d89f8f5d 100644 --- a/pkg/api/testing/compat/BUILD +++ b/pkg/api/testing/compat/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["compatibility_tester.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/printers:go_default_library", diff --git a/pkg/api/unversioned/BUILD b/pkg/api/unversioned/BUILD index 737a040dd8e..7ff00cf7c3f 100644 --- a/pkg/api/unversioned/BUILD +++ b/pkg/api/unversioned/BUILD @@ -14,7 +14,6 @@ go_library( "time.go", "types.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/api/util/BUILD b/pkg/api/util/BUILD index cf607087fb2..0f45f3962bc 100644 --- a/pkg/api/util/BUILD +++ b/pkg/api/util/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["group_version.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["group_version_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/api/v1/BUILD b/pkg/api/v1/BUILD index ad92be4ef49..1a82dee4712 100644 --- a/pkg/api/v1/BUILD +++ b/pkg/api/v1/BUILD @@ -19,7 +19,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -44,7 +43,6 @@ go_test( "conversion_test.go", "defaults_test.go", ], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/api/v1/endpoints/BUILD b/pkg/api/v1/endpoints/BUILD index f31c4cd90a8..7fd7d19d6e4 100644 --- a/pkg/api/v1/endpoints/BUILD +++ b/pkg/api/v1/endpoints/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/util/hash:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/api/v1/helper/BUILD b/pkg/api/v1/helper/BUILD index a2010a51493..d05172e7c3f 100644 --- a/pkg/api/v1/helper/BUILD +++ b/pkg/api/v1/helper/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/api/v1/helper/qos/BUILD b/pkg/api/v1/helper/qos/BUILD index 4951f7986cb..7efd9a2dceb 100644 --- a/pkg/api/v1/helper/qos/BUILD +++ b/pkg/api/v1/helper/qos/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["qos_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper/qos:go_default_library", @@ -26,7 +25,6 @@ go_test( go_library( name = "go_default_library", srcs = ["qos.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/api/v1/node/BUILD b/pkg/api/v1/node/BUILD index a7d82cca2f3..d310609232e 100644 --- a/pkg/api/v1/node/BUILD +++ b/pkg/api/v1/node/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) diff --git a/pkg/api/v1/pod/BUILD b/pkg/api/v1/pod/BUILD index 961577f8a11..47afaa6e922 100644 --- a/pkg/api/v1/pod/BUILD +++ b/pkg/api/v1/pod/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/api/v1/resource/BUILD b/pkg/api/v1/resource/BUILD index 24da2e7c3db..6d5ad679a70 100644 --- a/pkg/api/v1/resource/BUILD +++ b/pkg/api/v1/resource/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/api/v1/service/BUILD b/pkg/api/v1/service/BUILD index 3788b24ae57..c6e04d398f1 100644 --- a/pkg/api/v1/service/BUILD +++ b/pkg/api/v1/service/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/util/net/sets:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/net/sets:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/api/v1/validation/BUILD b/pkg/api/v1/validation/BUILD index eff5e7ea52d..b3b3f45e854 100644 --- a/pkg/api/v1/validation/BUILD +++ b/pkg/api/v1/validation/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/api/validation/BUILD b/pkg/api/validation/BUILD index 5e3c2bfb8f3..cb00dd80dac 100644 --- a/pkg/api/validation/BUILD +++ b/pkg/api/validation/BUILD @@ -16,7 +16,6 @@ go_library( "schema.go", "validation.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -67,7 +66,6 @@ go_test( "//api/swagger-spec", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", diff --git a/pkg/apimachinery/tests/BUILD b/pkg/apimachinery/tests/BUILD index 20d0a176ce4..bbf3f315616 100644 --- a/pkg/apimachinery/tests/BUILD +++ b/pkg/apimachinery/tests/BUILD @@ -10,7 +10,6 @@ load( go_test( name = "go_default_test", srcs = ["api_meta_scheme_test.go"], - tags = ["automanaged"], deps = [ "//pkg/api/testapi:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/abac/BUILD b/pkg/apis/abac/BUILD index e0915a84f2b..79e3f723364 100644 --- a/pkg/apis/abac/BUILD +++ b/pkg/apis/abac/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/abac/fuzzer/BUILD b/pkg/apis/abac/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/abac/fuzzer/BUILD +++ b/pkg/apis/abac/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/abac/latest/BUILD b/pkg/apis/abac/latest/BUILD index d3ae95e7db4..d385ed37bea 100644 --- a/pkg/apis/abac/latest/BUILD +++ b/pkg/apis/abac/latest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["latest.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/abac:go_default_library", "//pkg/apis/abac/v0:go_default_library", diff --git a/pkg/apis/abac/v0/BUILD b/pkg/apis/abac/v0/BUILD index 6588b7540dd..5e1018ab1b0 100644 --- a/pkg/apis/abac/v0/BUILD +++ b/pkg/apis/abac/v0/BUILD @@ -17,7 +17,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/abac:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -30,7 +29,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["conversion_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/apis/abac:go_default_library", diff --git a/pkg/apis/abac/v1beta1/BUILD b/pkg/apis/abac/v1beta1/BUILD index 719a4d03625..d6dee484e17 100644 --- a/pkg/apis/abac/v1beta1/BUILD +++ b/pkg/apis/abac/v1beta1/BUILD @@ -19,7 +19,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/abac:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -32,7 +31,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["conversion_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/apis/abac:go_default_library", diff --git a/pkg/apis/admission/BUILD b/pkg/apis/admission/BUILD index 3d57e510d10..15c8ec2bbea 100644 --- a/pkg/apis/admission/BUILD +++ b/pkg/apis/admission/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authentication:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/admission/fuzzer/BUILD b/pkg/apis/admission/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/admission/fuzzer/BUILD +++ b/pkg/apis/admission/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/admission/install/BUILD b/pkg/apis/admission/install/BUILD index 72644e603c7..c2a0dc25637 100644 --- a/pkg/apis/admission/install/BUILD +++ b/pkg/apis/admission/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admission:go_default_library", diff --git a/pkg/apis/admission/v1alpha1/BUILD b/pkg/apis/admission/v1alpha1/BUILD index 04bdde67d5e..5b8f6a135c0 100644 --- a/pkg/apis/admission/v1alpha1/BUILD +++ b/pkg/apis/admission/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/admission:go_default_library", "//vendor/k8s.io/api/admission/v1alpha1:go_default_library", diff --git a/pkg/apis/admissionregistration/BUILD b/pkg/apis/admissionregistration/BUILD index e8136f1b40a..f97ae625f91 100644 --- a/pkg/apis/admissionregistration/BUILD +++ b/pkg/apis/admissionregistration/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/admissionregistration/fuzzer/BUILD b/pkg/apis/admissionregistration/fuzzer/BUILD index aa940764d65..1b9fe1c3c39 100644 --- a/pkg/apis/admissionregistration/fuzzer/BUILD +++ b/pkg/apis/admissionregistration/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/admissionregistration/install/BUILD b/pkg/apis/admissionregistration/install/BUILD index 49cc0c90e0b..db5ed696719 100644 --- a/pkg/apis/admissionregistration/install/BUILD +++ b/pkg/apis/admissionregistration/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/apis/admissionregistration/v1alpha1/BUILD b/pkg/apis/admissionregistration/v1alpha1/BUILD index 8fa2a0ad5ff..a38d576cef8 100644 --- a/pkg/apis/admissionregistration/v1alpha1/BUILD +++ b/pkg/apis/admissionregistration/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", diff --git a/pkg/apis/admissionregistration/validation/BUILD b/pkg/apis/admissionregistration/validation/BUILD index fe158316026..5569e4f464e 100644 --- a/pkg/apis/admissionregistration/validation/BUILD +++ b/pkg/apis/admissionregistration/validation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", diff --git a/pkg/apis/apps/BUILD b/pkg/apis/apps/BUILD index baff881d1a6..cd5094b3834 100644 --- a/pkg/apis/apps/BUILD +++ b/pkg/apis/apps/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/apis/apps/fuzzer/BUILD b/pkg/apis/apps/fuzzer/BUILD index e759932eecf..401d6e6f10b 100644 --- a/pkg/apis/apps/fuzzer/BUILD +++ b/pkg/apis/apps/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/apps:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/apps/install/BUILD b/pkg/apis/apps/install/BUILD index 55145d88f50..e91cf12659b 100644 --- a/pkg/apis/apps/install/BUILD +++ b/pkg/apis/apps/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/apis/apps/v1beta1/BUILD b/pkg/apis/apps/v1beta1/BUILD index a4cc4dd1ea7..4715d483112 100644 --- a/pkg/apis/apps/v1beta1/BUILD +++ b/pkg/apis/apps/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", @@ -50,7 +49,6 @@ filegroup( go_test( name = "go_default_xtest", srcs = ["defaults_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/apis/apps/v1beta2/BUILD b/pkg/apis/apps/v1beta2/BUILD index 3930361cfed..4e80697d6a5 100644 --- a/pkg/apis/apps/v1beta2/BUILD +++ b/pkg/apis/apps/v1beta2/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", @@ -50,7 +49,6 @@ filegroup( go_test( name = "go_default_xtest", srcs = ["defaults_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/apis/apps/validation/BUILD b/pkg/apis/apps/validation/BUILD index d0bec4f4701..d485356b794 100644 --- a/pkg/apis/apps/validation/BUILD +++ b/pkg/apis/apps/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -27,7 +26,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/apis/authentication/BUILD b/pkg/apis/authentication/BUILD index 51b6d55acd4..4853ab0424e 100644 --- a/pkg/apis/authentication/BUILD +++ b/pkg/apis/authentication/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/authentication/fuzzer/BUILD b/pkg/apis/authentication/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/authentication/fuzzer/BUILD +++ b/pkg/apis/authentication/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/authentication/install/BUILD b/pkg/apis/authentication/install/BUILD index 7db41429cbc..d8dbe62a180 100644 --- a/pkg/apis/authentication/install/BUILD +++ b/pkg/apis/authentication/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/authentication:go_default_library", diff --git a/pkg/apis/authentication/v1/BUILD b/pkg/apis/authentication/v1/BUILD index a3f24718005..fcb3978ba95 100644 --- a/pkg/apis/authentication/v1/BUILD +++ b/pkg/apis/authentication/v1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authentication:go_default_library", "//vendor/k8s.io/api/authentication/v1:go_default_library", diff --git a/pkg/apis/authentication/v1beta1/BUILD b/pkg/apis/authentication/v1beta1/BUILD index ea44ec5433a..29b1928ee07 100644 --- a/pkg/apis/authentication/v1beta1/BUILD +++ b/pkg/apis/authentication/v1beta1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authentication:go_default_library", "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", diff --git a/pkg/apis/authorization/BUILD b/pkg/apis/authorization/BUILD index c7c67fadd1c..48155e75b46 100644 --- a/pkg/apis/authorization/BUILD +++ b/pkg/apis/authorization/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/authorization/fuzzer/BUILD b/pkg/apis/authorization/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/authorization/fuzzer/BUILD +++ b/pkg/apis/authorization/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/authorization/install/BUILD b/pkg/apis/authorization/install/BUILD index ade14ca788e..f6225d4229d 100644 --- a/pkg/apis/authorization/install/BUILD +++ b/pkg/apis/authorization/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/authorization:go_default_library", diff --git a/pkg/apis/authorization/v1/BUILD b/pkg/apis/authorization/v1/BUILD index 12e1c372053..c01caa44bf4 100644 --- a/pkg/apis/authorization/v1/BUILD +++ b/pkg/apis/authorization/v1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/api/authorization/v1:go_default_library", diff --git a/pkg/apis/authorization/v1beta1/BUILD b/pkg/apis/authorization/v1beta1/BUILD index 2b2fedc8977..06662c3a812 100644 --- a/pkg/apis/authorization/v1beta1/BUILD +++ b/pkg/apis/authorization/v1beta1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", diff --git a/pkg/apis/authorization/validation/BUILD b/pkg/apis/authorization/validation/BUILD index b52d61ece89..141c315305d 100644 --- a/pkg/apis/authorization/validation/BUILD +++ b/pkg/apis/authorization/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -24,7 +23,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/autoscaling/BUILD b/pkg/apis/autoscaling/BUILD index f57abeee54e..19b69f83a4f 100644 --- a/pkg/apis/autoscaling/BUILD +++ b/pkg/apis/autoscaling/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/apis/autoscaling/fuzzer/BUILD b/pkg/apis/autoscaling/fuzzer/BUILD index 879ad183809..66011eb5ac6 100644 --- a/pkg/apis/autoscaling/fuzzer/BUILD +++ b/pkg/apis/autoscaling/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/apis/autoscaling/install/BUILD b/pkg/apis/autoscaling/install/BUILD index 3f23a1ecdda..b065f0f3e07 100644 --- a/pkg/apis/autoscaling/install/BUILD +++ b/pkg/apis/autoscaling/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/apis/autoscaling/v1/BUILD b/pkg/apis/autoscaling/v1/BUILD index a9e819e3397..bb5a738f8d7 100644 --- a/pkg/apis/autoscaling/v1/BUILD +++ b/pkg/apis/autoscaling/v1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", @@ -35,7 +34,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["defaults_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/apis/autoscaling/v2alpha1/BUILD b/pkg/apis/autoscaling/v2alpha1/BUILD index 37ba6d2ccfb..1bbdbcaea5f 100644 --- a/pkg/apis/autoscaling/v2alpha1/BUILD +++ b/pkg/apis/autoscaling/v2alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/apis/autoscaling/validation/BUILD b/pkg/apis/autoscaling/validation/BUILD index a33051958bf..bbc0e27ddc2 100644 --- a/pkg/apis/autoscaling/validation/BUILD +++ b/pkg/apis/autoscaling/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//pkg/apis/autoscaling:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/apis/batch/BUILD b/pkg/apis/batch/BUILD index effedcb0d18..396f368a6b0 100644 --- a/pkg/apis/batch/BUILD +++ b/pkg/apis/batch/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/batch/fuzzer/BUILD b/pkg/apis/batch/fuzzer/BUILD index 7d85a093893..73e43e53017 100644 --- a/pkg/apis/batch/fuzzer/BUILD +++ b/pkg/apis/batch/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/batch:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/batch/install/BUILD b/pkg/apis/batch/install/BUILD index 0807b67e8fc..f1cc1712ca7 100644 --- a/pkg/apis/batch/install/BUILD +++ b/pkg/apis/batch/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/apis/batch/v1/BUILD b/pkg/apis/batch/v1/BUILD index f57f60a0cdf..bafb677e039 100644 --- a/pkg/apis/batch/v1/BUILD +++ b/pkg/apis/batch/v1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", @@ -35,7 +34,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["defaults_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/apis/batch/v2alpha1/BUILD b/pkg/apis/batch/v2alpha1/BUILD index 06e1b9f815b..83e49787c7a 100644 --- a/pkg/apis/batch/v2alpha1/BUILD +++ b/pkg/apis/batch/v2alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", @@ -36,7 +35,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["defaults_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/apis/batch/validation/BUILD b/pkg/apis/batch/validation/BUILD index d4dac0e25c4..dcd0012d721 100644 --- a/pkg/apis/batch/validation/BUILD +++ b/pkg/apis/batch/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -28,7 +27,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/apis/certificates/BUILD b/pkg/apis/certificates/BUILD index 2d3922c582a..b9683e01a1a 100644 --- a/pkg/apis/certificates/BUILD +++ b/pkg/apis/certificates/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/certificates/fuzzer/BUILD b/pkg/apis/certificates/fuzzer/BUILD index 2f4db68d723..008a3ca99a1 100644 --- a/pkg/apis/certificates/fuzzer/BUILD +++ b/pkg/apis/certificates/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/certificates/install/BUILD b/pkg/apis/certificates/install/BUILD index d9372bb43a8..c1b2a668ad8 100644 --- a/pkg/apis/certificates/install/BUILD +++ b/pkg/apis/certificates/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/certificates:go_default_library", diff --git a/pkg/apis/certificates/v1beta1/BUILD b/pkg/apis/certificates/v1beta1/BUILD index 900b40218e0..22334d7cde0 100644 --- a/pkg/apis/certificates/v1beta1/BUILD +++ b/pkg/apis/certificates/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", diff --git a/pkg/apis/certificates/validation/BUILD b/pkg/apis/certificates/validation/BUILD index 63a7165ec52..79bc240c979 100644 --- a/pkg/apis/certificates/validation/BUILD +++ b/pkg/apis/certificates/validation/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//pkg/apis/certificates:go_default_library", diff --git a/pkg/apis/componentconfig/BUILD b/pkg/apis/componentconfig/BUILD index 89f76295813..a51c9b4087a 100644 --- a/pkg/apis/componentconfig/BUILD +++ b/pkg/apis/componentconfig/BUILD @@ -17,7 +17,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) diff --git a/pkg/apis/componentconfig/fuzzer/BUILD b/pkg/apis/componentconfig/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/componentconfig/fuzzer/BUILD +++ b/pkg/apis/componentconfig/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/componentconfig/install/BUILD b/pkg/apis/componentconfig/install/BUILD index 79169d480aa..5d919f51b53 100644 --- a/pkg/apis/componentconfig/install/BUILD +++ b/pkg/apis/componentconfig/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", diff --git a/pkg/apis/componentconfig/v1alpha1/BUILD b/pkg/apis/componentconfig/v1alpha1/BUILD index 966ea0eb7c0..f84fe4204c3 100644 --- a/pkg/apis/componentconfig/v1alpha1/BUILD +++ b/pkg/apis/componentconfig/v1alpha1/BUILD @@ -19,7 +19,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", @@ -53,6 +52,5 @@ go_test( name = "go_default_test", srcs = ["defaults_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/apis/componentconfig:go_default_library"], ) diff --git a/pkg/apis/componentconfig/validation/BUILD b/pkg/apis/componentconfig/validation/BUILD index 77590859345..520df524130 100644 --- a/pkg/apis/componentconfig/validation/BUILD +++ b/pkg/apis/componentconfig/validation/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/cm:go_default_library", diff --git a/pkg/apis/extensions/BUILD b/pkg/apis/extensions/BUILD index 8289b25bb5b..3338acbb956 100644 --- a/pkg/apis/extensions/BUILD +++ b/pkg/apis/extensions/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -24,7 +23,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/apis/extensions/fuzzer/BUILD b/pkg/apis/extensions/fuzzer/BUILD index 8271f15c826..c7286395386 100644 --- a/pkg/apis/extensions/fuzzer/BUILD +++ b/pkg/apis/extensions/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/extensions/install/BUILD b/pkg/apis/extensions/install/BUILD index f55384644e7..4db6826f8f3 100644 --- a/pkg/apis/extensions/install/BUILD +++ b/pkg/apis/extensions/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/apis/extensions/v1beta1/BUILD b/pkg/apis/extensions/v1beta1/BUILD index 0d010002e58..cc59873ab4c 100644 --- a/pkg/apis/extensions/v1beta1/BUILD +++ b/pkg/apis/extensions/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", @@ -37,7 +36,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["defaults_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/apis/extensions/validation/BUILD b/pkg/apis/extensions/validation/BUILD index 5291abbf861..4c30bf668d7 100644 --- a/pkg/apis/extensions/validation/BUILD +++ b/pkg/apis/extensions/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -34,7 +33,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/apis/imagepolicy/BUILD b/pkg/apis/imagepolicy/BUILD index eb1c95a4d7c..2e46ad29133 100644 --- a/pkg/apis/imagepolicy/BUILD +++ b/pkg/apis/imagepolicy/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/imagepolicy/fuzzer/BUILD b/pkg/apis/imagepolicy/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/imagepolicy/fuzzer/BUILD +++ b/pkg/apis/imagepolicy/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/imagepolicy/install/BUILD b/pkg/apis/imagepolicy/install/BUILD index 6e285be3ee4..b7093e35f09 100644 --- a/pkg/apis/imagepolicy/install/BUILD +++ b/pkg/apis/imagepolicy/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/imagepolicy:go_default_library", diff --git a/pkg/apis/imagepolicy/v1alpha1/BUILD b/pkg/apis/imagepolicy/v1alpha1/BUILD index 0e86162f86d..e0f0edc49d7 100644 --- a/pkg/apis/imagepolicy/v1alpha1/BUILD +++ b/pkg/apis/imagepolicy/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/imagepolicy:go_default_library", "//vendor/k8s.io/api/imagepolicy/v1alpha1:go_default_library", diff --git a/pkg/apis/meta/v1/BUILD b/pkg/apis/meta/v1/BUILD index 116a5717fad..7bbc86659ac 100644 --- a/pkg/apis/meta/v1/BUILD +++ b/pkg/apis/meta/v1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["time.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/networking/BUILD b/pkg/apis/networking/BUILD index f72f8058253..4cfd905584a 100644 --- a/pkg/apis/networking/BUILD +++ b/pkg/apis/networking/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/networking/fuzzer/BUILD b/pkg/apis/networking/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/networking/fuzzer/BUILD +++ b/pkg/apis/networking/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/networking/install/BUILD b/pkg/apis/networking/install/BUILD index 0ecf69ea6b5..66766503f7d 100644 --- a/pkg/apis/networking/install/BUILD +++ b/pkg/apis/networking/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/networking:go_default_library", diff --git a/pkg/apis/networking/v1/BUILD b/pkg/apis/networking/v1/BUILD index e971124985a..2bc3a5d49ab 100644 --- a/pkg/apis/networking/v1/BUILD +++ b/pkg/apis/networking/v1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/apis/networking/validation/BUILD b/pkg/apis/networking/validation/BUILD index 534c0b5e295..5eafa564a45 100644 --- a/pkg/apis/networking/validation/BUILD +++ b/pkg/apis/networking/validation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/networking:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", diff --git a/pkg/apis/policy/BUILD b/pkg/apis/policy/BUILD index 0bd08a80d2e..70cbbee3fe0 100644 --- a/pkg/apis/policy/BUILD +++ b/pkg/apis/policy/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/policy/fuzzer/BUILD b/pkg/apis/policy/fuzzer/BUILD index 70477501902..a76663849db 100644 --- a/pkg/apis/policy/fuzzer/BUILD +++ b/pkg/apis/policy/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/policy:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/policy/install/BUILD b/pkg/apis/policy/install/BUILD index 863071ac900..782ac1c7409 100644 --- a/pkg/apis/policy/install/BUILD +++ b/pkg/apis/policy/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/policy:go_default_library", diff --git a/pkg/apis/policy/v1alpha1/BUILD b/pkg/apis/policy/v1alpha1/BUILD index deeb15dc4ce..1c4e5cd39b2 100644 --- a/pkg/apis/policy/v1alpha1/BUILD +++ b/pkg/apis/policy/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/policy/v1beta1/BUILD b/pkg/apis/policy/v1beta1/BUILD index 527d6da645f..a502cfba724 100644 --- a/pkg/apis/policy/v1beta1/BUILD +++ b/pkg/apis/policy/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/policy:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/pkg/apis/policy/validation/BUILD b/pkg/apis/policy/validation/BUILD index e696f3234e1..1a89ac1d034 100644 --- a/pkg/apis/policy/validation/BUILD +++ b/pkg/apis/policy/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//pkg/apis/extensions/validation:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/policy:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/intstr:go_default_library", diff --git a/pkg/apis/rbac/BUILD b/pkg/apis/rbac/BUILD index 0b519637f58..1d7bbd4dfd8 100644 --- a/pkg/apis/rbac/BUILD +++ b/pkg/apis/rbac/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/rbac/fuzzer/BUILD b/pkg/apis/rbac/fuzzer/BUILD index c558047bf2b..df4a154507d 100644 --- a/pkg/apis/rbac/fuzzer/BUILD +++ b/pkg/apis/rbac/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", diff --git a/pkg/apis/rbac/install/BUILD b/pkg/apis/rbac/install/BUILD index 9ffec7d76de..f8de8c2cba4 100644 --- a/pkg/apis/rbac/install/BUILD +++ b/pkg/apis/rbac/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/apis/rbac/v1/BUILD b/pkg/apis/rbac/v1/BUILD index 049e992f706..7ce1dee4b28 100644 --- a/pkg/apis/rbac/v1/BUILD +++ b/pkg/apis/rbac/v1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//vendor/k8s.io/api/rbac/v1:go_default_library", diff --git a/pkg/apis/rbac/v1alpha1/BUILD b/pkg/apis/rbac/v1alpha1/BUILD index b21eb11f3fe..2c2b22399c5 100644 --- a/pkg/apis/rbac/v1alpha1/BUILD +++ b/pkg/apis/rbac/v1alpha1/BUILD @@ -19,7 +19,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", @@ -33,7 +32,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["conversion_test.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/apis/rbac/v1beta1/BUILD b/pkg/apis/rbac/v1beta1/BUILD index 7578a5dda76..c3ce651fd99 100644 --- a/pkg/apis/rbac/v1beta1/BUILD +++ b/pkg/apis/rbac/v1beta1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", diff --git a/pkg/apis/rbac/validation/BUILD b/pkg/apis/rbac/validation/BUILD index 332d3f8817d..c63de5acac4 100644 --- a/pkg/apis/rbac/validation/BUILD +++ b/pkg/apis/rbac/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//pkg/apis/rbac:go_default_library", @@ -24,7 +23,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/scheduling/BUILD b/pkg/apis/scheduling/BUILD index 34899cbae4c..2ec549f90f9 100644 --- a/pkg/apis/scheduling/BUILD +++ b/pkg/apis/scheduling/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/scheduling/fuzzer/BUILD b/pkg/apis/scheduling/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/scheduling/fuzzer/BUILD +++ b/pkg/apis/scheduling/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/scheduling/install/BUILD b/pkg/apis/scheduling/install/BUILD index b4f916e3349..9f68d2e68a1 100644 --- a/pkg/apis/scheduling/install/BUILD +++ b/pkg/apis/scheduling/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/scheduling:go_default_library", diff --git a/pkg/apis/scheduling/v1alpha1/BUILD b/pkg/apis/scheduling/v1alpha1/BUILD index 4eb31ac837e..7557fe1af91 100644 --- a/pkg/apis/scheduling/v1alpha1/BUILD +++ b/pkg/apis/scheduling/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", diff --git a/pkg/apis/scheduling/validation/BUILD b/pkg/apis/scheduling/validation/BUILD index dbf313a5ab3..185eff048bf 100644 --- a/pkg/apis/scheduling/validation/BUILD +++ b/pkg/apis/scheduling/validation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//pkg/apis/scheduling:go_default_library", diff --git a/pkg/apis/settings/BUILD b/pkg/apis/settings/BUILD index 17b22780f7b..93bd86ae2ed 100644 --- a/pkg/apis/settings/BUILD +++ b/pkg/apis/settings/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/apis/settings/fuzzer/BUILD b/pkg/apis/settings/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/settings/fuzzer/BUILD +++ b/pkg/apis/settings/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/settings/install/BUILD b/pkg/apis/settings/install/BUILD index 4bc81b91fe7..8261fbc815d 100644 --- a/pkg/apis/settings/install/BUILD +++ b/pkg/apis/settings/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/settings:go_default_library", diff --git a/pkg/apis/settings/v1alpha1/BUILD b/pkg/apis/settings/v1alpha1/BUILD index ce1634e55f4..9eba9988ce1 100644 --- a/pkg/apis/settings/v1alpha1/BUILD +++ b/pkg/apis/settings/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", diff --git a/pkg/apis/settings/validation/BUILD b/pkg/apis/settings/validation/BUILD index 5aef42d89b4..3b315c2208b 100644 --- a/pkg/apis/settings/validation/BUILD +++ b/pkg/apis/settings/validation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/settings:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//pkg/apis/settings:go_default_library", diff --git a/pkg/apis/storage/BUILD b/pkg/apis/storage/BUILD index 4aa001b3a64..e81852055bf 100644 --- a/pkg/apis/storage/BUILD +++ b/pkg/apis/storage/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/pkg/apis/storage/fuzzer/BUILD b/pkg/apis/storage/fuzzer/BUILD index 2aa37c3b8f5..cd161eb50f1 100644 --- a/pkg/apis/storage/fuzzer/BUILD +++ b/pkg/apis/storage/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library"], ) diff --git a/pkg/apis/storage/install/BUILD b/pkg/apis/storage/install/BUILD index ab080e3a974..bb39c2995da 100644 --- a/pkg/apis/storage/install/BUILD +++ b/pkg/apis/storage/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/storage:go_default_library", diff --git a/pkg/apis/storage/util/BUILD b/pkg/apis/storage/util/BUILD index 50157cf26c2..a007bd12fcd 100644 --- a/pkg/apis/storage/util/BUILD +++ b/pkg/apis/storage/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) diff --git a/pkg/apis/storage/v1/BUILD b/pkg/apis/storage/v1/BUILD index 49f05c6f042..1f266fd1cf5 100644 --- a/pkg/apis/storage/v1/BUILD +++ b/pkg/apis/storage/v1/BUILD @@ -15,7 +15,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//vendor/k8s.io/api/storage/v1:go_default_library", diff --git a/pkg/apis/storage/v1/util/BUILD b/pkg/apis/storage/v1/util/BUILD index 50157cf26c2..a007bd12fcd 100644 --- a/pkg/apis/storage/v1/util/BUILD +++ b/pkg/apis/storage/v1/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) diff --git a/pkg/apis/storage/v1beta1/BUILD b/pkg/apis/storage/v1beta1/BUILD index 78c2231a938..b061f1ccdc3 100644 --- a/pkg/apis/storage/v1beta1/BUILD +++ b/pkg/apis/storage/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//vendor/k8s.io/api/storage/v1beta1:go_default_library", diff --git a/pkg/apis/storage/v1beta1/util/BUILD b/pkg/apis/storage/v1beta1/util/BUILD index 50157cf26c2..a007bd12fcd 100644 --- a/pkg/apis/storage/v1beta1/util/BUILD +++ b/pkg/apis/storage/v1beta1/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) diff --git a/pkg/apis/storage/validation/BUILD b/pkg/apis/storage/validation/BUILD index 281ecaa133f..b8acee8ee42 100644 --- a/pkg/apis/storage/validation/BUILD +++ b/pkg/apis/storage/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//pkg/apis/storage:go_default_library", @@ -24,7 +23,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/auth/authorizer/abac/BUILD b/pkg/auth/authorizer/abac/BUILD index 44c1f7044e5..8f2650288fa 100644 --- a/pkg/auth/authorizer/abac/BUILD +++ b/pkg/auth/authorizer/abac/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["abac.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/abac:go_default_library", "//pkg/apis/abac/latest:go_default_library", @@ -37,7 +36,6 @@ go_test( ":example_policy", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/abac:go_default_library", "//pkg/apis/abac/v0:go_default_library", diff --git a/pkg/auth/nodeidentifier/BUILD b/pkg/auth/nodeidentifier/BUILD index cc228ad79c1..41d8901900f 100644 --- a/pkg/auth/nodeidentifier/BUILD +++ b/pkg/auth/nodeidentifier/BUILD @@ -14,7 +14,6 @@ go_library( "default.go", "interfaces.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["default_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) diff --git a/pkg/auth/user/BUILD b/pkg/auth/user/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/auth/user/BUILD +++ b/pkg/auth/user/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/bootstrap/api/BUILD b/pkg/bootstrap/api/BUILD index 2d30e7bf0f5..a9c288210ab 100644 --- a/pkg/bootstrap/api/BUILD +++ b/pkg/bootstrap/api/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "types.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) diff --git a/pkg/capabilities/BUILD b/pkg/capabilities/BUILD index b94c1427700..f53d341f6a5 100644 --- a/pkg/capabilities/BUILD +++ b/pkg/capabilities/BUILD @@ -13,7 +13,6 @@ go_library( "capabilities.go", "doc.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/client/chaosclient/BUILD b/pkg/client/chaosclient/BUILD index c04debc1707..f3c36b1f976 100644 --- a/pkg/client/chaosclient/BUILD +++ b/pkg/client/chaosclient/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["chaosclient.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["chaosclient_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/client/clientset_generated/internalclientset/BUILD b/pkg/client/clientset_generated/internalclientset/BUILD index 07f299d3adf..035f57eb135 100644 --- a/pkg/client/clientset_generated/internalclientset/BUILD +++ b/pkg/client/clientset_generated/internalclientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/fake/BUILD b/pkg/client/clientset_generated/internalclientset/fake/BUILD index 31484b6a9db..790b7d98dc0 100644 --- a/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/scheme/BUILD b/pkg/client/clientset_generated/internalclientset/scheme/BUILD index 0b59a456a3a..0ecb4a28a2e 100644 --- a/pkg/client/clientset_generated/internalclientset/scheme/BUILD +++ b/pkg/client/clientset_generated/internalclientset/scheme/BUILD @@ -14,7 +14,6 @@ go_library( "register.go", "register_custom.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/install:go_default_library", "//pkg/apis/admissionregistration/install:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD index c8e974c5f0f..4d7205dd367 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "generated_expansion.go", "initializerconfiguration.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD index 925360762ae..396dc38c3a7 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_externaladmissionhookconfiguration.go", "fake_initializerconfiguration.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD index 67dd8b7c704..133f6327577 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "generated_expansion.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/apps:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD index 4cc26e947ff..8102ef332d1 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_controllerrevision.go", "fake_statefulset.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/apps:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/apps/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD index 9ef15fb517c..e71d056e080 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "tokenreview.go", "tokenreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authentication:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD index beff2fd338f..ac0f378b8aa 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD @@ -16,7 +16,6 @@ go_library( "fake_tokenreview.go", "fake_tokenreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authentication:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD index 3ac661ef811..adc23bc207d 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD @@ -20,7 +20,6 @@ go_library( "subjectaccessreview.go", "subjectaccessreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD index 33db41d177a..ddfd46f47b7 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD @@ -20,7 +20,6 @@ go_library( "fake_subjectaccessreview.go", "fake_subjectaccessreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD index c5bde645030..536e8d0a770 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "generated_expansion.go", "horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/autoscaling:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD index 360bb9dc4ad..ae4bd5043af 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_autoscaling_client.go", "fake_horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/autoscaling:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD index 1841dd4b558..2651d309955 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "generated_expansion.go", "job.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/batch:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD index 8870efa6368..1360de96249 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_cronjob.go", "fake_job.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/batch:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/batch/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD index c4e41532b73..e9985bc5441 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "doc.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD index c76a2c0d078..b76543a279a 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_certificatesigningrequest.go", "fake_certificatesigningrequest_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD index ab1b04eac07..30bcfcb65a7 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD @@ -35,7 +35,6 @@ go_library( "service_expansion.go", "serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/ref:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD index 5dc0e4eed9d..8aa62bcc19c 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD @@ -34,7 +34,6 @@ go_library( "fake_service_expansion.go", "fake_serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD index 84efe82f809..dae4f709190 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD @@ -24,7 +24,6 @@ go_library( "scale_expansion.go", "thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD index 98c12eb90c6..a087cf310d9 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD @@ -23,7 +23,6 @@ go_library( "fake_scale_expansion.go", "fake_thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD index 2af7d8d64ba..aa6f9e5bbbf 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "networking_client.go", "networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/networking:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD index 67398435bef..44f9597c39a 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_networking_client.go", "fake_networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/networking:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/networking/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD index 0da1443d20d..60eba272460 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD @@ -17,7 +17,6 @@ go_library( "poddisruptionbudget.go", "policy_client.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/policy:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD index 9fd74a45310..a8cde898da7 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD @@ -16,7 +16,6 @@ go_library( "fake_poddisruptionbudget.go", "fake_policy_client.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/policy:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD index 0143b7322fb..a37ad07aca0 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD @@ -18,7 +18,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD index 5f741c02326..5bd24ca0c7c 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD @@ -17,7 +17,6 @@ go_library( "fake_role.go", "fake_rolebinding.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD index 6d462f3aad5..638f2057fa9 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "priorityclass.go", "scheduling_client.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD index 35a77dd23c3..b66ac59f02d 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_priorityclass.go", "fake_scheduling_client.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD index 1210dcb1ae5..b86db5b4a5d 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "podpreset.go", "settings_client.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/settings:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD index 413b0a058f3..d64fb98d350 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_podpreset.go", "fake_settings_client.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/settings:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/settings/internalversion:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD index 205a29c0a78..2ba03ef255d 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "storage_client.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//pkg/client/clientset_generated/internalclientset/scheme:go_default_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD index bb0bb5d8891..84ca9443428 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_storage_client.go", "fake_storageclass.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/storage/internalversion:go_default_library", diff --git a/pkg/client/conditions/BUILD b/pkg/client/conditions/BUILD index 60c1d8968e3..c1f99a8e2a7 100644 --- a/pkg/client/conditions/BUILD +++ b/pkg/client/conditions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["conditions.go"], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/BUILD index 697ab720629..1564df3e5a5 100644 --- a/pkg/client/informers/informers_generated/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD b/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD index cdf05aa8930..c7d6662fa5b 100644 --- a/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD index d653f6eeb75..d1afa2731f2 100644 --- a/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( "initializerconfiguration.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/apps/BUILD b/pkg/client/informers/informers_generated/internalversion/apps/BUILD index 5fcb310e9b3..cdc05c78d1a 100644 --- a/pkg/client/informers/informers_generated/internalversion/apps/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/apps/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/apps/internalversion:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD index 05854af6d8e..3e1583344e7 100644 --- a/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( "interface.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/apps:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD b/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD index ac489a213c7..20ba973beed 100644 --- a/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD index a29a3771755..719db9b768f 100644 --- a/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "horizontalpodautoscaler.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/autoscaling:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/batch/BUILD b/pkg/client/informers/informers_generated/internalversion/batch/BUILD index 03be35f4413..0083ce1671d 100644 --- a/pkg/client/informers/informers_generated/internalversion/batch/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/batch/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/batch/internalversion:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD index 031c0f2330e..6bebe2af806 100644 --- a/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( "interface.go", "job.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/batch:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/certificates/BUILD b/pkg/client/informers/informers_generated/internalversion/certificates/BUILD index 1bce86577cf..c8ff0c37782 100644 --- a/pkg/client/informers/informers_generated/internalversion/certificates/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/certificates/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/certificates/internalversion:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD index 92833f1fdc4..5b67994c8c0 100644 --- a/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "certificatesigningrequest.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/core/BUILD b/pkg/client/informers/informers_generated/internalversion/core/BUILD index e3e1d012901..8f4d71bb8b2 100644 --- a/pkg/client/informers/informers_generated/internalversion/core/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/core/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/core/internalversion:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD index f33c7ad9efe..6dfecb87682 100644 --- a/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD @@ -28,7 +28,6 @@ go_library( "service.go", "serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/extensions/BUILD b/pkg/client/informers/informers_generated/internalversion/extensions/BUILD index 9b87715f804..2b98d707b29 100644 --- a/pkg/client/informers/informers_generated/internalversion/extensions/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/extensions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/extensions/internalversion:go_default_library", "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD index 5d57819fab4..91cde36aa59 100644 --- a/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD @@ -19,7 +19,6 @@ go_library( "replicaset.go", "thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD b/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD index ab44b755a8b..a5dd82a4ea0 100644 --- a/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//pkg/client/clientset_generated/internalclientset:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/networking/BUILD b/pkg/client/informers/informers_generated/internalversion/networking/BUILD index 63b4fc3d45e..1734c02259b 100644 --- a/pkg/client/informers/informers_generated/internalversion/networking/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/networking/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", "//pkg/client/informers/informers_generated/internalversion/networking/internalversion:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD index dffb4f61c9d..0b88d8c7f3d 100644 --- a/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/networking:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/policy/BUILD b/pkg/client/informers/informers_generated/internalversion/policy/BUILD index ac23f4f2cf3..42a2b7d199d 100644 --- a/pkg/client/informers/informers_generated/internalversion/policy/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/policy/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", "//pkg/client/informers/informers_generated/internalversion/policy/internalversion:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD index cc7ccd0b67f..a067e67ae5d 100644 --- a/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "poddisruptionbudget.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/policy:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/rbac/BUILD b/pkg/client/informers/informers_generated/internalversion/rbac/BUILD index 193f617acbc..4931377a3c6 100644 --- a/pkg/client/informers/informers_generated/internalversion/rbac/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/rbac/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", "//pkg/client/informers/informers_generated/internalversion/rbac/internalversion:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD index 661f05bd69f..72d696a547d 100644 --- a/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD b/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD index 6bd55c518b2..19a8ee5faa2 100644 --- a/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", "//pkg/client/informers/informers_generated/internalversion/scheduling/internalversion:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD index de18283d89a..1390db71f3e 100644 --- a/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "priorityclass.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/settings/BUILD b/pkg/client/informers/informers_generated/internalversion/settings/BUILD index 90dd81154f1..e334d7857fb 100644 --- a/pkg/client/informers/informers_generated/internalversion/settings/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/settings/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", "//pkg/client/informers/informers_generated/internalversion/settings/internalversion:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD index 2cf2b84cb57..5092e06b3fd 100644 --- a/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "podpreset.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/settings:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/storage/BUILD b/pkg/client/informers/informers_generated/internalversion/storage/BUILD index e02245ead6c..09c630b2838 100644 --- a/pkg/client/informers/informers_generated/internalversion/storage/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//pkg/client/informers/informers_generated/internalversion/internalinterfaces:go_default_library", "//pkg/client/informers/informers_generated/internalversion/storage/internalversion:go_default_library", diff --git a/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD index 96668716192..b2c2c9953d6 100644 --- a/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/pkg/client/leaderelectionconfig/BUILD b/pkg/client/leaderelectionconfig/BUILD index 17dc8e1376f..29796a055c3 100644 --- a/pkg/client/leaderelectionconfig/BUILD +++ b/pkg/client/leaderelectionconfig/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["config.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/pkg/client/listers/admissionregistration/internalversion/BUILD b/pkg/client/listers/admissionregistration/internalversion/BUILD index 699c45af94f..762d61dd933 100644 --- a/pkg/client/listers/admissionregistration/internalversion/BUILD +++ b/pkg/client/listers/admissionregistration/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( "externaladmissionhookconfiguration.go", "initializerconfiguration.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/admissionregistration:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/apps/internalversion/BUILD b/pkg/client/listers/apps/internalversion/BUILD index cf4f3c2a027..33149a22741 100644 --- a/pkg/client/listers/apps/internalversion/BUILD +++ b/pkg/client/listers/apps/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "statefulset.go", "statefulset_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/client/listers/authentication/internalversion/BUILD b/pkg/client/listers/authentication/internalversion/BUILD index 736517f1f12..da6b65dccfe 100644 --- a/pkg/client/listers/authentication/internalversion/BUILD +++ b/pkg/client/listers/authentication/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "tokenreview.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authentication:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/authorization/internalversion/BUILD b/pkg/client/listers/authorization/internalversion/BUILD index 4014db34bdf..76235f7c0ff 100644 --- a/pkg/client/listers/authorization/internalversion/BUILD +++ b/pkg/client/listers/authorization/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "selfsubjectaccessreview.go", "subjectaccessreview.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/autoscaling/internalversion/BUILD b/pkg/client/listers/autoscaling/internalversion/BUILD index 806afcb17c2..984c9726d2e 100644 --- a/pkg/client/listers/autoscaling/internalversion/BUILD +++ b/pkg/client/listers/autoscaling/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/autoscaling:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/batch/internalversion/BUILD b/pkg/client/listers/batch/internalversion/BUILD index adeed06e64e..8744c1a5902 100644 --- a/pkg/client/listers/batch/internalversion/BUILD +++ b/pkg/client/listers/batch/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "job.go", "job_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["job_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/client/listers/certificates/internalversion/BUILD b/pkg/client/listers/certificates/internalversion/BUILD index 1fabb68f9d8..cf96705f9c2 100644 --- a/pkg/client/listers/certificates/internalversion/BUILD +++ b/pkg/client/listers/certificates/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "certificatesigningrequest.go", "expansion_generated.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/core/internalversion/BUILD b/pkg/client/listers/core/internalversion/BUILD index e51dc430f06..c2acd512e77 100644 --- a/pkg/client/listers/core/internalversion/BUILD +++ b/pkg/client/listers/core/internalversion/BUILD @@ -31,7 +31,6 @@ go_library( "service_expansion.go", "serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/extensions/internalversion/BUILD b/pkg/client/listers/extensions/internalversion/BUILD index 0523715c0ca..55ec4ead98a 100644 --- a/pkg/client/listers/extensions/internalversion/BUILD +++ b/pkg/client/listers/extensions/internalversion/BUILD @@ -24,7 +24,6 @@ go_library( "scale.go", "thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -52,7 +51,6 @@ go_test( name = "go_default_test", srcs = ["daemonset_expansion_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/client/listers/imagepolicy/internalversion/BUILD b/pkg/client/listers/imagepolicy/internalversion/BUILD index a0e62b0ee3a..5e5713e1f8e 100644 --- a/pkg/client/listers/imagepolicy/internalversion/BUILD +++ b/pkg/client/listers/imagepolicy/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "imagereview.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/imagepolicy:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/networking/internalversion/BUILD b/pkg/client/listers/networking/internalversion/BUILD index 2c095eaac97..71f6e985c4d 100644 --- a/pkg/client/listers/networking/internalversion/BUILD +++ b/pkg/client/listers/networking/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/networking:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/policy/internalversion/BUILD b/pkg/client/listers/policy/internalversion/BUILD index 73d79705354..dec567f5022 100644 --- a/pkg/client/listers/policy/internalversion/BUILD +++ b/pkg/client/listers/policy/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "poddisruptionbudget.go", "poddisruptionbudget_expansion.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/policy:go_default_library", diff --git a/pkg/client/listers/rbac/internalversion/BUILD b/pkg/client/listers/rbac/internalversion/BUILD index c2a7079063d..8668ce0b16d 100644 --- a/pkg/client/listers/rbac/internalversion/BUILD +++ b/pkg/client/listers/rbac/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/scheduling/internalversion/BUILD b/pkg/client/listers/scheduling/internalversion/BUILD index 9e0c679b95b..9105650791a 100644 --- a/pkg/client/listers/scheduling/internalversion/BUILD +++ b/pkg/client/listers/scheduling/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "priorityclass.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/settings/internalversion/BUILD b/pkg/client/listers/settings/internalversion/BUILD index d2f73135c91..e6e801abfbf 100644 --- a/pkg/client/listers/settings/internalversion/BUILD +++ b/pkg/client/listers/settings/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "podpreset.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/settings:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/listers/storage/internalversion/BUILD b/pkg/client/listers/storage/internalversion/BUILD index 55bf05e84e6..8854c49cea9 100644 --- a/pkg/client/listers/storage/internalversion/BUILD +++ b/pkg/client/listers/storage/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/client/metrics/BUILD b/pkg/client/metrics/BUILD index c63d92e8e15..6666d801f60 100644 --- a/pkg/client/metrics/BUILD +++ b/pkg/client/metrics/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metrics.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/client/metrics/prometheus/BUILD b/pkg/client/metrics/prometheus/BUILD index a55f5dfb73a..9c35d0e06ad 100644 --- a/pkg/client/metrics/prometheus/BUILD +++ b/pkg/client/metrics/prometheus/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["prometheus.go"], - tags = ["automanaged"], deps = [ "//pkg/client/metrics:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/pkg/client/retry/BUILD b/pkg/client/retry/BUILD index d8688908178..a6e5dcc3212 100644 --- a/pkg/client/retry/BUILD +++ b/pkg/client/retry/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/pkg/client/tests/BUILD b/pkg/client/tests/BUILD index 555019ffdee..a5bb92f1790 100644 --- a/pkg/client/tests/BUILD +++ b/pkg/client/tests/BUILD @@ -17,7 +17,6 @@ go_test( "remotecommand_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", @@ -48,7 +47,6 @@ go_test( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/client/unversioned/BUILD b/pkg/client/unversioned/BUILD index 3f1f8e4c9a1..d1b841fbcfc 100644 --- a/pkg/client/unversioned/BUILD +++ b/pkg/client/unversioned/BUILD @@ -14,7 +14,6 @@ go_library( "conditions.go", "helper.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/pod:go_default_library", @@ -39,7 +38,6 @@ go_test( name = "go_default_test", srcs = ["helper_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/client/unversioned/testclient/simple/BUILD b/pkg/client/unversioned/testclient/simple/BUILD index 11831872062..ac54e4bba6b 100644 --- a/pkg/client/unversioned/testclient/simple/BUILD +++ b/pkg/client/unversioned/testclient/simple/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["simple_testclient.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/cloudprovider/BUILD b/pkg/cloudprovider/BUILD index cd26b4b3d8f..802581543a7 100644 --- a/pkg/cloudprovider/BUILD +++ b/pkg/cloudprovider/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "plugins.go", ], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/cloudprovider/providers/BUILD b/pkg/cloudprovider/providers/BUILD index 3842437c84a..2b35d8aa1b6 100644 --- a/pkg/cloudprovider/providers/BUILD +++ b/pkg/cloudprovider/providers/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["providers.go"], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/aws:go_default_library", "//pkg/cloudprovider/providers/azure:go_default_library", diff --git a/pkg/cloudprovider/providers/aws/BUILD b/pkg/cloudprovider/providers/aws/BUILD index 6c922291395..92fdda166c4 100644 --- a/pkg/cloudprovider/providers/aws/BUILD +++ b/pkg/cloudprovider/providers/aws/BUILD @@ -26,7 +26,6 @@ go_library( "tags.go", "volumes.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/service:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -66,7 +65,6 @@ go_test( "tags_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", diff --git a/pkg/cloudprovider/providers/azure/BUILD b/pkg/cloudprovider/providers/azure/BUILD index 2dc4b7b20e8..d514207c7b9 100644 --- a/pkg/cloudprovider/providers/azure/BUILD +++ b/pkg/cloudprovider/providers/azure/BUILD @@ -27,7 +27,6 @@ go_library( "azure_wrap.go", "azure_zones.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/service:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -59,7 +58,6 @@ go_test( name = "go_default_test", srcs = ["azure_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/v1/service:go_default_library", "//vendor/github.com/Azure/azure-sdk-for-go/arm/network:go_default_library", diff --git a/pkg/cloudprovider/providers/cloudstack/BUILD b/pkg/cloudprovider/providers/cloudstack/BUILD index c771e4e83e7..e9e86678927 100644 --- a/pkg/cloudprovider/providers/cloudstack/BUILD +++ b/pkg/cloudprovider/providers/cloudstack/BUILD @@ -14,7 +14,6 @@ go_library( "cloudstack.go", "cloudstack_loadbalancer.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", @@ -29,7 +28,6 @@ go_test( name = "go_default_test", srcs = ["cloudstack_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/cloudprovider/providers/fake/BUILD b/pkg/cloudprovider/providers/fake/BUILD index fec8ef0e370..2bd98f94400 100644 --- a/pkg/cloudprovider/providers/fake/BUILD +++ b/pkg/cloudprovider/providers/fake/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "fake.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", diff --git a/pkg/cloudprovider/providers/gce/BUILD b/pkg/cloudprovider/providers/gce/BUILD index 1c6717d3d84..f3da3f8bf67 100644 --- a/pkg/cloudprovider/providers/gce/BUILD +++ b/pkg/cloudprovider/providers/gce/BUILD @@ -41,7 +41,6 @@ go_library( "metrics.go", "token_source.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/service:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -87,7 +86,6 @@ go_test( "gce_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/kubelet/apis:go_default_library", diff --git a/pkg/cloudprovider/providers/openstack/BUILD b/pkg/cloudprovider/providers/openstack/BUILD index a3eff15c99c..50ef406cfe1 100644 --- a/pkg/cloudprovider/providers/openstack/BUILD +++ b/pkg/cloudprovider/providers/openstack/BUILD @@ -20,7 +20,6 @@ go_library( "openstack_routes.go", "openstack_volumes.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/service:go_default_library", @@ -73,7 +72,6 @@ go_test( "openstack_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//vendor/github.com/gophercloud/gophercloud:go_default_library", diff --git a/pkg/cloudprovider/providers/ovirt/BUILD b/pkg/cloudprovider/providers/ovirt/BUILD index eecb7632535..eba7fcbb8fa 100644 --- a/pkg/cloudprovider/providers/ovirt/BUILD +++ b/pkg/cloudprovider/providers/ovirt/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["ovirt.go"], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["ovirt_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/cloudprovider:go_default_library"], ) diff --git a/pkg/cloudprovider/providers/photon/BUILD b/pkg/cloudprovider/providers/photon/BUILD index be559e6cfa4..be78f52d8b8 100644 --- a/pkg/cloudprovider/providers/photon/BUILD +++ b/pkg/cloudprovider/providers/photon/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["photon.go"], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -28,7 +27,6 @@ go_test( name = "go_default_test", srcs = ["photon_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/pkg/cloudprovider/providers/rackspace/BUILD b/pkg/cloudprovider/providers/rackspace/BUILD index ea50988b7b5..be2b1dbc811 100644 --- a/pkg/cloudprovider/providers/rackspace/BUILD +++ b/pkg/cloudprovider/providers/rackspace/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["rackspace.go"], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", @@ -34,7 +33,6 @@ go_test( name = "go_default_test", srcs = ["rackspace_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/rackspace/gophercloud:go_default_library"], ) diff --git a/pkg/cloudprovider/providers/vsphere/BUILD b/pkg/cloudprovider/providers/vsphere/BUILD index 41f2d4bf37d..24c88c0bcaa 100644 --- a/pkg/cloudprovider/providers/vsphere/BUILD +++ b/pkg/cloudprovider/providers/vsphere/BUILD @@ -14,7 +14,6 @@ go_library( "vsphere.go", "vsphere_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -37,7 +36,6 @@ go_test( name = "go_default_test", srcs = ["vsphere_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", diff --git a/pkg/cloudprovider/providers/vsphere/vclib/BUILD b/pkg/cloudprovider/providers/vsphere/vclib/BUILD index c9acb87190a..1945d20c2a3 100644 --- a/pkg/cloudprovider/providers/vsphere/vclib/BUILD +++ b/pkg/cloudprovider/providers/vsphere/vclib/BUILD @@ -23,7 +23,6 @@ go_library( "volumeoptions.go", "vsphere_metrics.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD index bf55da93cea..0f32e234825 100644 --- a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD +++ b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD @@ -14,7 +14,6 @@ go_library( "virtualdisk.go", "vmdm.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/controller/BUILD b/pkg/controller/BUILD index 1cdc7f61fc8..448b033efc0 100644 --- a/pkg/controller/BUILD +++ b/pkg/controller/BUILD @@ -15,7 +15,6 @@ go_test( "controller_utils_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", @@ -51,7 +50,6 @@ go_library( "doc.go", "lookup_cache.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/controller/bootstrap/BUILD b/pkg/controller/bootstrap/BUILD index d552d5ecc37..06628dc9d64 100644 --- a/pkg/controller/bootstrap/BUILD +++ b/pkg/controller/bootstrap/BUILD @@ -18,7 +18,6 @@ go_test( "util_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -42,7 +41,6 @@ go_library( "tokencleaner.go", "util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/bootstrap/api:go_default_library", diff --git a/pkg/controller/certificates/BUILD b/pkg/controller/certificates/BUILD index af0354bae00..3ca446db2e0 100644 --- a/pkg/controller/certificates/BUILD +++ b/pkg/controller/certificates/BUILD @@ -12,7 +12,6 @@ go_library( "certificate_controller.go", "certificate_controller_utils.go", ], - tags = ["automanaged"], visibility = [ ":__subpackages__", "//cmd/gke-certificates-controller:__subpackages__", @@ -59,7 +58,6 @@ go_test( name = "go_default_test", srcs = ["certificate_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", diff --git a/pkg/controller/certificates/approver/BUILD b/pkg/controller/certificates/approver/BUILD index 3a0c77d752c..7e327561000 100644 --- a/pkg/controller/certificates/approver/BUILD +++ b/pkg/controller/certificates/approver/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["sarapprove_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/certificates/v1beta1:go_default_library", "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["sarapprove.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates/v1beta1:go_default_library", "//pkg/controller/certificates:go_default_library", diff --git a/pkg/controller/certificates/signer/BUILD b/pkg/controller/certificates/signer/BUILD index 0ff94966757..c0579c34fb5 100644 --- a/pkg/controller/certificates/signer/BUILD +++ b/pkg/controller/certificates/signer/BUILD @@ -17,7 +17,6 @@ go_test( "testdata/kubelet.csr", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/util/cert:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["cfssl_signer.go"], - tags = ["automanaged"], deps = [ "//pkg/controller/certificates:go_default_library", "//vendor/github.com/cloudflare/cfssl/config:go_default_library", diff --git a/pkg/controller/cloud/BUILD b/pkg/controller/cloud/BUILD index d6f3e7d40f3..5495a909c7f 100644 --- a/pkg/controller/cloud/BUILD +++ b/pkg/controller/cloud/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["node_controller.go"], - tags = ["automanaged"], deps = [ "//pkg/api/v1/node:go_default_library", "//pkg/client/retry:go_default_library", @@ -38,7 +37,6 @@ go_test( name = "go_default_test", srcs = ["node_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", diff --git a/pkg/controller/cronjob/BUILD b/pkg/controller/cronjob/BUILD index 06c9d0689b1..54456ecbe1b 100644 --- a/pkg/controller/cronjob/BUILD +++ b/pkg/controller/cronjob/BUILD @@ -16,7 +16,6 @@ go_library( "injection.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/util/metrics:go_default_library", @@ -49,7 +48,6 @@ go_test( "utils_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/install:go_default_library", "//pkg/apis/batch/install:go_default_library", diff --git a/pkg/controller/daemon/BUILD b/pkg/controller/daemon/BUILD index ce90c100cef..f4404fed8da 100644 --- a/pkg/controller/daemon/BUILD +++ b/pkg/controller/daemon/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "update.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", @@ -65,7 +64,6 @@ go_test( "update_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/controller/daemon/util/BUILD b/pkg/controller/daemon/util/BUILD index e74429a2bf3..900098bbad3 100644 --- a/pkg/controller/daemon/util/BUILD +++ b/pkg/controller/daemon/util/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["daemonset_util.go"], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", @@ -44,7 +43,6 @@ go_test( name = "go_default_test", srcs = ["daemonset_util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/testapi:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/controller/deployment/BUILD b/pkg/controller/deployment/BUILD index 311c3c0ddfb..7ba5f853ee1 100644 --- a/pkg/controller/deployment/BUILD +++ b/pkg/controller/deployment/BUILD @@ -18,7 +18,6 @@ go_library( "rolling.go", "sync.go", ], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/controller/deployment/util:go_default_library", @@ -58,7 +57,6 @@ go_test( "sync_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/controller/deployment/util/BUILD b/pkg/controller/deployment/util/BUILD index e50adc15cf7..e7d1bd524ce 100644 --- a/pkg/controller/deployment/util/BUILD +++ b/pkg/controller/deployment/util/BUILD @@ -15,7 +15,6 @@ go_library( "pod_util.go", "replicaset_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//pkg/client/retry:go_default_library", @@ -49,7 +48,6 @@ go_test( "hash_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/v1:go_default_library", "//pkg/controller:go_default_library", diff --git a/pkg/controller/disruption/BUILD b/pkg/controller/disruption/BUILD index efde431a2a8..c876800d448 100644 --- a/pkg/controller/disruption/BUILD +++ b/pkg/controller/disruption/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["disruption.go"], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/controller:go_default_library", @@ -48,7 +47,6 @@ go_test( name = "go_default_test", srcs = ["disruption_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/controller/endpoint/BUILD b/pkg/controller/endpoint/BUILD index 80e14e0fa13..cb96f344859 100644 --- a/pkg/controller/endpoint/BUILD +++ b/pkg/controller/endpoint/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "endpoints_controller.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/endpoints:go_default_library", @@ -43,7 +42,6 @@ go_test( name = "go_default_test", srcs = ["endpoints_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/controller/garbagecollector/BUILD b/pkg/controller/garbagecollector/BUILD index 9e83bf044bb..d6395b6a1a7 100644 --- a/pkg/controller/garbagecollector/BUILD +++ b/pkg/controller/garbagecollector/BUILD @@ -20,7 +20,6 @@ go_library( "rate_limiter_helper.go", "uid_cache.go", ], - tags = ["automanaged"], deps = [ "//pkg/client/retry:go_default_library", "//pkg/controller:go_default_library", @@ -55,7 +54,6 @@ go_test( name = "go_default_test", srcs = ["garbagecollector_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/controller/garbagecollector/metaonly/BUILD b/pkg/controller/garbagecollector/metaonly/BUILD index 590f99120da..e8e53126e31 100644 --- a/pkg/controller/garbagecollector/metaonly/BUILD +++ b/pkg/controller/garbagecollector/metaonly/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["metaonly_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/install:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/controller/history/BUILD b/pkg/controller/history/BUILD index 1c820282efb..215214a00bf 100644 --- a/pkg/controller/history/BUILD +++ b/pkg/controller/history/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["controller_history_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/testapi:go_default_library", "//pkg/controller:go_default_library", @@ -34,7 +33,6 @@ go_test( go_library( name = "go_default_library", srcs = ["controller_history.go"], - tags = ["automanaged"], deps = [ "//pkg/client/retry:go_default_library", "//pkg/util/hash:go_default_library", diff --git a/pkg/controller/job/BUILD b/pkg/controller/job/BUILD index b86b3daec36..31a2fecd89c 100644 --- a/pkg/controller/job/BUILD +++ b/pkg/controller/job/BUILD @@ -15,7 +15,6 @@ go_library( "job_controller.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/util/metrics:go_default_library", @@ -47,7 +46,6 @@ go_test( "utils_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/controller/namespace/BUILD b/pkg/controller/namespace/BUILD index d0aaca53e9a..1a0f309138a 100644 --- a/pkg/controller/namespace/BUILD +++ b/pkg/controller/namespace/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "namespace_controller.go", ], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/controller/namespace/deletion:go_default_library", diff --git a/pkg/controller/namespace/deletion/BUILD b/pkg/controller/namespace/deletion/BUILD index 8e7845164e4..79efe468681 100644 --- a/pkg/controller/namespace/deletion/BUILD +++ b/pkg/controller/namespace/deletion/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["namespaced_resources_deleter.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["namespaced_resources_deleter_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/controller/node/BUILD b/pkg/controller/node/BUILD index 958b1a2264b..4f5f8997122 100644 --- a/pkg/controller/node/BUILD +++ b/pkg/controller/node/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["nodecontroller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", @@ -48,7 +47,6 @@ go_library( "metrics.go", "node_controller.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/node:go_default_library", "//pkg/cloudprovider:go_default_library", diff --git a/pkg/controller/node/ipam/BUILD b/pkg/controller/node/ipam/BUILD index cd39c6d0924..77e3136ae50 100644 --- a/pkg/controller/node/ipam/BUILD +++ b/pkg/controller/node/ipam/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["cidr_allocator_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller/testutil:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -29,7 +28,6 @@ go_library( "cloud_cidr_allocator.go", "range_allocator.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/cloudprovider:go_default_library", diff --git a/pkg/controller/node/ipam/cidrset/BUILD b/pkg/controller/node/ipam/cidrset/BUILD index 1a0e4cc5794..81c878fdbb7 100644 --- a/pkg/controller/node/ipam/cidrset/BUILD +++ b/pkg/controller/node/ipam/cidrset/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["cidr_set_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) go_library( name = "go_default_library", srcs = ["cidr_set.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/controller/node/scheduler/BUILD b/pkg/controller/node/scheduler/BUILD index 017c5d5dbb5..86245a16bf6 100644 --- a/pkg/controller/node/scheduler/BUILD +++ b/pkg/controller/node/scheduler/BUILD @@ -16,7 +16,6 @@ go_test( "timed_workers_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller/testutil:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -35,7 +34,6 @@ go_library( "taint_controller.go", "timed_workers.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//pkg/api/v1/helper:go_default_library", diff --git a/pkg/controller/node/util/BUILD b/pkg/controller/node/util/BUILD index 8db6c485c4b..a92c68edc9c 100644 --- a/pkg/controller/node/util/BUILD +++ b/pkg/controller/node/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["controller_utils.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/cloudprovider:go_default_library", diff --git a/pkg/controller/podautoscaler/BUILD b/pkg/controller/podautoscaler/BUILD index dbf9e2f12f5..5d44f81688c 100644 --- a/pkg/controller/podautoscaler/BUILD +++ b/pkg/controller/podautoscaler/BUILD @@ -16,7 +16,6 @@ go_library( "rate_limitters.go", "replica_calculator.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", @@ -58,7 +57,6 @@ go_test( "replica_calculator_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/controller/podautoscaler/metrics/BUILD b/pkg/controller/podautoscaler/metrics/BUILD index 7c5e8ca64a4..6463bcb5af2 100644 --- a/pkg/controller/podautoscaler/metrics/BUILD +++ b/pkg/controller/podautoscaler/metrics/BUILD @@ -16,7 +16,6 @@ go_library( "rest_metrics_client.go", "utilization.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/autoscaling/v2alpha1:go_default_library", @@ -41,7 +40,6 @@ go_test( "rest_metrics_client_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions/install:go_default_library", diff --git a/pkg/controller/podgc/BUILD b/pkg/controller/podgc/BUILD index b288636778c..a3bcf956249 100644 --- a/pkg/controller/podgc/BUILD +++ b/pkg/controller/podgc/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "gc_controller.go", ], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/util/metrics:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["gc_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/controller/testutil:go_default_library", diff --git a/pkg/controller/replicaset/BUILD b/pkg/controller/replicaset/BUILD index b8a92e56b62..64e70073317 100644 --- a/pkg/controller/replicaset/BUILD +++ b/pkg/controller/replicaset/BUILD @@ -15,7 +15,6 @@ go_library( "replica_set.go", "replica_set_utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/controller:go_default_library", @@ -46,7 +45,6 @@ go_test( name = "go_default_test", srcs = ["replica_set_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/controller/replicaset/options/BUILD b/pkg/controller/replicaset/options/BUILD index cd328134024..8107708f609 100644 --- a/pkg/controller/replicaset/options/BUILD +++ b/pkg/controller/replicaset/options/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["options.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) diff --git a/pkg/controller/replication/BUILD b/pkg/controller/replication/BUILD index 93bb8d7879b..cf48511a34c 100644 --- a/pkg/controller/replication/BUILD +++ b/pkg/controller/replication/BUILD @@ -15,7 +15,6 @@ go_library( "replication_controller.go", "replication_controller_utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/controller:go_default_library", @@ -43,7 +42,6 @@ go_test( name = "go_default_test", srcs = ["replication_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/controller/resourcequota/BUILD b/pkg/controller/resourcequota/BUILD index df7ed3c6e41..c6fdf0553f8 100644 --- a/pkg/controller/resourcequota/BUILD +++ b/pkg/controller/resourcequota/BUILD @@ -15,7 +15,6 @@ go_library( "replenishment_controller.go", "resource_quota_controller.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", @@ -49,7 +48,6 @@ go_test( "resource_quota_controller_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/controller:go_default_library", diff --git a/pkg/controller/route/BUILD b/pkg/controller/route/BUILD index 16bedb4cb2b..2f446e2cadd 100644 --- a/pkg/controller/route/BUILD +++ b/pkg/controller/route/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "route_controller.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/node:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -43,7 +42,6 @@ go_test( name = "go_default_test", srcs = ["route_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/v1/node:go_default_library", "//pkg/cloudprovider:go_default_library", diff --git a/pkg/controller/service/BUILD b/pkg/controller/service/BUILD index 612f37dc795..9e0e2690280 100644 --- a/pkg/controller/service/BUILD +++ b/pkg/controller/service/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "service_controller.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubeadm/app/constants:go_default_library", "//pkg/api/v1/helper:go_default_library", @@ -41,7 +40,6 @@ go_test( name = "go_default_test", srcs = ["service_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/testapi:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", diff --git a/pkg/controller/serviceaccount/BUILD b/pkg/controller/serviceaccount/BUILD index 05b800fb2e3..0e62fe7bf50 100644 --- a/pkg/controller/serviceaccount/BUILD +++ b/pkg/controller/serviceaccount/BUILD @@ -16,7 +16,6 @@ go_library( "tokengetter.go", "tokens_controller.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1:go_default_library", "//pkg/client/retry:go_default_library", @@ -54,7 +53,6 @@ go_test( "tokens_controller_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/controller:go_default_library", diff --git a/pkg/controller/statefulset/BUILD b/pkg/controller/statefulset/BUILD index bfb3e41ab65..764848240e1 100644 --- a/pkg/controller/statefulset/BUILD +++ b/pkg/controller/statefulset/BUILD @@ -17,7 +17,6 @@ go_library( "stateful_set_status_updater.go", "stateful_set_utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", @@ -58,7 +57,6 @@ go_test( "stateful_set_utils_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/controller/testutil/BUILD b/pkg/controller/testutil/BUILD index 83c040e073e..5f42abcbd61 100644 --- a/pkg/controller/testutil/BUILD +++ b/pkg/controller/testutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["test_utils.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/util/node:go_default_library", diff --git a/pkg/controller/ttl/BUILD b/pkg/controller/ttl/BUILD index c287e6be507..ec9d64d6579 100644 --- a/pkg/controller/ttl/BUILD +++ b/pkg/controller/ttl/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["ttl_controller.go"], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -48,7 +47,6 @@ go_test( name = "go_default_test", srcs = ["ttl_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/controller/volume/attachdetach/BUILD b/pkg/controller/volume/attachdetach/BUILD index 5bcf0047036..d9dbd93f996 100644 --- a/pkg/controller/volume/attachdetach/BUILD +++ b/pkg/controller/volume/attachdetach/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["attach_detach_controller.go"], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/controller:go_default_library", @@ -44,7 +43,6 @@ go_test( name = "go_default_test", srcs = ["attach_detach_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/controller/volume/attachdetach/cache:go_default_library", diff --git a/pkg/controller/volume/attachdetach/cache/BUILD b/pkg/controller/volume/attachdetach/cache/BUILD index 3a0642ee10e..80cc0770934 100644 --- a/pkg/controller/volume/attachdetach/cache/BUILD +++ b/pkg/controller/volume/attachdetach/cache/BUILD @@ -14,7 +14,6 @@ go_library( "actual_state_of_world.go", "desired_state_of_world.go", ], - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/util/operationexecutor:go_default_library", @@ -33,7 +32,6 @@ go_test( "desired_state_of_world_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller/volume/attachdetach/testing:go_default_library", "//pkg/volume/testing:go_default_library", diff --git a/pkg/controller/volume/attachdetach/populator/BUILD b/pkg/controller/volume/attachdetach/populator/BUILD index c75b65aaa6e..4c9b705580a 100644 --- a/pkg/controller/volume/attachdetach/populator/BUILD +++ b/pkg/controller/volume/attachdetach/populator/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["desired_state_of_world_populator.go"], - tags = ["automanaged"], deps = [ "//pkg/controller/volume/attachdetach/cache:go_default_library", "//pkg/controller/volume/attachdetach/util:go_default_library", @@ -44,7 +43,6 @@ go_test( name = "go_default_test", srcs = ["desired_state_of_world_populator_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/controller/volume/attachdetach/cache:go_default_library", diff --git a/pkg/controller/volume/attachdetach/reconciler/BUILD b/pkg/controller/volume/attachdetach/reconciler/BUILD index 6601e923aed..47446888191 100644 --- a/pkg/controller/volume/attachdetach/reconciler/BUILD +++ b/pkg/controller/volume/attachdetach/reconciler/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["reconciler.go"], - tags = ["automanaged"], deps = [ "//pkg/controller/volume/attachdetach/cache:go_default_library", "//pkg/controller/volume/attachdetach/statusupdater:go_default_library", @@ -30,7 +29,6 @@ go_test( name = "go_default_test", srcs = ["reconciler_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/controller/volume/attachdetach/cache:go_default_library", diff --git a/pkg/controller/volume/attachdetach/statusupdater/BUILD b/pkg/controller/volume/attachdetach/statusupdater/BUILD index 2a7119b5da0..8e30f4b7205 100644 --- a/pkg/controller/volume/attachdetach/statusupdater/BUILD +++ b/pkg/controller/volume/attachdetach/statusupdater/BUILD @@ -13,7 +13,6 @@ go_library( "fake_node_status_updater.go", "node_status_updater.go", ], - tags = ["automanaged"], deps = [ "//pkg/controller/volume/attachdetach/cache:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/controller/volume/attachdetach/testing/BUILD b/pkg/controller/volume/attachdetach/testing/BUILD index c453e7d5335..b7a80a38a30 100644 --- a/pkg/controller/volume/attachdetach/testing/BUILD +++ b/pkg/controller/volume/attachdetach/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["testvolumespec.go"], - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/util/volumehelper:go_default_library", diff --git a/pkg/controller/volume/attachdetach/util/BUILD b/pkg/controller/volume/attachdetach/util/BUILD index ac6db4a6b31..49adb375e09 100644 --- a/pkg/controller/volume/attachdetach/util/BUILD +++ b/pkg/controller/volume/attachdetach/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/controller/volume/attachdetach/cache:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/controller/volume/events/BUILD b/pkg/controller/volume/events/BUILD index bcca6b23aea..1d3b21ff839 100644 --- a/pkg/controller/volume/events/BUILD +++ b/pkg/controller/volume/events/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["event.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/controller/volume/persistentvolume/BUILD b/pkg/controller/volume/persistentvolume/BUILD index 316ae735dac..e995fd12dcd 100644 --- a/pkg/controller/volume/persistentvolume/BUILD +++ b/pkg/controller/volume/persistentvolume/BUILD @@ -16,7 +16,6 @@ go_library( "pv_controller_base.go", "volume_host.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -63,7 +62,6 @@ go_test( "recycle_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/testapi:go_default_library", "//pkg/controller:go_default_library", diff --git a/pkg/controller/volume/persistentvolume/options/BUILD b/pkg/controller/volume/persistentvolume/options/BUILD index cd328134024..8107708f609 100644 --- a/pkg/controller/volume/persistentvolume/options/BUILD +++ b/pkg/controller/volume/persistentvolume/options/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["options.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) diff --git a/pkg/conversion/BUILD b/pkg/conversion/BUILD index 9f371d60332..70424a291b4 100644 --- a/pkg/conversion/BUILD +++ b/pkg/conversion/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/conversion/queryparams/BUILD b/pkg/conversion/queryparams/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/conversion/queryparams/BUILD +++ b/pkg/conversion/queryparams/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/credentialprovider/BUILD b/pkg/credentialprovider/BUILD index 00778151553..5df8d33da0b 100644 --- a/pkg/credentialprovider/BUILD +++ b/pkg/credentialprovider/BUILD @@ -17,7 +17,6 @@ go_library( "plugins.go", "provider.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/api/types:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -34,7 +33,6 @@ go_test( "provider_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/docker/docker/api/types:go_default_library"], ) diff --git a/pkg/credentialprovider/aws/BUILD b/pkg/credentialprovider/aws/BUILD index 550fd90001e..0512c509854 100644 --- a/pkg/credentialprovider/aws/BUILD +++ b/pkg/credentialprovider/aws/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["aws_credentials.go"], - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["aws_credentials_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", diff --git a/pkg/credentialprovider/azure/BUILD b/pkg/credentialprovider/azure/BUILD index 9efcbe78d77..92a1bdfcc46 100644 --- a/pkg/credentialprovider/azure/BUILD +++ b/pkg/credentialprovider/azure/BUILD @@ -14,7 +14,6 @@ go_library( "azure_acr_helper.go", "azure_credentials.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/azure:go_default_library", "//pkg/credentialprovider:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["azure_credentials_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", diff --git a/pkg/credentialprovider/gcp/BUILD b/pkg/credentialprovider/gcp/BUILD index 8f3a8aaa60b..03178513e9f 100644 --- a/pkg/credentialprovider/gcp/BUILD +++ b/pkg/credentialprovider/gcp/BUILD @@ -15,7 +15,6 @@ go_library( "jwt.go", "metadata.go", ], - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -34,7 +33,6 @@ go_test( "metadata_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", diff --git a/pkg/credentialprovider/rancher/BUILD b/pkg/credentialprovider/rancher/BUILD index 641dfe7679c..0610a8150e7 100644 --- a/pkg/credentialprovider/rancher/BUILD +++ b/pkg/credentialprovider/rancher/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["rancher_registry_credentials_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//vendor/github.com/rancher/go-rancher/client:go_default_library", @@ -25,7 +24,6 @@ go_library( "doc.go", "rancher_registry_credentials.go", ], - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/features/BUILD b/pkg/features/BUILD index 1bc19d3ab4c..70053139218 100644 --- a/pkg/features/BUILD +++ b/pkg/features/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["kube_features.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/features:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library", diff --git a/pkg/fieldpath/BUILD b/pkg/fieldpath/BUILD index 1b77094d462..22586e0d368 100644 --- a/pkg/fieldpath/BUILD +++ b/pkg/fieldpath/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "fieldpath.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library"], ) @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["fieldpath_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/fields/BUILD b/pkg/fields/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/fields/BUILD +++ b/pkg/fields/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/generated/BUILD b/pkg/generated/BUILD index bac9f90885f..4608727ec84 100644 --- a/pkg/generated/BUILD +++ b/pkg/generated/BUILD @@ -13,7 +13,6 @@ go_library( "bindata.go", "doc.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/hyperkube/BUILD b/pkg/hyperkube/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/hyperkube/BUILD +++ b/pkg/hyperkube/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubeapiserver/BUILD b/pkg/kubeapiserver/BUILD index da7df70f9bc..16af1d0de80 100644 --- a/pkg/kubeapiserver/BUILD +++ b/pkg/kubeapiserver/BUILD @@ -14,7 +14,6 @@ go_library( "default_storage_factory_builder.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -49,7 +48,6 @@ go_test( name = "go_default_test", srcs = ["default_storage_factory_builder_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/kubeapiserver/admission/BUILD b/pkg/kubeapiserver/admission/BUILD index ea15aac6ac1..53cc25f9683 100644 --- a/pkg/kubeapiserver/admission/BUILD +++ b/pkg/kubeapiserver/admission/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["init_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["initializer.go"], - tags = ["automanaged"], deps = [ "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", diff --git a/pkg/kubeapiserver/admission/configuration/BUILD b/pkg/kubeapiserver/admission/configuration/BUILD index 0449f19e274..2cd84e5e40f 100644 --- a/pkg/kubeapiserver/admission/configuration/BUILD +++ b/pkg/kubeapiserver/admission/configuration/BUILD @@ -16,7 +16,6 @@ go_test( "initializer_manager_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -34,7 +33,6 @@ go_library( "external_admission_hook_manager.go", "initializer_manager.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", diff --git a/pkg/kubeapiserver/authenticator/BUILD b/pkg/kubeapiserver/authenticator/BUILD index 5375c49a7a1..2a87baf0a50 100644 --- a/pkg/kubeapiserver/authenticator/BUILD +++ b/pkg/kubeapiserver/authenticator/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["config.go"], - tags = ["automanaged"], deps = [ "//pkg/serviceaccount:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", diff --git a/pkg/kubeapiserver/authorizer/BUILD b/pkg/kubeapiserver/authorizer/BUILD index 95d4851d014..7bfeef52dcc 100644 --- a/pkg/kubeapiserver/authorizer/BUILD +++ b/pkg/kubeapiserver/authorizer/BUILD @@ -15,14 +15,12 @@ go_test( "//pkg/auth/authorizer/abac:example_policy", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/kubeapiserver/authorizer/modes:go_default_library"], ) go_library( name = "go_default_library", srcs = ["config.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//pkg/auth/authorizer/abac:go_default_library", diff --git a/pkg/kubeapiserver/authorizer/modes/BUILD b/pkg/kubeapiserver/authorizer/modes/BUILD index df54566faef..aa9f88a6723 100644 --- a/pkg/kubeapiserver/authorizer/modes/BUILD +++ b/pkg/kubeapiserver/authorizer/modes/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["modes_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["modes.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubeapiserver/options/BUILD b/pkg/kubeapiserver/options/BUILD index cdcafa8646b..3f994934806 100644 --- a/pkg/kubeapiserver/options/BUILD +++ b/pkg/kubeapiserver/options/BUILD @@ -18,7 +18,6 @@ go_library( "serving.go", "storage_versions.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/informers/informers_generated/internalversion:go_default_library", @@ -56,6 +55,5 @@ go_test( name = "go_default_test", srcs = ["storage_versions_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library"], ) diff --git a/pkg/kubeapiserver/server/BUILD b/pkg/kubeapiserver/server/BUILD index 0c6f4c43221..76ee22e949f 100644 --- a/pkg/kubeapiserver/server/BUILD +++ b/pkg/kubeapiserver/server/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["insecure_handler.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/pkg/kubectl/BUILD b/pkg/kubectl/BUILD index fe1f3b00c13..198e2353f5e 100644 --- a/pkg/kubectl/BUILD +++ b/pkg/kubectl/BUILD @@ -34,7 +34,6 @@ go_test( "sorting_printer_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//pkg/api:go_default_library", @@ -112,7 +111,6 @@ go_library( "sorting_printer.go", "versioned_client.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/kubectl/cmd/BUILD b/pkg/kubectl/cmd/BUILD index 5ba32790979..95a003c2483 100644 --- a/pkg/kubectl/cmd/BUILD +++ b/pkg/kubectl/cmd/BUILD @@ -65,7 +65,6 @@ go_library( "top_pod.go", "version.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_CONSUMERS", ], @@ -194,9 +193,6 @@ go_test( "//test/fixtures", ], library = ":go_default_library", - tags = [ - "automanaged", - ], deps = [ "//pkg/api:go_default_library", "//pkg/api/ref:go_default_library", diff --git a/pkg/kubectl/cmd/auth/BUILD b/pkg/kubectl/cmd/auth/BUILD index ee161a7aef8..51f4ef06dc6 100644 --- a/pkg/kubectl/cmd/auth/BUILD +++ b/pkg/kubectl/cmd/auth/BUILD @@ -12,7 +12,6 @@ go_library( "auth.go", "cani.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_auth_CONSUMERS", ], @@ -46,7 +45,6 @@ go_test( name = "go_default_test", srcs = ["cani_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubectl/cmd/testing:go_default_library", diff --git a/pkg/kubectl/cmd/config/BUILD b/pkg/kubectl/cmd/config/BUILD index 71213a2fb9f..fae76b16c59 100644 --- a/pkg/kubectl/cmd/config/BUILD +++ b/pkg/kubectl/cmd/config/BUILD @@ -25,7 +25,6 @@ go_library( "use_context.go", "view.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_config_CONSUMERS", ], @@ -66,7 +65,6 @@ go_test( "view_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubectl/cmd/util:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/pkg/kubectl/cmd/rollout/BUILD b/pkg/kubectl/cmd/rollout/BUILD index bea99df4f26..0c178a802e9 100644 --- a/pkg/kubectl/cmd/rollout/BUILD +++ b/pkg/kubectl/cmd/rollout/BUILD @@ -15,7 +15,6 @@ go_library( "rollout_status.go", "rollout_undo.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_rollout_CONSUMERS", ], diff --git a/pkg/kubectl/cmd/set/BUILD b/pkg/kubectl/cmd/set/BUILD index 5712cff968d..f359949e960 100644 --- a/pkg/kubectl/cmd/set/BUILD +++ b/pkg/kubectl/cmd/set/BUILD @@ -16,7 +16,6 @@ go_library( "set_selector.go", "set_subject.go", ], - tags = ["automanaged"], visibility = ["//build/visible_to:pkg_kubectl_cmd_set_CONSUMERS"], deps = [ "//pkg/api:go_default_library", @@ -52,7 +51,6 @@ go_test( "//examples:config", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/kubectl/cmd/templates/BUILD b/pkg/kubectl/cmd/templates/BUILD index 7255c533561..dbdce1c02d7 100644 --- a/pkg/kubectl/cmd/templates/BUILD +++ b/pkg/kubectl/cmd/templates/BUILD @@ -14,7 +14,6 @@ go_library( "templater.go", "templates.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_templates_CONSUMERS", ], diff --git a/pkg/kubectl/cmd/testdata/edit/BUILD b/pkg/kubectl/cmd/testdata/edit/BUILD index 2fc4003611d..b89d6371564 100644 --- a/pkg/kubectl/cmd/testdata/edit/BUILD +++ b/pkg/kubectl/cmd/testdata/edit/BUILD @@ -9,14 +9,12 @@ load( go_binary( name = "edit", library = ":go_default_library", - tags = ["automanaged"], visibility = ["//visibility:public"], ) go_library( name = "go_default_library", srcs = ["record.go"], - tags = ["automanaged"], visibility = ["//visibility:private"], deps = ["//vendor/gopkg.in/yaml.v2:go_default_library"], ) diff --git a/pkg/kubectl/cmd/testing/BUILD b/pkg/kubectl/cmd/testing/BUILD index eccca1cc42f..dcb27a622a4 100644 --- a/pkg/kubectl/cmd/testing/BUILD +++ b/pkg/kubectl/cmd/testing/BUILD @@ -11,7 +11,6 @@ go_library( "fake.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_testing_CONSUMERS", ], diff --git a/pkg/kubectl/cmd/util/BUILD b/pkg/kubectl/cmd/util/BUILD index 85bbf23bac6..3c9b230c441 100644 --- a/pkg/kubectl/cmd/util/BUILD +++ b/pkg/kubectl/cmd/util/BUILD @@ -19,7 +19,6 @@ go_library( "printing.go", "shortcut_restmapper.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_util_CONSUMERS", ], @@ -89,7 +88,6 @@ go_test( "//api/swagger-spec", ], library = ":go_default_library", - tags = ["automanaged"], visibility = [ "//build/visible_to:COMMON_testing", ], diff --git a/pkg/kubectl/cmd/util/editor/BUILD b/pkg/kubectl/cmd/util/editor/BUILD index 328f1f3e55a..19ed15efaad 100644 --- a/pkg/kubectl/cmd/util/editor/BUILD +++ b/pkg/kubectl/cmd/util/editor/BUILD @@ -12,7 +12,6 @@ go_library( "editoptions.go", "editor.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_util_editor_CONSUMERS", ], @@ -43,7 +42,6 @@ go_test( name = "go_default_test", srcs = ["editor_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubectl/cmd/util/jsonmerge/BUILD b/pkg/kubectl/cmd/util/jsonmerge/BUILD index cf59579f887..e4c31cc9bf0 100644 --- a/pkg/kubectl/cmd/util/jsonmerge/BUILD +++ b/pkg/kubectl/cmd/util/jsonmerge/BUILD @@ -8,7 +8,6 @@ load( go_library( name = "go_default_library", srcs = ["jsonmerge.go"], - tags = ["automanaged"], visibility = ["//visibility:public"], deps = [ "//vendor/github.com/evanphx/json-patch:go_default_library", diff --git a/pkg/kubectl/cmd/util/openapi/BUILD b/pkg/kubectl/cmd/util/openapi/BUILD index 4e3bbb3e4d4..fd79e0f8dba 100644 --- a/pkg/kubectl/cmd/util/openapi/BUILD +++ b/pkg/kubectl/cmd/util/openapi/BUILD @@ -18,7 +18,6 @@ go_library( "openapi_cache.go", "openapi_getter.go", ], - tags = ["automanaged"], deps = [ "//pkg/version:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", @@ -41,7 +40,6 @@ go_test( "openapi_test.go", ], data = ["//api/openapi-spec:swagger-spec"], - tags = ["automanaged"], deps = [ ":go_default_library", "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", diff --git a/pkg/kubectl/cmd/util/sanity/BUILD b/pkg/kubectl/cmd/util/sanity/BUILD index 0d72a12cdac..0bc87a614e3 100644 --- a/pkg/kubectl/cmd/util/sanity/BUILD +++ b/pkg/kubectl/cmd/util/sanity/BUILD @@ -8,7 +8,6 @@ load( go_library( name = "go_default_library", srcs = ["cmd_sanity.go"], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_cmd_util_sanity_CONSUMERS", ], diff --git a/pkg/kubectl/metricsutil/BUILD b/pkg/kubectl/metricsutil/BUILD index 652e8ebc248..f03c6a0c360 100644 --- a/pkg/kubectl/metricsutil/BUILD +++ b/pkg/kubectl/metricsutil/BUILD @@ -11,7 +11,6 @@ go_library( "metrics_client.go", "metrics_printer.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_metricsutil_CONSUMERS", ], diff --git a/pkg/kubectl/plugins/BUILD b/pkg/kubectl/plugins/BUILD index 96ac7e138af..f47a947d748 100644 --- a/pkg/kubectl/plugins/BUILD +++ b/pkg/kubectl/plugins/BUILD @@ -16,7 +16,6 @@ go_library( "plugins.go", "runner.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -47,6 +46,5 @@ go_test( "runner_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) diff --git a/pkg/kubectl/proxy/BUILD b/pkg/kubectl/proxy/BUILD index 53dee7eaef9..0c72bf5e8e8 100644 --- a/pkg/kubectl/proxy/BUILD +++ b/pkg/kubectl/proxy/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["proxy_server_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/proxy:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["proxy_server.go"], - tags = ["automanaged"], deps = [ "//pkg/kubectl/util:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/kubectl/resource/BUILD b/pkg/kubectl/resource/BUILD index 637a3fb3ac7..6b6fe109814 100644 --- a/pkg/kubectl/resource/BUILD +++ b/pkg/kubectl/resource/BUILD @@ -19,7 +19,6 @@ go_library( "selector.go", "visitor.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_resource_CONSUMERS", ], @@ -59,9 +58,6 @@ go_test( "//test/fixtures", ], library = ":go_default_library", - tags = [ - "automanaged", - ], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/kubectl/testing/BUILD b/pkg/kubectl/testing/BUILD index f1f8d88e5ac..94d28c15973 100644 --- a/pkg/kubectl/testing/BUILD +++ b/pkg/kubectl/testing/BUILD @@ -12,7 +12,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], visibility = [ "//build/visible_to:pkg_kubectl_testing_CONSUMERS", ], diff --git a/pkg/kubectl/util/BUILD b/pkg/kubectl/util/BUILD index b17be99f25c..0f59ced2547 100644 --- a/pkg/kubectl/util/BUILD +++ b/pkg/kubectl/util/BUILD @@ -16,7 +16,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], visibility = ["//build/visible_to:pkg_kubectl_util_CONSUMERS"], deps = [ "//vendor/golang.org/x/sys/unix:go_default_library", diff --git a/pkg/kubectl/util/crlf/BUILD b/pkg/kubectl/util/crlf/BUILD index 13993ad72b8..6d57117091b 100644 --- a/pkg/kubectl/util/crlf/BUILD +++ b/pkg/kubectl/util/crlf/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["crlf.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubectl/util/logs/BUILD b/pkg/kubectl/util/logs/BUILD index 24d392a4862..73bd9fde975 100644 --- a/pkg/kubectl/util/logs/BUILD +++ b/pkg/kubectl/util/logs/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["logs.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/pkg/kubectl/util/slice/BUILD b/pkg/kubectl/util/slice/BUILD index 35cb2024d50..25250fea759 100644 --- a/pkg/kubectl/util/slice/BUILD +++ b/pkg/kubectl/util/slice/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["slice.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["slice_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubectl/util/term/BUILD b/pkg/kubectl/util/term/BUILD index 526b4d96076..5c504b2cb66 100644 --- a/pkg/kubectl/util/term/BUILD +++ b/pkg/kubectl/util/term/BUILD @@ -21,7 +21,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/util/interrupt:go_default_library", "//vendor/github.com/docker/docker/pkg/term:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["term_writer_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index ffc6c1dbfdb..3d38c47bdf9 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -31,7 +31,6 @@ go_library( "util.go", "volume_host.go", ], - tags = ["automanaged"], deps = [ "//cmd/kubelet/app/options:go_default_library", "//pkg/api:go_default_library", @@ -169,7 +168,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/kubelet/apis/BUILD b/pkg/kubelet/apis/BUILD index e67f4b000ef..6e0ffa157bc 100644 --- a/pkg/kubelet/apis/BUILD +++ b/pkg/kubelet/apis/BUILD @@ -13,7 +13,6 @@ go_library( "well_known_annotations.go", "well_known_labels.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubelet/apis/cri/BUILD b/pkg/kubelet/apis/cri/BUILD index 3eeb7d06941..c8637b05deb 100644 --- a/pkg/kubelet/apis/cri/BUILD +++ b/pkg/kubelet/apis/cri/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["services.go"], - tags = ["automanaged"], deps = ["//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library"], ) diff --git a/pkg/kubelet/apis/cri/testing/BUILD b/pkg/kubelet/apis/cri/testing/BUILD index 78ea0c54d76..d3636085484 100644 --- a/pkg/kubelet/apis/cri/testing/BUILD +++ b/pkg/kubelet/apis/cri/testing/BUILD @@ -14,7 +14,6 @@ go_library( "fake_runtime_service.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", "//pkg/kubelet/util/sliceutils:go_default_library", diff --git a/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD b/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD index 07e26b69b12..c43100a21fc 100644 --- a/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD +++ b/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD @@ -13,7 +13,6 @@ go_library( "api.pb.go", "constants.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/pkg/kubelet/apis/stats/v1alpha1/BUILD b/pkg/kubelet/apis/stats/v1alpha1/BUILD index f5d8e191fe7..b1994b8e384 100644 --- a/pkg/kubelet/apis/stats/v1alpha1/BUILD +++ b/pkg/kubelet/apis/stats/v1alpha1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) diff --git a/pkg/kubelet/cadvisor/BUILD b/pkg/kubelet/cadvisor/BUILD index 9b227266bfe..102e9e452b4 100644 --- a/pkg/kubelet/cadvisor/BUILD +++ b/pkg/kubelet/cadvisor/BUILD @@ -24,7 +24,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/google/cadvisor/events:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", @@ -57,7 +56,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/kubelet/types:go_default_library", diff --git a/pkg/kubelet/cadvisor/testing/BUILD b/pkg/kubelet/cadvisor/testing/BUILD index 820d5c9772d..b67f9b872fa 100644 --- a/pkg/kubelet/cadvisor/testing/BUILD +++ b/pkg/kubelet/cadvisor/testing/BUILD @@ -13,7 +13,6 @@ go_library( "cadvisor_fake.go", "cadvisor_mock.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/cadvisor:go_default_library", "//vendor/github.com/google/cadvisor/events:go_default_library", diff --git a/pkg/kubelet/certificate/BUILD b/pkg/kubelet/certificate/BUILD index 6c0010e48ce..0fe3227edf7 100644 --- a/pkg/kubelet/certificate/BUILD +++ b/pkg/kubelet/certificate/BUILD @@ -16,7 +16,6 @@ go_library( "kubelet.go", "transport.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/util/file:go_default_library", @@ -43,7 +42,6 @@ go_test( "transport_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/kubelet/certificate/bootstrap/BUILD b/pkg/kubelet/certificate/bootstrap/BUILD index cff67f14cee..dc077efea49 100644 --- a/pkg/kubelet/certificate/bootstrap/BUILD +++ b/pkg/kubelet/certificate/bootstrap/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["bootstrap_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["bootstrap.go"], - tags = ["automanaged"], deps = [ "//pkg/kubelet/util/csr:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/kubelet/client/BUILD b/pkg/kubelet/client/BUILD index 366d1536755..7859b9c4a93 100644 --- a/pkg/kubelet/client/BUILD +++ b/pkg/kubelet/client/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["kubelet_client.go"], - tags = ["automanaged"], deps = [ "//pkg/util/node:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -28,9 +27,6 @@ go_test( srcs = ["kubelet_client_test.go"], data = ["//pkg/client/testdata"], library = ":go_default_library", - tags = [ - "automanaged", - ], deps = [ "//vendor/k8s.io/client-go/kubernetes/typed/core/v1:go_default_library", "//vendor/k8s.io/client-go/rest:go_default_library", diff --git a/pkg/kubelet/cm/BUILD b/pkg/kubelet/cm/BUILD index e14eb9ec1cf..15ecfaa792d 100644 --- a/pkg/kubelet/cm/BUILD +++ b/pkg/kubelet/cm/BUILD @@ -33,7 +33,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/cadvisor:go_default_library", @@ -85,7 +84,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", ] + select({ diff --git a/pkg/kubelet/cm/util/BUILD b/pkg/kubelet/cm/util/BUILD index 9d5d79a2ae1..88c5c923418 100644 --- a/pkg/kubelet/cm/util/BUILD +++ b/pkg/kubelet/cm/util/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", diff --git a/pkg/kubelet/config/BUILD b/pkg/kubelet/config/BUILD index ade26a92731..e345856a3d5 100644 --- a/pkg/kubelet/config/BUILD +++ b/pkg/kubelet/config/BUILD @@ -25,7 +25,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -74,7 +73,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/kubelet/configmap/BUILD b/pkg/kubelet/configmap/BUILD index bd68be6b23b..2d5f98b7c6a 100644 --- a/pkg/kubelet/configmap/BUILD +++ b/pkg/kubelet/configmap/BUILD @@ -14,7 +14,6 @@ go_library( "configmap_manager.go", "fake_manager.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/kubelet/util:go_default_library", @@ -45,7 +44,6 @@ go_test( name = "go_default_test", srcs = ["configmap_manager_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/kubelet/container/BUILD b/pkg/kubelet/container/BUILD index ea731709e2c..eba2bb2d3f5 100644 --- a/pkg/kubelet/container/BUILD +++ b/pkg/kubelet/container/BUILD @@ -29,7 +29,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", @@ -66,7 +65,6 @@ go_test( "sync_result_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", @@ -80,7 +78,6 @@ go_test( go_test( name = "go_default_xtest", srcs = ["runtime_cache_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/kubelet/container/testing:go_default_library", diff --git a/pkg/kubelet/container/testing/BUILD b/pkg/kubelet/container/testing/BUILD index 47766e9243f..4d6fc0e88ba 100644 --- a/pkg/kubelet/container/testing/BUILD +++ b/pkg/kubelet/container/testing/BUILD @@ -17,7 +17,6 @@ go_library( "os.go", "runtime_mock.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/kubelet/custommetrics/BUILD b/pkg/kubelet/custommetrics/BUILD index 3098e296a39..5df606daa14 100644 --- a/pkg/kubelet/custommetrics/BUILD +++ b/pkg/kubelet/custommetrics/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["custom_metrics.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["custom_metrics_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/kubelet/dockershim/BUILD b/pkg/kubelet/dockershim/BUILD index 20f6a0ecbbb..937f33129c0 100644 --- a/pkg/kubelet/dockershim/BUILD +++ b/pkg/kubelet/dockershim/BUILD @@ -37,7 +37,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/credentialprovider:go_default_library", @@ -105,7 +104,6 @@ go_test( "fixtures/seccomp/test", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", "//pkg/kubelet/container:go_default_library", diff --git a/pkg/kubelet/dockershim/cm/BUILD b/pkg/kubelet/dockershim/cm/BUILD index ddfa24b6513..a79b3f56b7c 100644 --- a/pkg/kubelet/dockershim/cm/BUILD +++ b/pkg/kubelet/dockershim/cm/BUILD @@ -21,7 +21,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/kubelet/dockershim/libdocker:go_default_library", ] + select({ diff --git a/pkg/kubelet/dockershim/errors/BUILD b/pkg/kubelet/dockershim/errors/BUILD index 0d35ca937bd..fc6c26bff0f 100644 --- a/pkg/kubelet/dockershim/errors/BUILD +++ b/pkg/kubelet/dockershim/errors/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["errors.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubelet/dockershim/libdocker/BUILD b/pkg/kubelet/dockershim/libdocker/BUILD index fa284b9ed0b..859a9f7b813 100644 --- a/pkg/kubelet/dockershim/libdocker/BUILD +++ b/pkg/kubelet/dockershim/libdocker/BUILD @@ -16,7 +16,6 @@ go_test( "legacy_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/hash:go_default_library", "//vendor/github.com/docker/docker/api/types:go_default_library", @@ -36,7 +35,6 @@ go_library( "kube_docker_client.go", "legacy.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/metrics:go_default_library", diff --git a/pkg/kubelet/dockershim/remote/BUILD b/pkg/kubelet/dockershim/remote/BUILD index 7aa94a20050..c78a62d2b87 100644 --- a/pkg/kubelet/dockershim/remote/BUILD +++ b/pkg/kubelet/dockershim/remote/BUILD @@ -13,7 +13,6 @@ go_library( "docker_server.go", "docker_service.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/cri:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", diff --git a/pkg/kubelet/dockershim/testing/BUILD b/pkg/kubelet/dockershim/testing/BUILD index cc21e75d1b3..bab51629471 100644 --- a/pkg/kubelet/dockershim/testing/BUILD +++ b/pkg/kubelet/dockershim/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = ["//pkg/kubelet/dockershim/errors:go_default_library"], ) diff --git a/pkg/kubelet/envvars/BUILD b/pkg/kubelet/envvars/BUILD index 6bddc057e13..f5225d6a866 100644 --- a/pkg/kubelet/envvars/BUILD +++ b/pkg/kubelet/envvars/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "envvars.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -24,7 +23,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["envvars_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/kubelet/events/BUILD b/pkg/kubelet/events/BUILD index bcca6b23aea..1d3b21ff839 100644 --- a/pkg/kubelet/events/BUILD +++ b/pkg/kubelet/events/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["event.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubelet/eviction/BUILD b/pkg/kubelet/eviction/BUILD index 53fa17d4aa9..93ec72907a1 100644 --- a/pkg/kubelet/eviction/BUILD +++ b/pkg/kubelet/eviction/BUILD @@ -15,7 +15,6 @@ go_test( "helpers_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", @@ -48,7 +47,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/helper/qos:go_default_library", diff --git a/pkg/kubelet/eviction/api/BUILD b/pkg/kubelet/eviction/api/BUILD index 9328c46993b..fe8c1d1d727 100644 --- a/pkg/kubelet/eviction/api/BUILD +++ b/pkg/kubelet/eviction/api/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library"], ) diff --git a/pkg/kubelet/gpu/BUILD b/pkg/kubelet/gpu/BUILD index c90963272ef..190a7b1f872 100644 --- a/pkg/kubelet/gpu/BUILD +++ b/pkg/kubelet/gpu/BUILD @@ -13,7 +13,6 @@ go_library( "gpu_manager_stub.go", "types.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) diff --git a/pkg/kubelet/gpu/nvidia/BUILD b/pkg/kubelet/gpu/nvidia/BUILD index c785ddebad1..a3e9d2167e2 100644 --- a/pkg/kubelet/gpu/nvidia/BUILD +++ b/pkg/kubelet/gpu/nvidia/BUILD @@ -14,7 +14,6 @@ go_library( "helpers.go", "nvidia_gpu_manager.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/dockershim/libdocker:go_default_library", "//pkg/kubelet/gpu:go_default_library", @@ -42,7 +41,6 @@ go_test( name = "go_default_test", srcs = ["nvidia_gpu_manager_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/dockershim/libdocker:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/pkg/kubelet/images/BUILD b/pkg/kubelet/images/BUILD index 0ca1ebf00de..8dd0b37507b 100644 --- a/pkg/kubelet/images/BUILD +++ b/pkg/kubelet/images/BUILD @@ -18,7 +18,6 @@ go_library( "puller.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/cadvisor:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -42,7 +41,6 @@ go_test( "image_manager_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/cadvisor/testing:go_default_library", "//pkg/kubelet/container:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/BUILD b/pkg/kubelet/kubeletconfig/BUILD index 0742af769e6..b846daf0432 100644 --- a/pkg/kubelet/kubeletconfig/BUILD +++ b/pkg/kubelet/kubeletconfig/BUILD @@ -15,7 +15,6 @@ go_library( "rollback.go", "watch.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/apis/componentconfig/validation:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/badconfig/BUILD b/pkg/kubelet/kubeletconfig/badconfig/BUILD index 8feb477540b..ee2249af593 100644 --- a/pkg/kubelet/kubeletconfig/badconfig/BUILD +++ b/pkg/kubelet/kubeletconfig/badconfig/BUILD @@ -15,7 +15,6 @@ go_test( "fstracker_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/kubeletconfig/util/files:go_default_library", "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", @@ -29,7 +28,6 @@ go_library( "badconfig.go", "fstracker.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/kubeletconfig/util/files:go_default_library", "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/checkpoint/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/BUILD index fe4b1dc1cc5..afaca92e756 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/BUILD +++ b/pkg/kubelet/kubeletconfig/checkpoint/BUILD @@ -16,7 +16,6 @@ go_test( "download_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", @@ -40,7 +39,6 @@ go_library( "configmap.go", "download.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD index 47f2c00a2f3..7331ad1f2b8 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD @@ -15,7 +15,6 @@ go_test( "store_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/kubeletconfig/checkpoint:go_default_library", "//pkg/kubelet/kubeletconfig/util/files:go_default_library", @@ -35,7 +34,6 @@ go_library( "fsstore.go", "store.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/kubeletconfig/checkpoint:go_default_library", "//pkg/kubelet/kubeletconfig/util/files:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/configfiles/BUILD b/pkg/kubelet/kubeletconfig/configfiles/BUILD index 483f4976b5b..974828480a7 100644 --- a/pkg/kubelet/kubeletconfig/configfiles/BUILD +++ b/pkg/kubelet/kubeletconfig/configfiles/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["configfiles.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/kubeletconfig/util/codec:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/startups/BUILD b/pkg/kubelet/kubeletconfig/startups/BUILD index fbec095a86c..8063b615128 100644 --- a/pkg/kubelet/kubeletconfig/startups/BUILD +++ b/pkg/kubelet/kubeletconfig/startups/BUILD @@ -14,7 +14,6 @@ go_library( "fstracker.go", "startups.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig/validation:go_default_library", "//pkg/kubelet/kubeletconfig/util/files:go_default_library", @@ -43,7 +42,6 @@ go_test( "startups_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/kubeletconfig/util/files:go_default_library", "//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/status/BUILD b/pkg/kubelet/kubeletconfig/status/BUILD index 80e6d3daca0..920708bda6e 100644 --- a/pkg/kubelet/kubeletconfig/status/BUILD +++ b/pkg/kubelet/kubeletconfig/status/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["status.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/kubeletconfig/util/equal:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/util/codec/BUILD b/pkg/kubelet/kubeletconfig/util/codec/BUILD index 44ef8e5039e..052fd5da9dc 100644 --- a/pkg/kubelet/kubeletconfig/util/codec/BUILD +++ b/pkg/kubelet/kubeletconfig/util/codec/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["codec.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/kubelet/kubeletconfig/util/equal/BUILD b/pkg/kubelet/kubeletconfig/util/equal/BUILD index a39b4977158..15413c2e038 100644 --- a/pkg/kubelet/kubeletconfig/util/equal/BUILD +++ b/pkg/kubelet/kubeletconfig/util/equal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["equal.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) diff --git a/pkg/kubelet/kubeletconfig/util/files/BUILD b/pkg/kubelet/kubeletconfig/util/files/BUILD index 6d0978e464d..f31c0dcc7c7 100644 --- a/pkg/kubelet/kubeletconfig/util/files/BUILD +++ b/pkg/kubelet/kubeletconfig/util/files/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["files.go"], - tags = ["automanaged"], deps = ["//pkg/kubelet/kubeletconfig/util/filesystem:go_default_library"], ) diff --git a/pkg/kubelet/kubeletconfig/util/filesystem/BUILD b/pkg/kubelet/kubeletconfig/util/filesystem/BUILD index c85fb2ff22e..8f37ffba447 100644 --- a/pkg/kubelet/kubeletconfig/util/filesystem/BUILD +++ b/pkg/kubelet/kubeletconfig/util/filesystem/BUILD @@ -14,7 +14,6 @@ go_library( "fakefs.go", "filesystem.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/afero:go_default_library"], ) diff --git a/pkg/kubelet/kubeletconfig/util/log/BUILD b/pkg/kubelet/kubeletconfig/util/log/BUILD index 3003b84546c..d6268dd0475 100644 --- a/pkg/kubelet/kubeletconfig/util/log/BUILD +++ b/pkg/kubelet/kubeletconfig/util/log/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["log.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/pkg/kubelet/kubeletconfig/util/panic/BUILD b/pkg/kubelet/kubeletconfig/util/panic/BUILD index c0089b4f34f..8a13cd0f706 100644 --- a/pkg/kubelet/kubeletconfig/util/panic/BUILD +++ b/pkg/kubelet/kubeletconfig/util/panic/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["panic.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library"], ) diff --git a/pkg/kubelet/kubeletconfig/util/test/BUILD b/pkg/kubelet/kubeletconfig/util/test/BUILD index 64e10bbe765..a5016e88fb4 100644 --- a/pkg/kubelet/kubeletconfig/util/test/BUILD +++ b/pkg/kubelet/kubeletconfig/util/test/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["test.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubelet/kuberuntime/BUILD b/pkg/kubelet/kuberuntime/BUILD index e7e21dd69d5..54372f7d402 100644 --- a/pkg/kubelet/kuberuntime/BUILD +++ b/pkg/kubelet/kuberuntime/BUILD @@ -25,7 +25,6 @@ go_library( "legacy.go", "security_context.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/helper:go_default_library", @@ -82,7 +81,6 @@ go_test( "security_context_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//pkg/kubelet/apis/cri/testing:go_default_library", diff --git a/pkg/kubelet/leaky/BUILD b/pkg/kubelet/leaky/BUILD index 5808b9b86f8..8800af16e71 100644 --- a/pkg/kubelet/leaky/BUILD +++ b/pkg/kubelet/leaky/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["leaky.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubelet/lifecycle/BUILD b/pkg/kubelet/lifecycle/BUILD index 244d7e90c28..70295e468e6 100644 --- a/pkg/kubelet/lifecycle/BUILD +++ b/pkg/kubelet/lifecycle/BUILD @@ -18,7 +18,6 @@ go_library( "interfaces.go", "predicate.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/types:go_default_library", @@ -38,7 +37,6 @@ go_test( name = "go_default_test", srcs = ["handlers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/kubelet/metrics/BUILD b/pkg/kubelet/metrics/BUILD index 73a71fbd390..0e8cde0fa9a 100644 --- a/pkg/kubelet/metrics/BUILD +++ b/pkg/kubelet/metrics/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metrics.go"], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/kubelet/network/BUILD b/pkg/kubelet/network/BUILD index c7592df73d6..bf386b55b83 100644 --- a/pkg/kubelet/network/BUILD +++ b/pkg/kubelet/network/BUILD @@ -13,7 +13,6 @@ go_library( "network.go", "plugins.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/container:go_default_library", diff --git a/pkg/kubelet/network/cni/BUILD b/pkg/kubelet/network/cni/BUILD index f12475b3b4f..28351ab5e29 100644 --- a/pkg/kubelet/network/cni/BUILD +++ b/pkg/kubelet/network/cni/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["cni.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -32,7 +31,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/apis/componentconfig:go_default_library", diff --git a/pkg/kubelet/network/cni/testing/BUILD b/pkg/kubelet/network/cni/testing/BUILD index 7b84030cffd..9cd6c29fb56 100644 --- a/pkg/kubelet/network/cni/testing/BUILD +++ b/pkg/kubelet/network/cni/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["mock_cni.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/containernetworking/cni/libcni:go_default_library", "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", diff --git a/pkg/kubelet/network/hairpin/BUILD b/pkg/kubelet/network/hairpin/BUILD index 5d1ef1e55e0..7a8958a84ff 100644 --- a/pkg/kubelet/network/hairpin/BUILD +++ b/pkg/kubelet/network/hairpin/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["hairpin.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["hairpin_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec/testing:go_default_library", diff --git a/pkg/kubelet/network/hostport/BUILD b/pkg/kubelet/network/hostport/BUILD index c210dbea125..0393b201c3e 100644 --- a/pkg/kubelet/network/hostport/BUILD +++ b/pkg/kubelet/network/hostport/BUILD @@ -16,7 +16,6 @@ go_library( "hostport_manager.go", "hostport_syncer.go", ], - tags = ["automanaged"], deps = [ "//pkg/proxy/iptables:go_default_library", "//pkg/util/iptables:go_default_library", @@ -34,7 +33,6 @@ go_test( "hostport_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/iptables:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/pkg/kubelet/network/hostport/testing/BUILD b/pkg/kubelet/network/hostport/testing/BUILD index 35f2321fb6f..dbac4d80019 100644 --- a/pkg/kubelet/network/hostport/testing/BUILD +++ b/pkg/kubelet/network/hostport/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake.go"], - tags = ["automanaged"], deps = ["//pkg/kubelet/network/hostport:go_default_library"], ) diff --git a/pkg/kubelet/network/kubenet/BUILD b/pkg/kubelet/network/kubenet/BUILD index 6330488c24b..ac144b6f1dd 100644 --- a/pkg/kubelet/network/kubenet/BUILD +++ b/pkg/kubelet/network/kubenet/BUILD @@ -19,7 +19,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -57,7 +56,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/apis/componentconfig:go_default_library", diff --git a/pkg/kubelet/network/testing/BUILD b/pkg/kubelet/network/testing/BUILD index 0dbe56af506..363a5d623c1 100644 --- a/pkg/kubelet/network/testing/BUILD +++ b/pkg/kubelet/network/testing/BUILD @@ -14,7 +14,6 @@ go_library( "fake_host.go", "mock_network_plugin.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["plugins_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/componentconfig:go_default_library", "//pkg/kubelet/container:go_default_library", diff --git a/pkg/kubelet/pleg/BUILD b/pkg/kubelet/pleg/BUILD index 6ad5cae0e5a..78031d28d34 100644 --- a/pkg/kubelet/pleg/BUILD +++ b/pkg/kubelet/pleg/BUILD @@ -15,7 +15,6 @@ go_library( "generic.go", "pleg.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/metrics:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["generic_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/container/testing:go_default_library", diff --git a/pkg/kubelet/pod/BUILD b/pkg/kubelet/pod/BUILD index 5cad5acb0a1..1488665fa32 100644 --- a/pkg/kubelet/pod/BUILD +++ b/pkg/kubelet/pod/BUILD @@ -14,7 +14,6 @@ go_library( "mirror_client.go", "pod_manager.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/configmap:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -36,7 +35,6 @@ go_test( "pod_manager_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/configmap:go_default_library", "//pkg/kubelet/container:go_default_library", diff --git a/pkg/kubelet/pod/testing/BUILD b/pkg/kubelet/pod/testing/BUILD index fd7e4d90550..c785a5e5001 100644 --- a/pkg/kubelet/pod/testing/BUILD +++ b/pkg/kubelet/pod/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake_mirror_client.go"], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/kubelet/preemption/BUILD b/pkg/kubelet/preemption/BUILD index db17a0bc9f6..59b8278ee04 100644 --- a/pkg/kubelet/preemption/BUILD +++ b/pkg/kubelet/preemption/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["preemption.go"], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper/qos:go_default_library", "//pkg/api/v1/resource:go_default_library", @@ -47,7 +46,6 @@ go_test( name = "go_default_test", srcs = ["preemption_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/types:go_default_library", diff --git a/pkg/kubelet/prober/BUILD b/pkg/kubelet/prober/BUILD index 4019666b303..6a7c8b24e5a 100644 --- a/pkg/kubelet/prober/BUILD +++ b/pkg/kubelet/prober/BUILD @@ -15,7 +15,6 @@ go_library( "prober_manager.go", "worker.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -48,7 +47,6 @@ go_test( "worker_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/container/testing:go_default_library", diff --git a/pkg/kubelet/prober/results/BUILD b/pkg/kubelet/prober/results/BUILD index d4fa8ebbdae..563127e35db 100644 --- a/pkg/kubelet/prober/results/BUILD +++ b/pkg/kubelet/prober/results/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["results_manager.go"], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["results_manager_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/pkg/kubelet/prober/testing/BUILD b/pkg/kubelet/prober/testing/BUILD index b723c48f904..78e55670926 100644 --- a/pkg/kubelet/prober/testing/BUILD +++ b/pkg/kubelet/prober/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake_manager.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/pkg/kubelet/qos/BUILD b/pkg/kubelet/qos/BUILD index 82cc939342a..9bf07da7976 100644 --- a/pkg/kubelet/qos/BUILD +++ b/pkg/kubelet/qos/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["policy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -25,7 +24,6 @@ go_library( "doc.go", "policy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper/qos:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/kubelet/remote/BUILD b/pkg/kubelet/remote/BUILD index 59b1e149bed..295540eb64f 100644 --- a/pkg/kubelet/remote/BUILD +++ b/pkg/kubelet/remote/BUILD @@ -15,7 +15,6 @@ go_library( "remote_runtime.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/cri:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", diff --git a/pkg/kubelet/rkt/BUILD b/pkg/kubelet/rkt/BUILD index da2cd6969f5..3b47a5b6836 100644 --- a/pkg/kubelet/rkt/BUILD +++ b/pkg/kubelet/rkt/BUILD @@ -21,7 +21,6 @@ go_library( "systemd.go", "version.go", ], - tags = ["automanaged"], deps = [ "//pkg/credentialprovider:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -69,7 +68,6 @@ go_test( "rkt_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//pkg/kubelet/container/testing:go_default_library", diff --git a/pkg/kubelet/rktshim/BUILD b/pkg/kubelet/rktshim/BUILD index 57a301aea63..a9cb716b59c 100644 --- a/pkg/kubelet/rktshim/BUILD +++ b/pkg/kubelet/rktshim/BUILD @@ -17,7 +17,6 @@ go_library( "imagestore.go", "pod-level-interface.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/cri:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", @@ -29,7 +28,6 @@ go_test( name = "go_default_test", srcs = ["imagestore_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library"], ) diff --git a/pkg/kubelet/secret/BUILD b/pkg/kubelet/secret/BUILD index f652a40f399..55261f99b3e 100644 --- a/pkg/kubelet/secret/BUILD +++ b/pkg/kubelet/secret/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["secret_manager_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -31,7 +30,6 @@ go_library( "fake_manager.go", "secret_manager.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/kubelet/util:go_default_library", diff --git a/pkg/kubelet/server/BUILD b/pkg/kubelet/server/BUILD index 901302092a4..79fef79bd34 100644 --- a/pkg/kubelet/server/BUILD +++ b/pkg/kubelet/server/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "server.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/validation:go_default_library", @@ -61,7 +60,6 @@ go_test( "server_websocket_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/pkg/kubelet/server/portforward/BUILD b/pkg/kubelet/server/portforward/BUILD index a6f01c3ac46..6bb8706e80d 100644 --- a/pkg/kubelet/server/portforward/BUILD +++ b/pkg/kubelet/server/portforward/BUILD @@ -16,7 +16,6 @@ go_library( "portforward.go", "websocket.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -36,7 +35,6 @@ go_test( "websocket_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", diff --git a/pkg/kubelet/server/remotecommand/BUILD b/pkg/kubelet/server/remotecommand/BUILD index 22517fdd380..ee271d7f9bf 100644 --- a/pkg/kubelet/server/remotecommand/BUILD +++ b/pkg/kubelet/server/remotecommand/BUILD @@ -16,7 +16,6 @@ go_library( "httpstream.go", "websocket.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/pkg/kubelet/server/stats/BUILD b/pkg/kubelet/server/stats/BUILD index 620dd6831c9..9bc6abe5d74 100644 --- a/pkg/kubelet/server/stats/BUILD +++ b/pkg/kubelet/server/stats/BUILD @@ -18,7 +18,6 @@ go_library( "summary.go", "volume_stat_calculator.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm:go_default_library", @@ -46,7 +45,6 @@ go_test( "summary_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", "//pkg/kubelet/cm:go_default_library", diff --git a/pkg/kubelet/server/streaming/BUILD b/pkg/kubelet/server/streaming/BUILD index c2d62d4c3a9..e70a2d992b8 100644 --- a/pkg/kubelet/server/streaming/BUILD +++ b/pkg/kubelet/server/streaming/BUILD @@ -15,7 +15,6 @@ go_library( "request_cache.go", "server.go", ], - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", "//pkg/kubelet/server/portforward:go_default_library", @@ -37,7 +36,6 @@ go_test( "server_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/apis/cri/v1alpha1/runtime:go_default_library", diff --git a/pkg/kubelet/status/BUILD b/pkg/kubelet/status/BUILD index a0b08cf58bc..b0d35e24d8b 100644 --- a/pkg/kubelet/status/BUILD +++ b/pkg/kubelet/status/BUILD @@ -14,7 +14,6 @@ go_library( "generate.go", "status_manager.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -41,7 +40,6 @@ go_test( "status_manager_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", diff --git a/pkg/kubelet/status/testing/BUILD b/pkg/kubelet/status/testing/BUILD index bb1748e0273..11e3296ac6f 100644 --- a/pkg/kubelet/status/testing/BUILD +++ b/pkg/kubelet/status/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake_pod_deletion_safety.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) diff --git a/pkg/kubelet/sysctl/BUILD b/pkg/kubelet/sysctl/BUILD index c34865e6025..dc2c213070d 100644 --- a/pkg/kubelet/sysctl/BUILD +++ b/pkg/kubelet/sysctl/BUILD @@ -15,7 +15,6 @@ go_library( "runtime.go", "whitelist.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/api/validation:go_default_library", @@ -33,7 +32,6 @@ go_test( "whitelist_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) diff --git a/pkg/kubelet/types/BUILD b/pkg/kubelet/types/BUILD index 622451e2aa8..d0c3fe20bc9 100644 --- a/pkg/kubelet/types/BUILD +++ b/pkg/kubelet/types/BUILD @@ -17,7 +17,6 @@ go_library( "pod_update.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -33,7 +32,6 @@ go_test( "types_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", diff --git a/pkg/kubelet/util/BUILD b/pkg/kubelet/util/BUILD index 4d201ccce35..207b49fbd71 100644 --- a/pkg/kubelet/util/BUILD +++ b/pkg/kubelet/util/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], ) @@ -31,7 +30,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", ] + select({ diff --git a/pkg/kubelet/util/cache/BUILD b/pkg/kubelet/util/cache/BUILD index 4cc478e32b3..0374e6abd5d 100644 --- a/pkg/kubelet/util/cache/BUILD +++ b/pkg/kubelet/util/cache/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["object_cache.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/tools/cache:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["object_cache_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/pkg/kubelet/util/csr/BUILD b/pkg/kubelet/util/csr/BUILD index 9b794039a8c..1cfd6d5d156 100644 --- a/pkg/kubelet/util/csr/BUILD +++ b/pkg/kubelet/util/csr/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["csr.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/certificates/v1beta1:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -45,7 +44,6 @@ go_test( name = "go_default_test", srcs = ["csr_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/kubelet/util/format/BUILD b/pkg/kubelet/util/format/BUILD index 1775300d218..3097514e268 100644 --- a/pkg/kubelet/util/format/BUILD +++ b/pkg/kubelet/util/format/BUILD @@ -14,7 +14,6 @@ go_library( "pod.go", "resources.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["resources_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/kubelet/util/ioutils/BUILD b/pkg/kubelet/util/ioutils/BUILD index f0ae4ad257d..09d71e9c5da 100644 --- a/pkg/kubelet/util/ioutils/BUILD +++ b/pkg/kubelet/util/ioutils/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["ioutils.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/kubelet/util/queue/BUILD b/pkg/kubelet/util/queue/BUILD index 518ecfaa8b8..07ad2e9ac87 100644 --- a/pkg/kubelet/util/queue/BUILD +++ b/pkg/kubelet/util/queue/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["work_queue.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["work_queue_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", diff --git a/pkg/kubelet/util/sliceutils/BUILD b/pkg/kubelet/util/sliceutils/BUILD index 16a0f5b0a00..aefa33816bf 100644 --- a/pkg/kubelet/util/sliceutils/BUILD +++ b/pkg/kubelet/util/sliceutils/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["sliceutils.go"], - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -35,7 +34,6 @@ go_test( name = "go_default_test", srcs = ["sliceutils_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/container:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/kubelet/volumemanager/BUILD b/pkg/kubelet/volumemanager/BUILD index 2c9d292a589..2d89e49059e 100644 --- a/pkg/kubelet/volumemanager/BUILD +++ b/pkg/kubelet/volumemanager/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["volume_manager.go"], - tags = ["automanaged"], deps = [ "//pkg/kubelet/config:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -41,7 +40,6 @@ go_test( name = "go_default_test", srcs = ["volume_manager_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/config:go_default_library", "//pkg/kubelet/configmap:go_default_library", diff --git a/pkg/kubelet/volumemanager/cache/BUILD b/pkg/kubelet/volumemanager/cache/BUILD index 30a00cc2a93..36c7257e1f6 100644 --- a/pkg/kubelet/volumemanager/cache/BUILD +++ b/pkg/kubelet/volumemanager/cache/BUILD @@ -14,7 +14,6 @@ go_library( "actual_state_of_world.go", "desired_state_of_world.go", ], - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/util/operationexecutor:go_default_library", @@ -33,7 +32,6 @@ go_test( "desired_state_of_world_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/testing:go_default_library", diff --git a/pkg/kubelet/volumemanager/populator/BUILD b/pkg/kubelet/volumemanager/populator/BUILD index 2815b77a0c2..275f070ce6f 100644 --- a/pkg/kubelet/volumemanager/populator/BUILD +++ b/pkg/kubelet/volumemanager/populator/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["desired_state_of_world_populator.go"], - tags = ["automanaged"], deps = [ "//pkg/kubelet/config:go_default_library", "//pkg/kubelet/container:go_default_library", @@ -49,7 +48,6 @@ go_test( name = "go_default_test", srcs = ["desired_state_of_world_populator_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/configmap:go_default_library", "//pkg/kubelet/container/testing:go_default_library", diff --git a/pkg/kubelet/volumemanager/reconciler/BUILD b/pkg/kubelet/volumemanager/reconciler/BUILD index de414ef985d..bfdefa0c276 100644 --- a/pkg/kubelet/volumemanager/reconciler/BUILD +++ b/pkg/kubelet/volumemanager/reconciler/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["reconciler.go"], - tags = ["automanaged"], deps = [ "//cmd/kubelet/app/options:go_default_library", "//pkg/kubelet/volumemanager/cache:go_default_library", @@ -37,7 +36,6 @@ go_test( name = "go_default_test", srcs = ["reconciler_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/volumemanager/cache:go_default_library", "//pkg/util/mount:go_default_library", diff --git a/pkg/kubemark/BUILD b/pkg/kubemark/BUILD index 70835e5c55e..33ecd6b7389 100644 --- a/pkg/kubemark/BUILD +++ b/pkg/kubemark/BUILD @@ -14,7 +14,6 @@ go_library( "hollow_kubelet.go", "hollow_proxy.go", ], - tags = ["automanaged"], deps = [ "//cmd/kube-proxy/app:go_default_library", "//cmd/kubelet/app:go_default_library", diff --git a/pkg/labels/BUILD b/pkg/labels/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/labels/BUILD +++ b/pkg/labels/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/master/BUILD b/pkg/master/BUILD index 6129f98799e..1f8448c18ea 100644 --- a/pkg/master/BUILD +++ b/pkg/master/BUILD @@ -18,7 +18,6 @@ go_library( "master.go", "services.go", ], - tags = ["automanaged"], deps = [ "//cmd/kube-apiserver/app/options:go_default_library", "//pkg/api:go_default_library", @@ -112,7 +111,6 @@ go_test( "master_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/master/controller/crdregistration/BUILD b/pkg/master/controller/crdregistration/BUILD index b079131ba03..4212768b148 100644 --- a/pkg/master/controller/crdregistration/BUILD +++ b/pkg/master/controller/crdregistration/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["crdregistration_controller.go"], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -46,7 +45,6 @@ go_test( name = "go_default_test", srcs = ["crdregistration_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion:go_default_library", diff --git a/pkg/master/ports/BUILD b/pkg/master/ports/BUILD index 906fb7cae08..84f433c4329 100644 --- a/pkg/master/ports/BUILD +++ b/pkg/master/ports/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "ports.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/master/tunneler/BUILD b/pkg/master/tunneler/BUILD index f31cd36f18b..c204c98fa1a 100644 --- a/pkg/master/tunneler/BUILD +++ b/pkg/master/tunneler/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["ssh_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["ssh.go"], - tags = ["automanaged"], deps = [ "//pkg/ssh:go_default_library", "//pkg/util/file:go_default_library", diff --git a/pkg/printers/BUILD b/pkg/printers/BUILD index 5a80dd58399..fc2c11ec3a9 100644 --- a/pkg/printers/BUILD +++ b/pkg/printers/BUILD @@ -23,7 +23,6 @@ go_library( "template.go", "versioned.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", @@ -41,7 +40,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["customcolumn_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", diff --git a/pkg/printers/internalversion/BUILD b/pkg/printers/internalversion/BUILD index 53268d714a6..346140317d7 100644 --- a/pkg/printers/internalversion/BUILD +++ b/pkg/printers/internalversion/BUILD @@ -16,7 +16,6 @@ go_test( "sorted_resource_name_list_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset/fake:go_default_library", @@ -57,7 +56,6 @@ go_library( "describe.go", "printers.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", diff --git a/pkg/printers/storage/BUILD b/pkg/printers/storage/BUILD index c5478f458e7..3a51ff626ea 100644 --- a/pkg/printers/storage/BUILD +++ b/pkg/printers/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/printers:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1alpha1:go_default_library", diff --git a/pkg/probe/BUILD b/pkg/probe/BUILD index 9b51fe1718c..f9395951d1c 100644 --- a/pkg/probe/BUILD +++ b/pkg/probe/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "probe.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/probe/exec/BUILD b/pkg/probe/exec/BUILD index 7cea1c092f0..fdce701544a 100644 --- a/pkg/probe/exec/BUILD +++ b/pkg/probe/exec/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["exec.go"], - tags = ["automanaged"], deps = [ "//pkg/probe:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["exec_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/probe:go_default_library"], ) diff --git a/pkg/probe/http/BUILD b/pkg/probe/http/BUILD index 8109f37279f..2eafc0a093a 100644 --- a/pkg/probe/http/BUILD +++ b/pkg/probe/http/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["http.go"], - tags = ["automanaged"], deps = [ "//pkg/probe:go_default_library", "//pkg/version:go_default_library", @@ -24,7 +23,6 @@ go_test( name = "go_default_test", srcs = ["http_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/probe:go_default_library"], ) diff --git a/pkg/probe/tcp/BUILD b/pkg/probe/tcp/BUILD index bec74fcd71a..9048839a855 100644 --- a/pkg/probe/tcp/BUILD +++ b/pkg/probe/tcp/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["tcp.go"], - tags = ["automanaged"], deps = [ "//pkg/probe:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["tcp_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/probe:go_default_library"], ) diff --git a/pkg/proxy/BUILD b/pkg/proxy/BUILD index 4ed275a0939..91958aae41b 100644 --- a/pkg/proxy/BUILD +++ b/pkg/proxy/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "types.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/types:go_default_library"], ) diff --git a/pkg/proxy/config/BUILD b/pkg/proxy/config/BUILD index 8048f6e9d67..9e8f76d0a26 100644 --- a/pkg/proxy/config/BUILD +++ b/pkg/proxy/config/BUILD @@ -14,7 +14,6 @@ go_library( "config.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/informers/informers_generated/internalversion/core/internalversion:go_default_library", @@ -33,7 +32,6 @@ go_test( "config_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/pkg/proxy/healthcheck/BUILD b/pkg/proxy/healthcheck/BUILD index e6442fd57d5..0be2e85ca4e 100644 --- a/pkg/proxy/healthcheck/BUILD +++ b/pkg/proxy/healthcheck/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "healthcheck.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["healthcheck_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/pkg/proxy/iptables/BUILD b/pkg/proxy/iptables/BUILD index 3168a71c2c3..338980447e8 100644 --- a/pkg/proxy/iptables/BUILD +++ b/pkg/proxy/iptables/BUILD @@ -14,7 +14,6 @@ go_library( "metrics.go", "proxier.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -43,7 +42,6 @@ go_test( name = "go_default_test", srcs = ["proxier_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/proxy:go_default_library", diff --git a/pkg/proxy/userspace/BUILD b/pkg/proxy/userspace/BUILD index 30d28736484..7750cc1e192 100644 --- a/pkg/proxy/userspace/BUILD +++ b/pkg/proxy/userspace/BUILD @@ -24,7 +24,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -52,7 +51,6 @@ go_test( "roundrobin_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/proxy:go_default_library", diff --git a/pkg/proxy/util/BUILD b/pkg/proxy/util/BUILD index 44a8bd1a3a9..ca6c4d77cc0 100644 --- a/pkg/proxy/util/BUILD +++ b/pkg/proxy/util/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["conntrack.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["conntrack_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec/testing:go_default_library", diff --git a/pkg/proxy/winuserspace/BUILD b/pkg/proxy/winuserspace/BUILD index 45abb77fdbd..7722e4fbc3a 100644 --- a/pkg/proxy/winuserspace/BUILD +++ b/pkg/proxy/winuserspace/BUILD @@ -18,7 +18,6 @@ go_library( "types.go", "udp_server.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -42,7 +41,6 @@ go_test( "roundrobin_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/proxy:go_default_library", diff --git a/pkg/quota/BUILD b/pkg/quota/BUILD index f199b0c7512..72a62317ec1 100644 --- a/pkg/quota/BUILD +++ b/pkg/quota/BUILD @@ -14,7 +14,6 @@ go_library( "interfaces.go", "resources.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -30,7 +29,6 @@ go_test( name = "go_default_test", srcs = ["resources_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/quota/evaluator/core/BUILD b/pkg/quota/evaluator/core/BUILD index 017e832ebcb..3015fb7f08a 100644 --- a/pkg/quota/evaluator/core/BUILD +++ b/pkg/quota/evaluator/core/BUILD @@ -21,7 +21,6 @@ go_library( "secrets.go", "services.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -51,7 +50,6 @@ go_test( "services_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/quota:go_default_library", diff --git a/pkg/quota/generic/BUILD b/pkg/quota/generic/BUILD index 1a3869a6321..4de2bddb5fc 100644 --- a/pkg/quota/generic/BUILD +++ b/pkg/quota/generic/BUILD @@ -13,7 +13,6 @@ go_library( "evaluator.go", "registry.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/quota:go_default_library", diff --git a/pkg/quota/install/BUILD b/pkg/quota/install/BUILD index 7855075907a..51950f4d8e0 100644 --- a/pkg/quota/install/BUILD +++ b/pkg/quota/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["registry.go"], - tags = ["automanaged"], deps = [ "//pkg/quota:go_default_library", "//pkg/quota/evaluator/core:go_default_library", diff --git a/pkg/registry/BUILD b/pkg/registry/BUILD index 57fb8090b07..a1f220d99f5 100644 --- a/pkg/registry/BUILD +++ b/pkg/registry/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD index e391b43c2d2..6b2b62d88a0 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD index 849d1cdc40a..ecc0a364557 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/registry/admissionregistration/initializerconfiguration/BUILD b/pkg/registry/admissionregistration/initializerconfiguration/BUILD index f8320d35ac7..d0103160fd5 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/BUILD +++ b/pkg/registry/admissionregistration/initializerconfiguration/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD b/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD index 62ece05490d..c5b0141e387 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD +++ b/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/registry/admissionregistration/rest/BUILD b/pkg/registry/admissionregistration/rest/BUILD index 585a97265d1..9c415774f62 100644 --- a/pkg/registry/admissionregistration/rest/BUILD +++ b/pkg/registry/admissionregistration/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_apiserver.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admissionregistration:go_default_library", diff --git a/pkg/registry/apps/controllerrevision/BUILD b/pkg/registry/apps/controllerrevision/BUILD index 51490282900..f7b60c24120 100644 --- a/pkg/registry/apps/controllerrevision/BUILD +++ b/pkg/registry/apps/controllerrevision/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", @@ -28,7 +27,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/registry/apps/controllerrevision/storage/BUILD b/pkg/registry/apps/controllerrevision/storage/BUILD index e892b924e61..02093cbb63a 100644 --- a/pkg/registry/apps/controllerrevision/storage/BUILD +++ b/pkg/registry/apps/controllerrevision/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/registry/apps/rest/BUILD b/pkg/registry/apps/rest/BUILD index 4bb30aff1e0..5441201a200 100644 --- a/pkg/registry/apps/rest/BUILD +++ b/pkg/registry/apps/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_apps.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/registry/apps/statefulset/BUILD b/pkg/registry/apps/statefulset/BUILD index b2e690d623d..e58f183f3bf 100644 --- a/pkg/registry/apps/statefulset/BUILD +++ b/pkg/registry/apps/statefulset/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", @@ -37,7 +36,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/registry/apps/statefulset/storage/BUILD b/pkg/registry/apps/statefulset/storage/BUILD index c8d5023a1af..90977b2297d 100644 --- a/pkg/registry/apps/statefulset/storage/BUILD +++ b/pkg/registry/apps/statefulset/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", @@ -34,7 +33,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/apps:go_default_library", diff --git a/pkg/registry/authentication/rest/BUILD b/pkg/registry/authentication/rest/BUILD index 5131719015c..6f2b4e3c10f 100644 --- a/pkg/registry/authentication/rest/BUILD +++ b/pkg/registry/authentication/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_authentication.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/authentication:go_default_library", diff --git a/pkg/registry/authentication/tokenreview/BUILD b/pkg/registry/authentication/tokenreview/BUILD index f5744057e5f..a0274dab818 100644 --- a/pkg/registry/authentication/tokenreview/BUILD +++ b/pkg/registry/authentication/tokenreview/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/authentication:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/pkg/registry/authorization/localsubjectaccessreview/BUILD b/pkg/registry/authorization/localsubjectaccessreview/BUILD index d9a4fb070d9..60c9a9b9275 100644 --- a/pkg/registry/authorization/localsubjectaccessreview/BUILD +++ b/pkg/registry/authorization/localsubjectaccessreview/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["rest.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//pkg/apis/authorization/validation:go_default_library", diff --git a/pkg/registry/authorization/rest/BUILD b/pkg/registry/authorization/rest/BUILD index 4c5b8f77d7d..8a9fdcef2f6 100644 --- a/pkg/registry/authorization/rest/BUILD +++ b/pkg/registry/authorization/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_authorization.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/authorization:go_default_library", diff --git a/pkg/registry/authorization/selfsubjectaccessreview/BUILD b/pkg/registry/authorization/selfsubjectaccessreview/BUILD index d9a4fb070d9..60c9a9b9275 100644 --- a/pkg/registry/authorization/selfsubjectaccessreview/BUILD +++ b/pkg/registry/authorization/selfsubjectaccessreview/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["rest.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//pkg/apis/authorization/validation:go_default_library", diff --git a/pkg/registry/authorization/subjectaccessreview/BUILD b/pkg/registry/authorization/subjectaccessreview/BUILD index 701e1b43aa3..bfc17ce879a 100644 --- a/pkg/registry/authorization/subjectaccessreview/BUILD +++ b/pkg/registry/authorization/subjectaccessreview/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["rest.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//pkg/apis/authorization/validation:go_default_library", @@ -40,7 +39,6 @@ go_test( name = "go_default_test", srcs = ["rest_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/pkg/registry/authorization/util/BUILD b/pkg/registry/authorization/util/BUILD index 666444bb7e9..1b227becf00 100644 --- a/pkg/registry/authorization/util/BUILD +++ b/pkg/registry/authorization/util/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/authorization:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD b/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD index fb954d07f4e..12b1e70c530 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD index f2b7e65435b..2c73f694e07 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", @@ -30,7 +29,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/registry/autoscaling/rest/BUILD b/pkg/registry/autoscaling/rest/BUILD index 1e2997d5097..5e7f51e7954 100644 --- a/pkg/registry/autoscaling/rest/BUILD +++ b/pkg/registry/autoscaling/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_autoscaling.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/registry/batch/cronjob/BUILD b/pkg/registry/batch/cronjob/BUILD index 0a894be8683..6b1122f8316 100644 --- a/pkg/registry/batch/cronjob/BUILD +++ b/pkg/registry/batch/cronjob/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/registry/batch/cronjob/storage/BUILD b/pkg/registry/batch/cronjob/storage/BUILD index f8bf84bc979..0f08ac40d22 100644 --- a/pkg/registry/batch/cronjob/storage/BUILD +++ b/pkg/registry/batch/cronjob/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", @@ -31,7 +30,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/registry/batch/job/BUILD b/pkg/registry/batch/job/BUILD index c4a356516e1..af63f6a5d0a 100644 --- a/pkg/registry/batch/job/BUILD +++ b/pkg/registry/batch/job/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/batch/job/storage/BUILD b/pkg/registry/batch/job/storage/BUILD index 8a29b7de137..70e843eb3e9 100644 --- a/pkg/registry/batch/job/storage/BUILD +++ b/pkg/registry/batch/job/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/registry/batch/rest/BUILD b/pkg/registry/batch/rest/BUILD index 801217a37fa..fcca76db93d 100644 --- a/pkg/registry/batch/rest/BUILD +++ b/pkg/registry/batch/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_batch.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/pkg/registry/cachesize/BUILD b/pkg/registry/cachesize/BUILD index 13c29e2ef22..c700cb35ad4 100644 --- a/pkg/registry/cachesize/BUILD +++ b/pkg/registry/cachesize/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["cachesize.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/pkg/registry/certificates/certificates/BUILD b/pkg/registry/certificates/certificates/BUILD index 7b2d0f21dc0..0e5ea93cf28 100644 --- a/pkg/registry/certificates/certificates/BUILD +++ b/pkg/registry/certificates/certificates/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/certificates:go_default_library", @@ -35,7 +34,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/certificates:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/pkg/registry/certificates/certificates/storage/BUILD b/pkg/registry/certificates/certificates/storage/BUILD index 2476e94261f..915f10126bf 100644 --- a/pkg/registry/certificates/certificates/storage/BUILD +++ b/pkg/registry/certificates/certificates/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/certificates:go_default_library", diff --git a/pkg/registry/certificates/rest/BUILD b/pkg/registry/certificates/rest/BUILD index 25d6266e8c9..6f26692250b 100644 --- a/pkg/registry/certificates/rest/BUILD +++ b/pkg/registry/certificates/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_certificates.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/certificates:go_default_library", diff --git a/pkg/registry/core/componentstatus/BUILD b/pkg/registry/core/componentstatus/BUILD index 45a3fe07048..73516fb01f6 100644 --- a/pkg/registry/core/componentstatus/BUILD +++ b/pkg/registry/core/componentstatus/BUILD @@ -15,7 +15,6 @@ go_library( "rest.go", "validator.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/probe:go_default_library", @@ -36,7 +35,6 @@ go_test( "validator_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/probe:go_default_library", diff --git a/pkg/registry/core/configmap/BUILD b/pkg/registry/core/configmap/BUILD index ff694136733..efe2e2ccf83 100644 --- a/pkg/registry/core/configmap/BUILD +++ b/pkg/registry/core/configmap/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -34,7 +33,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/registry/core/configmap/storage/BUILD b/pkg/registry/core/configmap/storage/BUILD index 11a639ba6d8..d3b79381383 100644 --- a/pkg/registry/core/configmap/storage/BUILD +++ b/pkg/registry/core/configmap/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/endpoint/BUILD b/pkg/registry/core/endpoint/BUILD index 3ccf3b9c5c7..3d184ae869e 100644 --- a/pkg/registry/core/endpoint/BUILD +++ b/pkg/registry/core/endpoint/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/endpoints:go_default_library", diff --git a/pkg/registry/core/endpoint/storage/BUILD b/pkg/registry/core/endpoint/storage/BUILD index a1f1ae10523..26a33f9f70c 100644 --- a/pkg/registry/core/endpoint/storage/BUILD +++ b/pkg/registry/core/endpoint/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/event/BUILD b/pkg/registry/core/event/BUILD index 4fa7714d20c..8b0effbee7d 100644 --- a/pkg/registry/core/event/BUILD +++ b/pkg/registry/core/event/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -34,7 +33,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/event/storage/BUILD b/pkg/registry/core/event/storage/BUILD index 4babb1714fa..75838fdda2b 100644 --- a/pkg/registry/core/event/storage/BUILD +++ b/pkg/registry/core/event/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -26,7 +25,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/limitrange/BUILD b/pkg/registry/core/limitrange/BUILD index a8ee1cf5167..e8f58c7fb07 100644 --- a/pkg/registry/core/limitrange/BUILD +++ b/pkg/registry/core/limitrange/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", diff --git a/pkg/registry/core/limitrange/storage/BUILD b/pkg/registry/core/limitrange/storage/BUILD index 4ccde31dda9..ef5138613cd 100644 --- a/pkg/registry/core/limitrange/storage/BUILD +++ b/pkg/registry/core/limitrange/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/namespace/BUILD b/pkg/registry/core/namespace/BUILD index 40b3985c608..cf4634f5767 100644 --- a/pkg/registry/core/namespace/BUILD +++ b/pkg/registry/core/namespace/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -38,7 +37,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/namespace/storage/BUILD b/pkg/registry/core/namespace/storage/BUILD index 55fbc1d478f..e0e82c46510 100644 --- a/pkg/registry/core/namespace/storage/BUILD +++ b/pkg/registry/core/namespace/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/node/BUILD b/pkg/registry/core/node/BUILD index 3509b9be2ac..fd1ac0bedf8 100644 --- a/pkg/registry/core/node/BUILD +++ b/pkg/registry/core/node/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -42,7 +41,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/node/rest/BUILD b/pkg/registry/core/node/rest/BUILD index 96593785340..e79b00f90c5 100644 --- a/pkg/registry/core/node/rest/BUILD +++ b/pkg/registry/core/node/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["proxy.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/capabilities:go_default_library", diff --git a/pkg/registry/core/node/storage/BUILD b/pkg/registry/core/node/storage/BUILD index dfbb500ac5e..0862705e799 100644 --- a/pkg/registry/core/node/storage/BUILD +++ b/pkg/registry/core/node/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/client:go_default_library", @@ -30,7 +29,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", diff --git a/pkg/registry/core/persistentvolume/BUILD b/pkg/registry/core/persistentvolume/BUILD index 6ab27cd0daa..ebae6261b15 100644 --- a/pkg/registry/core/persistentvolume/BUILD +++ b/pkg/registry/core/persistentvolume/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -34,7 +33,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/persistentvolume/storage/BUILD b/pkg/registry/core/persistentvolume/storage/BUILD index 935a40582ff..ea07690b0b8 100644 --- a/pkg/registry/core/persistentvolume/storage/BUILD +++ b/pkg/registry/core/persistentvolume/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -33,7 +32,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/persistentvolumeclaim/BUILD b/pkg/registry/core/persistentvolumeclaim/BUILD index c9e86230ac4..8645f2e8aa7 100644 --- a/pkg/registry/core/persistentvolumeclaim/BUILD +++ b/pkg/registry/core/persistentvolumeclaim/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/persistentvolumeclaim/storage/BUILD b/pkg/registry/core/persistentvolumeclaim/storage/BUILD index eb1980fbeff..f831f72ca7d 100644 --- a/pkg/registry/core/persistentvolumeclaim/storage/BUILD +++ b/pkg/registry/core/persistentvolumeclaim/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -33,7 +32,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/pod/BUILD b/pkg/registry/core/pod/BUILD index 08a1793d439..3d417daf600 100644 --- a/pkg/registry/core/pod/BUILD +++ b/pkg/registry/core/pod/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper/qos:go_default_library", @@ -39,7 +38,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/pod/rest/BUILD b/pkg/registry/core/pod/rest/BUILD index ffce1b67636..71fed809213 100644 --- a/pkg/registry/core/pod/rest/BUILD +++ b/pkg/registry/core/pod/rest/BUILD @@ -14,7 +14,6 @@ go_library( "log.go", "subresources.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -37,7 +36,6 @@ go_test( name = "go_default_test", srcs = ["log_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", diff --git a/pkg/registry/core/pod/storage/BUILD b/pkg/registry/core/pod/storage/BUILD index 893af871a47..63ce729e5eb 100644 --- a/pkg/registry/core/pod/storage/BUILD +++ b/pkg/registry/core/pod/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -42,7 +41,6 @@ go_library( "eviction.go", "storage.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/pod:go_default_library", diff --git a/pkg/registry/core/podtemplate/BUILD b/pkg/registry/core/podtemplate/BUILD index 24f51cc7e29..64efa24a062 100644 --- a/pkg/registry/core/podtemplate/BUILD +++ b/pkg/registry/core/podtemplate/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", diff --git a/pkg/registry/core/podtemplate/storage/BUILD b/pkg/registry/core/podtemplate/storage/BUILD index b7ad3e74633..0af1cc840e5 100644 --- a/pkg/registry/core/podtemplate/storage/BUILD +++ b/pkg/registry/core/podtemplate/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/rangeallocation/BUILD b/pkg/registry/core/rangeallocation/BUILD index 2cde70f40aa..497f47bf504 100644 --- a/pkg/registry/core/rangeallocation/BUILD +++ b/pkg/registry/core/rangeallocation/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "registry.go", ], - tags = ["automanaged"], deps = ["//pkg/api:go_default_library"], ) diff --git a/pkg/registry/core/replicationcontroller/BUILD b/pkg/registry/core/replicationcontroller/BUILD index 6f6465d0ec9..1c4cca0152a 100644 --- a/pkg/registry/core/replicationcontroller/BUILD +++ b/pkg/registry/core/replicationcontroller/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -40,7 +39,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/replicationcontroller/storage/BUILD b/pkg/registry/core/replicationcontroller/storage/BUILD index e80c94b6dba..daa18ae103a 100644 --- a/pkg/registry/core/replicationcontroller/storage/BUILD +++ b/pkg/registry/core/replicationcontroller/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", @@ -34,7 +33,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/autoscaling:go_default_library", diff --git a/pkg/registry/core/resourcequota/BUILD b/pkg/registry/core/resourcequota/BUILD index dd19588a71d..8539638a6cc 100644 --- a/pkg/registry/core/resourcequota/BUILD +++ b/pkg/registry/core/resourcequota/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -29,7 +28,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/registry/core/resourcequota/storage/BUILD b/pkg/registry/core/resourcequota/storage/BUILD index b689bd9d42b..6fabb23fa4d 100644 --- a/pkg/registry/core/resourcequota/storage/BUILD +++ b/pkg/registry/core/resourcequota/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -32,7 +31,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/rest/BUILD b/pkg/registry/core/rest/BUILD index 5c12c71800d..4eec208df1d 100644 --- a/pkg/registry/core/rest/BUILD +++ b/pkg/registry/core/rest/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_core_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/storage:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage_core.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/policy/internalversion:go_default_library", diff --git a/pkg/registry/core/secret/BUILD b/pkg/registry/core/secret/BUILD index 6f7d517cb6b..ffa95a22990 100644 --- a/pkg/registry/core/secret/BUILD +++ b/pkg/registry/core/secret/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", @@ -39,7 +38,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/core/secret/storage/BUILD b/pkg/registry/core/secret/storage/BUILD index d62212924bf..504f1f4325e 100644 --- a/pkg/registry/core/secret/storage/BUILD +++ b/pkg/registry/core/secret/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/service/BUILD b/pkg/registry/core/service/BUILD index cc97dfc4545..13d94f0a382 100644 --- a/pkg/registry/core/service/BUILD +++ b/pkg/registry/core/service/BUILD @@ -17,7 +17,6 @@ go_library( "rest.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -52,7 +51,6 @@ go_test( "strategy_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", diff --git a/pkg/registry/core/service/allocator/BUILD b/pkg/registry/core/service/allocator/BUILD index 9b148e93a84..e126a007dff 100644 --- a/pkg/registry/core/service/allocator/BUILD +++ b/pkg/registry/core/service/allocator/BUILD @@ -15,7 +15,6 @@ go_library( "interfaces.go", "utils.go", ], - tags = ["automanaged"], ) go_test( @@ -25,7 +24,6 @@ go_test( "utils_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library"], ) diff --git a/pkg/registry/core/service/allocator/storage/BUILD b/pkg/registry/core/service/allocator/storage/BUILD index a6d734cfbb5..2bfd1d27226 100644 --- a/pkg/registry/core/service/allocator/storage/BUILD +++ b/pkg/registry/core/service/allocator/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", @@ -26,7 +25,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/core/rangeallocation:go_default_library", diff --git a/pkg/registry/core/service/ipallocator/BUILD b/pkg/registry/core/service/ipallocator/BUILD index dcfc3899289..851b6ad8d99 100644 --- a/pkg/registry/core/service/ipallocator/BUILD +++ b/pkg/registry/core/service/ipallocator/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["allocator.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["allocator_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/pkg/registry/core/service/ipallocator/controller/BUILD b/pkg/registry/core/service/ipallocator/controller/BUILD index d244b787525..97896496dc4 100644 --- a/pkg/registry/core/service/ipallocator/controller/BUILD +++ b/pkg/registry/core/service/ipallocator/controller/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["repair.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -30,7 +29,6 @@ go_test( name = "go_default_test", srcs = ["repair_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/pkg/registry/core/service/ipallocator/storage/BUILD b/pkg/registry/core/service/ipallocator/storage/BUILD index b1f77a08ec6..6ff71d225d3 100644 --- a/pkg/registry/core/service/ipallocator/storage/BUILD +++ b/pkg/registry/core/service/ipallocator/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", @@ -30,7 +29,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/registry/core/service/portallocator/BUILD b/pkg/registry/core/service/portallocator/BUILD index cc7cab369b0..544b6e1fe71 100644 --- a/pkg/registry/core/service/portallocator/BUILD +++ b/pkg/registry/core/service/portallocator/BUILD @@ -14,7 +14,6 @@ go_library( "allocator.go", "operation.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/core/service/allocator:go_default_library", @@ -27,7 +26,6 @@ go_test( name = "go_default_test", srcs = ["allocator_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", diff --git a/pkg/registry/core/service/portallocator/controller/BUILD b/pkg/registry/core/service/portallocator/controller/BUILD index 6f54e2f35c8..cf84b3883f9 100644 --- a/pkg/registry/core/service/portallocator/controller/BUILD +++ b/pkg/registry/core/service/portallocator/controller/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["repair.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["repair_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/pkg/registry/core/service/storage/BUILD b/pkg/registry/core/service/storage/BUILD index 6a653a7706c..be4fa24a201 100644 --- a/pkg/registry/core/service/storage/BUILD +++ b/pkg/registry/core/service/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/core/serviceaccount/BUILD b/pkg/registry/core/serviceaccount/BUILD index 6e460eda990..0f97de39b42 100644 --- a/pkg/registry/core/serviceaccount/BUILD +++ b/pkg/registry/core/serviceaccount/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/validation:go_default_library", diff --git a/pkg/registry/core/serviceaccount/storage/BUILD b/pkg/registry/core/serviceaccount/storage/BUILD index bf2d7f084af..6befa72ba86 100644 --- a/pkg/registry/core/serviceaccount/storage/BUILD +++ b/pkg/registry/core/serviceaccount/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/registry/cachesize:go_default_library", diff --git a/pkg/registry/extensions/controller/storage/BUILD b/pkg/registry/extensions/controller/storage/BUILD index 13bd87d5db0..0498b99023c 100644 --- a/pkg/registry/extensions/controller/storage/BUILD +++ b/pkg/registry/extensions/controller/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -30,7 +29,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/daemonset/BUILD b/pkg/registry/extensions/daemonset/BUILD index eb6a4a423fc..989cad3d97a 100644 --- a/pkg/registry/extensions/daemonset/BUILD +++ b/pkg/registry/extensions/daemonset/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", diff --git a/pkg/registry/extensions/daemonset/storage/BUILD b/pkg/registry/extensions/daemonset/storage/BUILD index 7a91565cb3a..6dcca9ba7fa 100644 --- a/pkg/registry/extensions/daemonset/storage/BUILD +++ b/pkg/registry/extensions/daemonset/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/deployment/BUILD b/pkg/registry/extensions/deployment/BUILD index ff1210ed68b..f3563309d79 100644 --- a/pkg/registry/extensions/deployment/BUILD +++ b/pkg/registry/extensions/deployment/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -35,7 +34,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/deployment/storage/BUILD b/pkg/registry/extensions/deployment/storage/BUILD index 47f6fbbc0a2..a057ff62cda 100644 --- a/pkg/registry/extensions/deployment/storage/BUILD +++ b/pkg/registry/extensions/deployment/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -36,7 +35,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/ingress/BUILD b/pkg/registry/extensions/ingress/BUILD index bdd561af8e5..16cb2d5df2a 100644 --- a/pkg/registry/extensions/ingress/BUILD +++ b/pkg/registry/extensions/ingress/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/ingress/storage/BUILD b/pkg/registry/extensions/ingress/storage/BUILD index 5cc7ac193b0..e35007ae303 100644 --- a/pkg/registry/extensions/ingress/storage/BUILD +++ b/pkg/registry/extensions/ingress/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -30,7 +29,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/networkpolicy/BUILD b/pkg/registry/extensions/networkpolicy/BUILD index 8d1bedf5269..5a351ee111f 100644 --- a/pkg/registry/extensions/networkpolicy/BUILD +++ b/pkg/registry/extensions/networkpolicy/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/registry/extensions/networkpolicy/storage/BUILD b/pkg/registry/extensions/networkpolicy/storage/BUILD index 53d378aa7e6..d2f911b248a 100644 --- a/pkg/registry/extensions/networkpolicy/storage/BUILD +++ b/pkg/registry/extensions/networkpolicy/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -30,7 +29,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/podsecuritypolicy/BUILD b/pkg/registry/extensions/podsecuritypolicy/BUILD index fe59a04ecb0..cfea2691bae 100644 --- a/pkg/registry/extensions/podsecuritypolicy/BUILD +++ b/pkg/registry/extensions/podsecuritypolicy/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/podsecuritypolicy/storage/BUILD b/pkg/registry/extensions/podsecuritypolicy/storage/BUILD index 4bde3924750..6df27ac8155 100644 --- a/pkg/registry/extensions/podsecuritypolicy/storage/BUILD +++ b/pkg/registry/extensions/podsecuritypolicy/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/extensions:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/replicaset/BUILD b/pkg/registry/extensions/replicaset/BUILD index e798f6e15a9..c45c55f9434 100644 --- a/pkg/registry/extensions/replicaset/BUILD +++ b/pkg/registry/extensions/replicaset/BUILD @@ -15,7 +15,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -40,7 +39,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/replicaset/storage/BUILD b/pkg/registry/extensions/replicaset/storage/BUILD index f0b04812469..864bb5e3aec 100644 --- a/pkg/registry/extensions/replicaset/storage/BUILD +++ b/pkg/registry/extensions/replicaset/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -34,7 +33,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/extensions/rest/BUILD b/pkg/registry/extensions/rest/BUILD index c88831d6bb5..6778f73f46a 100644 --- a/pkg/registry/extensions/rest/BUILD +++ b/pkg/registry/extensions/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_extensions.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/registry/networking/networkpolicy/BUILD b/pkg/registry/networking/networkpolicy/BUILD index a3f9aea9321..87637fea7d8 100644 --- a/pkg/registry/networking/networkpolicy/BUILD +++ b/pkg/registry/networking/networkpolicy/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/networking:go_default_library", diff --git a/pkg/registry/networking/networkpolicy/storage/BUILD b/pkg/registry/networking/networkpolicy/storage/BUILD index 616452a56cb..8e04d0dc606 100644 --- a/pkg/registry/networking/networkpolicy/storage/BUILD +++ b/pkg/registry/networking/networkpolicy/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/networking:go_default_library", diff --git a/pkg/registry/networking/rest/BUILD b/pkg/registry/networking/rest/BUILD index a075de515c7..836abdeb957 100644 --- a/pkg/registry/networking/rest/BUILD +++ b/pkg/registry/networking/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_settings.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/networking:go_default_library", diff --git a/pkg/registry/policy/poddisruptionbudget/BUILD b/pkg/registry/policy/poddisruptionbudget/BUILD index 0f918b931b0..1fdef2600cf 100644 --- a/pkg/registry/policy/poddisruptionbudget/BUILD +++ b/pkg/registry/policy/poddisruptionbudget/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/policy:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/policy:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/registry/policy/poddisruptionbudget/storage/BUILD b/pkg/registry/policy/poddisruptionbudget/storage/BUILD index 5a1790e64bb..ab1f164286b 100644 --- a/pkg/registry/policy/poddisruptionbudget/storage/BUILD +++ b/pkg/registry/policy/poddisruptionbudget/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/policy:go_default_library", @@ -31,7 +30,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/policy:go_default_library", diff --git a/pkg/registry/policy/rest/BUILD b/pkg/registry/policy/rest/BUILD index e663dd5390b..1e733e78b17 100644 --- a/pkg/registry/policy/rest/BUILD +++ b/pkg/registry/policy/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_policy.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/policy:go_default_library", diff --git a/pkg/registry/rbac/BUILD b/pkg/registry/rbac/BUILD index 48ae4f78f87..9f0d14f24a9 100644 --- a/pkg/registry/rbac/BUILD +++ b/pkg/registry/rbac/BUILD @@ -14,7 +14,6 @@ go_library( "escalation_check.go", "helpers.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", @@ -54,7 +53,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", diff --git a/pkg/registry/rbac/clusterrole/BUILD b/pkg/registry/rbac/clusterrole/BUILD index 36124e2898d..b6bd484c214 100644 --- a/pkg/registry/rbac/clusterrole/BUILD +++ b/pkg/registry/rbac/clusterrole/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/clusterrole/policybased/BUILD b/pkg/registry/rbac/clusterrole/policybased/BUILD index be6e7944441..c10711d9351 100644 --- a/pkg/registry/rbac/clusterrole/policybased/BUILD +++ b/pkg/registry/rbac/clusterrole/policybased/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/clusterrole/storage/BUILD b/pkg/registry/rbac/clusterrole/storage/BUILD index a703513d66d..1f11f64a7cd 100644 --- a/pkg/registry/rbac/clusterrole/storage/BUILD +++ b/pkg/registry/rbac/clusterrole/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/clusterrolebinding/BUILD b/pkg/registry/rbac/clusterrolebinding/BUILD index 8de2b3d2f1b..1ebde6c6ea4 100644 --- a/pkg/registry/rbac/clusterrolebinding/BUILD +++ b/pkg/registry/rbac/clusterrolebinding/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/clusterrolebinding/policybased/BUILD b/pkg/registry/rbac/clusterrolebinding/policybased/BUILD index 8d8ebefd171..9552a0a7662 100644 --- a/pkg/registry/rbac/clusterrolebinding/policybased/BUILD +++ b/pkg/registry/rbac/clusterrolebinding/policybased/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/clusterrolebinding/storage/BUILD b/pkg/registry/rbac/clusterrolebinding/storage/BUILD index ab61c95f37b..bff12004a03 100644 --- a/pkg/registry/rbac/clusterrolebinding/storage/BUILD +++ b/pkg/registry/rbac/clusterrolebinding/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/reconciliation/BUILD b/pkg/registry/rbac/reconciliation/BUILD index 7ffc2828e0c..2629dee8c7e 100644 --- a/pkg/registry/rbac/reconciliation/BUILD +++ b/pkg/registry/rbac/reconciliation/BUILD @@ -15,7 +15,6 @@ go_test( "reconcile_rolebindings_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//pkg/apis/rbac:go_default_library", @@ -33,7 +32,6 @@ go_library( "role_interfaces.go", "rolebinding_interfaces.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/rest/BUILD b/pkg/registry/rbac/rest/BUILD index 4bb65571784..f19f764490c 100644 --- a/pkg/registry/rbac/rest/BUILD +++ b/pkg/registry/rbac/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_rbac.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/role/BUILD b/pkg/registry/rbac/role/BUILD index a42f6c9182f..13a0f65148a 100644 --- a/pkg/registry/rbac/role/BUILD +++ b/pkg/registry/rbac/role/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/role/policybased/BUILD b/pkg/registry/rbac/role/policybased/BUILD index be6e7944441..c10711d9351 100644 --- a/pkg/registry/rbac/role/policybased/BUILD +++ b/pkg/registry/rbac/role/policybased/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/role/storage/BUILD b/pkg/registry/rbac/role/storage/BUILD index f6f93724e3f..802b97299c8 100644 --- a/pkg/registry/rbac/role/storage/BUILD +++ b/pkg/registry/rbac/role/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/rolebinding/BUILD b/pkg/registry/rbac/rolebinding/BUILD index fde3b7a5d95..f869ed42a5d 100644 --- a/pkg/registry/rbac/rolebinding/BUILD +++ b/pkg/registry/rbac/rolebinding/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/rolebinding/policybased/BUILD b/pkg/registry/rbac/rolebinding/policybased/BUILD index 2e940d1e774..b38de1a7a04 100644 --- a/pkg/registry/rbac/rolebinding/policybased/BUILD +++ b/pkg/registry/rbac/rolebinding/policybased/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/rolebinding/storage/BUILD b/pkg/registry/rbac/rolebinding/storage/BUILD index bc9317bc873..5609995bf53 100644 --- a/pkg/registry/rbac/rolebinding/storage/BUILD +++ b/pkg/registry/rbac/rolebinding/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/rbac/validation/BUILD b/pkg/registry/rbac/validation/BUILD index dac4ac52465..75df5c119e1 100644 --- a/pkg/registry/rbac/validation/BUILD +++ b/pkg/registry/rbac/validation/BUILD @@ -16,7 +16,6 @@ go_test( "rule_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", @@ -33,7 +32,6 @@ go_library( "policy_comparator.go", "rule.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/rbac:go_default_library", diff --git a/pkg/registry/registrytest/BUILD b/pkg/registry/registrytest/BUILD index d6a0239b1cf..7aba0a6b70f 100644 --- a/pkg/registry/registrytest/BUILD +++ b/pkg/registry/registrytest/BUILD @@ -19,7 +19,6 @@ go_library( "shortNamesProvider.go", "validate.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/pkg/registry/scheduling/priorityclass/BUILD b/pkg/registry/scheduling/priorityclass/BUILD index b92c2898890..a27516a92f4 100644 --- a/pkg/registry/scheduling/priorityclass/BUILD +++ b/pkg/registry/scheduling/priorityclass/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -27,7 +26,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/scheduling:go_default_library", diff --git a/pkg/registry/scheduling/priorityclass/storage/BUILD b/pkg/registry/scheduling/priorityclass/storage/BUILD index 15fb367e7ea..019a6f06fcd 100644 --- a/pkg/registry/scheduling/priorityclass/storage/BUILD +++ b/pkg/registry/scheduling/priorityclass/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/scheduling:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/scheduling:go_default_library", diff --git a/pkg/registry/scheduling/rest/BUILD b/pkg/registry/scheduling/rest/BUILD index 8eb45833ad2..824467ebfd1 100644 --- a/pkg/registry/scheduling/rest/BUILD +++ b/pkg/registry/scheduling/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_scheduling.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/scheduling:go_default_library", diff --git a/pkg/registry/settings/podpreset/BUILD b/pkg/registry/settings/podpreset/BUILD index 010ecd82f3e..f9e51377ed7 100644 --- a/pkg/registry/settings/podpreset/BUILD +++ b/pkg/registry/settings/podpreset/BUILD @@ -14,7 +14,6 @@ go_library( "registry.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/settings:go_default_library", diff --git a/pkg/registry/settings/podpreset/storage/BUILD b/pkg/registry/settings/podpreset/storage/BUILD index 57123658e11..a1edf2f1abb 100644 --- a/pkg/registry/settings/podpreset/storage/BUILD +++ b/pkg/registry/settings/podpreset/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/settings:go_default_library", diff --git a/pkg/registry/settings/rest/BUILD b/pkg/registry/settings/rest/BUILD index 5eb729343c8..44c2257150a 100644 --- a/pkg/registry/settings/rest/BUILD +++ b/pkg/registry/settings/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_settings.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/settings:go_default_library", diff --git a/pkg/registry/storage/rest/BUILD b/pkg/registry/storage/rest/BUILD index fb0b35de2c2..005f08e99c2 100644 --- a/pkg/registry/storage/rest/BUILD +++ b/pkg/registry/storage/rest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["storage_storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/storage:go_default_library", diff --git a/pkg/registry/storage/storageclass/BUILD b/pkg/registry/storage/storageclass/BUILD index 5bf50fad01f..ccaff1e7940 100644 --- a/pkg/registry/storage/storageclass/BUILD +++ b/pkg/registry/storage/storageclass/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/storage:go_default_library", @@ -30,7 +29,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/registry/storage/storageclass/storage/BUILD b/pkg/registry/storage/storageclass/storage/BUILD index 6b411cdcadc..0322f9bb643 100644 --- a/pkg/registry/storage/storageclass/storage/BUILD +++ b/pkg/registry/storage/storageclass/storage/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["storage_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/storage:go_default_library", "//pkg/registry/registrytest:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["storage.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/storage:go_default_library", diff --git a/pkg/routes/BUILD b/pkg/routes/BUILD index e0fbe065637..78db90b9416 100644 --- a/pkg/routes/BUILD +++ b/pkg/routes/BUILD @@ -14,7 +14,6 @@ go_library( "logs.go", "ui.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/k8s.io/apiserver/pkg/server/mux:go_default_library", diff --git a/pkg/runtime/BUILD b/pkg/runtime/BUILD index 7a99431d6e9..6ef677c76ae 100644 --- a/pkg/runtime/BUILD +++ b/pkg/runtime/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/runtime/serializer/BUILD b/pkg/runtime/serializer/BUILD index aebc6ca6454..de96fc2f7d3 100644 --- a/pkg/runtime/serializer/BUILD +++ b/pkg/runtime/serializer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/runtime/serializer/json/BUILD b/pkg/runtime/serializer/json/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/runtime/serializer/json/BUILD +++ b/pkg/runtime/serializer/json/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/runtime/serializer/protobuf/BUILD b/pkg/runtime/serializer/protobuf/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/runtime/serializer/protobuf/BUILD +++ b/pkg/runtime/serializer/protobuf/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/runtime/serializer/recognizer/BUILD b/pkg/runtime/serializer/recognizer/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/runtime/serializer/recognizer/BUILD +++ b/pkg/runtime/serializer/recognizer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/runtime/serializer/streaming/BUILD b/pkg/runtime/serializer/streaming/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/runtime/serializer/streaming/BUILD +++ b/pkg/runtime/serializer/streaming/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/runtime/serializer/versioning/BUILD b/pkg/runtime/serializer/versioning/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/runtime/serializer/versioning/BUILD +++ b/pkg/runtime/serializer/versioning/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/security/BUILD b/pkg/security/BUILD index af17441b3ab..9a1154ed5b7 100644 --- a/pkg/security/BUILD +++ b/pkg/security/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/security/apparmor/BUILD b/pkg/security/apparmor/BUILD index 0326884e47b..d939a0718bb 100644 --- a/pkg/security/apparmor/BUILD +++ b/pkg/security/apparmor/BUILD @@ -15,7 +15,6 @@ go_library( "validate.go", "validate_disabled.go", ], - tags = ["automanaged"], deps = [ "//pkg/features:go_default_library", "//pkg/util/file:go_default_library", @@ -31,7 +30,6 @@ go_test( "testdata/profiles", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/security/podsecuritypolicy/BUILD b/pkg/security/podsecuritypolicy/BUILD index a3abb744acc..45b3d8c8369 100644 --- a/pkg/security/podsecuritypolicy/BUILD +++ b/pkg/security/podsecuritypolicy/BUILD @@ -16,7 +16,6 @@ go_library( "provider.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -38,7 +37,6 @@ go_test( name = "go_default_test", srcs = ["provider_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", diff --git a/pkg/security/podsecuritypolicy/apparmor/BUILD b/pkg/security/podsecuritypolicy/apparmor/BUILD index 7a746a4743b..b293cfddeef 100644 --- a/pkg/security/podsecuritypolicy/apparmor/BUILD +++ b/pkg/security/podsecuritypolicy/apparmor/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["strategy.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/security/apparmor:go_default_library", @@ -24,7 +23,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/security/apparmor:go_default_library", diff --git a/pkg/security/podsecuritypolicy/capabilities/BUILD b/pkg/security/podsecuritypolicy/capabilities/BUILD index 809e34d2651..f9d2571f830 100644 --- a/pkg/security/podsecuritypolicy/capabilities/BUILD +++ b/pkg/security/podsecuritypolicy/capabilities/BUILD @@ -15,7 +15,6 @@ go_library( "mustrunas.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", @@ -27,7 +26,6 @@ go_test( name = "go_default_test", srcs = ["mustrunas_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/api:go_default_library"], ) diff --git a/pkg/security/podsecuritypolicy/group/BUILD b/pkg/security/podsecuritypolicy/group/BUILD index d5992815002..e087d9fafc9 100644 --- a/pkg/security/podsecuritypolicy/group/BUILD +++ b/pkg/security/podsecuritypolicy/group/BUILD @@ -16,7 +16,6 @@ go_library( "runasany.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -32,7 +31,6 @@ go_test( "runasany_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/security/podsecuritypolicy/seccomp/BUILD b/pkg/security/podsecuritypolicy/seccomp/BUILD index fad7e2e9731..e0bffa2465b 100644 --- a/pkg/security/podsecuritypolicy/seccomp/BUILD +++ b/pkg/security/podsecuritypolicy/seccomp/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["strategy.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["strategy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/security/podsecuritypolicy/selinux/BUILD b/pkg/security/podsecuritypolicy/selinux/BUILD index 587074816cc..d2f2e8b6423 100644 --- a/pkg/security/podsecuritypolicy/selinux/BUILD +++ b/pkg/security/podsecuritypolicy/selinux/BUILD @@ -16,7 +16,6 @@ go_library( "runasany.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -31,7 +30,6 @@ go_test( "runasany_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/security/podsecuritypolicy/sysctl/BUILD b/pkg/security/podsecuritypolicy/sysctl/BUILD index 74ddce70481..2c5cfb9c797 100644 --- a/pkg/security/podsecuritypolicy/sysctl/BUILD +++ b/pkg/security/podsecuritypolicy/sysctl/BUILD @@ -14,7 +14,6 @@ go_library( "mustmatchpatterns.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["mustmatchpatterns_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", diff --git a/pkg/security/podsecuritypolicy/user/BUILD b/pkg/security/podsecuritypolicy/user/BUILD index e7bed5b3ef6..30858c17081 100644 --- a/pkg/security/podsecuritypolicy/user/BUILD +++ b/pkg/security/podsecuritypolicy/user/BUILD @@ -17,7 +17,6 @@ go_library( "runasany.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -34,7 +33,6 @@ go_test( "runasany_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/security/podsecuritypolicy/util/BUILD b/pkg/security/podsecuritypolicy/util/BUILD index 2343551c4dc..e0092cfbd5c 100644 --- a/pkg/security/podsecuritypolicy/util/BUILD +++ b/pkg/security/podsecuritypolicy/util/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", diff --git a/pkg/securitycontext/BUILD b/pkg/securitycontext/BUILD index f7b0ed567c3..efbceded66c 100644 --- a/pkg/securitycontext/BUILD +++ b/pkg/securitycontext/BUILD @@ -15,7 +15,6 @@ go_library( "fake.go", "util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/api/core/v1:go_default_library"], ) diff --git a/pkg/serviceaccount/BUILD b/pkg/serviceaccount/BUILD index cf112fb6395..447ae796ee8 100644 --- a/pkg/serviceaccount/BUILD +++ b/pkg/serviceaccount/BUILD @@ -14,7 +14,6 @@ go_library( "jwt.go", "util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/dgrijalva/jwt-go:go_default_library", @@ -29,7 +28,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["jwt_test.go"], - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/controller/serviceaccount:go_default_library", diff --git a/pkg/ssh/BUILD b/pkg/ssh/BUILD index 742cbc3304c..2e838ce6a4b 100644 --- a/pkg/ssh/BUILD +++ b/pkg/ssh/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["ssh_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/crypto/ssh:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["ssh.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/pkg/types/BUILD b/pkg/types/BUILD index deefdcef3c1..4e5c52fd563 100644 --- a/pkg/types/BUILD +++ b/pkg/types/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/async/BUILD b/pkg/util/async/BUILD index 67ba72fe84b..7096c27c0fc 100644 --- a/pkg/util/async/BUILD +++ b/pkg/util/async/BUILD @@ -14,7 +14,6 @@ go_library( "bounded_frequency_runner.go", "runner.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/util/flowcontrol:go_default_library", @@ -28,7 +27,6 @@ go_test( "runner_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/bandwidth/BUILD b/pkg/util/bandwidth/BUILD index 3454c7e1303..fb0dbcc767e 100644 --- a/pkg/util/bandwidth/BUILD +++ b/pkg/util/bandwidth/BUILD @@ -22,7 +22,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", ] + select({ @@ -46,7 +45,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/pkg/util/config/BUILD b/pkg/util/config/BUILD index 6d28d4754d9..e78575b51c7 100644 --- a/pkg/util/config/BUILD +++ b/pkg/util/config/BUILD @@ -14,7 +14,6 @@ go_library( "config.go", "doc.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library"], ) @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["config_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/configz/BUILD b/pkg/util/configz/BUILD index 821b4cd711b..47439e0466e 100644 --- a/pkg/util/configz/BUILD +++ b/pkg/util/configz/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["configz.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["configz_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/dbus/BUILD b/pkg/util/dbus/BUILD index 6a58b535007..27a511c2ca0 100644 --- a/pkg/util/dbus/BUILD +++ b/pkg/util/dbus/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "fake_dbus.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/godbus/dbus:go_default_library"], ) @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["dbus_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/godbus/dbus:go_default_library"], ) diff --git a/pkg/util/ebtables/BUILD b/pkg/util/ebtables/BUILD index cb8e66850bd..6d727937431 100644 --- a/pkg/util/ebtables/BUILD +++ b/pkg/util/ebtables/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["ebtables.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/utils/exec:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["ebtables_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec/testing:go_default_library", diff --git a/pkg/util/env/BUILD b/pkg/util/env/BUILD index 17d09ff2651..0a12bd7439f 100644 --- a/pkg/util/env/BUILD +++ b/pkg/util/env/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["env.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["env_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], ) diff --git a/pkg/util/file/BUILD b/pkg/util/file/BUILD index 1e8e96cee50..62633353603 100644 --- a/pkg/util/file/BUILD +++ b/pkg/util/file/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["file.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/flock/BUILD b/pkg/util/flock/BUILD index 7c8093e5703..952628c8c53 100644 --- a/pkg/util/flock/BUILD +++ b/pkg/util/flock/BUILD @@ -20,7 +20,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:darwin_amd64": [ "//vendor/golang.org/x/sys/unix:go_default_library", diff --git a/pkg/util/goroutinemap/BUILD b/pkg/util/goroutinemap/BUILD index aa0a59ce0ed..ce9663a82e1 100644 --- a/pkg/util/goroutinemap/BUILD +++ b/pkg/util/goroutinemap/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["goroutinemap.go"], - tags = ["automanaged"], deps = [ "//pkg/util/goroutinemap/exponentialbackoff:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["goroutinemap_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library"], ) diff --git a/pkg/util/goroutinemap/exponentialbackoff/BUILD b/pkg/util/goroutinemap/exponentialbackoff/BUILD index 24f609447e4..04f3a18b3d8 100644 --- a/pkg/util/goroutinemap/exponentialbackoff/BUILD +++ b/pkg/util/goroutinemap/exponentialbackoff/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["exponential_backoff.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/hash/BUILD b/pkg/util/hash/BUILD index f4d50e5d23e..c370c237dea 100644 --- a/pkg/util/hash/BUILD +++ b/pkg/util/hash/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["hash.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/davecgh/go-spew/spew:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["hash_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/davecgh/go-spew/spew:go_default_library"], ) diff --git a/pkg/util/i18n/BUILD b/pkg/util/i18n/BUILD index b58e9d58a26..4ad85fc769c 100644 --- a/pkg/util/i18n/BUILD +++ b/pkg/util/i18n/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["i18n.go"], - tags = ["automanaged"], deps = [ "//pkg/generated:go_default_library", "//vendor/github.com/chai2010/gettext-go/gettext:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["i18n_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/initsystem/BUILD b/pkg/util/initsystem/BUILD index b16f14e1894..151449b9148 100644 --- a/pkg/util/initsystem/BUILD +++ b/pkg/util/initsystem/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["initsystem.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/interrupt/BUILD b/pkg/util/interrupt/BUILD index 81df599e7c9..1ca91efd219 100644 --- a/pkg/util/interrupt/BUILD +++ b/pkg/util/interrupt/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interrupt.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/io/BUILD b/pkg/util/io/BUILD index 7c9d0733ec3..94dce2ab902 100644 --- a/pkg/util/io/BUILD +++ b/pkg/util/io/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["writer.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/pkg/util/ipconfig/BUILD b/pkg/util/ipconfig/BUILD index f9c248951c2..026fb7ab556 100644 --- a/pkg/util/ipconfig/BUILD +++ b/pkg/util/ipconfig/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "ipconfig.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["ipconfig_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/utils/exec:go_default_library"], ) diff --git a/pkg/util/iptables/BUILD b/pkg/util/iptables/BUILD index c2fd47fdf37..94466ecf9d9 100644 --- a/pkg/util/iptables/BUILD +++ b/pkg/util/iptables/BUILD @@ -21,7 +21,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/util/dbus:go_default_library", "//pkg/util/version:go_default_library", @@ -48,7 +47,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/util/dbus:go_default_library", diff --git a/pkg/util/iptables/testing/BUILD b/pkg/util/iptables/testing/BUILD index 39de98464bc..dc273cb7779 100644 --- a/pkg/util/iptables/testing/BUILD +++ b/pkg/util/iptables/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake.go"], - tags = ["automanaged"], deps = ["//pkg/util/iptables:go_default_library"], ) diff --git a/pkg/util/keymutex/BUILD b/pkg/util/keymutex/BUILD index af5bcdf095d..4521b3e0813 100644 --- a/pkg/util/keymutex/BUILD +++ b/pkg/util/keymutex/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["keymutex.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["keymutex_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/labels/BUILD b/pkg/util/labels/BUILD index afa148c33e4..da2e4ac46cd 100644 --- a/pkg/util/labels/BUILD +++ b/pkg/util/labels/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "labels.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["labels_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) diff --git a/pkg/util/limitwriter/BUILD b/pkg/util/limitwriter/BUILD index b2d81cffe34..3cb155b1b4c 100644 --- a/pkg/util/limitwriter/BUILD +++ b/pkg/util/limitwriter/BUILD @@ -14,14 +14,12 @@ go_library( "doc.go", "limitwriter.go", ], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["limitwriter_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/maps/BUILD b/pkg/util/maps/BUILD index a7a44fbd17e..fc3b05b7db1 100644 --- a/pkg/util/maps/BUILD +++ b/pkg/util/maps/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "string.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/metrics/BUILD b/pkg/util/metrics/BUILD index c040e00eb4e..d64bf64b624 100644 --- a/pkg/util/metrics/BUILD +++ b/pkg/util/metrics/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/pkg/util/mount/BUILD b/pkg/util/mount/BUILD index ba1fd9fbc9a..3bb41006c6b 100644 --- a/pkg/util/mount/BUILD +++ b/pkg/util/mount/BUILD @@ -23,7 +23,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", @@ -48,7 +47,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/utils/exec:go_default_library", "//vendor/k8s.io/utils/exec/testing:go_default_library", diff --git a/pkg/util/net/sets/BUILD b/pkg/util/net/sets/BUILD index 6084ba4d634..077656a9be4 100644 --- a/pkg/util/net/sets/BUILD +++ b/pkg/util/net/sets/BUILD @@ -14,14 +14,12 @@ go_library( "doc.go", "ipnet.go", ], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["ipnet_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/netsh/BUILD b/pkg/util/netsh/BUILD index aad5d109a52..ee74757bd35 100644 --- a/pkg/util/netsh/BUILD +++ b/pkg/util/netsh/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "netsh.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/utils/exec:go_default_library", diff --git a/pkg/util/netsh/testing/BUILD b/pkg/util/netsh/testing/BUILD index 6ef79785b2f..79c58b3d2d2 100644 --- a/pkg/util/netsh/testing/BUILD +++ b/pkg/util/netsh/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake.go"], - tags = ["automanaged"], deps = ["//pkg/util/netsh:go_default_library"], ) diff --git a/pkg/util/node/BUILD b/pkg/util/node/BUILD index b9db2d0b6c1..f6324aa70e3 100644 --- a/pkg/util/node/BUILD +++ b/pkg/util/node/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["node.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/apis:go_default_library", @@ -28,7 +27,6 @@ go_test( name = "go_default_test", srcs = ["node_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/util/oom/BUILD b/pkg/util/oom/BUILD index a00dc62c5f7..b130b5d1407 100644 --- a/pkg/util/oom/BUILD +++ b/pkg/util/oom/BUILD @@ -21,7 +21,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/kubelet/cm/util:go_default_library", @@ -40,7 +39,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/pkg/util/parsers/BUILD b/pkg/util/parsers/BUILD index f55eef73d24..aa55a43974d 100644 --- a/pkg/util/parsers/BUILD +++ b/pkg/util/parsers/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["parsers.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/distribution/reference:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["parsers_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/pointer/BUILD b/pkg/util/pointer/BUILD index ae1e6f269a5..1ef17f5274e 100644 --- a/pkg/util/pointer/BUILD +++ b/pkg/util/pointer/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["pointer_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["pointer.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/procfs/BUILD b/pkg/util/procfs/BUILD index 9bbeba22a5b..c7a5978635d 100644 --- a/pkg/util/procfs/BUILD +++ b/pkg/util/procfs/BUILD @@ -21,7 +21,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/golang/glog:go_default_library", @@ -43,9 +42,6 @@ go_test( "example_proc_cgroup", ], library = ":go_default_library", - tags = [ - "automanaged", - ], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/pkg/util/reflector/prometheus/BUILD b/pkg/util/reflector/prometheus/BUILD index f3d62fa0875..bdc5d55528e 100644 --- a/pkg/util/reflector/prometheus/BUILD +++ b/pkg/util/reflector/prometheus/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["prometheus.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/pkg/util/removeall/BUILD b/pkg/util/removeall/BUILD index 139d2f32df0..d5631c85aa9 100644 --- a/pkg/util/removeall/BUILD +++ b/pkg/util/removeall/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["removeall_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//vendor/k8s.io/client-go/util/testing:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["removeall.go"], - tags = ["automanaged"], deps = ["//pkg/util/mount:go_default_library"], ) diff --git a/pkg/util/resourcecontainer/BUILD b/pkg/util/resourcecontainer/BUILD index f74cfda1170..8f8323a7059 100644 --- a/pkg/util/resourcecontainer/BUILD +++ b/pkg/util/resourcecontainer/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs:go_default_library", diff --git a/pkg/util/rlimit/BUILD b/pkg/util/rlimit/BUILD index 7f9a594818c..6edde123c6a 100644 --- a/pkg/util/rlimit/BUILD +++ b/pkg/util/rlimit/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/golang.org/x/sys/unix:go_default_library", diff --git a/pkg/util/selinux/BUILD b/pkg/util/selinux/BUILD index ad1a2876430..3cda3ea1712 100644 --- a/pkg/util/selinux/BUILD +++ b/pkg/util/selinux/BUILD @@ -19,7 +19,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/opencontainers/runc/libcontainer/selinux:go_default_library", diff --git a/pkg/util/slice/BUILD b/pkg/util/slice/BUILD index e7fe8c8adb9..c3fbf2a5f7a 100644 --- a/pkg/util/slice/BUILD +++ b/pkg/util/slice/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["slice.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["slice_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/strings/BUILD b/pkg/util/strings/BUILD index 3ef9877675c..e4b54ee3592 100644 --- a/pkg/util/strings/BUILD +++ b/pkg/util/strings/BUILD @@ -15,7 +15,6 @@ go_library( "line_delimiter.go", "strings.go", ], - tags = ["automanaged"], ) go_test( @@ -26,7 +25,6 @@ go_test( "strings_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/sysctl/BUILD b/pkg/util/sysctl/BUILD index 0819393af91..b60b0f3734a 100644 --- a/pkg/util/sysctl/BUILD +++ b/pkg/util/sysctl/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["sysctl.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/sysctl/testing/BUILD b/pkg/util/sysctl/testing/BUILD index 11db51c9d03..01b67a37683 100644 --- a/pkg/util/sysctl/testing/BUILD +++ b/pkg/util/sysctl/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake.go"], - tags = ["automanaged"], deps = ["//pkg/util/sysctl:go_default_library"], ) diff --git a/pkg/util/system/BUILD b/pkg/util/system/BUILD index 58ef995bdd3..10f4638013e 100644 --- a/pkg/util/system/BUILD +++ b/pkg/util/system/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["system_utils.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["system_utils_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/pkg/util/tail/BUILD b/pkg/util/tail/BUILD index 5d7a1b54c4f..1efe733d683 100644 --- a/pkg/util/tail/BUILD +++ b/pkg/util/tail/BUILD @@ -25,11 +25,9 @@ go_test( name = "go_default_test", srcs = ["tail_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["tail.go"], - tags = ["automanaged"], ) diff --git a/pkg/util/taints/BUILD b/pkg/util/taints/BUILD index 70b7d555a81..df5ce2f35b2 100644 --- a/pkg/util/taints/BUILD +++ b/pkg/util/taints/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["taints.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["taints_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/pkg/util/template/BUILD b/pkg/util/template/BUILD index 139097947d9..1fbcc8848b7 100644 --- a/pkg/util/template/BUILD +++ b/pkg/util/template/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["template_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], ) go_library( name = "go_default_library", srcs = ["template.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/term/BUILD b/pkg/util/term/BUILD index 89abf2e871a..143bdc4b999 100644 --- a/pkg/util/term/BUILD +++ b/pkg/util/term/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/pkg/term:go_default_library", "//vendor/k8s.io/client-go/tools/remotecommand:go_default_library", diff --git a/pkg/util/threading/BUILD b/pkg/util/threading/BUILD index 9dbcf74ee1f..0ff78e84845 100644 --- a/pkg/util/threading/BUILD +++ b/pkg/util/threading/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["deadlock-detector.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["deadlock-detector_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/tolerations/BUILD b/pkg/util/tolerations/BUILD index 95fa6fd3255..e798a9b18ec 100644 --- a/pkg/util/tolerations/BUILD +++ b/pkg/util/tolerations/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "tolerations.go", ], - tags = ["automanaged"], deps = ["//pkg/api:go_default_library"], ) @@ -35,6 +34,5 @@ go_test( name = "go_default_test", srcs = ["tolerations_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/api:go_default_library"], ) diff --git a/pkg/util/version/BUILD b/pkg/util/version/BUILD index dad16cf548a..0b6acbbaebc 100644 --- a/pkg/util/version/BUILD +++ b/pkg/util/version/BUILD @@ -14,14 +14,12 @@ go_library( "doc.go", "version.go", ], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["version_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/pkg/util/workqueue/prometheus/BUILD b/pkg/util/workqueue/prometheus/BUILD index 8953f349f8f..ddf48b3006b 100644 --- a/pkg/util/workqueue/prometheus/BUILD +++ b/pkg/util/workqueue/prometheus/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["prometheus.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/k8s.io/client-go/util/workqueue:go_default_library", diff --git a/pkg/version/BUILD b/pkg/version/BUILD index 8aae1e53544..c9d9a182797 100644 --- a/pkg/version/BUILD +++ b/pkg/version/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "version.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/version:go_default_library"], ) diff --git a/pkg/version/prometheus/BUILD b/pkg/version/prometheus/BUILD index 133e737c356..a380cbabfb6 100644 --- a/pkg/version/prometheus/BUILD +++ b/pkg/version/prometheus/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["prometheus.go"], - tags = ["automanaged"], deps = [ "//pkg/version:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/pkg/version/verflag/BUILD b/pkg/version/verflag/BUILD index 114c8c4da8b..b503384ab5d 100644 --- a/pkg/version/verflag/BUILD +++ b/pkg/version/verflag/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["verflag.go"], - tags = ["automanaged"], deps = [ "//pkg/version:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/pkg/volume/BUILD b/pkg/volume/BUILD index fcc4f08b3ae..75acb988c51 100644 --- a/pkg/volume/BUILD +++ b/pkg/volume/BUILD @@ -27,7 +27,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/util/io:go_default_library", @@ -56,7 +55,6 @@ go_test( "util_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/util/slice:go_default_library", @@ -80,7 +78,6 @@ go_test( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/volume/testing:go_default_library", diff --git a/pkg/volume/aws_ebs/BUILD b/pkg/volume/aws_ebs/BUILD index f5146d16c26..17f6afdf3de 100644 --- a/pkg/volume/aws_ebs/BUILD +++ b/pkg/volume/aws_ebs/BUILD @@ -16,7 +16,6 @@ go_library( "aws_util.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/aws:go_default_library", @@ -41,7 +40,6 @@ go_test( "aws_ebs_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/aws:go_default_library", "//pkg/util/mount:go_default_library", diff --git a/pkg/volume/azure_dd/BUILD b/pkg/volume/azure_dd/BUILD index 4a83820bba8..37af8798d58 100644 --- a/pkg/volume/azure_dd/BUILD +++ b/pkg/volume/azure_dd/BUILD @@ -17,7 +17,6 @@ go_library( "azure_mounter.go", "azure_provision.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -60,7 +59,6 @@ go_test( "azure_dd_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/testing:go_default_library", diff --git a/pkg/volume/azure_file/BUILD b/pkg/volume/azure_file/BUILD index cb14f5d3e78..778fa353c04 100644 --- a/pkg/volume/azure_file/BUILD +++ b/pkg/volume/azure_file/BUILD @@ -16,7 +16,6 @@ go_library( "azure_util.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/azure:go_default_library", @@ -38,7 +37,6 @@ go_test( name = "go_default_test", srcs = ["azure_file_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/azure:go_default_library", "//pkg/cloudprovider/providers/fake:go_default_library", diff --git a/pkg/volume/cephfs/BUILD b/pkg/volume/cephfs/BUILD index a1bd2227ae7..a5d3accd690 100644 --- a/pkg/volume/cephfs/BUILD +++ b/pkg/volume/cephfs/BUILD @@ -14,7 +14,6 @@ go_library( "cephfs.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["cephfs_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/cinder/BUILD b/pkg/volume/cinder/BUILD index 7171735ea1c..2955c541048 100644 --- a/pkg/volume/cinder/BUILD +++ b/pkg/volume/cinder/BUILD @@ -16,7 +16,6 @@ go_library( "cinder_util.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/openstack:go_default_library", @@ -47,7 +46,6 @@ go_test( "cinder_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/util/mount:go_default_library", diff --git a/pkg/volume/configmap/BUILD b/pkg/volume/configmap/BUILD index 8945e3005b0..2352344dd74 100644 --- a/pkg/volume/configmap/BUILD +++ b/pkg/volume/configmap/BUILD @@ -14,7 +14,6 @@ go_library( "configmap.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/io:go_default_library", "//pkg/util/mount:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["configmap_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/empty_dir:go_default_library", diff --git a/pkg/volume/downwardapi/BUILD b/pkg/volume/downwardapi/BUILD index 1cabf1aba86..ce0ad10c2c6 100644 --- a/pkg/volume/downwardapi/BUILD +++ b/pkg/volume/downwardapi/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["downwardapi.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/resource:go_default_library", @@ -30,7 +29,6 @@ go_test( name = "go_default_test", srcs = ["downwardapi_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/fieldpath:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/empty_dir/BUILD b/pkg/volume/empty_dir/BUILD index c7667667559..46c7d8a024c 100644 --- a/pkg/volume/empty_dir/BUILD +++ b/pkg/volume/empty_dir/BUILD @@ -20,7 +20,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -47,7 +46,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/util/mount:go_default_library", diff --git a/pkg/volume/fc/BUILD b/pkg/volume/fc/BUILD index 09e8d9a561f..cca13bb5e6c 100644 --- a/pkg/volume/fc/BUILD +++ b/pkg/volume/fc/BUILD @@ -17,7 +17,6 @@ go_library( "fc.go", "fc_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -37,7 +36,6 @@ go_test( "fc_util_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/flexvolume/BUILD b/pkg/volume/flexvolume/BUILD index ff746d60cc7..053f12c4d17 100644 --- a/pkg/volume/flexvolume/BUILD +++ b/pkg/volume/flexvolume/BUILD @@ -26,7 +26,6 @@ go_library( "util.go", "volume.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -51,7 +50,6 @@ go_test( "unmounter_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/flocker/BUILD b/pkg/volume/flocker/BUILD index 7a49a89d8de..f7056c61da5 100644 --- a/pkg/volume/flocker/BUILD +++ b/pkg/volume/flocker/BUILD @@ -16,7 +16,6 @@ go_library( "flocker_util.go", "flocker_volume.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/env:go_default_library", "//pkg/util/mount:go_default_library", @@ -42,7 +41,6 @@ go_test( "flocker_volume_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/gce_pd/BUILD b/pkg/volume/gce_pd/BUILD index 1282d7a6746..89ec11d99d4 100644 --- a/pkg/volume/gce_pd/BUILD +++ b/pkg/volume/gce_pd/BUILD @@ -16,7 +16,6 @@ go_library( "gce_pd.go", "gce_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/gce:go_default_library", @@ -42,7 +41,6 @@ go_test( "gce_pd_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/git_repo/BUILD b/pkg/volume/git_repo/BUILD index 2bf3b257f78..0b5394c7d2d 100644 --- a/pkg/volume/git_repo/BUILD +++ b/pkg/volume/git_repo/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "git_repo.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", @@ -29,7 +28,6 @@ go_test( name = "go_default_test", srcs = ["git_repo_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/empty_dir:go_default_library", diff --git a/pkg/volume/glusterfs/BUILD b/pkg/volume/glusterfs/BUILD index 296eb0e5a10..f35672bbf0d 100644 --- a/pkg/volume/glusterfs/BUILD +++ b/pkg/volume/glusterfs/BUILD @@ -16,7 +16,6 @@ go_library( "glusterfs_minmax.go", "glusterfs_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/util/mount:go_default_library", @@ -46,7 +45,6 @@ go_test( "glusterfs_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/host_path/BUILD b/pkg/volume/host_path/BUILD index 0d44a85eb95..f24a80cc17b 100644 --- a/pkg/volume/host_path/BUILD +++ b/pkg/volume/host_path/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "host_path.go", ], - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/util/volumehelper:go_default_library", @@ -35,7 +34,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//pkg/util/file:go_default_library", diff --git a/pkg/volume/iscsi/BUILD b/pkg/volume/iscsi/BUILD index a3573775a01..67288eba2f4 100644 --- a/pkg/volume/iscsi/BUILD +++ b/pkg/volume/iscsi/BUILD @@ -16,7 +16,6 @@ go_library( "iscsi.go", "iscsi_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -36,7 +35,6 @@ go_test( "iscsi_util_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/local/BUILD b/pkg/volume/local/BUILD index c1594670e15..d8ee83fc2cc 100644 --- a/pkg/volume/local/BUILD +++ b/pkg/volume/local/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "local.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["local_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/testing:go_default_library", diff --git a/pkg/volume/nfs/BUILD b/pkg/volume/nfs/BUILD index 41fc7be5835..21fca275782 100644 --- a/pkg/volume/nfs/BUILD +++ b/pkg/volume/nfs/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "nfs.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["nfs_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/photon_pd/BUILD b/pkg/volume/photon_pd/BUILD index e213563435a..40f6fc71c18 100644 --- a/pkg/volume/photon_pd/BUILD +++ b/pkg/volume/photon_pd/BUILD @@ -15,7 +15,6 @@ go_library( "photon_pd.go", "photon_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/photon:go_default_library", @@ -40,7 +39,6 @@ go_test( "photon_pd_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/photon:go_default_library", "//pkg/util/mount:go_default_library", diff --git a/pkg/volume/portworx/BUILD b/pkg/volume/portworx/BUILD index ada0894b698..4d002ecf1c7 100644 --- a/pkg/volume/portworx/BUILD +++ b/pkg/volume/portworx/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["portworx_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", @@ -30,7 +29,6 @@ go_library( "portworx.go", "portworx_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/util/mount:go_default_library", diff --git a/pkg/volume/projected/BUILD b/pkg/volume/projected/BUILD index dd94b5d13b9..d19568a368b 100644 --- a/pkg/volume/projected/BUILD +++ b/pkg/volume/projected/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["projected_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/empty_dir:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["projected.go"], - tags = ["automanaged"], deps = [ "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/quobyte/BUILD b/pkg/volume/quobyte/BUILD index 08baef4b446..d935df28c89 100644 --- a/pkg/volume/quobyte/BUILD +++ b/pkg/volume/quobyte/BUILD @@ -15,7 +15,6 @@ go_library( "quobyte.go", "quobyte_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -37,7 +36,6 @@ go_test( name = "go_default_test", srcs = ["quobyte_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/rbd/BUILD b/pkg/volume/rbd/BUILD index e88adf13f98..9da18a00848 100644 --- a/pkg/volume/rbd/BUILD +++ b/pkg/volume/rbd/BUILD @@ -16,7 +16,6 @@ go_library( "rbd.go", "rbd_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/node:go_default_library", @@ -40,7 +39,6 @@ go_test( name = "go_default_test", srcs = ["rbd_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/scaleio/BUILD b/pkg/volume/scaleio/BUILD index 5fa4a9b5111..ee06de48a8f 100644 --- a/pkg/volume/scaleio/BUILD +++ b/pkg/volume/scaleio/BUILD @@ -16,7 +16,6 @@ go_test( "sio_volume_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", @@ -40,7 +39,6 @@ go_library( "sio_util.go", "sio_volume.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/keymutex:go_default_library", "//pkg/util/mount:go_default_library", diff --git a/pkg/volume/secret/BUILD b/pkg/volume/secret/BUILD index b0a73270a0a..896d8bf2a21 100644 --- a/pkg/volume/secret/BUILD +++ b/pkg/volume/secret/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "secret.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/io:go_default_library", "//pkg/util/mount:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["secret_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/empty_dir:go_default_library", diff --git a/pkg/volume/storageos/BUILD b/pkg/volume/storageos/BUILD index 2e5268c9b97..5be05ea5f7e 100644 --- a/pkg/volume/storageos/BUILD +++ b/pkg/volume/storageos/BUILD @@ -15,7 +15,6 @@ go_library( "storageos.go", "storageos_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", @@ -41,7 +40,6 @@ go_test( "storageos_util_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/testing/BUILD b/pkg/volume/testing/BUILD index 1199cf8edb2..43bd4dfc923 100644 --- a/pkg/volume/testing/BUILD +++ b/pkg/volume/testing/BUILD @@ -13,7 +13,6 @@ go_library( "mock_volume.go", "testing.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/util/io:go_default_library", diff --git a/pkg/volume/util/BUILD b/pkg/volume/util/BUILD index d302434516b..4abf3e0a8ab 100644 --- a/pkg/volume/util/BUILD +++ b/pkg/volume/util/BUILD @@ -28,7 +28,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/helper:go_default_library", @@ -65,7 +64,6 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/install:go_default_library", "//pkg/api/v1/helper:go_default_library", diff --git a/pkg/volume/util/nestedpendingoperations/BUILD b/pkg/volume/util/nestedpendingoperations/BUILD index cc7a4516f5d..4f27fdc88f4 100644 --- a/pkg/volume/util/nestedpendingoperations/BUILD +++ b/pkg/volume/util/nestedpendingoperations/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["nestedpendingoperations.go"], - tags = ["automanaged"], deps = [ "//pkg/util/goroutinemap/exponentialbackoff:go_default_library", "//pkg/volume/util/types:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["nestedpendingoperations_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/volume/util/types:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/pkg/volume/util/operationexecutor/BUILD b/pkg/volume/util/operationexecutor/BUILD index 031def0ad60..87090e4e80d 100644 --- a/pkg/volume/util/operationexecutor/BUILD +++ b/pkg/volume/util/operationexecutor/BUILD @@ -14,7 +14,6 @@ go_library( "operation_executor.go", "operation_generator.go", ], - tags = ["automanaged"], deps = [ "//pkg/features:go_default_library", "//pkg/kubelet/events:go_default_library", @@ -39,7 +38,6 @@ go_test( name = "go_default_test", srcs = ["operation_executor_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", diff --git a/pkg/volume/util/types/BUILD b/pkg/volume/util/types/BUILD index 84e820bbc83..3d2559a3090 100644 --- a/pkg/volume/util/types/BUILD +++ b/pkg/volume/util/types/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/types:go_default_library"], ) diff --git a/pkg/volume/util/volumehelper/BUILD b/pkg/volume/util/volumehelper/BUILD index 690386c03be..7d00656136a 100644 --- a/pkg/volume/util/volumehelper/BUILD +++ b/pkg/volume/util/volumehelper/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["volumehelper.go"], - tags = ["automanaged"], deps = [ "//pkg/volume:go_default_library", "//pkg/volume/util/types:go_default_library", diff --git a/pkg/volume/validation/BUILD b/pkg/volume/validation/BUILD index d171e0f0a2d..6604f6768df 100644 --- a/pkg/volume/validation/BUILD +++ b/pkg/volume/validation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["pv_validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["pv_validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/pkg/volume/vsphere_volume/BUILD b/pkg/volume/vsphere_volume/BUILD index 426a7efeaf2..cb7433d5869 100644 --- a/pkg/volume/vsphere_volume/BUILD +++ b/pkg/volume/vsphere_volume/BUILD @@ -15,7 +15,6 @@ go_library( "vsphere_volume.go", "vsphere_volume_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider:go_default_library", "//pkg/cloudprovider/providers/vsphere:go_default_library", @@ -42,7 +41,6 @@ go_test( "vsphere_volume_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", "//pkg/util/mount:go_default_library", diff --git a/pkg/watch/BUILD b/pkg/watch/BUILD index af76644e94f..de02b4f2afc 100644 --- a/pkg/watch/BUILD +++ b/pkg/watch/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/pkg/watch/json/BUILD b/pkg/watch/json/BUILD index 2de7ce5216d..e76ad5843ba 100644 --- a/pkg/watch/json/BUILD +++ b/pkg/watch/json/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "types.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/watch:go_default_library", diff --git a/pkg/watch/versioned/BUILD b/pkg/watch/versioned/BUILD index de4fac951c2..d1398d06401 100644 --- a/pkg/watch/versioned/BUILD +++ b/pkg/watch/versioned/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["readonly.go"], - tags = ["automanaged"], ) filegroup( diff --git a/plugin/cmd/kube-scheduler/BUILD b/plugin/cmd/kube-scheduler/BUILD index 3027519483f..c7941a00ed5 100644 --- a/plugin/cmd/kube-scheduler/BUILD +++ b/plugin/cmd/kube-scheduler/BUILD @@ -18,14 +18,12 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["scheduler.go"], - tags = ["automanaged"], deps = [ "//pkg/version/verflag:go_default_library", "//plugin/cmd/kube-scheduler/app:go_default_library", diff --git a/plugin/cmd/kube-scheduler/app/BUILD b/plugin/cmd/kube-scheduler/app/BUILD index b1a5d104a33..5bc5391fec4 100644 --- a/plugin/cmd/kube-scheduler/app/BUILD +++ b/plugin/cmd/kube-scheduler/app/BUILD @@ -14,7 +14,6 @@ go_library( "configurator.go", "server.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/controller:go_default_library", @@ -69,5 +68,4 @@ go_test( name = "go_default_test", srcs = ["configurator_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) diff --git a/plugin/cmd/kube-scheduler/app/options/BUILD b/plugin/cmd/kube-scheduler/app/options/BUILD index 6aa7266cf21..026b9c81725 100644 --- a/plugin/cmd/kube-scheduler/app/options/BUILD +++ b/plugin/cmd/kube-scheduler/app/options/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["options.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/componentconfig:go_default_library", diff --git a/plugin/pkg/admission/admit/BUILD b/plugin/pkg/admission/admit/BUILD index 7697bee41a6..951c35c6120 100644 --- a/plugin/pkg/admission/admit/BUILD +++ b/plugin/pkg/admission/admit/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/admission:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", diff --git a/plugin/pkg/admission/alwayspullimages/BUILD b/plugin/pkg/admission/alwayspullimages/BUILD index 2cfb8e7c247..ec5efda710f 100644 --- a/plugin/pkg/admission/alwayspullimages/BUILD +++ b/plugin/pkg/admission/alwayspullimages/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/plugin/pkg/admission/antiaffinity/BUILD b/plugin/pkg/admission/antiaffinity/BUILD index fa22043d791..1f5dffb40c8 100644 --- a/plugin/pkg/admission/antiaffinity/BUILD +++ b/plugin/pkg/admission/antiaffinity/BUILD @@ -14,7 +14,6 @@ go_library( "admission.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/apis:go_default_library", @@ -27,7 +26,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/apis:go_default_library", diff --git a/plugin/pkg/admission/defaulttolerationseconds/BUILD b/plugin/pkg/admission/defaulttolerationseconds/BUILD index 9bea286a77f..f35a0192050 100644 --- a/plugin/pkg/admission/defaulttolerationseconds/BUILD +++ b/plugin/pkg/admission/defaulttolerationseconds/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", diff --git a/plugin/pkg/admission/deny/BUILD b/plugin/pkg/admission/deny/BUILD index 7697bee41a6..951c35c6120 100644 --- a/plugin/pkg/admission/deny/BUILD +++ b/plugin/pkg/admission/deny/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/admission:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", diff --git a/plugin/pkg/admission/exec/BUILD b/plugin/pkg/admission/exec/BUILD index d4b9c5ca6b1..dc709818ad9 100644 --- a/plugin/pkg/admission/exec/BUILD +++ b/plugin/pkg/admission/exec/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -27,7 +26,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/plugin/pkg/admission/gc/BUILD b/plugin/pkg/admission/gc/BUILD index 83cce318604..8b56403a056 100644 --- a/plugin/pkg/admission/gc/BUILD +++ b/plugin/pkg/admission/gc/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["gc_admission.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", @@ -28,7 +27,6 @@ go_test( name = "go_default_test", srcs = ["gc_admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubeapiserver/admission:go_default_library", diff --git a/plugin/pkg/admission/imagepolicy/BUILD b/plugin/pkg/admission/imagepolicy/BUILD index 6439a85f742..bd6b223405f 100644 --- a/plugin/pkg/admission/imagepolicy/BUILD +++ b/plugin/pkg/admission/imagepolicy/BUILD @@ -15,7 +15,6 @@ go_library( "config.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/imagepolicy/install:go_default_library", @@ -39,7 +38,6 @@ go_test( "config_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/imagepolicy/install:go_default_library", diff --git a/plugin/pkg/admission/initialization/BUILD b/plugin/pkg/admission/initialization/BUILD index 8d850826c03..b1d767df5c2 100644 --- a/plugin/pkg/admission/initialization/BUILD +++ b/plugin/pkg/admission/initialization/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["initialization.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubeapiserver/admission/configuration:go_default_library", @@ -47,7 +46,6 @@ go_test( name = "go_default_test", srcs = ["initialization_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/plugin/pkg/admission/initialresources/BUILD b/plugin/pkg/admission/initialresources/BUILD index 5331990fdbe..acd873fcf27 100644 --- a/plugin/pkg/admission/initialresources/BUILD +++ b/plugin/pkg/admission/initialresources/BUILD @@ -17,7 +17,6 @@ go_library( "hawkular.go", "influxdb.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/cloud.google.com/go/compute/metadata:go_default_library", @@ -46,7 +45,6 @@ go_test( "influxdb_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", diff --git a/plugin/pkg/admission/limitranger/BUILD b/plugin/pkg/admission/limitranger/BUILD index 1146d6d8cde..e4c8b65176f 100644 --- a/plugin/pkg/admission/limitranger/BUILD +++ b/plugin/pkg/admission/limitranger/BUILD @@ -14,7 +14,6 @@ go_library( "admission.go", "interfaces.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/plugin/pkg/admission/namespace/autoprovision/BUILD b/plugin/pkg/admission/namespace/autoprovision/BUILD index 9a0641a5f88..48fa4087b74 100644 --- a/plugin/pkg/admission/namespace/autoprovision/BUILD +++ b/plugin/pkg/admission/namespace/autoprovision/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -28,7 +27,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/plugin/pkg/admission/namespace/exists/BUILD b/plugin/pkg/admission/namespace/exists/BUILD index 63de816572c..e009ffe2841 100644 --- a/plugin/pkg/admission/namespace/exists/BUILD +++ b/plugin/pkg/admission/namespace/exists/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -28,7 +27,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/plugin/pkg/admission/noderestriction/BUILD b/plugin/pkg/admission/noderestriction/BUILD index cf5d23774b8..2a566854fda 100644 --- a/plugin/pkg/admission/noderestriction/BUILD +++ b/plugin/pkg/admission/noderestriction/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/pod:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/policy:go_default_library", diff --git a/plugin/pkg/admission/persistentvolume/label/BUILD b/plugin/pkg/admission/persistentvolume/label/BUILD index 8a456e756b1..26915db0cf8 100644 --- a/plugin/pkg/admission/persistentvolume/label/BUILD +++ b/plugin/pkg/admission/persistentvolume/label/BUILD @@ -14,7 +14,6 @@ go_library( "admission.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/cloudprovider:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/cloudprovider/providers/aws:go_default_library", diff --git a/plugin/pkg/admission/podnodeselector/BUILD b/plugin/pkg/admission/podnodeselector/BUILD index 74e6effbd03..39c91981112 100644 --- a/plugin/pkg/admission/podnodeselector/BUILD +++ b/plugin/pkg/admission/podnodeselector/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/plugin/pkg/admission/podpreset/BUILD b/plugin/pkg/admission/podpreset/BUILD index b8a8997ab99..dca6ea58e93 100644 --- a/plugin/pkg/admission/podpreset/BUILD +++ b/plugin/pkg/admission/podpreset/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/settings:go_default_library", @@ -30,7 +29,6 @@ go_test( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/ref:go_default_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/BUILD b/plugin/pkg/admission/podtolerationrestriction/BUILD index 8b4f692b6b6..cb2cdd659fd 100644 --- a/plugin/pkg/admission/podtolerationrestriction/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -32,7 +31,6 @@ go_library( "admission.go", "config.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1:go_default_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD index f93ff7c8378..21e8829ec6f 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD index 3d2b50a484f..4982a300d4f 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1:go_default_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD index e08a263d3a5..487d21fd3c3 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD index 6b658f6975f..b0c443d0ada 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//pkg/api/validation:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction:go_default_library", diff --git a/plugin/pkg/admission/resourcequota/BUILD b/plugin/pkg/admission/resourcequota/BUILD index 7f7a577e2e2..10d75b11f1e 100644 --- a/plugin/pkg/admission/resourcequota/BUILD +++ b/plugin/pkg/admission/resourcequota/BUILD @@ -17,7 +17,6 @@ go_library( "doc.go", "resource_access.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", @@ -54,7 +53,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD index 63676316312..d04d4c15b3c 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD index dbe702f8d40..67f068264a4 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//plugin/pkg/admission/resourcequota/apis/resourcequota:go_default_library", "//plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1:go_default_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD index 61d88730425..5c36e87b3d7 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//plugin/pkg/admission/resourcequota/apis/resourcequota:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD index 95508b9150d..818d349ddef 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//plugin/pkg/admission/resourcequota/apis/resourcequota:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -35,6 +34,5 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//plugin/pkg/admission/resourcequota/apis/resourcequota:go_default_library"], ) diff --git a/plugin/pkg/admission/security/BUILD b/plugin/pkg/admission/security/BUILD index 89be9dd5488..5ff9abfb43f 100644 --- a/plugin/pkg/admission/security/BUILD +++ b/plugin/pkg/admission/security/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/plugin/pkg/admission/security/podsecuritypolicy/BUILD b/plugin/pkg/admission/security/podsecuritypolicy/BUILD index 475d0384d20..571a1ce1b39 100644 --- a/plugin/pkg/admission/security/podsecuritypolicy/BUILD +++ b/plugin/pkg/admission/security/podsecuritypolicy/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/extensions:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", diff --git a/plugin/pkg/admission/securitycontext/scdeny/BUILD b/plugin/pkg/admission/securitycontext/scdeny/BUILD index 207311ec378..3f15a14bce4 100644 --- a/plugin/pkg/admission/securitycontext/scdeny/BUILD +++ b/plugin/pkg/admission/securitycontext/scdeny/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", diff --git a/plugin/pkg/admission/serviceaccount/BUILD b/plugin/pkg/admission/serviceaccount/BUILD index 7faad45f80d..a6fd299e0dd 100644 --- a/plugin/pkg/admission/serviceaccount/BUILD +++ b/plugin/pkg/admission/serviceaccount/BUILD @@ -14,7 +14,6 @@ go_library( "admission.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/pod:go_default_library", @@ -37,7 +36,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset/fake:go_default_library", diff --git a/plugin/pkg/admission/storageclass/setdefault/BUILD b/plugin/pkg/admission/storageclass/setdefault/BUILD index 2f034cbbe4a..9eda75899ad 100644 --- a/plugin/pkg/admission/storageclass/setdefault/BUILD +++ b/plugin/pkg/admission/storageclass/setdefault/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/helper:go_default_library", @@ -31,7 +30,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/storage:go_default_library", diff --git a/plugin/pkg/admission/webhook/BUILD b/plugin/pkg/admission/webhook/BUILD index 36855c34a76..5e64db89bc3 100644 --- a/plugin/pkg/admission/webhook/BUILD +++ b/plugin/pkg/admission/webhook/BUILD @@ -16,7 +16,6 @@ go_test( "rules_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admission/install:go_default_library", @@ -36,7 +35,6 @@ go_library( "doc.go", "rules.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/admission/install:go_default_library", diff --git a/plugin/pkg/auth/BUILD b/plugin/pkg/auth/BUILD index 423becf165d..7da89719e8e 100644 --- a/plugin/pkg/auth/BUILD +++ b/plugin/pkg/auth/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/plugin/pkg/auth/authenticator/token/bootstrap/BUILD b/plugin/pkg/auth/authenticator/token/bootstrap/BUILD index 96335c84268..01d2f3d49cb 100644 --- a/plugin/pkg/auth/authenticator/token/bootstrap/BUILD +++ b/plugin/pkg/auth/authenticator/token/bootstrap/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["bootstrap_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/bootstrap/api:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["bootstrap.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/bootstrap/api:go_default_library", diff --git a/plugin/pkg/auth/authorizer/BUILD b/plugin/pkg/auth/authorizer/BUILD index 48e484004c3..19c6246b22f 100644 --- a/plugin/pkg/auth/authorizer/BUILD +++ b/plugin/pkg/auth/authorizer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/plugin/pkg/auth/authorizer/node/BUILD b/plugin/pkg/auth/authorizer/node/BUILD index 8569eb1f87b..1ebc03cd112 100644 --- a/plugin/pkg/auth/authorizer/node/BUILD +++ b/plugin/pkg/auth/authorizer/node/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["node_authorizer_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/auth/nodeidentifier:go_default_library", @@ -30,7 +29,6 @@ go_library( "graph_populator.go", "node_authorizer.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/persistentvolume:go_default_library", diff --git a/plugin/pkg/auth/authorizer/rbac/BUILD b/plugin/pkg/auth/authorizer/rbac/BUILD index 598ff353545..5b62ffbda5c 100644 --- a/plugin/pkg/auth/authorizer/rbac/BUILD +++ b/plugin/pkg/auth/authorizer/rbac/BUILD @@ -14,7 +14,6 @@ go_library( "rbac.go", "subject_locator.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//pkg/registry/rbac/validation:go_default_library", @@ -32,7 +31,6 @@ go_test( "subject_locator_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//pkg/registry/rbac/validation:go_default_library", diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD index 774ac4da051..4d01d9ad648 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD @@ -15,7 +15,6 @@ go_library( "namespace_policy.go", "policy.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/rbac:go_default_library", "//pkg/features:go_default_library", @@ -34,7 +33,6 @@ go_test( data = glob([ "testdata/*", ]), - tags = ["automanaged"], deps = [ ":go_default_library", "//pkg/api:go_default_library", @@ -57,7 +55,6 @@ go_test( srcs = ["controller_policy_test.go"], data = glob(["testdata/**"]), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/plugin/pkg/scheduler/BUILD b/plugin/pkg/scheduler/BUILD index 72ad6705015..90b6d26920d 100644 --- a/plugin/pkg/scheduler/BUILD +++ b/plugin/pkg/scheduler/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["scheduler_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", @@ -38,7 +37,6 @@ go_library( "scheduler.go", "testutil.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", diff --git a/plugin/pkg/scheduler/algorithm/BUILD b/plugin/pkg/scheduler/algorithm/BUILD index 3790d1dc271..c4c29573bea 100644 --- a/plugin/pkg/scheduler/algorithm/BUILD +++ b/plugin/pkg/scheduler/algorithm/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "well_known_labels.go", ], - tags = ["automanaged"], deps = [ "//plugin/pkg/scheduler/api:go_default_library", "//plugin/pkg/scheduler/schedulercache:go_default_library", @@ -34,7 +33,6 @@ go_test( "types_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//plugin/pkg/scheduler/schedulercache:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/plugin/pkg/scheduler/algorithm/predicates/BUILD b/plugin/pkg/scheduler/algorithm/predicates/BUILD index f0e59586150..88d8bf2d1f1 100644 --- a/plugin/pkg/scheduler/algorithm/predicates/BUILD +++ b/plugin/pkg/scheduler/algorithm/predicates/BUILD @@ -16,7 +16,6 @@ go_library( "predicates.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/api/v1/helper/qos:go_default_library", @@ -47,7 +46,6 @@ go_test( "utils_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/kubelet/apis:go_default_library", diff --git a/plugin/pkg/scheduler/algorithm/priorities/BUILD b/plugin/pkg/scheduler/algorithm/priorities/BUILD index 9fe5d74f466..cb3d279bb0a 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/BUILD +++ b/plugin/pkg/scheduler/algorithm/priorities/BUILD @@ -24,7 +24,6 @@ go_library( "taint_toleration.go", "test_util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/kubelet/apis:go_default_library", @@ -59,7 +58,6 @@ go_test( "taint_toleration_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/kubelet/apis:go_default_library", "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", diff --git a/plugin/pkg/scheduler/algorithm/priorities/util/BUILD b/plugin/pkg/scheduler/algorithm/priorities/util/BUILD index 79a6cc05e1b..fc571966195 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/util/BUILD +++ b/plugin/pkg/scheduler/algorithm/priorities/util/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["topologies_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -26,7 +25,6 @@ go_library( "topologies.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/plugin/pkg/scheduler/algorithmprovider/BUILD b/plugin/pkg/scheduler/algorithmprovider/BUILD index 0081e74f65a..c93be076c15 100644 --- a/plugin/pkg/scheduler/algorithmprovider/BUILD +++ b/plugin/pkg/scheduler/algorithmprovider/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["plugins.go"], - tags = ["automanaged"], deps = ["//plugin/pkg/scheduler/algorithmprovider/defaults:go_default_library"], ) @@ -19,9 +18,6 @@ go_test( name = "go_default_test", srcs = ["plugins_test.go"], library = ":go_default_library", - tags = [ - "automanaged", - ], deps = ["//plugin/pkg/scheduler/factory:go_default_library"], ) diff --git a/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD b/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD index 93a44c9e3d4..0509b210fc9 100644 --- a/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD +++ b/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["defaults.go"], - tags = ["automanaged"], deps = [ "//pkg/cloudprovider/providers/aws:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", @@ -31,7 +30,6 @@ go_test( "defaults_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/plugin/pkg/scheduler/api/BUILD b/plugin/pkg/scheduler/api/BUILD index 74fbf6c2834..7b5e37a5775 100644 --- a/plugin/pkg/scheduler/api/BUILD +++ b/plugin/pkg/scheduler/api/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/plugin/pkg/scheduler/api/latest/BUILD b/plugin/pkg/scheduler/api/latest/BUILD index 1b8214cd151..c604182f488 100644 --- a/plugin/pkg/scheduler/api/latest/BUILD +++ b/plugin/pkg/scheduler/api/latest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["latest.go"], - tags = ["automanaged"], deps = [ "//plugin/pkg/scheduler/api:go_default_library", "//plugin/pkg/scheduler/api/v1:go_default_library", diff --git a/plugin/pkg/scheduler/api/v1/BUILD b/plugin/pkg/scheduler/api/v1/BUILD index db003a8a00a..784501097e2 100644 --- a/plugin/pkg/scheduler/api/v1/BUILD +++ b/plugin/pkg/scheduler/api/v1/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//plugin/pkg/scheduler/api:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/plugin/pkg/scheduler/api/validation/BUILD b/plugin/pkg/scheduler/api/validation/BUILD index 4831d56aa1e..f20a17f93b2 100644 --- a/plugin/pkg/scheduler/api/validation/BUILD +++ b/plugin/pkg/scheduler/api/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//plugin/pkg/scheduler/api:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//plugin/pkg/scheduler/api:go_default_library"], ) diff --git a/plugin/pkg/scheduler/core/BUILD b/plugin/pkg/scheduler/core/BUILD index f29751b4387..0b8fd318c79 100644 --- a/plugin/pkg/scheduler/core/BUILD +++ b/plugin/pkg/scheduler/core/BUILD @@ -16,7 +16,6 @@ go_test( "generic_scheduler_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//plugin/pkg/scheduler/algorithm:go_default_library", "//plugin/pkg/scheduler/algorithm/predicates:go_default_library", @@ -42,7 +41,6 @@ go_library( "extender.go", "generic_scheduler.go", ], - tags = ["automanaged"], deps = [ "//pkg/util/hash:go_default_library", "//plugin/pkg/scheduler/algorithm:go_default_library", diff --git a/plugin/pkg/scheduler/factory/BUILD b/plugin/pkg/scheduler/factory/BUILD index b225411c687..f616925ff93 100644 --- a/plugin/pkg/scheduler/factory/BUILD +++ b/plugin/pkg/scheduler/factory/BUILD @@ -14,7 +14,6 @@ go_library( "factory.go", "plugins.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/helper:go_default_library", "//pkg/api/v1/pod:go_default_library", @@ -56,7 +55,6 @@ go_test( "plugins_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testing:go_default_library", diff --git a/plugin/pkg/scheduler/metrics/BUILD b/plugin/pkg/scheduler/metrics/BUILD index afa45b34f36..7497542d14c 100644 --- a/plugin/pkg/scheduler/metrics/BUILD +++ b/plugin/pkg/scheduler/metrics/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metrics.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/prometheus/client_golang/prometheus:go_default_library"], ) diff --git a/plugin/pkg/scheduler/schedulercache/BUILD b/plugin/pkg/scheduler/schedulercache/BUILD index 8b9ba120d28..533eaec2fcd 100644 --- a/plugin/pkg/scheduler/schedulercache/BUILD +++ b/plugin/pkg/scheduler/schedulercache/BUILD @@ -16,7 +16,6 @@ go_library( "node_info.go", "util.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["cache_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//plugin/pkg/scheduler/algorithm/priorities/util:go_default_library", diff --git a/plugin/pkg/scheduler/testing/BUILD b/plugin/pkg/scheduler/testing/BUILD index d1542a0e2bc..2a56a79f82d 100644 --- a/plugin/pkg/scheduler/testing/BUILD +++ b/plugin/pkg/scheduler/testing/BUILD @@ -14,7 +14,6 @@ go_library( "fake_lister.go", "pods_to_cache.go", ], - tags = ["automanaged"], deps = [ "//plugin/pkg/scheduler/algorithm:go_default_library", "//plugin/pkg/scheduler/schedulercache:go_default_library", diff --git a/plugin/pkg/scheduler/util/BUILD b/plugin/pkg/scheduler/util/BUILD index 7bba7524005..141dec6010d 100644 --- a/plugin/pkg/scheduler/util/BUILD +++ b/plugin/pkg/scheduler/util/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["backoff_utils_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/types:go_default_library"], ) @@ -23,7 +22,6 @@ go_library( "testutil.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/install:go_default_library", diff --git a/staging/BUILD b/staging/BUILD index 69d43d45536..c42df8b0351 100644 --- a/staging/BUILD +++ b/staging/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "staging", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["godeps-json-updater.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) diff --git a/staging/src/k8s.io/api/admission/v1alpha1/BUILD b/staging/src/k8s.io/api/admission/v1alpha1/BUILD index cef913829f9..3f61a5ca2b6 100644 --- a/staging/src/k8s.io/api/admission/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/admission/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD index ab7e740400a..4aa7c974b56 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/apps/v1beta1/BUILD b/staging/src/k8s.io/api/apps/v1beta1/BUILD index 514a204239e..20e5c583d35 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/api/apps/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/apps/v1beta2/BUILD b/staging/src/k8s.io/api/apps/v1beta2/BUILD index 172670f2a94..46d1a61079e 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/api/apps/v1beta2/BUILD @@ -17,7 +17,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/authentication/v1/BUILD b/staging/src/k8s.io/api/authentication/v1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/authentication/v1/BUILD +++ b/staging/src/k8s.io/api/authentication/v1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/authentication/v1beta1/BUILD b/staging/src/k8s.io/api/authentication/v1beta1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/authentication/v1beta1/BUILD +++ b/staging/src/k8s.io/api/authentication/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/authorization/v1/BUILD b/staging/src/k8s.io/api/authorization/v1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/authorization/v1/BUILD +++ b/staging/src/k8s.io/api/authorization/v1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/authorization/v1beta1/BUILD b/staging/src/k8s.io/api/authorization/v1beta1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/authorization/v1beta1/BUILD +++ b/staging/src/k8s.io/api/authorization/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/autoscaling/v1/BUILD b/staging/src/k8s.io/api/autoscaling/v1/BUILD index d7e6ea364af..cf9d95c4cfb 100644 --- a/staging/src/k8s.io/api/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/api/autoscaling/v1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD index d7e6ea364af..cf9d95c4cfb 100644 --- a/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/batch/v1/BUILD b/staging/src/k8s.io/api/batch/v1/BUILD index d7137908124..2d3adf4e33f 100644 --- a/staging/src/k8s.io/api/batch/v1/BUILD +++ b/staging/src/k8s.io/api/batch/v1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/batch/v2alpha1/BUILD b/staging/src/k8s.io/api/batch/v2alpha1/BUILD index 604383bc5fb..ca61fad0233 100644 --- a/staging/src/k8s.io/api/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/api/batch/v2alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/certificates/v1beta1/BUILD b/staging/src/k8s.io/api/certificates/v1beta1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/api/certificates/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/core/v1/BUILD b/staging/src/k8s.io/api/core/v1/BUILD index 8356eef83f6..53b6aa9265e 100644 --- a/staging/src/k8s.io/api/core/v1/BUILD +++ b/staging/src/k8s.io/api/core/v1/BUILD @@ -15,7 +15,6 @@ go_test( "toleration_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -35,7 +34,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/extensions/v1beta1/BUILD b/staging/src/k8s.io/api/extensions/v1beta1/BUILD index 329654e84cb..d872cc19bb6 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/api/extensions/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD b/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/networking/v1/BUILD b/staging/src/k8s.io/api/networking/v1/BUILD index 9b602781600..36c0fcbe015 100644 --- a/staging/src/k8s.io/api/networking/v1/BUILD +++ b/staging/src/k8s.io/api/networking/v1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/policy/v1beta1/BUILD b/staging/src/k8s.io/api/policy/v1beta1/BUILD index 35106f4ed19..d04553fdcb2 100644 --- a/staging/src/k8s.io/api/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/api/policy/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/rbac/v1/BUILD b/staging/src/k8s.io/api/rbac/v1/BUILD index ab7e740400a..4aa7c974b56 100644 --- a/staging/src/k8s.io/api/rbac/v1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/rbac/v1alpha1/BUILD b/staging/src/k8s.io/api/rbac/v1alpha1/BUILD index ab7e740400a..4aa7c974b56 100644 --- a/staging/src/k8s.io/api/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/rbac/v1beta1/BUILD b/staging/src/k8s.io/api/rbac/v1beta1/BUILD index ab7e740400a..4aa7c974b56 100644 --- a/staging/src/k8s.io/api/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD index 5ca20c29956..fbbb30d9907 100644 --- a/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD @@ -17,7 +17,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/api/settings/v1alpha1/BUILD b/staging/src/k8s.io/api/settings/v1alpha1/BUILD index d7e6ea364af..cf9d95c4cfb 100644 --- a/staging/src/k8s.io/api/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/settings/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/api/storage/v1/BUILD b/staging/src/k8s.io/api/storage/v1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/storage/v1/BUILD +++ b/staging/src/k8s.io/api/storage/v1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/api/storage/v1beta1/BUILD b/staging/src/k8s.io/api/storage/v1beta1/BUILD index 8e8ea74e5ef..71a632cf949 100644 --- a/staging/src/k8s.io/api/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/api/storage/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "types_swagger_doc_generated.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/BUILD b/staging/src/k8s.io/apiextensions-apiserver/BUILD index b941c9a8250..8c4a52d9269 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "apiextensions-apiserver", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/cmd/server:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD index ce8614e5707..07bd5dfa528 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:go_default_library", @@ -28,7 +27,6 @@ go_library( go_binary( name = "client-go", library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD index 60bd9c857d0..07505178468 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["roundtrip_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing/fuzzer:go_default_library", @@ -32,7 +31,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD index 52ecd2bf330..74f102f1c82 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "cr.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD index 0906976a92a..cd5a6c5e581 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["controller.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD index 3f55340ed96..b89450a4312 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD @@ -17,7 +17,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", @@ -30,7 +29,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD index 7a75920e3c8..b0a4e439ceb 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD index d28724cca65..1b3f9ad9278 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["roundtrip_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD index fc3ebb25614..2c96cfe33f3 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD @@ -19,7 +19,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD index d8fe99fb9ee..cf634e2569b 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", @@ -24,7 +23,6 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD index 87ec28892fe..e73092876b5 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD @@ -15,7 +15,6 @@ go_library( "customresource_discovery_controller.go", "customresource_handler.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD index 2c504ae5653..93780caa9ed 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD index faf8c136584..d32fa91820c 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD index de21ec8af2c..1b7c90b7145 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD index ca2a0ab0839..c5c051314cf 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD index 85b3ba28981..c99a36ba6ea 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_apiextensions_client.go", "fake_customresourcedefinition.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD index 361a160513e..4d29be6e95b 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD index 0583e88a7e6..e41e7dfea5c 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD index 1f949dbff05..07937c8a2cf 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD index fc87fd7a59f..2b4f64a9afe 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD index 447459b3ed7..cdfb68c2418 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_apiextensions_client.go", "fake_customresourcedefinition.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD index 1e3fde9d303..cae998296f1 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD index 1fbd021b96e..d1c1657e468 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD index 85eecb9c391..c5beaa61a05 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "customresourcedefinition.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD index 58253221316..2fa3e9ad422 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD index c88712e1b3e..f9dc345687c 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD index 1857dab517f..19e437793c0 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD index dab7e9d9ba8..4b94aa1c46a 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "customresourcedefinition.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD index b0ceecb7214..59c1b38cc5a 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD index c83ce4ef61c..37b093d7388 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "customresourcedefinition.go", "expansion_generated.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD index 74e8d86e675..3d44152f3ca 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "customresourcedefinition.go", "expansion_generated.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD index b9d59e5a425..35a60d3a8b2 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["start.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD index e2e14cad00a..7f382f6115d 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["crd_finalizer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD index 8c543e8f89c..86dea14fc59 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["naming_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["naming_controller.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD index 0484eac7f99..89682b6b448 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD @@ -13,7 +13,6 @@ go_library( "etcd.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD index c0a1a2b053a..54909a23ad6 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD @@ -13,7 +13,6 @@ go_library( "etcd.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD b/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD index 3c0c6c9b5f4..c9ecd49b549 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD @@ -16,10 +16,7 @@ go_test( "registration_test.go", "validation_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//vendor/github.com/coreos/etcd/clientv3:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD b/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD index 0a40f4f0497..15cf1c91a71 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD @@ -13,7 +13,6 @@ go_library( "resources.go", "start.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/pborman/uuid:go_default_library", "//vendor/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD index 7fd917ab658..fef940ac16a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["semantic.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD index a168759a0ea..0e323828b2f 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["errors_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -27,7 +26,6 @@ go_library( "doc.go", "errors.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD index 78927152aa5..a667d490ec6 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD @@ -17,7 +17,6 @@ go_test( "restmapper_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -43,7 +42,6 @@ go_library( "restmapper.go", "unstructured.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD index 29bfb0532ef..c3b64f409f6 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD @@ -18,7 +18,6 @@ go_test( "scale_int_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", @@ -37,7 +36,6 @@ go_library( "scale_int.go", "suffix.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", @@ -50,7 +48,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["quantity_example_test.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD index 578a6d8405c..d4aebdd119c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["codec.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD index 4e1a1d66d69..1e543851034 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["valuefuzz_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "fuzzer.go", "valuefuzz.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD index a6ff529a09a..eb768aa133d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["roundtrip.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/golang/protobuf/proto:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD index 8f141158371..c700d00957c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["objectmeta_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", @@ -26,7 +25,6 @@ go_library( "generic.go", "objectmeta.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD index c635768fe07..001d614d352 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["name_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["name.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD b/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD index e6ca66ae058..f718ab82e5a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["types_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library"], ) @@ -22,7 +21,6 @@ go_library( "doc.go", "types.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD index 1bf36a27d29..bcf5b22c7c9 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["announced_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library"], ) @@ -22,7 +21,6 @@ go_library( "announced.go", "group_factory.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD b/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD index 766482bd26f..6397b81d82d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["registered_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["registered.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD index 598121b26c3..70635d98fad 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD index 32638ce0dd6..c9d340627f5 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD @@ -15,7 +15,6 @@ go_test( "roundtrip_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/fuzzer:go_default_library", @@ -33,7 +32,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1alpha1:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD index 980abeb60d3..992af6621f6 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD @@ -21,7 +21,6 @@ go_test( "types_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", @@ -53,7 +52,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD index f9ef203ab11..4e5c0b2b9e6 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["unstructured_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "unstructured.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD index 1e010ea5bd6..450f79413d1 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library"], ) go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD index c805a8748d9..d9c3487372a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD @@ -20,7 +20,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD index 4fd1de4f439..3e0f712a897 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD index 5d42bebd006..f64d74d8572 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD index 61beeb81727..6e105d11ace 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["roundtrip_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD index 1d3f653eb2e..c38b760e409 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD @@ -22,7 +22,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD b/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD index b9416540efa..9faf1c0f285 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD @@ -16,7 +16,6 @@ go_test( "helper_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", @@ -33,7 +32,6 @@ go_library( "doc.go", "helper.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/third_party/forked/golang/reflect:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD b/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD index 82afd452f5b..ae39e038aec 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD @@ -14,13 +14,11 @@ go_library( "convert.go", "doc.go", ], - tags = ["automanaged"], ) go_test( name = "go_default_xtest", srcs = ["convert_test.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion/queryparams:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD index 8bd6e789bea..9d3a0113746 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["converter_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/diff:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", @@ -25,7 +24,6 @@ go_library( "converter.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/fields/BUILD b/staging/src/k8s.io/apimachinery/pkg/fields/BUILD index 5ccd2c4efd2..161690f9acd 100644 --- a/staging/src/k8s.io/apimachinery/pkg/fields/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/fields/BUILD @@ -15,7 +15,6 @@ go_test( "selector_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -26,7 +25,6 @@ go_library( "requirements.go", "selector.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/selection:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/labels/BUILD b/staging/src/k8s.io/apimachinery/pkg/labels/BUILD index 6c22ad06dbb..a13640c8226 100644 --- a/staging/src/k8s.io/apimachinery/pkg/labels/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/labels/BUILD @@ -15,7 +15,6 @@ go_test( "selector_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/selection:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", @@ -30,7 +29,6 @@ go_library( "selector.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD index 4ac2490e1b5..14ddd00852b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["swagger_doc_generator_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -36,7 +35,6 @@ go_library( "types_proto.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", @@ -54,7 +52,6 @@ go_test( "extension_test.go", "scheme_test.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD index 9aa374f3c1b..b83ef07ca6a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["group_version_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -22,7 +21,6 @@ go_library( "group_version.go", "interfaces.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/gogo/protobuf/proto:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD index 052826b3fdb..4f6cf6c7722 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["codec_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/google/gofuzz:go_default_library", @@ -33,7 +32,6 @@ go_library( "negotiated_codec.go", "protobuf_extension.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD index 3d52f055c8d..44a1283a43c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["meta_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "json.go", "meta.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", @@ -36,7 +34,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["json_test.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD index 86fa10a73c3..4d6d9e261ac 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "protobuf.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD index 581648e128e..e3d78a7d12d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["recognizer.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD index bf2ac6133de..398d83e0403 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD @@ -10,7 +10,6 @@ load( go_test( name = "go_default_test", srcs = ["recognizer_test.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD index 41b79a95817..ed75a24c71c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["streaming_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["streaming.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD index cdc5d1a7d97..74714103772 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD @@ -14,7 +14,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD index 0255c01b92f..11d263d3d7b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["versioning_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["versioning.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD index 22483c98be2..26f5b9b0ce3 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["yaml.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD index cdc5d1a7d97..74714103772 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD @@ -14,7 +14,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/selection/BUILD b/staging/src/k8s.io/apimachinery/pkg/selection/BUILD index fbedd42bff2..1001eab44e7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/selection/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/selection/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["operator.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/test/BUILD b/staging/src/k8s.io/apimachinery/pkg/test/BUILD index d0d74adc643..c9ef67cd88a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/test/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/test/BUILD @@ -19,7 +19,6 @@ go_test( "runtime_unversioned_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -43,7 +42,6 @@ go_library( "util.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/testapigroup:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/types/BUILD b/staging/src/k8s.io/apimachinery/pkg/types/BUILD index 7237a9c9270..1c2992546c5 100644 --- a/staging/src/k8s.io/apimachinery/pkg/types/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/types/BUILD @@ -16,7 +16,6 @@ go_library( "patch.go", "uid.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD index 9cfd39327b2..6822c800077 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD @@ -15,7 +15,6 @@ go_test( "lruexpirecache_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/groupcache/lru:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", @@ -28,7 +27,6 @@ go_library( "cache.go", "lruexpirecache.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/hashicorp/golang-lru:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD index 816c972f2a1..7a5c9735b02 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["clock_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["clock.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD index 71abf544b8c..43f8acc8a11 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["diff_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["diff.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD index 150bb000725..41f6f2a92a7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["errors_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "doc.go", "errors.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD index a1be1de2017..a5353ec7393 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["framer_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["framer.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD index 57b1e3c43fc..e1e2fbbbb68 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["httpstream_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "doc.go", "httpstream.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD index 644b8db8a64..b3edab49203 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD @@ -16,7 +16,6 @@ go_test( "upgrade_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/elazarl/goproxy:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", @@ -30,7 +29,6 @@ go_library( "roundtripper.go", "upgrade.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/spdystream:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD index eb4618c27bc..83815d6415a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["intstr_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/ghodss/yaml:go_default_library"], ) @@ -22,7 +21,6 @@ go_library( "generated.pb.go", "intstr.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD index 9b9a199640d..4b5a337debb 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["json.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["json_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD index 25c73f63026..929faec14cf 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["patch_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/evanphx/json-patch:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["patch.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD index 2e3ebf0c596..690b0372508 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "errors.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD index b79d5021028..1412e409c86 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD @@ -18,7 +18,6 @@ go_test( "util_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) @@ -31,7 +30,6 @@ go_library( "port_split.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/http2:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD index fd105a3b69a..8018bb2cdb8 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD @@ -16,7 +16,6 @@ go_test( "upgradeaware_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", @@ -35,7 +34,6 @@ go_library( "transport.go", "upgradeaware.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/mxk/go-flowrate/flowrate:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD index a5fdc2503f4..298d990e95b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["rand_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["rand.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD index 2e7136c0ffe..d72a2e5f8ca 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["constants.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD index d2dd0a69c63..7b4560140c1 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["runtime_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["runtime.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD index 2cd9ecfd9e6..bf0ed2c9aba 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD @@ -19,7 +19,6 @@ go_library( "int64.go", "string.go", ], - tags = ["automanaged"], ) go_genrule( @@ -54,7 +53,6 @@ go_test( name = "go_default_test", srcs = ["set_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD index 6109f467f1a..faaf46d0d62 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD index 62f16b3ebc6..e97a1f69bee 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["patch_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", @@ -25,7 +24,6 @@ go_test( go_library( name = "go_default_library", srcs = ["patch.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/json:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/mergepatch:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD index 6bfc2e41e40..6e26cbc9243 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["uuid.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/pborman/uuid:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD index c8bf5cc88f8..7c0993bf504 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD index 39e6d7574a3..de47ad61ca0 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD @@ -15,7 +15,6 @@ go_test( "path_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -24,7 +23,6 @@ go_library( "errors.go", "path.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD index f331310b7fe..b877a52300e 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["wait_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library"], ) @@ -22,7 +21,6 @@ go_library( "doc.go", "wait.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library"], ) diff --git a/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD index 565cb8b52b1..a20bbbd3433 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["decoder_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["decoder.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/version/BUILD b/staging/src/k8s.io/apimachinery/pkg/version/BUILD index 11930993514..f0f511f09b9 100644 --- a/staging/src/k8s.io/apimachinery/pkg/version/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/version/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/pkg/watch/BUILD b/staging/src/k8s.io/apimachinery/pkg/watch/BUILD index 689b90d48e6..513d44a584c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/watch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/watch/BUILD @@ -19,7 +19,6 @@ go_library( "watch.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", @@ -39,7 +38,6 @@ go_test( "streamwatcher_test.go", "watch_test.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", @@ -52,7 +50,6 @@ go_test( name = "go_default_test", srcs = ["until_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD b/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD index 8ecee4c4764..df33686d03d 100644 --- a/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD +++ b/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fields.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD b/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD index 484ab572d3b..49455e16ef4 100644 --- a/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD +++ b/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["addr.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD b/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD index fdd0f894abd..36db6bef9df 100644 --- a/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD +++ b/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["deep_equal_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["deep_equal.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/admission/BUILD b/staging/src/k8s.io/apiserver/pkg/admission/BUILD index 08dbf2f2723..40218ef709c 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/admission/BUILD @@ -16,7 +16,6 @@ go_test( "errors_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", @@ -35,7 +34,6 @@ go_library( "interfaces.go", "plugins.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD b/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD index 6f6e250f30d..e6a48712f1f 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD @@ -14,7 +14,6 @@ go_library( "initializer.go", "interfaces.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", @@ -26,7 +25,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["initializer_test.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/apiserver/pkg/admission/initializer:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD b/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD index 9ee41505667..46243e03e82 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -33,7 +32,6 @@ go_test( name = "go_default_test", srcs = ["admission_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD index 22a5bf72f02..0bc9de63a53 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD index e17db8d48b7..c827ab955d3 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD index b9b770fa563..914c1f5a352 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD index b2b1c995647..039fed14c64 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD index 15cafb4ffc7..f7f6034d473 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD index 30791e5ad9c..e2e198b79c9 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD @@ -19,7 +19,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD index 28e71c6ae11..8507dfffce2 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["validation_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/apis/audit:go_default_library"], ) go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD index 21612137a08..1c03ddcd0e6 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD index 6c085202bc6..e8b6033c817 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fuzzer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/testing:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD index c919257e6aa..4db1d954ea8 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", @@ -25,7 +24,6 @@ go_test( name = "go_default_test", srcs = ["roundtrip_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/example/fuzzer:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD index 73b8af7fe0d..776917a2b93 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD @@ -22,7 +22,6 @@ go_library( "zz_generated.deepcopy.go", "zz_generated.defaults.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/audit/BUILD b/staging/src/k8s.io/apiserver/pkg/audit/BUILD index 3c37acf74fa..940ff546017 100644 --- a/staging/src/k8s.io/apiserver/pkg/audit/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/audit/BUILD @@ -18,7 +18,6 @@ go_library( "types.go", "union.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/pborman/uuid:go_default_library", @@ -41,7 +40,6 @@ go_test( name = "go_default_test", srcs = ["union_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD b/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD index 2c491504341..8f7aaddf56c 100644 --- a/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD @@ -15,7 +15,6 @@ go_test( "reader_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", @@ -32,7 +31,6 @@ go_library( "checker.go", "reader.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD index bc46520f56b..91d0b27d6dd 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interfaces.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD index 74d2671320c..1f1a3482ff3 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD @@ -14,7 +14,6 @@ go_library( "loopback.go", "requestheader.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD index d2485a55df7..968ce73885d 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["group_adder_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", @@ -25,7 +24,6 @@ go_library( "authenticated_group_adder.go", "group_adder.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD index 51b222b6cf6..eb86f6311ef 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["anonymous_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["anonymous.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD index 74041ead10f..1ea3bb6a721 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["bearertoken_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["bearertoken.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD index c176c64f59c..835e158a056 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["requestheader_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) go_library( name = "go_default_library", srcs = ["requestheader.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD index 7a6b23db96b..9178946cef8 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["unionauth_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) go_library( name = "go_default_library", srcs = ["union.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD index 64c74135a55..8c80b166b9f 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["protocol.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", @@ -23,7 +22,6 @@ go_test( name = "go_default_test", srcs = ["protocol_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD index 269620ca105..6d89e6b1d5e 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD @@ -18,7 +18,6 @@ go_test( "testdata/root.pem", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", @@ -32,7 +31,6 @@ go_library( "doc.go", "x509.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD index 81a048f2a9f..5dce88f5177 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["util_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD index 81616b5115e..957b6057803 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["tokenfile_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) go_library( name = "go_default_library", srcs = ["tokenfile.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD index 86d32e96a60..5e0ae6e8d9c 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "user.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD b/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD index bc46520f56b..91d0b27d6dd 100644 --- a/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interfaces.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD b/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD index 1c36aa376d5..1b041413e7a 100644 --- a/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["authz_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", @@ -25,7 +24,6 @@ go_library( "builtin.go", "delegating.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", "//vendor/k8s.io/apiserver/plugin/pkg/authorizer/webhook:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD b/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD index 094e44d1b6a..bdc871e3be9 100644 --- a/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["union_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library"], ) go_library( name = "go_default_library", srcs = ["union.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//vendor/k8s.io/apiserver/pkg/authorization/authorizer:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD index 248e5af2c7b..e68c946538a 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD @@ -18,7 +18,6 @@ go_test( "watch_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/golang.org/x/net/websocket:go_default_library", @@ -67,7 +66,6 @@ go_library( "groupversion.go", "installer.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD index 7983e4ff2ea..82f829d3ea0 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD @@ -15,7 +15,6 @@ go_test( "root_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", @@ -39,7 +38,6 @@ go_library( "util.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD index 863bc9f2150..36f0914cc9b 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD @@ -19,7 +19,6 @@ go_test( "requestinfo_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/pborman/uuid:go_default_library", "//vendor/k8s.io/api/authentication/v1:go_default_library", @@ -55,7 +54,6 @@ go_library( "legacy_audit.go", "requestinfo.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/pborman/uuid:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD index 3b59060d097..a4ac67226ad 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD @@ -15,7 +15,6 @@ go_test( "rest_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -47,7 +46,6 @@ go_library( "rest.go", "watch.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/evanphx/json-patch:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD index 692647768e2..629b9588985 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["negotiate_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -26,7 +25,6 @@ go_library( "errors.go", "negotiate.go", ], - tags = ["automanaged"], deps = [ "//vendor/bitbucket.org/ww/goautoneg:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD index 74152d88c0c..2a204ed3436 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD @@ -15,7 +15,6 @@ go_test( "status_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -36,7 +35,6 @@ go_library( "status.go", "writers.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD index f1bfdc25fed..82e422c7dcc 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["metrics_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["metrics.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD index a0bc92953d2..cd0537fb1e5 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["openapi_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["openapi.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD index 4767a45109d..3ab7b63578c 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD @@ -13,7 +13,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD index 96ce44c3774..b67efc78746 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["requestinfo_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library"], ) @@ -24,7 +23,6 @@ go_library( "requestcontext.go", "requestinfo.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", @@ -38,7 +36,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["context_test.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD index fe102025ed3..08fb1533d0a 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ugorji/go/codec:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/features/BUILD b/staging/src/k8s.io/apiserver/pkg/features/BUILD index d4be1b81aa9..30e2b48e155 100644 --- a/staging/src/k8s.io/apiserver/pkg/features/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/features/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["kube_features.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/util/feature:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/registry/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/BUILD index a0e86d14358..dcefb5d7855 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD index c993628f479..a304d8a7a29 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD @@ -15,7 +15,6 @@ go_library( "options.go", "storage_decorator.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD index b45da7fb9c3..4d7a1ffbae3 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD @@ -15,7 +15,6 @@ go_test( "store_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -53,7 +52,6 @@ go_library( "storage_factory.go", "store.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD index 6b5e59a98ce..7f38f6cbde1 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD @@ -15,7 +15,6 @@ go_test( "streamer_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -30,7 +29,6 @@ go_library( "response_checker.go", "streamer.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD index db848ab5618..c8ddaac04a7 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["meta_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -35,7 +34,6 @@ go_library( "update.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD index 5a17d220ed9..74b588ad952 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["resttest.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/BUILD b/staging/src/k8s.io/apiserver/pkg/server/BUILD index 3ab937e0f0a..f87d2366e41 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/BUILD @@ -16,7 +16,6 @@ go_test( "genericapiserver_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", @@ -56,7 +55,6 @@ go_library( "plugins.go", "serve.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/go-systemd/daemon:go_default_library", "//vendor/github.com/emicklei/go-restful:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD b/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD index ac14d153d67..759fb0a5a84 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD @@ -17,7 +17,6 @@ go_test( "timeout_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -41,7 +40,6 @@ go_library( "timeout.go", "wrap.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD b/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD index 7cbe5d9beb5..b7a33b9e9b7 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["healthz_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "doc.go", "healthz.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD b/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD index f4d0572e6b0..1f84ac64f67 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["httplog_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "doc.go", "httplog.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD b/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD index 581ec8e5462..1d67e0bf0fb 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["pathrecorder_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], ) @@ -22,7 +21,6 @@ go_library( "doc.go", "pathrecorder.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD index 617712348f5..f49d327e9da 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD @@ -13,7 +13,6 @@ go_test( srcs = ["serving_test.go"], data = glob(["testdata/**"]), library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -41,7 +40,6 @@ go_library( "server_run_options.go", "serving.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/pborman/uuid:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD b/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD index f47fce7e959..48f63c9001c 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD @@ -15,7 +15,6 @@ go_library( "plugins.go", "types.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -32,7 +31,6 @@ go_test( name = "go_default_test", srcs = ["encryptionconfig_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD b/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD index 127954d2f4b..7873eaa5ae5 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD @@ -19,7 +19,6 @@ go_library( "swaggerui.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/elazarl/go-bindata-assetfs:go_default_library", "//vendor/github.com/emicklei/go-restful:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD b/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD index 785a73744d3..40d18c8cd34 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["datafile.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD b/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD index 699e4ca3348..0748dac6b0e 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD @@ -15,7 +15,6 @@ go_test( "storage_factory_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", @@ -39,7 +38,6 @@ go_library( "storage_codec.go", "storage_factory.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/BUILD index a8f485b331a..f6ac27a5df1 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/BUILD @@ -18,7 +18,6 @@ go_test( "watch_cache_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -50,7 +49,6 @@ go_library( "util.go", "watch_cache.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD index dd618740b29..a53be11f885 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "storage.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD index bce7125b7f0..875eec1347a 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD @@ -16,7 +16,6 @@ go_test( "etcd_watcher_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", @@ -49,7 +48,6 @@ go_library( "etcd_helper.go", "etcd_watcher.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD index 4a0207e32b0..f2297458778 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "etcdtest.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD index afa45b34f36..7497542d14c 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metrics.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/prometheus/client_golang/prometheus:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD index 00f126dfb2a..cf37f6b4d60 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["utils.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/github.com/coreos/etcd/clientv3:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD index 74c28551b8b..731c2d66156 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["certificates.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD index b8f79fe2f7f..2ef03875c2e 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["etcd_util_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -25,7 +24,6 @@ go_library( "doc.go", "etcd_util.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/etcd/client:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD index 34a77665fdf..aaee9485cde 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD @@ -16,7 +16,6 @@ go_test( "watcher_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/clientv3:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", @@ -48,7 +47,6 @@ go_library( "store.go", "watcher.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/clientv3:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD index 77c42c7d053..5a04a8267d3 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["checks.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["checks_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD index 3ae8dbfd393..2dbfbdd98b2 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["generate_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["generate.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD index e5989675a02..ada0a8b68cb 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["config.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD index af489d57dd8..0f8b0079d8f 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["tls_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/integration:go_default_library", "//vendor/github.com/coreos/etcd/pkg/transport:go_default_library", @@ -35,7 +34,6 @@ go_library( "etcd3.go", "factory.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/github.com/coreos/etcd/clientv3:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD index 64c93ef7e75..30c74dbce74 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD @@ -16,7 +16,6 @@ go_library( "utils.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ugorji/go/codec:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD index 10f83fc54c0..987b869547f 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["cacher_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", @@ -41,7 +40,6 @@ go_test( go_library( name = "go_default_library", srcs = ["utils.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/apis/example:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD index 89b52f15592..e9e303e8b6f 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["transformer_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["transformer.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD index efefabb1acf..00820cc3123 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["aes_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library"], ) go_library( name = "go_default_library", srcs = ["aes.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD index bf2f85cca56..9f410268e85 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["envelope.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/hashicorp/golang-lru:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library", @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["envelope_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/value/encrypt/aes:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD index 2d12da38202..614f851ccfe 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["identity.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD index 745542e14ff..fda654883ed 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["secretbox_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library"], ) go_library( name = "go_default_library", srcs = ["secretbox.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/crypto/nacl/secretbox:go_default_library", "//vendor/k8s.io/apiserver/pkg/storage/value:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD b/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD index da7d815abb9..10db5aac37b 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["feature_gate_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) go_library( name = "go_default_library", srcs = ["feature_gate.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD b/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD index 6cf46b7ae9f..731b885d0f0 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["namedcertkey_flag_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/pflag:go_default_library"], ) @@ -25,7 +24,6 @@ go_library( "string_flag.go", "tristate.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD b/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD index bef30aa9dfb..023965eff01 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["writer_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "doc.go", "writer.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD b/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD index 24d392a4862..73bd9fde975 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["logs.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD b/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD index 050581f07eb..75260283afd 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["proxy_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -25,7 +24,6 @@ go_test( go_library( name = "go_default_library", srcs = ["proxy.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD b/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD index 8bf4aac38a4..eea0cc97791 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["trace.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD b/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD index b371660f6b5..73d513c68a2 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["webhook.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", @@ -31,7 +30,6 @@ go_test( "webhook_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD b/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD index 385016536a4..b77e9f4ba25 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD @@ -15,7 +15,6 @@ go_test( "stream_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/websocket:go_default_library"], ) @@ -26,7 +25,6 @@ go_library( "doc.go", "stream.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/websocket:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD index fe0e008d10d..0ff03980793 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD index 32c12d180c8..9f2e731f1f0 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["backend.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/apis/audit:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD index 11893b0b526..fc68ba71705 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["webhook_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/github.com/stretchr/testify/require:go_default_library", @@ -28,7 +27,6 @@ go_test( go_library( name = "go_default_library", srcs = ["webhook.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD index 256e29292c7..549d79b59d8 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD index 0b98a9cd9a7..82d26f2ff15 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD index 50384195940..89d9f77e240 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["allow_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["allow.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD index f0c9a280458..01bdea23609 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "keystone.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/gophercloud/gophercloud:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD index 32724a8e8fd..9b494533cae 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["passwordfile_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) go_library( name = "go_default_library", srcs = ["passwordfile.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD index fc7366015a9..7635ac9a0b6 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["basicauth_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["basicauth.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/authentication/authenticator:go_default_library", "//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD index ea95b492396..8e03b414fb0 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["oidc_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/go-oidc/jose:go_default_library", "//vendor/github.com/coreos/go-oidc/oidc:go_default_library", @@ -24,7 +23,6 @@ go_test( go_library( name = "go_default_library", srcs = ["oidc.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/go-oidc/jose:go_default_library", "//vendor/github.com/coreos/go-oidc/oidc:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD index 67cf5c04084..ef5377b9af4 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["provider.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/go-oidc/jose:go_default_library", "//vendor/github.com/coreos/go-oidc/key:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD index 3ee0258cdf9..4d288d3f48a 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["tokentest.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apiserver/pkg/authentication/user:go_default_library"], ) diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD index f3afa8f9f6d..c3a9d7282aa 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD @@ -15,7 +15,6 @@ go_test( "webhook_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["webhook.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD index 796283b7f73..2f7bd455267 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD @@ -15,7 +15,6 @@ go_test( "webhook_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -29,7 +28,6 @@ go_test( go_library( name = "go_default_library", srcs = ["webhook.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/discovery/BUILD b/staging/src/k8s.io/client-go/discovery/BUILD index 7e7a0618aff..1486859a909 100644 --- a/staging/src/k8s.io/client-go/discovery/BUILD +++ b/staging/src/k8s.io/client-go/discovery/BUILD @@ -16,7 +16,6 @@ go_library( "restmapper.go", "unstructured.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful-swagger12:go_default_library", "//vendor/github.com/golang/glog:go_default_library", @@ -43,7 +42,6 @@ go_test( "helper_blackbox_test.go", "restmapper_test.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful-swagger12:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/staging/src/k8s.io/client-go/discovery/cached/BUILD b/staging/src/k8s.io/client-go/discovery/cached/BUILD index b67906b9394..49ea7585f1a 100644 --- a/staging/src/k8s.io/client-go/discovery/cached/BUILD +++ b/staging/src/k8s.io/client-go/discovery/cached/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["memcache_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/client-go/discovery/fake:go_default_library", @@ -22,7 +21,6 @@ go_test( go_library( name = "go_default_library", srcs = ["memcache.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful-swagger12:go_default_library", "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", diff --git a/staging/src/k8s.io/client-go/discovery/fake/BUILD b/staging/src/k8s.io/client-go/discovery/fake/BUILD index df523bb1d42..e565ab046a9 100644 --- a/staging/src/k8s.io/client-go/discovery/fake/BUILD +++ b/staging/src/k8s.io/client-go/discovery/fake/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["discovery.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful-swagger12:go_default_library", "//vendor/github.com/googleapis/gnostic/OpenAPIv2:go_default_library", diff --git a/staging/src/k8s.io/client-go/dynamic/BUILD b/staging/src/k8s.io/client-go/dynamic/BUILD index 033b61aa3d2..50db7ac4fde 100644 --- a/staging/src/k8s.io/client-go/dynamic/BUILD +++ b/staging/src/k8s.io/client-go/dynamic/BUILD @@ -15,7 +15,6 @@ go_test( "dynamic_util_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", @@ -36,7 +35,6 @@ go_library( "client_pool.go", "dynamic_util.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/client-go/dynamic/fake/BUILD b/staging/src/k8s.io/client-go/dynamic/fake/BUILD index c66f13a9e21..9a172f4ac6e 100644 --- a/staging/src/k8s.io/client-go/dynamic/fake/BUILD +++ b/staging/src/k8s.io/client-go/dynamic/fake/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "client_pool.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", diff --git a/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD b/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD index 1c2cee6838e..3efd41743a8 100644 --- a/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD +++ b/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "create-update-delete-deployment", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD index 1437159514e..30912547ce8 100644 --- a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD +++ b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "in-cluster-client-configuration", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD index 5f10df3179c..db4d679a40e 100644 --- a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD +++ b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "out-of-cluster-client-configuration", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/examples/workqueue/BUILD b/staging/src/k8s.io/client-go/examples/workqueue/BUILD index e92b4ced046..25ef07ae2c2 100644 --- a/staging/src/k8s.io/client-go/examples/workqueue/BUILD +++ b/staging/src/k8s.io/client-go/examples/workqueue/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "workqueue", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/BUILD b/staging/src/k8s.io/client-go/informers/BUILD index f945ced0e3f..81a99e532bf 100644 --- a/staging/src/k8s.io/client-go/informers/BUILD +++ b/staging/src/k8s.io/client-go/informers/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD b/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD index f4089a21d93..6298b15af69 100644 --- a/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD +++ b/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD index 30d853e7230..dd42b9b4eec 100644 --- a/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD @@ -14,7 +14,6 @@ go_library( "initializerconfiguration.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/apps/BUILD b/staging/src/k8s.io/client-go/informers/apps/BUILD index b1549ec1ece..574c4b0731a 100644 --- a/staging/src/k8s.io/client-go/informers/apps/BUILD +++ b/staging/src/k8s.io/client-go/informers/apps/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/apps/v1beta1:go_default_library", "//vendor/k8s.io/client-go/informers/apps/v1beta2:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD index 5843df8f28f..fc538c70762 100644 --- a/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "interface.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD b/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD index 88d2a7608d6..fc6a4fd54b8 100644 --- a/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD @@ -16,7 +16,6 @@ go_library( "replicaset.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/autoscaling/BUILD b/staging/src/k8s.io/client-go/informers/autoscaling/BUILD index 56f092d18ca..f014afdf607 100644 --- a/staging/src/k8s.io/client-go/informers/autoscaling/BUILD +++ b/staging/src/k8s.io/client-go/informers/autoscaling/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/autoscaling/v1:go_default_library", "//vendor/k8s.io/client-go/informers/autoscaling/v2alpha1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD b/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD index cac296b69aa..45d9689ab6c 100644 --- a/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD @@ -13,7 +13,6 @@ go_library( "horizontalpodautoscaler.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD index 7466c8ea9a0..95e4c126120 100644 --- a/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "horizontalpodautoscaler.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/batch/BUILD b/staging/src/k8s.io/client-go/informers/batch/BUILD index d87f565e950..7fd93dd6e32 100644 --- a/staging/src/k8s.io/client-go/informers/batch/BUILD +++ b/staging/src/k8s.io/client-go/informers/batch/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/batch/v1:go_default_library", "//vendor/k8s.io/client-go/informers/batch/v2alpha1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/batch/v1/BUILD b/staging/src/k8s.io/client-go/informers/batch/v1/BUILD index 63ee55a14c1..ee22bd57ed1 100644 --- a/staging/src/k8s.io/client-go/informers/batch/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/batch/v1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "job.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD b/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD index 57c8a5bf5de..c9b9b0612a9 100644 --- a/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "cronjob.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/certificates/BUILD b/staging/src/k8s.io/client-go/informers/certificates/BUILD index 0942b60098a..bdf3626f070 100644 --- a/staging/src/k8s.io/client-go/informers/certificates/BUILD +++ b/staging/src/k8s.io/client-go/informers/certificates/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/certificates/v1beta1:go_default_library", "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD index b437158d7e1..4036c3ffb19 100644 --- a/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "certificatesigningrequest.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/core/BUILD b/staging/src/k8s.io/client-go/informers/core/BUILD index 6d28684cb01..547d5ccf6a7 100644 --- a/staging/src/k8s.io/client-go/informers/core/BUILD +++ b/staging/src/k8s.io/client-go/informers/core/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/core/v1:go_default_library", "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/core/v1/BUILD b/staging/src/k8s.io/client-go/informers/core/v1/BUILD index e920eb86864..78cfba76885 100644 --- a/staging/src/k8s.io/client-go/informers/core/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/core/v1/BUILD @@ -28,7 +28,6 @@ go_library( "service.go", "serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/extensions/BUILD b/staging/src/k8s.io/client-go/informers/extensions/BUILD index d6787769193..7599a9594a1 100644 --- a/staging/src/k8s.io/client-go/informers/extensions/BUILD +++ b/staging/src/k8s.io/client-go/informers/extensions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/extensions/v1beta1:go_default_library", "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD index 8d2cd9a605a..a756010c192 100644 --- a/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "replicaset.go", "thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD b/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD index 701bea76011..3d8ee0c229f 100644 --- a/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD +++ b/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/kubernetes:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/networking/BUILD b/staging/src/k8s.io/client-go/informers/networking/BUILD index d5575b74246..40cb590baa6 100644 --- a/staging/src/k8s.io/client-go/informers/networking/BUILD +++ b/staging/src/k8s.io/client-go/informers/networking/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/networking/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/networking/v1/BUILD b/staging/src/k8s.io/client-go/informers/networking/v1/BUILD index d506008003d..33c125bb0f3 100644 --- a/staging/src/k8s.io/client-go/informers/networking/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/networking/v1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/policy/BUILD b/staging/src/k8s.io/client-go/informers/policy/BUILD index f3260390635..4eb5f761a97 100644 --- a/staging/src/k8s.io/client-go/informers/policy/BUILD +++ b/staging/src/k8s.io/client-go/informers/policy/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/policy/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD index 389d6de73c8..afc9a3d85d5 100644 --- a/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "poddisruptionbudget.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/BUILD b/staging/src/k8s.io/client-go/informers/rbac/BUILD index 637dd1530eb..bbb3d92175c 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/rbac/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD b/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD index c29b5df29ae..b0dd5455411 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD index b833fa12a28..30bf5aaa73f 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD index 03db95a8cf3..0a359cca024 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/scheduling/BUILD b/staging/src/k8s.io/client-go/informers/scheduling/BUILD index 4052e1b91b4..47b3b9bd78e 100644 --- a/staging/src/k8s.io/client-go/informers/scheduling/BUILD +++ b/staging/src/k8s.io/client-go/informers/scheduling/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/scheduling/v1alpha1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD index 6f456567d5c..108ba930157 100644 --- a/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "priorityclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/settings/BUILD b/staging/src/k8s.io/client-go/informers/settings/BUILD index 180901d81bb..d351bb40c97 100644 --- a/staging/src/k8s.io/client-go/informers/settings/BUILD +++ b/staging/src/k8s.io/client-go/informers/settings/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/settings/v1alpha1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD index 1f0e9d1fb23..0aebd4c0ad6 100644 --- a/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "podpreset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/storage/BUILD b/staging/src/k8s.io/client-go/informers/storage/BUILD index 5f1d30046ae..16561ce1eaf 100644 --- a/staging/src/k8s.io/client-go/informers/storage/BUILD +++ b/staging/src/k8s.io/client-go/informers/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/informers/internalinterfaces:go_default_library", "//vendor/k8s.io/client-go/informers/storage/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/storage/v1/BUILD b/staging/src/k8s.io/client-go/informers/storage/v1/BUILD index 4c420af01de..f2131a3440f 100644 --- a/staging/src/k8s.io/client-go/informers/storage/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/storage/v1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD index 9d7080f5ca6..f1458ed3ca8 100644 --- a/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/BUILD b/staging/src/k8s.io/client-go/kubernetes/BUILD index 699b56d0684..19359457d43 100644 --- a/staging/src/k8s.io/client-go/kubernetes/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "import.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/fake/BUILD index 0ee6c907697..50ead88d702 100644 --- a/staging/src/k8s.io/client-go/kubernetes/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD b/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD index 6d873397224..b33118a55df 100644 --- a/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/api/apps/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD index 712e70c41f0..484d3fcf0b5 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "generated_expansion.go", "initializerconfiguration.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD index 6e1ed324a8a..7e8dab72928 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_externaladmissionhookconfiguration.go", "fake_initializerconfiguration.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD index 2b1e7e46519..a8e3a28904d 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "scale.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD index a0d3cad0198..3f6f5de2276 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD @@ -17,7 +17,6 @@ go_library( "fake_scale.go", "fake_statefulset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD index aace0faeae5..9f6441b51af 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD @@ -19,7 +19,6 @@ go_library( "scale.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD index f22a2f27a0a..35e7dfd417b 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD @@ -18,7 +18,6 @@ go_library( "fake_scale.go", "fake_statefulset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD index 99bfe3c7692..9667c002b6d 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD @@ -16,7 +16,6 @@ go_library( "tokenreview.go", "tokenreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD index 299d3aee222..ee33733b49c 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_tokenreview.go", "fake_tokenreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD index 2b753feace0..d5c257958b1 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD @@ -16,7 +16,6 @@ go_library( "tokenreview.go", "tokenreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD index 6240cb9f9e0..027f6252a2a 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_tokenreview.go", "fake_tokenreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authentication/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD index 64502d2630c..7eccfee233f 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD @@ -20,7 +20,6 @@ go_library( "subjectaccessreview.go", "subjectaccessreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authorization/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD index da1b140433d..66b1d9a8568 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD @@ -19,7 +19,6 @@ go_library( "fake_subjectaccessreview.go", "fake_subjectaccessreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authorization/v1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD index 48bec8f763d..fcd2cb60d71 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD @@ -20,7 +20,6 @@ go_library( "subjectaccessreview.go", "subjectaccessreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD index 0d3641921cf..ebdf8b7a119 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD @@ -20,7 +20,6 @@ go_library( "fake_subjectaccessreview.go", "fake_subjectaccessreview_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", "//vendor/k8s.io/client-go/kubernetes/typed/authorization/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD index dcf4433396c..cd49c8ed28a 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD @@ -15,7 +15,6 @@ go_library( "generated_expansion.go", "horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD index 657bdb6f062..7ad7bf4a68b 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_autoscaling_client.go", "fake_horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD index 6a71e53fbe1..3dc2d67debf 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD @@ -15,7 +15,6 @@ go_library( "generated_expansion.go", "horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD index 8391b55fce3..4a7c06d2b29 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_autoscaling_client.go", "fake_horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD index 50f36e324ed..bcbc3a5bf04 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD @@ -15,7 +15,6 @@ go_library( "generated_expansion.go", "job.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD index b51d6824766..b714456a4f9 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_batch_client.go", "fake_job.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD index 726f06f09f0..b7ffcc17b57 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD index b5eb0ce09df..b91aca84103 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_batch_client.go", "fake_cronjob.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD index e2a32bfe6d6..cf5ae89e783 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD @@ -16,7 +16,6 @@ go_library( "doc.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD index 0fbc9f1d81e..a6baa84e6b9 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_certificatesigningrequest.go", "fake_certificatesigningrequest_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD index d374833a552..284f2e3e7f5 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD @@ -35,7 +35,6 @@ go_library( "service_expansion.go", "serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD index f4519891f26..da71a8e7094 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD @@ -34,7 +34,6 @@ go_library( "fake_service_expansion.go", "fake_serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD index 97b18bf6f5d..4403310e555 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD @@ -23,7 +23,6 @@ go_library( "scale_expansion.go", "thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD index b75917a3c40..4154911da38 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD @@ -22,7 +22,6 @@ go_library( "fake_scale_expansion.go", "fake_thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD index e9e962b234c..70c28183304 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD @@ -15,7 +15,6 @@ go_library( "networking_client.go", "networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD index e206b748202..a4f14774f45 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_networking_client.go", "fake_networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD index 37ffeb110da..07fe7dd9766 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD @@ -17,7 +17,6 @@ go_library( "poddisruptionbudget.go", "policy_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD index 22cd9c86916..8d6aae0258b 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD @@ -16,7 +16,6 @@ go_library( "fake_poddisruptionbudget.go", "fake_policy_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD index e5d02ec8adc..14b33c83d80 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD @@ -18,7 +18,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD index 2cdb8322d83..cc97eace6af 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD @@ -17,7 +17,6 @@ go_library( "fake_role.go", "fake_rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD index 48b1ee1f6a4..276ab3c54f1 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD index 4c1cb329f5e..8b6093ce936 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD @@ -17,7 +17,6 @@ go_library( "fake_role.go", "fake_rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD index d47d4022401..4da3de4e7c8 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD @@ -18,7 +18,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD index 77f842fbbd7..1c0c366def0 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD @@ -17,7 +17,6 @@ go_library( "fake_role.go", "fake_rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD index 1460afa609c..89e00f58cd0 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( "priorityclass.go", "scheduling_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD index ebe1632848f..9a6d9cd1a0c 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_priorityclass.go", "fake_scheduling_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD index d38d4d2966e..59c8500b635 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD @@ -15,7 +15,6 @@ go_library( "podpreset.go", "settings_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD index 0a379fd4668..e1f009f64f9 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_podpreset.go", "fake_settings_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD index 3a13f4e0d56..1bb1f1612fd 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD @@ -15,7 +15,6 @@ go_library( "storage_client.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD index 980b0789c97..5f0ea3d9d82 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_storage_client.go", "fake_storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD index 35611336aed..f1b46730815 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "storage_client.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD index 5d7683827cc..e83affd5aaa 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_storage_client.go", "fake_storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD index d1798368ba6..f75afadc9e8 100644 --- a/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD @@ -14,7 +14,6 @@ go_library( "externaladmissionhookconfiguration.go", "initializerconfiguration.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/admissionregistration/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD index 724d4473cb3..73b9c7a66e9 100644 --- a/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD @@ -17,7 +17,6 @@ go_library( "statefulset.go", "statefulset_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD b/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD index 918433303be..b036bd9f92e 100644 --- a/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD @@ -17,7 +17,6 @@ go_library( "scale.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta2:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD b/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD index 39abc7dc9f3..7dae81db270 100644 --- a/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "tokenreview.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD index 546f5c1ded5..f437d40d6cd 100644 --- a/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "tokenreview.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authentication/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD b/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD index c98163e89cf..330243c6c78 100644 --- a/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD @@ -15,7 +15,6 @@ go_library( "selfsubjectaccessreview.go", "subjectaccessreview.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authorization/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD index c333188f935..56585800ff1 100644 --- a/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "selfsubjectaccessreview.go", "subjectaccessreview.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/authorization/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD b/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD index 869d3817a01..6acf38191a8 100644 --- a/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD index 72250b413aa..ff5cb2c4f7a 100644 --- a/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "horizontalpodautoscaler.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/autoscaling/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/batch/v1/BUILD b/staging/src/k8s.io/client-go/listers/batch/v1/BUILD index 16b4524a4c2..3ceca8f836b 100644 --- a/staging/src/k8s.io/client-go/listers/batch/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/batch/v1/BUILD @@ -14,7 +14,6 @@ go_library( "job.go", "job_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD b/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD index 98488e85ad8..ee50883ed78 100644 --- a/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "cronjob.go", "expansion_generated.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/batch/v2alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD index 09c7548b579..213e1ba2e67 100644 --- a/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "certificatesigningrequest.go", "expansion_generated.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/certificates/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/core/v1/BUILD b/staging/src/k8s.io/client-go/listers/core/v1/BUILD index 0563a81f9c3..2c7df9b3077 100644 --- a/staging/src/k8s.io/client-go/listers/core/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/core/v1/BUILD @@ -31,7 +31,6 @@ go_library( "service_expansion.go", "serviceaccount.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD index be474995673..33c2f67132d 100644 --- a/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD @@ -23,7 +23,6 @@ go_library( "scale.go", "thirdpartyresource.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/apps/v1beta1:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -39,7 +38,6 @@ go_test( name = "go_default_test", srcs = ["daemonset_expansion_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/api/extensions/v1beta1:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD index c1e68939693..59aa9db8c6c 100644 --- a/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "imagereview.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/imagepolicy/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/networking/v1/BUILD b/staging/src/k8s.io/client-go/listers/networking/v1/BUILD index b1dbfa2a7d8..fd729ca81c6 100644 --- a/staging/src/k8s.io/client-go/listers/networking/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/networking/v1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "networkpolicy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD index 82eb2787008..a760048c09a 100644 --- a/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "poddisruptionbudget.go", "poddisruptionbudget_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD b/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD index a5613b08204..b8598b5cdc3 100644 --- a/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD index 0934d827733..3eba85fc348 100644 --- a/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD index 47f5b0b3d31..0b6b78b283f 100644 --- a/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD @@ -16,7 +16,6 @@ go_library( "role.go", "rolebinding.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD index 89c8472aaf3..7e5f5c5651b 100644 --- a/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "priorityclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD index 6f90ea1900d..8610edc836f 100644 --- a/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "podpreset.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/storage/v1/BUILD b/staging/src/k8s.io/client-go/listers/storage/v1/BUILD index 9c0063288a7..f01dc853f82 100644 --- a/staging/src/k8s.io/client-go/listers/storage/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/storage/v1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD index 8339735a9b0..9b7633c40ab 100644 --- a/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "storageclass.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/pkg/version/BUILD b/staging/src/k8s.io/client-go/pkg/version/BUILD index e54fcdc2ec9..0e4d5efc45e 100644 --- a/staging/src/k8s.io/client-go/pkg/version/BUILD +++ b/staging/src/k8s.io/client-go/pkg/version/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "version.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/version:go_default_library"], ) diff --git a/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD index 67cf5c04084..ef5377b9af4 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["provider.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/go-oidc/jose:go_default_library", "//vendor/github.com/coreos/go-oidc/key:go_default_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD index 4ced574ba93..31b06a43c38 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["plugins.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/client-go/plugin/pkg/client/auth/azure:go_default_library", "//vendor/k8s.io/client-go/plugin/pkg/client/auth/gcp:go_default_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD index ab4630e5a19..799d2459696 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["azure_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library"], ) go_library( name = "go_default_library", srcs = ["azure.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD index 9939f6cfcec..1ef72ca33a2 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["gcp_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/golang.org/x/oauth2:go_default_library"], ) go_library( name = "go_default_library", srcs = ["gcp.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD index 924a6842cf1..9e5a76f43ce 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["oidc_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["oidc.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/oauth2:go_default_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD index b7802cc6eb4..34ff3047636 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["openstack_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["openstack.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack:go_default_library", diff --git a/staging/src/k8s.io/client-go/rest/BUILD b/staging/src/k8s.io/client-go/rest/BUILD index d0047406c0b..b7ac2a475f5 100644 --- a/staging/src/k8s.io/client-go/rest/BUILD +++ b/staging/src/k8s.io/client-go/rest/BUILD @@ -19,7 +19,6 @@ go_test( "urlbackoff_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", @@ -59,7 +58,6 @@ go_library( "versions.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/rest/fake/BUILD b/staging/src/k8s.io/client-go/rest/fake/BUILD index 0304f04b9ce..829080456b6 100644 --- a/staging/src/k8s.io/client-go/rest/fake/BUILD +++ b/staging/src/k8s.io/client-go/rest/fake/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/client-go/rest/watch/BUILD b/staging/src/k8s.io/client-go/rest/watch/BUILD index cd3937362d3..9afdab8ba2b 100644 --- a/staging/src/k8s.io/client-go/rest/watch/BUILD +++ b/staging/src/k8s.io/client-go/rest/watch/BUILD @@ -14,7 +14,6 @@ go_library( "decoder.go", "encoder.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", @@ -29,7 +28,6 @@ go_test( "decoder_test.go", "encoder_test.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/equality:go_default_library", diff --git a/staging/src/k8s.io/client-go/testing/BUILD b/staging/src/k8s.io/client-go/testing/BUILD index b7f5df644fb..5b58606db5c 100644 --- a/staging/src/k8s.io/client-go/testing/BUILD +++ b/staging/src/k8s.io/client-go/testing/BUILD @@ -14,7 +14,6 @@ go_library( "fake.go", "fixture.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD b/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD index 1c022b63430..9ad3abc8b5f 100644 --- a/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD +++ b/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD @@ -13,7 +13,6 @@ go_library( "exec.go", "funcs.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/client-go/tools/auth/BUILD b/staging/src/k8s.io/client-go/tools/auth/BUILD index 79673a00e2e..785a2e57189 100644 --- a/staging/src/k8s.io/client-go/tools/auth/BUILD +++ b/staging/src/k8s.io/client-go/tools/auth/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["clientauth.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/rest:go_default_library"], ) go_test( name = "go_default_xtest", srcs = ["clientauth_test.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/tools/auth:go_default_library"], ) diff --git a/staging/src/k8s.io/client-go/tools/cache/BUILD b/staging/src/k8s.io/client-go/tools/cache/BUILD index 75d4ff07b4f..5ecf882c618 100644 --- a/staging/src/k8s.io/client-go/tools/cache/BUILD +++ b/staging/src/k8s.io/client-go/tools/cache/BUILD @@ -25,7 +25,6 @@ go_test( "undelta_store_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/google/gofuzz:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -64,7 +63,6 @@ go_library( "thread_safe_store.go", "undelta_store.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/cache/testing/BUILD b/staging/src/k8s.io/client-go/tools/cache/testing/BUILD index 0129c9620bf..ed12963dcbf 100644 --- a/staging/src/k8s.io/client-go/tools/cache/testing/BUILD +++ b/staging/src/k8s.io/client-go/tools/cache/testing/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["fake_controller_source_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -23,7 +22,6 @@ go_test( go_library( name = "go_default_library", srcs = ["fake_controller_source.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/BUILD index 4965aed03ec..d5c015127d0 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/BUILD @@ -17,7 +17,6 @@ go_test( "validation_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/github.com/imdario/mergo:go_default_library", @@ -42,7 +41,6 @@ go_library( "overrides.go", "validation.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/howeyc/gopass:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD index a686970765d..bac4eeb6500 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD @@ -15,7 +15,6 @@ go_test( "types_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/github.com/ghodss/yaml:go_default_library"], ) @@ -28,7 +27,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD index 9cf03565347..0de286c87a6 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["latest.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD index c41006cccba..c47b1cafa16 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/leaderelection/BUILD b/staging/src/k8s.io/client-go/tools/leaderelection/BUILD index a2589cc13c1..10460e6ced2 100644 --- a/staging/src/k8s.io/client-go/tools/leaderelection/BUILD +++ b/staging/src/k8s.io/client-go/tools/leaderelection/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["leaderelection.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -26,7 +25,6 @@ go_test( name = "go_default_test", srcs = ["leaderelection_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD b/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD index 942577aabdb..3db307fd862 100644 --- a/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD +++ b/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD @@ -14,7 +14,6 @@ go_library( "endpointslock.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/metrics/BUILD b/staging/src/k8s.io/client-go/tools/metrics/BUILD index b4549da6b46..4624248ca78 100644 --- a/staging/src/k8s.io/client-go/tools/metrics/BUILD +++ b/staging/src/k8s.io/client-go/tools/metrics/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metrics.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/client-go/tools/portforward/BUILD b/staging/src/k8s.io/client-go/tools/portforward/BUILD index 460f3e8e25e..d0baf9272d9 100644 --- a/staging/src/k8s.io/client-go/tools/portforward/BUILD +++ b/staging/src/k8s.io/client-go/tools/portforward/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["portforward_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library"], ) @@ -22,7 +21,6 @@ go_library( "doc.go", "portforward.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/record/BUILD b/staging/src/k8s.io/client-go/tools/record/BUILD index 0414b1b0a53..f7f6e3088d1 100644 --- a/staging/src/k8s.io/client-go/tools/record/BUILD +++ b/staging/src/k8s.io/client-go/tools/record/BUILD @@ -15,7 +15,6 @@ go_test( "events_cache_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", @@ -38,7 +37,6 @@ go_library( "events_cache.go", "fake.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/golang/groupcache/lru:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/reference/BUILD b/staging/src/k8s.io/client-go/tools/reference/BUILD index 8e8b3c0ff45..6da99e71dc6 100644 --- a/staging/src/k8s.io/client-go/tools/reference/BUILD +++ b/staging/src/k8s.io/client-go/tools/reference/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["ref.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", diff --git a/staging/src/k8s.io/client-go/tools/remotecommand/BUILD b/staging/src/k8s.io/client-go/tools/remotecommand/BUILD index a196f79bb6b..deac59c72d5 100644 --- a/staging/src/k8s.io/client-go/tools/remotecommand/BUILD +++ b/staging/src/k8s.io/client-go/tools/remotecommand/BUILD @@ -15,7 +15,6 @@ go_test( "v4_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", @@ -35,7 +34,6 @@ go_library( "v3.go", "v4.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", diff --git a/staging/src/k8s.io/client-go/transport/BUILD b/staging/src/k8s.io/client-go/transport/BUILD index 1a54f4835e9..5fc06b74532 100644 --- a/staging/src/k8s.io/client-go/transport/BUILD +++ b/staging/src/k8s.io/client-go/transport/BUILD @@ -16,7 +16,6 @@ go_test( "transport_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -27,7 +26,6 @@ go_library( "round_trippers.go", "transport.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library", diff --git a/staging/src/k8s.io/client-go/transport/spdy/BUILD b/staging/src/k8s.io/client-go/transport/spdy/BUILD index 425d1234301..c474f3ef787 100644 --- a/staging/src/k8s.io/client-go/transport/spdy/BUILD +++ b/staging/src/k8s.io/client-go/transport/spdy/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["spdy.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/httpstream:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/httpstream/spdy:go_default_library", diff --git a/staging/src/k8s.io/client-go/util/cert/BUILD b/staging/src/k8s.io/client-go/util/cert/BUILD index 36855a3db8d..a758beb11c1 100644 --- a/staging/src/k8s.io/client-go/util/cert/BUILD +++ b/staging/src/k8s.io/client-go/util/cert/BUILD @@ -16,7 +16,6 @@ go_test( ], data = glob(["testdata/**"]), library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -30,7 +29,6 @@ go_library( data = [ "testdata/dontUseThisKey.pem", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/client-go/util/cert/triple/BUILD b/staging/src/k8s.io/client-go/util/cert/triple/BUILD index 84bf438a0f1..f27694c416c 100644 --- a/staging/src/k8s.io/client-go/util/cert/triple/BUILD +++ b/staging/src/k8s.io/client-go/util/cert/triple/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["triple.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/util/cert:go_default_library"], ) diff --git a/staging/src/k8s.io/client-go/util/exec/BUILD b/staging/src/k8s.io/client-go/util/exec/BUILD index 8189e6e24c7..52c56ae0482 100644 --- a/staging/src/k8s.io/client-go/util/exec/BUILD +++ b/staging/src/k8s.io/client-go/util/exec/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["exec.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/client-go/util/flowcontrol/BUILD b/staging/src/k8s.io/client-go/util/flowcontrol/BUILD index a8a70a2d141..8dbafa8d892 100644 --- a/staging/src/k8s.io/client-go/util/flowcontrol/BUILD +++ b/staging/src/k8s.io/client-go/util/flowcontrol/BUILD @@ -15,7 +15,6 @@ go_test( "throttle_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library"], ) @@ -25,7 +24,6 @@ go_library( "backoff.go", "throttle.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/juju/ratelimit:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", diff --git a/staging/src/k8s.io/client-go/util/homedir/BUILD b/staging/src/k8s.io/client-go/util/homedir/BUILD index 3454c2c0a88..ca47477de9a 100644 --- a/staging/src/k8s.io/client-go/util/homedir/BUILD +++ b/staging/src/k8s.io/client-go/util/homedir/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["homedir.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/client-go/util/integer/BUILD b/staging/src/k8s.io/client-go/util/integer/BUILD index f2e6c8b0833..2a53788e1cb 100644 --- a/staging/src/k8s.io/client-go/util/integer/BUILD +++ b/staging/src/k8s.io/client-go/util/integer/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["integer_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["integer.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/client-go/util/jsonpath/BUILD b/staging/src/k8s.io/client-go/util/jsonpath/BUILD index 633523807c5..2be1601487f 100644 --- a/staging/src/k8s.io/client-go/util/jsonpath/BUILD +++ b/staging/src/k8s.io/client-go/util/jsonpath/BUILD @@ -15,7 +15,6 @@ go_test( "parser_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -26,7 +25,6 @@ go_library( "node.go", "parser.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/third_party/forked/golang/template:go_default_library"], ) diff --git a/staging/src/k8s.io/client-go/util/testing/BUILD b/staging/src/k8s.io/client-go/util/testing/BUILD index 1a95cd8487a..c6f4b29d6e8 100644 --- a/staging/src/k8s.io/client-go/util/testing/BUILD +++ b/staging/src/k8s.io/client-go/util/testing/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["fake_handler_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "fake_handler.go", "tmpdir.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/client-go/util/workqueue/BUILD b/staging/src/k8s.io/client-go/util/workqueue/BUILD index d5d89f630d3..05d16c723eb 100644 --- a/staging/src/k8s.io/client-go/util/workqueue/BUILD +++ b/staging/src/k8s.io/client-go/util/workqueue/BUILD @@ -16,7 +16,6 @@ go_test( "rate_limitting_queue_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", @@ -34,7 +33,6 @@ go_library( "queue.go", "rate_limitting_queue.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/juju/ratelimit:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library", @@ -45,7 +43,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["queue_test.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/client-go/util/workqueue:go_default_library"], ) diff --git a/staging/src/k8s.io/kube-aggregator/BUILD b/staging/src/k8s.io/kube-aggregator/BUILD index 87f28ebb794..99287b0f27f 100644 --- a/staging/src/k8s.io/kube-aggregator/BUILD +++ b/staging/src/k8s.io/kube-aggregator/BUILD @@ -18,14 +18,12 @@ go_binary( "-static", ], library = ":go_default_library", - tags = ["automanaged"], x_defs = version_x_defs(), ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD index b94bca58172..7035f02aeea 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD index f7da6e3ada1..bd54e48fabc 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD index 4aa4698d0e0..7d7be51af48 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD @@ -17,7 +17,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD index f4a7baf186b..dc7143e970f 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/validation:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/validation/path:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD index d7c12a1bad5..3faf1a46c81 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD @@ -16,7 +16,6 @@ go_test( "openapi_aggregator_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/golang.org/x/net/websocket:go_default_library", @@ -43,7 +42,6 @@ go_library( "openapi_aggregator.go", "resolvers.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD index 60143c34ded..be50a6f0f03 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD index 1095a20e063..1a73bff019a 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD index 951a44ef551..c2373401148 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD index 78e8cea0249..94829f8def2 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD index 33c18b6eee4..f16be9ef0b5 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_apiregistration_client.go", "fake_apiservice.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD index e5b609ba79c..c783280e26d 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD index 7d4462d99d1..f9750025141 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD index 9272069b5b0..9076da12093 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD index afa908fa7ae..7e51c337eb5 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "doc.go", "generated_expansion.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD index ec6619b76da..2d196a19b75 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_apiregistration_client.go", "fake_apiservice.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD index 0c02b3258f6..3d6b3fca4f3 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD index 719dcf5da96..f7c2ecd19f7 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1:go_default_library", "//vendor/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD index 022937dc1cf..b4f000bf965 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "apiservice.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD index 5e13b4028ab..64b3b6423e7 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD index bde9de54313..f459341c75d 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD index b715ea3a0cb..33da05cbb61 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion:go_default_library", "//vendor/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD index a21220b33b4..1796512a2e1 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "apiservice.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD index 19d87bcc2d9..80064de7b3d 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD index 2fd375da277..ef549599277 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "apiservice.go", "expansion_generated.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD index 84596451520..dc3fcf58f32 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD @@ -13,7 +13,6 @@ go_library( "apiservice.go", "expansion_generated.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD index bff6d123f80..379ea0a84ba 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["start.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD index f7f55cbb5cd..fdafe81edf5 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["cache.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD index 56892cb0bac..30db2aea47b 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD @@ -12,7 +12,6 @@ go_test( name = "go_default_test", srcs = ["autoregister_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/client-go/testing:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["autoregister_controller.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD index e52747963bd..9f7b8bb964e 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["available_controller.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/api/core/v1:go_default_library", @@ -39,7 +38,6 @@ go_test( name = "go_default_test", srcs = ["available_controller_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD index acaee576a23..9fc6e3ffffa 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["strategy.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD index e30b11913ca..562006df4ba 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["etcd.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apiserver/pkg/endpoints/request:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD index 3390317c787..1cfc11b483d 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "client-gen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD index 6df4aaea2b8..785e50e8b0c 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["args.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/kube-gen/cmd/client-gen/types:go_default_library"], ) diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD index 21916ba882e..2fe3a15d28f 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD @@ -17,7 +17,6 @@ go_library( "generator_for_type.go", "tags.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD index 756fedfb37e..4a6c58590b0 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD @@ -15,7 +15,6 @@ go_library( "generator_fake_for_group.go", "generator_fake_for_type.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/gengo/generator:go_default_library", "//vendor/k8s.io/gengo/namer:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD index 20b1c1f4dfd..13280160a39 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["generator_for_scheme.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/gengo/generator:go_default_library", "//vendor/k8s.io/gengo/namer:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD index 186fc7821a1..83fc9ca8be7 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD @@ -12,13 +12,11 @@ go_test( name = "go_default_test", srcs = ["tags_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["tags.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/gengo/types:go_default_library"], ) diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD index 1c967c9b846..d35e72aecc4 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["path.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD index 9fe181571b0..c02d754ccb2 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD @@ -14,7 +14,6 @@ go_library( "helpers.go", "types.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/gengo/namer:go_default_library"], ) @@ -22,7 +21,6 @@ go_test( name = "go_default_test", srcs = ["helpers_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD index edae1d03bbb..41ae89a3696 100644 --- a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "conversion-gen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD index 73f5df1e82a..e24a4b90438 100644 --- a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["conversion.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD index ca99b067aaf..863e8f242ad 100644 --- a/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "deepcopy-gen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD index 6dc63230948..5da6ef43490 100644 --- a/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "defaulter-gen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD index b3c08a326ee..a842690244e 100644 --- a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "go-to-protobuf", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD index 21c02680b97..807e839c021 100644 --- a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD @@ -19,7 +19,6 @@ go_library( "parser.go", "tags.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", @@ -36,7 +35,6 @@ go_test( name = "go_default_test", srcs = ["namer_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD index 76e877bf3a0..698ad311952 100644 --- a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "protoc-gen-gogo", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD b/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD index 064c5eea476..6fcf914f81d 100644 --- a/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "import-boss", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD index 4db1bc65d53..1725921bc49 100644 --- a/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "informer-gen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD index 8ea7010c548..c0fea048850 100644 --- a/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD @@ -21,7 +21,6 @@ go_library( "types.go", "versioninterface.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD index 874a202b0a4..f505ba82157 100644 --- a/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "lister-gen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/spf13/pflag:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD index 15703292438..b5f8aa42ac1 100644 --- a/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD @@ -14,7 +14,6 @@ go_library( "lister.go", "tags.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD index f602e426bac..5ea156f3eaa 100644 --- a/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "openapi-gen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD index 933e682f90a..ce522ca0b4f 100644 --- a/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD @@ -11,7 +11,6 @@ load( go_binary( name = "set-gen", library = ":go_default_library", - tags = ["automanaged"], ) exports_files([ @@ -21,7 +20,6 @@ exports_files([ go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD b/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD index 626ac278b4c..d1dcc509a03 100644 --- a/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD +++ b/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD b/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD index 44e18448621..942f6e9504c 100644 --- a/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD +++ b/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD index 6a1709b50f1..fa5b3fa2b23 100644 --- a/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD @@ -16,7 +16,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/ugorji/go/codec:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD index 53303cc5599..8e9a138a7ca 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD index 3f9989dadef..87dbfeff4eb 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD index 526ee1a39a0..f4e25f728d8 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD index e05f4bc5b93..045a2eb77a3 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD @@ -15,7 +15,6 @@ go_library( "testgroup_client.go", "testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD index 1903bc64c48..0ff7f26a01b 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_testgroup_client.go", "fake_testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD index 9c6d9df4321..0b846ed5b58 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD index 1ff47c06362..7aef9c7d49d 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD index b1036aab9ff..a0b5c20ee1b 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD index 824da505af4..6705b86e7bd 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD @@ -15,7 +15,6 @@ go_library( "testgroup_client.go", "testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD index 0e1e84577ac..6b09d3dc68b 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD @@ -14,7 +14,6 @@ go_library( "fake_testgroup_client.go", "fake_testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD index 1dba1bab3ac..f5a36510e88 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD index cd786bdf355..6d98d758d57 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD index 064117410d2..263cb67a82b 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces:go_default_library", "//vendor/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD index d83cc573b06..f015cd6eeff 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD index 0c469adb92b..87e20c8c692 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD index 8489f1fc40f..0ae844428f2 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD index d563c49bd58..979c4235c04 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces:go_default_library", "//vendor/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD index 4864dda1df8..7d860c0e5ca 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "interface.go", "testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD index 8095a3f4809..e5766c24c31 100644 --- a/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD index 288b96f4b40..ab5b14abe41 100644 --- a/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD @@ -13,7 +13,6 @@ go_library( "expansion_generated.go", "testtype.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD b/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD index c06823686bf..9a6b3d83e08 100644 --- a/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD +++ b/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["type.go"], - tags = ["automanaged"], ) filegroup( diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD index 680d4354d88..a1430551ce9 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD index bdbd61329c0..5799d4a3fda 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD index e595c4c6473..e06c9c7f23c 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/ugorji/go/codec:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD b/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD index c855cefe787..35562a79207 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD b/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD index c2ce2bb4700..dd42af7f901 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD index 63bd26f28e1..3824d2275b3 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD @@ -18,7 +18,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/sortkeys:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD index a3152d8324b..dde0b9c4cc1 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD index 2afc0e1f2c4..63940bbccd5 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD index fcc37e03fed..b38f0c539ba 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD index be2bab4e8c6..84f6db68a8c 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "nodemetrics.go", "podmetrics.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD index e9b57b33a6d..631f56fb3cc 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_nodemetrics.go", "fake_podmetrics.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD index 94cfdc38823..f46331cc769 100644 --- a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "interfaces.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD index cc143856f83..3803d0100ac 100644 --- a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake_client.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/BUILD b/staging/src/k8s.io/sample-apiserver/BUILD index 7db5e6c8c1b..174839769fa 100644 --- a/staging/src/k8s.io/sample-apiserver/BUILD +++ b/staging/src/k8s.io/sample-apiserver/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "sample-apiserver", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/logs:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD index c012a5905be..72065692053 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["admission.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", @@ -26,7 +25,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["admission_test.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD index 916652ca13a..75c587ad0fa 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD @@ -14,7 +14,6 @@ go_library( "interfaces.go", "wardleinitializer.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion:go_default_library", @@ -24,7 +23,6 @@ go_library( go_test( name = "go_default_xtest", srcs = ["wardleinitializer_test.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/admission:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/admission/wardleinitializer:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD index 33a73330401..2378224bf63 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD index 907a14cc58c..918a46467e9 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["roundtrip_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library"], ) go_library( name = "go_default_library", srcs = ["install.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD index 41f1058c29a..5318458a18d 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "zz_generated.conversion.go", "zz_generated.deepcopy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/conversion:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD index 1f06d83ce04..d9f9027e0bf 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD @@ -12,14 +12,12 @@ go_test( name = "go_default_test", srcs = ["scheme_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/api/testing/roundtrip:go_default_library"], ) go_library( name = "go_default_library", srcs = ["apiserver.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD index a3d0e1b7601..ab3b4bf2e7b 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD index 0d186675aff..25419e98e48 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD index 29bc92c6edb..da3982d8634 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD index 7564e91c652..c60e10a5bb2 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD @@ -16,7 +16,6 @@ go_library( "generated_expansion.go", "wardle_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD index 117d69815c0..837d2ed2b55 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_flunder.go", "fake_wardle_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD index 6530dd0f721..d464b867d78 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD @@ -13,7 +13,6 @@ go_library( "clientset.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/client-go/discovery:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD index 880642a2855..8c57e7d8934 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD index 8ae1472c9d3..53abad3d1f5 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "register.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apimachinery/announced:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apimachinery/registered:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD index 6a791c45b8f..4490c26e8ab 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD @@ -16,7 +16,6 @@ go_library( "generated_expansion.go", "wardle_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD index 5898e924c7c..408933d45bd 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD @@ -15,7 +15,6 @@ go_library( "fake_flunder.go", "fake_wardle_client.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD index e943cce340e..78dbf538b7b 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD index 6c453d74d3d..cd4aab8757f 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD index aa461baba38..638b9856ed2 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD index 55d077087c0..ce2a1801097 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD @@ -14,7 +14,6 @@ go_library( "flunder.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD index 8222d45657d..3d5edcad1cb 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "generic.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD index 9c87f05bb37..c3139390904 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory_interfaces.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", "//vendor/k8s.io/client-go/tools/cache:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD index 708b02566ca..663874702c7 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["interface.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces:go_default_library", "//vendor/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD index 0e5ad9311c8..5199eae7013 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( "flunder.go", "interface.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD index 9d4b75999cf..9aa8ccce010 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD @@ -14,7 +14,6 @@ go_library( "fischer.go", "flunder.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD index c5e2c3a38cd..3158afaf92e 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD @@ -14,7 +14,6 @@ go_library( "fischer.go", "flunder.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD index 4aa1847420d..a401bbe92ff 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["start.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/cobra:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD index c18259b6cb2..e9f3dee4e29 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["registry.go"], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library", "//vendor/k8s.io/apiserver/pkg/registry/rest:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD index 1cf6f967ee7..6082960e7ec 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD @@ -13,7 +13,6 @@ go_library( "etcd.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD index 1cf6f967ee7..6082960e7ec 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD @@ -13,7 +13,6 @@ go_library( "etcd.go", "strategy.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/fields:go_default_library", "//vendor/k8s.io/apimachinery/pkg/labels:go_default_library", diff --git a/test/e2e/BUILD b/test/e2e/BUILD index f54746f0866..1e05723fe6b 100644 --- a/test/e2e/BUILD +++ b/test/e2e/BUILD @@ -15,7 +15,6 @@ go_test( "taints_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//test/e2e/apimachinery:go_default_library", "//test/e2e/apps:go_default_library", @@ -68,7 +67,6 @@ go_library( "ssh.go", "ubernetes_lite.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/e2e/apimachinery/BUILD b/test/e2e/apimachinery/BUILD index 25ff08bc636..78244990846 100644 --- a/test/e2e/apimachinery/BUILD +++ b/test/e2e/apimachinery/BUILD @@ -18,7 +18,6 @@ go_library( "namespace.go", "table_conversion.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", diff --git a/test/e2e/apps/BUILD b/test/e2e/apps/BUILD index 8cef02c5d80..3e524025f89 100644 --- a/test/e2e/apps/BUILD +++ b/test/e2e/apps/BUILD @@ -22,7 +22,6 @@ go_library( "statefulset.go", "types.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", diff --git a/test/e2e/autoscaling/BUILD b/test/e2e/autoscaling/BUILD index ce21fb6b6a0..cdcf1527a1c 100644 --- a/test/e2e/autoscaling/BUILD +++ b/test/e2e/autoscaling/BUILD @@ -17,7 +17,6 @@ go_library( "framework.go", "horizontal_pod_autoscaling.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//test/e2e/common:go_default_library", diff --git a/test/e2e/chaosmonkey/BUILD b/test/e2e/chaosmonkey/BUILD index be300605836..3891c65aed7 100644 --- a/test/e2e/chaosmonkey/BUILD +++ b/test/e2e/chaosmonkey/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["chaosmonkey.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/ginkgo:go_default_library"], ) @@ -19,7 +18,6 @@ go_test( name = "go_default_test", srcs = ["chaosmonkey_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/test/e2e/common/BUILD b/test/e2e/common/BUILD index 296eb8f140a..70c26bace85 100644 --- a/test/e2e/common/BUILD +++ b/test/e2e/common/BUILD @@ -32,7 +32,6 @@ go_library( "util.go", "volumes.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 77bfdb534fb..5d0f90c0d37 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -40,7 +40,6 @@ go_library( "util.go", "volume_util.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//pkg/api:go_default_library", diff --git a/test/e2e/framework/ginkgowrapper/BUILD b/test/e2e/framework/ginkgowrapper/BUILD index 4ea78ad010f..be7c2447492 100644 --- a/test/e2e/framework/ginkgowrapper/BUILD +++ b/test/e2e/framework/ginkgowrapper/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["wrapper.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/ginkgo:go_default_library"], ) diff --git a/test/e2e/framework/metrics/BUILD b/test/e2e/framework/metrics/BUILD index 734f38c3ade..92e976c30dc 100644 --- a/test/e2e/framework/metrics/BUILD +++ b/test/e2e/framework/metrics/BUILD @@ -18,7 +18,6 @@ go_library( "metrics_grabber.go", "scheduler_metrics.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/master/ports:go_default_library", diff --git a/test/e2e/instrumentation/BUILD b/test/e2e/instrumentation/BUILD index 456da8b01a3..c76e52d0b83 100644 --- a/test/e2e/instrumentation/BUILD +++ b/test/e2e/instrumentation/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["imports.go"], - tags = ["automanaged"], deps = [ "//test/e2e/instrumentation/logging:go_default_library", "//test/e2e/instrumentation/monitoring:go_default_library", diff --git a/test/e2e/instrumentation/common/BUILD b/test/e2e/instrumentation/common/BUILD index 57be5ca8100..f681528d5ea 100644 --- a/test/e2e/instrumentation/common/BUILD +++ b/test/e2e/instrumentation/common/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["framework.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/ginkgo:go_default_library"], ) diff --git a/test/e2e/instrumentation/logging/BUILD b/test/e2e/instrumentation/logging/BUILD index a91c2350537..9dd284c7023 100644 --- a/test/e2e/instrumentation/logging/BUILD +++ b/test/e2e/instrumentation/logging/BUILD @@ -13,7 +13,6 @@ go_library( "generic_soak.go", "imports.go", ], - tags = ["automanaged"], deps = [ "//test/e2e/framework:go_default_library", "//test/e2e/instrumentation/common:go_default_library", diff --git a/test/e2e/instrumentation/logging/elasticsearch/BUILD b/test/e2e/instrumentation/logging/elasticsearch/BUILD index 29d194053d5..756be59b5a6 100644 --- a/test/e2e/instrumentation/logging/elasticsearch/BUILD +++ b/test/e2e/instrumentation/logging/elasticsearch/BUILD @@ -14,7 +14,6 @@ go_library( "kibana.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/test/e2e/instrumentation/logging/stackdrvier/BUILD b/test/e2e/instrumentation/logging/stackdrvier/BUILD index f8e149d084d..11f6db6aa3c 100644 --- a/test/e2e/instrumentation/logging/stackdrvier/BUILD +++ b/test/e2e/instrumentation/logging/stackdrvier/BUILD @@ -14,7 +14,6 @@ go_library( "soak.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//test/e2e/framework:go_default_library", "//test/e2e/instrumentation/common:go_default_library", diff --git a/test/e2e/instrumentation/logging/utils/BUILD b/test/e2e/instrumentation/logging/utils/BUILD index 957327136f0..fb2a5b11b44 100644 --- a/test/e2e/instrumentation/logging/utils/BUILD +++ b/test/e2e/instrumentation/logging/utils/BUILD @@ -17,7 +17,6 @@ go_library( "types.go", "wait.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/test/e2e/instrumentation/monitoring/BUILD b/test/e2e/instrumentation/monitoring/BUILD index 71666c75e24..50d748dd1d6 100644 --- a/test/e2e/instrumentation/monitoring/BUILD +++ b/test/e2e/instrumentation/monitoring/BUILD @@ -15,7 +15,6 @@ go_library( "metrics_grabber.go", "stackdriver.go", ], - tags = ["automanaged"], deps = [ "//test/e2e/common:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/test/e2e/kubectl/BUILD b/test/e2e/kubectl/BUILD index 6636907a542..882ad075a2e 100644 --- a/test/e2e/kubectl/BUILD +++ b/test/e2e/kubectl/BUILD @@ -14,7 +14,6 @@ go_library( "kubectl.go", "portforward.go", ], - tags = ["automanaged"], deps = [ "//pkg/apis/batch/v2alpha1:go_default_library", "//pkg/controller:go_default_library", diff --git a/test/e2e/lifecycle/BUILD b/test/e2e/lifecycle/BUILD index d39f01bc013..4da7e362bc2 100644 --- a/test/e2e/lifecycle/BUILD +++ b/test/e2e/lifecycle/BUILD @@ -18,7 +18,6 @@ go_library( "resize_nodes.go", "restart.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/kubelet/pod:go_default_library", diff --git a/test/e2e/lifecycle/bootstrap/BUILD b/test/e2e/lifecycle/bootstrap/BUILD index ca411e4a154..a4133f5870c 100644 --- a/test/e2e/lifecycle/bootstrap/BUILD +++ b/test/e2e/lifecycle/bootstrap/BUILD @@ -14,7 +14,6 @@ go_library( "bootstrap_token_cleaner.go", "util.go", ], - tags = ["automanaged"], deps = [ "//pkg/bootstrap/api:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/test/e2e/manifest/BUILD b/test/e2e/manifest/BUILD index 42091e3198d..3f12fce2b62 100644 --- a/test/e2e/manifest/BUILD +++ b/test/e2e/manifest/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["manifest.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//test/e2e/generated:go_default_library", diff --git a/test/e2e/network/BUILD b/test/e2e/network/BUILD index ad3e787ca06..47cb5ee90b7 100644 --- a/test/e2e/network/BUILD +++ b/test/e2e/network/BUILD @@ -28,7 +28,6 @@ go_library( "serviceloadbalancers.go", "util_iperf.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/e2e/node/BUILD b/test/e2e/node/BUILD index 12431fb8b82..67778a4a9eb 100644 --- a/test/e2e/node/BUILD +++ b/test/e2e/node/BUILD @@ -17,7 +17,6 @@ go_library( "nodeoutofdisk.go", "security_context.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/testapi:go_default_library", "//pkg/kubelet/apis/stats/v1alpha1:go_default_library", diff --git a/test/e2e/perftype/BUILD b/test/e2e/perftype/BUILD index b815d9296d3..d2a39fed195 100644 --- a/test/e2e/perftype/BUILD +++ b/test/e2e/perftype/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["perftype.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/e2e/scalability/BUILD b/test/e2e/scalability/BUILD index 36a85c3f238..73cf0dc26b9 100644 --- a/test/e2e/scalability/BUILD +++ b/test/e2e/scalability/BUILD @@ -15,7 +15,6 @@ go_library( "framework.go", "load.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/apis/batch:go_default_library", diff --git a/test/e2e/scheduling/BUILD b/test/e2e/scheduling/BUILD index a5e83f66d5d..33657dcf9c3 100644 --- a/test/e2e/scheduling/BUILD +++ b/test/e2e/scheduling/BUILD @@ -19,7 +19,6 @@ go_library( "priorities.go", "rescheduler.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/helper:go_default_library", diff --git a/test/e2e/storage/BUILD b/test/e2e/storage/BUILD index 05cb2b6ca5f..d94eb9c273d 100644 --- a/test/e2e/storage/BUILD +++ b/test/e2e/storage/BUILD @@ -31,7 +31,6 @@ go_library( "vsphere_volume_placement.go", "vsphere_volume_vsan_policy.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/testapi:go_default_library", "//pkg/api/v1/helper:go_default_library", diff --git a/test/e2e/upgrades/BUILD b/test/e2e/upgrades/BUILD index fafed1c0b1e..d97446f5fd1 100644 --- a/test/e2e/upgrades/BUILD +++ b/test/e2e/upgrades/BUILD @@ -22,7 +22,6 @@ go_library( "sysctl.go", "upgrade.go", ], - tags = ["automanaged"], deps = [ "//pkg/api/v1/helper:go_default_library", "//pkg/kubelet/sysctl:go_default_library", diff --git a/test/e2e/upgrades/apps/BUILD b/test/e2e/upgrades/apps/BUILD index 573308257cf..dac2d6ccfcd 100644 --- a/test/e2e/upgrades/apps/BUILD +++ b/test/e2e/upgrades/apps/BUILD @@ -15,7 +15,6 @@ go_library( "job.go", "statefulset.go", ], - tags = ["automanaged"], deps = [ "//pkg/controller:go_default_library", "//pkg/controller/deployment/util:go_default_library", diff --git a/test/e2e/upgrades/storage/BUILD b/test/e2e/upgrades/storage/BUILD index ac7b06f9423..4be7c3a482f 100644 --- a/test/e2e/upgrades/storage/BUILD +++ b/test/e2e/upgrades/storage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["persistent_volumes.go"], - tags = ["automanaged"], deps = [ "//test/e2e/framework:go_default_library", "//test/e2e/upgrades:go_default_library", diff --git a/test/e2e_federation/BUILD b/test/e2e_federation/BUILD index 181a626ba59..f2c9174d966 100644 --- a/test/e2e_federation/BUILD +++ b/test/e2e_federation/BUILD @@ -22,7 +22,6 @@ go_library( "upgrade.go", "util.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation:go_default_library", "//federation/apis/federation/v1beta1:go_default_library", diff --git a/test/e2e_federation/framework/BUILD b/test/e2e_federation/framework/BUILD index 82c6022ee42..005f1473e76 100644 --- a/test/e2e_federation/framework/BUILD +++ b/test/e2e_federation/framework/BUILD @@ -15,7 +15,6 @@ go_library( "framework.go", "util.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", diff --git a/test/e2e_federation/upgrades/BUILD b/test/e2e_federation/upgrades/BUILD index e187b3607a8..b849c5f7574 100644 --- a/test/e2e_federation/upgrades/BUILD +++ b/test/e2e_federation/upgrades/BUILD @@ -13,7 +13,6 @@ go_library( "simple.go", "upgrade.go", ], - tags = ["automanaged"], deps = [ "//federation/pkg/federatedtypes:go_default_library", "//federation/pkg/federatedtypes/crudtester:go_default_library", diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index 425066df278..a0c5b1e14a9 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -26,7 +26,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", @@ -112,10 +111,7 @@ go_test( "//conditions:default": [], }), library = ":go_default_library", - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/node:go_default_library", diff --git a/test/e2e_node/builder/BUILD b/test/e2e_node/builder/BUILD index cb1077d99fc..b3189de161e 100644 --- a/test/e2e_node/builder/BUILD +++ b/test/e2e_node/builder/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["build.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/test/e2e_node/environment/BUILD b/test/e2e_node/environment/BUILD index 9ed73635ab5..82162f02ceb 100644 --- a/test/e2e_node/environment/BUILD +++ b/test/e2e_node/environment/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "environment", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["conformance.go"], - tags = ["automanaged"], deps = ["//pkg/kubelet/cadvisor:go_default_library"], ) diff --git a/test/e2e_node/perftype/BUILD b/test/e2e_node/perftype/BUILD index b815d9296d3..d2a39fed195 100644 --- a/test/e2e_node/perftype/BUILD +++ b/test/e2e_node/perftype/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["perftype.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/e2e_node/remote/BUILD b/test/e2e_node/remote/BUILD index 8d58f7535d2..ead8f13aafa 100644 --- a/test/e2e_node/remote/BUILD +++ b/test/e2e_node/remote/BUILD @@ -17,7 +17,6 @@ go_library( "types.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//test/e2e_node/builder:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/test/e2e_node/runner/local/BUILD b/test/e2e_node/runner/local/BUILD index 54fe3d706bd..160fb81d298 100644 --- a/test/e2e_node/runner/local/BUILD +++ b/test/e2e_node/runner/local/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "local", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["run_local.go"], - tags = ["automanaged"], deps = [ "//test/e2e_node/builder:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/test/e2e_node/runner/remote/BUILD b/test/e2e_node/runner/remote/BUILD index ca17bbc86ef..f0ac12e36fe 100644 --- a/test/e2e_node/runner/remote/BUILD +++ b/test/e2e_node/runner/remote/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "remote", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["run_remote.go"], - tags = ["automanaged"], deps = [ "//test/e2e_node/remote:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", diff --git a/test/e2e_node/services/BUILD b/test/e2e_node/services/BUILD index 88c183e1570..d8a83b7f032 100644 --- a/test/e2e_node/services/BUILD +++ b/test/e2e_node/services/BUILD @@ -19,7 +19,6 @@ go_library( "services.go", "util.go", ], - tags = ["automanaged"], deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", diff --git a/test/e2e_node/system/BUILD b/test/e2e_node/system/BUILD index 57c0847ebeb..a7bfdaf731f 100644 --- a/test/e2e_node/system/BUILD +++ b/test/e2e_node/system/BUILD @@ -20,7 +20,6 @@ go_library( "types.go", "validators.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/docker/docker/api/types:go_default_library", @@ -41,7 +40,6 @@ go_test( "package_validator_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/api/types:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", diff --git a/test/images/clusterapi-tester/BUILD b/test/images/clusterapi-tester/BUILD index 98c5c2c528c..40d7404cc66 100644 --- a/test/images/clusterapi-tester/BUILD +++ b/test/images/clusterapi-tester/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "clusterapi-tester", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["clusterapi-tester.go"], - tags = ["automanaged"], deps = [ "//pkg/client/clientset_generated/internalclientset:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/test/images/entrypoint-tester/BUILD b/test/images/entrypoint-tester/BUILD index 3079185ade9..de2dadf54c4 100644 --- a/test/images/entrypoint-tester/BUILD +++ b/test/images/entrypoint-tester/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "entrypoint-tester", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["ep.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/fakegitserver/BUILD b/test/images/fakegitserver/BUILD index 4cfe6d76822..ae342326525 100644 --- a/test/images/fakegitserver/BUILD +++ b/test/images/fakegitserver/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "fakegitserver", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["gitserver.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/goproxy/BUILD b/test/images/goproxy/BUILD index 2f071e0f821..7e568a121a0 100644 --- a/test/images/goproxy/BUILD +++ b/test/images/goproxy/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "goproxy", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["goproxy.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/elazarl/goproxy:go_default_library"], ) diff --git a/test/images/liveness/BUILD b/test/images/liveness/BUILD index d15af903256..c5d990b2de1 100644 --- a/test/images/liveness/BUILD +++ b/test/images/liveness/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "liveness", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["server.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/logs-generator/BUILD b/test/images/logs-generator/BUILD index e01dd83e966..592d630a0c8 100644 --- a/test/images/logs-generator/BUILD +++ b/test/images/logs-generator/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "logs-generator", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["logs_generator.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/apimachinery/pkg/util/rand:go_default_library", diff --git a/test/images/mounttest/BUILD b/test/images/mounttest/BUILD index ace9146b8c1..a33b989cb99 100644 --- a/test/images/mounttest/BUILD +++ b/test/images/mounttest/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["mt.go"], - tags = ["automanaged"], ) filegroup( @@ -30,5 +29,4 @@ filegroup( go_binary( name = "mounttest", library = ":go_default_library", - tags = ["automanaged"], ) diff --git a/test/images/n-way-http/BUILD b/test/images/n-way-http/BUILD index 8aa21595e45..535d7471135 100644 --- a/test/images/n-way-http/BUILD +++ b/test/images/n-way-http/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "n-way-http", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["server.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/net/BUILD b/test/images/net/BUILD index 062738956ad..cd43dd62074 100644 --- a/test/images/net/BUILD +++ b/test/images/net/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "net", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//test/images/net/common:go_default_library", "//test/images/net/nat:go_default_library", diff --git a/test/images/net/common/BUILD b/test/images/net/common/BUILD index 49082322652..84408f189c6 100644 --- a/test/images/net/common/BUILD +++ b/test/images/net/common/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["common.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/net/nat/BUILD b/test/images/net/nat/BUILD index 7611a1ea143..81e5bf70ea1 100644 --- a/test/images/net/nat/BUILD +++ b/test/images/net/nat/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["closewait.go"], - tags = ["automanaged"], deps = ["//test/images/net/common:go_default_library"], ) diff --git a/test/images/netexec/BUILD b/test/images/netexec/BUILD index 563ffb3c0c0..6a7ac6df747 100644 --- a/test/images/netexec/BUILD +++ b/test/images/netexec/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "netexec", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["netexec.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/apimachinery/pkg/util/net:go_default_library"], ) diff --git a/test/images/nettest/BUILD b/test/images/nettest/BUILD index 516fae1aa51..dce109a3549 100644 --- a/test/images/nettest/BUILD +++ b/test/images/nettest/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["nettest.go"], - tags = ["automanaged"], deps = [ "//pkg/client/clientset_generated/internalclientset:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", @@ -36,5 +35,4 @@ filegroup( go_binary( name = "nettest", library = ":go_default_library", - tags = ["automanaged"], ) diff --git a/test/images/no-snat-test-proxy/BUILD b/test/images/no-snat-test-proxy/BUILD index 7092e009581..90d867685fe 100644 --- a/test/images/no-snat-test-proxy/BUILD +++ b/test/images/no-snat-test-proxy/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "no-snat-test-proxy", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", diff --git a/test/images/no-snat-test/BUILD b/test/images/no-snat-test/BUILD index a65e54587df..bd4cf1da3ef 100644 --- a/test/images/no-snat-test/BUILD +++ b/test/images/no-snat-test/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "no-snat-test", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/apiserver/pkg/util/flag:go_default_library", diff --git a/test/images/port-forward-tester/BUILD b/test/images/port-forward-tester/BUILD index e9e0aedc716..96f713da5f1 100644 --- a/test/images/port-forward-tester/BUILD +++ b/test/images/port-forward-tester/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "port-forward-tester", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["portforwardtester.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/porter/BUILD b/test/images/porter/BUILD index 94644ff53c9..9c13f46670b 100644 --- a/test/images/porter/BUILD +++ b/test/images/porter/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "porter", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["porter.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/resource-consumer/BUILD b/test/images/resource-consumer/BUILD index d368635cf32..d8a15dbfd2b 100644 --- a/test/images/resource-consumer/BUILD +++ b/test/images/resource-consumer/BUILD @@ -11,7 +11,6 @@ load( go_binary( name = "resource-consumer", library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "resource_consumer_handler.go", "utils.go", ], - tags = ["automanaged"], deps = ["//test/images/resource-consumer/common:go_default_library"], ) diff --git a/test/images/resource-consumer/common/BUILD b/test/images/resource-consumer/common/BUILD index 49082322652..84408f189c6 100644 --- a/test/images/resource-consumer/common/BUILD +++ b/test/images/resource-consumer/common/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["common.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/images/resource-consumer/consume-cpu/BUILD b/test/images/resource-consumer/consume-cpu/BUILD index f51e52545ca..73a54ea2464 100644 --- a/test/images/resource-consumer/consume-cpu/BUILD +++ b/test/images/resource-consumer/consume-cpu/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "consume-cpu", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["consume_cpu.go"], - tags = ["automanaged"], deps = ["//vendor/bitbucket.org/bertimus9/systemstat:go_default_library"], ) diff --git a/test/images/resource-consumer/controller/BUILD b/test/images/resource-consumer/controller/BUILD index a6d72fc4766..58409469a4f 100644 --- a/test/images/resource-consumer/controller/BUILD +++ b/test/images/resource-consumer/controller/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "controller", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["controller.go"], - tags = ["automanaged"], deps = ["//test/images/resource-consumer/common:go_default_library"], ) diff --git a/test/images/serve-hostname/BUILD b/test/images/serve-hostname/BUILD index 22ccb86d6c1..875f1aed007 100644 --- a/test/images/serve-hostname/BUILD +++ b/test/images/serve-hostname/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["serve_hostname.go"], - tags = ["automanaged"], ) filegroup( @@ -30,5 +29,4 @@ filegroup( go_binary( name = "serve-hostname", library = ":go_default_library", - tags = ["automanaged"], ) diff --git a/test/images/test-webserver/BUILD b/test/images/test-webserver/BUILD index a0f4bcac820..2a6ca82ac30 100644 --- a/test/images/test-webserver/BUILD +++ b/test/images/test-webserver/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "test-webserver", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["test-webserver.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/integration/BUILD b/test/integration/BUILD index 9b7c621937d..f28e3103910 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", diff --git a/test/integration/apiserver/BUILD b/test/integration/apiserver/BUILD index 68b8d6634a3..5e5416664ae 100644 --- a/test/integration/apiserver/BUILD +++ b/test/integration/apiserver/BUILD @@ -16,7 +16,6 @@ go_test( "patch_test.go", ], tags = [ - "automanaged", "etcd", "integration", ], diff --git a/test/integration/auth/BUILD b/test/integration/auth/BUILD index cd7291e93ff..098ae62b192 100644 --- a/test/integration/auth/BUILD +++ b/test/integration/auth/BUILD @@ -18,10 +18,7 @@ go_test( "node_test.go", "rbac_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/integration/client/BUILD b/test/integration/client/BUILD index ae1280c4d16..9a7813b6bae 100644 --- a/test/integration/client/BUILD +++ b/test/integration/client/BUILD @@ -15,10 +15,7 @@ go_test( "dynamic_client_test.go", "main_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/integration/configmap/BUILD b/test/integration/configmap/BUILD index 90caf148af4..1c5b016cd94 100644 --- a/test/integration/configmap/BUILD +++ b/test/integration/configmap/BUILD @@ -14,10 +14,7 @@ go_test( "configmap_test.go", "main_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api/testapi:go_default_library", "//test/integration:go_default_library", diff --git a/test/integration/defaulttolerationseconds/BUILD b/test/integration/defaulttolerationseconds/BUILD index b2a99aaaa09..b03b56a117d 100644 --- a/test/integration/defaulttolerationseconds/BUILD +++ b/test/integration/defaulttolerationseconds/BUILD @@ -15,7 +15,6 @@ go_test( "main_test.go", ], tags = [ - "automanaged", "etcd", "integration", ], diff --git a/test/integration/deployment/BUILD b/test/integration/deployment/BUILD index aff6bd8c092..a6ac6fbebb8 100644 --- a/test/integration/deployment/BUILD +++ b/test/integration/deployment/BUILD @@ -16,7 +16,6 @@ go_test( "main_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = [ "//pkg/controller/deployment/util:go_default_library", "//test/integration/framework:go_default_library", @@ -27,7 +26,6 @@ go_test( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/api/v1/pod:go_default_library", "//pkg/controller/deployment:go_default_library", diff --git a/test/integration/etcd/BUILD b/test/integration/etcd/BUILD index e44373bb2ac..de4d0782a87 100644 --- a/test/integration/etcd/BUILD +++ b/test/integration/etcd/BUILD @@ -15,7 +15,6 @@ go_test( "main_test.go", ], tags = [ - "automanaged", "etcd", "integration", ], diff --git a/test/integration/evictions/BUILD b/test/integration/evictions/BUILD index df5c65fafb2..3f62758dc38 100644 --- a/test/integration/evictions/BUILD +++ b/test/integration/evictions/BUILD @@ -14,10 +14,7 @@ go_test( "evictions_test.go", "main_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/controller/disruption:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/examples/BUILD b/test/integration/examples/BUILD index 8d696172022..26e70d38a56 100644 --- a/test/integration/examples/BUILD +++ b/test/integration/examples/BUILD @@ -14,10 +14,7 @@ go_test( "apiserver_test.go", "main_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//cmd/kube-apiserver/app:go_default_library", "//cmd/kube-apiserver/app/options:go_default_library", diff --git a/test/integration/federation/BUILD b/test/integration/federation/BUILD index 1bb2e870979..187f101c174 100644 --- a/test/integration/federation/BUILD +++ b/test/integration/federation/BUILD @@ -15,10 +15,7 @@ go_test( "crud_test.go", "main_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/pkg/federatedtypes:go_default_library", diff --git a/test/integration/federation/framework/BUILD b/test/integration/federation/framework/BUILD index 62dc7f8b2b4..9aa6bfb9737 100644 --- a/test/integration/federation/framework/BUILD +++ b/test/integration/federation/framework/BUILD @@ -16,7 +16,6 @@ go_library( "federation.go", "util.go", ], - tags = ["automanaged"], deps = [ "//federation/apis/federation/v1beta1:go_default_library", "//federation/client/clientset_generated/federation_clientset:go_default_library", diff --git a/test/integration/framework/BUILD b/test/integration/framework/BUILD index 51d38ff9f68..4451a2053ab 100644 --- a/test/integration/framework/BUILD +++ b/test/integration/framework/BUILD @@ -19,7 +19,6 @@ go_library( data = [ "@com_coreos_etcd//:etcd", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/integration/garbagecollector/BUILD b/test/integration/garbagecollector/BUILD index cead86dd533..fe5110b4d60 100644 --- a/test/integration/garbagecollector/BUILD +++ b/test/integration/garbagecollector/BUILD @@ -11,10 +11,7 @@ go_test( name = "go_default_test", size = "large", srcs = ["garbage_collector_test.go"], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//cmd/kube-apiserver/app/testing:go_default_library", "//pkg/controller/garbagecollector:go_default_library", diff --git a/test/integration/kubectl/BUILD b/test/integration/kubectl/BUILD index ac2b6efb19f..735082839ab 100644 --- a/test/integration/kubectl/BUILD +++ b/test/integration/kubectl/BUILD @@ -14,10 +14,7 @@ go_test( "kubectl_test.go", "main_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/kubectl/cmd/util:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/master/BUILD b/test/integration/master/BUILD index 2c4dcee737c..9bad9a76c51 100644 --- a/test/integration/master/BUILD +++ b/test/integration/master/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "master_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/integration/metrics/BUILD b/test/integration/metrics/BUILD index e3b8480babe..49a33c47276 100644 --- a/test/integration/metrics/BUILD +++ b/test/integration/metrics/BUILD @@ -11,7 +11,6 @@ load( go_library( name = "go_default_library", srcs = ["doc.go"], - tags = ["automanaged"], ) filegroup( @@ -35,10 +34,7 @@ go_test( "metrics_test.go", ], library = ":go_default_library", - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api/testapi:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/objectmeta/BUILD b/test/integration/objectmeta/BUILD index d86979bf3e2..bc0639c405d 100644 --- a/test/integration/objectmeta/BUILD +++ b/test/integration/objectmeta/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "objectmeta_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api/testapi:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/openshift/BUILD b/test/integration/openshift/BUILD index b7e180a750e..a1fc7b1bf5c 100644 --- a/test/integration/openshift/BUILD +++ b/test/integration/openshift/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "openshift_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/master:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/pods/BUILD b/test/integration/pods/BUILD index c3922be2a4c..712fbfb97dc 100644 --- a/test/integration/pods/BUILD +++ b/test/integration/pods/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "pods_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api/testapi:go_default_library", "//test/integration:go_default_library", diff --git a/test/integration/quota/BUILD b/test/integration/quota/BUILD index 49ec34900c7..02521acacf2 100644 --- a/test/integration/quota/BUILD +++ b/test/integration/quota/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "quota_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/integration/replicaset/BUILD b/test/integration/replicaset/BUILD index 0cf71963652..d0f9600c17b 100644 --- a/test/integration/replicaset/BUILD +++ b/test/integration/replicaset/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "replicaset_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/controller/replicaset:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/replicationcontroller/BUILD b/test/integration/replicationcontroller/BUILD index 4aaa84ad5bc..717a52e98da 100644 --- a/test/integration/replicationcontroller/BUILD +++ b/test/integration/replicationcontroller/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "replicationcontroller_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/controller/replication:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/scheduler/BUILD b/test/integration/scheduler/BUILD index f9ce9514453..43175ee3b64 100644 --- a/test/integration/scheduler/BUILD +++ b/test/integration/scheduler/BUILD @@ -19,10 +19,7 @@ go_test( "scheduler_test.go", ], library = ":go_default_library", - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", @@ -68,7 +65,6 @@ filegroup( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/integration/scheduler_perf/BUILD b/test/integration/scheduler_perf/BUILD index 8f843b474c7..7cdb5b92ed4 100644 --- a/test/integration/scheduler_perf/BUILD +++ b/test/integration/scheduler_perf/BUILD @@ -14,9 +14,6 @@ go_library( "scheduler_perf_types.go", "util.go", ], - tags = [ - "automanaged", - ], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", @@ -43,10 +40,7 @@ go_test( "scheduler_test.go", ], library = ":go_default_library", - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//plugin/pkg/scheduler:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/secrets/BUILD b/test/integration/secrets/BUILD index 66597e6ea32..660e4f0f44d 100644 --- a/test/integration/secrets/BUILD +++ b/test/integration/secrets/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "secrets_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api/testapi:go_default_library", "//test/integration:go_default_library", diff --git a/test/integration/serviceaccount/BUILD b/test/integration/serviceaccount/BUILD index adfc5f269c1..39a3895f300 100644 --- a/test/integration/serviceaccount/BUILD +++ b/test/integration/serviceaccount/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "service_account_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api/testapi:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/test/integration/storageclasses/BUILD b/test/integration/storageclasses/BUILD index fc294a76c90..193e6122ded 100644 --- a/test/integration/storageclasses/BUILD +++ b/test/integration/storageclasses/BUILD @@ -14,10 +14,7 @@ go_test( "main_test.go", "storage_classes_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api/testapi:go_default_library", "//test/integration/framework:go_default_library", diff --git a/test/integration/ttlcontroller/BUILD b/test/integration/ttlcontroller/BUILD index f0c39d2cd82..e5aa2a01239 100644 --- a/test/integration/ttlcontroller/BUILD +++ b/test/integration/ttlcontroller/BUILD @@ -15,7 +15,6 @@ go_test( "ttlcontroller_test.go", ], tags = [ - "automanaged", "etcd", "integration", ], diff --git a/test/integration/volume/BUILD b/test/integration/volume/BUILD index 53a0540abeb..f5676f9fa94 100644 --- a/test/integration/volume/BUILD +++ b/test/integration/volume/BUILD @@ -15,10 +15,7 @@ go_test( "main_test.go", "persistent_volumes_test.go", ], - tags = [ - "automanaged", - "integration", - ], + tags = ["integration"], deps = [ "//pkg/api:go_default_library", "//pkg/api/testapi:go_default_library", diff --git a/test/list/BUILD b/test/list/BUILD index a8d39ad9755..3d730b687f9 100644 --- a/test/list/BUILD +++ b/test/list/BUILD @@ -12,20 +12,17 @@ load( go_binary( name = "list", library = ":go_default_library", - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["main_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], ) filegroup( diff --git a/test/soak/cauldron/BUILD b/test/soak/cauldron/BUILD index e470ee16a01..770e53d0533 100644 --- a/test/soak/cauldron/BUILD +++ b/test/soak/cauldron/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "cauldron", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["cauldron.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", diff --git a/test/soak/serve_hostnames/BUILD b/test/soak/serve_hostnames/BUILD index 70acbcc9243..175e8a37784 100644 --- a/test/soak/serve_hostnames/BUILD +++ b/test/soak/serve_hostnames/BUILD @@ -11,13 +11,11 @@ load( go_binary( name = "serve_hostnames", library = ":go_default_library", - tags = ["automanaged"], ) go_library( name = "go_default_library", srcs = ["serve_hostnames.go"], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//test/e2e/framework:go_default_library", diff --git a/test/utils/BUILD b/test/utils/BUILD index 92d4030b1fd..eae9788dfc4 100644 --- a/test/utils/BUILD +++ b/test/utils/BUILD @@ -17,7 +17,6 @@ go_library( "runners.go", "tmpdir.go", ], - tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", "//pkg/api/v1/pod:go_default_library", diff --git a/test/utils/junit/BUILD b/test/utils/junit/BUILD index 5c272b709e9..77299301f24 100644 --- a/test/utils/junit/BUILD +++ b/test/utils/junit/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["junit.go"], - tags = ["automanaged"], ) filegroup( diff --git a/third_party/forked/etcd221/pkg/fileutil/BUILD b/third_party/forked/etcd221/pkg/fileutil/BUILD index 7a489eb8ac4..c0b8ba69db1 100644 --- a/third_party/forked/etcd221/pkg/fileutil/BUILD +++ b/third_party/forked/etcd221/pkg/fileutil/BUILD @@ -17,7 +17,6 @@ go_test( "purge_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -36,7 +35,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/third_party/forked/etcd221/wal/BUILD b/third_party/forked/etcd221/wal/BUILD index e72732f018d..825c36418f9 100644 --- a/third_party/forked/etcd221/wal/BUILD +++ b/third_party/forked/etcd221/wal/BUILD @@ -19,7 +19,6 @@ go_library( "util.go", "wal.go", ], - tags = ["automanaged"], deps = [ "//third_party/forked/etcd221/pkg/fileutil:go_default_library", "//vendor/github.com/coreos/etcd/pkg/crc:go_default_library", diff --git a/third_party/forked/etcd221/wal/walpb/BUILD b/third_party/forked/etcd221/wal/walpb/BUILD index 6d0510ee8d9..58724da2351 100644 --- a/third_party/forked/etcd221/wal/walpb/BUILD +++ b/third_party/forked/etcd221/wal/walpb/BUILD @@ -13,7 +13,6 @@ go_library( "record.go", "record.pb.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/gogo/protobuf/proto:go_default_library"], ) diff --git a/third_party/forked/etcd237/pkg/fileutil/BUILD b/third_party/forked/etcd237/pkg/fileutil/BUILD index fae51f48890..ee197edb8c5 100644 --- a/third_party/forked/etcd237/pkg/fileutil/BUILD +++ b/third_party/forked/etcd237/pkg/fileutil/BUILD @@ -17,7 +17,6 @@ go_test( "purge_test.go", ], library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -39,7 +38,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/third_party/forked/etcd237/wal/BUILD b/third_party/forked/etcd237/wal/BUILD index cbcb9489381..f50ebfe4813 100644 --- a/third_party/forked/etcd237/wal/BUILD +++ b/third_party/forked/etcd237/wal/BUILD @@ -19,7 +19,6 @@ go_library( "util.go", "wal.go", ], - tags = ["automanaged"], deps = [ "//third_party/forked/etcd237/pkg/fileutil:go_default_library", "//vendor/github.com/coreos/etcd/pkg/crc:go_default_library", diff --git a/third_party/forked/etcd237/wal/walpb/BUILD b/third_party/forked/etcd237/wal/walpb/BUILD index e9a930a9c91..31ffd3ef9cb 100644 --- a/third_party/forked/etcd237/wal/walpb/BUILD +++ b/third_party/forked/etcd237/wal/walpb/BUILD @@ -13,7 +13,6 @@ go_library( "record.go", "record.pb.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/third_party/forked/golang/expansion/BUILD b/third_party/forked/golang/expansion/BUILD index 9fad8b97b0f..98c97738eef 100644 --- a/third_party/forked/golang/expansion/BUILD +++ b/third_party/forked/golang/expansion/BUILD @@ -11,14 +11,12 @@ load( go_library( name = "go_default_library", srcs = ["expand.go"], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["expand_test.go"], library = ":go_default_library", - tags = ["automanaged"], deps = ["//pkg/api:go_default_library"], ) diff --git a/third_party/forked/golang/reflect/BUILD b/third_party/forked/golang/reflect/BUILD index a966c23d06d..f0a5662d52a 100644 --- a/third_party/forked/golang/reflect/BUILD +++ b/third_party/forked/golang/reflect/BUILD @@ -14,14 +14,12 @@ go_library( "deep_equal.go", "type.go", ], - tags = ["automanaged"], ) go_test( name = "go_default_test", srcs = ["deep_equal_test.go"], library = ":go_default_library", - tags = ["automanaged"], ) filegroup( diff --git a/third_party/forked/golang/template/BUILD b/third_party/forked/golang/template/BUILD index 1c022b63430..9ad3abc8b5f 100644 --- a/third_party/forked/golang/template/BUILD +++ b/third_party/forked/golang/template/BUILD @@ -13,7 +13,6 @@ go_library( "exec.go", "funcs.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/third_party/forked/gonum/graph/BUILD b/third_party/forked/gonum/graph/BUILD index 5fef90777fb..3b95a781a93 100644 --- a/third_party/forked/gonum/graph/BUILD +++ b/third_party/forked/gonum/graph/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["graph.go"], - tags = ["automanaged"], ) filegroup( diff --git a/third_party/forked/gonum/graph/internal/linear/BUILD b/third_party/forked/gonum/graph/internal/linear/BUILD index 95b086fd354..f4df14a2262 100644 --- a/third_party/forked/gonum/graph/internal/linear/BUILD +++ b/third_party/forked/gonum/graph/internal/linear/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["linear.go"], - tags = ["automanaged"], deps = ["//third_party/forked/gonum/graph:go_default_library"], ) diff --git a/third_party/forked/gonum/graph/simple/BUILD b/third_party/forked/gonum/graph/simple/BUILD index 092f84cb823..e97317901ab 100644 --- a/third_party/forked/gonum/graph/simple/BUILD +++ b/third_party/forked/gonum/graph/simple/BUILD @@ -16,7 +16,6 @@ go_test( "undirected_test.go", ], library = ":go_default_library", - tags = ["automanaged"], deps = ["//third_party/forked/gonum/graph:go_default_library"], ) @@ -28,7 +27,6 @@ go_library( "simple.go", "undirected.go", ], - tags = ["automanaged"], deps = [ "//third_party/forked/gonum/graph:go_default_library", "//vendor/golang.org/x/tools/container/intsets:go_default_library", diff --git a/third_party/forked/gonum/graph/traverse/BUILD b/third_party/forked/gonum/graph/traverse/BUILD index e0eb285a761..10bced1adce 100644 --- a/third_party/forked/gonum/graph/traverse/BUILD +++ b/third_party/forked/gonum/graph/traverse/BUILD @@ -13,7 +13,6 @@ go_library( "traverse.go", "visit_depth_first.go", ], - tags = ["automanaged"], deps = [ "//third_party/forked/gonum/graph:go_default_library", "//third_party/forked/gonum/graph/internal/linear:go_default_library", diff --git a/vendor/bitbucket.org/bertimus9/systemstat/BUILD b/vendor/bitbucket.org/bertimus9/systemstat/BUILD index c4e72b091b8..faf21dd17de 100644 --- a/vendor/bitbucket.org/bertimus9/systemstat/BUILD +++ b/vendor/bitbucket.org/bertimus9/systemstat/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/bitbucket.org/ww/goautoneg/BUILD b/vendor/bitbucket.org/ww/goautoneg/BUILD index 8c04dc13cb2..8dcfcc6e63d 100644 --- a/vendor/bitbucket.org/ww/goautoneg/BUILD +++ b/vendor/bitbucket.org/ww/goautoneg/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["autoneg.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/cloud.google.com/go/compute/metadata/BUILD b/vendor/cloud.google.com/go/compute/metadata/BUILD index aca8a91f792..f21cabaab5b 100644 --- a/vendor/cloud.google.com/go/compute/metadata/BUILD +++ b/vendor/cloud.google.com/go/compute/metadata/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metadata.go"], - tags = ["automanaged"], deps = [ "//vendor/cloud.google.com/go/internal:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/cloud.google.com/go/internal/BUILD b/vendor/cloud.google.com/go/internal/BUILD index 1e6ae283fa0..72de124e794 100644 --- a/vendor/cloud.google.com/go/internal/BUILD +++ b/vendor/cloud.google.com/go/internal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["cloud.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD index e2d8fa57d93..e624bf83521 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD @@ -24,7 +24,6 @@ go_library( "virtualmachinescalesetvms.go", "virtualmachinesizes.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD index 92c50e6bcc4..6e847ce5388 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD @@ -16,7 +16,6 @@ go_library( "registries.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD index dfc4bdfa13c..f40f2c9eda8 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD @@ -16,7 +16,6 @@ go_library( "snapshots.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD index 1c6bfc06fb5..ef9f4199c25 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD @@ -38,7 +38,6 @@ go_library( "virtualnetworks.go", "watchers.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD index f7c2637c556..e1a84810baa 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD @@ -16,7 +16,6 @@ go_library( "usage.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD index 4727d1d04ff..5cb778c93bd 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD @@ -38,7 +38,6 @@ go_library( "util.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/azure:go_default_library", diff --git a/vendor/github.com/Azure/go-ansiterm/BUILD b/vendor/github.com/Azure/go-ansiterm/BUILD index 57a20857a6c..97fd5449e9f 100644 --- a/vendor/github.com/Azure/go-ansiterm/BUILD +++ b/vendor/github.com/Azure/go-ansiterm/BUILD @@ -25,7 +25,6 @@ go_library( "states.go", "utilities.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/Sirupsen/logrus:go_default_library"], ) diff --git a/vendor/github.com/Azure/go-autorest/autorest/BUILD b/vendor/github.com/Azure/go-autorest/autorest/BUILD index 820faee9823..d02f5d01a2f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/BUILD @@ -20,7 +20,6 @@ go_library( "utility.go", "version.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/Azure/go-autorest/autorest/adal:go_default_library"], ) diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD b/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD index b1cdac65efd..2a231fb5062 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD @@ -16,7 +16,6 @@ go_library( "sender.go", "token.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/dgrijalva/jwt-go:go_default_library"], ) diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD b/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD index ec59a579147..b8d25d2401a 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD @@ -14,7 +14,6 @@ go_library( "azure.go", "environments.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-autorest/autorest:go_default_library", "//vendor/github.com/Azure/go-autorest/autorest/date:go_default_library", diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/BUILD b/vendor/github.com/Azure/go-autorest/autorest/date/BUILD index c1123df662c..2202754efa1 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/date/BUILD @@ -16,7 +16,6 @@ go_library( "unixtime.go", "utility.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/Azure/go-autorest/autorest/to/BUILD b/vendor/github.com/Azure/go-autorest/autorest/to/BUILD index cc74007167b..80180b18fba 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/to/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/to/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["convert.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD b/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD index 604fc4ca120..2219530bf9d 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["validation.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/MakeNowJust/heredoc/BUILD b/vendor/github.com/MakeNowJust/heredoc/BUILD index edd4d5863a2..5e9b062aaba 100644 --- a/vendor/github.com/MakeNowJust/heredoc/BUILD +++ b/vendor/github.com/MakeNowJust/heredoc/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["heredoc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/Microsoft/go-winio/BUILD b/vendor/github.com/Microsoft/go-winio/BUILD index 9ec35d4be31..0db8d9444ea 100644 --- a/vendor/github.com/Microsoft/go-winio/BUILD +++ b/vendor/github.com/Microsoft/go-winio/BUILD @@ -24,7 +24,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:windows_amd64": [ "//vendor/golang.org/x/sys/windows:go_default_library", diff --git a/vendor/github.com/NYTimes/gziphandler/BUILD b/vendor/github.com/NYTimes/gziphandler/BUILD index 68761bbfd8f..fbfc5359c7d 100644 --- a/vendor/github.com/NYTimes/gziphandler/BUILD +++ b/vendor/github.com/NYTimes/gziphandler/BUILD @@ -13,7 +13,6 @@ go_library( "gzip.go", "gzip_go18.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/PuerkitoBio/purell/BUILD b/vendor/github.com/PuerkitoBio/purell/BUILD index d4bafbdb3ac..a448549da67 100644 --- a/vendor/github.com/PuerkitoBio/purell/BUILD +++ b/vendor/github.com/PuerkitoBio/purell/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["purell.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/PuerkitoBio/urlesc:go_default_library", "//vendor/golang.org/x/net/idna:go_default_library", diff --git a/vendor/github.com/PuerkitoBio/urlesc/BUILD b/vendor/github.com/PuerkitoBio/urlesc/BUILD index 0b8098577a5..8d85d90f13e 100644 --- a/vendor/github.com/PuerkitoBio/urlesc/BUILD +++ b/vendor/github.com/PuerkitoBio/urlesc/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["urlesc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/Sirupsen/logrus/BUILD b/vendor/github.com/Sirupsen/logrus/BUILD index 3b41e05e243..8a6f258a234 100644 --- a/vendor/github.com/Sirupsen/logrus/BUILD +++ b/vendor/github.com/Sirupsen/logrus/BUILD @@ -32,7 +32,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/abbot/go-http-auth/BUILD b/vendor/github.com/abbot/go-http-auth/BUILD index 688e0044a7f..6a8d5efe419 100644 --- a/vendor/github.com/abbot/go-http-auth/BUILD +++ b/vendor/github.com/abbot/go-http-auth/BUILD @@ -17,7 +17,6 @@ go_library( "misc.go", "users.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/appc/spec/schema/BUILD b/vendor/github.com/appc/spec/schema/BUILD index 14540866d7f..2a65eef2fa6 100644 --- a/vendor/github.com/appc/spec/schema/BUILD +++ b/vendor/github.com/appc/spec/schema/BUILD @@ -16,7 +16,6 @@ go_library( "pod.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/appc/spec/schema/types:go_default_library", "//vendor/go4.org/errorutil:go_default_library", diff --git a/vendor/github.com/appc/spec/schema/common/BUILD b/vendor/github.com/appc/spec/schema/common/BUILD index 49082322652..84408f189c6 100644 --- a/vendor/github.com/appc/spec/schema/common/BUILD +++ b/vendor/github.com/appc/spec/schema/common/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["common.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/appc/spec/schema/types/BUILD b/vendor/github.com/appc/spec/schema/types/BUILD index 060cb5c01cd..1af7f4a0c2a 100644 --- a/vendor/github.com/appc/spec/schema/types/BUILD +++ b/vendor/github.com/appc/spec/schema/types/BUILD @@ -37,7 +37,6 @@ go_library( "uuid.go", "volume.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/appc/spec/schema/common:go_default_library", "//vendor/github.com/appc/spec/schema/types/resource:go_default_library", diff --git a/vendor/github.com/appc/spec/schema/types/resource/BUILD b/vendor/github.com/appc/spec/schema/types/resource/BUILD index 13d2c37f090..743e4d65080 100644 --- a/vendor/github.com/appc/spec/schema/types/resource/BUILD +++ b/vendor/github.com/appc/spec/schema/types/resource/BUILD @@ -16,7 +16,6 @@ go_library( "scale_int.go", "suffix.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/gopkg.in/inf.v0:go_default_library", diff --git a/vendor/github.com/armon/circbuf/BUILD b/vendor/github.com/armon/circbuf/BUILD index 29cdbd8e2fd..5affafeea3d 100644 --- a/vendor/github.com/armon/circbuf/BUILD +++ b/vendor/github.com/armon/circbuf/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["circbuf.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/asaskevich/govalidator/BUILD b/vendor/github.com/asaskevich/govalidator/BUILD index 5dfd0c31ba6..63a9c401aaa 100644 --- a/vendor/github.com/asaskevich/govalidator/BUILD +++ b/vendor/github.com/asaskevich/govalidator/BUILD @@ -19,7 +19,6 @@ go_library( "utils.go", "validator.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/aws/aws-sdk-go/aws/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/BUILD index 9ff75c1dec8..74b7c419a7e 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/BUILD @@ -17,7 +17,6 @@ go_library( "types.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD index c2088dbea17..301abb6d8b8 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD @@ -13,7 +13,6 @@ go_library( "error.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD index f4d9fc443ea..bade8400c6c 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD @@ -16,7 +16,6 @@ go_library( "prettify.go", "string_value.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/jmespath/go-jmespath:go_default_library"], ) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD index b5e2f9fd602..008782f675f 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "default_retryer.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/client/metadata:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD index 3c217f56792..34116deb7de 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["client_info.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD index 8431a1eabe1..dfaf45b4895 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD @@ -13,7 +13,6 @@ go_library( "handlers.go", "param_validator.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD index 375d524db7e..f5196676fb6 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD @@ -16,7 +16,6 @@ go_library( "shared_credentials_provider.go", "static_provider.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/go-ini/ini:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD index 483632ac5ab..d60d0fcc62a 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["ec2_role_provider.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD index 8b1994c7fd2..6f2504feaaa 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["provider.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD index c2f7b794785..2ff98158bc5 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["assume_role_provider.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/client:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD index 8db5f13731c..1279b258095 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["defaults.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/corehandlers:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD index 2a14983d223..772e9625a3b 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD @@ -13,7 +13,6 @@ go_library( "api.go", "service.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD index 57ac74ab41e..03214b7effe 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD @@ -16,7 +16,6 @@ go_library( "endpoints.go", "v3model.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library"], ) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD index 994364cccea..a1663988d37 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD @@ -20,7 +20,6 @@ go_library( "retryer.go", "validation.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD index 6f9295b9605..08c39383ae9 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD @@ -15,7 +15,6 @@ go_library( "session.go", "shared_config.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD index 98a714cebc8..bbb60247dc6 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD @@ -14,7 +14,6 @@ go_library( "uri_path.go", "v4.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/credentials:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD index 2bc2052327b..4024e56880b 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD @@ -13,7 +13,6 @@ go_library( "idempotency.go", "unmarshal.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library"], ) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD index c094aa0f45b..8e58360eebf 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD @@ -13,7 +13,6 @@ go_library( "build.go", "unmarshal.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD index 43e24efcafe..1eee534dbd6 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD @@ -13,7 +13,6 @@ go_library( "build.go", "unmarshal.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library"], ) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD index 8affba4b954..7a218111c55 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["jsonrpc.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD index 4a4c702b1dc..5b2cc5f1aa6 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD @@ -14,7 +14,6 @@ go_library( "unmarshal.go", "unmarshal_error.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD index 3b47de41068..4002d1b71e3 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["queryutil.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library"], ) diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD index bf52df67c3c..2cfcbfd2c0f 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD @@ -14,7 +14,6 @@ go_library( "payload.go", "unmarshal.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD index afad5590d50..6bf726a5d43 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["restxml.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/request:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD index 62dc665118e..eadab9ac68a 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD @@ -14,7 +14,6 @@ go_library( "unmarshal.go", "xml_to_struct.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/aws/aws-sdk-go/private/protocol:go_default_library"], ) diff --git a/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD b/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD index 5ec0588a9ff..af67703723e 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["waiter.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD index 474637d1e64..ee5180e4f74 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD @@ -14,7 +14,6 @@ go_library( "service.go", "waiters.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD b/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD index 4ce03d057e8..114e0daf208 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD @@ -15,7 +15,6 @@ go_library( "service.go", "waiters.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD b/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD index 8f0650da010..073490e8631 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD @@ -13,7 +13,6 @@ go_library( "api.go", "service.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD b/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD index 04411e145db..7c0929148f6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD @@ -14,7 +14,6 @@ go_library( "service.go", "waiters.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD b/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD index 361bc0dedc3..11b97faafb3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD @@ -16,7 +16,6 @@ go_library( "unmarshal_error.go", "waiters.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awserr:go_default_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD b/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD index 6cf7b0b71db..2211c9ac0ff 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD @@ -14,7 +14,6 @@ go_library( "customizations.go", "service.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws/awsutil:go_default_library", diff --git a/vendor/github.com/beorn7/perks/quantile/BUILD b/vendor/github.com/beorn7/perks/quantile/BUILD index 0d4763bd201..c6a37b018c0 100644 --- a/vendor/github.com/beorn7/perks/quantile/BUILD +++ b/vendor/github.com/beorn7/perks/quantile/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["stream.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/blang/semver/BUILD b/vendor/github.com/blang/semver/BUILD index 4bd55a51e3b..1e31c1f3e6c 100644 --- a/vendor/github.com/blang/semver/BUILD +++ b/vendor/github.com/blang/semver/BUILD @@ -16,7 +16,6 @@ go_library( "sort.go", "sql.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/boltdb/bolt/BUILD b/vendor/github.com/boltdb/bolt/BUILD index bb598cb5339..1c5c022d4d4 100644 --- a/vendor/github.com/boltdb/bolt/BUILD +++ b/vendor/github.com/boltdb/bolt/BUILD @@ -35,7 +35,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/chai2010/gettext-go/gettext/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/BUILD index da5312f2fbc..4808a622552 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/BUILD @@ -19,7 +19,6 @@ go_library( "local.go", "tr.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/chai2010/gettext-go/gettext/mo:go_default_library", "//vendor/github.com/chai2010/gettext-go/gettext/plural:go_default_library", diff --git a/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD index ff8fb006540..a2b479f7177 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD @@ -17,7 +17,6 @@ go_library( "message.go", "util.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD index 8ed45dec726..2938e70e579 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD @@ -14,7 +14,6 @@ go_library( "formula.go", "table.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD index e06aad0b5f0..73b3f9e44a2 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD @@ -19,7 +19,6 @@ go_library( "re.go", "util.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/cloudflare/cfssl/auth/BUILD b/vendor/github.com/cloudflare/cfssl/auth/BUILD index ce489e526a8..d11ecee45ff 100644 --- a/vendor/github.com/cloudflare/cfssl/auth/BUILD +++ b/vendor/github.com/cloudflare/cfssl/auth/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["auth.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/cloudflare/cfssl/certdb/BUILD b/vendor/github.com/cloudflare/cfssl/certdb/BUILD index a2099ccc8a3..b94812b85a7 100644 --- a/vendor/github.com/cloudflare/cfssl/certdb/BUILD +++ b/vendor/github.com/cloudflare/cfssl/certdb/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["certdb.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/cloudflare/cfssl/config/BUILD b/vendor/github.com/cloudflare/cfssl/config/BUILD index bb454065dcb..76d94683dc4 100644 --- a/vendor/github.com/cloudflare/cfssl/config/BUILD +++ b/vendor/github.com/cloudflare/cfssl/config/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["config.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/cloudflare/cfssl/auth:go_default_library", "//vendor/github.com/cloudflare/cfssl/errors:go_default_library", diff --git a/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD b/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD index 85edcc86fee..cd0ab9ce230 100644 --- a/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD +++ b/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["pkcs7.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/cloudflare/cfssl/errors:go_default_library"], ) diff --git a/vendor/github.com/cloudflare/cfssl/csr/BUILD b/vendor/github.com/cloudflare/cfssl/csr/BUILD index febf5e35454..1afeb102072 100644 --- a/vendor/github.com/cloudflare/cfssl/csr/BUILD +++ b/vendor/github.com/cloudflare/cfssl/csr/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["csr.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/cloudflare/cfssl/errors:go_default_library", "//vendor/github.com/cloudflare/cfssl/helpers:go_default_library", diff --git a/vendor/github.com/cloudflare/cfssl/errors/BUILD b/vendor/github.com/cloudflare/cfssl/errors/BUILD index aeea876d3f9..035d56a2c03 100644 --- a/vendor/github.com/cloudflare/cfssl/errors/BUILD +++ b/vendor/github.com/cloudflare/cfssl/errors/BUILD @@ -14,7 +14,6 @@ go_library( "error.go", "http.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/cloudflare/cfssl/helpers/BUILD b/vendor/github.com/cloudflare/cfssl/helpers/BUILD index 3c8c2433280..060b7972590 100644 --- a/vendor/github.com/cloudflare/cfssl/helpers/BUILD +++ b/vendor/github.com/cloudflare/cfssl/helpers/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/cloudflare/cfssl/crypto/pkcs7:go_default_library", "//vendor/github.com/cloudflare/cfssl/errors:go_default_library", diff --git a/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD b/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD index d24af54354f..eb36149c0e6 100644 --- a/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD +++ b/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["derhelpers.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/cloudflare/cfssl/errors:go_default_library"], ) diff --git a/vendor/github.com/cloudflare/cfssl/info/BUILD b/vendor/github.com/cloudflare/cfssl/info/BUILD index 323cf25e637..d8c646b81b2 100644 --- a/vendor/github.com/cloudflare/cfssl/info/BUILD +++ b/vendor/github.com/cloudflare/cfssl/info/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["info.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/cloudflare/cfssl/log/BUILD b/vendor/github.com/cloudflare/cfssl/log/BUILD index 6f7006448d1..376173a90ad 100644 --- a/vendor/github.com/cloudflare/cfssl/log/BUILD +++ b/vendor/github.com/cloudflare/cfssl/log/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["log.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD b/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD index f811fb8f199..2c1d373a268 100644 --- a/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD +++ b/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["config.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/cloudflare/cfssl/signer/BUILD b/vendor/github.com/cloudflare/cfssl/signer/BUILD index a74d9510222..963b6013430 100644 --- a/vendor/github.com/cloudflare/cfssl/signer/BUILD +++ b/vendor/github.com/cloudflare/cfssl/signer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["signer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/cloudflare/cfssl/certdb:go_default_library", "//vendor/github.com/cloudflare/cfssl/config:go_default_library", diff --git a/vendor/github.com/cloudflare/cfssl/signer/local/BUILD b/vendor/github.com/cloudflare/cfssl/signer/local/BUILD index 628cdd38885..6b27c2c0348 100644 --- a/vendor/github.com/cloudflare/cfssl/signer/local/BUILD +++ b/vendor/github.com/cloudflare/cfssl/signer/local/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["local.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/cloudflare/cfssl/certdb:go_default_library", "//vendor/github.com/cloudflare/cfssl/config:go_default_library", diff --git a/vendor/github.com/clusterhq/flocker-go/BUILD b/vendor/github.com/clusterhq/flocker-go/BUILD index 26f5e5d06a6..96c1de971cd 100644 --- a/vendor/github.com/clusterhq/flocker-go/BUILD +++ b/vendor/github.com/clusterhq/flocker-go/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "util.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/codedellemc/goscaleio/BUILD b/vendor/github.com/codedellemc/goscaleio/BUILD index 8751f76db5c..9cf65de108c 100644 --- a/vendor/github.com/codedellemc/goscaleio/BUILD +++ b/vendor/github.com/codedellemc/goscaleio/BUILD @@ -23,7 +23,6 @@ go_library( "user.go", "volume.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/Sirupsen/logrus:go_default_library", "//vendor/github.com/codedellemc/goscaleio/types/v1:go_default_library", diff --git a/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD b/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD index 6109f467f1a..faaf46d0d62 100644 --- a/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD +++ b/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/codegangsta/negroni/BUILD b/vendor/github.com/codegangsta/negroni/BUILD index 4f3ab7ccdfa..a567b55c89c 100644 --- a/vendor/github.com/codegangsta/negroni/BUILD +++ b/vendor/github.com/codegangsta/negroni/BUILD @@ -17,7 +17,6 @@ go_library( "response_writer.go", "static.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/containernetworking/cni/libcni/BUILD b/vendor/github.com/containernetworking/cni/libcni/BUILD index 2858c1bcb65..f9343684987 100644 --- a/vendor/github.com/containernetworking/cni/libcni/BUILD +++ b/vendor/github.com/containernetworking/cni/libcni/BUILD @@ -13,7 +13,6 @@ go_library( "api.go", "conf.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/containernetworking/cni/pkg/invoke:go_default_library", "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD index f9bdc0b8b9a..f82629c1b09 100644 --- a/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD @@ -27,7 +27,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", "//vendor/github.com/containernetworking/cni/pkg/version:go_default_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD index 06470c04c35..9e0b06cda8c 100644 --- a/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/containernetworking/cni/pkg/types:go_default_library"], ) diff --git a/vendor/github.com/containernetworking/cni/pkg/types/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/BUILD index 36edc11fa9f..366aa6098db 100644 --- a/vendor/github.com/containernetworking/cni/pkg/types/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/types/BUILD @@ -13,7 +13,6 @@ go_library( "args.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD index 23cb13809cb..332177e8c00 100644 --- a/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/version/BUILD b/vendor/github.com/containernetworking/cni/pkg/version/BUILD index 643c49baf2e..571fc05dd57 100644 --- a/vendor/github.com/containernetworking/cni/pkg/version/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/version/BUILD @@ -15,7 +15,6 @@ go_library( "reconcile.go", "version.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/containernetworking/cni/pkg/types:go_default_library", "//vendor/github.com/containernetworking/cni/pkg/types/020:go_default_library", diff --git a/vendor/github.com/coreos/etcd/alarm/BUILD b/vendor/github.com/coreos/etcd/alarm/BUILD index 414588f609c..00eb16437bd 100644 --- a/vendor/github.com/coreos/etcd/alarm/BUILD +++ b/vendor/github.com/coreos/etcd/alarm/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["alarms.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/etcdserver/etcdserverpb:go_default_library", "//vendor/github.com/coreos/etcd/mvcc/backend:go_default_library", diff --git a/vendor/github.com/coreos/etcd/auth/BUILD b/vendor/github.com/coreos/etcd/auth/BUILD index 28d0069b4a2..9cef4db0166 100644 --- a/vendor/github.com/coreos/etcd/auth/BUILD +++ b/vendor/github.com/coreos/etcd/auth/BUILD @@ -15,7 +15,6 @@ go_library( "simple_token.go", "store.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/auth/authpb:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver/etcdserverpb:go_default_library", diff --git a/vendor/github.com/coreos/etcd/auth/authpb/BUILD b/vendor/github.com/coreos/etcd/auth/authpb/BUILD index cd0848952f0..23d131308c4 100644 --- a/vendor/github.com/coreos/etcd/auth/authpb/BUILD +++ b/vendor/github.com/coreos/etcd/auth/authpb/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["auth.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/client/BUILD b/vendor/github.com/coreos/etcd/client/BUILD index 69c042b0e1b..42b5c0c259b 100644 --- a/vendor/github.com/coreos/etcd/client/BUILD +++ b/vendor/github.com/coreos/etcd/client/BUILD @@ -24,7 +24,6 @@ go_library( "srv.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/pkg/pathutil:go_default_library", "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", diff --git a/vendor/github.com/coreos/etcd/clientv3/BUILD b/vendor/github.com/coreos/etcd/clientv3/BUILD index a6048ddb56f..e285acbb042 100644 --- a/vendor/github.com/coreos/etcd/clientv3/BUILD +++ b/vendor/github.com/coreos/etcd/clientv3/BUILD @@ -28,7 +28,6 @@ go_library( "txn.go", "watch.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/auth/authpb:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", diff --git a/vendor/github.com/coreos/etcd/compactor/BUILD b/vendor/github.com/coreos/etcd/compactor/BUILD index 29935ac1883..e62a3826456 100644 --- a/vendor/github.com/coreos/etcd/compactor/BUILD +++ b/vendor/github.com/coreos/etcd/compactor/BUILD @@ -13,7 +13,6 @@ go_library( "compactor.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/etcdserver/etcdserverpb:go_default_library", "//vendor/github.com/coreos/etcd/mvcc:go_default_library", diff --git a/vendor/github.com/coreos/etcd/discovery/BUILD b/vendor/github.com/coreos/etcd/discovery/BUILD index 6a1be2febb1..ddfa3ee44cf 100644 --- a/vendor/github.com/coreos/etcd/discovery/BUILD +++ b/vendor/github.com/coreos/etcd/discovery/BUILD @@ -13,7 +13,6 @@ go_library( "discovery.go", "srv.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/github.com/coreos/etcd/pkg/transport:go_default_library", diff --git a/vendor/github.com/coreos/etcd/error/BUILD b/vendor/github.com/coreos/etcd/error/BUILD index 7fac00a9c6d..576eab0f560 100644 --- a/vendor/github.com/coreos/etcd/error/BUILD +++ b/vendor/github.com/coreos/etcd/error/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["error.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/etcdserver/BUILD b/vendor/github.com/coreos/etcd/etcdserver/BUILD index 56145d3ae94..9140c6c4c07 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/BUILD @@ -28,7 +28,6 @@ go_library( "v2_server.go", "v3_server.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/alarm:go_default_library", "//vendor/github.com/coreos/etcd/auth:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/BUILD index 86d25703e10..12210c4983a 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/BUILD @@ -14,7 +14,6 @@ go_library( "cluster.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/etcdserver/membership:go_default_library", "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD index 271310ddb3e..40c7f9aee8e 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD @@ -18,7 +18,6 @@ go_library( "metrics.go", "peer.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/error:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD index fe2e70cf43e..4c4ba26b0f9 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD @@ -13,7 +13,6 @@ go_library( "errors.go", "member.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", "//vendor/github.com/coreos/pkg/capnslog:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD index cd00c3e248b..5e71b843101 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD @@ -24,7 +24,6 @@ go_library( "util.go", "watch.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/auth:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD index d247010b110..2bc2bd64796 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD @@ -14,7 +14,6 @@ go_library( "error.go", "md.go", ], - tags = ["automanaged"], deps = [ "//vendor/google.golang.org/grpc:go_default_library", "//vendor/google.golang.org/grpc/codes:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD b/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD index 7f0065fb7cc..d80929b2f84 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD @@ -13,7 +13,6 @@ go_library( "auth.go", "auth_requests.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/error:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD b/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD index 429f9cf6781..84116b4203f 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD @@ -15,7 +15,6 @@ go_library( "rpc.pb.go", "rpc.pb.gw.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/auth/authpb:go_default_library", "//vendor/github.com/coreos/etcd/mvcc/mvccpb:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD b/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD index 6c1e95bf487..99338310a2e 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD @@ -15,7 +15,6 @@ go_library( "member.go", "store.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/error:go_default_library", "//vendor/github.com/coreos/etcd/mvcc/backend:go_default_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD b/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD index 71c3ae05cc3..59088253f99 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD @@ -15,7 +15,6 @@ go_library( "server.go", "stats.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/raft:go_default_library", "//vendor/github.com/coreos/pkg/capnslog:go_default_library", diff --git a/vendor/github.com/coreos/etcd/integration/BUILD b/vendor/github.com/coreos/etcd/integration/BUILD index 97b13d08147..d6b77d7e0a7 100644 --- a/vendor/github.com/coreos/etcd/integration/BUILD +++ b/vendor/github.com/coreos/etcd/integration/BUILD @@ -15,7 +15,6 @@ go_library( "cluster_direct.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/client:go_default_library", "//vendor/github.com/coreos/etcd/clientv3:go_default_library", diff --git a/vendor/github.com/coreos/etcd/lease/BUILD b/vendor/github.com/coreos/etcd/lease/BUILD index cabe1bff2e8..60b4f16e5a4 100644 --- a/vendor/github.com/coreos/etcd/lease/BUILD +++ b/vendor/github.com/coreos/etcd/lease/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "lessor.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/lease/leasepb:go_default_library", "//vendor/github.com/coreos/etcd/mvcc/backend:go_default_library", diff --git a/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD b/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD index c92354708cb..9a3424bcb63 100644 --- a/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD +++ b/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "http.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/etcdserver/etcdserverpb:go_default_library", "//vendor/github.com/coreos/etcd/lease:go_default_library", diff --git a/vendor/github.com/coreos/etcd/lease/leasepb/BUILD b/vendor/github.com/coreos/etcd/lease/leasepb/BUILD index 17421df4e94..2ce4effcf7f 100644 --- a/vendor/github.com/coreos/etcd/lease/leasepb/BUILD +++ b/vendor/github.com/coreos/etcd/lease/leasepb/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["lease.pb.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/etcdserver/etcdserverpb:go_default_library", "//vendor/github.com/golang/protobuf/proto:go_default_library", diff --git a/vendor/github.com/coreos/etcd/mvcc/BUILD b/vendor/github.com/coreos/etcd/mvcc/BUILD index 4a800a4f57d..8875e3fa0bc 100644 --- a/vendor/github.com/coreos/etcd/mvcc/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/BUILD @@ -23,7 +23,6 @@ go_library( "watcher.go", "watcher_group.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/lease:go_default_library", "//vendor/github.com/coreos/etcd/mvcc/backend:go_default_library", diff --git a/vendor/github.com/coreos/etcd/mvcc/backend/BUILD b/vendor/github.com/coreos/etcd/mvcc/backend/BUILD index 694df187699..8988b241f2d 100644 --- a/vendor/github.com/coreos/etcd/mvcc/backend/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/backend/BUILD @@ -21,7 +21,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/boltdb/bolt:go_default_library", "//vendor/github.com/coreos/pkg/capnslog:go_default_library", diff --git a/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD b/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD index 19ef602cd7c..52456e2240a 100644 --- a/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["kv.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/pkg/adt/BUILD b/vendor/github.com/coreos/etcd/pkg/adt/BUILD index 6027964a4dd..ca5abeb1900 100644 --- a/vendor/github.com/coreos/etcd/pkg/adt/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/adt/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "interval_tree.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/contention/BUILD b/vendor/github.com/coreos/etcd/pkg/contention/BUILD index 7fe8a50948c..27a963396b9 100644 --- a/vendor/github.com/coreos/etcd/pkg/contention/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/contention/BUILD @@ -13,7 +13,6 @@ go_library( "contention.go", "doc.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD b/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD index 656eda3f9da..4ea74961a69 100644 --- a/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "endian.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/crc/BUILD b/vendor/github.com/coreos/etcd/pkg/crc/BUILD index d57b2d96261..68fa81d3dc4 100644 --- a/vendor/github.com/coreos/etcd/pkg/crc/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/crc/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["crc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD b/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD index 31d5d62e330..5764cc11399 100644 --- a/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD @@ -35,7 +35,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/pkg/httputil/BUILD b/vendor/github.com/coreos/etcd/pkg/httputil/BUILD index 4fcbc10546c..cb82598f47e 100644 --- a/vendor/github.com/coreos/etcd/pkg/httputil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/httputil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["httputil.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/idutil/BUILD b/vendor/github.com/coreos/etcd/pkg/idutil/BUILD index 0a12307e34f..5ec29067fc6 100644 --- a/vendor/github.com/coreos/etcd/pkg/idutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/idutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["id.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD b/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD index 7623ca6cf2f..f31ad6f2e19 100644 --- a/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD @@ -15,7 +15,6 @@ go_library( "reader.go", "util.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/etcd/pkg/fileutil:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/pkg/logutil/BUILD b/vendor/github.com/coreos/etcd/pkg/logutil/BUILD index 45cbf3dc674..efbaee23061 100644 --- a/vendor/github.com/coreos/etcd/pkg/logutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/logutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["merge_logger.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/pkg/monotime/BUILD b/vendor/github.com/coreos/etcd/pkg/monotime/BUILD index e42c2b6a7f5..8b995f0d227 100644 --- a/vendor/github.com/coreos/etcd/pkg/monotime/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/monotime/BUILD @@ -14,7 +14,6 @@ go_library( "monotime.go", "nanotime.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/netutil/BUILD b/vendor/github.com/coreos/etcd/pkg/netutil/BUILD index e98e555fd5f..b36b0e62cd3 100644 --- a/vendor/github.com/coreos/etcd/pkg/netutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/netutil/BUILD @@ -20,7 +20,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", "//vendor/github.com/coreos/pkg/capnslog:go_default_library", diff --git a/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD b/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD index 1c967c9b846..d35e72aecc4 100644 --- a/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["path.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD b/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD index f67339122a8..82378a00936 100644 --- a/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["pbutil.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/capnslog:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/pkg/runtime/BUILD b/vendor/github.com/coreos/etcd/pkg/runtime/BUILD index 3189b53db3e..0c34a9d830d 100644 --- a/vendor/github.com/coreos/etcd/pkg/runtime/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/runtime/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/schedule/BUILD b/vendor/github.com/coreos/etcd/pkg/schedule/BUILD index 1f7aa108c34..efcc43ecc0e 100644 --- a/vendor/github.com/coreos/etcd/pkg/schedule/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/schedule/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "schedule.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/pkg/testutil/BUILD b/vendor/github.com/coreos/etcd/pkg/testutil/BUILD index 6545d6baeb7..abecd84bc54 100644 --- a/vendor/github.com/coreos/etcd/pkg/testutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/testutil/BUILD @@ -15,7 +15,6 @@ go_library( "recorder.go", "testutil.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD b/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD index d33300e2fa5..1dd7d3825ee 100644 --- a/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "tlsutil.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/transport/BUILD b/vendor/github.com/coreos/etcd/pkg/transport/BUILD index 0cb54c0703f..b2da410e6f0 100644 --- a/vendor/github.com/coreos/etcd/pkg/transport/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/transport/BUILD @@ -22,7 +22,6 @@ go_library( "transport.go", "unix_listener.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/pkg/fileutil:go_default_library", "//vendor/github.com/coreos/etcd/pkg/tlsutil:go_default_library", diff --git a/vendor/github.com/coreos/etcd/pkg/types/BUILD b/vendor/github.com/coreos/etcd/pkg/types/BUILD index ac097b8e651..a0ba8868f98 100644 --- a/vendor/github.com/coreos/etcd/pkg/types/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/types/BUILD @@ -17,7 +17,6 @@ go_library( "urls.go", "urlsmap.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/pkg/wait/BUILD b/vendor/github.com/coreos/etcd/pkg/wait/BUILD index fdd15673195..f91872bbcaf 100644 --- a/vendor/github.com/coreos/etcd/pkg/wait/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/wait/BUILD @@ -13,7 +13,6 @@ go_library( "wait.go", "wait_time.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD b/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD index 6bb5f236bdb..36b96a13034 100644 --- a/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD +++ b/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD @@ -25,7 +25,6 @@ go_library( "watch_ranges.go", "watcher.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/clientv3:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver/api/v3rpc:go_default_library", diff --git a/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD b/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD index dd6e0bc4e47..189f3ff293d 100644 --- a/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD +++ b/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["store.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes:go_default_library", "//vendor/github.com/coreos/etcd/etcdserver/etcdserverpb:go_default_library", diff --git a/vendor/github.com/coreos/etcd/raft/BUILD b/vendor/github.com/coreos/etcd/raft/BUILD index a1f1c19cf58..4c885e3f989 100644 --- a/vendor/github.com/coreos/etcd/raft/BUILD +++ b/vendor/github.com/coreos/etcd/raft/BUILD @@ -23,7 +23,6 @@ go_library( "storage.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/raft/raftpb:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/github.com/coreos/etcd/raft/raftpb/BUILD b/vendor/github.com/coreos/etcd/raft/raftpb/BUILD index 289608a6161..2a9e9a0cd42 100644 --- a/vendor/github.com/coreos/etcd/raft/raftpb/BUILD +++ b/vendor/github.com/coreos/etcd/raft/raftpb/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["raft.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/rafthttp/BUILD b/vendor/github.com/coreos/etcd/rafthttp/BUILD index 3b9fd1ffe8d..95e9456509a 100644 --- a/vendor/github.com/coreos/etcd/rafthttp/BUILD +++ b/vendor/github.com/coreos/etcd/rafthttp/BUILD @@ -27,7 +27,6 @@ go_library( "urlpick.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/etcdserver/stats:go_default_library", "//vendor/github.com/coreos/etcd/pkg/httputil:go_default_library", diff --git a/vendor/github.com/coreos/etcd/snap/BUILD b/vendor/github.com/coreos/etcd/snap/BUILD index c3748ca0391..068dc111a1e 100644 --- a/vendor/github.com/coreos/etcd/snap/BUILD +++ b/vendor/github.com/coreos/etcd/snap/BUILD @@ -15,7 +15,6 @@ go_library( "metrics.go", "snapshotter.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/pkg/fileutil:go_default_library", "//vendor/github.com/coreos/etcd/pkg/ioutil:go_default_library", diff --git a/vendor/github.com/coreos/etcd/snap/snappb/BUILD b/vendor/github.com/coreos/etcd/snap/snappb/BUILD index 29f836ad23b..f7a7796cfb8 100644 --- a/vendor/github.com/coreos/etcd/snap/snappb/BUILD +++ b/vendor/github.com/coreos/etcd/snap/snappb/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["snap.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/store/BUILD b/vendor/github.com/coreos/etcd/store/BUILD index f3450fe131d..b0c800854cd 100644 --- a/vendor/github.com/coreos/etcd/store/BUILD +++ b/vendor/github.com/coreos/etcd/store/BUILD @@ -23,7 +23,6 @@ go_library( "watcher.go", "watcher_hub.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/error:go_default_library", "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", diff --git a/vendor/github.com/coreos/etcd/version/BUILD b/vendor/github.com/coreos/etcd/version/BUILD index ea0ffc63cfa..8808f796a79 100644 --- a/vendor/github.com/coreos/etcd/version/BUILD +++ b/vendor/github.com/coreos/etcd/version/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["version.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/go-semver/semver:go_default_library"], ) diff --git a/vendor/github.com/coreos/etcd/wal/BUILD b/vendor/github.com/coreos/etcd/wal/BUILD index d9fd97da6f9..59bc5c4824f 100644 --- a/vendor/github.com/coreos/etcd/wal/BUILD +++ b/vendor/github.com/coreos/etcd/wal/BUILD @@ -25,7 +25,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/etcd/pkg/crc:go_default_library", "//vendor/github.com/coreos/etcd/pkg/fileutil:go_default_library", diff --git a/vendor/github.com/coreos/etcd/wal/walpb/BUILD b/vendor/github.com/coreos/etcd/wal/walpb/BUILD index e9a930a9c91..31ffd3ef9cb 100644 --- a/vendor/github.com/coreos/etcd/wal/walpb/BUILD +++ b/vendor/github.com/coreos/etcd/wal/walpb/BUILD @@ -13,7 +13,6 @@ go_library( "record.go", "record.pb.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/coreos/go-oidc/http/BUILD b/vendor/github.com/coreos/go-oidc/http/BUILD index 4cd8dfe0d78..8ecdfd6d215 100644 --- a/vendor/github.com/coreos/go-oidc/http/BUILD +++ b/vendor/github.com/coreos/go-oidc/http/BUILD @@ -15,7 +15,6 @@ go_library( "http.go", "url.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/go-oidc/jose/BUILD b/vendor/github.com/coreos/go-oidc/jose/BUILD index 16365877c79..654e4ea476b 100644 --- a/vendor/github.com/coreos/go-oidc/jose/BUILD +++ b/vendor/github.com/coreos/go-oidc/jose/BUILD @@ -19,7 +19,6 @@ go_library( "sig.go", "sig_rsa.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/go-oidc/key/BUILD b/vendor/github.com/coreos/go-oidc/key/BUILD index a9d79ff9f61..099179b200a 100644 --- a/vendor/github.com/coreos/go-oidc/key/BUILD +++ b/vendor/github.com/coreos/go-oidc/key/BUILD @@ -17,7 +17,6 @@ go_library( "rotate.go", "sync.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/go-oidc/jose:go_default_library", "//vendor/github.com/coreos/pkg/health:go_default_library", diff --git a/vendor/github.com/coreos/go-oidc/oauth2/BUILD b/vendor/github.com/coreos/go-oidc/oauth2/BUILD index 71958100ea6..48ffb7bac17 100644 --- a/vendor/github.com/coreos/go-oidc/oauth2/BUILD +++ b/vendor/github.com/coreos/go-oidc/oauth2/BUILD @@ -14,7 +14,6 @@ go_library( "error.go", "oauth2.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/go-oidc/http:go_default_library"], ) diff --git a/vendor/github.com/coreos/go-oidc/oidc/BUILD b/vendor/github.com/coreos/go-oidc/oidc/BUILD index 2beaff52666..111c251a024 100644 --- a/vendor/github.com/coreos/go-oidc/oidc/BUILD +++ b/vendor/github.com/coreos/go-oidc/oidc/BUILD @@ -20,7 +20,6 @@ go_library( "util.go", "verification.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/go-oidc/http:go_default_library", "//vendor/github.com/coreos/go-oidc/jose:go_default_library", diff --git a/vendor/github.com/coreos/go-semver/semver/BUILD b/vendor/github.com/coreos/go-semver/semver/BUILD index 00c5cdede4f..917233ae9eb 100644 --- a/vendor/github.com/coreos/go-semver/semver/BUILD +++ b/vendor/github.com/coreos/go-semver/semver/BUILD @@ -13,7 +13,6 @@ go_library( "semver.go", "sort.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/go-systemd/daemon/BUILD b/vendor/github.com/coreos/go-systemd/daemon/BUILD index 170cbacc950..6295fceb652 100644 --- a/vendor/github.com/coreos/go-systemd/daemon/BUILD +++ b/vendor/github.com/coreos/go-systemd/daemon/BUILD @@ -13,7 +13,6 @@ go_library( "sdnotify.go", "watchdog.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/go-systemd/dbus/BUILD b/vendor/github.com/coreos/go-systemd/dbus/BUILD index c3fd84396a2..db986880434 100644 --- a/vendor/github.com/coreos/go-systemd/dbus/BUILD +++ b/vendor/github.com/coreos/go-systemd/dbus/BUILD @@ -17,7 +17,6 @@ go_library( "subscription.go", "subscription_set.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/godbus/dbus:go_default_library"], ) diff --git a/vendor/github.com/coreos/go-systemd/journal/BUILD b/vendor/github.com/coreos/go-systemd/journal/BUILD index 90926da7c08..b1224f709ca 100644 --- a/vendor/github.com/coreos/go-systemd/journal/BUILD +++ b/vendor/github.com/coreos/go-systemd/journal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["journal.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/go-systemd/unit/BUILD b/vendor/github.com/coreos/go-systemd/unit/BUILD index 83bd09dd2ee..595e86b64ce 100644 --- a/vendor/github.com/coreos/go-systemd/unit/BUILD +++ b/vendor/github.com/coreos/go-systemd/unit/BUILD @@ -15,7 +15,6 @@ go_library( "option.go", "serialize.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/go-systemd/util/BUILD b/vendor/github.com/coreos/go-systemd/util/BUILD index f0409d44108..2c44efba247 100644 --- a/vendor/github.com/coreos/go-systemd/util/BUILD +++ b/vendor/github.com/coreos/go-systemd/util/BUILD @@ -14,7 +14,6 @@ go_library( "util_cgo.go", ], cgo = True, - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/dlopen:go_default_library"], ) diff --git a/vendor/github.com/coreos/pkg/capnslog/BUILD b/vendor/github.com/coreos/pkg/capnslog/BUILD index 44d022652ea..49590e6ba5e 100644 --- a/vendor/github.com/coreos/pkg/capnslog/BUILD +++ b/vendor/github.com/coreos/pkg/capnslog/BUILD @@ -24,7 +24,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/go-systemd/journal:go_default_library"], ) diff --git a/vendor/github.com/coreos/pkg/dlopen/BUILD b/vendor/github.com/coreos/pkg/dlopen/BUILD index c68dee59a8f..8f99090b19a 100644 --- a/vendor/github.com/coreos/pkg/dlopen/BUILD +++ b/vendor/github.com/coreos/pkg/dlopen/BUILD @@ -19,7 +19,6 @@ go_library( }), cgo = True, clinkopts = ["-ldl"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/pkg/health/BUILD b/vendor/github.com/coreos/pkg/health/BUILD index 0a39c0046f7..a49fa90e352 100644 --- a/vendor/github.com/coreos/pkg/health/BUILD +++ b/vendor/github.com/coreos/pkg/health/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["health.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/coreos/pkg/httputil:go_default_library"], ) diff --git a/vendor/github.com/coreos/pkg/httputil/BUILD b/vendor/github.com/coreos/pkg/httputil/BUILD index a5d8634eed9..3fae275c4ba 100644 --- a/vendor/github.com/coreos/pkg/httputil/BUILD +++ b/vendor/github.com/coreos/pkg/httputil/BUILD @@ -13,7 +13,6 @@ go_library( "cookie.go", "json.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/pkg/timeutil/BUILD b/vendor/github.com/coreos/pkg/timeutil/BUILD index 1d2362736a2..b4e1274db15 100644 --- a/vendor/github.com/coreos/pkg/timeutil/BUILD +++ b/vendor/github.com/coreos/pkg/timeutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["backoff.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/coreos/rkt/api/v1alpha/BUILD b/vendor/github.com/coreos/rkt/api/v1alpha/BUILD index 0a2ad3fd2dc..bb13f4d8d42 100644 --- a/vendor/github.com/coreos/rkt/api/v1alpha/BUILD +++ b/vendor/github.com/coreos/rkt/api/v1alpha/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["api.pb.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD b/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD index f0d4e81137c..31ad6a6e09d 100644 --- a/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD +++ b/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD @@ -13,7 +13,6 @@ go_library( "md2man.go", "roff.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/russross/blackfriday:go_default_library"], ) diff --git a/vendor/github.com/davecgh/go-spew/spew/BUILD b/vendor/github.com/davecgh/go-spew/spew/BUILD index 5f798007fd3..b808c32daa6 100644 --- a/vendor/github.com/davecgh/go-spew/spew/BUILD +++ b/vendor/github.com/davecgh/go-spew/spew/BUILD @@ -18,7 +18,6 @@ go_library( "format.go", "spew.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/daviddengcn/go-colortext/BUILD b/vendor/github.com/daviddengcn/go-colortext/BUILD index ad9e2ad4739..ed550f07b33 100644 --- a/vendor/github.com/daviddengcn/go-colortext/BUILD +++ b/vendor/github.com/daviddengcn/go-colortext/BUILD @@ -18,7 +18,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/dgrijalva/jwt-go/BUILD b/vendor/github.com/dgrijalva/jwt-go/BUILD index c0f8d3dd4d2..f0d82be676f 100644 --- a/vendor/github.com/dgrijalva/jwt-go/BUILD +++ b/vendor/github.com/dgrijalva/jwt-go/BUILD @@ -25,7 +25,6 @@ go_library( "signing_method.go", "token.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/distribution/digest/BUILD b/vendor/github.com/docker/distribution/digest/BUILD index c142cc27b27..57bc1cb0767 100644 --- a/vendor/github.com/docker/distribution/digest/BUILD +++ b/vendor/github.com/docker/distribution/digest/BUILD @@ -16,7 +16,6 @@ go_library( "set.go", "verifiers.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/distribution/reference/BUILD b/vendor/github.com/docker/distribution/reference/BUILD index a13aded7c66..73b3a15f292 100644 --- a/vendor/github.com/docker/distribution/reference/BUILD +++ b/vendor/github.com/docker/distribution/reference/BUILD @@ -13,7 +13,6 @@ go_library( "reference.go", "regexp.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/distribution/digest:go_default_library"], ) diff --git a/vendor/github.com/docker/docker/api/types/BUILD b/vendor/github.com/docker/docker/api/types/BUILD index f0e376cdda1..e6073ae10d6 100644 --- a/vendor/github.com/docker/docker/api/types/BUILD +++ b/vendor/github.com/docker/docker/api/types/BUILD @@ -29,7 +29,6 @@ go_library( "types.go", "volume.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/api/types/container:go_default_library", "//vendor/github.com/docker/docker/api/types/filters:go_default_library", diff --git a/vendor/github.com/docker/docker/api/types/blkiodev/BUILD b/vendor/github.com/docker/docker/api/types/blkiodev/BUILD index b91b089bc43..d40a87d9c21 100644 --- a/vendor/github.com/docker/docker/api/types/blkiodev/BUILD +++ b/vendor/github.com/docker/docker/api/types/blkiodev/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["blkio.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/container/BUILD b/vendor/github.com/docker/docker/api/types/container/BUILD index 6c8b160087d..e8a1eb3b2f2 100644 --- a/vendor/github.com/docker/docker/api/types/container/BUILD +++ b/vendor/github.com/docker/docker/api/types/container/BUILD @@ -22,7 +22,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/api/types/blkiodev:go_default_library", "//vendor/github.com/docker/docker/api/types/mount:go_default_library", diff --git a/vendor/github.com/docker/docker/api/types/events/BUILD b/vendor/github.com/docker/docker/api/types/events/BUILD index 448d3680eec..954bb6c9e4f 100644 --- a/vendor/github.com/docker/docker/api/types/events/BUILD +++ b/vendor/github.com/docker/docker/api/types/events/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["events.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/filters/BUILD b/vendor/github.com/docker/docker/api/types/filters/BUILD index e213cd218f7..b4220c5fbdd 100644 --- a/vendor/github.com/docker/docker/api/types/filters/BUILD +++ b/vendor/github.com/docker/docker/api/types/filters/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["parse.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/docker/api/types/versions:go_default_library"], ) diff --git a/vendor/github.com/docker/docker/api/types/mount/BUILD b/vendor/github.com/docker/docker/api/types/mount/BUILD index f59afd6e458..ee174178015 100644 --- a/vendor/github.com/docker/docker/api/types/mount/BUILD +++ b/vendor/github.com/docker/docker/api/types/mount/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["mount.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/network/BUILD b/vendor/github.com/docker/docker/api/types/network/BUILD index 92c61ea2d55..3c577c35659 100644 --- a/vendor/github.com/docker/docker/api/types/network/BUILD +++ b/vendor/github.com/docker/docker/api/types/network/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["network.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/reference/BUILD b/vendor/github.com/docker/docker/api/types/reference/BUILD index 3ee7e42504f..5759dd588d4 100644 --- a/vendor/github.com/docker/docker/api/types/reference/BUILD +++ b/vendor/github.com/docker/docker/api/types/reference/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["image_reference.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/distribution/reference:go_default_library"], ) diff --git a/vendor/github.com/docker/docker/api/types/registry/BUILD b/vendor/github.com/docker/docker/api/types/registry/BUILD index 5cda5364534..9a525406eb8 100644 --- a/vendor/github.com/docker/docker/api/types/registry/BUILD +++ b/vendor/github.com/docker/docker/api/types/registry/BUILD @@ -13,7 +13,6 @@ go_library( "authenticate.go", "registry.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/strslice/BUILD b/vendor/github.com/docker/docker/api/types/strslice/BUILD index 5bc70d31071..eef1daa3607 100644 --- a/vendor/github.com/docker/docker/api/types/strslice/BUILD +++ b/vendor/github.com/docker/docker/api/types/strslice/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["strslice.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/swarm/BUILD b/vendor/github.com/docker/docker/api/types/swarm/BUILD index e6252de9949..3bcdc1b9476 100644 --- a/vendor/github.com/docker/docker/api/types/swarm/BUILD +++ b/vendor/github.com/docker/docker/api/types/swarm/BUILD @@ -19,7 +19,6 @@ go_library( "swarm.go", "task.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/api/types/container:go_default_library", "//vendor/github.com/docker/docker/api/types/mount:go_default_library", diff --git a/vendor/github.com/docker/docker/api/types/time/BUILD b/vendor/github.com/docker/docker/api/types/time/BUILD index 13d03b7e35e..2869dfb5b91 100644 --- a/vendor/github.com/docker/docker/api/types/time/BUILD +++ b/vendor/github.com/docker/docker/api/types/time/BUILD @@ -13,7 +13,6 @@ go_library( "duration_convert.go", "timestamp.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/versions/BUILD b/vendor/github.com/docker/docker/api/types/versions/BUILD index a5645d2d247..cabd881cd1e 100644 --- a/vendor/github.com/docker/docker/api/types/versions/BUILD +++ b/vendor/github.com/docker/docker/api/types/versions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["compare.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/api/types/volume/BUILD b/vendor/github.com/docker/docker/api/types/volume/BUILD index 091934083e6..4463e7266f1 100644 --- a/vendor/github.com/docker/docker/api/types/volume/BUILD +++ b/vendor/github.com/docker/docker/api/types/volume/BUILD @@ -13,7 +13,6 @@ go_library( "volumes_create.go", "volumes_list.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/docker/api/types:go_default_library"], ) diff --git a/vendor/github.com/docker/docker/client/BUILD b/vendor/github.com/docker/docker/client/BUILD index a36abe35ab5..598e89bc772 100644 --- a/vendor/github.com/docker/docker/client/BUILD +++ b/vendor/github.com/docker/docker/client/BUILD @@ -124,7 +124,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/distribution/reference:go_default_library", "//vendor/github.com/docker/docker/api/types:go_default_library", diff --git a/vendor/github.com/docker/docker/pkg/jsonlog/BUILD b/vendor/github.com/docker/docker/pkg/jsonlog/BUILD index b932fbc175b..c9041cd175d 100644 --- a/vendor/github.com/docker/docker/pkg/jsonlog/BUILD +++ b/vendor/github.com/docker/docker/pkg/jsonlog/BUILD @@ -15,7 +15,6 @@ go_library( "jsonlogbytes.go", "time_marshalling.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD b/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD index 4d6cda4d427..4cd6bf5d79b 100644 --- a/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD +++ b/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["jsonmessage.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/pkg/jsonlog:go_default_library", "//vendor/github.com/docker/docker/pkg/term:go_default_library", diff --git a/vendor/github.com/docker/docker/pkg/longpath/BUILD b/vendor/github.com/docker/docker/pkg/longpath/BUILD index 5b120788173..b4f6e9b8e2d 100644 --- a/vendor/github.com/docker/docker/pkg/longpath/BUILD +++ b/vendor/github.com/docker/docker/pkg/longpath/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["longpath.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/mount/BUILD b/vendor/github.com/docker/docker/pkg/mount/BUILD index 47e04d7d300..83159380455 100644 --- a/vendor/github.com/docker/docker/pkg/mount/BUILD +++ b/vendor/github.com/docker/docker/pkg/mount/BUILD @@ -29,7 +29,6 @@ go_library( "//conditions:default": [], }), cgo = True, - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/stdcopy/BUILD b/vendor/github.com/docker/docker/pkg/stdcopy/BUILD index c5b688c01c9..b4dad6905f9 100644 --- a/vendor/github.com/docker/docker/pkg/stdcopy/BUILD +++ b/vendor/github.com/docker/docker/pkg/stdcopy/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["stdcopy.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/docker/pkg/symlink/BUILD b/vendor/github.com/docker/docker/pkg/symlink/BUILD index 99c5bf85743..3d9154efe1d 100644 --- a/vendor/github.com/docker/docker/pkg/symlink/BUILD +++ b/vendor/github.com/docker/docker/pkg/symlink/BUILD @@ -18,7 +18,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/docker/pkg/system:go_default_library", ] + select({ diff --git a/vendor/github.com/docker/docker/pkg/system/BUILD b/vendor/github.com/docker/docker/pkg/system/BUILD index 92cedd13331..ba0a8219162 100644 --- a/vendor/github.com/docker/docker/pkg/system/BUILD +++ b/vendor/github.com/docker/docker/pkg/system/BUILD @@ -51,7 +51,6 @@ go_library( "//conditions:default": [], }), cgo = True, - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/docker/go-units:go_default_library", diff --git a/vendor/github.com/docker/docker/pkg/term/BUILD b/vendor/github.com/docker/docker/pkg/term/BUILD index b58a145cd0a..7dabaf09012 100644 --- a/vendor/github.com/docker/docker/pkg/term/BUILD +++ b/vendor/github.com/docker/docker/pkg/term/BUILD @@ -27,7 +27,6 @@ go_library( "//conditions:default": [], }), cgo = True, - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:windows_amd64": [ "//vendor/github.com/Azure/go-ansiterm/winterm:go_default_library", diff --git a/vendor/github.com/docker/docker/pkg/term/windows/BUILD b/vendor/github.com/docker/docker/pkg/term/windows/BUILD index 62901ae2fe8..820806ba044 100644 --- a/vendor/github.com/docker/docker/pkg/term/windows/BUILD +++ b/vendor/github.com/docker/docker/pkg/term/windows/BUILD @@ -19,7 +19,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/Azure/go-ansiterm:go_default_library", "//vendor/github.com/Sirupsen/logrus:go_default_library", diff --git a/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD b/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD index 57e26a8795e..60160b0e14d 100644 --- a/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD +++ b/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD @@ -14,7 +14,6 @@ go_library( "tlsconfig_clone_go16.go", "tlsconfig_clone_go17.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/engine-api/client/BUILD b/vendor/github.com/docker/engine-api/client/BUILD index 0b03a9b69a5..9a418e17b68 100644 --- a/vendor/github.com/docker/engine-api/client/BUILD +++ b/vendor/github.com/docker/engine-api/client/BUILD @@ -77,7 +77,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/distribution/reference:go_default_library", "//vendor/github.com/docker/engine-api/client/transport:go_default_library", diff --git a/vendor/github.com/docker/engine-api/client/transport/BUILD b/vendor/github.com/docker/engine-api/client/transport/BUILD index a6b417c7d88..232e115f3d4 100644 --- a/vendor/github.com/docker/engine-api/client/transport/BUILD +++ b/vendor/github.com/docker/engine-api/client/transport/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "transport.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/go-connections/sockets:go_default_library"], ) diff --git a/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD b/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD index 8623d9df571..31e229c39fb 100644 --- a/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD +++ b/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD @@ -14,7 +14,6 @@ go_library( "canceler_go14.go", "cancellable.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/engine-api/client/transport:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/github.com/docker/engine-api/types/BUILD b/vendor/github.com/docker/engine-api/types/BUILD index bf19af150a2..b0a57fd5605 100644 --- a/vendor/github.com/docker/engine-api/types/BUILD +++ b/vendor/github.com/docker/engine-api/types/BUILD @@ -17,7 +17,6 @@ go_library( "stats.go", "types.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/engine-api/types/container:go_default_library", "//vendor/github.com/docker/engine-api/types/filters:go_default_library", diff --git a/vendor/github.com/docker/engine-api/types/blkiodev/BUILD b/vendor/github.com/docker/engine-api/types/blkiodev/BUILD index b91b089bc43..d40a87d9c21 100644 --- a/vendor/github.com/docker/engine-api/types/blkiodev/BUILD +++ b/vendor/github.com/docker/engine-api/types/blkiodev/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["blkio.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/engine-api/types/container/BUILD b/vendor/github.com/docker/engine-api/types/container/BUILD index 95ce73d7146..2c34f744458 100644 --- a/vendor/github.com/docker/engine-api/types/container/BUILD +++ b/vendor/github.com/docker/engine-api/types/container/BUILD @@ -19,7 +19,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/engine-api/types/blkiodev:go_default_library", "//vendor/github.com/docker/engine-api/types/strslice:go_default_library", diff --git a/vendor/github.com/docker/engine-api/types/filters/BUILD b/vendor/github.com/docker/engine-api/types/filters/BUILD index 83a1f21fa86..be7e0e38986 100644 --- a/vendor/github.com/docker/engine-api/types/filters/BUILD +++ b/vendor/github.com/docker/engine-api/types/filters/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["parse.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/engine-api/types/versions:go_default_library"], ) diff --git a/vendor/github.com/docker/engine-api/types/network/BUILD b/vendor/github.com/docker/engine-api/types/network/BUILD index 92c61ea2d55..3c577c35659 100644 --- a/vendor/github.com/docker/engine-api/types/network/BUILD +++ b/vendor/github.com/docker/engine-api/types/network/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["network.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/engine-api/types/reference/BUILD b/vendor/github.com/docker/engine-api/types/reference/BUILD index 3ee7e42504f..5759dd588d4 100644 --- a/vendor/github.com/docker/engine-api/types/reference/BUILD +++ b/vendor/github.com/docker/engine-api/types/reference/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["image_reference.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/distribution/reference:go_default_library"], ) diff --git a/vendor/github.com/docker/engine-api/types/registry/BUILD b/vendor/github.com/docker/engine-api/types/registry/BUILD index e398e92f734..691940bf671 100644 --- a/vendor/github.com/docker/engine-api/types/registry/BUILD +++ b/vendor/github.com/docker/engine-api/types/registry/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["registry.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/engine-api/types/strslice/BUILD b/vendor/github.com/docker/engine-api/types/strslice/BUILD index 5bc70d31071..eef1daa3607 100644 --- a/vendor/github.com/docker/engine-api/types/strslice/BUILD +++ b/vendor/github.com/docker/engine-api/types/strslice/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["strslice.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/engine-api/types/time/BUILD b/vendor/github.com/docker/engine-api/types/time/BUILD index f12407119a9..5e0bd18b8e8 100644 --- a/vendor/github.com/docker/engine-api/types/time/BUILD +++ b/vendor/github.com/docker/engine-api/types/time/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["timestamp.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/engine-api/types/versions/BUILD b/vendor/github.com/docker/engine-api/types/versions/BUILD index a5645d2d247..cabd881cd1e 100644 --- a/vendor/github.com/docker/engine-api/types/versions/BUILD +++ b/vendor/github.com/docker/engine-api/types/versions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["compare.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/go-connections/nat/BUILD b/vendor/github.com/docker/go-connections/nat/BUILD index 24a58d36cc0..c136c437a15 100644 --- a/vendor/github.com/docker/go-connections/nat/BUILD +++ b/vendor/github.com/docker/go-connections/nat/BUILD @@ -14,7 +14,6 @@ go_library( "parse.go", "sort.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/go-connections/sockets/BUILD b/vendor/github.com/docker/go-connections/sockets/BUILD index 1bb85d36633..ebce1497ca2 100644 --- a/vendor/github.com/docker/go-connections/sockets/BUILD +++ b/vendor/github.com/docker/go-connections/sockets/BUILD @@ -24,7 +24,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/proxy:go_default_library", ] + select({ diff --git a/vendor/github.com/docker/go-connections/tlsconfig/BUILD b/vendor/github.com/docker/go-connections/tlsconfig/BUILD index ab66051efbb..2773a91d9f7 100644 --- a/vendor/github.com/docker/go-connections/tlsconfig/BUILD +++ b/vendor/github.com/docker/go-connections/tlsconfig/BUILD @@ -14,7 +14,6 @@ go_library( "config_client_ciphers.go", "config_legacy_client_ciphers.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/Sirupsen/logrus:go_default_library"], ) diff --git a/vendor/github.com/docker/go-units/BUILD b/vendor/github.com/docker/go-units/BUILD index 527f3b57edd..3e7cdb9ee30 100644 --- a/vendor/github.com/docker/go-units/BUILD +++ b/vendor/github.com/docker/go-units/BUILD @@ -14,7 +14,6 @@ go_library( "size.go", "ulimit.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/docker/spdystream/BUILD b/vendor/github.com/docker/spdystream/BUILD index fbc6c38953d..8912f596e77 100644 --- a/vendor/github.com/docker/spdystream/BUILD +++ b/vendor/github.com/docker/spdystream/BUILD @@ -16,7 +16,6 @@ go_library( "stream.go", "utils.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/spdystream/spdy:go_default_library"], ) diff --git a/vendor/github.com/docker/spdystream/spdy/BUILD b/vendor/github.com/docker/spdystream/spdy/BUILD index cb65e7792a1..e64a014ccf3 100644 --- a/vendor/github.com/docker/spdystream/spdy/BUILD +++ b/vendor/github.com/docker/spdystream/spdy/BUILD @@ -15,7 +15,6 @@ go_library( "types.go", "write.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/elazarl/go-bindata-assetfs/BUILD b/vendor/github.com/elazarl/go-bindata-assetfs/BUILD index c85ceff5200..992285d0189 100644 --- a/vendor/github.com/elazarl/go-bindata-assetfs/BUILD +++ b/vendor/github.com/elazarl/go-bindata-assetfs/BUILD @@ -13,7 +13,6 @@ go_library( "assetfs.go", "doc.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/elazarl/goproxy/BUILD b/vendor/github.com/elazarl/goproxy/BUILD index e0a89fa69ed..f47194cd71a 100644 --- a/vendor/github.com/elazarl/goproxy/BUILD +++ b/vendor/github.com/elazarl/goproxy/BUILD @@ -22,7 +22,6 @@ go_library( "responses.go", "signer.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/emicklei/go-restful-swagger12/BUILD b/vendor/github.com/emicklei/go-restful-swagger12/BUILD index 5e7abc48671..4f015bd3b1c 100644 --- a/vendor/github.com/emicklei/go-restful-swagger12/BUILD +++ b/vendor/github.com/emicklei/go-restful-swagger12/BUILD @@ -21,7 +21,6 @@ go_library( "swagger_builder.go", "swagger_webservice.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/github.com/emicklei/go-restful/log:go_default_library", diff --git a/vendor/github.com/emicklei/go-restful/BUILD b/vendor/github.com/emicklei/go-restful/BUILD index 47179213542..8b725e78fec 100644 --- a/vendor/github.com/emicklei/go-restful/BUILD +++ b/vendor/github.com/emicklei/go-restful/BUILD @@ -37,7 +37,6 @@ go_library( "web_service.go", "web_service_container.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/emicklei/go-restful/log:go_default_library"], ) diff --git a/vendor/github.com/emicklei/go-restful/log/BUILD b/vendor/github.com/emicklei/go-restful/log/BUILD index 6f7006448d1..376173a90ad 100644 --- a/vendor/github.com/emicklei/go-restful/log/BUILD +++ b/vendor/github.com/emicklei/go-restful/log/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["log.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/evanphx/json-patch/BUILD b/vendor/github.com/evanphx/json-patch/BUILD index 88e573e3c25..807c965f3fe 100644 --- a/vendor/github.com/evanphx/json-patch/BUILD +++ b/vendor/github.com/evanphx/json-patch/BUILD @@ -13,7 +13,6 @@ go_library( "merge.go", "patch.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/exponent-io/jsonpath/BUILD b/vendor/github.com/exponent-io/jsonpath/BUILD index c6ca7770022..ad212b69e11 100644 --- a/vendor/github.com/exponent-io/jsonpath/BUILD +++ b/vendor/github.com/exponent-io/jsonpath/BUILD @@ -14,7 +14,6 @@ go_library( "path.go", "pathaction.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/fatih/camelcase/BUILD b/vendor/github.com/fatih/camelcase/BUILD index d63414b1385..32ac9cd33da 100644 --- a/vendor/github.com/fatih/camelcase/BUILD +++ b/vendor/github.com/fatih/camelcase/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["camelcase.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/fsnotify/fsnotify/BUILD b/vendor/github.com/fsnotify/fsnotify/BUILD index 0071034da52..30dcc67dfb8 100644 --- a/vendor/github.com/fsnotify/fsnotify/BUILD +++ b/vendor/github.com/fsnotify/fsnotify/BUILD @@ -25,7 +25,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:darwin_amd64": [ "//vendor/golang.org/x/sys/unix:go_default_library", diff --git a/vendor/github.com/garyburd/redigo/internal/BUILD b/vendor/github.com/garyburd/redigo/internal/BUILD index 5a5e9160ba8..5c2a65c47dc 100644 --- a/vendor/github.com/garyburd/redigo/internal/BUILD +++ b/vendor/github.com/garyburd/redigo/internal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["commandinfo.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/garyburd/redigo/redis/BUILD b/vendor/github.com/garyburd/redigo/redis/BUILD index 2b649d9b4c1..a5299be2452 100644 --- a/vendor/github.com/garyburd/redigo/redis/BUILD +++ b/vendor/github.com/garyburd/redigo/redis/BUILD @@ -20,7 +20,6 @@ go_library( "scan.go", "script.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/garyburd/redigo/internal:go_default_library"], ) diff --git a/vendor/github.com/ghodss/yaml/BUILD b/vendor/github.com/ghodss/yaml/BUILD index 42b38c70daf..85f890258c9 100644 --- a/vendor/github.com/ghodss/yaml/BUILD +++ b/vendor/github.com/ghodss/yaml/BUILD @@ -13,7 +13,6 @@ go_library( "fields.go", "yaml.go", ], - tags = ["automanaged"], deps = ["//vendor/gopkg.in/yaml.v2:go_default_library"], ) diff --git a/vendor/github.com/go-ini/ini/BUILD b/vendor/github.com/go-ini/ini/BUILD index ebe735e3e5d..7ff7e208d5d 100644 --- a/vendor/github.com/go-ini/ini/BUILD +++ b/vendor/github.com/go-ini/ini/BUILD @@ -13,7 +13,6 @@ go_library( "ini.go", "struct.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/go-openapi/analysis/BUILD b/vendor/github.com/go-openapi/analysis/BUILD index fbea5a0b0ec..ea7f038ac56 100644 --- a/vendor/github.com/go-openapi/analysis/BUILD +++ b/vendor/github.com/go-openapi/analysis/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["analyzer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/jsonpointer:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", diff --git a/vendor/github.com/go-openapi/errors/BUILD b/vendor/github.com/go-openapi/errors/BUILD index a48c0193a81..3e501ac3b80 100644 --- a/vendor/github.com/go-openapi/errors/BUILD +++ b/vendor/github.com/go-openapi/errors/BUILD @@ -17,7 +17,6 @@ go_library( "parsing.go", "schema.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/go-openapi/jsonpointer/BUILD b/vendor/github.com/go-openapi/jsonpointer/BUILD index 89ea7a753bf..37f0040a662 100644 --- a/vendor/github.com/go-openapi/jsonpointer/BUILD +++ b/vendor/github.com/go-openapi/jsonpointer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["pointer.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/go-openapi/swag:go_default_library"], ) diff --git a/vendor/github.com/go-openapi/jsonreference/BUILD b/vendor/github.com/go-openapi/jsonreference/BUILD index 275b9a54421..1a549e409ca 100644 --- a/vendor/github.com/go-openapi/jsonreference/BUILD +++ b/vendor/github.com/go-openapi/jsonreference/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["reference.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/PuerkitoBio/purell:go_default_library", "//vendor/github.com/go-openapi/jsonpointer:go_default_library", diff --git a/vendor/github.com/go-openapi/loads/BUILD b/vendor/github.com/go-openapi/loads/BUILD index 41550384d46..0057d8383fa 100644 --- a/vendor/github.com/go-openapi/loads/BUILD +++ b/vendor/github.com/go-openapi/loads/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["spec.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/analysis:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", diff --git a/vendor/github.com/go-openapi/runtime/BUILD b/vendor/github.com/go-openapi/runtime/BUILD index ce6d1da0b86..28983aa3b70 100644 --- a/vendor/github.com/go-openapi/runtime/BUILD +++ b/vendor/github.com/go-openapi/runtime/BUILD @@ -26,7 +26,6 @@ go_library( "values.go", "xml.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/errors:go_default_library", "//vendor/github.com/go-openapi/strfmt:go_default_library", diff --git a/vendor/github.com/go-openapi/spec/BUILD b/vendor/github.com/go-openapi/spec/BUILD index 8f87a5ca5c8..841c38d6b03 100644 --- a/vendor/github.com/go-openapi/spec/BUILD +++ b/vendor/github.com/go-openapi/spec/BUILD @@ -32,7 +32,6 @@ go_library( "tag.go", "xml_object.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/jsonpointer:go_default_library", "//vendor/github.com/go-openapi/jsonreference:go_default_library", diff --git a/vendor/github.com/go-openapi/strfmt/BUILD b/vendor/github.com/go-openapi/strfmt/BUILD index 7d8105eb922..d268875558e 100644 --- a/vendor/github.com/go-openapi/strfmt/BUILD +++ b/vendor/github.com/go-openapi/strfmt/BUILD @@ -17,7 +17,6 @@ go_library( "format.go", "time.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/asaskevich/govalidator:go_default_library", "//vendor/github.com/go-openapi/errors:go_default_library", diff --git a/vendor/github.com/go-openapi/swag/BUILD b/vendor/github.com/go-openapi/swag/BUILD index 6f1561fe845..1571114141b 100644 --- a/vendor/github.com/go-openapi/swag/BUILD +++ b/vendor/github.com/go-openapi/swag/BUILD @@ -18,7 +18,6 @@ go_library( "path.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mailru/easyjson/jlexer:go_default_library", "//vendor/github.com/mailru/easyjson/jwriter:go_default_library", diff --git a/vendor/github.com/go-openapi/validate/BUILD b/vendor/github.com/go-openapi/validate/BUILD index c58411f139f..0241b41b803 100644 --- a/vendor/github.com/go-openapi/validate/BUILD +++ b/vendor/github.com/go-openapi/validate/BUILD @@ -21,7 +21,6 @@ go_library( "validator.go", "values.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/analysis:go_default_library", "//vendor/github.com/go-openapi/errors:go_default_library", diff --git a/vendor/github.com/godbus/dbus/BUILD b/vendor/github.com/godbus/dbus/BUILD index 42ab7d65aec..354ea6e9c33 100644 --- a/vendor/github.com/godbus/dbus/BUILD +++ b/vendor/github.com/godbus/dbus/BUILD @@ -42,7 +42,6 @@ go_library( "//conditions:default": [], }), cgo = True, - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/gogo/protobuf/gogoproto/BUILD b/vendor/github.com/gogo/protobuf/gogoproto/BUILD index 852c0738ef5..a5062a17102 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/BUILD +++ b/vendor/github.com/gogo/protobuf/gogoproto/BUILD @@ -14,7 +14,6 @@ go_library( "gogo.pb.go", "helper.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/compare/BUILD b/vendor/github.com/gogo/protobuf/plugin/compare/BUILD index a033b241efe..3750574a3e0 100644 --- a/vendor/github.com/gogo/protobuf/plugin/compare/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/compare/BUILD @@ -13,7 +13,6 @@ go_library( "compare.go", "comparetest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD index a965d837c71..ed38caeb546 100644 --- a/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["defaultcheck.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/description/BUILD b/vendor/github.com/gogo/protobuf/plugin/description/BUILD index 9350f4b2fae..e542ee7270e 100644 --- a/vendor/github.com/gogo/protobuf/plugin/description/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/description/BUILD @@ -13,7 +13,6 @@ go_library( "description.go", "descriptiontest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD index 12fc73597b7..c34a153d1e8 100644 --- a/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["embedcheck.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD b/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD index 35934294e65..761b1747a00 100644 --- a/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["enumstringer.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/equal/BUILD b/vendor/github.com/gogo/protobuf/plugin/equal/BUILD index f57cc459d0a..5d103f72fd9 100644 --- a/vendor/github.com/gogo/protobuf/plugin/equal/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/equal/BUILD @@ -13,7 +13,6 @@ go_library( "equal.go", "equaltest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/face/BUILD b/vendor/github.com/gogo/protobuf/plugin/face/BUILD index 69ad01a187d..4751c4cb29a 100644 --- a/vendor/github.com/gogo/protobuf/plugin/face/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/face/BUILD @@ -13,7 +13,6 @@ go_library( "face.go", "facetest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD b/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD index cfdb42d6d2c..d317eae312d 100644 --- a/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD @@ -13,7 +13,6 @@ go_library( "gostring.go", "gostringtest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD b/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD index ebb604ca057..83b0f978567 100644 --- a/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["marshalto.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD index 86a32b2d24c..c9de1f0a832 100644 --- a/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["oneofcheck.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/populate/BUILD b/vendor/github.com/gogo/protobuf/plugin/populate/BUILD index a4a62affe9a..fcd0baeded2 100644 --- a/vendor/github.com/gogo/protobuf/plugin/populate/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/populate/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["populate.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/size/BUILD b/vendor/github.com/gogo/protobuf/plugin/size/BUILD index 4a481a153bf..ab662eefea4 100644 --- a/vendor/github.com/gogo/protobuf/plugin/size/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/size/BUILD @@ -13,7 +13,6 @@ go_library( "size.go", "sizetest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD b/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD index 1136c3d94f6..1cb61d1f762 100644 --- a/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD @@ -13,7 +13,6 @@ go_library( "stringer.go", "stringertest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD b/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD index 7fb0177fb5e..cc43a466c27 100644 --- a/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["testgen.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/union/BUILD b/vendor/github.com/gogo/protobuf/plugin/union/BUILD index 68d6b58ab47..5b5ab0f6f6b 100644 --- a/vendor/github.com/gogo/protobuf/plugin/union/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/union/BUILD @@ -13,7 +13,6 @@ go_library( "union.go", "uniontest.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/testgen:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD b/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD index 3cef129d5b1..9c623b32256 100644 --- a/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["unmarshal.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/proto/BUILD b/vendor/github.com/gogo/protobuf/proto/BUILD index c66531dcfd4..2164c167c0a 100644 --- a/vendor/github.com/gogo/protobuf/proto/BUILD +++ b/vendor/github.com/gogo/protobuf/proto/BUILD @@ -34,7 +34,6 @@ go_library( "timestamp.go", "timestamp_gogo.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD index ddb8ccd1329..76609965e80 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD @@ -15,7 +15,6 @@ go_library( "descriptor_gostring.gen.go", "helper.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/gogo/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD index b71d5b81f3f..6d6873ddd62 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD @@ -13,7 +13,6 @@ go_library( "generator.go", "helper.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD index d96f0e37e9d..ff8c16f8c87 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["grpc.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD index a3e775174d1..e0008f72ef9 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["plugin.pb.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/proto:go_default_library", "//vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/sortkeys/BUILD b/vendor/github.com/gogo/protobuf/sortkeys/BUILD index 5c845636368..098cee6e1f6 100644 --- a/vendor/github.com/gogo/protobuf/sortkeys/BUILD +++ b/vendor/github.com/gogo/protobuf/sortkeys/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["sortkeys.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/gogo/protobuf/vanity/BUILD b/vendor/github.com/gogo/protobuf/vanity/BUILD index f999786d52b..90bab99635f 100644 --- a/vendor/github.com/gogo/protobuf/vanity/BUILD +++ b/vendor/github.com/gogo/protobuf/vanity/BUILD @@ -16,7 +16,6 @@ go_library( "foreach.go", "msg.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/gogoproto:go_default_library", "//vendor/github.com/gogo/protobuf/proto:go_default_library", diff --git a/vendor/github.com/gogo/protobuf/vanity/command/BUILD b/vendor/github.com/gogo/protobuf/vanity/command/BUILD index 86397e47301..2a0b78687bf 100644 --- a/vendor/github.com/gogo/protobuf/vanity/command/BUILD +++ b/vendor/github.com/gogo/protobuf/vanity/command/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["command.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gogo/protobuf/plugin/compare:go_default_library", "//vendor/github.com/gogo/protobuf/plugin/defaultcheck:go_default_library", diff --git a/vendor/github.com/golang/glog/BUILD b/vendor/github.com/golang/glog/BUILD index 7b41af72bd4..d88c6f6c413 100644 --- a/vendor/github.com/golang/glog/BUILD +++ b/vendor/github.com/golang/glog/BUILD @@ -13,7 +13,6 @@ go_library( "glog.go", "glog_file.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/golang/groupcache/lru/BUILD b/vendor/github.com/golang/groupcache/lru/BUILD index fcdf8021d5f..0905bf773cd 100644 --- a/vendor/github.com/golang/groupcache/lru/BUILD +++ b/vendor/github.com/golang/groupcache/lru/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["lru.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/golang/mock/gomock/BUILD b/vendor/github.com/golang/mock/gomock/BUILD index ed99389fc93..920373be442 100644 --- a/vendor/github.com/golang/mock/gomock/BUILD +++ b/vendor/github.com/golang/mock/gomock/BUILD @@ -15,7 +15,6 @@ go_library( "controller.go", "matchers.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/golang/protobuf/jsonpb/BUILD b/vendor/github.com/golang/protobuf/jsonpb/BUILD index bbc8fa0d012..f7d05c0d029 100644 --- a/vendor/github.com/golang/protobuf/jsonpb/BUILD +++ b/vendor/github.com/golang/protobuf/jsonpb/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["jsonpb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/golang/protobuf/proto/BUILD b/vendor/github.com/golang/protobuf/proto/BUILD index 8f210f4375e..bcf3caefff7 100644 --- a/vendor/github.com/golang/protobuf/proto/BUILD +++ b/vendor/github.com/golang/protobuf/proto/BUILD @@ -22,7 +22,6 @@ go_library( "text.go", "text_parser.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/golang/protobuf/ptypes/BUILD b/vendor/github.com/golang/protobuf/ptypes/BUILD index 096f367030b..4d6a314a320 100644 --- a/vendor/github.com/golang/protobuf/ptypes/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/BUILD @@ -15,7 +15,6 @@ go_library( "duration.go", "timestamp.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", diff --git a/vendor/github.com/golang/protobuf/ptypes/any/BUILD b/vendor/github.com/golang/protobuf/ptypes/any/BUILD index 4a08af74c41..eab75bd6152 100644 --- a/vendor/github.com/golang/protobuf/ptypes/any/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/any/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["any.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/BUILD b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD index 0ebec532016..07435866f2c 100644 --- a/vendor/github.com/golang/protobuf/ptypes/duration/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["duration.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD index 35a469047ef..c260b201a66 100644 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["timestamp.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/google/btree/BUILD b/vendor/github.com/google/btree/BUILD index 6d74f48e9e3..677e051f2f4 100644 --- a/vendor/github.com/google/btree/BUILD +++ b/vendor/github.com/google/btree/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["btree.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/api/BUILD b/vendor/github.com/google/cadvisor/api/BUILD index 14b08d52e59..9af09ee4f2b 100644 --- a/vendor/github.com/google/cadvisor/api/BUILD +++ b/vendor/github.com/google/cadvisor/api/BUILD @@ -13,7 +13,6 @@ go_library( "handler.go", "versions.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/events:go_default_library", diff --git a/vendor/github.com/google/cadvisor/cache/memory/BUILD b/vendor/github.com/google/cadvisor/cache/memory/BUILD index 0c57665a7c4..c39590f2c2b 100644 --- a/vendor/github.com/google/cadvisor/cache/memory/BUILD +++ b/vendor/github.com/google/cadvisor/cache/memory/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["memory.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/client/v2/BUILD b/vendor/github.com/google/cadvisor/client/v2/BUILD index 54d755f9dd1..d8c3e0e6122 100644 --- a/vendor/github.com/google/cadvisor/client/v2/BUILD +++ b/vendor/github.com/google/cadvisor/client/v2/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["client.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/info/v2:go_default_library", diff --git a/vendor/github.com/google/cadvisor/collector/BUILD b/vendor/github.com/google/cadvisor/collector/BUILD index 7432abd226e..da2e3eeadcc 100644 --- a/vendor/github.com/google/cadvisor/collector/BUILD +++ b/vendor/github.com/google/cadvisor/collector/BUILD @@ -18,7 +18,6 @@ go_library( "types.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/cadvisor/container:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/BUILD b/vendor/github.com/google/cadvisor/container/BUILD index 529740fb23e..560ccf2c4c2 100644 --- a/vendor/github.com/google/cadvisor/container/BUILD +++ b/vendor/github.com/google/cadvisor/container/BUILD @@ -13,7 +13,6 @@ go_library( "container.go", "factory.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/common/BUILD b/vendor/github.com/google/cadvisor/container/common/BUILD index 8940f5d2d5f..ce47dc4d897 100644 --- a/vendor/github.com/google/cadvisor/container/common/BUILD +++ b/vendor/github.com/google/cadvisor/container/common/BUILD @@ -15,7 +15,6 @@ go_library( "helpers.go", "inotify_watcher.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/container:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/docker/BUILD b/vendor/github.com/google/cadvisor/container/docker/BUILD index d889d804653..fc601adb5bf 100644 --- a/vendor/github.com/google/cadvisor/container/docker/BUILD +++ b/vendor/github.com/google/cadvisor/container/docker/BUILD @@ -15,7 +15,6 @@ go_library( "factory.go", "handler.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/docker/engine-api/client:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/libcontainer/BUILD b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD index d0d87369756..b8182eaa355 100644 --- a/vendor/github.com/google/cadvisor/container/libcontainer/BUILD +++ b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["helpers.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/container:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/raw/BUILD b/vendor/github.com/google/cadvisor/container/raw/BUILD index ba2b64449ed..d186634c8bc 100644 --- a/vendor/github.com/google/cadvisor/container/raw/BUILD +++ b/vendor/github.com/google/cadvisor/container/raw/BUILD @@ -13,7 +13,6 @@ go_library( "factory.go", "handler.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/container:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/rkt/BUILD b/vendor/github.com/google/cadvisor/container/rkt/BUILD index e53f08d00b9..5ddbf389392 100644 --- a/vendor/github.com/google/cadvisor/container/rkt/BUILD +++ b/vendor/github.com/google/cadvisor/container/rkt/BUILD @@ -15,7 +15,6 @@ go_library( "handler.go", "helpers.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/blang/semver:go_default_library", "//vendor/github.com/coreos/rkt/api/v1alpha:go_default_library", diff --git a/vendor/github.com/google/cadvisor/container/systemd/BUILD b/vendor/github.com/google/cadvisor/container/systemd/BUILD index 8c446bc7b2b..5b5e68116b0 100644 --- a/vendor/github.com/google/cadvisor/container/systemd/BUILD +++ b/vendor/github.com/google/cadvisor/container/systemd/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["factory.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/container:go_default_library", diff --git a/vendor/github.com/google/cadvisor/devicemapper/BUILD b/vendor/github.com/google/cadvisor/devicemapper/BUILD index 47701c98451..1c8256bafbe 100644 --- a/vendor/github.com/google/cadvisor/devicemapper/BUILD +++ b/vendor/github.com/google/cadvisor/devicemapper/BUILD @@ -16,7 +16,6 @@ go_library( "thin_pool_watcher.go", "util.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/glog:go_default_library"], ) diff --git a/vendor/github.com/google/cadvisor/events/BUILD b/vendor/github.com/google/cadvisor/events/BUILD index 5a76cffa95d..522fdd86f67 100644 --- a/vendor/github.com/google/cadvisor/events/BUILD +++ b/vendor/github.com/google/cadvisor/events/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["handler.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/fs/BUILD b/vendor/github.com/google/cadvisor/fs/BUILD index 44eb349b426..6db3fe3718c 100644 --- a/vendor/github.com/google/cadvisor/fs/BUILD +++ b/vendor/github.com/google/cadvisor/fs/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/docker/docker/pkg/mount:go_default_library", diff --git a/vendor/github.com/google/cadvisor/healthz/BUILD b/vendor/github.com/google/cadvisor/healthz/BUILD index 53497755c51..504c5cb9849 100644 --- a/vendor/github.com/google/cadvisor/healthz/BUILD +++ b/vendor/github.com/google/cadvisor/healthz/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["healthz.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/google/cadvisor/http/mux:go_default_library"], ) diff --git a/vendor/github.com/google/cadvisor/http/BUILD b/vendor/github.com/google/cadvisor/http/BUILD index 1cb58a4f877..1bc17155a45 100644 --- a/vendor/github.com/google/cadvisor/http/BUILD +++ b/vendor/github.com/google/cadvisor/http/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["handlers.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/abbot/go-http-auth:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/github.com/google/cadvisor/http/mux/BUILD b/vendor/github.com/google/cadvisor/http/mux/BUILD index 533bda8cfd0..904b467994f 100644 --- a/vendor/github.com/google/cadvisor/http/mux/BUILD +++ b/vendor/github.com/google/cadvisor/http/mux/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["mux.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/info/v1/BUILD b/vendor/github.com/google/cadvisor/info/v1/BUILD index 17cbb0fca05..39066daab76 100644 --- a/vendor/github.com/google/cadvisor/info/v1/BUILD +++ b/vendor/github.com/google/cadvisor/info/v1/BUILD @@ -15,7 +15,6 @@ go_library( "machine.go", "metric.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/info/v2/BUILD b/vendor/github.com/google/cadvisor/info/v2/BUILD index b4e40c48c81..700987472b7 100644 --- a/vendor/github.com/google/cadvisor/info/v2/BUILD +++ b/vendor/github.com/google/cadvisor/info/v2/BUILD @@ -14,7 +14,6 @@ go_library( "conversion.go", "machine.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/machine/BUILD b/vendor/github.com/google/cadvisor/machine/BUILD index 6e3e05c2da0..d6222e0a518 100644 --- a/vendor/github.com/google/cadvisor/machine/BUILD +++ b/vendor/github.com/google/cadvisor/machine/BUILD @@ -13,7 +13,6 @@ go_library( "info.go", "machine.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/fs:go_default_library", diff --git a/vendor/github.com/google/cadvisor/manager/BUILD b/vendor/github.com/google/cadvisor/manager/BUILD index c1e123269ed..7da1972e185 100644 --- a/vendor/github.com/google/cadvisor/manager/BUILD +++ b/vendor/github.com/google/cadvisor/manager/BUILD @@ -13,7 +13,6 @@ go_library( "container.go", "manager.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/docker/go-units:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/github.com/google/cadvisor/manager/watcher/BUILD b/vendor/github.com/google/cadvisor/manager/watcher/BUILD index bc27cd3c64d..b25074f1925 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/BUILD +++ b/vendor/github.com/google/cadvisor/manager/watcher/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["watcher.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD b/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD index c3cfb3d79a9..3e87336f660 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD +++ b/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["raw.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/container/common:go_default_library", diff --git a/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD b/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD index 85f69c9b527..be61578dd92 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD +++ b/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["rkt.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/coreos/rkt/api/v1alpha:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/github.com/google/cadvisor/metrics/BUILD b/vendor/github.com/google/cadvisor/metrics/BUILD index b3dd3659944..bfec4cbc68a 100644 --- a/vendor/github.com/google/cadvisor/metrics/BUILD +++ b/vendor/github.com/google/cadvisor/metrics/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["prometheus.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/pages/BUILD b/vendor/github.com/google/cadvisor/pages/BUILD index 554073e2408..6152f6589a2 100644 --- a/vendor/github.com/google/cadvisor/pages/BUILD +++ b/vendor/github.com/google/cadvisor/pages/BUILD @@ -15,7 +15,6 @@ go_library( "pages.go", "templates.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/abbot/go-http-auth:go_default_library", "//vendor/github.com/golang/glog:go_default_library", diff --git a/vendor/github.com/google/cadvisor/pages/static/BUILD b/vendor/github.com/google/cadvisor/pages/static/BUILD index 69da867568f..d84095b60e1 100644 --- a/vendor/github.com/google/cadvisor/pages/static/BUILD +++ b/vendor/github.com/google/cadvisor/pages/static/BUILD @@ -13,7 +13,6 @@ go_library( "assets.go", "static.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/storage/BUILD b/vendor/github.com/google/cadvisor/storage/BUILD index 679ffde7596..14e46caeec6 100644 --- a/vendor/github.com/google/cadvisor/storage/BUILD +++ b/vendor/github.com/google/cadvisor/storage/BUILD @@ -13,7 +13,6 @@ go_library( "common_flags.go", "storage.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/google/cadvisor/info/v1:go_default_library"], ) diff --git a/vendor/github.com/google/cadvisor/summary/BUILD b/vendor/github.com/google/cadvisor/summary/BUILD index e61d769c884..75ddbc6b000 100644 --- a/vendor/github.com/google/cadvisor/summary/BUILD +++ b/vendor/github.com/google/cadvisor/summary/BUILD @@ -14,7 +14,6 @@ go_library( "percentiles.go", "summary.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/info/v2:go_default_library", diff --git a/vendor/github.com/google/cadvisor/utils/BUILD b/vendor/github.com/google/cadvisor/utils/BUILD index 8c486dd4b06..efc3e12618b 100644 --- a/vendor/github.com/google/cadvisor/utils/BUILD +++ b/vendor/github.com/google/cadvisor/utils/BUILD @@ -14,7 +14,6 @@ go_library( "timed_store.go", "utils.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD b/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD index 324d5b9785a..6bbdde92ccd 100644 --- a/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD @@ -15,7 +15,6 @@ go_library( "cloudinfo.go", "gce.go", ], - tags = ["automanaged"], deps = [ "//vendor/cloud.google.com/go/compute/metadata:go_default_library", "//vendor/github.com/aws/aws-sdk-go/aws:go_default_library", diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/BUILD index 69873be7f69..d101cce2dcb 100644 --- a/vendor/github.com/google/cadvisor/utils/cpuload/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cpuload/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["cpuload.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD index 29a252ad439..93640d0389b 100644 --- a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD @@ -16,7 +16,6 @@ go_library( "reader.go", ], cgo = True, - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/info/v1:go_default_library", diff --git a/vendor/github.com/google/cadvisor/utils/docker/BUILD b/vendor/github.com/google/cadvisor/utils/docker/BUILD index 3597a3045cb..46379566b4a 100644 --- a/vendor/github.com/google/cadvisor/utils/docker/BUILD +++ b/vendor/github.com/google/cadvisor/utils/docker/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["docker.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/docker/engine-api/types:go_default_library"], ) diff --git a/vendor/github.com/google/cadvisor/utils/oomparser/BUILD b/vendor/github.com/google/cadvisor/utils/oomparser/BUILD index 5d6887722f4..a7df684e14f 100644 --- a/vendor/github.com/google/cadvisor/utils/oomparser/BUILD +++ b/vendor/github.com/google/cadvisor/utils/oomparser/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["oomparser.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/google/cadvisor/utils:go_default_library", diff --git a/vendor/github.com/google/cadvisor/utils/sysfs/BUILD b/vendor/github.com/google/cadvisor/utils/sysfs/BUILD index 4a0e316e644..4d8495cb63c 100644 --- a/vendor/github.com/google/cadvisor/utils/sysfs/BUILD +++ b/vendor/github.com/google/cadvisor/utils/sysfs/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["sysfs.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD b/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD index 08e7d8a3c41..4cb20ed10ab 100644 --- a/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD +++ b/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["sysinfo.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/cadvisor/info/v1:go_default_library", "//vendor/github.com/google/cadvisor/utils/sysfs:go_default_library", diff --git a/vendor/github.com/google/cadvisor/utils/tail/BUILD b/vendor/github.com/google/cadvisor/utils/tail/BUILD index 734c6a15364..e83df808b62 100644 --- a/vendor/github.com/google/cadvisor/utils/tail/BUILD +++ b/vendor/github.com/google/cadvisor/utils/tail/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["tail.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/golang.org/x/exp/inotify:go_default_library", diff --git a/vendor/github.com/google/cadvisor/validate/BUILD b/vendor/github.com/google/cadvisor/validate/BUILD index 6ec53d54c16..2a07547916e 100644 --- a/vendor/github.com/google/cadvisor/validate/BUILD +++ b/vendor/github.com/google/cadvisor/validate/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["validate.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/cadvisor/container/docker:go_default_library", "//vendor/github.com/google/cadvisor/manager:go_default_library", diff --git a/vendor/github.com/google/cadvisor/version/BUILD b/vendor/github.com/google/cadvisor/version/BUILD index 4928f163172..f540db33932 100644 --- a/vendor/github.com/google/cadvisor/version/BUILD +++ b/vendor/github.com/google/cadvisor/version/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["version.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/cadvisor/zfs/BUILD b/vendor/github.com/google/cadvisor/zfs/BUILD index dcdb6874d58..bcff615bebe 100644 --- a/vendor/github.com/google/cadvisor/zfs/BUILD +++ b/vendor/github.com/google/cadvisor/zfs/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["watcher.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/github.com/mistifyio/go-zfs:go_default_library", diff --git a/vendor/github.com/google/certificate-transparency/go/BUILD b/vendor/github.com/google/certificate-transparency/go/BUILD index cf02006bcef..d453491e488 100644 --- a/vendor/github.com/google/certificate-transparency/go/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/BUILD @@ -14,7 +14,6 @@ go_library( "signatures.go", "types.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/google/certificate-transparency/go/x509:go_default_library"], ) diff --git a/vendor/github.com/google/certificate-transparency/go/asn1/BUILD b/vendor/github.com/google/certificate-transparency/go/asn1/BUILD index 3bfaf716edc..4d9a60f0527 100644 --- a/vendor/github.com/google/certificate-transparency/go/asn1/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/asn1/BUILD @@ -14,7 +14,6 @@ go_library( "common.go", "marshal.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/google/certificate-transparency/go/client/BUILD b/vendor/github.com/google/certificate-transparency/go/client/BUILD index 959bab46afc..d735ecc7af5 100644 --- a/vendor/github.com/google/certificate-transparency/go/client/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/client/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["logclient.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/google/certificate-transparency/go:go_default_library", "//vendor/github.com/mreiferson/go-httpclient:go_default_library", diff --git a/vendor/github.com/google/certificate-transparency/go/x509/BUILD b/vendor/github.com/google/certificate-transparency/go/x509/BUILD index ecf78fd772b..9e9022f03eb 100644 --- a/vendor/github.com/google/certificate-transparency/go/x509/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/x509/BUILD @@ -43,7 +43,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/google/certificate-transparency/go/asn1:go_default_library", "//vendor/github.com/google/certificate-transparency/go/x509/pkix:go_default_library", diff --git a/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD b/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD index e2d0ab429a0..62fac67d8a8 100644 --- a/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["pkix.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/google/certificate-transparency/go/asn1:go_default_library"], ) diff --git a/vendor/github.com/google/gofuzz/BUILD b/vendor/github.com/google/gofuzz/BUILD index ec629e6785e..b878fccfda1 100644 --- a/vendor/github.com/google/gofuzz/BUILD +++ b/vendor/github.com/google/gofuzz/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "fuzz.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD b/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD index 529db562129..7a793f41ba4 100644 --- a/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD +++ b/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD @@ -13,7 +13,6 @@ go_library( "OpenAPIv2.go", "OpenAPIv2.pb.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", diff --git a/vendor/github.com/googleapis/gnostic/compiler/BUILD b/vendor/github.com/googleapis/gnostic/compiler/BUILD index 0bce780808c..f8978aa0bac 100644 --- a/vendor/github.com/googleapis/gnostic/compiler/BUILD +++ b/vendor/github.com/googleapis/gnostic/compiler/BUILD @@ -17,7 +17,6 @@ go_library( "main.go", "reader.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/github.com/golang/protobuf/ptypes/any:go_default_library", diff --git a/vendor/github.com/googleapis/gnostic/extensions/BUILD b/vendor/github.com/googleapis/gnostic/extensions/BUILD index bc8897d7c5b..8ba6d6184e5 100644 --- a/vendor/github.com/googleapis/gnostic/extensions/BUILD +++ b/vendor/github.com/googleapis/gnostic/extensions/BUILD @@ -13,7 +13,6 @@ go_library( "extension.pb.go", "extensions.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/github.com/golang/protobuf/ptypes:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/BUILD b/vendor/github.com/gophercloud/gophercloud/BUILD index cfff084a0be..8eec9949bfa 100644 --- a/vendor/github.com/gophercloud/gophercloud/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/BUILD @@ -20,7 +20,6 @@ go_library( "service_client.go", "util.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/BUILD index 9b80a679a6e..0cccf716990 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/BUILD @@ -15,7 +15,6 @@ go_library( "endpoint_location.go", "errors.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD index bb8bf4e650d..ffbe85281d5 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD index 1438b4d9b81..f0049563da9 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD @@ -16,7 +16,6 @@ go_library( "urls.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD index 1438b4d9b81..f0049563da9 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD @@ -16,7 +16,6 @@ go_library( "urls.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD index dfe5d1eaed6..9d2d75689fb 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD @@ -16,7 +16,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD index bb8bf4e650d..ffbe85281d5 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD index bb8bf4e650d..ffbe85281d5 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD index bb8bf4e650d..ffbe85281d5 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD index effff1f3b7a..904ede0d033 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD @@ -17,7 +17,6 @@ go_library( "urls.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD index bb8bf4e650d..ffbe85281d5 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD index d21ed9100d7..ef293143365 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD index a4a54a66ea0..c1b0e05454c 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD @@ -13,7 +13,6 @@ go_library( "requests.go", "results.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens:go_default_library"], ) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD index a8318ca5ff5..9afe434f70f 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/gophercloud/gophercloud:go_default_library"], ) diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD index 803f5e0e27a..d30fe119d00 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["delegate.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/common/extensions:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD index 266dd3672e6..d52c3ee519f 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD index 569011cc178..a2add83af54 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD index 3432f22270d..c0872e43c99 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD index a52368ce9ab..b301ad343f6 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD index 381705d59bf..03e28ff3a37 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD index bb8bf4e650d..ffbe85281d5 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gophercloud/gophercloud:go_default_library", "//vendor/github.com/gophercloud/gophercloud/pagination:go_default_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD index 701111fad0d..1c227c7cccc 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["choose_version.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/gophercloud/gophercloud:go_default_library"], ) diff --git a/vendor/github.com/gophercloud/gophercloud/pagination/BUILD b/vendor/github.com/gophercloud/gophercloud/pagination/BUILD index a191ed2a81e..51a957e7886 100644 --- a/vendor/github.com/gophercloud/gophercloud/pagination/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/pagination/BUILD @@ -17,7 +17,6 @@ go_library( "pkg.go", "single.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/gophercloud/gophercloud:go_default_library"], ) diff --git a/vendor/github.com/gorilla/context/BUILD b/vendor/github.com/gorilla/context/BUILD index 6de7fa2a083..b2b8afee7f4 100644 --- a/vendor/github.com/gorilla/context/BUILD +++ b/vendor/github.com/gorilla/context/BUILD @@ -13,7 +13,6 @@ go_library( "context.go", "doc.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/gorilla/mux/BUILD b/vendor/github.com/gorilla/mux/BUILD index ef0365e684c..d9b1a823efc 100644 --- a/vendor/github.com/gorilla/mux/BUILD +++ b/vendor/github.com/gorilla/mux/BUILD @@ -15,7 +15,6 @@ go_library( "regexp.go", "route.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/gorilla/context:go_default_library"], ) diff --git a/vendor/github.com/gorilla/websocket/BUILD b/vendor/github.com/gorilla/websocket/BUILD index b2fe99b0993..efda74e5181 100644 --- a/vendor/github.com/gorilla/websocket/BUILD +++ b/vendor/github.com/gorilla/websocket/BUILD @@ -17,7 +17,6 @@ go_library( "server.go", "util.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD b/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD index d2e3a56f1d1..8902127909f 100644 --- a/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD +++ b/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD @@ -16,7 +16,6 @@ go_library( "server_reporter.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD index 88ee2dea26e..5c2b0d8f8cd 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD @@ -24,7 +24,6 @@ go_library( "proto2_convert.go", "query.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/jsonpb:go_default_library", "//vendor/github.com/golang/protobuf/proto:go_default_library", diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD index 73dafd9f3a7..e98091df35a 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["stream_chunk.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD index 2e926c462f0..ea603a8f88e 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD @@ -14,7 +14,6 @@ go_library( "pattern.go", "trie.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/hashicorp/golang-lru/BUILD b/vendor/github.com/hashicorp/golang-lru/BUILD index ccac560ea93..0282ff40faf 100644 --- a/vendor/github.com/hashicorp/golang-lru/BUILD +++ b/vendor/github.com/hashicorp/golang-lru/BUILD @@ -14,7 +14,6 @@ go_library( "arc.go", "lru.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/hashicorp/golang-lru/simplelru:go_default_library"], ) diff --git a/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD b/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD index fcdf8021d5f..0905bf773cd 100644 --- a/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD +++ b/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["lru.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/hashicorp/hcl/BUILD b/vendor/github.com/hashicorp/hcl/BUILD index a8c3cc25a53..85cecfe79f3 100644 --- a/vendor/github.com/hashicorp/hcl/BUILD +++ b/vendor/github.com/hashicorp/hcl/BUILD @@ -15,7 +15,6 @@ go_library( "lex.go", "parse.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/hashicorp/hcl/hcl/ast:go_default_library", "//vendor/github.com/hashicorp/hcl/hcl/parser:go_default_library", diff --git a/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD b/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD index 105f4c66b80..858061f8bbf 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD @@ -13,7 +13,6 @@ go_library( "ast.go", "walk.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library"], ) diff --git a/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD b/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD index c761f448764..2f972588dda 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD @@ -13,7 +13,6 @@ go_library( "error.go", "parser.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/hashicorp/hcl/hcl/ast:go_default_library", "//vendor/github.com/hashicorp/hcl/hcl/scanner:go_default_library", diff --git a/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD b/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD index 2a2cc6ad191..b48b06ed39e 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["scanner.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library"], ) diff --git a/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD b/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD index c6af50d47d2..2c1c731a596 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["quote.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/hashicorp/hcl/hcl/token/BUILD b/vendor/github.com/hashicorp/hcl/hcl/token/BUILD index c3889adf09c..dd900374020 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/token/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/token/BUILD @@ -13,7 +13,6 @@ go_library( "position.go", "token.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/hashicorp/hcl/hcl/strconv:go_default_library"], ) diff --git a/vendor/github.com/hashicorp/hcl/json/parser/BUILD b/vendor/github.com/hashicorp/hcl/json/parser/BUILD index cd452666001..aaebac2e69c 100644 --- a/vendor/github.com/hashicorp/hcl/json/parser/BUILD +++ b/vendor/github.com/hashicorp/hcl/json/parser/BUILD @@ -13,7 +13,6 @@ go_library( "flatten.go", "parser.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/hashicorp/hcl/hcl/ast:go_default_library", "//vendor/github.com/hashicorp/hcl/json/scanner:go_default_library", diff --git a/vendor/github.com/hashicorp/hcl/json/scanner/BUILD b/vendor/github.com/hashicorp/hcl/json/scanner/BUILD index fe4c496bc47..623d672f187 100644 --- a/vendor/github.com/hashicorp/hcl/json/scanner/BUILD +++ b/vendor/github.com/hashicorp/hcl/json/scanner/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["scanner.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/hashicorp/hcl/json/token:go_default_library"], ) diff --git a/vendor/github.com/hashicorp/hcl/json/token/BUILD b/vendor/github.com/hashicorp/hcl/json/token/BUILD index 6cb098da877..be68829a5ff 100644 --- a/vendor/github.com/hashicorp/hcl/json/token/BUILD +++ b/vendor/github.com/hashicorp/hcl/json/token/BUILD @@ -13,7 +13,6 @@ go_library( "position.go", "token.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/hashicorp/hcl/hcl/token:go_default_library"], ) diff --git a/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD b/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD index ad539be7a1c..968b04f4424 100644 --- a/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD +++ b/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD @@ -14,7 +14,6 @@ go_library( "helpers.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/heketi/heketi/client/api/go-client/BUILD b/vendor/github.com/heketi/heketi/client/api/go-client/BUILD index 6bf574746d9..9ee1f461fb2 100644 --- a/vendor/github.com/heketi/heketi/client/api/go-client/BUILD +++ b/vendor/github.com/heketi/heketi/client/api/go-client/BUILD @@ -18,7 +18,6 @@ go_library( "topology.go", "volume.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/dgrijalva/jwt-go:go_default_library", "//vendor/github.com/heketi/heketi/pkg/glusterfs/api:go_default_library", diff --git a/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD b/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD index 6109f467f1a..faaf46d0d62 100644 --- a/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD +++ b/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/heketi/heketi/pkg/utils/BUILD b/vendor/github.com/heketi/heketi/pkg/utils/BUILD index fbc5df12e58..1883c710969 100644 --- a/vendor/github.com/heketi/heketi/pkg/utils/BUILD +++ b/vendor/github.com/heketi/heketi/pkg/utils/BUILD @@ -19,7 +19,6 @@ go_library( "stringstack.go", "uuid.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/lpabon/godbc:go_default_library"], ) diff --git a/vendor/github.com/howeyc/gopass/BUILD b/vendor/github.com/howeyc/gopass/BUILD index 455dee6cf34..41f81f725ef 100644 --- a/vendor/github.com/howeyc/gopass/BUILD +++ b/vendor/github.com/howeyc/gopass/BUILD @@ -13,7 +13,6 @@ go_library( "pass.go", "terminal.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/crypto/ssh/terminal:go_default_library"], ) diff --git a/vendor/github.com/imdario/mergo/BUILD b/vendor/github.com/imdario/mergo/BUILD index 18989dd7a35..fc87f00da57 100644 --- a/vendor/github.com/imdario/mergo/BUILD +++ b/vendor/github.com/imdario/mergo/BUILD @@ -15,7 +15,6 @@ go_library( "merge.go", "mergo.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/inconshreveable/mousetrap/BUILD b/vendor/github.com/inconshreveable/mousetrap/BUILD index 75e742d1162..25cce9646fa 100644 --- a/vendor/github.com/inconshreveable/mousetrap/BUILD +++ b/vendor/github.com/inconshreveable/mousetrap/BUILD @@ -18,7 +18,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/influxdata/influxdb/client/BUILD b/vendor/github.com/influxdata/influxdb/client/BUILD index 54ffc7167a9..5b652ad478f 100644 --- a/vendor/github.com/influxdata/influxdb/client/BUILD +++ b/vendor/github.com/influxdata/influxdb/client/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["influxdb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/influxdata/influxdb/models:go_default_library"], ) diff --git a/vendor/github.com/influxdata/influxdb/client/v2/BUILD b/vendor/github.com/influxdata/influxdb/client/v2/BUILD index 55b1c9dc8db..fbfb90ca378 100644 --- a/vendor/github.com/influxdata/influxdb/client/v2/BUILD +++ b/vendor/github.com/influxdata/influxdb/client/v2/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "udp.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/influxdata/influxdb/models:go_default_library"], ) diff --git a/vendor/github.com/influxdata/influxdb/models/BUILD b/vendor/github.com/influxdata/influxdb/models/BUILD index 9c57ef96c7d..3e044b86c6a 100644 --- a/vendor/github.com/influxdata/influxdb/models/BUILD +++ b/vendor/github.com/influxdata/influxdb/models/BUILD @@ -18,7 +18,6 @@ go_library( "statistic.go", "time.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/influxdata/influxdb/pkg/escape:go_default_library"], ) diff --git a/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD b/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD index e39caf970b2..f897ee2ec94 100644 --- a/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD +++ b/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD @@ -13,7 +13,6 @@ go_library( "bytes.go", "strings.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/jmespath/go-jmespath/BUILD b/vendor/github.com/jmespath/go-jmespath/BUILD index 54d1ebaeab0..e50453eaa9b 100644 --- a/vendor/github.com/jmespath/go-jmespath/BUILD +++ b/vendor/github.com/jmespath/go-jmespath/BUILD @@ -19,7 +19,6 @@ go_library( "toktype_string.go", "util.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/jonboulle/clockwork/BUILD b/vendor/github.com/jonboulle/clockwork/BUILD index ca407acd78c..8a99c87e3d7 100644 --- a/vendor/github.com/jonboulle/clockwork/BUILD +++ b/vendor/github.com/jonboulle/clockwork/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["clockwork.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/jteeuwen/go-bindata/BUILD b/vendor/github.com/jteeuwen/go-bindata/BUILD index 8b899916874..82e6aba1486 100644 --- a/vendor/github.com/jteeuwen/go-bindata/BUILD +++ b/vendor/github.com/jteeuwen/go-bindata/BUILD @@ -21,7 +21,6 @@ go_library( "stringwriter.go", "toc.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD b/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD index 3436527656c..731e97c64ee 100644 --- a/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD +++ b/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD @@ -11,7 +11,6 @@ load( go_binary( name = "go-bindata", library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -21,7 +20,6 @@ go_library( "main.go", "version.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/jteeuwen/go-bindata:go_default_library"], ) diff --git a/vendor/github.com/juju/ratelimit/BUILD b/vendor/github.com/juju/ratelimit/BUILD index bd17513b2cc..5cc0a56244d 100644 --- a/vendor/github.com/juju/ratelimit/BUILD +++ b/vendor/github.com/juju/ratelimit/BUILD @@ -13,7 +13,6 @@ go_library( "ratelimit.go", "reader.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/kardianos/osext/BUILD b/vendor/github.com/kardianos/osext/BUILD index cbef9b0f18a..e0d3511a4b3 100644 --- a/vendor/github.com/kardianos/osext/BUILD +++ b/vendor/github.com/kardianos/osext/BUILD @@ -23,7 +23,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/karlseguin/ccache/BUILD b/vendor/github.com/karlseguin/ccache/BUILD index 157ad0e67e7..d1adbb2049b 100644 --- a/vendor/github.com/karlseguin/ccache/BUILD +++ b/vendor/github.com/karlseguin/ccache/BUILD @@ -18,7 +18,6 @@ go_library( "layeredcache.go", "secondarycache.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/kr/fs/BUILD b/vendor/github.com/kr/fs/BUILD index cdfc9f8c94e..6424e9006bf 100644 --- a/vendor/github.com/kr/fs/BUILD +++ b/vendor/github.com/kr/fs/BUILD @@ -13,7 +13,6 @@ go_library( "filesystem.go", "walk.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/kr/pty/BUILD b/vendor/github.com/kr/pty/BUILD index 5a3f3d57084..4f69212c552 100644 --- a/vendor/github.com/kr/pty/BUILD +++ b/vendor/github.com/kr/pty/BUILD @@ -31,7 +31,6 @@ go_library( "//conditions:default": [], }), cgo = True, - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/libopenstorage/openstorage/api/BUILD b/vendor/github.com/libopenstorage/openstorage/api/BUILD index cca21d8e96c..6405cf6be3f 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/BUILD @@ -14,7 +14,6 @@ go_library( "api.pb.go", "status.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/go.pedge.io/pb/go/google/protobuf:go_default_library", diff --git a/vendor/github.com/libopenstorage/openstorage/api/client/BUILD b/vendor/github.com/libopenstorage/openstorage/api/client/BUILD index 91359115331..c8460cd68c8 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/client/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/client/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "request.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD b/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD index d9d770e2c3c..a6199d50fdb 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "volume.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/libopenstorage/openstorage/api:go_default_library", "//vendor/github.com/libopenstorage/openstorage/api/client:go_default_library", diff --git a/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD b/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD index a0686b95b40..23cb82fbff7 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["spec_handler.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/libopenstorage/openstorage/api:go_default_library", "//vendor/github.com/libopenstorage/openstorage/pkg/units:go_default_library", diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD b/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD index 89e84c2dd0c..922055d1334 100644 --- a/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["units.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/libopenstorage/openstorage/volume/BUILD b/vendor/github.com/libopenstorage/openstorage/volume/BUILD index 0927b8ea0d6..aa428c4420e 100644 --- a/vendor/github.com/libopenstorage/openstorage/volume/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/volume/BUILD @@ -14,7 +14,6 @@ go_library( "volume_driver_registry.go", "volume_not_supported.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/libopenstorage/openstorage/api:go_default_library"], ) diff --git a/vendor/github.com/lpabon/godbc/BUILD b/vendor/github.com/lpabon/godbc/BUILD index 1546c63b234..b0dca6e64fa 100644 --- a/vendor/github.com/lpabon/godbc/BUILD +++ b/vendor/github.com/lpabon/godbc/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["godbc.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/magiconair/properties/BUILD b/vendor/github.com/magiconair/properties/BUILD index ce14cf2aef3..592c180200f 100644 --- a/vendor/github.com/magiconair/properties/BUILD +++ b/vendor/github.com/magiconair/properties/BUILD @@ -19,7 +19,6 @@ go_library( "properties.go", "rangecheck.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mailru/easyjson/buffer/BUILD b/vendor/github.com/mailru/easyjson/buffer/BUILD index 317a7ee4a48..42fec3e5bfd 100644 --- a/vendor/github.com/mailru/easyjson/buffer/BUILD +++ b/vendor/github.com/mailru/easyjson/buffer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["pool.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mailru/easyjson/jlexer/BUILD b/vendor/github.com/mailru/easyjson/jlexer/BUILD index 3a01b8d0ea1..85bb9a2a124 100644 --- a/vendor/github.com/mailru/easyjson/jlexer/BUILD +++ b/vendor/github.com/mailru/easyjson/jlexer/BUILD @@ -13,7 +13,6 @@ go_library( "error.go", "lexer.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mailru/easyjson/jwriter/BUILD b/vendor/github.com/mailru/easyjson/jwriter/BUILD index 423437e64b5..352532de317 100644 --- a/vendor/github.com/mailru/easyjson/jwriter/BUILD +++ b/vendor/github.com/mailru/easyjson/jwriter/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["writer.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/mailru/easyjson/buffer:go_default_library"], ) diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD index bb9d4733e26..abb13ea4d16 100644 --- a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "encode.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD b/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD index 56fef5183e7..274953c2d0c 100644 --- a/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD +++ b/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD @@ -13,7 +13,6 @@ go_library( "path.go", "service.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/miekg/dns:go_default_library"], ) diff --git a/vendor/github.com/miekg/dns/BUILD b/vendor/github.com/miekg/dns/BUILD index d829c628481..91f368cd2dc 100644 --- a/vendor/github.com/miekg/dns/BUILD +++ b/vendor/github.com/miekg/dns/BUILD @@ -54,7 +54,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mistifyio/go-zfs/BUILD b/vendor/github.com/mistifyio/go-zfs/BUILD index 3bfb359a97b..8edf940e8e3 100644 --- a/vendor/github.com/mistifyio/go-zfs/BUILD +++ b/vendor/github.com/mistifyio/go-zfs/BUILD @@ -15,7 +15,6 @@ go_library( "zfs.go", "zpool.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/pborman/uuid:go_default_library"], ) diff --git a/vendor/github.com/mitchellh/go-wordwrap/BUILD b/vendor/github.com/mitchellh/go-wordwrap/BUILD index 9080f46883d..1bd9f8591c7 100644 --- a/vendor/github.com/mitchellh/go-wordwrap/BUILD +++ b/vendor/github.com/mitchellh/go-wordwrap/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["wordwrap.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mitchellh/mapstructure/BUILD b/vendor/github.com/mitchellh/mapstructure/BUILD index 2ff6aed6813..806413bfb63 100644 --- a/vendor/github.com/mitchellh/mapstructure/BUILD +++ b/vendor/github.com/mitchellh/mapstructure/BUILD @@ -14,7 +14,6 @@ go_library( "error.go", "mapstructure.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mreiferson/go-httpclient/BUILD b/vendor/github.com/mreiferson/go-httpclient/BUILD index c1f2f8bb7cb..89538e9d6ac 100644 --- a/vendor/github.com/mreiferson/go-httpclient/BUILD +++ b/vendor/github.com/mreiferson/go-httpclient/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["httpclient.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mvdan/xurls/BUILD b/vendor/github.com/mvdan/xurls/BUILD index 34a98cfe4fb..670ea0bb30d 100644 --- a/vendor/github.com/mvdan/xurls/BUILD +++ b/vendor/github.com/mvdan/xurls/BUILD @@ -16,7 +16,6 @@ go_library( "tlds_pseudo.go", "xurls.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/mxk/go-flowrate/flowrate/BUILD b/vendor/github.com/mxk/go-flowrate/flowrate/BUILD index 36a64dcd452..c0e10e8f9c1 100644 --- a/vendor/github.com/mxk/go-flowrate/flowrate/BUILD +++ b/vendor/github.com/mxk/go-flowrate/flowrate/BUILD @@ -14,7 +14,6 @@ go_library( "io.go", "util.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/BUILD b/vendor/github.com/onsi/ginkgo/BUILD index 00d10068723..810c1246d75 100644 --- a/vendor/github.com/onsi/ginkgo/BUILD +++ b/vendor/github.com/onsi/ginkgo/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["ginkgo_dsl.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/ginkgo/internal/codelocation:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/config/BUILD b/vendor/github.com/onsi/ginkgo/config/BUILD index f811fb8f199..2c1d373a268 100644 --- a/vendor/github.com/onsi/ginkgo/config/BUILD +++ b/vendor/github.com/onsi/ginkgo/config/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["config.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/BUILD index 9bcacc7b111..788a25d1acb 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/BUILD @@ -11,7 +11,6 @@ load( go_binary( name = "ginkgo", library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -32,7 +31,6 @@ go_library( "version_command.go", "watch_command.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/ginkgo/ginkgo/convert:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD index ffa59aba3ce..b288dfc02fe 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD @@ -17,7 +17,6 @@ go_library( "testfile_rewriter.go", "testing_t_rewriter.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD index 3f3231f5c7f..6e53a292580 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD @@ -23,7 +23,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD index e640e729a9b..dee2d3a65f1 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["nodot.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD index 59b922f563b..e59436701f1 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD @@ -14,7 +14,6 @@ go_library( "run_result.go", "test_runner.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/ginkgo/ginkgo/testsuite:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD index c076dfd9f52..2aa5fb24eed 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD @@ -14,7 +14,6 @@ go_library( "vendor_check_go15.go", "vendor_check_go16.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD index de9dabc33a3..9c8bafe6ef4 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD @@ -17,7 +17,6 @@ go_library( "package_hashes.go", "suite.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/ginkgo/ginkgo/testsuite:go_default_library"], ) diff --git a/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD b/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD index a80abdaab33..87ee3cc136c 100644 --- a/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["code_location.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/ginkgo/types:go_default_library"], ) diff --git a/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD b/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD index 1b1b2fa0fbe..b6012aa766e 100644 --- a/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["container_node.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/internal/leafnodes:go_default_library", "//vendor/github.com/onsi/ginkgo/types:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/failer/BUILD b/vendor/github.com/onsi/ginkgo/internal/failer/BUILD index 0f9562005b6..fea6885a80f 100644 --- a/vendor/github.com/onsi/ginkgo/internal/failer/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/failer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["failer.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/ginkgo/types:go_default_library"], ) diff --git a/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD b/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD index 0418a2d9563..7c7a2eb0763 100644 --- a/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD @@ -20,7 +20,6 @@ go_library( "synchronized_after_suite_node.go", "synchronized_before_suite_node.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/internal/codelocation:go_default_library", "//vendor/github.com/onsi/ginkgo/internal/failer:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/BUILD b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD index 29711955ba9..d4a72f8a483 100644 --- a/vendor/github.com/onsi/ginkgo/internal/remote/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD @@ -27,7 +27,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/ginkgo/internal/spec_iterator:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/spec/BUILD b/vendor/github.com/onsi/ginkgo/internal/spec/BUILD index 9906e84a560..1b91b346bf7 100644 --- a/vendor/github.com/onsi/ginkgo/internal/spec/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/spec/BUILD @@ -13,7 +13,6 @@ go_library( "spec.go", "specs.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/internal/containernode:go_default_library", "//vendor/github.com/onsi/ginkgo/internal/leafnodes:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD b/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD index 73ff76fec85..707850230c5 100644 --- a/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD @@ -16,7 +16,6 @@ go_library( "sharded_parallel_spec_iterator.go", "spec_iterator.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/ginkgo/internal/spec:go_default_library"], ) diff --git a/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD b/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD index cd37422bd76..b08a6e8e62b 100644 --- a/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD @@ -13,7 +13,6 @@ go_library( "random_id.go", "spec_runner.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/ginkgo/internal/leafnodes:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/suite/BUILD b/vendor/github.com/onsi/ginkgo/internal/suite/BUILD index 101964bbf2b..5460aa7e1cd 100644 --- a/vendor/github.com/onsi/ginkgo/internal/suite/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/suite/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["suite.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/ginkgo/internal/containernode:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD b/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD index 69e3aaace2a..761849e62b4 100644 --- a/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["testing_t_proxy.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/internal/writer/BUILD b/vendor/github.com/onsi/ginkgo/internal/writer/BUILD index fee3f67a4d0..e6a5e19f986 100644 --- a/vendor/github.com/onsi/ginkgo/internal/writer/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/writer/BUILD @@ -13,7 +13,6 @@ go_library( "fake_writer.go", "writer.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/reporters/BUILD b/vendor/github.com/onsi/ginkgo/reporters/BUILD index 26d120b8684..40db711d219 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/BUILD @@ -16,7 +16,6 @@ go_library( "reporter.go", "teamcity_reporter.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/config:go_default_library", "//vendor/github.com/onsi/ginkgo/reporters/stenographer:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD index 03a0da5fbfa..7d34459a820 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD @@ -14,7 +14,6 @@ go_library( "fake_stenographer.go", "stenographer.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable:go_default_library", "//vendor/github.com/onsi/ginkgo/types:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD index e4f48e5284c..0a72fedc382 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD @@ -18,7 +18,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:windows_amd64": [ "//vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty:go_default_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD index 750985cf890..19bdc8ea13d 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD @@ -23,7 +23,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/ginkgo/types/BUILD b/vendor/github.com/onsi/ginkgo/types/BUILD index bafcdf6c224..5fc9e789b2d 100644 --- a/vendor/github.com/onsi/ginkgo/types/BUILD +++ b/vendor/github.com/onsi/ginkgo/types/BUILD @@ -14,7 +14,6 @@ go_library( "synchronization.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/gomega/BUILD b/vendor/github.com/onsi/gomega/BUILD index def22b6b1d4..463a6d3fb19 100644 --- a/vendor/github.com/onsi/gomega/BUILD +++ b/vendor/github.com/onsi/gomega/BUILD @@ -13,7 +13,6 @@ go_library( "gomega_dsl.go", "matchers.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/gomega/internal/assertion:go_default_library", "//vendor/github.com/onsi/gomega/internal/asyncassertion:go_default_library", diff --git a/vendor/github.com/onsi/gomega/format/BUILD b/vendor/github.com/onsi/gomega/format/BUILD index 69bb917a887..c0d05c03c48 100644 --- a/vendor/github.com/onsi/gomega/format/BUILD +++ b/vendor/github.com/onsi/gomega/format/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["format.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/gomega/gstruct/BUILD b/vendor/github.com/onsi/gomega/gstruct/BUILD index 6126ce5dc13..3208bf566cb 100644 --- a/vendor/github.com/onsi/gomega/gstruct/BUILD +++ b/vendor/github.com/onsi/gomega/gstruct/BUILD @@ -16,7 +16,6 @@ go_library( "pointer.go", "types.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/gomega/format:go_default_library", "//vendor/github.com/onsi/gomega/gstruct/errors:go_default_library", diff --git a/vendor/github.com/onsi/gomega/gstruct/errors/BUILD b/vendor/github.com/onsi/gomega/gstruct/errors/BUILD index 25dfeac89eb..59d58123ca7 100644 --- a/vendor/github.com/onsi/gomega/gstruct/errors/BUILD +++ b/vendor/github.com/onsi/gomega/gstruct/errors/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["nested_types.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], ) diff --git a/vendor/github.com/onsi/gomega/internal/assertion/BUILD b/vendor/github.com/onsi/gomega/internal/assertion/BUILD index 555f3f7e42b..f37ad78541d 100644 --- a/vendor/github.com/onsi/gomega/internal/assertion/BUILD +++ b/vendor/github.com/onsi/gomega/internal/assertion/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["assertion.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], ) diff --git a/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD b/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD index 122b9076100..5e869f7a2fe 100644 --- a/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD +++ b/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["async_assertion.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/gomega/internal/oraclematcher:go_default_library", "//vendor/github.com/onsi/gomega/types:go_default_library", diff --git a/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD b/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD index 5bc5465eac1..8676d755fb4 100644 --- a/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD +++ b/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["oracle_matcher.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], ) diff --git a/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD b/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD index c7d2f5f47e9..47dcb817179 100644 --- a/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD +++ b/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["testing_t_support.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/gomega/types:go_default_library"], ) diff --git a/vendor/github.com/onsi/gomega/matchers/BUILD b/vendor/github.com/onsi/gomega/matchers/BUILD index 8e427389022..178049fd270 100644 --- a/vendor/github.com/onsi/gomega/matchers/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/BUILD @@ -49,7 +49,6 @@ go_library( "type_support.go", "with_transform.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/gomega/format:go_default_library", "//vendor/github.com/onsi/gomega/internal/oraclematcher:go_default_library", diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD index 324ae5d2f9a..ed0f1244f00 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD @@ -13,7 +13,6 @@ go_library( "bipartitegraph.go", "bipartitegraphmatching.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/onsi/gomega/matchers/support/goraph/edge:go_default_library", "//vendor/github.com/onsi/gomega/matchers/support/goraph/node:go_default_library", diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD index dd371a0e0d4..be42d98bef1 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["edge.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/onsi/gomega/matchers/support/goraph/node:go_default_library"], ) diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD index 9a53c1b5d5e..e98978950c5 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["node.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD index 5eb8bcd4466..6575bc0e335 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["util.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/onsi/gomega/types/BUILD b/vendor/github.com/onsi/gomega/types/BUILD index 6109f467f1a..faaf46d0d62 100644 --- a/vendor/github.com/onsi/gomega/types/BUILD +++ b/vendor/github.com/onsi/gomega/types/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["types.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/BUILD index 66c0b8f3b59..4d5dc8f692c 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/BUILD @@ -46,7 +46,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/stacktrace:go_default_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD index 9fa75598b3a..335652267c1 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD @@ -11,7 +11,6 @@ go_library( name = "go_default_library", srcs = ["apparmor_disabled.go"], cgo = True, - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD index 9614c962cd0..c66e140000c 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD @@ -19,7 +19,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/docker/go-units:go_default_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD index 1499ddcceb9..92d94f79880 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD @@ -31,7 +31,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD index c7087ec0f74..172ce2576b6 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/opencontainers/runc/libcontainer/cgroups:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD index a3938627377..b71b55dd51b 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD @@ -34,7 +34,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = ["//vendor/github.com/Sirupsen/logrus:go_default_library"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD index 0724ea1d067..8dd6de06a41 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["validator.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library", "//vendor/github.com/opencontainers/runc/libcontainer/selinux:go_default_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD index f006433babb..84e73575654 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["criurpc.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD index c2d93acec3f..9bd7d5d171c 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD @@ -15,7 +15,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD index b0a9ce57894..0ce8edbc899 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["label.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD index 2193b070d1b..26896590f81 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD @@ -13,7 +13,6 @@ go_library( "config.go", "seccomp_unsupported.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/opencontainers/runc/libcontainer/configs:go_default_library"], ) diff --git a/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD index 8098fd69d45..8954dd2de99 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD @@ -15,7 +15,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:linux_amd64": [ "//vendor/github.com/opencontainers/runc/libcontainer/system:go_default_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD index 28baac231c6..83e8e073ea1 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD @@ -14,7 +14,6 @@ go_library( "frame.go", "stacktrace.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD index e83cda8d3be..86bc279c2f7 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD @@ -26,7 +26,6 @@ go_library( "//conditions:default": [], }), cgo = True, - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD index 97d2963adbc..d12bb65b3f0 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD @@ -22,7 +22,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD index c7ea210d834..74a6dbb49cf 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD @@ -13,7 +13,6 @@ go_library( "utils.go", "utils_unix.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/pborman/uuid/BUILD b/vendor/github.com/pborman/uuid/BUILD index d2f1ef05cf9..f586b1a4af0 100644 --- a/vendor/github.com/pborman/uuid/BUILD +++ b/vendor/github.com/pborman/uuid/BUILD @@ -21,7 +21,6 @@ go_library( "version1.go", "version4.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/pelletier/go-buffruneio/BUILD b/vendor/github.com/pelletier/go-buffruneio/BUILD index b2206b15f7e..1bc9a8cf8dd 100644 --- a/vendor/github.com/pelletier/go-buffruneio/BUILD +++ b/vendor/github.com/pelletier/go-buffruneio/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["buffruneio.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/pelletier/go-toml/BUILD b/vendor/github.com/pelletier/go-toml/BUILD index aa25cb96ccb..3bcf2517fdb 100644 --- a/vendor/github.com/pelletier/go-toml/BUILD +++ b/vendor/github.com/pelletier/go-toml/BUILD @@ -23,7 +23,6 @@ go_library( "toml.go", "tomltree_conversions.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/pelletier/go-buffruneio:go_default_library"], ) diff --git a/vendor/github.com/pkg/errors/BUILD b/vendor/github.com/pkg/errors/BUILD index 339a557ae74..d18b810415c 100644 --- a/vendor/github.com/pkg/errors/BUILD +++ b/vendor/github.com/pkg/errors/BUILD @@ -13,7 +13,6 @@ go_library( "errors.go", "stack.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/pkg/sftp/BUILD b/vendor/github.com/pkg/sftp/BUILD index 973d4dd3f5f..2a3fbb6e6a5 100644 --- a/vendor/github.com/pkg/sftp/BUILD +++ b/vendor/github.com/pkg/sftp/BUILD @@ -37,7 +37,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/kr/fs:go_default_library", "//vendor/github.com/pkg/errors:go_default_library", diff --git a/vendor/github.com/pmezard/go-difflib/difflib/BUILD b/vendor/github.com/pmezard/go-difflib/difflib/BUILD index c8b97c988ae..72c3b815267 100644 --- a/vendor/github.com/pmezard/go-difflib/difflib/BUILD +++ b/vendor/github.com/pmezard/go-difflib/difflib/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["difflib.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/prometheus/client_golang/prometheus/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/BUILD index d1ca2725248..85e0b7e0ae8 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/BUILD +++ b/vendor/github.com/prometheus/client_golang/prometheus/BUILD @@ -30,7 +30,6 @@ go_library( "value.go", "vec.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/beorn7/perks/quantile:go_default_library", "//vendor/github.com/golang/protobuf/proto:go_default_library", diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD index 92a4dd9642c..9024b9680b3 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD @@ -17,7 +17,6 @@ go_library( "instrument_client_1_8.go", "instrument_server.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/prometheus/client_golang/prometheus:go_default_library", "//vendor/github.com/prometheus/client_model/go:go_default_library", diff --git a/vendor/github.com/prometheus/client_model/go/BUILD b/vendor/github.com/prometheus/client_model/go/BUILD index 1b3f3fdedf5..37714489eea 100644 --- a/vendor/github.com/prometheus/client_model/go/BUILD +++ b/vendor/github.com/prometheus/client_model/go/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metrics.pb.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/github.com/prometheus/common/expfmt/BUILD b/vendor/github.com/prometheus/common/expfmt/BUILD index eecf0f2d1d6..03163585d41 100644 --- a/vendor/github.com/prometheus/common/expfmt/BUILD +++ b/vendor/github.com/prometheus/common/expfmt/BUILD @@ -16,7 +16,6 @@ go_library( "text_create.go", "text_parse.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/github.com/matttproud/golang_protobuf_extensions/pbutil:go_default_library", diff --git a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD index 8c04dc13cb2..8dcfcc6e63d 100644 --- a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD +++ b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["autoneg.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/prometheus/common/model/BUILD b/vendor/github.com/prometheus/common/model/BUILD index 599c9871eba..3ec1d9ebed4 100644 --- a/vendor/github.com/prometheus/common/model/BUILD +++ b/vendor/github.com/prometheus/common/model/BUILD @@ -22,7 +22,6 @@ go_library( "time.go", "value.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/prometheus/procfs/BUILD b/vendor/github.com/prometheus/procfs/BUILD index 6b12957ea05..44ea8aadac1 100644 --- a/vendor/github.com/prometheus/procfs/BUILD +++ b/vendor/github.com/prometheus/procfs/BUILD @@ -23,7 +23,6 @@ go_library( "stat.go", "xfrm.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/prometheus/procfs/xfs:go_default_library"], ) diff --git a/vendor/github.com/prometheus/procfs/xfs/BUILD b/vendor/github.com/prometheus/procfs/xfs/BUILD index 17670f115fc..059674e0a1f 100644 --- a/vendor/github.com/prometheus/procfs/xfs/BUILD +++ b/vendor/github.com/prometheus/procfs/xfs/BUILD @@ -13,7 +13,6 @@ go_library( "parse.go", "xfs.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/quobyte/api/BUILD b/vendor/github.com/quobyte/api/BUILD index 84fec6cd094..d0479971da8 100644 --- a/vendor/github.com/quobyte/api/BUILD +++ b/vendor/github.com/quobyte/api/BUILD @@ -14,7 +14,6 @@ go_library( "rpc_client.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/rackspace/gophercloud/BUILD b/vendor/github.com/rackspace/gophercloud/BUILD index 45e0f3c1206..4909f300f77 100644 --- a/vendor/github.com/rackspace/gophercloud/BUILD +++ b/vendor/github.com/rackspace/gophercloud/BUILD @@ -20,7 +20,6 @@ go_library( "service_client.go", "util.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/mitchellh/mapstructure:go_default_library"], ) diff --git a/vendor/github.com/rackspace/gophercloud/openstack/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/BUILD index 588e9909f53..b8a08efc8a7 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/BUILD @@ -14,7 +14,6 @@ go_library( "client.go", "endpoint_location.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/rackspace/gophercloud:go_default_library", "//vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD index 352a6bd792b..83d817e0b62 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD @@ -16,7 +16,6 @@ go_library( "urls.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD index 1ad61c762f8..4bcf12a851b 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD @@ -14,7 +14,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/rackspace/gophercloud:go_default_library", "//vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD index 8585e4f855d..c05096d857f 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD @@ -14,7 +14,6 @@ go_library( "requests.go", "results.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD index 88ad8ca5017..a322db72f6a 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD index 88ad8ca5017..a322db72f6a 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD index 88ad8ca5017..a322db72f6a 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD index 2fc5ec0c49b..32a2d05127f 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD @@ -16,7 +16,6 @@ go_library( "urls.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD index 88ad8ca5017..a322db72f6a 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD @@ -15,7 +15,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD index deee80b7a25..276d7511fab 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD @@ -16,7 +16,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD index daeca2b6138..d03cc167b1b 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD @@ -16,7 +16,6 @@ go_library( "results.go", "urls.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD index ce4ad4f04bd..f7c6c03c489 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["choose_version.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/rackspace/gophercloud:go_default_library"], ) diff --git a/vendor/github.com/rackspace/gophercloud/pagination/BUILD b/vendor/github.com/rackspace/gophercloud/pagination/BUILD index 1b10fd7db86..2a5e940656b 100644 --- a/vendor/github.com/rackspace/gophercloud/pagination/BUILD +++ b/vendor/github.com/rackspace/gophercloud/pagination/BUILD @@ -18,7 +18,6 @@ go_library( "pkg.go", "single.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/rackspace/gophercloud:go_default_library"], ) diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/BUILD index 72ca5258c93..d37ee1785d9 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/BUILD @@ -13,7 +13,6 @@ go_library( "auth_env.go", "client.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/rackspace/gophercloud:go_default_library", "//vendor/github.com/rackspace/gophercloud/openstack:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD index 8c9f3b1f3c4..9cc056fc5ac 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "results.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/mitchellh/mapstructure:go_default_library", "//vendor/github.com/rackspace/gophercloud:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD index c3aeb40c8e6..f3db62d6800 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "requests.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/rackspace/gophercloud:go_default_library", "//vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD index ad19fc4e042..d1b5721f6bd 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD @@ -13,7 +13,6 @@ go_library( "delegate.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/rackspace/gophercloud:go_default_library", "//vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD index ba0b8fc978d..41bda98b699 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD @@ -13,7 +13,6 @@ go_library( "delegate.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/rackspace/gophercloud:go_default_library", "//vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens:go_default_library", diff --git a/vendor/github.com/rackspace/gophercloud/testhelper/BUILD b/vendor/github.com/rackspace/gophercloud/testhelper/BUILD index ac50eafc843..0be974a9755 100644 --- a/vendor/github.com/rackspace/gophercloud/testhelper/BUILD +++ b/vendor/github.com/rackspace/gophercloud/testhelper/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "http_responses.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD b/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD index 64c3575b943..225f4d713c4 100644 --- a/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD +++ b/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/rackspace/gophercloud:go_default_library", "//vendor/github.com/rackspace/gophercloud/testhelper:go_default_library", diff --git a/vendor/github.com/rancher/go-rancher/client/BUILD b/vendor/github.com/rancher/go-rancher/client/BUILD index abb3eac09a0..7adfdade74f 100644 --- a/vendor/github.com/rancher/go-rancher/client/BUILD +++ b/vendor/github.com/rancher/go-rancher/client/BUILD @@ -158,7 +158,6 @@ go_library( "schemas.go", "types.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/gorilla/websocket:go_default_library", "//vendor/github.com/pkg/errors:go_default_library", diff --git a/vendor/github.com/renstrom/dedent/BUILD b/vendor/github.com/renstrom/dedent/BUILD index 807570addc4..80cd4c3db74 100644 --- a/vendor/github.com/renstrom/dedent/BUILD +++ b/vendor/github.com/renstrom/dedent/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["dedent.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/robfig/cron/BUILD b/vendor/github.com/robfig/cron/BUILD index 08804674ac6..1264fcb3aa8 100644 --- a/vendor/github.com/robfig/cron/BUILD +++ b/vendor/github.com/robfig/cron/BUILD @@ -16,7 +16,6 @@ go_library( "parser.go", "spec.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/rubiojr/go-vhd/vhd/BUILD b/vendor/github.com/rubiojr/go-vhd/vhd/BUILD index f6b3c09c3d5..ee96897886c 100644 --- a/vendor/github.com/rubiojr/go-vhd/vhd/BUILD +++ b/vendor/github.com/rubiojr/go-vhd/vhd/BUILD @@ -13,7 +13,6 @@ go_library( "util.go", "vhd.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/russross/blackfriday/BUILD b/vendor/github.com/russross/blackfriday/BUILD index 0079fe996b4..6bec634007e 100644 --- a/vendor/github.com/russross/blackfriday/BUILD +++ b/vendor/github.com/russross/blackfriday/BUILD @@ -17,7 +17,6 @@ go_library( "markdown.go", "smartypants.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/shurcooL/sanitized_anchor_name:go_default_library"], ) diff --git a/vendor/github.com/satori/uuid/BUILD b/vendor/github.com/satori/uuid/BUILD index 0ab5752bdbb..80d9ec5db74 100644 --- a/vendor/github.com/satori/uuid/BUILD +++ b/vendor/github.com/satori/uuid/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["uuid.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/seccomp/libseccomp-golang/BUILD b/vendor/github.com/seccomp/libseccomp-golang/BUILD index b006a463799..c858a874fa4 100644 --- a/vendor/github.com/seccomp/libseccomp-golang/BUILD +++ b/vendor/github.com/seccomp/libseccomp-golang/BUILD @@ -24,7 +24,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD b/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD index 74aa35774f5..c31afa60a64 100644 --- a/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD +++ b/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["main.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/spf13/afero/BUILD b/vendor/github.com/spf13/afero/BUILD index 7e20568f2c2..719a45b83b2 100644 --- a/vendor/github.com/spf13/afero/BUILD +++ b/vendor/github.com/spf13/afero/BUILD @@ -32,7 +32,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/pkg/sftp:go_default_library", "//vendor/github.com/spf13/afero/mem:go_default_library", diff --git a/vendor/github.com/spf13/afero/mem/BUILD b/vendor/github.com/spf13/afero/mem/BUILD index bf1595e805e..a671e80ad17 100644 --- a/vendor/github.com/spf13/afero/mem/BUILD +++ b/vendor/github.com/spf13/afero/mem/BUILD @@ -14,7 +14,6 @@ go_library( "dirmap.go", "file.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/spf13/afero/sftp/BUILD b/vendor/github.com/spf13/afero/sftp/BUILD index bab703b0352..3d6c1f8cc78 100644 --- a/vendor/github.com/spf13/afero/sftp/BUILD +++ b/vendor/github.com/spf13/afero/sftp/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["file.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/pkg/sftp:go_default_library"], ) diff --git a/vendor/github.com/spf13/cast/BUILD b/vendor/github.com/spf13/cast/BUILD index 0833287e120..f3bb88c2662 100644 --- a/vendor/github.com/spf13/cast/BUILD +++ b/vendor/github.com/spf13/cast/BUILD @@ -13,7 +13,6 @@ go_library( "cast.go", "caste.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/spf13/jwalterweatherman:go_default_library"], ) diff --git a/vendor/github.com/spf13/cobra/BUILD b/vendor/github.com/spf13/cobra/BUILD index 17a4a36eca9..6951a6a76cd 100644 --- a/vendor/github.com/spf13/cobra/BUILD +++ b/vendor/github.com/spf13/cobra/BUILD @@ -20,7 +20,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/pflag:go_default_library", ] + select({ diff --git a/vendor/github.com/spf13/cobra/doc/BUILD b/vendor/github.com/spf13/cobra/doc/BUILD index 94fda7916cd..23ae8c94420 100644 --- a/vendor/github.com/spf13/cobra/doc/BUILD +++ b/vendor/github.com/spf13/cobra/doc/BUILD @@ -14,7 +14,6 @@ go_library( "md_docs.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/cpuguy83/go-md2man/md2man:go_default_library", "//vendor/github.com/spf13/cobra:go_default_library", diff --git a/vendor/github.com/spf13/jwalterweatherman/BUILD b/vendor/github.com/spf13/jwalterweatherman/BUILD index 055098c7f8c..4bec00f3474 100644 --- a/vendor/github.com/spf13/jwalterweatherman/BUILD +++ b/vendor/github.com/spf13/jwalterweatherman/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["thatswhyyoualwaysleaveanote.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/spf13/pflag/BUILD b/vendor/github.com/spf13/pflag/BUILD index f49186f71f3..b9450f2ddd9 100644 --- a/vendor/github.com/spf13/pflag/BUILD +++ b/vendor/github.com/spf13/pflag/BUILD @@ -37,7 +37,6 @@ go_library( "uint8.go", "uint_slice.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/spf13/viper/BUILD b/vendor/github.com/spf13/viper/BUILD index c3a87460ef3..5cbdd128f60 100644 --- a/vendor/github.com/spf13/viper/BUILD +++ b/vendor/github.com/spf13/viper/BUILD @@ -14,7 +14,6 @@ go_library( "util.go", "viper.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/fsnotify/fsnotify:go_default_library", "//vendor/github.com/hashicorp/hcl:go_default_library", diff --git a/vendor/github.com/square/go-jose/BUILD b/vendor/github.com/square/go-jose/BUILD index 9ec58cd66de..582424931b9 100644 --- a/vendor/github.com/square/go-jose/BUILD +++ b/vendor/github.com/square/go-jose/BUILD @@ -22,7 +22,6 @@ go_library( "symmetric.go", "utils.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/square/go-jose/cipher:go_default_library", "//vendor/github.com/square/go-jose/json:go_default_library", diff --git a/vendor/github.com/square/go-jose/cipher/BUILD b/vendor/github.com/square/go-jose/cipher/BUILD index 66eff4ca765..801308e44ae 100644 --- a/vendor/github.com/square/go-jose/cipher/BUILD +++ b/vendor/github.com/square/go-jose/cipher/BUILD @@ -15,7 +15,6 @@ go_library( "ecdh_es.go", "key_wrap.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/square/go-jose/json/BUILD b/vendor/github.com/square/go-jose/json/BUILD index eb8d7f131c4..5ea124ff50b 100644 --- a/vendor/github.com/square/go-jose/json/BUILD +++ b/vendor/github.com/square/go-jose/json/BUILD @@ -17,7 +17,6 @@ go_library( "stream.go", "tags.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/storageos/go-api/BUILD b/vendor/github.com/storageos/go-api/BUILD index 969a5e7f0df..4d13ba9aa0b 100644 --- a/vendor/github.com/storageos/go-api/BUILD +++ b/vendor/github.com/storageos/go-api/BUILD @@ -28,7 +28,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = [ "//vendor/github.com/gorilla/websocket:go_default_library", "//vendor/github.com/storageos/go-api/types:go_default_library", diff --git a/vendor/github.com/storageos/go-api/types/BUILD b/vendor/github.com/storageos/go-api/types/BUILD index ef048b6a499..04b70310efe 100644 --- a/vendor/github.com/storageos/go-api/types/BUILD +++ b/vendor/github.com/storageos/go-api/types/BUILD @@ -32,7 +32,6 @@ go_library( "volume_create_options.go", "volume_update_options.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/stretchr/objx/BUILD b/vendor/github.com/stretchr/objx/BUILD index 70f4f291514..eeca96dee9f 100644 --- a/vendor/github.com/stretchr/objx/BUILD +++ b/vendor/github.com/stretchr/objx/BUILD @@ -21,7 +21,6 @@ go_library( "type_specific_codegen.go", "value.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/stretchr/testify/assert/BUILD b/vendor/github.com/stretchr/testify/assert/BUILD index 3f6ab86c08e..3b08d2eeeea 100644 --- a/vendor/github.com/stretchr/testify/assert/BUILD +++ b/vendor/github.com/stretchr/testify/assert/BUILD @@ -18,7 +18,6 @@ go_library( "forward_assertions.go", "http_assertions.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/pmezard/go-difflib/difflib:go_default_library", diff --git a/vendor/github.com/stretchr/testify/mock/BUILD b/vendor/github.com/stretchr/testify/mock/BUILD index c6399a0936e..559e1cdba7c 100644 --- a/vendor/github.com/stretchr/testify/mock/BUILD +++ b/vendor/github.com/stretchr/testify/mock/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "mock.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/davecgh/go-spew/spew:go_default_library", "//vendor/github.com/pmezard/go-difflib/difflib:go_default_library", diff --git a/vendor/github.com/stretchr/testify/require/BUILD b/vendor/github.com/stretchr/testify/require/BUILD index fadc8e7f2fc..edc1c02538d 100644 --- a/vendor/github.com/stretchr/testify/require/BUILD +++ b/vendor/github.com/stretchr/testify/require/BUILD @@ -16,7 +16,6 @@ go_library( "require_forward.go", "requirements.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/stretchr/testify/assert:go_default_library"], ) diff --git a/vendor/github.com/syndtr/gocapability/capability/BUILD b/vendor/github.com/syndtr/gocapability/capability/BUILD index 24abfdeb38f..60e53ac8b32 100644 --- a/vendor/github.com/syndtr/gocapability/capability/BUILD +++ b/vendor/github.com/syndtr/gocapability/capability/BUILD @@ -21,7 +21,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/ugorji/go/codec/BUILD b/vendor/github.com/ugorji/go/codec/BUILD index e07083e7beb..c3ef123f7e7 100644 --- a/vendor/github.com/ugorji/go/codec/BUILD +++ b/vendor/github.com/ugorji/go/codec/BUILD @@ -35,7 +35,6 @@ go_library( "simple.go", "time.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/ugorji/go/codec/codecgen/BUILD b/vendor/github.com/ugorji/go/codec/codecgen/BUILD index 8c44fb5e9c2..305eb5c7e21 100644 --- a/vendor/github.com/ugorji/go/codec/codecgen/BUILD +++ b/vendor/github.com/ugorji/go/codec/codecgen/BUILD @@ -11,7 +11,6 @@ load( go_binary( name = "codecgen", library = ":go_default_library", - tags = ["automanaged"], ) go_library( @@ -20,7 +19,6 @@ go_library( "gen.go", "z.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/vishvananda/netlink/BUILD b/vendor/github.com/vishvananda/netlink/BUILD index 88cf7a17c5d..a98b88e81a4 100644 --- a/vendor/github.com/vishvananda/netlink/BUILD +++ b/vendor/github.com/vishvananda/netlink/BUILD @@ -36,7 +36,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = ["//vendor/github.com/vishvananda/netlink/nl:go_default_library"], ) diff --git a/vendor/github.com/vishvananda/netlink/nl/BUILD b/vendor/github.com/vishvananda/netlink/nl/BUILD index 889548c179d..316652d96ac 100644 --- a/vendor/github.com/vishvananda/netlink/nl/BUILD +++ b/vendor/github.com/vishvananda/netlink/nl/BUILD @@ -22,7 +22,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/vmware/govmomi/BUILD b/vendor/github.com/vmware/govmomi/BUILD index 7d4040cb596..d748fd10438 100644 --- a/vendor/github.com/vmware/govmomi/BUILD +++ b/vendor/github.com/vmware/govmomi/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["client.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/property:go_default_library", "//vendor/github.com/vmware/govmomi/session:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/find/BUILD b/vendor/github.com/vmware/govmomi/find/BUILD index fd6df8e4d10..240ba74534c 100644 --- a/vendor/github.com/vmware/govmomi/find/BUILD +++ b/vendor/github.com/vmware/govmomi/find/BUILD @@ -15,7 +15,6 @@ go_library( "finder.go", "recurser.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/list:go_default_library", "//vendor/github.com/vmware/govmomi/object:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/list/BUILD b/vendor/github.com/vmware/govmomi/list/BUILD index a58ef53322a..0f1b5c74d7f 100644 --- a/vendor/github.com/vmware/govmomi/list/BUILD +++ b/vendor/github.com/vmware/govmomi/list/BUILD @@ -13,7 +13,6 @@ go_library( "lister.go", "path.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/property:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/mo:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/object/BUILD b/vendor/github.com/vmware/govmomi/object/BUILD index 8229b147138..ac34c812330 100644 --- a/vendor/github.com/vmware/govmomi/object/BUILD +++ b/vendor/github.com/vmware/govmomi/object/BUILD @@ -65,7 +65,6 @@ go_library( "virtual_machine.go", "vmware_distributed_virtual_switch.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/property:go_default_library", "//vendor/github.com/vmware/govmomi/session:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/pbm/BUILD b/vendor/github.com/vmware/govmomi/pbm/BUILD index 738d8079ac7..e6b606b86ac 100644 --- a/vendor/github.com/vmware/govmomi/pbm/BUILD +++ b/vendor/github.com/vmware/govmomi/pbm/BUILD @@ -13,7 +13,6 @@ go_library( "client.go", "pbm_util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/pbm/methods:go_default_library", "//vendor/github.com/vmware/govmomi/pbm/types:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/pbm/methods/BUILD b/vendor/github.com/vmware/govmomi/pbm/methods/BUILD index e46975ca601..1660275a328 100644 --- a/vendor/github.com/vmware/govmomi/pbm/methods/BUILD +++ b/vendor/github.com/vmware/govmomi/pbm/methods/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["methods.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/pbm/types:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/pbm/types/BUILD b/vendor/github.com/vmware/govmomi/pbm/types/BUILD index 5106154689f..c020b66d288 100644 --- a/vendor/github.com/vmware/govmomi/pbm/types/BUILD +++ b/vendor/github.com/vmware/govmomi/pbm/types/BUILD @@ -14,7 +14,6 @@ go_library( "if.go", "types.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/vmware/govmomi/vim25/types:go_default_library"], ) diff --git a/vendor/github.com/vmware/govmomi/property/BUILD b/vendor/github.com/vmware/govmomi/property/BUILD index ba6f040c4ac..c8014bb5250 100644 --- a/vendor/github.com/vmware/govmomi/property/BUILD +++ b/vendor/github.com/vmware/govmomi/property/BUILD @@ -14,7 +14,6 @@ go_library( "filter.go", "wait.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/vim25:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/session/BUILD b/vendor/github.com/vmware/govmomi/session/BUILD index 207a7db4541..860fba678c8 100644 --- a/vendor/github.com/vmware/govmomi/session/BUILD +++ b/vendor/github.com/vmware/govmomi/session/BUILD @@ -13,7 +13,6 @@ go_library( "keep_alive.go", "manager.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/property:go_default_library", "//vendor/github.com/vmware/govmomi/vim25:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/task/BUILD b/vendor/github.com/vmware/govmomi/task/BUILD index ce6f62096ff..3d8791b1cae 100644 --- a/vendor/github.com/vmware/govmomi/task/BUILD +++ b/vendor/github.com/vmware/govmomi/task/BUILD @@ -13,7 +13,6 @@ go_library( "error.go", "wait.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/property:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/progress:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/BUILD b/vendor/github.com/vmware/govmomi/vim25/BUILD index afa0e144475..385910a7a09 100644 --- a/vendor/github.com/vmware/govmomi/vim25/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/BUILD @@ -14,7 +14,6 @@ go_library( "doc.go", "retry.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/debug/BUILD b/vendor/github.com/vmware/govmomi/vim25/debug/BUILD index b23d60e1f28..389a4e3c3b8 100644 --- a/vendor/github.com/vmware/govmomi/vim25/debug/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/debug/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["debug.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/vmware/govmomi/vim25/methods/BUILD b/vendor/github.com/vmware/govmomi/vim25/methods/BUILD index f749b5ae011..87b860366ea 100644 --- a/vendor/github.com/vmware/govmomi/vim25/methods/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/methods/BUILD @@ -14,7 +14,6 @@ go_library( "methods.go", "service_content.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/types:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/mo/BUILD b/vendor/github.com/vmware/govmomi/vim25/mo/BUILD index aa7b40e7777..f252cd244fb 100644 --- a/vendor/github.com/vmware/govmomi/vim25/mo/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/mo/BUILD @@ -19,7 +19,6 @@ go_library( "retrieve.go", "type_info.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/vim25/methods:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/soap:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/progress/BUILD b/vendor/github.com/vmware/govmomi/vim25/progress/BUILD index 6259cee719d..eae171c68e9 100644 --- a/vendor/github.com/vmware/govmomi/vim25/progress/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/progress/BUILD @@ -19,7 +19,6 @@ go_library( "sinker.go", "tee.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/vmware/govmomi/vim25/soap/BUILD b/vendor/github.com/vmware/govmomi/vim25/soap/BUILD index ff3c0b5a0c5..223e0e4a278 100644 --- a/vendor/github.com/vmware/govmomi/vim25/soap/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/soap/BUILD @@ -15,7 +15,6 @@ go_library( "error.go", "soap.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/vmware/govmomi/vim25/debug:go_default_library", "//vendor/github.com/vmware/govmomi/vim25/progress:go_default_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/types/BUILD b/vendor/github.com/vmware/govmomi/vim25/types/BUILD index c3a87771851..7ab2174573e 100644 --- a/vendor/github.com/vmware/govmomi/vim25/types/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/types/BUILD @@ -19,7 +19,6 @@ go_library( "registry.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/BUILD b/vendor/github.com/vmware/govmomi/vim25/xml/BUILD index 817e5f6e1a7..d49ef8ab0b0 100644 --- a/vendor/github.com/vmware/govmomi/vim25/xml/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/xml/BUILD @@ -16,7 +16,6 @@ go_library( "typeinfo.go", "xml.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD index 69669fb6db9..e84c07e4c1d 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD @@ -17,7 +17,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD index 75bf6382127..0f914c04b58 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD @@ -34,7 +34,6 @@ go_library( "virtualnetworks.go", "vms.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave:go_default_library"], ) diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD index 334cad75be0..cd27e70e829 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD @@ -19,7 +19,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], deps = select({ "@io_bazel_rules_go//go/platform:windows_amd64": [ "//vendor/github.com/vmware/photon-controller-go-sdk/SSPI:go_default_library", diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD b/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD index f7c64bdb5da..04636286c63 100644 --- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD +++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD @@ -75,7 +75,6 @@ go_library( "ZoneService.go", "cloudstack.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/xiang90/probing/BUILD b/vendor/github.com/xiang90/probing/BUILD index 3e6a20197f4..e84ce227c15 100644 --- a/vendor/github.com/xiang90/probing/BUILD +++ b/vendor/github.com/xiang90/probing/BUILD @@ -14,7 +14,6 @@ go_library( "server.go", "status.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/github.com/xyproto/simpleredis/BUILD b/vendor/github.com/xyproto/simpleredis/BUILD index a9b08c82268..ddbed78124a 100644 --- a/vendor/github.com/xyproto/simpleredis/BUILD +++ b/vendor/github.com/xyproto/simpleredis/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["simpleredis.go"], - tags = ["automanaged"], deps = ["//vendor/github.com/garyburd/redigo/redis:go_default_library"], ) diff --git a/vendor/go.pedge.io/pb/go/google/protobuf/BUILD b/vendor/go.pedge.io/pb/go/google/protobuf/BUILD index 7eac7a8ccc8..8e5aa51c861 100644 --- a/vendor/go.pedge.io/pb/go/google/protobuf/BUILD +++ b/vendor/go.pedge.io/pb/go/google/protobuf/BUILD @@ -22,7 +22,6 @@ go_library( "type.pb.go", "wrappers.pb.go", ], - tags = ["automanaged"], deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], ) diff --git a/vendor/go4.org/errorutil/BUILD b/vendor/go4.org/errorutil/BUILD index 92d7f9d9691..53e89b94a31 100644 --- a/vendor/go4.org/errorutil/BUILD +++ b/vendor/go4.org/errorutil/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["highlight.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/crypto/bcrypt/BUILD b/vendor/golang.org/x/crypto/bcrypt/BUILD index bd7f57084a5..273bfc0e11d 100644 --- a/vendor/golang.org/x/crypto/bcrypt/BUILD +++ b/vendor/golang.org/x/crypto/bcrypt/BUILD @@ -13,7 +13,6 @@ go_library( "base64.go", "bcrypt.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/crypto/blowfish:go_default_library"], ) diff --git a/vendor/golang.org/x/crypto/blowfish/BUILD b/vendor/golang.org/x/crypto/blowfish/BUILD index 339b539b2cf..b131a28e9e7 100644 --- a/vendor/golang.org/x/crypto/blowfish/BUILD +++ b/vendor/golang.org/x/crypto/blowfish/BUILD @@ -14,7 +14,6 @@ go_library( "cipher.go", "const.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/crypto/curve25519/BUILD b/vendor/golang.org/x/crypto/curve25519/BUILD index 117551c2ac7..f9a1c699b5b 100644 --- a/vendor/golang.org/x/crypto/curve25519/BUILD +++ b/vendor/golang.org/x/crypto/curve25519/BUILD @@ -42,7 +42,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/crypto/ed25519/BUILD b/vendor/golang.org/x/crypto/ed25519/BUILD index 0ac739f977e..2197c11cefa 100644 --- a/vendor/golang.org/x/crypto/ed25519/BUILD +++ b/vendor/golang.org/x/crypto/ed25519/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["ed25519.go"], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/crypto/ed25519/internal/edwards25519:go_default_library"], ) diff --git a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD index fdf6b424272..8915d6725fc 100644 --- a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD +++ b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD @@ -13,7 +13,6 @@ go_library( "const.go", "edwards25519.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/crypto/nacl/secretbox/BUILD b/vendor/golang.org/x/crypto/nacl/secretbox/BUILD index fa296b3c1c8..15abfd43a5f 100644 --- a/vendor/golang.org/x/crypto/nacl/secretbox/BUILD +++ b/vendor/golang.org/x/crypto/nacl/secretbox/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["secretbox.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/crypto/poly1305:go_default_library", "//vendor/golang.org/x/crypto/salsa20/salsa:go_default_library", diff --git a/vendor/golang.org/x/crypto/pkcs12/BUILD b/vendor/golang.org/x/crypto/pkcs12/BUILD index 57973e4f4fc..ec4b372929a 100644 --- a/vendor/golang.org/x/crypto/pkcs12/BUILD +++ b/vendor/golang.org/x/crypto/pkcs12/BUILD @@ -18,7 +18,6 @@ go_library( "pkcs12.go", "safebags.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/crypto/pkcs12/internal/rc2:go_default_library"], ) diff --git a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD index 09c19cc8657..4de994e7760 100644 --- a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD +++ b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["rc2.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/crypto/poly1305/BUILD b/vendor/golang.org/x/crypto/poly1305/BUILD index 90759436065..798a84d9d81 100644 --- a/vendor/golang.org/x/crypto/poly1305/BUILD +++ b/vendor/golang.org/x/crypto/poly1305/BUILD @@ -27,7 +27,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/BUILD b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD index 585e023afa0..0d96da4f1b3 100644 --- a/vendor/golang.org/x/crypto/salsa20/salsa/BUILD +++ b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD @@ -28,7 +28,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/crypto/ssh/BUILD b/vendor/golang.org/x/crypto/ssh/BUILD index 7974c289307..38345d72dca 100644 --- a/vendor/golang.org/x/crypto/ssh/BUILD +++ b/vendor/golang.org/x/crypto/ssh/BUILD @@ -30,7 +30,6 @@ go_library( "tcpip.go", "transport.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/crypto/curve25519:go_default_library", "//vendor/golang.org/x/crypto/ed25519:go_default_library", diff --git a/vendor/golang.org/x/crypto/ssh/terminal/BUILD b/vendor/golang.org/x/crypto/ssh/terminal/BUILD index e7f58b613ee..e186b2c714d 100644 --- a/vendor/golang.org/x/crypto/ssh/terminal/BUILD +++ b/vendor/golang.org/x/crypto/ssh/terminal/BUILD @@ -25,7 +25,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/exp/inotify/BUILD b/vendor/golang.org/x/exp/inotify/BUILD index 6efc7dc32c2..c46a29144ce 100644 --- a/vendor/golang.org/x/exp/inotify/BUILD +++ b/vendor/golang.org/x/exp/inotify/BUILD @@ -15,7 +15,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/net/context/BUILD b/vendor/golang.org/x/net/context/BUILD index 49d76ff35bc..d3c7bbac2f7 100644 --- a/vendor/golang.org/x/net/context/BUILD +++ b/vendor/golang.org/x/net/context/BUILD @@ -14,7 +14,6 @@ go_library( "go17.go", "pre_go17.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/net/context/ctxhttp/BUILD b/vendor/golang.org/x/net/context/ctxhttp/BUILD index c6e131f305c..80afc887d1f 100644 --- a/vendor/golang.org/x/net/context/ctxhttp/BUILD +++ b/vendor/golang.org/x/net/context/ctxhttp/BUILD @@ -13,7 +13,6 @@ go_library( "ctxhttp.go", "ctxhttp_pre17.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], ) diff --git a/vendor/golang.org/x/net/html/BUILD b/vendor/golang.org/x/net/html/BUILD index 26bfe511315..08ee89ecde2 100644 --- a/vendor/golang.org/x/net/html/BUILD +++ b/vendor/golang.org/x/net/html/BUILD @@ -21,7 +21,6 @@ go_library( "render.go", "token.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/html/atom:go_default_library"], ) diff --git a/vendor/golang.org/x/net/html/atom/BUILD b/vendor/golang.org/x/net/html/atom/BUILD index 73899017b57..8a212655368 100644 --- a/vendor/golang.org/x/net/html/atom/BUILD +++ b/vendor/golang.org/x/net/html/atom/BUILD @@ -13,7 +13,6 @@ go_library( "atom.go", "table.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/net/http2/BUILD b/vendor/golang.org/x/net/http2/BUILD index 769f9a5ef88..374c349adde 100644 --- a/vendor/golang.org/x/net/http2/BUILD +++ b/vendor/golang.org/x/net/http2/BUILD @@ -34,7 +34,6 @@ go_library( "writesched_priority.go", "writesched_random.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/http2/hpack:go_default_library", "//vendor/golang.org/x/net/idna:go_default_library", diff --git a/vendor/golang.org/x/net/http2/hpack/BUILD b/vendor/golang.org/x/net/http2/hpack/BUILD index 49af50cde5c..c85707ab5a3 100644 --- a/vendor/golang.org/x/net/http2/hpack/BUILD +++ b/vendor/golang.org/x/net/http2/hpack/BUILD @@ -15,7 +15,6 @@ go_library( "huffman.go", "tables.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/net/idna/BUILD b/vendor/golang.org/x/net/idna/BUILD index 169d9980a23..4326d0757fc 100644 --- a/vendor/golang.org/x/net/idna/BUILD +++ b/vendor/golang.org/x/net/idna/BUILD @@ -13,7 +13,6 @@ go_library( "idna.go", "punycode.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/net/internal/timeseries/BUILD b/vendor/golang.org/x/net/internal/timeseries/BUILD index f559df57670..e51b624a9b2 100644 --- a/vendor/golang.org/x/net/internal/timeseries/BUILD +++ b/vendor/golang.org/x/net/internal/timeseries/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["timeseries.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/net/lex/httplex/BUILD b/vendor/golang.org/x/net/lex/httplex/BUILD index cd52e02bc74..d8eab7b3572 100644 --- a/vendor/golang.org/x/net/lex/httplex/BUILD +++ b/vendor/golang.org/x/net/lex/httplex/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["httplex.go"], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/idna:go_default_library"], ) diff --git a/vendor/golang.org/x/net/proxy/BUILD b/vendor/golang.org/x/net/proxy/BUILD index d458ac168c1..656c8a1c6b3 100644 --- a/vendor/golang.org/x/net/proxy/BUILD +++ b/vendor/golang.org/x/net/proxy/BUILD @@ -15,7 +15,6 @@ go_library( "proxy.go", "socks5.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/net/trace/BUILD b/vendor/golang.org/x/net/trace/BUILD index 8bac8a02139..c3c39ca5dc6 100644 --- a/vendor/golang.org/x/net/trace/BUILD +++ b/vendor/golang.org/x/net/trace/BUILD @@ -14,7 +14,6 @@ go_library( "histogram.go", "trace.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/internal/timeseries:go_default_library", diff --git a/vendor/golang.org/x/net/websocket/BUILD b/vendor/golang.org/x/net/websocket/BUILD index 3b1c6be9d6b..4fbd978e2a3 100644 --- a/vendor/golang.org/x/net/websocket/BUILD +++ b/vendor/golang.org/x/net/websocket/BUILD @@ -16,7 +16,6 @@ go_library( "server.go", "websocket.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/oauth2/BUILD b/vendor/golang.org/x/oauth2/BUILD index db1282402fa..ba941d41e05 100644 --- a/vendor/golang.org/x/oauth2/BUILD +++ b/vendor/golang.org/x/oauth2/BUILD @@ -14,7 +14,6 @@ go_library( "token.go", "transport.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/oauth2/internal:go_default_library", diff --git a/vendor/golang.org/x/oauth2/google/BUILD b/vendor/golang.org/x/oauth2/google/BUILD index 6762f336108..14f2677ff6d 100644 --- a/vendor/golang.org/x/oauth2/google/BUILD +++ b/vendor/golang.org/x/oauth2/google/BUILD @@ -16,7 +16,6 @@ go_library( "jwt.go", "sdk.go", ], - tags = ["automanaged"], deps = [ "//vendor/cloud.google.com/go/compute/metadata:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/golang.org/x/oauth2/internal/BUILD b/vendor/golang.org/x/oauth2/internal/BUILD index d12501ab885..c8f36140059 100644 --- a/vendor/golang.org/x/oauth2/internal/BUILD +++ b/vendor/golang.org/x/oauth2/internal/BUILD @@ -14,7 +14,6 @@ go_library( "token.go", "transport.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], ) diff --git a/vendor/golang.org/x/oauth2/jws/BUILD b/vendor/golang.org/x/oauth2/jws/BUILD index 2de08ce6877..ae48443bfde 100644 --- a/vendor/golang.org/x/oauth2/jws/BUILD +++ b/vendor/golang.org/x/oauth2/jws/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["jws.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/oauth2/jwt/BUILD b/vendor/golang.org/x/oauth2/jwt/BUILD index 713ba86b7fe..6dfeec20edc 100644 --- a/vendor/golang.org/x/oauth2/jwt/BUILD +++ b/vendor/golang.org/x/oauth2/jwt/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["jwt.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/oauth2:go_default_library", diff --git a/vendor/golang.org/x/sys/unix/BUILD b/vendor/golang.org/x/sys/unix/BUILD index 62001aabcb3..8277a69e107 100644 --- a/vendor/golang.org/x/sys/unix/BUILD +++ b/vendor/golang.org/x/sys/unix/BUILD @@ -63,7 +63,6 @@ go_library( "//conditions:default": [], }), cgo = True, - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/sys/windows/BUILD b/vendor/golang.org/x/sys/windows/BUILD index b3fb5d5b4c7..fc5a01c8283 100644 --- a/vendor/golang.org/x/sys/windows/BUILD +++ b/vendor/golang.org/x/sys/windows/BUILD @@ -32,7 +32,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/text/cases/BUILD b/vendor/golang.org/x/text/cases/BUILD index 218be6b4cc7..aedb3ded146 100644 --- a/vendor/golang.org/x/text/cases/BUILD +++ b/vendor/golang.org/x/text/cases/BUILD @@ -18,7 +18,6 @@ go_library( "tables.go", "trieval.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/text/language:go_default_library", "//vendor/golang.org/x/text/transform:go_default_library", diff --git a/vendor/golang.org/x/text/encoding/BUILD b/vendor/golang.org/x/text/encoding/BUILD index 63bc0f691ab..0e148e8b626 100644 --- a/vendor/golang.org/x/text/encoding/BUILD +++ b/vendor/golang.org/x/text/encoding/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["encoding.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/text/encoding/internal/identifier:go_default_library", "//vendor/golang.org/x/text/transform:go_default_library", diff --git a/vendor/golang.org/x/text/encoding/internal/BUILD b/vendor/golang.org/x/text/encoding/internal/BUILD index ff348ae26b6..aca9f178a37 100644 --- a/vendor/golang.org/x/text/encoding/internal/BUILD +++ b/vendor/golang.org/x/text/encoding/internal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["internal.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/text/encoding:go_default_library", "//vendor/golang.org/x/text/encoding/internal/identifier:go_default_library", diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/BUILD b/vendor/golang.org/x/text/encoding/internal/identifier/BUILD index f53ef4beb26..b875fad128f 100644 --- a/vendor/golang.org/x/text/encoding/internal/identifier/BUILD +++ b/vendor/golang.org/x/text/encoding/internal/identifier/BUILD @@ -13,7 +13,6 @@ go_library( "identifier.go", "mib.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/text/encoding/unicode/BUILD b/vendor/golang.org/x/text/encoding/unicode/BUILD index dcc19327106..142a5105b62 100644 --- a/vendor/golang.org/x/text/encoding/unicode/BUILD +++ b/vendor/golang.org/x/text/encoding/unicode/BUILD @@ -13,7 +13,6 @@ go_library( "override.go", "unicode.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/text/encoding:go_default_library", "//vendor/golang.org/x/text/encoding/internal:go_default_library", diff --git a/vendor/golang.org/x/text/internal/tag/BUILD b/vendor/golang.org/x/text/internal/tag/BUILD index d7e9e50756e..6a513ced652 100644 --- a/vendor/golang.org/x/text/internal/tag/BUILD +++ b/vendor/golang.org/x/text/internal/tag/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["tag.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/text/internal/utf8internal/BUILD b/vendor/golang.org/x/text/internal/utf8internal/BUILD index 8c9fb63de53..eeb4ccdf314 100644 --- a/vendor/golang.org/x/text/internal/utf8internal/BUILD +++ b/vendor/golang.org/x/text/internal/utf8internal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["utf8internal.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/text/language/BUILD b/vendor/golang.org/x/text/language/BUILD index 863722e4cab..bbe775ff533 100644 --- a/vendor/golang.org/x/text/language/BUILD +++ b/vendor/golang.org/x/text/language/BUILD @@ -22,7 +22,6 @@ go_library( "tables.go", "tags.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/text/internal/tag:go_default_library"], ) diff --git a/vendor/golang.org/x/text/runes/BUILD b/vendor/golang.org/x/text/runes/BUILD index 9390613ea76..507c01c3674 100644 --- a/vendor/golang.org/x/text/runes/BUILD +++ b/vendor/golang.org/x/text/runes/BUILD @@ -13,7 +13,6 @@ go_library( "cond.go", "runes.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/text/transform:go_default_library"], ) diff --git a/vendor/golang.org/x/text/secure/bidirule/BUILD b/vendor/golang.org/x/text/secure/bidirule/BUILD index ca1b4471ef8..4fc1b149d2e 100644 --- a/vendor/golang.org/x/text/secure/bidirule/BUILD +++ b/vendor/golang.org/x/text/secure/bidirule/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["bidirule.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/text/transform:go_default_library", "//vendor/golang.org/x/text/unicode/bidi:go_default_library", diff --git a/vendor/golang.org/x/text/secure/precis/BUILD b/vendor/golang.org/x/text/secure/precis/BUILD index eae8ff64729..d01982a53df 100644 --- a/vendor/golang.org/x/text/secure/precis/BUILD +++ b/vendor/golang.org/x/text/secure/precis/BUILD @@ -21,7 +21,6 @@ go_library( "transformer.go", "trieval.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/text/cases:go_default_library", "//vendor/golang.org/x/text/runes:go_default_library", diff --git a/vendor/golang.org/x/text/transform/BUILD b/vendor/golang.org/x/text/transform/BUILD index 78f8c3b10f9..5e89c39e90b 100644 --- a/vendor/golang.org/x/text/transform/BUILD +++ b/vendor/golang.org/x/text/transform/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["transform.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/text/unicode/bidi/BUILD b/vendor/golang.org/x/text/unicode/bidi/BUILD index 02437601ea1..3166e4466c5 100644 --- a/vendor/golang.org/x/text/unicode/bidi/BUILD +++ b/vendor/golang.org/x/text/unicode/bidi/BUILD @@ -17,7 +17,6 @@ go_library( "tables.go", "trieval.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/golang.org/x/text/unicode/norm/BUILD b/vendor/golang.org/x/text/unicode/norm/BUILD index f4c22759aed..df8e801fd68 100644 --- a/vendor/golang.org/x/text/unicode/norm/BUILD +++ b/vendor/golang.org/x/text/unicode/norm/BUILD @@ -20,7 +20,6 @@ go_library( "transform.go", "trie.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/text/transform:go_default_library"], ) diff --git a/vendor/golang.org/x/text/width/BUILD b/vendor/golang.org/x/text/width/BUILD index aa4a1726cf9..4e99d3535fc 100644 --- a/vendor/golang.org/x/text/width/BUILD +++ b/vendor/golang.org/x/text/width/BUILD @@ -16,7 +16,6 @@ go_library( "trieval.go", "width.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/text/transform:go_default_library"], ) diff --git a/vendor/golang.org/x/time/rate/BUILD b/vendor/golang.org/x/time/rate/BUILD index df8379190e2..12098763d03 100644 --- a/vendor/golang.org/x/time/rate/BUILD +++ b/vendor/golang.org/x/time/rate/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["rate.go"], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], ) diff --git a/vendor/golang.org/x/tools/container/intsets/BUILD b/vendor/golang.org/x/tools/container/intsets/BUILD index fe66071f9d4..df1992b8ec7 100644 --- a/vendor/golang.org/x/tools/container/intsets/BUILD +++ b/vendor/golang.org/x/tools/container/intsets/BUILD @@ -28,7 +28,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/google.golang.org/api/cloudkms/v1/BUILD b/vendor/google.golang.org/api/cloudkms/v1/BUILD index 36e0dbf0dbb..2685419f72a 100644 --- a/vendor/google.golang.org/api/cloudkms/v1/BUILD +++ b/vendor/google.golang.org/api/cloudkms/v1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["cloudkms-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD b/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD index 49ca6471f46..ecd0f101916 100644 --- a/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD +++ b/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["cloudmonitoring-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/compute/v0.alpha/BUILD b/vendor/google.golang.org/api/compute/v0.alpha/BUILD index 5c25b75f590..984a2eeb188 100644 --- a/vendor/google.golang.org/api/compute/v0.alpha/BUILD +++ b/vendor/google.golang.org/api/compute/v0.alpha/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["compute-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/compute/v0.beta/BUILD b/vendor/google.golang.org/api/compute/v0.beta/BUILD index 5c25b75f590..984a2eeb188 100644 --- a/vendor/google.golang.org/api/compute/v0.beta/BUILD +++ b/vendor/google.golang.org/api/compute/v0.beta/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["compute-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/compute/v1/BUILD b/vendor/google.golang.org/api/compute/v1/BUILD index 5c25b75f590..984a2eeb188 100644 --- a/vendor/google.golang.org/api/compute/v1/BUILD +++ b/vendor/google.golang.org/api/compute/v1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["compute-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/container/v1/BUILD b/vendor/google.golang.org/api/container/v1/BUILD index 32738c10365..ba7f63f3c89 100644 --- a/vendor/google.golang.org/api/container/v1/BUILD +++ b/vendor/google.golang.org/api/container/v1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["container-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/dns/v1/BUILD b/vendor/google.golang.org/api/dns/v1/BUILD index 786c56a6581..038e9f2c628 100644 --- a/vendor/google.golang.org/api/dns/v1/BUILD +++ b/vendor/google.golang.org/api/dns/v1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["dns-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/gensupport/BUILD b/vendor/google.golang.org/api/gensupport/BUILD index 40e68622550..ac04ccee189 100644 --- a/vendor/google.golang.org/api/gensupport/BUILD +++ b/vendor/google.golang.org/api/gensupport/BUILD @@ -22,7 +22,6 @@ go_library( "retry.go", "send.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/googleapi/BUILD b/vendor/google.golang.org/api/googleapi/BUILD index 9483e60ba1a..aa9d39f89fb 100644 --- a/vendor/google.golang.org/api/googleapi/BUILD +++ b/vendor/google.golang.org/api/googleapi/BUILD @@ -13,7 +13,6 @@ go_library( "googleapi.go", "types.go", ], - tags = ["automanaged"], deps = ["//vendor/google.golang.org/api/googleapi/internal/uritemplates:go_default_library"], ) diff --git a/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD b/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD index e1eeab6831b..7fe1792155e 100644 --- a/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD +++ b/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD @@ -13,7 +13,6 @@ go_library( "uritemplates.go", "utils.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/google.golang.org/api/logging/v2beta1/BUILD b/vendor/google.golang.org/api/logging/v2beta1/BUILD index 215d304c26c..86a1a2f909a 100644 --- a/vendor/google.golang.org/api/logging/v2beta1/BUILD +++ b/vendor/google.golang.org/api/logging/v2beta1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["logging-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/monitoring/v3/BUILD b/vendor/google.golang.org/api/monitoring/v3/BUILD index 9fb3f091e9f..c19f67ccb1f 100644 --- a/vendor/google.golang.org/api/monitoring/v3/BUILD +++ b/vendor/google.golang.org/api/monitoring/v3/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["monitoring-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/api/pubsub/v1/BUILD b/vendor/google.golang.org/api/pubsub/v1/BUILD index 25ad62bf16a..3e64975a093 100644 --- a/vendor/google.golang.org/api/pubsub/v1/BUILD +++ b/vendor/google.golang.org/api/pubsub/v1/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["pubsub-gen.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/context/ctxhttp:go_default_library", diff --git a/vendor/google.golang.org/grpc/BUILD b/vendor/google.golang.org/grpc/BUILD index 387f8bb1590..1eeb44e70df 100644 --- a/vendor/google.golang.org/grpc/BUILD +++ b/vendor/google.golang.org/grpc/BUILD @@ -21,7 +21,6 @@ go_library( "stream.go", "trace.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/protobuf/proto:go_default_library", "//vendor/golang.org/x/net/context:go_default_library", diff --git a/vendor/google.golang.org/grpc/codes/BUILD b/vendor/google.golang.org/grpc/codes/BUILD index 5b8ddfc3ec8..2169ab825f6 100644 --- a/vendor/google.golang.org/grpc/codes/BUILD +++ b/vendor/google.golang.org/grpc/codes/BUILD @@ -13,7 +13,6 @@ go_library( "code_string.go", "codes.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/google.golang.org/grpc/credentials/BUILD b/vendor/google.golang.org/grpc/credentials/BUILD index 6ee3ce41741..3aa731785e0 100644 --- a/vendor/google.golang.org/grpc/credentials/BUILD +++ b/vendor/google.golang.org/grpc/credentials/BUILD @@ -14,7 +14,6 @@ go_library( "credentials_util_go17.go", "credentials_util_pre_go17.go", ], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], ) diff --git a/vendor/google.golang.org/grpc/grpclog/BUILD b/vendor/google.golang.org/grpc/grpclog/BUILD index 13f3617af17..9ae5403e371 100644 --- a/vendor/google.golang.org/grpc/grpclog/BUILD +++ b/vendor/google.golang.org/grpc/grpclog/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["logger.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/google.golang.org/grpc/internal/BUILD b/vendor/google.golang.org/grpc/internal/BUILD index e63dc22b422..365d619e76b 100644 --- a/vendor/google.golang.org/grpc/internal/BUILD +++ b/vendor/google.golang.org/grpc/internal/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["internal.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/google.golang.org/grpc/metadata/BUILD b/vendor/google.golang.org/grpc/metadata/BUILD index 541435f2f5a..782fb7d968f 100644 --- a/vendor/google.golang.org/grpc/metadata/BUILD +++ b/vendor/google.golang.org/grpc/metadata/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["metadata.go"], - tags = ["automanaged"], deps = ["//vendor/golang.org/x/net/context:go_default_library"], ) diff --git a/vendor/google.golang.org/grpc/naming/BUILD b/vendor/google.golang.org/grpc/naming/BUILD index 5010b772efc..8bf9f1fcd9d 100644 --- a/vendor/google.golang.org/grpc/naming/BUILD +++ b/vendor/google.golang.org/grpc/naming/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["naming.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/google.golang.org/grpc/peer/BUILD b/vendor/google.golang.org/grpc/peer/BUILD index f08c2707891..fbd2001986f 100644 --- a/vendor/google.golang.org/grpc/peer/BUILD +++ b/vendor/google.golang.org/grpc/peer/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["peer.go"], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/google.golang.org/grpc/credentials:go_default_library", diff --git a/vendor/google.golang.org/grpc/transport/BUILD b/vendor/google.golang.org/grpc/transport/BUILD index 0432029f4a7..ce5b34accde 100644 --- a/vendor/google.golang.org/grpc/transport/BUILD +++ b/vendor/google.golang.org/grpc/transport/BUILD @@ -20,7 +20,6 @@ go_library( "pre_go16.go", "transport.go", ], - tags = ["automanaged"], deps = [ "//vendor/golang.org/x/net/context:go_default_library", "//vendor/golang.org/x/net/http2:go_default_library", diff --git a/vendor/gopkg.in/gcfg.v1/BUILD b/vendor/gopkg.in/gcfg.v1/BUILD index 8e95d145b34..28aa709b07c 100644 --- a/vendor/gopkg.in/gcfg.v1/BUILD +++ b/vendor/gopkg.in/gcfg.v1/BUILD @@ -17,7 +17,6 @@ go_library( "read.go", "set.go", ], - tags = ["automanaged"], deps = [ "//vendor/gopkg.in/gcfg.v1/scanner:go_default_library", "//vendor/gopkg.in/gcfg.v1/token:go_default_library", diff --git a/vendor/gopkg.in/gcfg.v1/scanner/BUILD b/vendor/gopkg.in/gcfg.v1/scanner/BUILD index 0448e2f1dd8..910b4789626 100644 --- a/vendor/gopkg.in/gcfg.v1/scanner/BUILD +++ b/vendor/gopkg.in/gcfg.v1/scanner/BUILD @@ -13,7 +13,6 @@ go_library( "errors.go", "scanner.go", ], - tags = ["automanaged"], deps = ["//vendor/gopkg.in/gcfg.v1/token:go_default_library"], ) diff --git a/vendor/gopkg.in/gcfg.v1/token/BUILD b/vendor/gopkg.in/gcfg.v1/token/BUILD index 3e66d4c9a53..47dcdb55c73 100644 --- a/vendor/gopkg.in/gcfg.v1/token/BUILD +++ b/vendor/gopkg.in/gcfg.v1/token/BUILD @@ -14,7 +14,6 @@ go_library( "serialize.go", "token.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/gopkg.in/gcfg.v1/types/BUILD b/vendor/gopkg.in/gcfg.v1/types/BUILD index ab08d32782f..bfe3cb1f8e9 100644 --- a/vendor/gopkg.in/gcfg.v1/types/BUILD +++ b/vendor/gopkg.in/gcfg.v1/types/BUILD @@ -16,7 +16,6 @@ go_library( "int.go", "scan.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/gopkg.in/inf.v0/BUILD b/vendor/gopkg.in/inf.v0/BUILD index 0fea2554ddb..93b7e4eddb2 100644 --- a/vendor/gopkg.in/inf.v0/BUILD +++ b/vendor/gopkg.in/inf.v0/BUILD @@ -13,7 +13,6 @@ go_library( "dec.go", "rounder.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD b/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD index 8a716a93b2e..551c68d2bab 100644 --- a/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD @@ -18,7 +18,6 @@ go_library( ], "//conditions:default": [], }), - tags = ["automanaged"], ) filegroup( diff --git a/vendor/gopkg.in/warnings.v0/BUILD b/vendor/gopkg.in/warnings.v0/BUILD index c2d0a12d102..d599d50b124 100644 --- a/vendor/gopkg.in/warnings.v0/BUILD +++ b/vendor/gopkg.in/warnings.v0/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["warnings.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/gopkg.in/yaml.v2/BUILD b/vendor/gopkg.in/yaml.v2/BUILD index c6872b0d97f..70789685e83 100644 --- a/vendor/gopkg.in/yaml.v2/BUILD +++ b/vendor/gopkg.in/yaml.v2/BUILD @@ -24,7 +24,6 @@ go_library( "yamlh.go", "yamlprivateh.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/k8s.io/gengo/args/BUILD b/vendor/k8s.io/gengo/args/BUILD index e34d3497f7a..11b67b6b832 100644 --- a/vendor/k8s.io/gengo/args/BUILD +++ b/vendor/k8s.io/gengo/args/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["args.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/spf13/pflag:go_default_library", "//vendor/k8s.io/gengo/generator:go_default_library", diff --git a/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD b/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD index ad58ea7f4e8..c4c6aaf8354 100644 --- a/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["deepcopy.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD b/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD index 4b9a8012f2b..ba4842dcb65 100644 --- a/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["defaulter.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD b/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD index af454efe5d4..1b55ba66c9a 100644 --- a/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["import_restrict.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD b/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD index 8ceb4cf2331..43cd6639a17 100644 --- a/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD @@ -13,7 +13,6 @@ go_library( "sets.go", "tags.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD b/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD index 666bfc7bfaf..e0f99b65303 100644 --- a/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD +++ b/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD @@ -17,7 +17,6 @@ go_library( "int64.go", "string.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/k8s.io/gengo/generator/BUILD b/vendor/k8s.io/gengo/generator/BUILD index 9b272067edf..281059300ea 100644 --- a/vendor/k8s.io/gengo/generator/BUILD +++ b/vendor/k8s.io/gengo/generator/BUILD @@ -19,7 +19,6 @@ go_library( "import_tracker.go", "snippet_writer.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/namer:go_default_library", diff --git a/vendor/k8s.io/gengo/namer/BUILD b/vendor/k8s.io/gengo/namer/BUILD index 5ce6165ed24..f3c6d01a99a 100644 --- a/vendor/k8s.io/gengo/namer/BUILD +++ b/vendor/k8s.io/gengo/namer/BUILD @@ -16,7 +16,6 @@ go_library( "order.go", "plural_namer.go", ], - tags = ["automanaged"], deps = ["//vendor/k8s.io/gengo/types:go_default_library"], ) diff --git a/vendor/k8s.io/gengo/parser/BUILD b/vendor/k8s.io/gengo/parser/BUILD index e2f618fe9e1..f4bdfdf2991 100644 --- a/vendor/k8s.io/gengo/parser/BUILD +++ b/vendor/k8s.io/gengo/parser/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "parse.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/types:go_default_library", diff --git a/vendor/k8s.io/gengo/types/BUILD b/vendor/k8s.io/gengo/types/BUILD index 85e6bec816c..50d9cfc4925 100644 --- a/vendor/k8s.io/gengo/types/BUILD +++ b/vendor/k8s.io/gengo/types/BUILD @@ -15,7 +15,6 @@ go_library( "flatten.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD b/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD index 927c9b1fb7c..cbb63e0050a 100644 --- a/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD +++ b/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD @@ -14,7 +14,6 @@ go_library( "model_types.go", "types.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD b/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD index fdf593919e4..5cf112582f8 100644 --- a/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["aggregator.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/go-openapi/spec:go_default_library", "//vendor/k8s.io/kube-openapi/pkg/util:go_default_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/builder/BUILD b/vendor/k8s.io/kube-openapi/pkg/builder/BUILD index 5a7eec577bd..accab94e64e 100644 --- a/vendor/k8s.io/kube-openapi/pkg/builder/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/builder/BUILD @@ -14,7 +14,6 @@ go_library( "openapi.go", "util.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/common/BUILD b/vendor/k8s.io/kube-openapi/pkg/common/BUILD index d681ed3f76d..ecdadc13dfd 100644 --- a/vendor/k8s.io/kube-openapi/pkg/common/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/common/BUILD @@ -13,7 +13,6 @@ go_library( "common.go", "doc.go", ], - tags = ["automanaged"], deps = [ "//vendor/github.com/emicklei/go-restful:go_default_library", "//vendor/github.com/go-openapi/spec:go_default_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/generators/BUILD b/vendor/k8s.io/kube-openapi/pkg/generators/BUILD index e121430cefd..ad1557b5643 100644 --- a/vendor/k8s.io/kube-openapi/pkg/generators/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/generators/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["openapi.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/golang/glog:go_default_library", "//vendor/k8s.io/gengo/args:go_default_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/handler/BUILD b/vendor/k8s.io/kube-openapi/pkg/handler/BUILD index 7683a18e4ed..ce870c3b3df 100644 --- a/vendor/k8s.io/kube-openapi/pkg/handler/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/handler/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["handler.go"], - tags = ["automanaged"], deps = [ "//vendor/github.com/NYTimes/gziphandler:go_default_library", "//vendor/github.com/emicklei/go-restful:go_default_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/util/BUILD b/vendor/k8s.io/kube-openapi/pkg/util/BUILD index d749f9c257f..b56f02fa908 100644 --- a/vendor/k8s.io/kube-openapi/pkg/util/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/util/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["trie.go"], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/k8s.io/utils/exec/BUILD b/vendor/k8s.io/utils/exec/BUILD index fc449980efa..76392387512 100644 --- a/vendor/k8s.io/utils/exec/BUILD +++ b/vendor/k8s.io/utils/exec/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "exec.go", ], - tags = ["automanaged"], ) filegroup( diff --git a/vendor/k8s.io/utils/exec/testing/BUILD b/vendor/k8s.io/utils/exec/testing/BUILD index 130edf6f3a4..dade7dc8dab 100644 --- a/vendor/k8s.io/utils/exec/testing/BUILD +++ b/vendor/k8s.io/utils/exec/testing/BUILD @@ -10,7 +10,6 @@ load( go_library( name = "go_default_library", srcs = ["fake_exec.go"], - tags = ["automanaged"], deps = ["//vendor/k8s.io/utils/exec:go_default_library"], ) diff --git a/vendor/vbom.ml/util/sortorder/BUILD b/vendor/vbom.ml/util/sortorder/BUILD index a2743053ab5..ac3b3606306 100644 --- a/vendor/vbom.ml/util/sortorder/BUILD +++ b/vendor/vbom.ml/util/sortorder/BUILD @@ -13,7 +13,6 @@ go_library( "doc.go", "natsort.go", ], - tags = ["automanaged"], ) filegroup( From a7f49c906df816123e7d4ccbd4cebab411519465 Mon Sep 17 00:00:00 2001 From: Jeff Grafton Date: Wed, 9 Aug 2017 15:57:41 -0700 Subject: [PATCH 183/183] Use buildozer to delete licenses() rules except under third_party/ --- api/BUILD | 2 -- build/root/BUILD.root | 2 -- cluster/BUILD | 2 -- cluster/addons/fluentd-elasticsearch/es-image/BUILD | 2 -- cluster/gce/gci/mounter/BUILD | 2 -- cluster/images/etcd-version-monitor/BUILD | 2 -- cluster/images/etcd/attachlease/BUILD | 2 -- cluster/images/etcd/rollback/BUILD | 2 -- cmd/BUILD | 2 -- cmd/clicheck/BUILD | 2 -- cmd/cloud-controller-manager/BUILD | 2 -- cmd/cloud-controller-manager/app/BUILD | 2 -- cmd/cloud-controller-manager/app/options/BUILD | 2 -- cmd/gendocs/BUILD | 2 -- cmd/genkubedocs/BUILD | 2 -- cmd/genman/BUILD | 2 -- cmd/genslateyaml/BUILD | 2 -- cmd/genswaggertypedocs/BUILD | 2 -- cmd/genutils/BUILD | 2 -- cmd/genyaml/BUILD | 2 -- cmd/gke-certificates-controller/BUILD | 2 -- cmd/gke-certificates-controller/app/BUILD | 2 -- cmd/hyperkube/BUILD | 2 -- cmd/importverifier/BUILD | 2 -- cmd/kube-apiserver/BUILD | 2 -- cmd/kube-apiserver/app/BUILD | 2 -- cmd/kube-apiserver/app/options/BUILD | 2 -- cmd/kube-apiserver/app/testing/BUILD | 2 -- cmd/kube-controller-manager/BUILD | 2 -- cmd/kube-controller-manager/app/BUILD | 2 -- cmd/kube-controller-manager/app/options/BUILD | 2 -- cmd/kube-proxy/BUILD | 2 -- cmd/kube-proxy/app/BUILD | 2 -- cmd/kubeadm/BUILD | 2 -- cmd/kubeadm/app/BUILD | 2 -- cmd/kubeadm/app/apis/kubeadm/BUILD | 2 -- cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD | 2 -- cmd/kubeadm/app/apis/kubeadm/install/BUILD | 2 -- cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD | 2 -- cmd/kubeadm/app/apis/kubeadm/validation/BUILD | 2 -- cmd/kubeadm/app/cmd/BUILD | 2 -- cmd/kubeadm/app/cmd/features/BUILD | 2 -- cmd/kubeadm/app/cmd/phases/BUILD | 2 -- cmd/kubeadm/app/constants/BUILD | 2 -- cmd/kubeadm/app/discovery/BUILD | 2 -- cmd/kubeadm/app/discovery/file/BUILD | 2 -- cmd/kubeadm/app/discovery/https/BUILD | 2 -- cmd/kubeadm/app/discovery/token/BUILD | 2 -- cmd/kubeadm/app/images/BUILD | 2 -- cmd/kubeadm/app/node/BUILD | 2 -- cmd/kubeadm/app/phases/addons/BUILD | 2 -- cmd/kubeadm/app/phases/apiconfig/BUILD | 2 -- cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD | 2 -- cmd/kubeadm/app/phases/bootstraptoken/node/BUILD | 2 -- cmd/kubeadm/app/phases/certs/BUILD | 2 -- cmd/kubeadm/app/phases/certs/pkiutil/BUILD | 2 -- cmd/kubeadm/app/phases/controlplane/BUILD | 2 -- cmd/kubeadm/app/phases/kubeconfig/BUILD | 2 -- cmd/kubeadm/app/phases/markmaster/BUILD | 2 -- cmd/kubeadm/app/phases/selfhosting/BUILD | 2 -- cmd/kubeadm/app/phases/token/BUILD | 2 -- cmd/kubeadm/app/phases/uploadconfig/BUILD | 2 -- cmd/kubeadm/app/preflight/BUILD | 2 -- cmd/kubeadm/app/util/BUILD | 2 -- cmd/kubeadm/app/util/apiclient/BUILD | 2 -- cmd/kubeadm/app/util/config/BUILD | 2 -- cmd/kubeadm/app/util/kubeconfig/BUILD | 2 -- cmd/kubeadm/app/util/pubkeypin/BUILD | 2 -- cmd/kubeadm/app/util/token/BUILD | 2 -- cmd/kubeadm/test/BUILD | 2 -- cmd/kubeadm/test/certs/BUILD | 2 -- cmd/kubeadm/test/cmd/BUILD | 2 -- cmd/kubeadm/test/kubeconfig/BUILD | 2 -- cmd/kubectl/BUILD | 2 -- cmd/kubectl/app/BUILD | 2 -- cmd/kubelet/BUILD | 2 -- cmd/kubelet/app/BUILD | 2 -- cmd/kubelet/app/options/BUILD | 2 -- cmd/kubemark/BUILD | 2 -- cmd/linkcheck/BUILD | 2 -- cmd/mungedocs/BUILD | 2 -- docs/BUILD | 2 -- examples/BUILD | 2 -- examples/explorer/BUILD | 2 -- examples/guestbook-go/BUILD | 2 -- examples/https-nginx/BUILD | 2 -- examples/sharing-clusters/BUILD | 2 -- federation/BUILD | 2 -- federation/apis/core/BUILD | 2 -- federation/apis/core/install/BUILD | 2 -- federation/apis/core/v1/BUILD | 2 -- federation/apis/federation/BUILD | 2 -- federation/apis/federation/install/BUILD | 2 -- federation/apis/federation/v1beta1/BUILD | 2 -- federation/apis/federation/validation/BUILD | 2 -- federation/client/cache/BUILD | 2 -- .../client/clientset_generated/federation_clientset/BUILD | 2 -- .../client/clientset_generated/federation_clientset/fake/BUILD | 2 -- .../clientset_generated/federation_clientset/scheme/BUILD | 2 -- .../federation_clientset/typed/autoscaling/v1/BUILD | 2 -- .../federation_clientset/typed/autoscaling/v1/fake/BUILD | 2 -- .../federation_clientset/typed/batch/v1/BUILD | 2 -- .../federation_clientset/typed/batch/v1/fake/BUILD | 2 -- .../federation_clientset/typed/core/v1/BUILD | 2 -- .../federation_clientset/typed/core/v1/fake/BUILD | 2 -- .../federation_clientset/typed/extensions/v1beta1/BUILD | 2 -- .../federation_clientset/typed/extensions/v1beta1/fake/BUILD | 2 -- .../federation_clientset/typed/federation/v1beta1/BUILD | 2 -- .../federation_clientset/typed/federation/v1beta1/fake/BUILD | 2 -- federation/cluster/BUILD | 2 -- federation/cmd/federation-apiserver/BUILD | 2 -- federation/cmd/federation-apiserver/app/BUILD | 2 -- federation/cmd/federation-apiserver/app/options/BUILD | 2 -- federation/cmd/federation-controller-manager/BUILD | 2 -- federation/cmd/federation-controller-manager/app/BUILD | 2 -- federation/cmd/federation-controller-manager/app/options/BUILD | 2 -- federation/cmd/genfeddocs/BUILD | 2 -- federation/cmd/kubefed/BUILD | 2 -- federation/cmd/kubefed/app/BUILD | 2 -- federation/develop/BUILD | 2 -- federation/pkg/dnsprovider/BUILD | 2 -- federation/pkg/dnsprovider/providers/aws/route53/BUILD | 2 -- federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD | 2 -- federation/pkg/dnsprovider/providers/coredns/BUILD | 2 -- federation/pkg/dnsprovider/providers/coredns/stubs/BUILD | 2 -- federation/pkg/dnsprovider/providers/google/clouddns/BUILD | 2 -- .../pkg/dnsprovider/providers/google/clouddns/internal/BUILD | 2 -- .../providers/google/clouddns/internal/interfaces/BUILD | 2 -- .../dnsprovider/providers/google/clouddns/internal/stubs/BUILD | 2 -- federation/pkg/dnsprovider/rrstype/BUILD | 2 -- federation/pkg/dnsprovider/tests/BUILD | 2 -- federation/pkg/federatedtypes/BUILD | 2 -- federation/pkg/federatedtypes/crudtester/BUILD | 2 -- federation/pkg/federation-controller/BUILD | 2 -- federation/pkg/federation-controller/cluster/BUILD | 2 -- federation/pkg/federation-controller/ingress/BUILD | 2 -- federation/pkg/federation-controller/job/BUILD | 2 -- federation/pkg/federation-controller/service/BUILD | 2 -- federation/pkg/federation-controller/service/dns/BUILD | 2 -- federation/pkg/federation-controller/service/ingress/BUILD | 2 -- federation/pkg/federation-controller/sync/BUILD | 2 -- federation/pkg/federation-controller/util/BUILD | 2 -- federation/pkg/federation-controller/util/clusterselector/BUILD | 2 -- federation/pkg/federation-controller/util/deletionhelper/BUILD | 2 -- federation/pkg/federation-controller/util/eventsink/BUILD | 2 -- federation/pkg/federation-controller/util/finalizers/BUILD | 2 -- federation/pkg/federation-controller/util/planner/BUILD | 2 -- federation/pkg/federation-controller/util/podanalyzer/BUILD | 2 -- .../pkg/federation-controller/util/replicapreferences/BUILD | 2 -- federation/pkg/federation-controller/util/test/BUILD | 2 -- federation/pkg/kubefed/BUILD | 2 -- federation/pkg/kubefed/init/BUILD | 2 -- federation/pkg/kubefed/testing/BUILD | 2 -- federation/pkg/kubefed/util/BUILD | 2 -- federation/plugin/pkg/admission/schedulingpolicy/BUILD | 2 -- federation/registry/cluster/BUILD | 2 -- federation/registry/cluster/etcd/BUILD | 2 -- hack/BUILD | 2 -- hack/boilerplate/test/BUILD | 2 -- hack/cmd/teststale/BUILD | 2 -- hack/e2e-internal/BUILD | 2 -- hack/lib/BUILD | 2 -- pkg/BUILD | 2 -- pkg/api/BUILD | 2 -- pkg/api/endpoints/BUILD | 2 -- pkg/api/errors/BUILD | 2 -- pkg/api/events/BUILD | 2 -- pkg/api/fuzzer/BUILD | 2 -- pkg/api/helper/BUILD | 2 -- pkg/api/helper/qos/BUILD | 2 -- pkg/api/install/BUILD | 2 -- pkg/api/meta/BUILD | 2 -- pkg/api/meta/metatypes/BUILD | 2 -- pkg/api/persistentvolume/BUILD | 2 -- pkg/api/pod/BUILD | 2 -- pkg/api/ref/BUILD | 2 -- pkg/api/resource/BUILD | 2 -- pkg/api/service/BUILD | 2 -- pkg/api/testapi/BUILD | 2 -- pkg/api/testing/BUILD | 2 -- pkg/api/testing/compat/BUILD | 2 -- pkg/api/unversioned/BUILD | 2 -- pkg/api/util/BUILD | 2 -- pkg/api/v1/BUILD | 2 -- pkg/api/v1/endpoints/BUILD | 2 -- pkg/api/v1/helper/BUILD | 2 -- pkg/api/v1/helper/qos/BUILD | 2 -- pkg/api/v1/node/BUILD | 2 -- pkg/api/v1/pod/BUILD | 2 -- pkg/api/v1/resource/BUILD | 2 -- pkg/api/v1/service/BUILD | 2 -- pkg/api/v1/validation/BUILD | 2 -- pkg/api/validation/BUILD | 2 -- pkg/apimachinery/tests/BUILD | 2 -- pkg/apis/abac/BUILD | 2 -- pkg/apis/abac/fuzzer/BUILD | 2 -- pkg/apis/abac/latest/BUILD | 2 -- pkg/apis/abac/v0/BUILD | 2 -- pkg/apis/abac/v1beta1/BUILD | 2 -- pkg/apis/admission/BUILD | 2 -- pkg/apis/admission/fuzzer/BUILD | 2 -- pkg/apis/admission/install/BUILD | 2 -- pkg/apis/admission/v1alpha1/BUILD | 2 -- pkg/apis/admissionregistration/BUILD | 2 -- pkg/apis/admissionregistration/fuzzer/BUILD | 2 -- pkg/apis/admissionregistration/install/BUILD | 2 -- pkg/apis/admissionregistration/v1alpha1/BUILD | 2 -- pkg/apis/admissionregistration/validation/BUILD | 2 -- pkg/apis/apps/BUILD | 2 -- pkg/apis/apps/fuzzer/BUILD | 2 -- pkg/apis/apps/install/BUILD | 2 -- pkg/apis/apps/v1beta1/BUILD | 2 -- pkg/apis/apps/v1beta2/BUILD | 2 -- pkg/apis/apps/validation/BUILD | 2 -- pkg/apis/authentication/BUILD | 2 -- pkg/apis/authentication/fuzzer/BUILD | 2 -- pkg/apis/authentication/install/BUILD | 2 -- pkg/apis/authentication/v1/BUILD | 2 -- pkg/apis/authentication/v1beta1/BUILD | 2 -- pkg/apis/authorization/BUILD | 2 -- pkg/apis/authorization/fuzzer/BUILD | 2 -- pkg/apis/authorization/install/BUILD | 2 -- pkg/apis/authorization/v1/BUILD | 2 -- pkg/apis/authorization/v1beta1/BUILD | 2 -- pkg/apis/authorization/validation/BUILD | 2 -- pkg/apis/autoscaling/BUILD | 2 -- pkg/apis/autoscaling/fuzzer/BUILD | 2 -- pkg/apis/autoscaling/install/BUILD | 2 -- pkg/apis/autoscaling/v1/BUILD | 2 -- pkg/apis/autoscaling/v2alpha1/BUILD | 2 -- pkg/apis/autoscaling/validation/BUILD | 2 -- pkg/apis/batch/BUILD | 2 -- pkg/apis/batch/fuzzer/BUILD | 2 -- pkg/apis/batch/install/BUILD | 2 -- pkg/apis/batch/v1/BUILD | 2 -- pkg/apis/batch/v2alpha1/BUILD | 2 -- pkg/apis/batch/validation/BUILD | 2 -- pkg/apis/certificates/BUILD | 2 -- pkg/apis/certificates/fuzzer/BUILD | 2 -- pkg/apis/certificates/install/BUILD | 2 -- pkg/apis/certificates/v1beta1/BUILD | 2 -- pkg/apis/certificates/validation/BUILD | 2 -- pkg/apis/componentconfig/BUILD | 2 -- pkg/apis/componentconfig/fuzzer/BUILD | 2 -- pkg/apis/componentconfig/install/BUILD | 2 -- pkg/apis/componentconfig/v1alpha1/BUILD | 2 -- pkg/apis/componentconfig/validation/BUILD | 2 -- pkg/apis/extensions/BUILD | 2 -- pkg/apis/extensions/fuzzer/BUILD | 2 -- pkg/apis/extensions/install/BUILD | 2 -- pkg/apis/extensions/v1beta1/BUILD | 2 -- pkg/apis/extensions/validation/BUILD | 2 -- pkg/apis/imagepolicy/BUILD | 2 -- pkg/apis/imagepolicy/fuzzer/BUILD | 2 -- pkg/apis/imagepolicy/install/BUILD | 2 -- pkg/apis/imagepolicy/v1alpha1/BUILD | 2 -- pkg/apis/meta/v1/BUILD | 2 -- pkg/apis/networking/BUILD | 2 -- pkg/apis/networking/fuzzer/BUILD | 2 -- pkg/apis/networking/install/BUILD | 2 -- pkg/apis/networking/v1/BUILD | 2 -- pkg/apis/networking/validation/BUILD | 2 -- pkg/apis/policy/BUILD | 2 -- pkg/apis/policy/fuzzer/BUILD | 2 -- pkg/apis/policy/install/BUILD | 2 -- pkg/apis/policy/v1alpha1/BUILD | 2 -- pkg/apis/policy/v1beta1/BUILD | 2 -- pkg/apis/policy/validation/BUILD | 2 -- pkg/apis/rbac/BUILD | 2 -- pkg/apis/rbac/fuzzer/BUILD | 2 -- pkg/apis/rbac/install/BUILD | 2 -- pkg/apis/rbac/v1/BUILD | 2 -- pkg/apis/rbac/v1alpha1/BUILD | 2 -- pkg/apis/rbac/v1beta1/BUILD | 2 -- pkg/apis/rbac/validation/BUILD | 2 -- pkg/apis/scheduling/BUILD | 2 -- pkg/apis/scheduling/fuzzer/BUILD | 2 -- pkg/apis/scheduling/install/BUILD | 2 -- pkg/apis/scheduling/v1alpha1/BUILD | 2 -- pkg/apis/scheduling/validation/BUILD | 2 -- pkg/apis/settings/BUILD | 2 -- pkg/apis/settings/fuzzer/BUILD | 2 -- pkg/apis/settings/install/BUILD | 2 -- pkg/apis/settings/v1alpha1/BUILD | 2 -- pkg/apis/settings/validation/BUILD | 2 -- pkg/apis/storage/BUILD | 2 -- pkg/apis/storage/fuzzer/BUILD | 2 -- pkg/apis/storage/install/BUILD | 2 -- pkg/apis/storage/util/BUILD | 2 -- pkg/apis/storage/v1/BUILD | 2 -- pkg/apis/storage/v1/util/BUILD | 2 -- pkg/apis/storage/v1beta1/BUILD | 2 -- pkg/apis/storage/v1beta1/util/BUILD | 2 -- pkg/apis/storage/validation/BUILD | 2 -- pkg/auth/authorizer/abac/BUILD | 2 -- pkg/auth/nodeidentifier/BUILD | 2 -- pkg/auth/user/BUILD | 2 -- pkg/bootstrap/api/BUILD | 2 -- pkg/capabilities/BUILD | 2 -- pkg/client/chaosclient/BUILD | 2 -- pkg/client/clientset_generated/internalclientset/BUILD | 2 -- pkg/client/clientset_generated/internalclientset/fake/BUILD | 2 -- pkg/client/clientset_generated/internalclientset/scheme/BUILD | 2 -- .../typed/admissionregistration/internalversion/BUILD | 2 -- .../typed/admissionregistration/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/apps/internalversion/BUILD | 2 -- .../internalclientset/typed/apps/internalversion/fake/BUILD | 2 -- .../typed/authentication/internalversion/BUILD | 2 -- .../typed/authentication/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/authorization/internalversion/BUILD | 2 -- .../typed/authorization/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/autoscaling/internalversion/BUILD | 2 -- .../typed/autoscaling/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/batch/internalversion/BUILD | 2 -- .../internalclientset/typed/batch/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/certificates/internalversion/BUILD | 2 -- .../typed/certificates/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/core/internalversion/BUILD | 2 -- .../internalclientset/typed/core/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/extensions/internalversion/BUILD | 2 -- .../typed/extensions/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/networking/internalversion/BUILD | 2 -- .../typed/networking/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/policy/internalversion/BUILD | 2 -- .../internalclientset/typed/policy/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/rbac/internalversion/BUILD | 2 -- .../internalclientset/typed/rbac/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/scheduling/internalversion/BUILD | 2 -- .../typed/scheduling/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/settings/internalversion/BUILD | 2 -- .../internalclientset/typed/settings/internalversion/fake/BUILD | 2 -- .../internalclientset/typed/storage/internalversion/BUILD | 2 -- .../internalclientset/typed/storage/internalversion/fake/BUILD | 2 -- pkg/client/conditions/BUILD | 2 -- pkg/client/informers/informers_generated/internalversion/BUILD | 2 -- .../internalversion/admissionregistration/BUILD | 2 -- .../internalversion/admissionregistration/internalversion/BUILD | 2 -- .../informers/informers_generated/internalversion/apps/BUILD | 2 -- .../internalversion/apps/internalversion/BUILD | 2 -- .../informers_generated/internalversion/autoscaling/BUILD | 2 -- .../internalversion/autoscaling/internalversion/BUILD | 2 -- .../informers/informers_generated/internalversion/batch/BUILD | 2 -- .../internalversion/batch/internalversion/BUILD | 2 -- .../informers_generated/internalversion/certificates/BUILD | 2 -- .../internalversion/certificates/internalversion/BUILD | 2 -- .../informers/informers_generated/internalversion/core/BUILD | 2 -- .../internalversion/core/internalversion/BUILD | 2 -- .../informers_generated/internalversion/extensions/BUILD | 2 -- .../internalversion/extensions/internalversion/BUILD | 2 -- .../internalversion/internalinterfaces/BUILD | 2 -- .../informers_generated/internalversion/networking/BUILD | 2 -- .../internalversion/networking/internalversion/BUILD | 2 -- .../informers/informers_generated/internalversion/policy/BUILD | 2 -- .../internalversion/policy/internalversion/BUILD | 2 -- .../informers/informers_generated/internalversion/rbac/BUILD | 2 -- .../internalversion/rbac/internalversion/BUILD | 2 -- .../informers_generated/internalversion/scheduling/BUILD | 2 -- .../internalversion/scheduling/internalversion/BUILD | 2 -- .../informers_generated/internalversion/settings/BUILD | 2 -- .../internalversion/settings/internalversion/BUILD | 2 -- .../informers/informers_generated/internalversion/storage/BUILD | 2 -- .../internalversion/storage/internalversion/BUILD | 2 -- pkg/client/leaderelectionconfig/BUILD | 2 -- pkg/client/listers/admissionregistration/internalversion/BUILD | 2 -- pkg/client/listers/apps/internalversion/BUILD | 2 -- pkg/client/listers/authentication/internalversion/BUILD | 2 -- pkg/client/listers/authorization/internalversion/BUILD | 2 -- pkg/client/listers/autoscaling/internalversion/BUILD | 2 -- pkg/client/listers/batch/internalversion/BUILD | 2 -- pkg/client/listers/certificates/internalversion/BUILD | 2 -- pkg/client/listers/core/internalversion/BUILD | 2 -- pkg/client/listers/extensions/internalversion/BUILD | 2 -- pkg/client/listers/imagepolicy/internalversion/BUILD | 2 -- pkg/client/listers/networking/internalversion/BUILD | 2 -- pkg/client/listers/policy/internalversion/BUILD | 2 -- pkg/client/listers/rbac/internalversion/BUILD | 2 -- pkg/client/listers/scheduling/internalversion/BUILD | 2 -- pkg/client/listers/settings/internalversion/BUILD | 2 -- pkg/client/listers/storage/internalversion/BUILD | 2 -- pkg/client/metrics/BUILD | 2 -- pkg/client/metrics/prometheus/BUILD | 2 -- pkg/client/retry/BUILD | 2 -- pkg/client/tests/BUILD | 2 -- pkg/client/unversioned/BUILD | 2 -- pkg/client/unversioned/testclient/simple/BUILD | 2 -- pkg/cloudprovider/BUILD | 2 -- pkg/cloudprovider/providers/BUILD | 2 -- pkg/cloudprovider/providers/aws/BUILD | 2 -- pkg/cloudprovider/providers/azure/BUILD | 2 -- pkg/cloudprovider/providers/cloudstack/BUILD | 2 -- pkg/cloudprovider/providers/fake/BUILD | 2 -- pkg/cloudprovider/providers/gce/BUILD | 2 -- pkg/cloudprovider/providers/openstack/BUILD | 2 -- pkg/cloudprovider/providers/ovirt/BUILD | 2 -- pkg/cloudprovider/providers/photon/BUILD | 2 -- pkg/cloudprovider/providers/rackspace/BUILD | 2 -- pkg/cloudprovider/providers/vsphere/BUILD | 2 -- pkg/cloudprovider/providers/vsphere/vclib/BUILD | 2 -- pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD | 2 -- pkg/controller/BUILD | 2 -- pkg/controller/bootstrap/BUILD | 2 -- pkg/controller/certificates/BUILD | 2 -- pkg/controller/certificates/approver/BUILD | 2 -- pkg/controller/certificates/signer/BUILD | 2 -- pkg/controller/cloud/BUILD | 2 -- pkg/controller/cronjob/BUILD | 2 -- pkg/controller/daemon/BUILD | 2 -- pkg/controller/daemon/util/BUILD | 2 -- pkg/controller/deployment/BUILD | 2 -- pkg/controller/deployment/util/BUILD | 2 -- pkg/controller/disruption/BUILD | 2 -- pkg/controller/endpoint/BUILD | 2 -- pkg/controller/garbagecollector/BUILD | 2 -- pkg/controller/garbagecollector/metaonly/BUILD | 2 -- pkg/controller/history/BUILD | 2 -- pkg/controller/job/BUILD | 2 -- pkg/controller/namespace/BUILD | 2 -- pkg/controller/namespace/deletion/BUILD | 2 -- pkg/controller/node/BUILD | 2 -- pkg/controller/node/ipam/BUILD | 2 -- pkg/controller/node/ipam/cidrset/BUILD | 2 -- pkg/controller/node/scheduler/BUILD | 2 -- pkg/controller/node/util/BUILD | 2 -- pkg/controller/podautoscaler/BUILD | 2 -- pkg/controller/podautoscaler/metrics/BUILD | 2 -- pkg/controller/podgc/BUILD | 2 -- pkg/controller/replicaset/BUILD | 2 -- pkg/controller/replicaset/options/BUILD | 2 -- pkg/controller/replication/BUILD | 2 -- pkg/controller/resourcequota/BUILD | 2 -- pkg/controller/route/BUILD | 2 -- pkg/controller/service/BUILD | 2 -- pkg/controller/serviceaccount/BUILD | 2 -- pkg/controller/statefulset/BUILD | 2 -- pkg/controller/testutil/BUILD | 2 -- pkg/controller/ttl/BUILD | 2 -- pkg/controller/volume/attachdetach/BUILD | 2 -- pkg/controller/volume/attachdetach/cache/BUILD | 2 -- pkg/controller/volume/attachdetach/populator/BUILD | 2 -- pkg/controller/volume/attachdetach/reconciler/BUILD | 2 -- pkg/controller/volume/attachdetach/statusupdater/BUILD | 2 -- pkg/controller/volume/attachdetach/testing/BUILD | 2 -- pkg/controller/volume/attachdetach/util/BUILD | 2 -- pkg/controller/volume/events/BUILD | 2 -- pkg/controller/volume/persistentvolume/BUILD | 2 -- pkg/controller/volume/persistentvolume/options/BUILD | 2 -- pkg/conversion/BUILD | 2 -- pkg/conversion/queryparams/BUILD | 2 -- pkg/credentialprovider/BUILD | 2 -- pkg/credentialprovider/aws/BUILD | 2 -- pkg/credentialprovider/azure/BUILD | 2 -- pkg/credentialprovider/gcp/BUILD | 2 -- pkg/credentialprovider/rancher/BUILD | 2 -- pkg/features/BUILD | 2 -- pkg/fieldpath/BUILD | 2 -- pkg/fields/BUILD | 2 -- pkg/generated/BUILD | 2 -- pkg/generated/openapi/BUILD | 2 -- pkg/hyperkube/BUILD | 2 -- pkg/kubeapiserver/BUILD | 2 -- pkg/kubeapiserver/admission/BUILD | 2 -- pkg/kubeapiserver/admission/configuration/BUILD | 2 -- pkg/kubeapiserver/authenticator/BUILD | 2 -- pkg/kubeapiserver/authorizer/BUILD | 2 -- pkg/kubeapiserver/authorizer/modes/BUILD | 2 -- pkg/kubeapiserver/options/BUILD | 2 -- pkg/kubeapiserver/server/BUILD | 2 -- pkg/kubectl/BUILD | 2 -- pkg/kubectl/cmd/BUILD | 2 -- pkg/kubectl/cmd/auth/BUILD | 2 -- pkg/kubectl/cmd/config/BUILD | 2 -- pkg/kubectl/cmd/rollout/BUILD | 2 -- pkg/kubectl/cmd/set/BUILD | 2 -- pkg/kubectl/cmd/templates/BUILD | 2 -- pkg/kubectl/cmd/testdata/edit/BUILD | 2 -- pkg/kubectl/cmd/testing/BUILD | 2 -- pkg/kubectl/cmd/util/BUILD | 2 -- pkg/kubectl/cmd/util/editor/BUILD | 2 -- pkg/kubectl/cmd/util/jsonmerge/BUILD | 2 -- pkg/kubectl/cmd/util/openapi/BUILD | 2 -- pkg/kubectl/cmd/util/sanity/BUILD | 2 -- pkg/kubectl/metricsutil/BUILD | 2 -- pkg/kubectl/plugins/BUILD | 2 -- pkg/kubectl/proxy/BUILD | 2 -- pkg/kubectl/resource/BUILD | 2 -- pkg/kubectl/testing/BUILD | 2 -- pkg/kubectl/util/BUILD | 2 -- pkg/kubectl/util/crlf/BUILD | 2 -- pkg/kubectl/util/logs/BUILD | 2 -- pkg/kubectl/util/slice/BUILD | 2 -- pkg/kubectl/util/term/BUILD | 2 -- pkg/kubelet/BUILD | 2 -- pkg/kubelet/apis/BUILD | 2 -- pkg/kubelet/apis/cri/BUILD | 2 -- pkg/kubelet/apis/cri/testing/BUILD | 2 -- pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD | 2 -- pkg/kubelet/apis/stats/v1alpha1/BUILD | 2 -- pkg/kubelet/cadvisor/BUILD | 2 -- pkg/kubelet/cadvisor/testing/BUILD | 2 -- pkg/kubelet/certificate/BUILD | 2 -- pkg/kubelet/certificate/bootstrap/BUILD | 2 -- pkg/kubelet/client/BUILD | 2 -- pkg/kubelet/cm/BUILD | 2 -- pkg/kubelet/cm/util/BUILD | 2 -- pkg/kubelet/config/BUILD | 2 -- pkg/kubelet/configmap/BUILD | 2 -- pkg/kubelet/container/BUILD | 2 -- pkg/kubelet/container/testing/BUILD | 2 -- pkg/kubelet/custommetrics/BUILD | 2 -- pkg/kubelet/dockershim/BUILD | 2 -- pkg/kubelet/dockershim/cm/BUILD | 2 -- pkg/kubelet/dockershim/errors/BUILD | 2 -- pkg/kubelet/dockershim/libdocker/BUILD | 2 -- pkg/kubelet/dockershim/remote/BUILD | 2 -- pkg/kubelet/dockershim/testing/BUILD | 2 -- pkg/kubelet/envvars/BUILD | 2 -- pkg/kubelet/events/BUILD | 2 -- pkg/kubelet/eviction/BUILD | 2 -- pkg/kubelet/eviction/api/BUILD | 2 -- pkg/kubelet/gpu/BUILD | 2 -- pkg/kubelet/gpu/nvidia/BUILD | 2 -- pkg/kubelet/images/BUILD | 2 -- pkg/kubelet/kubeletconfig/BUILD | 2 -- pkg/kubelet/kubeletconfig/badconfig/BUILD | 2 -- pkg/kubelet/kubeletconfig/checkpoint/BUILD | 2 -- pkg/kubelet/kubeletconfig/checkpoint/store/BUILD | 2 -- pkg/kubelet/kubeletconfig/configfiles/BUILD | 2 -- pkg/kubelet/kubeletconfig/startups/BUILD | 2 -- pkg/kubelet/kubeletconfig/status/BUILD | 2 -- pkg/kubelet/kubeletconfig/util/codec/BUILD | 2 -- pkg/kubelet/kubeletconfig/util/equal/BUILD | 2 -- pkg/kubelet/kubeletconfig/util/files/BUILD | 2 -- pkg/kubelet/kubeletconfig/util/filesystem/BUILD | 2 -- pkg/kubelet/kubeletconfig/util/log/BUILD | 2 -- pkg/kubelet/kubeletconfig/util/panic/BUILD | 2 -- pkg/kubelet/kubeletconfig/util/test/BUILD | 2 -- pkg/kubelet/kuberuntime/BUILD | 2 -- pkg/kubelet/leaky/BUILD | 2 -- pkg/kubelet/lifecycle/BUILD | 2 -- pkg/kubelet/metrics/BUILD | 2 -- pkg/kubelet/network/BUILD | 2 -- pkg/kubelet/network/cni/BUILD | 2 -- pkg/kubelet/network/cni/testing/BUILD | 2 -- pkg/kubelet/network/hairpin/BUILD | 2 -- pkg/kubelet/network/hostport/BUILD | 2 -- pkg/kubelet/network/hostport/testing/BUILD | 2 -- pkg/kubelet/network/kubenet/BUILD | 2 -- pkg/kubelet/network/testing/BUILD | 2 -- pkg/kubelet/pleg/BUILD | 2 -- pkg/kubelet/pod/BUILD | 2 -- pkg/kubelet/pod/testing/BUILD | 2 -- pkg/kubelet/preemption/BUILD | 2 -- pkg/kubelet/prober/BUILD | 2 -- pkg/kubelet/prober/results/BUILD | 2 -- pkg/kubelet/prober/testing/BUILD | 2 -- pkg/kubelet/qos/BUILD | 2 -- pkg/kubelet/remote/BUILD | 2 -- pkg/kubelet/rkt/BUILD | 2 -- pkg/kubelet/rktshim/BUILD | 2 -- pkg/kubelet/secret/BUILD | 2 -- pkg/kubelet/server/BUILD | 2 -- pkg/kubelet/server/portforward/BUILD | 2 -- pkg/kubelet/server/remotecommand/BUILD | 2 -- pkg/kubelet/server/stats/BUILD | 2 -- pkg/kubelet/server/streaming/BUILD | 2 -- pkg/kubelet/status/BUILD | 2 -- pkg/kubelet/status/testing/BUILD | 2 -- pkg/kubelet/sysctl/BUILD | 2 -- pkg/kubelet/types/BUILD | 2 -- pkg/kubelet/util/BUILD | 2 -- pkg/kubelet/util/cache/BUILD | 2 -- pkg/kubelet/util/csr/BUILD | 2 -- pkg/kubelet/util/format/BUILD | 2 -- pkg/kubelet/util/ioutils/BUILD | 2 -- pkg/kubelet/util/queue/BUILD | 2 -- pkg/kubelet/util/sliceutils/BUILD | 2 -- pkg/kubelet/volumemanager/BUILD | 2 -- pkg/kubelet/volumemanager/cache/BUILD | 2 -- pkg/kubelet/volumemanager/populator/BUILD | 2 -- pkg/kubelet/volumemanager/reconciler/BUILD | 2 -- pkg/kubemark/BUILD | 2 -- pkg/labels/BUILD | 2 -- pkg/master/BUILD | 2 -- pkg/master/controller/crdregistration/BUILD | 2 -- pkg/master/ports/BUILD | 2 -- pkg/master/tunneler/BUILD | 2 -- pkg/printers/BUILD | 2 -- pkg/printers/internalversion/BUILD | 2 -- pkg/printers/storage/BUILD | 2 -- pkg/probe/BUILD | 2 -- pkg/probe/exec/BUILD | 2 -- pkg/probe/http/BUILD | 2 -- pkg/probe/tcp/BUILD | 2 -- pkg/proxy/BUILD | 2 -- pkg/proxy/config/BUILD | 2 -- pkg/proxy/healthcheck/BUILD | 2 -- pkg/proxy/iptables/BUILD | 2 -- pkg/proxy/userspace/BUILD | 2 -- pkg/proxy/util/BUILD | 2 -- pkg/proxy/winuserspace/BUILD | 2 -- pkg/quota/BUILD | 2 -- pkg/quota/evaluator/core/BUILD | 2 -- pkg/quota/generic/BUILD | 2 -- pkg/quota/install/BUILD | 2 -- pkg/registry/BUILD | 2 -- .../externaladmissionhookconfiguration/BUILD | 2 -- .../externaladmissionhookconfiguration/storage/BUILD | 2 -- .../admissionregistration/initializerconfiguration/BUILD | 2 -- .../initializerconfiguration/storage/BUILD | 2 -- pkg/registry/admissionregistration/rest/BUILD | 2 -- pkg/registry/apps/controllerrevision/BUILD | 2 -- pkg/registry/apps/controllerrevision/storage/BUILD | 2 -- pkg/registry/apps/rest/BUILD | 2 -- pkg/registry/apps/statefulset/BUILD | 2 -- pkg/registry/apps/statefulset/storage/BUILD | 2 -- pkg/registry/authentication/rest/BUILD | 2 -- pkg/registry/authentication/tokenreview/BUILD | 2 -- pkg/registry/authorization/localsubjectaccessreview/BUILD | 2 -- pkg/registry/authorization/rest/BUILD | 2 -- pkg/registry/authorization/selfsubjectaccessreview/BUILD | 2 -- pkg/registry/authorization/subjectaccessreview/BUILD | 2 -- pkg/registry/authorization/util/BUILD | 2 -- pkg/registry/autoscaling/horizontalpodautoscaler/BUILD | 2 -- pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD | 2 -- pkg/registry/autoscaling/rest/BUILD | 2 -- pkg/registry/batch/cronjob/BUILD | 2 -- pkg/registry/batch/cronjob/storage/BUILD | 2 -- pkg/registry/batch/job/BUILD | 2 -- pkg/registry/batch/job/storage/BUILD | 2 -- pkg/registry/batch/rest/BUILD | 2 -- pkg/registry/cachesize/BUILD | 2 -- pkg/registry/certificates/certificates/BUILD | 2 -- pkg/registry/certificates/certificates/storage/BUILD | 2 -- pkg/registry/certificates/rest/BUILD | 2 -- pkg/registry/core/componentstatus/BUILD | 2 -- pkg/registry/core/configmap/BUILD | 2 -- pkg/registry/core/configmap/storage/BUILD | 2 -- pkg/registry/core/endpoint/BUILD | 2 -- pkg/registry/core/endpoint/storage/BUILD | 2 -- pkg/registry/core/event/BUILD | 2 -- pkg/registry/core/event/storage/BUILD | 2 -- pkg/registry/core/limitrange/BUILD | 2 -- pkg/registry/core/limitrange/storage/BUILD | 2 -- pkg/registry/core/namespace/BUILD | 2 -- pkg/registry/core/namespace/storage/BUILD | 2 -- pkg/registry/core/node/BUILD | 2 -- pkg/registry/core/node/rest/BUILD | 2 -- pkg/registry/core/node/storage/BUILD | 2 -- pkg/registry/core/persistentvolume/BUILD | 2 -- pkg/registry/core/persistentvolume/storage/BUILD | 2 -- pkg/registry/core/persistentvolumeclaim/BUILD | 2 -- pkg/registry/core/persistentvolumeclaim/storage/BUILD | 2 -- pkg/registry/core/pod/BUILD | 2 -- pkg/registry/core/pod/rest/BUILD | 2 -- pkg/registry/core/pod/storage/BUILD | 2 -- pkg/registry/core/podtemplate/BUILD | 2 -- pkg/registry/core/podtemplate/storage/BUILD | 2 -- pkg/registry/core/rangeallocation/BUILD | 2 -- pkg/registry/core/replicationcontroller/BUILD | 2 -- pkg/registry/core/replicationcontroller/storage/BUILD | 2 -- pkg/registry/core/resourcequota/BUILD | 2 -- pkg/registry/core/resourcequota/storage/BUILD | 2 -- pkg/registry/core/rest/BUILD | 2 -- pkg/registry/core/secret/BUILD | 2 -- pkg/registry/core/secret/storage/BUILD | 2 -- pkg/registry/core/service/BUILD | 2 -- pkg/registry/core/service/allocator/BUILD | 2 -- pkg/registry/core/service/allocator/storage/BUILD | 2 -- pkg/registry/core/service/ipallocator/BUILD | 2 -- pkg/registry/core/service/ipallocator/controller/BUILD | 2 -- pkg/registry/core/service/ipallocator/storage/BUILD | 2 -- pkg/registry/core/service/portallocator/BUILD | 2 -- pkg/registry/core/service/portallocator/controller/BUILD | 2 -- pkg/registry/core/service/storage/BUILD | 2 -- pkg/registry/core/serviceaccount/BUILD | 2 -- pkg/registry/core/serviceaccount/storage/BUILD | 2 -- pkg/registry/extensions/controller/storage/BUILD | 2 -- pkg/registry/extensions/daemonset/BUILD | 2 -- pkg/registry/extensions/daemonset/storage/BUILD | 2 -- pkg/registry/extensions/deployment/BUILD | 2 -- pkg/registry/extensions/deployment/storage/BUILD | 2 -- pkg/registry/extensions/ingress/BUILD | 2 -- pkg/registry/extensions/ingress/storage/BUILD | 2 -- pkg/registry/extensions/networkpolicy/BUILD | 2 -- pkg/registry/extensions/networkpolicy/storage/BUILD | 2 -- pkg/registry/extensions/podsecuritypolicy/BUILD | 2 -- pkg/registry/extensions/podsecuritypolicy/storage/BUILD | 2 -- pkg/registry/extensions/replicaset/BUILD | 2 -- pkg/registry/extensions/replicaset/storage/BUILD | 2 -- pkg/registry/extensions/rest/BUILD | 2 -- pkg/registry/networking/networkpolicy/BUILD | 2 -- pkg/registry/networking/networkpolicy/storage/BUILD | 2 -- pkg/registry/networking/rest/BUILD | 2 -- pkg/registry/policy/poddisruptionbudget/BUILD | 2 -- pkg/registry/policy/poddisruptionbudget/storage/BUILD | 2 -- pkg/registry/policy/rest/BUILD | 2 -- pkg/registry/rbac/BUILD | 2 -- pkg/registry/rbac/clusterrole/BUILD | 2 -- pkg/registry/rbac/clusterrole/policybased/BUILD | 2 -- pkg/registry/rbac/clusterrole/storage/BUILD | 2 -- pkg/registry/rbac/clusterrolebinding/BUILD | 2 -- pkg/registry/rbac/clusterrolebinding/policybased/BUILD | 2 -- pkg/registry/rbac/clusterrolebinding/storage/BUILD | 2 -- pkg/registry/rbac/reconciliation/BUILD | 2 -- pkg/registry/rbac/rest/BUILD | 2 -- pkg/registry/rbac/role/BUILD | 2 -- pkg/registry/rbac/role/policybased/BUILD | 2 -- pkg/registry/rbac/role/storage/BUILD | 2 -- pkg/registry/rbac/rolebinding/BUILD | 2 -- pkg/registry/rbac/rolebinding/policybased/BUILD | 2 -- pkg/registry/rbac/rolebinding/storage/BUILD | 2 -- pkg/registry/rbac/validation/BUILD | 2 -- pkg/registry/registrytest/BUILD | 2 -- pkg/registry/scheduling/priorityclass/BUILD | 2 -- pkg/registry/scheduling/priorityclass/storage/BUILD | 2 -- pkg/registry/scheduling/rest/BUILD | 2 -- pkg/registry/settings/podpreset/BUILD | 2 -- pkg/registry/settings/podpreset/storage/BUILD | 2 -- pkg/registry/settings/rest/BUILD | 2 -- pkg/registry/storage/rest/BUILD | 2 -- pkg/registry/storage/storageclass/BUILD | 2 -- pkg/registry/storage/storageclass/storage/BUILD | 2 -- pkg/routes/BUILD | 2 -- pkg/runtime/BUILD | 2 -- pkg/runtime/serializer/BUILD | 2 -- pkg/runtime/serializer/json/BUILD | 2 -- pkg/runtime/serializer/protobuf/BUILD | 2 -- pkg/runtime/serializer/recognizer/BUILD | 2 -- pkg/runtime/serializer/streaming/BUILD | 2 -- pkg/runtime/serializer/versioning/BUILD | 2 -- pkg/security/BUILD | 2 -- pkg/security/apparmor/BUILD | 2 -- pkg/security/podsecuritypolicy/BUILD | 2 -- pkg/security/podsecuritypolicy/apparmor/BUILD | 2 -- pkg/security/podsecuritypolicy/capabilities/BUILD | 2 -- pkg/security/podsecuritypolicy/group/BUILD | 2 -- pkg/security/podsecuritypolicy/seccomp/BUILD | 2 -- pkg/security/podsecuritypolicy/selinux/BUILD | 2 -- pkg/security/podsecuritypolicy/sysctl/BUILD | 2 -- pkg/security/podsecuritypolicy/user/BUILD | 2 -- pkg/security/podsecuritypolicy/util/BUILD | 2 -- pkg/securitycontext/BUILD | 2 -- pkg/serviceaccount/BUILD | 2 -- pkg/ssh/BUILD | 2 -- pkg/types/BUILD | 2 -- pkg/util/BUILD | 2 -- pkg/util/async/BUILD | 2 -- pkg/util/bandwidth/BUILD | 2 -- pkg/util/config/BUILD | 2 -- pkg/util/configz/BUILD | 2 -- pkg/util/dbus/BUILD | 2 -- pkg/util/ebtables/BUILD | 2 -- pkg/util/env/BUILD | 2 -- pkg/util/file/BUILD | 2 -- pkg/util/flock/BUILD | 2 -- pkg/util/goroutinemap/BUILD | 2 -- pkg/util/goroutinemap/exponentialbackoff/BUILD | 2 -- pkg/util/hash/BUILD | 2 -- pkg/util/i18n/BUILD | 2 -- pkg/util/initsystem/BUILD | 2 -- pkg/util/interrupt/BUILD | 2 -- pkg/util/io/BUILD | 2 -- pkg/util/ipconfig/BUILD | 2 -- pkg/util/iptables/BUILD | 2 -- pkg/util/iptables/testing/BUILD | 2 -- pkg/util/keymutex/BUILD | 2 -- pkg/util/labels/BUILD | 2 -- pkg/util/limitwriter/BUILD | 2 -- pkg/util/maps/BUILD | 2 -- pkg/util/metrics/BUILD | 2 -- pkg/util/mount/BUILD | 2 -- pkg/util/net/BUILD | 2 -- pkg/util/net/sets/BUILD | 2 -- pkg/util/netsh/BUILD | 2 -- pkg/util/netsh/testing/BUILD | 2 -- pkg/util/node/BUILD | 2 -- pkg/util/oom/BUILD | 2 -- pkg/util/parsers/BUILD | 2 -- pkg/util/pointer/BUILD | 2 -- pkg/util/procfs/BUILD | 2 -- pkg/util/reflector/prometheus/BUILD | 2 -- pkg/util/removeall/BUILD | 2 -- pkg/util/resourcecontainer/BUILD | 2 -- pkg/util/rlimit/BUILD | 2 -- pkg/util/selinux/BUILD | 2 -- pkg/util/slice/BUILD | 2 -- pkg/util/strings/BUILD | 2 -- pkg/util/sysctl/BUILD | 2 -- pkg/util/sysctl/testing/BUILD | 2 -- pkg/util/system/BUILD | 2 -- pkg/util/tail/BUILD | 2 -- pkg/util/taints/BUILD | 2 -- pkg/util/template/BUILD | 2 -- pkg/util/term/BUILD | 2 -- pkg/util/threading/BUILD | 2 -- pkg/util/tolerations/BUILD | 2 -- pkg/util/version/BUILD | 2 -- pkg/util/workqueue/prometheus/BUILD | 2 -- pkg/version/BUILD | 2 -- pkg/version/prometheus/BUILD | 2 -- pkg/version/verflag/BUILD | 2 -- pkg/volume/BUILD | 2 -- pkg/volume/aws_ebs/BUILD | 2 -- pkg/volume/azure_dd/BUILD | 2 -- pkg/volume/azure_file/BUILD | 2 -- pkg/volume/cephfs/BUILD | 2 -- pkg/volume/cinder/BUILD | 2 -- pkg/volume/configmap/BUILD | 2 -- pkg/volume/downwardapi/BUILD | 2 -- pkg/volume/empty_dir/BUILD | 2 -- pkg/volume/fc/BUILD | 2 -- pkg/volume/flexvolume/BUILD | 2 -- pkg/volume/flocker/BUILD | 2 -- pkg/volume/gce_pd/BUILD | 2 -- pkg/volume/git_repo/BUILD | 2 -- pkg/volume/glusterfs/BUILD | 2 -- pkg/volume/host_path/BUILD | 2 -- pkg/volume/iscsi/BUILD | 2 -- pkg/volume/local/BUILD | 2 -- pkg/volume/nfs/BUILD | 2 -- pkg/volume/photon_pd/BUILD | 2 -- pkg/volume/portworx/BUILD | 2 -- pkg/volume/projected/BUILD | 2 -- pkg/volume/quobyte/BUILD | 2 -- pkg/volume/rbd/BUILD | 2 -- pkg/volume/scaleio/BUILD | 2 -- pkg/volume/secret/BUILD | 2 -- pkg/volume/storageos/BUILD | 2 -- pkg/volume/testing/BUILD | 2 -- pkg/volume/util/BUILD | 2 -- pkg/volume/util/nestedpendingoperations/BUILD | 2 -- pkg/volume/util/operationexecutor/BUILD | 2 -- pkg/volume/util/types/BUILD | 2 -- pkg/volume/util/volumehelper/BUILD | 2 -- pkg/volume/validation/BUILD | 2 -- pkg/volume/vsphere_volume/BUILD | 2 -- pkg/watch/BUILD | 2 -- pkg/watch/json/BUILD | 2 -- pkg/watch/versioned/BUILD | 2 -- plugin/BUILD | 2 -- plugin/cmd/kube-scheduler/BUILD | 2 -- plugin/cmd/kube-scheduler/app/BUILD | 2 -- plugin/cmd/kube-scheduler/app/options/BUILD | 2 -- plugin/pkg/admission/admit/BUILD | 2 -- plugin/pkg/admission/alwayspullimages/BUILD | 2 -- plugin/pkg/admission/antiaffinity/BUILD | 2 -- plugin/pkg/admission/defaulttolerationseconds/BUILD | 2 -- plugin/pkg/admission/deny/BUILD | 2 -- plugin/pkg/admission/exec/BUILD | 2 -- plugin/pkg/admission/gc/BUILD | 2 -- plugin/pkg/admission/imagepolicy/BUILD | 2 -- plugin/pkg/admission/initialization/BUILD | 2 -- plugin/pkg/admission/initialresources/BUILD | 2 -- plugin/pkg/admission/limitranger/BUILD | 2 -- plugin/pkg/admission/namespace/autoprovision/BUILD | 2 -- plugin/pkg/admission/namespace/exists/BUILD | 2 -- plugin/pkg/admission/noderestriction/BUILD | 2 -- plugin/pkg/admission/persistentvolume/label/BUILD | 2 -- plugin/pkg/admission/podnodeselector/BUILD | 2 -- plugin/pkg/admission/podpreset/BUILD | 2 -- plugin/pkg/admission/podtolerationrestriction/BUILD | 2 -- .../apis/podtolerationrestriction/BUILD | 2 -- .../apis/podtolerationrestriction/install/BUILD | 2 -- .../apis/podtolerationrestriction/v1alpha1/BUILD | 2 -- .../apis/podtolerationrestriction/validation/BUILD | 2 -- plugin/pkg/admission/resourcequota/BUILD | 2 -- plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD | 2 -- .../admission/resourcequota/apis/resourcequota/install/BUILD | 2 -- .../admission/resourcequota/apis/resourcequota/v1alpha1/BUILD | 2 -- .../admission/resourcequota/apis/resourcequota/validation/BUILD | 2 -- plugin/pkg/admission/security/BUILD | 2 -- plugin/pkg/admission/security/podsecuritypolicy/BUILD | 2 -- plugin/pkg/admission/securitycontext/scdeny/BUILD | 2 -- plugin/pkg/admission/serviceaccount/BUILD | 2 -- plugin/pkg/admission/storageclass/setdefault/BUILD | 2 -- plugin/pkg/admission/webhook/BUILD | 2 -- plugin/pkg/auth/BUILD | 2 -- plugin/pkg/auth/authenticator/token/bootstrap/BUILD | 2 -- plugin/pkg/auth/authorizer/BUILD | 2 -- plugin/pkg/auth/authorizer/node/BUILD | 2 -- plugin/pkg/auth/authorizer/rbac/BUILD | 2 -- plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD | 2 -- plugin/pkg/scheduler/BUILD | 2 -- plugin/pkg/scheduler/algorithm/BUILD | 2 -- plugin/pkg/scheduler/algorithm/predicates/BUILD | 2 -- plugin/pkg/scheduler/algorithm/priorities/BUILD | 2 -- plugin/pkg/scheduler/algorithm/priorities/util/BUILD | 2 -- plugin/pkg/scheduler/algorithmprovider/BUILD | 2 -- plugin/pkg/scheduler/algorithmprovider/defaults/BUILD | 2 -- plugin/pkg/scheduler/api/BUILD | 2 -- plugin/pkg/scheduler/api/latest/BUILD | 2 -- plugin/pkg/scheduler/api/v1/BUILD | 2 -- plugin/pkg/scheduler/api/validation/BUILD | 2 -- plugin/pkg/scheduler/core/BUILD | 2 -- plugin/pkg/scheduler/factory/BUILD | 2 -- plugin/pkg/scheduler/metrics/BUILD | 2 -- plugin/pkg/scheduler/schedulercache/BUILD | 2 -- plugin/pkg/scheduler/testing/BUILD | 2 -- plugin/pkg/scheduler/util/BUILD | 2 -- staging/BUILD | 2 -- staging/src/k8s.io/api/admission/v1alpha1/BUILD | 2 -- staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD | 2 -- staging/src/k8s.io/api/apps/v1beta1/BUILD | 2 -- staging/src/k8s.io/api/apps/v1beta2/BUILD | 2 -- staging/src/k8s.io/api/authentication/v1/BUILD | 2 -- staging/src/k8s.io/api/authentication/v1beta1/BUILD | 2 -- staging/src/k8s.io/api/authorization/v1/BUILD | 2 -- staging/src/k8s.io/api/authorization/v1beta1/BUILD | 2 -- staging/src/k8s.io/api/autoscaling/v1/BUILD | 2 -- staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD | 2 -- staging/src/k8s.io/api/batch/v1/BUILD | 2 -- staging/src/k8s.io/api/batch/v2alpha1/BUILD | 2 -- staging/src/k8s.io/api/certificates/v1beta1/BUILD | 2 -- staging/src/k8s.io/api/core/v1/BUILD | 2 -- staging/src/k8s.io/api/extensions/v1beta1/BUILD | 2 -- staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD | 2 -- staging/src/k8s.io/api/networking/v1/BUILD | 2 -- staging/src/k8s.io/api/policy/v1beta1/BUILD | 2 -- staging/src/k8s.io/api/rbac/v1/BUILD | 2 -- staging/src/k8s.io/api/rbac/v1alpha1/BUILD | 2 -- staging/src/k8s.io/api/rbac/v1beta1/BUILD | 2 -- staging/src/k8s.io/api/scheduling/v1alpha1/BUILD | 2 -- staging/src/k8s.io/api/settings/v1alpha1/BUILD | 2 -- staging/src/k8s.io/api/storage/v1/BUILD | 2 -- staging/src/k8s.io/api/storage/v1beta1/BUILD | 2 -- staging/src/k8s.io/apiextensions-apiserver/BUILD | 2 -- .../src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD | 2 -- .../apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD | 2 -- .../apiextensions-apiserver/examples/client-go/client/BUILD | 2 -- .../apiextensions-apiserver/examples/client-go/controller/BUILD | 2 -- .../k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD | 2 -- .../apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD | 2 -- .../pkg/apis/apiextensions/install/BUILD | 2 -- .../pkg/apis/apiextensions/v1beta1/BUILD | 2 -- .../pkg/apis/apiextensions/validation/BUILD | 2 -- staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD | 2 -- .../pkg/client/clientset/clientset/BUILD | 2 -- .../pkg/client/clientset/clientset/fake/BUILD | 2 -- .../pkg/client/clientset/clientset/scheme/BUILD | 2 -- .../clientset/clientset/typed/apiextensions/v1beta1/BUILD | 2 -- .../clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD | 2 -- .../pkg/client/clientset/internalclientset/BUILD | 2 -- .../pkg/client/clientset/internalclientset/fake/BUILD | 2 -- .../pkg/client/clientset/internalclientset/scheme/BUILD | 2 -- .../internalclientset/typed/apiextensions/internalversion/BUILD | 2 -- .../typed/apiextensions/internalversion/fake/BUILD | 2 -- .../pkg/client/informers/externalversions/BUILD | 2 -- .../pkg/client/informers/externalversions/apiextensions/BUILD | 2 -- .../informers/externalversions/apiextensions/v1beta1/BUILD | 2 -- .../client/informers/externalversions/internalinterfaces/BUILD | 2 -- .../pkg/client/informers/internalversion/BUILD | 2 -- .../pkg/client/informers/internalversion/apiextensions/BUILD | 2 -- .../internalversion/apiextensions/internalversion/BUILD | 2 -- .../client/informers/internalversion/internalinterfaces/BUILD | 2 -- .../pkg/client/listers/apiextensions/internalversion/BUILD | 2 -- .../pkg/client/listers/apiextensions/v1beta1/BUILD | 2 -- staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD | 2 -- .../apiextensions-apiserver/pkg/controller/finalizer/BUILD | 2 -- .../k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD | 2 -- .../apiextensions-apiserver/pkg/registry/customresource/BUILD | 2 -- .../pkg/registry/customresourcedefinition/BUILD | 2 -- .../src/k8s.io/apiextensions-apiserver/test/integration/BUILD | 2 -- .../apiextensions-apiserver/test/integration/testserver/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/conversion/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/fields/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/labels/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/runtime/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD | 2 -- .../k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD | 2 -- .../k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD | 2 -- .../pkg/runtime/serializer/recognizer/testing/BUILD | 2 -- .../k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD | 2 -- .../k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD | 2 -- .../k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD | 2 -- .../src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/selection/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/test/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/types/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/json/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/net/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/version/BUILD | 2 -- staging/src/k8s.io/apimachinery/pkg/watch/BUILD | 2 -- .../k8s.io/apimachinery/third_party/forked/golang/json/BUILD | 2 -- .../k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD | 2 -- .../k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/admission/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD | 2 -- .../apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/example/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/audit/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD | 2 -- .../apiserver/pkg/authentication/authenticatorfactory/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD | 2 -- .../k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD | 2 -- .../apiserver/pkg/authentication/request/bearertoken/BUILD | 2 -- .../apiserver/pkg/authentication/request/headerrequest/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/authentication/request/union/BUILD | 2 -- .../k8s.io/apiserver/pkg/authentication/request/websocket/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD | 2 -- .../k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD | 2 -- .../k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD | 2 -- .../k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD | 2 -- .../k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD | 2 -- .../apiserver/pkg/endpoints/handlers/responsewriters/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/features/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/registry/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/filters/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/mux/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/options/BUILD | 2 -- .../k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/routes/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/server/storage/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD | 2 -- .../k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/names/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD | 2 -- .../k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/storage/value/BUILD | 2 -- .../src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD | 2 -- .../k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD | 2 -- .../k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD | 2 -- .../k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/feature/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/flag/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/logs/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/trace/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD | 2 -- staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD | 2 -- staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD | 2 -- staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD | 2 -- staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD | 2 -- staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD | 2 -- .../k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD | 2 -- .../apiserver/plugin/pkg/authenticator/password/allow/BUILD | 2 -- .../apiserver/plugin/pkg/authenticator/password/keystone/BUILD | 2 -- .../plugin/pkg/authenticator/password/passwordfile/BUILD | 2 -- .../apiserver/plugin/pkg/authenticator/request/basicauth/BUILD | 2 -- .../k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD | 2 -- .../apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD | 2 -- .../apiserver/plugin/pkg/authenticator/token/tokentest/BUILD | 2 -- .../apiserver/plugin/pkg/authenticator/token/webhook/BUILD | 2 -- .../src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD | 2 -- staging/src/k8s.io/client-go/discovery/BUILD | 2 -- staging/src/k8s.io/client-go/discovery/cached/BUILD | 2 -- staging/src/k8s.io/client-go/discovery/fake/BUILD | 2 -- staging/src/k8s.io/client-go/dynamic/BUILD | 2 -- staging/src/k8s.io/client-go/dynamic/fake/BUILD | 2 -- .../client-go/examples/create-update-delete-deployment/BUILD | 2 -- .../client-go/examples/in-cluster-client-configuration/BUILD | 2 -- .../examples/out-of-cluster-client-configuration/BUILD | 2 -- staging/src/k8s.io/client-go/examples/workqueue/BUILD | 2 -- staging/src/k8s.io/client-go/informers/BUILD | 2 -- .../src/k8s.io/client-go/informers/admissionregistration/BUILD | 2 -- .../client-go/informers/admissionregistration/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/apps/BUILD | 2 -- staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD | 2 -- staging/src/k8s.io/client-go/informers/autoscaling/BUILD | 2 -- staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD | 2 -- .../src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/batch/BUILD | 2 -- staging/src/k8s.io/client-go/informers/batch/v1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/certificates/BUILD | 2 -- .../src/k8s.io/client-go/informers/certificates/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/core/BUILD | 2 -- staging/src/k8s.io/client-go/informers/core/v1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/extensions/BUILD | 2 -- staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD | 2 -- staging/src/k8s.io/client-go/informers/networking/BUILD | 2 -- staging/src/k8s.io/client-go/informers/networking/v1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/policy/BUILD | 2 -- staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/rbac/BUILD | 2 -- staging/src/k8s.io/client-go/informers/rbac/v1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/scheduling/BUILD | 2 -- .../src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/settings/BUILD | 2 -- staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/storage/BUILD | 2 -- staging/src/k8s.io/client-go/informers/storage/v1/BUILD | 2 -- staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/kubernetes/BUILD | 2 -- staging/src/k8s.io/client-go/kubernetes/fake/BUILD | 2 -- staging/src/k8s.io/client-go/kubernetes/scheme/BUILD | 2 -- .../kubernetes/typed/admissionregistration/v1alpha1/BUILD | 2 -- .../kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD | 2 -- .../client-go/kubernetes/typed/authentication/v1/fake/BUILD | 2 -- .../client-go/kubernetes/typed/authentication/v1beta1/BUILD | 2 -- .../kubernetes/typed/authentication/v1beta1/fake/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD | 2 -- .../client-go/kubernetes/typed/authorization/v1/fake/BUILD | 2 -- .../client-go/kubernetes/typed/authorization/v1beta1/BUILD | 2 -- .../client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD | 2 -- .../client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD | 2 -- .../client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD | 2 -- staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD | 2 -- .../client-go/kubernetes/typed/certificates/v1beta1/BUILD | 2 -- .../client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD | 2 -- staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD | 2 -- .../client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD | 2 -- staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD | 2 -- .../client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD | 2 -- .../k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD | 2 -- .../client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD | 2 -- staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD | 2 -- .../src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD | 2 -- .../client-go/kubernetes/typed/storage/v1beta1/fake/BUILD | 2 -- .../client-go/listers/admissionregistration/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD | 2 -- staging/src/k8s.io/client-go/listers/authentication/v1/BUILD | 2 -- .../src/k8s.io/client-go/listers/authentication/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/authorization/v1/BUILD | 2 -- .../src/k8s.io/client-go/listers/authorization/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/batch/v1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/core/v1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/networking/v1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/rbac/v1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/storage/v1/BUILD | 2 -- staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD | 2 -- staging/src/k8s.io/client-go/pkg/version/BUILD | 2 -- .../plugin/pkg/auth/authenticator/token/oidc/testing/BUILD | 2 -- staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD | 2 -- staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD | 2 -- staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD | 2 -- staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD | 2 -- .../src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD | 2 -- staging/src/k8s.io/client-go/rest/BUILD | 2 -- staging/src/k8s.io/client-go/rest/fake/BUILD | 2 -- staging/src/k8s.io/client-go/rest/watch/BUILD | 2 -- staging/src/k8s.io/client-go/testing/BUILD | 2 -- .../k8s.io/client-go/third_party/forked/golang/template/BUILD | 2 -- staging/src/k8s.io/client-go/tools/auth/BUILD | 2 -- staging/src/k8s.io/client-go/tools/cache/BUILD | 2 -- staging/src/k8s.io/client-go/tools/cache/testing/BUILD | 2 -- staging/src/k8s.io/client-go/tools/clientcmd/BUILD | 2 -- staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD | 2 -- staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD | 2 -- staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD | 2 -- staging/src/k8s.io/client-go/tools/leaderelection/BUILD | 2 -- .../k8s.io/client-go/tools/leaderelection/resourcelock/BUILD | 2 -- staging/src/k8s.io/client-go/tools/metrics/BUILD | 2 -- staging/src/k8s.io/client-go/tools/portforward/BUILD | 2 -- staging/src/k8s.io/client-go/tools/record/BUILD | 2 -- staging/src/k8s.io/client-go/tools/reference/BUILD | 2 -- staging/src/k8s.io/client-go/tools/remotecommand/BUILD | 2 -- staging/src/k8s.io/client-go/transport/BUILD | 2 -- staging/src/k8s.io/client-go/transport/spdy/BUILD | 2 -- staging/src/k8s.io/client-go/util/cert/BUILD | 2 -- staging/src/k8s.io/client-go/util/cert/triple/BUILD | 2 -- staging/src/k8s.io/client-go/util/exec/BUILD | 2 -- staging/src/k8s.io/client-go/util/flowcontrol/BUILD | 2 -- staging/src/k8s.io/client-go/util/homedir/BUILD | 2 -- staging/src/k8s.io/client-go/util/integer/BUILD | 2 -- staging/src/k8s.io/client-go/util/jsonpath/BUILD | 2 -- staging/src/k8s.io/client-go/util/testing/BUILD | 2 -- staging/src/k8s.io/client-go/util/workqueue/BUILD | 2 -- staging/src/k8s.io/kube-aggregator/BUILD | 2 -- .../src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD | 2 -- .../kube-aggregator/pkg/apis/apiregistration/install/BUILD | 2 -- .../kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD | 2 -- .../kube-aggregator/pkg/apis/apiregistration/validation/BUILD | 2 -- staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/fake/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/scheme/BUILD | 2 -- .../clientset/typed/apiregistration/v1beta1/BUILD | 2 -- .../clientset/typed/apiregistration/v1beta1/fake/BUILD | 2 -- .../pkg/client/clientset_generated/internalclientset/BUILD | 2 -- .../pkg/client/clientset_generated/internalclientset/fake/BUILD | 2 -- .../client/clientset_generated/internalclientset/scheme/BUILD | 2 -- .../typed/apiregistration/internalversion/BUILD | 2 -- .../typed/apiregistration/internalversion/fake/BUILD | 2 -- .../kube-aggregator/pkg/client/informers/externalversions/BUILD | 2 -- .../pkg/client/informers/externalversions/apiregistration/BUILD | 2 -- .../informers/externalversions/apiregistration/v1beta1/BUILD | 2 -- .../client/informers/externalversions/internalinterfaces/BUILD | 2 -- .../kube-aggregator/pkg/client/informers/internalversion/BUILD | 2 -- .../pkg/client/informers/internalversion/apiregistration/BUILD | 2 -- .../internalversion/apiregistration/internalversion/BUILD | 2 -- .../client/informers/internalversion/internalinterfaces/BUILD | 2 -- .../pkg/client/listers/apiregistration/internalversion/BUILD | 2 -- .../pkg/client/listers/apiregistration/v1beta1/BUILD | 2 -- staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD | 2 -- staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD | 2 -- .../k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD | 2 -- staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD | 2 -- .../src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD | 2 -- .../k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD | 2 -- .../src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD | 2 -- .../src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD | 2 -- .../src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD | 2 -- .../k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD | 2 -- .../src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD | 2 -- .../clientset/internal/typed/testgroup/internalversion/BUILD | 2 -- .../internal/typed/testgroup/internalversion/fake/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD | 2 -- .../src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD | 2 -- .../kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD | 2 -- .../test/clientset/versioned/typed/testgroup/v1/fake/BUILD | 2 -- .../src/k8s.io/kube-gen/test/informers/externalversions/BUILD | 2 -- .../test/informers/externalversions/internalinterfaces/BUILD | 2 -- .../kube-gen/test/informers/externalversions/testgroup/BUILD | 2 -- .../kube-gen/test/informers/externalversions/testgroup/v1/BUILD | 2 -- .../src/k8s.io/kube-gen/test/informers/internalversion/BUILD | 2 -- .../test/informers/internalversion/internalinterfaces/BUILD | 2 -- .../kube-gen/test/informers/internalversion/testgroup/BUILD | 2 -- .../informers/internalversion/testgroup/internalversion/BUILD | 2 -- .../kube-gen/test/listers/testgroup/internalversion/BUILD | 2 -- staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD | 2 -- .../src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD | 2 -- staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD | 2 -- .../src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD | 2 -- .../src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD | 2 -- staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD | 2 -- staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD | 2 -- staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD | 2 -- .../metrics/pkg/client/clientset_generated/clientset/BUILD | 2 -- .../metrics/pkg/client/clientset_generated/clientset/fake/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/scheme/BUILD | 2 -- .../clientset_generated/clientset/typed/metrics/v1alpha1/BUILD | 2 -- .../clientset/typed/metrics/v1alpha1/fake/BUILD | 2 -- staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD | 2 -- staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD | 2 -- staging/src/k8s.io/sample-apiserver/BUILD | 2 -- .../sample-apiserver/pkg/admission/plugin/banflunder/BUILD | 2 -- .../sample-apiserver/pkg/admission/wardleinitializer/BUILD | 2 -- staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD | 2 -- .../src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD | 2 -- .../src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD | 2 -- staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/fake/BUILD | 2 -- .../pkg/client/clientset_generated/clientset/scheme/BUILD | 2 -- .../clientset_generated/clientset/typed/wardle/v1alpha1/BUILD | 2 -- .../clientset/typed/wardle/v1alpha1/fake/BUILD | 2 -- .../pkg/client/clientset_generated/internalclientset/BUILD | 2 -- .../pkg/client/clientset_generated/internalclientset/fake/BUILD | 2 -- .../client/clientset_generated/internalclientset/scheme/BUILD | 2 -- .../internalclientset/typed/wardle/internalversion/BUILD | 2 -- .../internalclientset/typed/wardle/internalversion/fake/BUILD | 2 -- .../pkg/client/informers_generated/externalversions/BUILD | 2 -- .../externalversions/internalinterfaces/BUILD | 2 -- .../client/informers_generated/externalversions/wardle/BUILD | 2 -- .../informers_generated/externalversions/wardle/v1alpha1/BUILD | 2 -- .../pkg/client/informers_generated/internalversion/BUILD | 2 -- .../internalversion/internalinterfaces/BUILD | 2 -- .../pkg/client/informers_generated/internalversion/wardle/BUILD | 2 -- .../internalversion/wardle/internalversion/BUILD | 2 -- .../pkg/client/listers_generated/wardle/internalversion/BUILD | 2 -- .../pkg/client/listers_generated/wardle/v1alpha1/BUILD | 2 -- staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD | 2 -- staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD | 2 -- .../k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD | 2 -- .../k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD | 2 -- test/BUILD | 2 -- test/e2e/BUILD | 2 -- test/e2e/apimachinery/BUILD | 2 -- test/e2e/apps/BUILD | 2 -- test/e2e/autoscaling/BUILD | 2 -- test/e2e/chaosmonkey/BUILD | 2 -- test/e2e/common/BUILD | 2 -- test/e2e/framework/BUILD | 2 -- test/e2e/framework/ginkgowrapper/BUILD | 2 -- test/e2e/framework/metrics/BUILD | 2 -- test/e2e/generated/BUILD | 2 -- test/e2e/instrumentation/BUILD | 2 -- test/e2e/instrumentation/common/BUILD | 2 -- test/e2e/instrumentation/logging/BUILD | 2 -- test/e2e/instrumentation/logging/elasticsearch/BUILD | 2 -- test/e2e/instrumentation/logging/stackdrvier/BUILD | 2 -- test/e2e/instrumentation/logging/utils/BUILD | 2 -- test/e2e/instrumentation/monitoring/BUILD | 2 -- test/e2e/kubectl/BUILD | 2 -- test/e2e/lifecycle/BUILD | 2 -- test/e2e/lifecycle/bootstrap/BUILD | 2 -- test/e2e/manifest/BUILD | 2 -- test/e2e/network/BUILD | 2 -- test/e2e/node/BUILD | 2 -- test/e2e/perftype/BUILD | 2 -- test/e2e/scalability/BUILD | 2 -- test/e2e/scheduling/BUILD | 2 -- test/e2e/storage/BUILD | 2 -- test/e2e/upgrades/BUILD | 2 -- test/e2e/upgrades/apps/BUILD | 2 -- test/e2e/upgrades/storage/BUILD | 2 -- test/e2e_federation/BUILD | 2 -- test/e2e_federation/framework/BUILD | 2 -- test/e2e_federation/upgrades/BUILD | 2 -- test/e2e_node/BUILD | 2 -- test/e2e_node/builder/BUILD | 2 -- test/e2e_node/environment/BUILD | 2 -- test/e2e_node/perftype/BUILD | 2 -- test/e2e_node/remote/BUILD | 2 -- test/e2e_node/runner/local/BUILD | 2 -- test/e2e_node/runner/remote/BUILD | 2 -- test/e2e_node/services/BUILD | 2 -- test/e2e_node/system/BUILD | 2 -- test/images/clusterapi-tester/BUILD | 2 -- test/images/entrypoint-tester/BUILD | 2 -- test/images/fakegitserver/BUILD | 2 -- test/images/goproxy/BUILD | 2 -- test/images/liveness/BUILD | 2 -- test/images/logs-generator/BUILD | 2 -- test/images/mounttest/BUILD | 2 -- test/images/n-way-http/BUILD | 2 -- test/images/net/BUILD | 2 -- test/images/net/common/BUILD | 2 -- test/images/net/nat/BUILD | 2 -- test/images/netexec/BUILD | 2 -- test/images/nettest/BUILD | 2 -- test/images/no-snat-test-proxy/BUILD | 2 -- test/images/no-snat-test/BUILD | 2 -- test/images/port-forward-tester/BUILD | 2 -- test/images/porter/BUILD | 2 -- test/images/resource-consumer/BUILD | 2 -- test/images/resource-consumer/common/BUILD | 2 -- test/images/resource-consumer/consume-cpu/BUILD | 2 -- test/images/resource-consumer/controller/BUILD | 2 -- test/images/serve-hostname/BUILD | 2 -- test/images/test-webserver/BUILD | 2 -- test/integration/BUILD | 2 -- test/integration/apiserver/BUILD | 2 -- test/integration/auth/BUILD | 2 -- test/integration/client/BUILD | 2 -- test/integration/configmap/BUILD | 2 -- test/integration/defaulttolerationseconds/BUILD | 2 -- test/integration/deployment/BUILD | 2 -- test/integration/etcd/BUILD | 2 -- test/integration/evictions/BUILD | 2 -- test/integration/examples/BUILD | 2 -- test/integration/federation/BUILD | 2 -- test/integration/federation/framework/BUILD | 2 -- test/integration/framework/BUILD | 2 -- test/integration/garbagecollector/BUILD | 2 -- test/integration/kubectl/BUILD | 2 -- test/integration/master/BUILD | 2 -- test/integration/metrics/BUILD | 2 -- test/integration/objectmeta/BUILD | 2 -- test/integration/openshift/BUILD | 2 -- test/integration/pods/BUILD | 2 -- test/integration/quota/BUILD | 2 -- test/integration/replicaset/BUILD | 2 -- test/integration/replicationcontroller/BUILD | 2 -- test/integration/scheduler/BUILD | 2 -- test/integration/scheduler_perf/BUILD | 2 -- test/integration/secrets/BUILD | 2 -- test/integration/serviceaccount/BUILD | 2 -- test/integration/storageclasses/BUILD | 2 -- test/integration/ttlcontroller/BUILD | 2 -- test/integration/volume/BUILD | 2 -- test/kubemark/BUILD | 2 -- test/list/BUILD | 2 -- test/soak/cauldron/BUILD | 2 -- test/soak/serve_hostnames/BUILD | 2 -- test/utils/BUILD | 2 -- test/utils/junit/BUILD | 2 -- vendor/BUILD | 2 -- vendor/bitbucket.org/bertimus9/systemstat/BUILD | 2 -- vendor/bitbucket.org/ww/goautoneg/BUILD | 2 -- vendor/cloud.google.com/go/compute/metadata/BUILD | 2 -- vendor/cloud.google.com/go/internal/BUILD | 2 -- vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD | 2 -- .../Azure/azure-sdk-for-go/arm/containerregistry/BUILD | 2 -- vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD | 2 -- vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD | 2 -- vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD | 2 -- vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD | 2 -- vendor/github.com/Azure/go-ansiterm/BUILD | 2 -- vendor/github.com/Azure/go-autorest/autorest/BUILD | 2 -- vendor/github.com/Azure/go-autorest/autorest/adal/BUILD | 2 -- vendor/github.com/Azure/go-autorest/autorest/azure/BUILD | 2 -- vendor/github.com/Azure/go-autorest/autorest/date/BUILD | 2 -- vendor/github.com/Azure/go-autorest/autorest/to/BUILD | 2 -- vendor/github.com/Azure/go-autorest/autorest/validation/BUILD | 2 -- vendor/github.com/MakeNowJust/heredoc/BUILD | 2 -- vendor/github.com/Microsoft/go-winio/BUILD | 2 -- vendor/github.com/NYTimes/gziphandler/BUILD | 2 -- vendor/github.com/PuerkitoBio/purell/BUILD | 2 -- vendor/github.com/PuerkitoBio/urlesc/BUILD | 2 -- vendor/github.com/Sirupsen/logrus/BUILD | 2 -- vendor/github.com/abbot/go-http-auth/BUILD | 2 -- vendor/github.com/appc/spec/schema/BUILD | 2 -- vendor/github.com/appc/spec/schema/common/BUILD | 2 -- vendor/github.com/appc/spec/schema/types/BUILD | 2 -- vendor/github.com/appc/spec/schema/types/resource/BUILD | 2 -- vendor/github.com/armon/circbuf/BUILD | 2 -- vendor/github.com/asaskevich/govalidator/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/client/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD | 2 -- .../aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD | 2 -- .../aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/request/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/session/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD | 2 -- .../github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD | 2 -- .../aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD | 2 -- .../aws/aws-sdk-go/private/protocol/query/queryutil/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD | 2 -- .../aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/service/elb/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/service/route53/BUILD | 2 -- vendor/github.com/aws/aws-sdk-go/service/sts/BUILD | 2 -- vendor/github.com/beorn7/perks/quantile/BUILD | 2 -- vendor/github.com/blang/semver/BUILD | 2 -- vendor/github.com/boltdb/bolt/BUILD | 2 -- vendor/github.com/chai2010/gettext-go/gettext/BUILD | 2 -- vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD | 2 -- vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD | 2 -- vendor/github.com/chai2010/gettext-go/gettext/po/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/auth/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/certdb/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/config/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/csr/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/errors/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/helpers/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/info/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/log/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/signer/BUILD | 2 -- vendor/github.com/cloudflare/cfssl/signer/local/BUILD | 2 -- vendor/github.com/clusterhq/flocker-go/BUILD | 2 -- vendor/github.com/codedellemc/goscaleio/BUILD | 2 -- vendor/github.com/codedellemc/goscaleio/types/v1/BUILD | 2 -- vendor/github.com/codegangsta/negroni/BUILD | 2 -- vendor/github.com/containernetworking/cni/libcni/BUILD | 2 -- vendor/github.com/containernetworking/cni/pkg/invoke/BUILD | 2 -- vendor/github.com/containernetworking/cni/pkg/types/020/BUILD | 2 -- vendor/github.com/containernetworking/cni/pkg/types/BUILD | 2 -- .../github.com/containernetworking/cni/pkg/types/current/BUILD | 2 -- vendor/github.com/containernetworking/cni/pkg/version/BUILD | 2 -- vendor/github.com/coreos/etcd/alarm/BUILD | 2 -- vendor/github.com/coreos/etcd/auth/BUILD | 2 -- vendor/github.com/coreos/etcd/auth/authpb/BUILD | 2 -- vendor/github.com/coreos/etcd/client/BUILD | 2 -- vendor/github.com/coreos/etcd/clientv3/BUILD | 2 -- vendor/github.com/coreos/etcd/compactor/BUILD | 2 -- vendor/github.com/coreos/etcd/discovery/BUILD | 2 -- vendor/github.com/coreos/etcd/error/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/api/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD | 2 -- .../coreos/etcd/etcdserver/api/v2http/httptypes/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD | 2 -- .../github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/auth/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/membership/BUILD | 2 -- vendor/github.com/coreos/etcd/etcdserver/stats/BUILD | 2 -- vendor/github.com/coreos/etcd/integration/BUILD | 2 -- vendor/github.com/coreos/etcd/lease/BUILD | 2 -- vendor/github.com/coreos/etcd/lease/leasehttp/BUILD | 2 -- vendor/github.com/coreos/etcd/lease/leasepb/BUILD | 2 -- vendor/github.com/coreos/etcd/mvcc/BUILD | 2 -- vendor/github.com/coreos/etcd/mvcc/backend/BUILD | 2 -- vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/adt/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/contention/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/crc/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/fileutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/httputil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/idutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/ioutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/logutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/monotime/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/netutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/pathutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/pbutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/runtime/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/schedule/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/testutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/transport/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/types/BUILD | 2 -- vendor/github.com/coreos/etcd/pkg/wait/BUILD | 2 -- vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD | 2 -- vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD | 2 -- vendor/github.com/coreos/etcd/raft/BUILD | 2 -- vendor/github.com/coreos/etcd/raft/raftpb/BUILD | 2 -- vendor/github.com/coreos/etcd/rafthttp/BUILD | 2 -- vendor/github.com/coreos/etcd/snap/BUILD | 2 -- vendor/github.com/coreos/etcd/snap/snappb/BUILD | 2 -- vendor/github.com/coreos/etcd/store/BUILD | 2 -- vendor/github.com/coreos/etcd/version/BUILD | 2 -- vendor/github.com/coreos/etcd/wal/BUILD | 2 -- vendor/github.com/coreos/etcd/wal/walpb/BUILD | 2 -- vendor/github.com/coreos/go-oidc/http/BUILD | 2 -- vendor/github.com/coreos/go-oidc/jose/BUILD | 2 -- vendor/github.com/coreos/go-oidc/key/BUILD | 2 -- vendor/github.com/coreos/go-oidc/oauth2/BUILD | 2 -- vendor/github.com/coreos/go-oidc/oidc/BUILD | 2 -- vendor/github.com/coreos/go-semver/semver/BUILD | 2 -- vendor/github.com/coreos/go-systemd/daemon/BUILD | 2 -- vendor/github.com/coreos/go-systemd/dbus/BUILD | 2 -- vendor/github.com/coreos/go-systemd/journal/BUILD | 2 -- vendor/github.com/coreos/go-systemd/unit/BUILD | 2 -- vendor/github.com/coreos/go-systemd/util/BUILD | 2 -- vendor/github.com/coreos/pkg/capnslog/BUILD | 2 -- vendor/github.com/coreos/pkg/dlopen/BUILD | 2 -- vendor/github.com/coreos/pkg/health/BUILD | 2 -- vendor/github.com/coreos/pkg/httputil/BUILD | 2 -- vendor/github.com/coreos/pkg/timeutil/BUILD | 2 -- vendor/github.com/coreos/rkt/api/v1alpha/BUILD | 2 -- vendor/github.com/cpuguy83/go-md2man/md2man/BUILD | 2 -- vendor/github.com/davecgh/go-spew/spew/BUILD | 2 -- vendor/github.com/daviddengcn/go-colortext/BUILD | 2 -- vendor/github.com/dgrijalva/jwt-go/BUILD | 2 -- vendor/github.com/docker/distribution/digest/BUILD | 2 -- vendor/github.com/docker/distribution/reference/BUILD | 2 -- vendor/github.com/docker/docker/api/types/BUILD | 2 -- vendor/github.com/docker/docker/api/types/blkiodev/BUILD | 2 -- vendor/github.com/docker/docker/api/types/container/BUILD | 2 -- vendor/github.com/docker/docker/api/types/events/BUILD | 2 -- vendor/github.com/docker/docker/api/types/filters/BUILD | 2 -- vendor/github.com/docker/docker/api/types/mount/BUILD | 2 -- vendor/github.com/docker/docker/api/types/network/BUILD | 2 -- vendor/github.com/docker/docker/api/types/reference/BUILD | 2 -- vendor/github.com/docker/docker/api/types/registry/BUILD | 2 -- vendor/github.com/docker/docker/api/types/strslice/BUILD | 2 -- vendor/github.com/docker/docker/api/types/swarm/BUILD | 2 -- vendor/github.com/docker/docker/api/types/time/BUILD | 2 -- vendor/github.com/docker/docker/api/types/versions/BUILD | 2 -- vendor/github.com/docker/docker/api/types/volume/BUILD | 2 -- vendor/github.com/docker/docker/client/BUILD | 2 -- vendor/github.com/docker/docker/pkg/jsonlog/BUILD | 2 -- vendor/github.com/docker/docker/pkg/jsonmessage/BUILD | 2 -- vendor/github.com/docker/docker/pkg/longpath/BUILD | 2 -- vendor/github.com/docker/docker/pkg/mount/BUILD | 2 -- vendor/github.com/docker/docker/pkg/stdcopy/BUILD | 2 -- vendor/github.com/docker/docker/pkg/symlink/BUILD | 2 -- vendor/github.com/docker/docker/pkg/system/BUILD | 2 -- vendor/github.com/docker/docker/pkg/term/BUILD | 2 -- vendor/github.com/docker/docker/pkg/term/windows/BUILD | 2 -- vendor/github.com/docker/docker/pkg/tlsconfig/BUILD | 2 -- vendor/github.com/docker/engine-api/client/BUILD | 2 -- vendor/github.com/docker/engine-api/client/transport/BUILD | 2 -- .../docker/engine-api/client/transport/cancellable/BUILD | 2 -- vendor/github.com/docker/engine-api/types/BUILD | 2 -- vendor/github.com/docker/engine-api/types/blkiodev/BUILD | 2 -- vendor/github.com/docker/engine-api/types/container/BUILD | 2 -- vendor/github.com/docker/engine-api/types/filters/BUILD | 2 -- vendor/github.com/docker/engine-api/types/network/BUILD | 2 -- vendor/github.com/docker/engine-api/types/reference/BUILD | 2 -- vendor/github.com/docker/engine-api/types/registry/BUILD | 2 -- vendor/github.com/docker/engine-api/types/strslice/BUILD | 2 -- vendor/github.com/docker/engine-api/types/time/BUILD | 2 -- vendor/github.com/docker/engine-api/types/versions/BUILD | 2 -- vendor/github.com/docker/go-connections/nat/BUILD | 2 -- vendor/github.com/docker/go-connections/sockets/BUILD | 2 -- vendor/github.com/docker/go-connections/tlsconfig/BUILD | 2 -- vendor/github.com/docker/go-units/BUILD | 2 -- vendor/github.com/docker/spdystream/BUILD | 2 -- vendor/github.com/docker/spdystream/spdy/BUILD | 2 -- vendor/github.com/elazarl/go-bindata-assetfs/BUILD | 2 -- vendor/github.com/elazarl/goproxy/BUILD | 2 -- vendor/github.com/emicklei/go-restful-swagger12/BUILD | 2 -- vendor/github.com/emicklei/go-restful/BUILD | 2 -- vendor/github.com/emicklei/go-restful/log/BUILD | 2 -- vendor/github.com/evanphx/json-patch/BUILD | 2 -- vendor/github.com/exponent-io/jsonpath/BUILD | 2 -- vendor/github.com/fatih/camelcase/BUILD | 2 -- vendor/github.com/fsnotify/fsnotify/BUILD | 2 -- vendor/github.com/garyburd/redigo/internal/BUILD | 2 -- vendor/github.com/garyburd/redigo/redis/BUILD | 2 -- vendor/github.com/ghodss/yaml/BUILD | 2 -- vendor/github.com/go-ini/ini/BUILD | 2 -- vendor/github.com/go-openapi/analysis/BUILD | 2 -- vendor/github.com/go-openapi/errors/BUILD | 2 -- vendor/github.com/go-openapi/jsonpointer/BUILD | 2 -- vendor/github.com/go-openapi/jsonreference/BUILD | 2 -- vendor/github.com/go-openapi/loads/BUILD | 2 -- vendor/github.com/go-openapi/runtime/BUILD | 2 -- vendor/github.com/go-openapi/spec/BUILD | 2 -- vendor/github.com/go-openapi/strfmt/BUILD | 2 -- vendor/github.com/go-openapi/swag/BUILD | 2 -- vendor/github.com/go-openapi/validate/BUILD | 2 -- vendor/github.com/godbus/dbus/BUILD | 2 -- vendor/github.com/gogo/protobuf/gogoproto/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/compare/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/description/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/equal/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/face/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/gostring/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/populate/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/size/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/stringer/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/testgen/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/union/BUILD | 2 -- vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD | 2 -- vendor/github.com/gogo/protobuf/proto/BUILD | 2 -- .../github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD | 2 -- vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD | 2 -- vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD | 2 -- vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD | 2 -- vendor/github.com/gogo/protobuf/sortkeys/BUILD | 2 -- vendor/github.com/gogo/protobuf/vanity/BUILD | 2 -- vendor/github.com/gogo/protobuf/vanity/command/BUILD | 2 -- vendor/github.com/golang/glog/BUILD | 2 -- vendor/github.com/golang/groupcache/lru/BUILD | 2 -- vendor/github.com/golang/mock/gomock/BUILD | 2 -- vendor/github.com/golang/protobuf/jsonpb/BUILD | 2 -- vendor/github.com/golang/protobuf/proto/BUILD | 2 -- vendor/github.com/golang/protobuf/ptypes/BUILD | 2 -- vendor/github.com/golang/protobuf/ptypes/any/BUILD | 2 -- vendor/github.com/golang/protobuf/ptypes/duration/BUILD | 2 -- vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD | 2 -- vendor/github.com/google/btree/BUILD | 2 -- vendor/github.com/google/cadvisor/api/BUILD | 2 -- vendor/github.com/google/cadvisor/cache/memory/BUILD | 2 -- vendor/github.com/google/cadvisor/client/v2/BUILD | 2 -- vendor/github.com/google/cadvisor/collector/BUILD | 2 -- vendor/github.com/google/cadvisor/container/BUILD | 2 -- vendor/github.com/google/cadvisor/container/common/BUILD | 2 -- vendor/github.com/google/cadvisor/container/docker/BUILD | 2 -- vendor/github.com/google/cadvisor/container/libcontainer/BUILD | 2 -- vendor/github.com/google/cadvisor/container/raw/BUILD | 2 -- vendor/github.com/google/cadvisor/container/rkt/BUILD | 2 -- vendor/github.com/google/cadvisor/container/systemd/BUILD | 2 -- vendor/github.com/google/cadvisor/devicemapper/BUILD | 2 -- vendor/github.com/google/cadvisor/events/BUILD | 2 -- vendor/github.com/google/cadvisor/fs/BUILD | 2 -- vendor/github.com/google/cadvisor/healthz/BUILD | 2 -- vendor/github.com/google/cadvisor/http/BUILD | 2 -- vendor/github.com/google/cadvisor/http/mux/BUILD | 2 -- vendor/github.com/google/cadvisor/info/v1/BUILD | 2 -- vendor/github.com/google/cadvisor/info/v2/BUILD | 2 -- vendor/github.com/google/cadvisor/machine/BUILD | 2 -- vendor/github.com/google/cadvisor/manager/BUILD | 2 -- vendor/github.com/google/cadvisor/manager/watcher/BUILD | 2 -- vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD | 2 -- vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD | 2 -- vendor/github.com/google/cadvisor/metrics/BUILD | 2 -- vendor/github.com/google/cadvisor/pages/BUILD | 2 -- vendor/github.com/google/cadvisor/pages/static/BUILD | 2 -- vendor/github.com/google/cadvisor/storage/BUILD | 2 -- vendor/github.com/google/cadvisor/summary/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/cpuload/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/docker/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/oomparser/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/sysfs/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/sysinfo/BUILD | 2 -- vendor/github.com/google/cadvisor/utils/tail/BUILD | 2 -- vendor/github.com/google/cadvisor/validate/BUILD | 2 -- vendor/github.com/google/cadvisor/version/BUILD | 2 -- vendor/github.com/google/cadvisor/zfs/BUILD | 2 -- vendor/github.com/google/certificate-transparency/go/BUILD | 2 -- vendor/github.com/google/certificate-transparency/go/asn1/BUILD | 2 -- .../github.com/google/certificate-transparency/go/client/BUILD | 2 -- vendor/github.com/google/certificate-transparency/go/x509/BUILD | 2 -- .../google/certificate-transparency/go/x509/pkix/BUILD | 2 -- vendor/github.com/google/gofuzz/BUILD | 2 -- vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD | 2 -- vendor/github.com/googleapis/gnostic/compiler/BUILD | 2 -- vendor/github.com/googleapis/gnostic/extensions/BUILD | 2 -- vendor/github.com/gophercloud/gophercloud/BUILD | 2 -- vendor/github.com/gophercloud/gophercloud/openstack/BUILD | 2 -- .../gophercloud/openstack/blockstorage/v1/apiversions/BUILD | 2 -- .../gophercloud/openstack/blockstorage/v1/volumes/BUILD | 2 -- .../gophercloud/openstack/blockstorage/v2/volumes/BUILD | 2 -- .../gophercloud/gophercloud/openstack/common/extensions/BUILD | 2 -- .../openstack/compute/v2/extensions/volumeattach/BUILD | 2 -- .../gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD | 2 -- .../gophercloud/gophercloud/openstack/compute/v2/images/BUILD | 2 -- .../gophercloud/gophercloud/openstack/compute/v2/servers/BUILD | 2 -- .../gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD | 2 -- .../gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD | 2 -- .../gophercloud/openstack/identity/v3/extensions/trusts/BUILD | 2 -- .../gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD | 2 -- .../gophercloud/openstack/networking/v2/extensions/BUILD | 2 -- .../openstack/networking/v2/extensions/layer3/floatingips/BUILD | 2 -- .../openstack/networking/v2/extensions/layer3/routers/BUILD | 2 -- .../openstack/networking/v2/extensions/lbaas/members/BUILD | 2 -- .../openstack/networking/v2/extensions/lbaas/monitors/BUILD | 2 -- .../openstack/networking/v2/extensions/lbaas/pools/BUILD | 2 -- .../openstack/networking/v2/extensions/lbaas/vips/BUILD | 2 -- .../openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD | 2 -- .../networking/v2/extensions/lbaas_v2/loadbalancers/BUILD | 2 -- .../openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD | 2 -- .../openstack/networking/v2/extensions/lbaas_v2/pools/BUILD | 2 -- .../openstack/networking/v2/extensions/security/groups/BUILD | 2 -- .../openstack/networking/v2/extensions/security/rules/BUILD | 2 -- .../gophercloud/gophercloud/openstack/networking/v2/ports/BUILD | 2 -- vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD | 2 -- vendor/github.com/gophercloud/gophercloud/pagination/BUILD | 2 -- vendor/github.com/gorilla/context/BUILD | 2 -- vendor/github.com/gorilla/mux/BUILD | 2 -- vendor/github.com/gorilla/websocket/BUILD | 2 -- vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD | 2 -- vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD | 2 -- .../grpc-ecosystem/grpc-gateway/runtime/internal/BUILD | 2 -- vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD | 2 -- vendor/github.com/hashicorp/golang-lru/BUILD | 2 -- vendor/github.com/hashicorp/golang-lru/simplelru/BUILD | 2 -- vendor/github.com/hashicorp/hcl/BUILD | 2 -- vendor/github.com/hashicorp/hcl/hcl/ast/BUILD | 2 -- vendor/github.com/hashicorp/hcl/hcl/parser/BUILD | 2 -- vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD | 2 -- vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD | 2 -- vendor/github.com/hashicorp/hcl/hcl/token/BUILD | 2 -- vendor/github.com/hashicorp/hcl/json/parser/BUILD | 2 -- vendor/github.com/hashicorp/hcl/json/scanner/BUILD | 2 -- vendor/github.com/hashicorp/hcl/json/token/BUILD | 2 -- vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD | 2 -- vendor/github.com/heketi/heketi/client/api/go-client/BUILD | 2 -- vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD | 2 -- vendor/github.com/heketi/heketi/pkg/utils/BUILD | 2 -- vendor/github.com/howeyc/gopass/BUILD | 2 -- vendor/github.com/imdario/mergo/BUILD | 2 -- vendor/github.com/inconshreveable/mousetrap/BUILD | 2 -- vendor/github.com/influxdata/influxdb/client/BUILD | 2 -- vendor/github.com/influxdata/influxdb/client/v2/BUILD | 2 -- vendor/github.com/influxdata/influxdb/models/BUILD | 2 -- vendor/github.com/influxdata/influxdb/pkg/escape/BUILD | 2 -- vendor/github.com/jmespath/go-jmespath/BUILD | 2 -- vendor/github.com/jonboulle/clockwork/BUILD | 2 -- vendor/github.com/jteeuwen/go-bindata/BUILD | 2 -- vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD | 2 -- vendor/github.com/juju/ratelimit/BUILD | 2 -- vendor/github.com/kardianos/osext/BUILD | 2 -- vendor/github.com/karlseguin/ccache/BUILD | 2 -- vendor/github.com/kr/fs/BUILD | 2 -- vendor/github.com/kr/pty/BUILD | 2 -- vendor/github.com/libopenstorage/openstorage/api/BUILD | 2 -- vendor/github.com/libopenstorage/openstorage/api/client/BUILD | 2 -- .../libopenstorage/openstorage/api/client/volume/BUILD | 2 -- vendor/github.com/libopenstorage/openstorage/api/spec/BUILD | 2 -- vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD | 2 -- vendor/github.com/libopenstorage/openstorage/volume/BUILD | 2 -- vendor/github.com/lpabon/godbc/BUILD | 2 -- vendor/github.com/magiconair/properties/BUILD | 2 -- vendor/github.com/mailru/easyjson/buffer/BUILD | 2 -- vendor/github.com/mailru/easyjson/jlexer/BUILD | 2 -- vendor/github.com/mailru/easyjson/jwriter/BUILD | 2 -- .../matttproud/golang_protobuf_extensions/pbutil/BUILD | 2 -- vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD | 2 -- vendor/github.com/miekg/dns/BUILD | 2 -- vendor/github.com/mistifyio/go-zfs/BUILD | 2 -- vendor/github.com/mitchellh/go-wordwrap/BUILD | 2 -- vendor/github.com/mitchellh/mapstructure/BUILD | 2 -- vendor/github.com/mreiferson/go-httpclient/BUILD | 2 -- vendor/github.com/mvdan/xurls/BUILD | 2 -- vendor/github.com/mxk/go-flowrate/flowrate/BUILD | 2 -- vendor/github.com/onsi/ginkgo/BUILD | 2 -- vendor/github.com/onsi/ginkgo/config/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD | 2 -- vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/containernode/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/failer/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/remote/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/spec/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/suite/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD | 2 -- vendor/github.com/onsi/ginkgo/internal/writer/BUILD | 2 -- vendor/github.com/onsi/ginkgo/reporters/BUILD | 2 -- vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD | 2 -- .../ginkgo/reporters/stenographer/support/go-colorable/BUILD | 2 -- .../onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD | 2 -- vendor/github.com/onsi/ginkgo/types/BUILD | 2 -- vendor/github.com/onsi/gomega/BUILD | 2 -- vendor/github.com/onsi/gomega/format/BUILD | 2 -- vendor/github.com/onsi/gomega/gstruct/BUILD | 2 -- vendor/github.com/onsi/gomega/gstruct/errors/BUILD | 2 -- vendor/github.com/onsi/gomega/internal/assertion/BUILD | 2 -- vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD | 2 -- vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD | 2 -- vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD | 2 -- vendor/github.com/onsi/gomega/matchers/BUILD | 2 -- .../onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD | 2 -- .../github.com/onsi/gomega/matchers/support/goraph/edge/BUILD | 2 -- .../github.com/onsi/gomega/matchers/support/goraph/node/BUILD | 2 -- .../github.com/onsi/gomega/matchers/support/goraph/util/BUILD | 2 -- vendor/github.com/onsi/gomega/types/BUILD | 2 -- vendor/github.com/opencontainers/runc/libcontainer/BUILD | 2 -- .../github.com/opencontainers/runc/libcontainer/apparmor/BUILD | 2 -- .../github.com/opencontainers/runc/libcontainer/cgroups/BUILD | 2 -- .../opencontainers/runc/libcontainer/cgroups/fs/BUILD | 2 -- .../opencontainers/runc/libcontainer/cgroups/systemd/BUILD | 2 -- .../github.com/opencontainers/runc/libcontainer/configs/BUILD | 2 -- .../opencontainers/runc/libcontainer/configs/validate/BUILD | 2 -- .../github.com/opencontainers/runc/libcontainer/criurpc/BUILD | 2 -- vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD | 2 -- vendor/github.com/opencontainers/runc/libcontainer/label/BUILD | 2 -- .../github.com/opencontainers/runc/libcontainer/seccomp/BUILD | 2 -- .../github.com/opencontainers/runc/libcontainer/selinux/BUILD | 2 -- .../opencontainers/runc/libcontainer/stacktrace/BUILD | 2 -- vendor/github.com/opencontainers/runc/libcontainer/system/BUILD | 2 -- vendor/github.com/opencontainers/runc/libcontainer/user/BUILD | 2 -- vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD | 2 -- vendor/github.com/pborman/uuid/BUILD | 2 -- vendor/github.com/pelletier/go-buffruneio/BUILD | 2 -- vendor/github.com/pelletier/go-toml/BUILD | 2 -- vendor/github.com/pkg/errors/BUILD | 2 -- vendor/github.com/pkg/sftp/BUILD | 2 -- vendor/github.com/pmezard/go-difflib/difflib/BUILD | 2 -- vendor/github.com/prometheus/client_golang/prometheus/BUILD | 2 -- .../prometheus/client_golang/prometheus/promhttp/BUILD | 2 -- vendor/github.com/prometheus/client_model/go/BUILD | 2 -- vendor/github.com/prometheus/common/expfmt/BUILD | 2 -- .../prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD | 2 -- vendor/github.com/prometheus/common/model/BUILD | 2 -- vendor/github.com/prometheus/procfs/BUILD | 2 -- vendor/github.com/prometheus/procfs/xfs/BUILD | 2 -- vendor/github.com/quobyte/api/BUILD | 2 -- vendor/github.com/rackspace/gophercloud/BUILD | 2 -- vendor/github.com/rackspace/gophercloud/openstack/BUILD | 2 -- .../gophercloud/openstack/blockstorage/v1/volumes/BUILD | 2 -- .../openstack/compute/v2/extensions/bootfromvolume/BUILD | 2 -- .../openstack/compute/v2/extensions/diskconfig/BUILD | 2 -- .../openstack/compute/v2/extensions/volumeattach/BUILD | 2 -- .../rackspace/gophercloud/openstack/compute/v2/flavors/BUILD | 2 -- .../rackspace/gophercloud/openstack/compute/v2/images/BUILD | 2 -- .../rackspace/gophercloud/openstack/compute/v2/servers/BUILD | 2 -- .../rackspace/gophercloud/openstack/identity/v2/tenants/BUILD | 2 -- .../rackspace/gophercloud/openstack/identity/v2/tokens/BUILD | 2 -- .../rackspace/gophercloud/openstack/identity/v3/tokens/BUILD | 2 -- vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD | 2 -- vendor/github.com/rackspace/gophercloud/pagination/BUILD | 2 -- vendor/github.com/rackspace/gophercloud/rackspace/BUILD | 2 -- .../gophercloud/rackspace/blockstorage/v1/volumes/BUILD | 2 -- .../rackspace/gophercloud/rackspace/compute/v2/servers/BUILD | 2 -- .../gophercloud/rackspace/compute/v2/volumeattach/BUILD | 2 -- .../rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD | 2 -- vendor/github.com/rackspace/gophercloud/testhelper/BUILD | 2 -- vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD | 2 -- vendor/github.com/rancher/go-rancher/client/BUILD | 2 -- vendor/github.com/renstrom/dedent/BUILD | 2 -- vendor/github.com/robfig/cron/BUILD | 2 -- vendor/github.com/rubiojr/go-vhd/vhd/BUILD | 2 -- vendor/github.com/russross/blackfriday/BUILD | 2 -- vendor/github.com/satori/uuid/BUILD | 2 -- vendor/github.com/seccomp/libseccomp-golang/BUILD | 2 -- vendor/github.com/shurcooL/sanitized_anchor_name/BUILD | 2 -- vendor/github.com/spf13/afero/BUILD | 2 -- vendor/github.com/spf13/afero/mem/BUILD | 2 -- vendor/github.com/spf13/afero/sftp/BUILD | 2 -- vendor/github.com/spf13/cast/BUILD | 2 -- vendor/github.com/spf13/cobra/BUILD | 2 -- vendor/github.com/spf13/cobra/doc/BUILD | 2 -- vendor/github.com/spf13/jwalterweatherman/BUILD | 2 -- vendor/github.com/spf13/pflag/BUILD | 2 -- vendor/github.com/spf13/viper/BUILD | 2 -- vendor/github.com/square/go-jose/BUILD | 2 -- vendor/github.com/square/go-jose/cipher/BUILD | 2 -- vendor/github.com/square/go-jose/json/BUILD | 2 -- vendor/github.com/storageos/go-api/BUILD | 2 -- vendor/github.com/storageos/go-api/types/BUILD | 2 -- vendor/github.com/stretchr/objx/BUILD | 2 -- vendor/github.com/stretchr/testify/assert/BUILD | 2 -- vendor/github.com/stretchr/testify/mock/BUILD | 2 -- vendor/github.com/stretchr/testify/require/BUILD | 2 -- vendor/github.com/syndtr/gocapability/capability/BUILD | 2 -- vendor/github.com/ugorji/go/codec/BUILD | 2 -- vendor/github.com/ugorji/go/codec/codecgen/BUILD | 2 -- vendor/github.com/vishvananda/netlink/BUILD | 2 -- vendor/github.com/vishvananda/netlink/nl/BUILD | 2 -- vendor/github.com/vmware/govmomi/BUILD | 2 -- vendor/github.com/vmware/govmomi/find/BUILD | 2 -- vendor/github.com/vmware/govmomi/list/BUILD | 2 -- vendor/github.com/vmware/govmomi/object/BUILD | 2 -- vendor/github.com/vmware/govmomi/pbm/BUILD | 2 -- vendor/github.com/vmware/govmomi/pbm/methods/BUILD | 2 -- vendor/github.com/vmware/govmomi/pbm/types/BUILD | 2 -- vendor/github.com/vmware/govmomi/property/BUILD | 2 -- vendor/github.com/vmware/govmomi/session/BUILD | 2 -- vendor/github.com/vmware/govmomi/task/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/debug/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/methods/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/mo/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/progress/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/soap/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/types/BUILD | 2 -- vendor/github.com/vmware/govmomi/vim25/xml/BUILD | 2 -- vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD | 2 -- vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD | 2 -- .../vmware/photon-controller-go-sdk/photon/lightwave/BUILD | 2 -- vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD | 2 -- vendor/github.com/xiang90/probing/BUILD | 2 -- vendor/github.com/xyproto/simpleredis/BUILD | 2 -- vendor/go.pedge.io/pb/go/google/protobuf/BUILD | 2 -- vendor/go4.org/errorutil/BUILD | 2 -- vendor/golang.org/x/crypto/bcrypt/BUILD | 2 -- vendor/golang.org/x/crypto/blowfish/BUILD | 2 -- vendor/golang.org/x/crypto/curve25519/BUILD | 2 -- vendor/golang.org/x/crypto/ed25519/BUILD | 2 -- vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD | 2 -- vendor/golang.org/x/crypto/nacl/secretbox/BUILD | 2 -- vendor/golang.org/x/crypto/pkcs12/BUILD | 2 -- vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD | 2 -- vendor/golang.org/x/crypto/poly1305/BUILD | 2 -- vendor/golang.org/x/crypto/salsa20/salsa/BUILD | 2 -- vendor/golang.org/x/crypto/ssh/BUILD | 2 -- vendor/golang.org/x/crypto/ssh/terminal/BUILD | 2 -- vendor/golang.org/x/exp/inotify/BUILD | 2 -- vendor/golang.org/x/net/context/BUILD | 2 -- vendor/golang.org/x/net/context/ctxhttp/BUILD | 2 -- vendor/golang.org/x/net/html/BUILD | 2 -- vendor/golang.org/x/net/html/atom/BUILD | 2 -- vendor/golang.org/x/net/http2/BUILD | 2 -- vendor/golang.org/x/net/http2/hpack/BUILD | 2 -- vendor/golang.org/x/net/idna/BUILD | 2 -- vendor/golang.org/x/net/internal/timeseries/BUILD | 2 -- vendor/golang.org/x/net/lex/httplex/BUILD | 2 -- vendor/golang.org/x/net/proxy/BUILD | 2 -- vendor/golang.org/x/net/trace/BUILD | 2 -- vendor/golang.org/x/net/websocket/BUILD | 2 -- vendor/golang.org/x/oauth2/BUILD | 2 -- vendor/golang.org/x/oauth2/google/BUILD | 2 -- vendor/golang.org/x/oauth2/internal/BUILD | 2 -- vendor/golang.org/x/oauth2/jws/BUILD | 2 -- vendor/golang.org/x/oauth2/jwt/BUILD | 2 -- vendor/golang.org/x/sys/unix/BUILD | 2 -- vendor/golang.org/x/sys/windows/BUILD | 2 -- vendor/golang.org/x/text/cases/BUILD | 2 -- vendor/golang.org/x/text/encoding/BUILD | 2 -- vendor/golang.org/x/text/encoding/internal/BUILD | 2 -- vendor/golang.org/x/text/encoding/internal/identifier/BUILD | 2 -- vendor/golang.org/x/text/encoding/unicode/BUILD | 2 -- vendor/golang.org/x/text/internal/tag/BUILD | 2 -- vendor/golang.org/x/text/internal/utf8internal/BUILD | 2 -- vendor/golang.org/x/text/language/BUILD | 2 -- vendor/golang.org/x/text/runes/BUILD | 2 -- vendor/golang.org/x/text/secure/bidirule/BUILD | 2 -- vendor/golang.org/x/text/secure/precis/BUILD | 2 -- vendor/golang.org/x/text/transform/BUILD | 2 -- vendor/golang.org/x/text/unicode/bidi/BUILD | 2 -- vendor/golang.org/x/text/unicode/norm/BUILD | 2 -- vendor/golang.org/x/text/width/BUILD | 2 -- vendor/golang.org/x/time/rate/BUILD | 2 -- vendor/golang.org/x/tools/container/intsets/BUILD | 2 -- vendor/google.golang.org/api/cloudkms/v1/BUILD | 2 -- vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD | 2 -- vendor/google.golang.org/api/compute/v0.alpha/BUILD | 2 -- vendor/google.golang.org/api/compute/v0.beta/BUILD | 2 -- vendor/google.golang.org/api/compute/v1/BUILD | 2 -- vendor/google.golang.org/api/container/v1/BUILD | 2 -- vendor/google.golang.org/api/dns/v1/BUILD | 2 -- vendor/google.golang.org/api/gensupport/BUILD | 2 -- vendor/google.golang.org/api/googleapi/BUILD | 2 -- .../google.golang.org/api/googleapi/internal/uritemplates/BUILD | 2 -- vendor/google.golang.org/api/logging/v2beta1/BUILD | 2 -- vendor/google.golang.org/api/monitoring/v3/BUILD | 2 -- vendor/google.golang.org/api/pubsub/v1/BUILD | 2 -- vendor/google.golang.org/grpc/BUILD | 2 -- vendor/google.golang.org/grpc/codes/BUILD | 2 -- vendor/google.golang.org/grpc/credentials/BUILD | 2 -- vendor/google.golang.org/grpc/grpclog/BUILD | 2 -- vendor/google.golang.org/grpc/internal/BUILD | 2 -- vendor/google.golang.org/grpc/metadata/BUILD | 2 -- vendor/google.golang.org/grpc/naming/BUILD | 2 -- vendor/google.golang.org/grpc/peer/BUILD | 2 -- vendor/google.golang.org/grpc/transport/BUILD | 2 -- vendor/gopkg.in/gcfg.v1/BUILD | 2 -- vendor/gopkg.in/gcfg.v1/scanner/BUILD | 2 -- vendor/gopkg.in/gcfg.v1/token/BUILD | 2 -- vendor/gopkg.in/gcfg.v1/types/BUILD | 2 -- vendor/gopkg.in/inf.v0/BUILD | 2 -- vendor/gopkg.in/natefinch/lumberjack.v2/BUILD | 2 -- vendor/gopkg.in/warnings.v0/BUILD | 2 -- vendor/gopkg.in/yaml.v2/BUILD | 2 -- vendor/k8s.io/gengo/args/BUILD | 2 -- vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD | 2 -- vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD | 2 -- vendor/k8s.io/gengo/examples/import-boss/generators/BUILD | 2 -- vendor/k8s.io/gengo/examples/set-gen/generators/BUILD | 2 -- vendor/k8s.io/gengo/examples/set-gen/sets/BUILD | 2 -- vendor/k8s.io/gengo/generator/BUILD | 2 -- vendor/k8s.io/gengo/namer/BUILD | 2 -- vendor/k8s.io/gengo/parser/BUILD | 2 -- vendor/k8s.io/gengo/types/BUILD | 2 -- vendor/k8s.io/heapster/metrics/api/v1/types/BUILD | 2 -- vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD | 2 -- vendor/k8s.io/kube-openapi/pkg/builder/BUILD | 2 -- vendor/k8s.io/kube-openapi/pkg/common/BUILD | 2 -- vendor/k8s.io/kube-openapi/pkg/generators/BUILD | 2 -- vendor/k8s.io/kube-openapi/pkg/handler/BUILD | 2 -- vendor/k8s.io/kube-openapi/pkg/util/BUILD | 2 -- vendor/k8s.io/utils/exec/BUILD | 2 -- vendor/k8s.io/utils/exec/testing/BUILD | 2 -- vendor/vbom.ml/util/sortorder/BUILD | 2 -- 2172 files changed, 4344 deletions(-) diff --git a/api/BUILD b/api/BUILD index 6eef3bf055a..fe152d74d80 100644 --- a/api/BUILD +++ b/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/build/root/BUILD.root b/build/root/BUILD.root index 58e2dadd952..56627f257dd 100644 --- a/build/root/BUILD.root +++ b/build/root/BUILD.root @@ -5,8 +5,6 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load("@io_bazel_rules_go//go:def.bzl", "go_prefix") load("@io_kubernetes_build//defs:build.bzl", "gcs_upload") diff --git a/cluster/BUILD b/cluster/BUILD index ab35ed4b032..f438392f5be 100644 --- a/cluster/BUILD +++ b/cluster/BUILD @@ -2,8 +2,6 @@ package(default_visibility = ["//visibility:public"]) load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar") -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/cluster/addons/fluentd-elasticsearch/es-image/BUILD b/cluster/addons/fluentd-elasticsearch/es-image/BUILD index 792c3f69a7d..12604875528 100644 --- a/cluster/addons/fluentd-elasticsearch/es-image/BUILD +++ b/cluster/addons/fluentd-elasticsearch/es-image/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cluster/gce/gci/mounter/BUILD b/cluster/gce/gci/mounter/BUILD index 4b2394535c7..763105b2a0e 100644 --- a/cluster/gce/gci/mounter/BUILD +++ b/cluster/gce/gci/mounter/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cluster/images/etcd-version-monitor/BUILD b/cluster/images/etcd-version-monitor/BUILD index 0abbec72a90..2904728a199 100644 --- a/cluster/images/etcd-version-monitor/BUILD +++ b/cluster/images/etcd-version-monitor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cluster/images/etcd/attachlease/BUILD b/cluster/images/etcd/attachlease/BUILD index 887a39631c9..32770e3d81e 100644 --- a/cluster/images/etcd/attachlease/BUILD +++ b/cluster/images/etcd/attachlease/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cluster/images/etcd/rollback/BUILD b/cluster/images/etcd/rollback/BUILD index e1468bbb6d3..9f895ea49d3 100644 --- a/cluster/images/etcd/rollback/BUILD +++ b/cluster/images/etcd/rollback/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/BUILD b/cmd/BUILD index a715d22ca77..ec7ef8d0bea 100644 --- a/cmd/BUILD +++ b/cmd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/cmd/clicheck/BUILD b/cmd/clicheck/BUILD index e17da096950..d68cb74e263 100644 --- a/cmd/clicheck/BUILD +++ b/cmd/clicheck/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/cloud-controller-manager/BUILD b/cmd/cloud-controller-manager/BUILD index 5596f28d940..5d5bfb99a31 100644 --- a/cmd/cloud-controller-manager/BUILD +++ b/cmd/cloud-controller-manager/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/cloud-controller-manager/app/BUILD b/cmd/cloud-controller-manager/app/BUILD index 574ec9fac73..fe0dc12eddf 100644 --- a/cmd/cloud-controller-manager/app/BUILD +++ b/cmd/cloud-controller-manager/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/cloud-controller-manager/app/options/BUILD b/cmd/cloud-controller-manager/app/options/BUILD index fc01320e15a..759babd29e0 100644 --- a/cmd/cloud-controller-manager/app/options/BUILD +++ b/cmd/cloud-controller-manager/app/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/gendocs/BUILD b/cmd/gendocs/BUILD index 8f3ee96b68c..009266dcd40 100644 --- a/cmd/gendocs/BUILD +++ b/cmd/gendocs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/genkubedocs/BUILD b/cmd/genkubedocs/BUILD index 2b5b4eebbda..05df97558ce 100644 --- a/cmd/genkubedocs/BUILD +++ b/cmd/genkubedocs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/genman/BUILD b/cmd/genman/BUILD index a12a59bb91c..95bf96d78b7 100644 --- a/cmd/genman/BUILD +++ b/cmd/genman/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/genslateyaml/BUILD b/cmd/genslateyaml/BUILD index 7363689a362..8a840dcafcb 100644 --- a/cmd/genslateyaml/BUILD +++ b/cmd/genslateyaml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/genswaggertypedocs/BUILD b/cmd/genswaggertypedocs/BUILD index 7222739c4a4..946519a4d29 100644 --- a/cmd/genswaggertypedocs/BUILD +++ b/cmd/genswaggertypedocs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/genutils/BUILD b/cmd/genutils/BUILD index 3fc6794d0c7..eb7a2a17f99 100644 --- a/cmd/genutils/BUILD +++ b/cmd/genutils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/genyaml/BUILD b/cmd/genyaml/BUILD index 9cb64c80ba2..093a743f963 100644 --- a/cmd/genyaml/BUILD +++ b/cmd/genyaml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/gke-certificates-controller/BUILD b/cmd/gke-certificates-controller/BUILD index 426fadf4515..760df37eecf 100644 --- a/cmd/gke-certificates-controller/BUILD +++ b/cmd/gke-certificates-controller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/gke-certificates-controller/app/BUILD b/cmd/gke-certificates-controller/app/BUILD index 2bc43137776..6bbb27d25da 100644 --- a/cmd/gke-certificates-controller/app/BUILD +++ b/cmd/gke-certificates-controller/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/hyperkube/BUILD b/cmd/hyperkube/BUILD index 6ac532c8d75..09030869bef 100644 --- a/cmd/hyperkube/BUILD +++ b/cmd/hyperkube/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/importverifier/BUILD b/cmd/importverifier/BUILD index 7c342c872b0..fe686e68839 100644 --- a/cmd/importverifier/BUILD +++ b/cmd/importverifier/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/kube-apiserver/BUILD b/cmd/kube-apiserver/BUILD index 3c4d1fe1f51..6a942cadc92 100644 --- a/cmd/kube-apiserver/BUILD +++ b/cmd/kube-apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/kube-apiserver/app/BUILD b/cmd/kube-apiserver/app/BUILD index d91a1662321..6c66431bb09 100644 --- a/cmd/kube-apiserver/app/BUILD +++ b/cmd/kube-apiserver/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kube-apiserver/app/options/BUILD b/cmd/kube-apiserver/app/options/BUILD index 18bd284c340..6e5b3d19963 100644 --- a/cmd/kube-apiserver/app/options/BUILD +++ b/cmd/kube-apiserver/app/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kube-apiserver/app/testing/BUILD b/cmd/kube-apiserver/app/testing/BUILD index 9a8839da2d2..7e4e275b7b5 100644 --- a/cmd/kube-apiserver/app/testing/BUILD +++ b/cmd/kube-apiserver/app/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kube-controller-manager/BUILD b/cmd/kube-controller-manager/BUILD index 5c63770dac0..36c2af786ce 100644 --- a/cmd/kube-controller-manager/BUILD +++ b/cmd/kube-controller-manager/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/kube-controller-manager/app/BUILD b/cmd/kube-controller-manager/app/BUILD index aba82700296..1f11c248de8 100644 --- a/cmd/kube-controller-manager/app/BUILD +++ b/cmd/kube-controller-manager/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kube-controller-manager/app/options/BUILD b/cmd/kube-controller-manager/app/options/BUILD index 455b2ade080..6bbaaeb27e6 100644 --- a/cmd/kube-controller-manager/app/options/BUILD +++ b/cmd/kube-controller-manager/app/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kube-proxy/BUILD b/cmd/kube-proxy/BUILD index c9c002a168c..cb5875ad532 100644 --- a/cmd/kube-proxy/BUILD +++ b/cmd/kube-proxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/kube-proxy/app/BUILD b/cmd/kube-proxy/app/BUILD index a37ce339ca3..e9bed5d7e89 100644 --- a/cmd/kube-proxy/app/BUILD +++ b/cmd/kube-proxy/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/BUILD b/cmd/kubeadm/BUILD index c85760d96b0..348384e8213 100644 --- a/cmd/kubeadm/BUILD +++ b/cmd/kubeadm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/kubeadm/app/BUILD b/cmd/kubeadm/app/BUILD index 67edd6fb656..fb884978fa8 100644 --- a/cmd/kubeadm/app/BUILD +++ b/cmd/kubeadm/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/BUILD b/cmd/kubeadm/app/apis/kubeadm/BUILD index d1a45872b50..869f57a992b 100644 --- a/cmd/kubeadm/app/apis/kubeadm/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD b/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD index c5994be8c13..03623499de0 100644 --- a/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/install/BUILD b/cmd/kubeadm/app/apis/kubeadm/install/BUILD index 31808b82a70..1f125259886 100644 --- a/cmd/kubeadm/app/apis/kubeadm/install/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD index 025006cb7c8..3feef312b9d 100644 --- a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/apis/kubeadm/validation/BUILD b/cmd/kubeadm/app/apis/kubeadm/validation/BUILD index ff6e26732e7..c7412cc8938 100644 --- a/cmd/kubeadm/app/apis/kubeadm/validation/BUILD +++ b/cmd/kubeadm/app/apis/kubeadm/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index 457afea5144..c28fe2504e2 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/cmd/features/BUILD b/cmd/kubeadm/app/cmd/features/BUILD index 9d69b27fab2..2341efdef2d 100644 --- a/cmd/kubeadm/app/cmd/features/BUILD +++ b/cmd/kubeadm/app/cmd/features/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/cmd/phases/BUILD b/cmd/kubeadm/app/cmd/phases/BUILD index 0ce123ecab2..dba06067655 100644 --- a/cmd/kubeadm/app/cmd/phases/BUILD +++ b/cmd/kubeadm/app/cmd/phases/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/constants/BUILD b/cmd/kubeadm/app/constants/BUILD index 14125c090d8..1e7597d46fa 100644 --- a/cmd/kubeadm/app/constants/BUILD +++ b/cmd/kubeadm/app/constants/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/discovery/BUILD b/cmd/kubeadm/app/discovery/BUILD index c417eaaadd6..8b5319e3512 100644 --- a/cmd/kubeadm/app/discovery/BUILD +++ b/cmd/kubeadm/app/discovery/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/discovery/file/BUILD b/cmd/kubeadm/app/discovery/file/BUILD index 682ba3c01b8..693a8c6ecf2 100644 --- a/cmd/kubeadm/app/discovery/file/BUILD +++ b/cmd/kubeadm/app/discovery/file/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/discovery/https/BUILD b/cmd/kubeadm/app/discovery/https/BUILD index 1ec08fcc853..3e30f0106a9 100644 --- a/cmd/kubeadm/app/discovery/https/BUILD +++ b/cmd/kubeadm/app/discovery/https/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/discovery/token/BUILD b/cmd/kubeadm/app/discovery/token/BUILD index c92fd2662c2..0d58c189f3b 100644 --- a/cmd/kubeadm/app/discovery/token/BUILD +++ b/cmd/kubeadm/app/discovery/token/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/images/BUILD b/cmd/kubeadm/app/images/BUILD index 564f034618a..fbc474715da 100644 --- a/cmd/kubeadm/app/images/BUILD +++ b/cmd/kubeadm/app/images/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/node/BUILD b/cmd/kubeadm/app/node/BUILD index a0c3c60cb43..b06613c6bd4 100644 --- a/cmd/kubeadm/app/node/BUILD +++ b/cmd/kubeadm/app/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/addons/BUILD b/cmd/kubeadm/app/phases/addons/BUILD index dc25bc0b20a..cfef337d446 100644 --- a/cmd/kubeadm/app/phases/addons/BUILD +++ b/cmd/kubeadm/app/phases/addons/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/apiconfig/BUILD b/cmd/kubeadm/app/phases/apiconfig/BUILD index 8a826e95458..bbd5dfa0f39 100644 --- a/cmd/kubeadm/app/phases/apiconfig/BUILD +++ b/cmd/kubeadm/app/phases/apiconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD index bcf903ea693..6377b70aed5 100644 --- a/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD +++ b/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD b/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD index 575d699ab65..5a999c0fe39 100644 --- a/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD +++ b/cmd/kubeadm/app/phases/bootstraptoken/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/certs/BUILD b/cmd/kubeadm/app/phases/certs/BUILD index 1816183d005..f144a02481a 100644 --- a/cmd/kubeadm/app/phases/certs/BUILD +++ b/cmd/kubeadm/app/phases/certs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/certs/pkiutil/BUILD b/cmd/kubeadm/app/phases/certs/pkiutil/BUILD index 8e5a5cef099..38ec399197f 100644 --- a/cmd/kubeadm/app/phases/certs/pkiutil/BUILD +++ b/cmd/kubeadm/app/phases/certs/pkiutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/controlplane/BUILD b/cmd/kubeadm/app/phases/controlplane/BUILD index e96cf3a00c3..72d10123b5f 100644 --- a/cmd/kubeadm/app/phases/controlplane/BUILD +++ b/cmd/kubeadm/app/phases/controlplane/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/kubeconfig/BUILD b/cmd/kubeadm/app/phases/kubeconfig/BUILD index f1fcf64fe7b..2ead488e93e 100644 --- a/cmd/kubeadm/app/phases/kubeconfig/BUILD +++ b/cmd/kubeadm/app/phases/kubeconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/markmaster/BUILD b/cmd/kubeadm/app/phases/markmaster/BUILD index 1adf8a539a2..b1d36930507 100644 --- a/cmd/kubeadm/app/phases/markmaster/BUILD +++ b/cmd/kubeadm/app/phases/markmaster/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/selfhosting/BUILD b/cmd/kubeadm/app/phases/selfhosting/BUILD index 8f435b839a1..3818bfbcb12 100644 --- a/cmd/kubeadm/app/phases/selfhosting/BUILD +++ b/cmd/kubeadm/app/phases/selfhosting/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/phases/token/BUILD b/cmd/kubeadm/app/phases/token/BUILD index 6cc62052baf..7e76248ad95 100644 --- a/cmd/kubeadm/app/phases/token/BUILD +++ b/cmd/kubeadm/app/phases/token/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/cmd/kubeadm/app/phases/uploadconfig/BUILD b/cmd/kubeadm/app/phases/uploadconfig/BUILD index fd78bf03f2c..d6803872e9e 100644 --- a/cmd/kubeadm/app/phases/uploadconfig/BUILD +++ b/cmd/kubeadm/app/phases/uploadconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/preflight/BUILD b/cmd/kubeadm/app/preflight/BUILD index 111776763e4..28212bc28e4 100644 --- a/cmd/kubeadm/app/preflight/BUILD +++ b/cmd/kubeadm/app/preflight/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/util/BUILD b/cmd/kubeadm/app/util/BUILD index f9f69d326de..8c6cb6b799e 100644 --- a/cmd/kubeadm/app/util/BUILD +++ b/cmd/kubeadm/app/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/util/apiclient/BUILD b/cmd/kubeadm/app/util/apiclient/BUILD index 6c40968cc9a..ef48337e99b 100644 --- a/cmd/kubeadm/app/util/apiclient/BUILD +++ b/cmd/kubeadm/app/util/apiclient/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/util/config/BUILD b/cmd/kubeadm/app/util/config/BUILD index 952a6b26728..bd2179ec3f4 100644 --- a/cmd/kubeadm/app/util/config/BUILD +++ b/cmd/kubeadm/app/util/config/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/util/kubeconfig/BUILD b/cmd/kubeadm/app/util/kubeconfig/BUILD index d8089a84595..3e81111cfe6 100644 --- a/cmd/kubeadm/app/util/kubeconfig/BUILD +++ b/cmd/kubeadm/app/util/kubeconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/util/pubkeypin/BUILD b/cmd/kubeadm/app/util/pubkeypin/BUILD index f508a292524..1fc60fd8e5d 100644 --- a/cmd/kubeadm/app/util/pubkeypin/BUILD +++ b/cmd/kubeadm/app/util/pubkeypin/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/app/util/token/BUILD b/cmd/kubeadm/app/util/token/BUILD index 5db4d948541..5b6ef3456f5 100644 --- a/cmd/kubeadm/app/util/token/BUILD +++ b/cmd/kubeadm/app/util/token/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/test/BUILD b/cmd/kubeadm/test/BUILD index 7c5dba97c17..447d5c9bfe0 100644 --- a/cmd/kubeadm/test/BUILD +++ b/cmd/kubeadm/test/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/test/certs/BUILD b/cmd/kubeadm/test/certs/BUILD index 96dab6b4b97..202238fcbf4 100644 --- a/cmd/kubeadm/test/certs/BUILD +++ b/cmd/kubeadm/test/certs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/test/cmd/BUILD b/cmd/kubeadm/test/cmd/BUILD index a459fe06bef..84523565942 100644 --- a/cmd/kubeadm/test/cmd/BUILD +++ b/cmd/kubeadm/test/cmd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubeadm/test/kubeconfig/BUILD b/cmd/kubeadm/test/kubeconfig/BUILD index 818e8ac8f7a..35f088c3654 100644 --- a/cmd/kubeadm/test/kubeconfig/BUILD +++ b/cmd/kubeadm/test/kubeconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubectl/BUILD b/cmd/kubectl/BUILD index fab72d10c07..da36e7fcb0f 100644 --- a/cmd/kubectl/BUILD +++ b/cmd/kubectl/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/kubectl/app/BUILD b/cmd/kubectl/app/BUILD index bd1f6383207..822888d0373 100644 --- a/cmd/kubectl/app/BUILD +++ b/cmd/kubectl/app/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubelet/BUILD b/cmd/kubelet/BUILD index 64658acee96..c3b673cace8 100644 --- a/cmd/kubelet/BUILD +++ b/cmd/kubelet/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index 4fd691e9dc5..2dd32666b89 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubelet/app/options/BUILD b/cmd/kubelet/app/options/BUILD index b3c8b77b22c..11c4da90b0a 100644 --- a/cmd/kubelet/app/options/BUILD +++ b/cmd/kubelet/app/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/cmd/kubemark/BUILD b/cmd/kubemark/BUILD index 57815c1c6c3..be8c611911e 100644 --- a/cmd/kubemark/BUILD +++ b/cmd/kubemark/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/linkcheck/BUILD b/cmd/linkcheck/BUILD index c19e517cfe9..05c134af03c 100644 --- a/cmd/linkcheck/BUILD +++ b/cmd/linkcheck/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/cmd/mungedocs/BUILD b/cmd/mungedocs/BUILD index 923b84bbe39..1cc809f4159 100644 --- a/cmd/mungedocs/BUILD +++ b/cmd/mungedocs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/docs/BUILD b/docs/BUILD index c05bcaa5563..df3da658611 100644 --- a/docs/BUILD +++ b/docs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "srcs", srcs = glob(["**/*"]), diff --git a/examples/BUILD b/examples/BUILD index 58acaec7941..0f28a3505d5 100644 --- a/examples/BUILD +++ b/examples/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/examples/explorer/BUILD b/examples/explorer/BUILD index 111ca0ffc19..b41545907ab 100644 --- a/examples/explorer/BUILD +++ b/examples/explorer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/examples/guestbook-go/BUILD b/examples/guestbook-go/BUILD index f7485bafce9..57c14be5b4e 100644 --- a/examples/guestbook-go/BUILD +++ b/examples/guestbook-go/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/examples/https-nginx/BUILD b/examples/https-nginx/BUILD index 8bc5d63626f..c90e914c53b 100644 --- a/examples/https-nginx/BUILD +++ b/examples/https-nginx/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/examples/sharing-clusters/BUILD b/examples/sharing-clusters/BUILD index e378d3af54c..9ad1b2d305b 100644 --- a/examples/sharing-clusters/BUILD +++ b/examples/sharing-clusters/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/federation/BUILD b/federation/BUILD index 329a757f39e..74eff0ad0b2 100644 --- a/federation/BUILD +++ b/federation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load("@io_bazel//tools/build_defs/pkg:pkg.bzl", "pkg_tar") filegroup( diff --git a/federation/apis/core/BUILD b/federation/apis/core/BUILD index 95899155b40..61f05058408 100644 --- a/federation/apis/core/BUILD +++ b/federation/apis/core/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/apis/core/install/BUILD b/federation/apis/core/install/BUILD index 9091d0f855b..f85439351a3 100644 --- a/federation/apis/core/install/BUILD +++ b/federation/apis/core/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/apis/core/v1/BUILD b/federation/apis/core/v1/BUILD index 2befb90d81f..b17cfd854f8 100644 --- a/federation/apis/core/v1/BUILD +++ b/federation/apis/core/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/apis/federation/BUILD b/federation/apis/federation/BUILD index 4ec3384d03f..0afb2d90b77 100644 --- a/federation/apis/federation/BUILD +++ b/federation/apis/federation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/apis/federation/install/BUILD b/federation/apis/federation/install/BUILD index d92235c3273..c00f6011194 100644 --- a/federation/apis/federation/install/BUILD +++ b/federation/apis/federation/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/apis/federation/v1beta1/BUILD b/federation/apis/federation/v1beta1/BUILD index 98e64fc6240..9db2ea32cf7 100644 --- a/federation/apis/federation/v1beta1/BUILD +++ b/federation/apis/federation/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/apis/federation/validation/BUILD b/federation/apis/federation/validation/BUILD index f56118d9b01..58ba2b9ff0f 100644 --- a/federation/apis/federation/validation/BUILD +++ b/federation/apis/federation/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/cache/BUILD b/federation/client/cache/BUILD index 94e500d1f1c..6f8fce803af 100644 --- a/federation/client/cache/BUILD +++ b/federation/client/cache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/BUILD b/federation/client/clientset_generated/federation_clientset/BUILD index ef8d23bf586..751c58a7618 100644 --- a/federation/client/clientset_generated/federation_clientset/BUILD +++ b/federation/client/clientset_generated/federation_clientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/fake/BUILD b/federation/client/clientset_generated/federation_clientset/fake/BUILD index 59d1346b277..8f772613130 100644 --- a/federation/client/clientset_generated/federation_clientset/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/scheme/BUILD b/federation/client/clientset_generated/federation_clientset/scheme/BUILD index 4738763d3bc..dd6f3c565f5 100644 --- a/federation/client/clientset_generated/federation_clientset/scheme/BUILD +++ b/federation/client/clientset_generated/federation_clientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD index c80abe9f954..35da55d20af 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD index d092a12a89d..2a6400d7f43 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/autoscaling/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD index f4d37848a66..d878e764d72 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD index 0c499de18d2..b81962b8c8e 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/batch/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD index 742081800e0..078c54b2784 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/core/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD index ece4ada55f1..9c4eb404c0a 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/core/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD index 66e02ec5c38..b2a7fd93db4 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD index e15f769a71b..255ed3e15f1 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/extensions/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD index 53614261ba6..b8e9c1b2134 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD index 4134295d5cc..650fae697f2 100644 --- a/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD +++ b/federation/client/clientset_generated/federation_clientset/typed/federation/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/cluster/BUILD b/federation/cluster/BUILD index 6cc62052baf..7e76248ad95 100644 --- a/federation/cluster/BUILD +++ b/federation/cluster/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/federation/cmd/federation-apiserver/BUILD b/federation/cmd/federation-apiserver/BUILD index ba14b5146af..fe32ed5be1b 100644 --- a/federation/cmd/federation-apiserver/BUILD +++ b/federation/cmd/federation-apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/federation/cmd/federation-apiserver/app/BUILD b/federation/cmd/federation-apiserver/app/BUILD index 3ebc8c11f8b..1b7fd40efb3 100644 --- a/federation/cmd/federation-apiserver/app/BUILD +++ b/federation/cmd/federation-apiserver/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/cmd/federation-apiserver/app/options/BUILD b/federation/cmd/federation-apiserver/app/options/BUILD index 0d7122a1950..088621c2b1a 100644 --- a/federation/cmd/federation-apiserver/app/options/BUILD +++ b/federation/cmd/federation-apiserver/app/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/cmd/federation-controller-manager/BUILD b/federation/cmd/federation-controller-manager/BUILD index 6f6522cb574..04d0e76fed6 100644 --- a/federation/cmd/federation-controller-manager/BUILD +++ b/federation/cmd/federation-controller-manager/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/federation/cmd/federation-controller-manager/app/BUILD b/federation/cmd/federation-controller-manager/app/BUILD index c272da21d8b..4c63fce1e31 100644 --- a/federation/cmd/federation-controller-manager/app/BUILD +++ b/federation/cmd/federation-controller-manager/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/cmd/federation-controller-manager/app/options/BUILD b/federation/cmd/federation-controller-manager/app/options/BUILD index 640216df74a..1fc5b3814dc 100644 --- a/federation/cmd/federation-controller-manager/app/options/BUILD +++ b/federation/cmd/federation-controller-manager/app/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/cmd/genfeddocs/BUILD b/federation/cmd/genfeddocs/BUILD index 91c68bb38bf..efc2073e074 100644 --- a/federation/cmd/genfeddocs/BUILD +++ b/federation/cmd/genfeddocs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/federation/cmd/kubefed/BUILD b/federation/cmd/kubefed/BUILD index 99f0116e6ca..be574b24e22 100644 --- a/federation/cmd/kubefed/BUILD +++ b/federation/cmd/kubefed/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/federation/cmd/kubefed/app/BUILD b/federation/cmd/kubefed/app/BUILD index 7080ad44194..eb4b8dd0deb 100644 --- a/federation/cmd/kubefed/app/BUILD +++ b/federation/cmd/kubefed/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/develop/BUILD b/federation/develop/BUILD index 6cc62052baf..7e76248ad95 100644 --- a/federation/develop/BUILD +++ b/federation/develop/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/federation/pkg/dnsprovider/BUILD b/federation/pkg/dnsprovider/BUILD index 6d42a7026c0..9b9be4d00be 100644 --- a/federation/pkg/dnsprovider/BUILD +++ b/federation/pkg/dnsprovider/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/aws/route53/BUILD b/federation/pkg/dnsprovider/providers/aws/route53/BUILD index 71469271dc9..461cb074e2c 100644 --- a/federation/pkg/dnsprovider/providers/aws/route53/BUILD +++ b/federation/pkg/dnsprovider/providers/aws/route53/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD b/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD index 9db033da69d..48e5c5a1fbe 100644 --- a/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD +++ b/federation/pkg/dnsprovider/providers/aws/route53/stubs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/coredns/BUILD b/federation/pkg/dnsprovider/providers/coredns/BUILD index e6843cca5a6..3cf192b88ba 100644 --- a/federation/pkg/dnsprovider/providers/coredns/BUILD +++ b/federation/pkg/dnsprovider/providers/coredns/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD b/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD index 409cab0305e..b976724225b 100644 --- a/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD +++ b/federation/pkg/dnsprovider/providers/coredns/stubs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/BUILD index 339bd15cfc4..8c889aeac20 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD index 116bdfdf787..0ca459dff70 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD index 6e13bf867b8..08c1f124953 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/internal/interfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD b/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD index a6045adf0fb..774b1f439d2 100644 --- a/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD +++ b/federation/pkg/dnsprovider/providers/google/clouddns/internal/stubs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/rrstype/BUILD b/federation/pkg/dnsprovider/rrstype/BUILD index dc3e3b9735a..7e5e5b26958 100644 --- a/federation/pkg/dnsprovider/rrstype/BUILD +++ b/federation/pkg/dnsprovider/rrstype/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/dnsprovider/tests/BUILD b/federation/pkg/dnsprovider/tests/BUILD index 25d5ff64c32..5161161160b 100644 --- a/federation/pkg/dnsprovider/tests/BUILD +++ b/federation/pkg/dnsprovider/tests/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federatedtypes/BUILD b/federation/pkg/federatedtypes/BUILD index 6068dd36f28..e290b49d393 100644 --- a/federation/pkg/federatedtypes/BUILD +++ b/federation/pkg/federatedtypes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federatedtypes/crudtester/BUILD b/federation/pkg/federatedtypes/crudtester/BUILD index ae9237eb049..cdb5f6f3e95 100644 --- a/federation/pkg/federatedtypes/crudtester/BUILD +++ b/federation/pkg/federatedtypes/crudtester/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/BUILD b/federation/pkg/federation-controller/BUILD index 6c95eae5c17..1c543143ad8 100644 --- a/federation/pkg/federation-controller/BUILD +++ b/federation/pkg/federation-controller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/cluster/BUILD b/federation/pkg/federation-controller/cluster/BUILD index 58cdb8a84c2..c31d1cf63d3 100644 --- a/federation/pkg/federation-controller/cluster/BUILD +++ b/federation/pkg/federation-controller/cluster/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/ingress/BUILD b/federation/pkg/federation-controller/ingress/BUILD index c47796e50e7..445871b3a6e 100644 --- a/federation/pkg/federation-controller/ingress/BUILD +++ b/federation/pkg/federation-controller/ingress/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/job/BUILD b/federation/pkg/federation-controller/job/BUILD index cbd4988ed27..f999e5b1f9d 100644 --- a/federation/pkg/federation-controller/job/BUILD +++ b/federation/pkg/federation-controller/job/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/service/BUILD b/federation/pkg/federation-controller/service/BUILD index 1eb79a464fd..22cad994853 100644 --- a/federation/pkg/federation-controller/service/BUILD +++ b/federation/pkg/federation-controller/service/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/service/dns/BUILD b/federation/pkg/federation-controller/service/dns/BUILD index a8d4791eeba..454ffaff247 100644 --- a/federation/pkg/federation-controller/service/dns/BUILD +++ b/federation/pkg/federation-controller/service/dns/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/service/ingress/BUILD b/federation/pkg/federation-controller/service/ingress/BUILD index b7dce37540f..eff405b86fb 100644 --- a/federation/pkg/federation-controller/service/ingress/BUILD +++ b/federation/pkg/federation-controller/service/ingress/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/sync/BUILD b/federation/pkg/federation-controller/sync/BUILD index abde2aa6c3b..79ed02a4aea 100644 --- a/federation/pkg/federation-controller/sync/BUILD +++ b/federation/pkg/federation-controller/sync/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/BUILD b/federation/pkg/federation-controller/util/BUILD index cfbf58024ee..cadca3e593c 100644 --- a/federation/pkg/federation-controller/util/BUILD +++ b/federation/pkg/federation-controller/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/clusterselector/BUILD b/federation/pkg/federation-controller/util/clusterselector/BUILD index 4f87e01cef6..d7e1631260f 100644 --- a/federation/pkg/federation-controller/util/clusterselector/BUILD +++ b/federation/pkg/federation-controller/util/clusterselector/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/deletionhelper/BUILD b/federation/pkg/federation-controller/util/deletionhelper/BUILD index 1f88e2da79f..b6d98d3986e 100644 --- a/federation/pkg/federation-controller/util/deletionhelper/BUILD +++ b/federation/pkg/federation-controller/util/deletionhelper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/eventsink/BUILD b/federation/pkg/federation-controller/util/eventsink/BUILD index 102fc5bfc7b..0b3b98abb7c 100644 --- a/federation/pkg/federation-controller/util/eventsink/BUILD +++ b/federation/pkg/federation-controller/util/eventsink/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/finalizers/BUILD b/federation/pkg/federation-controller/util/finalizers/BUILD index 1a4a8859b84..b014094ba97 100644 --- a/federation/pkg/federation-controller/util/finalizers/BUILD +++ b/federation/pkg/federation-controller/util/finalizers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/planner/BUILD b/federation/pkg/federation-controller/util/planner/BUILD index eca972160b2..e29e57b7031 100644 --- a/federation/pkg/federation-controller/util/planner/BUILD +++ b/federation/pkg/federation-controller/util/planner/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/podanalyzer/BUILD b/federation/pkg/federation-controller/util/podanalyzer/BUILD index 365b671a8b4..b23e00a8e32 100644 --- a/federation/pkg/federation-controller/util/podanalyzer/BUILD +++ b/federation/pkg/federation-controller/util/podanalyzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/replicapreferences/BUILD b/federation/pkg/federation-controller/util/replicapreferences/BUILD index bda5cf93d56..8f6b0f28046 100644 --- a/federation/pkg/federation-controller/util/replicapreferences/BUILD +++ b/federation/pkg/federation-controller/util/replicapreferences/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/federation-controller/util/test/BUILD b/federation/pkg/federation-controller/util/test/BUILD index 2efa963408c..c5e094da8a5 100644 --- a/federation/pkg/federation-controller/util/test/BUILD +++ b/federation/pkg/federation-controller/util/test/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/kubefed/BUILD b/federation/pkg/kubefed/BUILD index baebf44514a..5d77c81f772 100644 --- a/federation/pkg/kubefed/BUILD +++ b/federation/pkg/kubefed/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/kubefed/init/BUILD b/federation/pkg/kubefed/init/BUILD index 31b22ca48e1..39742ac0669 100644 --- a/federation/pkg/kubefed/init/BUILD +++ b/federation/pkg/kubefed/init/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/kubefed/testing/BUILD b/federation/pkg/kubefed/testing/BUILD index fd253064b40..cc3184e1b9b 100644 --- a/federation/pkg/kubefed/testing/BUILD +++ b/federation/pkg/kubefed/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/pkg/kubefed/util/BUILD b/federation/pkg/kubefed/util/BUILD index 2ace2676451..bfbd5aacb07 100644 --- a/federation/pkg/kubefed/util/BUILD +++ b/federation/pkg/kubefed/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/plugin/pkg/admission/schedulingpolicy/BUILD b/federation/plugin/pkg/admission/schedulingpolicy/BUILD index fd3c23d338a..34fc1d5467d 100644 --- a/federation/plugin/pkg/admission/schedulingpolicy/BUILD +++ b/federation/plugin/pkg/admission/schedulingpolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/registry/cluster/BUILD b/federation/registry/cluster/BUILD index d61e30a2b31..ed2a0ec6f38 100644 --- a/federation/registry/cluster/BUILD +++ b/federation/registry/cluster/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/federation/registry/cluster/etcd/BUILD b/federation/registry/cluster/etcd/BUILD index 7ac1d4e81e2..307765530e9 100644 --- a/federation/registry/cluster/etcd/BUILD +++ b/federation/registry/cluster/etcd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/hack/BUILD b/hack/BUILD index 8692ff24d39..d6c48907976 100644 --- a/hack/BUILD +++ b/hack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/hack/boilerplate/test/BUILD b/hack/boilerplate/test/BUILD index 0532afd752a..f37b2de2e44 100644 --- a/hack/boilerplate/test/BUILD +++ b/hack/boilerplate/test/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/hack/cmd/teststale/BUILD b/hack/cmd/teststale/BUILD index 5ce7822f04d..fe6ea15fc20 100644 --- a/hack/cmd/teststale/BUILD +++ b/hack/cmd/teststale/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/hack/e2e-internal/BUILD b/hack/e2e-internal/BUILD index 6cc62052baf..7e76248ad95 100644 --- a/hack/e2e-internal/BUILD +++ b/hack/e2e-internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/hack/lib/BUILD b/hack/lib/BUILD index 6cc62052baf..7e76248ad95 100644 --- a/hack/lib/BUILD +++ b/hack/lib/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/BUILD b/pkg/BUILD index 0b3ef1d254f..c5723921744 100644 --- a/pkg/BUILD +++ b/pkg/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/api/BUILD b/pkg/api/BUILD index 5e94f83b6c7..ad8c7a0b1d4 100644 --- a/pkg/api/BUILD +++ b/pkg/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/endpoints/BUILD b/pkg/api/endpoints/BUILD index 1eb3ae93923..cbe2c30730b 100644 --- a/pkg/api/endpoints/BUILD +++ b/pkg/api/endpoints/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/errors/BUILD b/pkg/api/errors/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/api/errors/BUILD +++ b/pkg/api/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/events/BUILD b/pkg/api/events/BUILD index 13b91bcef18..1bb10b03c89 100644 --- a/pkg/api/events/BUILD +++ b/pkg/api/events/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/fuzzer/BUILD b/pkg/api/fuzzer/BUILD index 101a57df4da..12725aa9c91 100644 --- a/pkg/api/fuzzer/BUILD +++ b/pkg/api/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/helper/BUILD b/pkg/api/helper/BUILD index c42081bcd02..384d2d09609 100644 --- a/pkg/api/helper/BUILD +++ b/pkg/api/helper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/helper/qos/BUILD b/pkg/api/helper/qos/BUILD index a9dcde34613..63b594dc911 100644 --- a/pkg/api/helper/qos/BUILD +++ b/pkg/api/helper/qos/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/install/BUILD b/pkg/api/install/BUILD index 975765273d5..ad64a56ce60 100644 --- a/pkg/api/install/BUILD +++ b/pkg/api/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/meta/BUILD b/pkg/api/meta/BUILD index 74263240a78..c674fdb2e60 100644 --- a/pkg/api/meta/BUILD +++ b/pkg/api/meta/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/meta/metatypes/BUILD b/pkg/api/meta/metatypes/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/api/meta/metatypes/BUILD +++ b/pkg/api/meta/metatypes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/persistentvolume/BUILD b/pkg/api/persistentvolume/BUILD index 2c5c86a894c..26471bdb6db 100644 --- a/pkg/api/persistentvolume/BUILD +++ b/pkg/api/persistentvolume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/pod/BUILD b/pkg/api/pod/BUILD index b040134d4ee..316c6a7819f 100644 --- a/pkg/api/pod/BUILD +++ b/pkg/api/pod/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/ref/BUILD b/pkg/api/ref/BUILD index b2f16d14123..162fbb21a20 100644 --- a/pkg/api/ref/BUILD +++ b/pkg/api/ref/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/resource/BUILD b/pkg/api/resource/BUILD index ddb496cf919..f115af29e9b 100644 --- a/pkg/api/resource/BUILD +++ b/pkg/api/resource/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/service/BUILD b/pkg/api/service/BUILD index e8fd570288a..795a9707296 100644 --- a/pkg/api/service/BUILD +++ b/pkg/api/service/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/testapi/BUILD b/pkg/api/testapi/BUILD index bcf2d6a5796..0bb93fc7418 100644 --- a/pkg/api/testapi/BUILD +++ b/pkg/api/testapi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/testing/BUILD b/pkg/api/testing/BUILD index edc37a4332f..636e289d2ac 100644 --- a/pkg/api/testing/BUILD +++ b/pkg/api/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/testing/compat/BUILD b/pkg/api/testing/compat/BUILD index c80d89f8f5d..ec922c60f6d 100644 --- a/pkg/api/testing/compat/BUILD +++ b/pkg/api/testing/compat/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/unversioned/BUILD b/pkg/api/unversioned/BUILD index 7ff00cf7c3f..0d30056719e 100644 --- a/pkg/api/unversioned/BUILD +++ b/pkg/api/unversioned/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/util/BUILD b/pkg/api/util/BUILD index 0f45f3962bc..ae59f2f0ea9 100644 --- a/pkg/api/util/BUILD +++ b/pkg/api/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/BUILD b/pkg/api/v1/BUILD index 1a82dee4712..c79f190ccbd 100644 --- a/pkg/api/v1/BUILD +++ b/pkg/api/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/endpoints/BUILD b/pkg/api/v1/endpoints/BUILD index 7fd7d19d6e4..10752b7b505 100644 --- a/pkg/api/v1/endpoints/BUILD +++ b/pkg/api/v1/endpoints/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/helper/BUILD b/pkg/api/v1/helper/BUILD index d05172e7c3f..a52a1be940e 100644 --- a/pkg/api/v1/helper/BUILD +++ b/pkg/api/v1/helper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/helper/qos/BUILD b/pkg/api/v1/helper/qos/BUILD index 7efd9a2dceb..e41f01c36b9 100644 --- a/pkg/api/v1/helper/qos/BUILD +++ b/pkg/api/v1/helper/qos/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/node/BUILD b/pkg/api/v1/node/BUILD index d310609232e..1c010126398 100644 --- a/pkg/api/v1/node/BUILD +++ b/pkg/api/v1/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/pod/BUILD b/pkg/api/v1/pod/BUILD index 47afaa6e922..b619ba1b058 100644 --- a/pkg/api/v1/pod/BUILD +++ b/pkg/api/v1/pod/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/resource/BUILD b/pkg/api/v1/resource/BUILD index 6d5ad679a70..dd60163916d 100644 --- a/pkg/api/v1/resource/BUILD +++ b/pkg/api/v1/resource/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/service/BUILD b/pkg/api/v1/service/BUILD index c6e04d398f1..190e84512e6 100644 --- a/pkg/api/v1/service/BUILD +++ b/pkg/api/v1/service/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/v1/validation/BUILD b/pkg/api/v1/validation/BUILD index b3b3f45e854..f930f2d29e7 100644 --- a/pkg/api/v1/validation/BUILD +++ b/pkg/api/v1/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/api/validation/BUILD b/pkg/api/validation/BUILD index cb00dd80dac..7c1615d1782 100644 --- a/pkg/api/validation/BUILD +++ b/pkg/api/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apimachinery/tests/BUILD b/pkg/apimachinery/tests/BUILD index bbf3f315616..613436fbe38 100644 --- a/pkg/apimachinery/tests/BUILD +++ b/pkg/apimachinery/tests/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/pkg/apis/abac/BUILD b/pkg/apis/abac/BUILD index 79e3f723364..51caaac2954 100644 --- a/pkg/apis/abac/BUILD +++ b/pkg/apis/abac/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/abac/fuzzer/BUILD b/pkg/apis/abac/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/abac/fuzzer/BUILD +++ b/pkg/apis/abac/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/abac/latest/BUILD b/pkg/apis/abac/latest/BUILD index d385ed37bea..b8d85b7b6d9 100644 --- a/pkg/apis/abac/latest/BUILD +++ b/pkg/apis/abac/latest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/abac/v0/BUILD b/pkg/apis/abac/v0/BUILD index 5e1018ab1b0..3115c85f928 100644 --- a/pkg/apis/abac/v0/BUILD +++ b/pkg/apis/abac/v0/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/abac/v1beta1/BUILD b/pkg/apis/abac/v1beta1/BUILD index d6dee484e17..56db2e65bd5 100644 --- a/pkg/apis/abac/v1beta1/BUILD +++ b/pkg/apis/abac/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admission/BUILD b/pkg/apis/admission/BUILD index 15c8ec2bbea..ea672dbcacc 100644 --- a/pkg/apis/admission/BUILD +++ b/pkg/apis/admission/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admission/fuzzer/BUILD b/pkg/apis/admission/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/admission/fuzzer/BUILD +++ b/pkg/apis/admission/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admission/install/BUILD b/pkg/apis/admission/install/BUILD index c2a0dc25637..ec8e8cd88a7 100644 --- a/pkg/apis/admission/install/BUILD +++ b/pkg/apis/admission/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admission/v1alpha1/BUILD b/pkg/apis/admission/v1alpha1/BUILD index 5b8f6a135c0..984b3f6cb79 100644 --- a/pkg/apis/admission/v1alpha1/BUILD +++ b/pkg/apis/admission/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admissionregistration/BUILD b/pkg/apis/admissionregistration/BUILD index f97ae625f91..5d7b1813f8c 100644 --- a/pkg/apis/admissionregistration/BUILD +++ b/pkg/apis/admissionregistration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admissionregistration/fuzzer/BUILD b/pkg/apis/admissionregistration/fuzzer/BUILD index 1b9fe1c3c39..0f5bfa3a15a 100644 --- a/pkg/apis/admissionregistration/fuzzer/BUILD +++ b/pkg/apis/admissionregistration/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admissionregistration/install/BUILD b/pkg/apis/admissionregistration/install/BUILD index db5ed696719..49d881d0ed0 100644 --- a/pkg/apis/admissionregistration/install/BUILD +++ b/pkg/apis/admissionregistration/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admissionregistration/v1alpha1/BUILD b/pkg/apis/admissionregistration/v1alpha1/BUILD index a38d576cef8..6126c72af70 100644 --- a/pkg/apis/admissionregistration/v1alpha1/BUILD +++ b/pkg/apis/admissionregistration/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/admissionregistration/validation/BUILD b/pkg/apis/admissionregistration/validation/BUILD index 5569e4f464e..00268be3f1e 100644 --- a/pkg/apis/admissionregistration/validation/BUILD +++ b/pkg/apis/admissionregistration/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/apps/BUILD b/pkg/apis/apps/BUILD index cd5094b3834..0b1a8701f08 100644 --- a/pkg/apis/apps/BUILD +++ b/pkg/apis/apps/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/apps/fuzzer/BUILD b/pkg/apis/apps/fuzzer/BUILD index 401d6e6f10b..b933f045eda 100644 --- a/pkg/apis/apps/fuzzer/BUILD +++ b/pkg/apis/apps/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/apps/install/BUILD b/pkg/apis/apps/install/BUILD index e91cf12659b..55b72470796 100644 --- a/pkg/apis/apps/install/BUILD +++ b/pkg/apis/apps/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/apps/v1beta1/BUILD b/pkg/apis/apps/v1beta1/BUILD index 4715d483112..b97be7b7dc8 100644 --- a/pkg/apis/apps/v1beta1/BUILD +++ b/pkg/apis/apps/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/apps/v1beta2/BUILD b/pkg/apis/apps/v1beta2/BUILD index 4e80697d6a5..ae7e3be562f 100644 --- a/pkg/apis/apps/v1beta2/BUILD +++ b/pkg/apis/apps/v1beta2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/apps/validation/BUILD b/pkg/apis/apps/validation/BUILD index d485356b794..fbb4a08ac77 100644 --- a/pkg/apis/apps/validation/BUILD +++ b/pkg/apis/apps/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authentication/BUILD b/pkg/apis/authentication/BUILD index 4853ab0424e..18fbe12e116 100644 --- a/pkg/apis/authentication/BUILD +++ b/pkg/apis/authentication/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authentication/fuzzer/BUILD b/pkg/apis/authentication/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/authentication/fuzzer/BUILD +++ b/pkg/apis/authentication/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authentication/install/BUILD b/pkg/apis/authentication/install/BUILD index d8dbe62a180..7ec2b74077b 100644 --- a/pkg/apis/authentication/install/BUILD +++ b/pkg/apis/authentication/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authentication/v1/BUILD b/pkg/apis/authentication/v1/BUILD index fcb3978ba95..ff7e40f0a07 100644 --- a/pkg/apis/authentication/v1/BUILD +++ b/pkg/apis/authentication/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authentication/v1beta1/BUILD b/pkg/apis/authentication/v1beta1/BUILD index 29b1928ee07..25cc2abae8c 100644 --- a/pkg/apis/authentication/v1beta1/BUILD +++ b/pkg/apis/authentication/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authorization/BUILD b/pkg/apis/authorization/BUILD index 48155e75b46..d64dc5b2c96 100644 --- a/pkg/apis/authorization/BUILD +++ b/pkg/apis/authorization/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authorization/fuzzer/BUILD b/pkg/apis/authorization/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/authorization/fuzzer/BUILD +++ b/pkg/apis/authorization/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authorization/install/BUILD b/pkg/apis/authorization/install/BUILD index f6225d4229d..8f36c7f5a45 100644 --- a/pkg/apis/authorization/install/BUILD +++ b/pkg/apis/authorization/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authorization/v1/BUILD b/pkg/apis/authorization/v1/BUILD index c01caa44bf4..f7d262bfee4 100644 --- a/pkg/apis/authorization/v1/BUILD +++ b/pkg/apis/authorization/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authorization/v1beta1/BUILD b/pkg/apis/authorization/v1beta1/BUILD index 06662c3a812..2f5a0fbfc8a 100644 --- a/pkg/apis/authorization/v1beta1/BUILD +++ b/pkg/apis/authorization/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/authorization/validation/BUILD b/pkg/apis/authorization/validation/BUILD index 141c315305d..d9fd992ec0f 100644 --- a/pkg/apis/authorization/validation/BUILD +++ b/pkg/apis/authorization/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/autoscaling/BUILD b/pkg/apis/autoscaling/BUILD index 19b69f83a4f..6c8c597cd0c 100644 --- a/pkg/apis/autoscaling/BUILD +++ b/pkg/apis/autoscaling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/autoscaling/fuzzer/BUILD b/pkg/apis/autoscaling/fuzzer/BUILD index 66011eb5ac6..2d3f29e4ef6 100644 --- a/pkg/apis/autoscaling/fuzzer/BUILD +++ b/pkg/apis/autoscaling/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/autoscaling/install/BUILD b/pkg/apis/autoscaling/install/BUILD index b065f0f3e07..52a5f95b490 100644 --- a/pkg/apis/autoscaling/install/BUILD +++ b/pkg/apis/autoscaling/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/autoscaling/v1/BUILD b/pkg/apis/autoscaling/v1/BUILD index bb5a738f8d7..8774793d048 100644 --- a/pkg/apis/autoscaling/v1/BUILD +++ b/pkg/apis/autoscaling/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/autoscaling/v2alpha1/BUILD b/pkg/apis/autoscaling/v2alpha1/BUILD index 1bbdbcaea5f..3cbdae37c32 100644 --- a/pkg/apis/autoscaling/v2alpha1/BUILD +++ b/pkg/apis/autoscaling/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/autoscaling/validation/BUILD b/pkg/apis/autoscaling/validation/BUILD index bbc0e27ddc2..5355d0e553c 100644 --- a/pkg/apis/autoscaling/validation/BUILD +++ b/pkg/apis/autoscaling/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/batch/BUILD b/pkg/apis/batch/BUILD index 396f368a6b0..9f48416e7f3 100644 --- a/pkg/apis/batch/BUILD +++ b/pkg/apis/batch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/batch/fuzzer/BUILD b/pkg/apis/batch/fuzzer/BUILD index 73e43e53017..ca3366aaef3 100644 --- a/pkg/apis/batch/fuzzer/BUILD +++ b/pkg/apis/batch/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/batch/install/BUILD b/pkg/apis/batch/install/BUILD index f1cc1712ca7..e668dc386a2 100644 --- a/pkg/apis/batch/install/BUILD +++ b/pkg/apis/batch/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/batch/v1/BUILD b/pkg/apis/batch/v1/BUILD index bafb677e039..1f766c3c9a5 100644 --- a/pkg/apis/batch/v1/BUILD +++ b/pkg/apis/batch/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/batch/v2alpha1/BUILD b/pkg/apis/batch/v2alpha1/BUILD index 83e49787c7a..09776447e94 100644 --- a/pkg/apis/batch/v2alpha1/BUILD +++ b/pkg/apis/batch/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/batch/validation/BUILD b/pkg/apis/batch/validation/BUILD index dcd0012d721..5ea444ddf9e 100644 --- a/pkg/apis/batch/validation/BUILD +++ b/pkg/apis/batch/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/certificates/BUILD b/pkg/apis/certificates/BUILD index b9683e01a1a..1c99c0cbfa8 100644 --- a/pkg/apis/certificates/BUILD +++ b/pkg/apis/certificates/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/certificates/fuzzer/BUILD b/pkg/apis/certificates/fuzzer/BUILD index 008a3ca99a1..b4ec41d97d2 100644 --- a/pkg/apis/certificates/fuzzer/BUILD +++ b/pkg/apis/certificates/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/certificates/install/BUILD b/pkg/apis/certificates/install/BUILD index c1b2a668ad8..276c112c66c 100644 --- a/pkg/apis/certificates/install/BUILD +++ b/pkg/apis/certificates/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/certificates/v1beta1/BUILD b/pkg/apis/certificates/v1beta1/BUILD index 22334d7cde0..aa2d4eed068 100644 --- a/pkg/apis/certificates/v1beta1/BUILD +++ b/pkg/apis/certificates/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/certificates/validation/BUILD b/pkg/apis/certificates/validation/BUILD index 79bc240c979..efab0be82d6 100644 --- a/pkg/apis/certificates/validation/BUILD +++ b/pkg/apis/certificates/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/componentconfig/BUILD b/pkg/apis/componentconfig/BUILD index a51c9b4087a..bdce94c2c1a 100644 --- a/pkg/apis/componentconfig/BUILD +++ b/pkg/apis/componentconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/componentconfig/fuzzer/BUILD b/pkg/apis/componentconfig/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/componentconfig/fuzzer/BUILD +++ b/pkg/apis/componentconfig/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/componentconfig/install/BUILD b/pkg/apis/componentconfig/install/BUILD index 5d919f51b53..a6292c0d167 100644 --- a/pkg/apis/componentconfig/install/BUILD +++ b/pkg/apis/componentconfig/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/componentconfig/v1alpha1/BUILD b/pkg/apis/componentconfig/v1alpha1/BUILD index f84fe4204c3..c85b0bf075c 100644 --- a/pkg/apis/componentconfig/v1alpha1/BUILD +++ b/pkg/apis/componentconfig/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/componentconfig/validation/BUILD b/pkg/apis/componentconfig/validation/BUILD index 520df524130..a9c496aca6d 100644 --- a/pkg/apis/componentconfig/validation/BUILD +++ b/pkg/apis/componentconfig/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/extensions/BUILD b/pkg/apis/extensions/BUILD index 3338acbb956..d0c4efdda4c 100644 --- a/pkg/apis/extensions/BUILD +++ b/pkg/apis/extensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/extensions/fuzzer/BUILD b/pkg/apis/extensions/fuzzer/BUILD index c7286395386..8eeb981419b 100644 --- a/pkg/apis/extensions/fuzzer/BUILD +++ b/pkg/apis/extensions/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/extensions/install/BUILD b/pkg/apis/extensions/install/BUILD index 4db6826f8f3..f223d80385d 100644 --- a/pkg/apis/extensions/install/BUILD +++ b/pkg/apis/extensions/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/extensions/v1beta1/BUILD b/pkg/apis/extensions/v1beta1/BUILD index cc59873ab4c..4fe6e2d19fb 100644 --- a/pkg/apis/extensions/v1beta1/BUILD +++ b/pkg/apis/extensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/extensions/validation/BUILD b/pkg/apis/extensions/validation/BUILD index 4c30bf668d7..3cc6e3ace0e 100644 --- a/pkg/apis/extensions/validation/BUILD +++ b/pkg/apis/extensions/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/imagepolicy/BUILD b/pkg/apis/imagepolicy/BUILD index 2e46ad29133..c72a0f3a4ca 100644 --- a/pkg/apis/imagepolicy/BUILD +++ b/pkg/apis/imagepolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/imagepolicy/fuzzer/BUILD b/pkg/apis/imagepolicy/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/imagepolicy/fuzzer/BUILD +++ b/pkg/apis/imagepolicy/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/imagepolicy/install/BUILD b/pkg/apis/imagepolicy/install/BUILD index b7093e35f09..89706b15f25 100644 --- a/pkg/apis/imagepolicy/install/BUILD +++ b/pkg/apis/imagepolicy/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/imagepolicy/v1alpha1/BUILD b/pkg/apis/imagepolicy/v1alpha1/BUILD index e0f0edc49d7..f1a3ffaac56 100644 --- a/pkg/apis/imagepolicy/v1alpha1/BUILD +++ b/pkg/apis/imagepolicy/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/meta/v1/BUILD b/pkg/apis/meta/v1/BUILD index 7bbc86659ac..b29556cb2e5 100644 --- a/pkg/apis/meta/v1/BUILD +++ b/pkg/apis/meta/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/networking/BUILD b/pkg/apis/networking/BUILD index 4cfd905584a..0918167e436 100644 --- a/pkg/apis/networking/BUILD +++ b/pkg/apis/networking/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/networking/fuzzer/BUILD b/pkg/apis/networking/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/networking/fuzzer/BUILD +++ b/pkg/apis/networking/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/networking/install/BUILD b/pkg/apis/networking/install/BUILD index 66766503f7d..e1a348568b1 100644 --- a/pkg/apis/networking/install/BUILD +++ b/pkg/apis/networking/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/networking/v1/BUILD b/pkg/apis/networking/v1/BUILD index 2bc3a5d49ab..5edf89f5e8b 100644 --- a/pkg/apis/networking/v1/BUILD +++ b/pkg/apis/networking/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/networking/validation/BUILD b/pkg/apis/networking/validation/BUILD index 5eafa564a45..c5d7dbdaa37 100644 --- a/pkg/apis/networking/validation/BUILD +++ b/pkg/apis/networking/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/policy/BUILD b/pkg/apis/policy/BUILD index 70cbbee3fe0..38f32cc79d6 100644 --- a/pkg/apis/policy/BUILD +++ b/pkg/apis/policy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/policy/fuzzer/BUILD b/pkg/apis/policy/fuzzer/BUILD index a76663849db..985a520646e 100644 --- a/pkg/apis/policy/fuzzer/BUILD +++ b/pkg/apis/policy/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/policy/install/BUILD b/pkg/apis/policy/install/BUILD index 782ac1c7409..d37deb82a8a 100644 --- a/pkg/apis/policy/install/BUILD +++ b/pkg/apis/policy/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/policy/v1alpha1/BUILD b/pkg/apis/policy/v1alpha1/BUILD index 1c4e5cd39b2..35a26c49c88 100644 --- a/pkg/apis/policy/v1alpha1/BUILD +++ b/pkg/apis/policy/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/policy/v1beta1/BUILD b/pkg/apis/policy/v1beta1/BUILD index a502cfba724..24f9971dc52 100644 --- a/pkg/apis/policy/v1beta1/BUILD +++ b/pkg/apis/policy/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/policy/validation/BUILD b/pkg/apis/policy/validation/BUILD index 1a89ac1d034..f61e12c25d4 100644 --- a/pkg/apis/policy/validation/BUILD +++ b/pkg/apis/policy/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/rbac/BUILD b/pkg/apis/rbac/BUILD index 1d7bbd4dfd8..ce8db5f6b5f 100644 --- a/pkg/apis/rbac/BUILD +++ b/pkg/apis/rbac/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/rbac/fuzzer/BUILD b/pkg/apis/rbac/fuzzer/BUILD index df4a154507d..b9b71c4bd3c 100644 --- a/pkg/apis/rbac/fuzzer/BUILD +++ b/pkg/apis/rbac/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/rbac/install/BUILD b/pkg/apis/rbac/install/BUILD index f8de8c2cba4..8a1d8c5844c 100644 --- a/pkg/apis/rbac/install/BUILD +++ b/pkg/apis/rbac/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/rbac/v1/BUILD b/pkg/apis/rbac/v1/BUILD index 7ce1dee4b28..c6f661b3b97 100644 --- a/pkg/apis/rbac/v1/BUILD +++ b/pkg/apis/rbac/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/rbac/v1alpha1/BUILD b/pkg/apis/rbac/v1alpha1/BUILD index 2c2b22399c5..a0bb58f106c 100644 --- a/pkg/apis/rbac/v1alpha1/BUILD +++ b/pkg/apis/rbac/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/rbac/v1beta1/BUILD b/pkg/apis/rbac/v1beta1/BUILD index c3ce651fd99..5e7c7656d1d 100644 --- a/pkg/apis/rbac/v1beta1/BUILD +++ b/pkg/apis/rbac/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/rbac/validation/BUILD b/pkg/apis/rbac/validation/BUILD index c63de5acac4..53d572ab31f 100644 --- a/pkg/apis/rbac/validation/BUILD +++ b/pkg/apis/rbac/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/scheduling/BUILD b/pkg/apis/scheduling/BUILD index 2ec549f90f9..c32f8b22d05 100644 --- a/pkg/apis/scheduling/BUILD +++ b/pkg/apis/scheduling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/scheduling/fuzzer/BUILD b/pkg/apis/scheduling/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/scheduling/fuzzer/BUILD +++ b/pkg/apis/scheduling/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/scheduling/install/BUILD b/pkg/apis/scheduling/install/BUILD index 9f68d2e68a1..8d5557ef363 100644 --- a/pkg/apis/scheduling/install/BUILD +++ b/pkg/apis/scheduling/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/scheduling/v1alpha1/BUILD b/pkg/apis/scheduling/v1alpha1/BUILD index 7557fe1af91..b9ed61b3d11 100644 --- a/pkg/apis/scheduling/v1alpha1/BUILD +++ b/pkg/apis/scheduling/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/scheduling/validation/BUILD b/pkg/apis/scheduling/validation/BUILD index 185eff048bf..388caf9afa7 100644 --- a/pkg/apis/scheduling/validation/BUILD +++ b/pkg/apis/scheduling/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/settings/BUILD b/pkg/apis/settings/BUILD index 93bd86ae2ed..e328e7d02df 100644 --- a/pkg/apis/settings/BUILD +++ b/pkg/apis/settings/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/settings/fuzzer/BUILD b/pkg/apis/settings/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/settings/fuzzer/BUILD +++ b/pkg/apis/settings/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/settings/install/BUILD b/pkg/apis/settings/install/BUILD index 8261fbc815d..1a91d59d332 100644 --- a/pkg/apis/settings/install/BUILD +++ b/pkg/apis/settings/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/settings/v1alpha1/BUILD b/pkg/apis/settings/v1alpha1/BUILD index 9eba9988ce1..f3b1c5b333e 100644 --- a/pkg/apis/settings/v1alpha1/BUILD +++ b/pkg/apis/settings/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/settings/validation/BUILD b/pkg/apis/settings/validation/BUILD index 3b315c2208b..e825fca8492 100644 --- a/pkg/apis/settings/validation/BUILD +++ b/pkg/apis/settings/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/BUILD b/pkg/apis/storage/BUILD index e81852055bf..f47699e1f7d 100644 --- a/pkg/apis/storage/BUILD +++ b/pkg/apis/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/fuzzer/BUILD b/pkg/apis/storage/fuzzer/BUILD index cd161eb50f1..dd0561eec8f 100644 --- a/pkg/apis/storage/fuzzer/BUILD +++ b/pkg/apis/storage/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/install/BUILD b/pkg/apis/storage/install/BUILD index bb39c2995da..6bb4fbb9ecd 100644 --- a/pkg/apis/storage/install/BUILD +++ b/pkg/apis/storage/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/util/BUILD b/pkg/apis/storage/util/BUILD index a007bd12fcd..451f7221a1f 100644 --- a/pkg/apis/storage/util/BUILD +++ b/pkg/apis/storage/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/v1/BUILD b/pkg/apis/storage/v1/BUILD index 1f266fd1cf5..1cf3cf86ab3 100644 --- a/pkg/apis/storage/v1/BUILD +++ b/pkg/apis/storage/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/v1/util/BUILD b/pkg/apis/storage/v1/util/BUILD index a007bd12fcd..451f7221a1f 100644 --- a/pkg/apis/storage/v1/util/BUILD +++ b/pkg/apis/storage/v1/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/v1beta1/BUILD b/pkg/apis/storage/v1beta1/BUILD index b061f1ccdc3..6e9c1695fa7 100644 --- a/pkg/apis/storage/v1beta1/BUILD +++ b/pkg/apis/storage/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/v1beta1/util/BUILD b/pkg/apis/storage/v1beta1/util/BUILD index a007bd12fcd..451f7221a1f 100644 --- a/pkg/apis/storage/v1beta1/util/BUILD +++ b/pkg/apis/storage/v1beta1/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/apis/storage/validation/BUILD b/pkg/apis/storage/validation/BUILD index b8acee8ee42..2c6b951cf6a 100644 --- a/pkg/apis/storage/validation/BUILD +++ b/pkg/apis/storage/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/auth/authorizer/abac/BUILD b/pkg/auth/authorizer/abac/BUILD index 8f2650288fa..307072800dc 100644 --- a/pkg/auth/authorizer/abac/BUILD +++ b/pkg/auth/authorizer/abac/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/auth/nodeidentifier/BUILD b/pkg/auth/nodeidentifier/BUILD index 41d8901900f..84e7f09fd5a 100644 --- a/pkg/auth/nodeidentifier/BUILD +++ b/pkg/auth/nodeidentifier/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/auth/user/BUILD b/pkg/auth/user/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/auth/user/BUILD +++ b/pkg/auth/user/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/bootstrap/api/BUILD b/pkg/bootstrap/api/BUILD index a9c288210ab..dfb7d697638 100644 --- a/pkg/bootstrap/api/BUILD +++ b/pkg/bootstrap/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/capabilities/BUILD b/pkg/capabilities/BUILD index f53d341f6a5..b4fdbc79fc5 100644 --- a/pkg/capabilities/BUILD +++ b/pkg/capabilities/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/chaosclient/BUILD b/pkg/client/chaosclient/BUILD index f3c36b1f976..9c46e126906 100644 --- a/pkg/client/chaosclient/BUILD +++ b/pkg/client/chaosclient/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/BUILD b/pkg/client/clientset_generated/internalclientset/BUILD index 035f57eb135..09f1e0d3adf 100644 --- a/pkg/client/clientset_generated/internalclientset/BUILD +++ b/pkg/client/clientset_generated/internalclientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/fake/BUILD b/pkg/client/clientset_generated/internalclientset/fake/BUILD index 790b7d98dc0..986f9b20789 100644 --- a/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/scheme/BUILD b/pkg/client/clientset_generated/internalclientset/scheme/BUILD index 0ecb4a28a2e..0c3683d8a3f 100644 --- a/pkg/client/clientset_generated/internalclientset/scheme/BUILD +++ b/pkg/client/clientset_generated/internalclientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD index 4d7205dd367..d7894dfa43f 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD index 396dc38c3a7..c0dec497fd0 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD index 133f6327577..83474a0708e 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD index 8102ef332d1..6aab6439666 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/apps/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD index e71d056e080..cf58a8906d3 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD index ac0f378b8aa..d7f8e7f2134 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD index adc23bc207d..311749fb48b 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD index ddfd46f47b7..481ab6164a3 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD index 536e8d0a770..2d8baf418bb 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD index ae4bd5043af..22e49580105 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD index 2651d309955..761a54f89df 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD index 1360de96249..cb1ff0d8739 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/batch/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD index e9985bc5441..3e39ccdf048 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD index b76543a279a..e9d3a20d360 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD index 30bcfcb65a7..276b269b4e8 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD index 8aa62bcc19c..0f8b91a29fa 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/core/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD index dae4f709190..4acadb06874 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD index a087cf310d9..762bf894989 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD index aa6f9e5bbbf..f7a14f9fe70 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD index 44f9597c39a..e5cf8e9cce3 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/networking/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD index 60eba272460..2288c94c625 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD index a8cde898da7..4d93b59269a 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/policy/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD index a37ad07aca0..fdc305f8ea2 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD index 5bd24ca0c7c..ae36e7ede0c 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD index 638f2057fa9..c6ecdbea017 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD index b66ac59f02d..f5653d1b139 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/scheduling/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD index b86db5b4a5d..45f1886ae0c 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD index d64fb98d350..c0d49515d30 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/settings/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD index 2ba03ef255d..1a4b8f4d034 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD index 84ca9443428..e5769ea7636 100644 --- a/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD +++ b/pkg/client/clientset_generated/internalclientset/typed/storage/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/conditions/BUILD b/pkg/client/conditions/BUILD index c1f99a8e2a7..cbaff53dc80 100644 --- a/pkg/client/conditions/BUILD +++ b/pkg/client/conditions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/BUILD index 1564df3e5a5..f9383819f1f 100644 --- a/pkg/client/informers/informers_generated/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD b/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD index c7d6662fa5b..4bd8bd02e1d 100644 --- a/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/admissionregistration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD index d1afa2731f2..2604d64f622 100644 --- a/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/admissionregistration/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/apps/BUILD b/pkg/client/informers/informers_generated/internalversion/apps/BUILD index cdc05c78d1a..535cefd539f 100644 --- a/pkg/client/informers/informers_generated/internalversion/apps/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/apps/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD index 3e1583344e7..58739286a0d 100644 --- a/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/apps/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD b/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD index 20ba973beed..b436b210fdf 100644 --- a/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/autoscaling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD index 719db9b768f..c08c0fcad19 100644 --- a/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/autoscaling/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/batch/BUILD b/pkg/client/informers/informers_generated/internalversion/batch/BUILD index 0083ce1671d..5e4cb6c270c 100644 --- a/pkg/client/informers/informers_generated/internalversion/batch/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/batch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD index 6bebe2af806..595ce620461 100644 --- a/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/batch/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/certificates/BUILD b/pkg/client/informers/informers_generated/internalversion/certificates/BUILD index c8ff0c37782..efb814b17d2 100644 --- a/pkg/client/informers/informers_generated/internalversion/certificates/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/certificates/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD index 5b67994c8c0..5af82636abd 100644 --- a/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/certificates/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/core/BUILD b/pkg/client/informers/informers_generated/internalversion/core/BUILD index 8f4d71bb8b2..944f76bac95 100644 --- a/pkg/client/informers/informers_generated/internalversion/core/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/core/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD index 6dfecb87682..2c4ac26d23f 100644 --- a/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/core/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/extensions/BUILD b/pkg/client/informers/informers_generated/internalversion/extensions/BUILD index 2b98d707b29..7ecba36be6d 100644 --- a/pkg/client/informers/informers_generated/internalversion/extensions/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/extensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD index 91cde36aa59..ddf7cbf7773 100644 --- a/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/extensions/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD b/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD index a5dd82a4ea0..b283332b28d 100644 --- a/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/networking/BUILD b/pkg/client/informers/informers_generated/internalversion/networking/BUILD index 1734c02259b..dfc51cb9a13 100644 --- a/pkg/client/informers/informers_generated/internalversion/networking/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/networking/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD index 0b88d8c7f3d..56a2a65706e 100644 --- a/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/networking/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/policy/BUILD b/pkg/client/informers/informers_generated/internalversion/policy/BUILD index 42a2b7d199d..470c4c220be 100644 --- a/pkg/client/informers/informers_generated/internalversion/policy/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/policy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD index a067e67ae5d..f43798ea92e 100644 --- a/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/policy/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/rbac/BUILD b/pkg/client/informers/informers_generated/internalversion/rbac/BUILD index 4931377a3c6..44e9a641f14 100644 --- a/pkg/client/informers/informers_generated/internalversion/rbac/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/rbac/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD index 72d696a547d..3352580d4a9 100644 --- a/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/rbac/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD b/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD index 19a8ee5faa2..4f48fc8ba0f 100644 --- a/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/scheduling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD index 1390db71f3e..bc4073fa3bc 100644 --- a/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/scheduling/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/settings/BUILD b/pkg/client/informers/informers_generated/internalversion/settings/BUILD index e334d7857fb..16bf99bdbdd 100644 --- a/pkg/client/informers/informers_generated/internalversion/settings/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/settings/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD index 5092e06b3fd..31f3a7e674a 100644 --- a/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/settings/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/storage/BUILD b/pkg/client/informers/informers_generated/internalversion/storage/BUILD index 09c630b2838..8ab3e991aa7 100644 --- a/pkg/client/informers/informers_generated/internalversion/storage/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD b/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD index b2c2c9953d6..2b1800c3848 100644 --- a/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD +++ b/pkg/client/informers/informers_generated/internalversion/storage/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/leaderelectionconfig/BUILD b/pkg/client/leaderelectionconfig/BUILD index 29796a055c3..1461769f26e 100644 --- a/pkg/client/leaderelectionconfig/BUILD +++ b/pkg/client/leaderelectionconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/admissionregistration/internalversion/BUILD b/pkg/client/listers/admissionregistration/internalversion/BUILD index 762d61dd933..71e185607f7 100644 --- a/pkg/client/listers/admissionregistration/internalversion/BUILD +++ b/pkg/client/listers/admissionregistration/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/apps/internalversion/BUILD b/pkg/client/listers/apps/internalversion/BUILD index 33149a22741..42b873d308f 100644 --- a/pkg/client/listers/apps/internalversion/BUILD +++ b/pkg/client/listers/apps/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/authentication/internalversion/BUILD b/pkg/client/listers/authentication/internalversion/BUILD index da6b65dccfe..b1c2d404b77 100644 --- a/pkg/client/listers/authentication/internalversion/BUILD +++ b/pkg/client/listers/authentication/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/authorization/internalversion/BUILD b/pkg/client/listers/authorization/internalversion/BUILD index 76235f7c0ff..5431899c3dc 100644 --- a/pkg/client/listers/authorization/internalversion/BUILD +++ b/pkg/client/listers/authorization/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/autoscaling/internalversion/BUILD b/pkg/client/listers/autoscaling/internalversion/BUILD index 984c9726d2e..a3e269335b0 100644 --- a/pkg/client/listers/autoscaling/internalversion/BUILD +++ b/pkg/client/listers/autoscaling/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/batch/internalversion/BUILD b/pkg/client/listers/batch/internalversion/BUILD index 8744c1a5902..059ae41bb76 100644 --- a/pkg/client/listers/batch/internalversion/BUILD +++ b/pkg/client/listers/batch/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/certificates/internalversion/BUILD b/pkg/client/listers/certificates/internalversion/BUILD index cf96705f9c2..55e71d45b27 100644 --- a/pkg/client/listers/certificates/internalversion/BUILD +++ b/pkg/client/listers/certificates/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/core/internalversion/BUILD b/pkg/client/listers/core/internalversion/BUILD index c2acd512e77..3561a1f42f1 100644 --- a/pkg/client/listers/core/internalversion/BUILD +++ b/pkg/client/listers/core/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/extensions/internalversion/BUILD b/pkg/client/listers/extensions/internalversion/BUILD index 55ec4ead98a..acec6253e71 100644 --- a/pkg/client/listers/extensions/internalversion/BUILD +++ b/pkg/client/listers/extensions/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/imagepolicy/internalversion/BUILD b/pkg/client/listers/imagepolicy/internalversion/BUILD index 5e5713e1f8e..97de7da07e1 100644 --- a/pkg/client/listers/imagepolicy/internalversion/BUILD +++ b/pkg/client/listers/imagepolicy/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/networking/internalversion/BUILD b/pkg/client/listers/networking/internalversion/BUILD index 71f6e985c4d..e6b71d04af1 100644 --- a/pkg/client/listers/networking/internalversion/BUILD +++ b/pkg/client/listers/networking/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/policy/internalversion/BUILD b/pkg/client/listers/policy/internalversion/BUILD index dec567f5022..d3b7b56e1b2 100644 --- a/pkg/client/listers/policy/internalversion/BUILD +++ b/pkg/client/listers/policy/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/rbac/internalversion/BUILD b/pkg/client/listers/rbac/internalversion/BUILD index 8668ce0b16d..eaed9273b35 100644 --- a/pkg/client/listers/rbac/internalversion/BUILD +++ b/pkg/client/listers/rbac/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/scheduling/internalversion/BUILD b/pkg/client/listers/scheduling/internalversion/BUILD index 9105650791a..0933b02331b 100644 --- a/pkg/client/listers/scheduling/internalversion/BUILD +++ b/pkg/client/listers/scheduling/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/settings/internalversion/BUILD b/pkg/client/listers/settings/internalversion/BUILD index e6e801abfbf..1d33428cc31 100644 --- a/pkg/client/listers/settings/internalversion/BUILD +++ b/pkg/client/listers/settings/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/listers/storage/internalversion/BUILD b/pkg/client/listers/storage/internalversion/BUILD index 8854c49cea9..c5f61c2762a 100644 --- a/pkg/client/listers/storage/internalversion/BUILD +++ b/pkg/client/listers/storage/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/metrics/BUILD b/pkg/client/metrics/BUILD index 6666d801f60..490177eaed5 100644 --- a/pkg/client/metrics/BUILD +++ b/pkg/client/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/metrics/prometheus/BUILD b/pkg/client/metrics/prometheus/BUILD index 9c35d0e06ad..519bca71ca3 100644 --- a/pkg/client/metrics/prometheus/BUILD +++ b/pkg/client/metrics/prometheus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/retry/BUILD b/pkg/client/retry/BUILD index a6e5dcc3212..9c9bb048763 100644 --- a/pkg/client/retry/BUILD +++ b/pkg/client/retry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/tests/BUILD b/pkg/client/tests/BUILD index a5bb92f1790..e8626bfdd89 100644 --- a/pkg/client/tests/BUILD +++ b/pkg/client/tests/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/unversioned/BUILD b/pkg/client/unversioned/BUILD index d1b841fbcfc..7255f4e0882 100644 --- a/pkg/client/unversioned/BUILD +++ b/pkg/client/unversioned/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/client/unversioned/testclient/simple/BUILD b/pkg/client/unversioned/testclient/simple/BUILD index ac54e4bba6b..867f9e091f7 100644 --- a/pkg/client/unversioned/testclient/simple/BUILD +++ b/pkg/client/unversioned/testclient/simple/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/BUILD b/pkg/cloudprovider/BUILD index 802581543a7..ee4c9298fac 100644 --- a/pkg/cloudprovider/BUILD +++ b/pkg/cloudprovider/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/BUILD b/pkg/cloudprovider/providers/BUILD index 2b35d8aa1b6..63c7d12f666 100644 --- a/pkg/cloudprovider/providers/BUILD +++ b/pkg/cloudprovider/providers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/aws/BUILD b/pkg/cloudprovider/providers/aws/BUILD index 92fdda166c4..8075984fe78 100644 --- a/pkg/cloudprovider/providers/aws/BUILD +++ b/pkg/cloudprovider/providers/aws/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/azure/BUILD b/pkg/cloudprovider/providers/azure/BUILD index d514207c7b9..2a494f4ff71 100644 --- a/pkg/cloudprovider/providers/azure/BUILD +++ b/pkg/cloudprovider/providers/azure/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/cloudstack/BUILD b/pkg/cloudprovider/providers/cloudstack/BUILD index e9e86678927..ecfe91d5417 100644 --- a/pkg/cloudprovider/providers/cloudstack/BUILD +++ b/pkg/cloudprovider/providers/cloudstack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/fake/BUILD b/pkg/cloudprovider/providers/fake/BUILD index 2bd98f94400..fa6e132b800 100644 --- a/pkg/cloudprovider/providers/fake/BUILD +++ b/pkg/cloudprovider/providers/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/gce/BUILD b/pkg/cloudprovider/providers/gce/BUILD index f3da3f8bf67..086c4cafa4c 100644 --- a/pkg/cloudprovider/providers/gce/BUILD +++ b/pkg/cloudprovider/providers/gce/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/openstack/BUILD b/pkg/cloudprovider/providers/openstack/BUILD index 50ef406cfe1..2305ea3f90f 100644 --- a/pkg/cloudprovider/providers/openstack/BUILD +++ b/pkg/cloudprovider/providers/openstack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/ovirt/BUILD b/pkg/cloudprovider/providers/ovirt/BUILD index eba7fcbb8fa..ae8652e24ac 100644 --- a/pkg/cloudprovider/providers/ovirt/BUILD +++ b/pkg/cloudprovider/providers/ovirt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/photon/BUILD b/pkg/cloudprovider/providers/photon/BUILD index be78f52d8b8..d58cc8c07fd 100644 --- a/pkg/cloudprovider/providers/photon/BUILD +++ b/pkg/cloudprovider/providers/photon/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/rackspace/BUILD b/pkg/cloudprovider/providers/rackspace/BUILD index be2b1dbc811..e45b4d1d9f1 100644 --- a/pkg/cloudprovider/providers/rackspace/BUILD +++ b/pkg/cloudprovider/providers/rackspace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/vsphere/BUILD b/pkg/cloudprovider/providers/vsphere/BUILD index 24c88c0bcaa..b385fa1a2e7 100644 --- a/pkg/cloudprovider/providers/vsphere/BUILD +++ b/pkg/cloudprovider/providers/vsphere/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/vsphere/vclib/BUILD b/pkg/cloudprovider/providers/vsphere/vclib/BUILD index 1945d20c2a3..b65aabb11ac 100644 --- a/pkg/cloudprovider/providers/vsphere/vclib/BUILD +++ b/pkg/cloudprovider/providers/vsphere/vclib/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD index 0f32e234825..8608c978cad 100644 --- a/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD +++ b/pkg/cloudprovider/providers/vsphere/vclib/diskmanagers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/BUILD b/pkg/controller/BUILD index 448b033efc0..d334b43d5f7 100644 --- a/pkg/controller/BUILD +++ b/pkg/controller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/bootstrap/BUILD b/pkg/controller/bootstrap/BUILD index 06628dc9d64..254f511cc68 100644 --- a/pkg/controller/bootstrap/BUILD +++ b/pkg/controller/bootstrap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/certificates/BUILD b/pkg/controller/certificates/BUILD index 3ca446db2e0..f3f36d6c396 100644 --- a/pkg/controller/certificates/BUILD +++ b/pkg/controller/certificates/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/certificates/approver/BUILD b/pkg/controller/certificates/approver/BUILD index 7e327561000..eac5be6944e 100644 --- a/pkg/controller/certificates/approver/BUILD +++ b/pkg/controller/certificates/approver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/certificates/signer/BUILD b/pkg/controller/certificates/signer/BUILD index c0579c34fb5..c29d2d132c0 100644 --- a/pkg/controller/certificates/signer/BUILD +++ b/pkg/controller/certificates/signer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/cloud/BUILD b/pkg/controller/cloud/BUILD index 5495a909c7f..e303cef4992 100644 --- a/pkg/controller/cloud/BUILD +++ b/pkg/controller/cloud/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/cronjob/BUILD b/pkg/controller/cronjob/BUILD index 54456ecbe1b..8a12acd522d 100644 --- a/pkg/controller/cronjob/BUILD +++ b/pkg/controller/cronjob/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/daemon/BUILD b/pkg/controller/daemon/BUILD index f4404fed8da..c5d3af29182 100644 --- a/pkg/controller/daemon/BUILD +++ b/pkg/controller/daemon/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/daemon/util/BUILD b/pkg/controller/daemon/util/BUILD index 900098bbad3..ef9e766ab26 100644 --- a/pkg/controller/daemon/util/BUILD +++ b/pkg/controller/daemon/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/deployment/BUILD b/pkg/controller/deployment/BUILD index 7ba5f853ee1..1165b0b405d 100644 --- a/pkg/controller/deployment/BUILD +++ b/pkg/controller/deployment/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/deployment/util/BUILD b/pkg/controller/deployment/util/BUILD index e7d1bd524ce..f08e5006afa 100644 --- a/pkg/controller/deployment/util/BUILD +++ b/pkg/controller/deployment/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/disruption/BUILD b/pkg/controller/disruption/BUILD index c876800d448..0a804cabb16 100644 --- a/pkg/controller/disruption/BUILD +++ b/pkg/controller/disruption/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/endpoint/BUILD b/pkg/controller/endpoint/BUILD index cb96f344859..b38b5bb113b 100644 --- a/pkg/controller/endpoint/BUILD +++ b/pkg/controller/endpoint/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/garbagecollector/BUILD b/pkg/controller/garbagecollector/BUILD index d6395b6a1a7..2e29fd0f477 100644 --- a/pkg/controller/garbagecollector/BUILD +++ b/pkg/controller/garbagecollector/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/garbagecollector/metaonly/BUILD b/pkg/controller/garbagecollector/metaonly/BUILD index e8e53126e31..38c8ec5f75f 100644 --- a/pkg/controller/garbagecollector/metaonly/BUILD +++ b/pkg/controller/garbagecollector/metaonly/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/history/BUILD b/pkg/controller/history/BUILD index 215214a00bf..dee62672b23 100644 --- a/pkg/controller/history/BUILD +++ b/pkg/controller/history/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/job/BUILD b/pkg/controller/job/BUILD index 31a2fecd89c..fb07cf0ee3d 100644 --- a/pkg/controller/job/BUILD +++ b/pkg/controller/job/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/namespace/BUILD b/pkg/controller/namespace/BUILD index 1a0f309138a..1ca4e65349f 100644 --- a/pkg/controller/namespace/BUILD +++ b/pkg/controller/namespace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/namespace/deletion/BUILD b/pkg/controller/namespace/deletion/BUILD index 79efe468681..fc6e9641018 100644 --- a/pkg/controller/namespace/deletion/BUILD +++ b/pkg/controller/namespace/deletion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/node/BUILD b/pkg/controller/node/BUILD index 4f5f8997122..a0833388d63 100644 --- a/pkg/controller/node/BUILD +++ b/pkg/controller/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/node/ipam/BUILD b/pkg/controller/node/ipam/BUILD index 77e3136ae50..4c231fb0608 100644 --- a/pkg/controller/node/ipam/BUILD +++ b/pkg/controller/node/ipam/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/node/ipam/cidrset/BUILD b/pkg/controller/node/ipam/cidrset/BUILD index 81c878fdbb7..fdad775f2d9 100644 --- a/pkg/controller/node/ipam/cidrset/BUILD +++ b/pkg/controller/node/ipam/cidrset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/node/scheduler/BUILD b/pkg/controller/node/scheduler/BUILD index 86245a16bf6..563fcefd032 100644 --- a/pkg/controller/node/scheduler/BUILD +++ b/pkg/controller/node/scheduler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/node/util/BUILD b/pkg/controller/node/util/BUILD index a92c68edc9c..b1f6d8633d6 100644 --- a/pkg/controller/node/util/BUILD +++ b/pkg/controller/node/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/podautoscaler/BUILD b/pkg/controller/podautoscaler/BUILD index 5d44f81688c..02e1916bf95 100644 --- a/pkg/controller/podautoscaler/BUILD +++ b/pkg/controller/podautoscaler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/podautoscaler/metrics/BUILD b/pkg/controller/podautoscaler/metrics/BUILD index 6463bcb5af2..43e7b325732 100644 --- a/pkg/controller/podautoscaler/metrics/BUILD +++ b/pkg/controller/podautoscaler/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/podgc/BUILD b/pkg/controller/podgc/BUILD index a3bcf956249..c1630f99c44 100644 --- a/pkg/controller/podgc/BUILD +++ b/pkg/controller/podgc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/replicaset/BUILD b/pkg/controller/replicaset/BUILD index 64e70073317..91b4ebd13eb 100644 --- a/pkg/controller/replicaset/BUILD +++ b/pkg/controller/replicaset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/replicaset/options/BUILD b/pkg/controller/replicaset/options/BUILD index 8107708f609..7bacf7fe3b4 100644 --- a/pkg/controller/replicaset/options/BUILD +++ b/pkg/controller/replicaset/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/replication/BUILD b/pkg/controller/replication/BUILD index cf48511a34c..018a31f766e 100644 --- a/pkg/controller/replication/BUILD +++ b/pkg/controller/replication/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/resourcequota/BUILD b/pkg/controller/resourcequota/BUILD index c6fdf0553f8..1e5f0646f1e 100644 --- a/pkg/controller/resourcequota/BUILD +++ b/pkg/controller/resourcequota/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/route/BUILD b/pkg/controller/route/BUILD index 2f446e2cadd..282622dfdce 100644 --- a/pkg/controller/route/BUILD +++ b/pkg/controller/route/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/service/BUILD b/pkg/controller/service/BUILD index 9e0e2690280..9a620ec6920 100644 --- a/pkg/controller/service/BUILD +++ b/pkg/controller/service/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/serviceaccount/BUILD b/pkg/controller/serviceaccount/BUILD index 0e62fe7bf50..28017ac985e 100644 --- a/pkg/controller/serviceaccount/BUILD +++ b/pkg/controller/serviceaccount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/statefulset/BUILD b/pkg/controller/statefulset/BUILD index 764848240e1..7f6a0a74d84 100644 --- a/pkg/controller/statefulset/BUILD +++ b/pkg/controller/statefulset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/testutil/BUILD b/pkg/controller/testutil/BUILD index 5f42abcbd61..6d5cb33a651 100644 --- a/pkg/controller/testutil/BUILD +++ b/pkg/controller/testutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/ttl/BUILD b/pkg/controller/ttl/BUILD index ec9d64d6579..01978bddb90 100644 --- a/pkg/controller/ttl/BUILD +++ b/pkg/controller/ttl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/attachdetach/BUILD b/pkg/controller/volume/attachdetach/BUILD index d9dbd93f996..db1e5fcccb2 100644 --- a/pkg/controller/volume/attachdetach/BUILD +++ b/pkg/controller/volume/attachdetach/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/attachdetach/cache/BUILD b/pkg/controller/volume/attachdetach/cache/BUILD index 80cc0770934..b9f282c2545 100644 --- a/pkg/controller/volume/attachdetach/cache/BUILD +++ b/pkg/controller/volume/attachdetach/cache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/attachdetach/populator/BUILD b/pkg/controller/volume/attachdetach/populator/BUILD index 4c9b705580a..51d178f2009 100644 --- a/pkg/controller/volume/attachdetach/populator/BUILD +++ b/pkg/controller/volume/attachdetach/populator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/attachdetach/reconciler/BUILD b/pkg/controller/volume/attachdetach/reconciler/BUILD index 47446888191..bc683f6bf0e 100644 --- a/pkg/controller/volume/attachdetach/reconciler/BUILD +++ b/pkg/controller/volume/attachdetach/reconciler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/attachdetach/statusupdater/BUILD b/pkg/controller/volume/attachdetach/statusupdater/BUILD index 8e30f4b7205..6df3c44ef2d 100644 --- a/pkg/controller/volume/attachdetach/statusupdater/BUILD +++ b/pkg/controller/volume/attachdetach/statusupdater/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/attachdetach/testing/BUILD b/pkg/controller/volume/attachdetach/testing/BUILD index b7a80a38a30..8e892e550d4 100644 --- a/pkg/controller/volume/attachdetach/testing/BUILD +++ b/pkg/controller/volume/attachdetach/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/attachdetach/util/BUILD b/pkg/controller/volume/attachdetach/util/BUILD index 49adb375e09..d2bc40261a7 100644 --- a/pkg/controller/volume/attachdetach/util/BUILD +++ b/pkg/controller/volume/attachdetach/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/events/BUILD b/pkg/controller/volume/events/BUILD index 1d3b21ff839..eb4d17dddf3 100644 --- a/pkg/controller/volume/events/BUILD +++ b/pkg/controller/volume/events/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/persistentvolume/BUILD b/pkg/controller/volume/persistentvolume/BUILD index e995fd12dcd..aa6b165efa8 100644 --- a/pkg/controller/volume/persistentvolume/BUILD +++ b/pkg/controller/volume/persistentvolume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/controller/volume/persistentvolume/options/BUILD b/pkg/controller/volume/persistentvolume/options/BUILD index 8107708f609..7bacf7fe3b4 100644 --- a/pkg/controller/volume/persistentvolume/options/BUILD +++ b/pkg/controller/volume/persistentvolume/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/conversion/BUILD b/pkg/conversion/BUILD index 70424a291b4..876947c2e44 100644 --- a/pkg/conversion/BUILD +++ b/pkg/conversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/conversion/queryparams/BUILD b/pkg/conversion/queryparams/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/conversion/queryparams/BUILD +++ b/pkg/conversion/queryparams/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/credentialprovider/BUILD b/pkg/credentialprovider/BUILD index 5df8d33da0b..83f77387b9f 100644 --- a/pkg/credentialprovider/BUILD +++ b/pkg/credentialprovider/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/credentialprovider/aws/BUILD b/pkg/credentialprovider/aws/BUILD index 0512c509854..cc3e0d955d7 100644 --- a/pkg/credentialprovider/aws/BUILD +++ b/pkg/credentialprovider/aws/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/credentialprovider/azure/BUILD b/pkg/credentialprovider/azure/BUILD index 92a1bdfcc46..0ba1582e75d 100644 --- a/pkg/credentialprovider/azure/BUILD +++ b/pkg/credentialprovider/azure/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/credentialprovider/gcp/BUILD b/pkg/credentialprovider/gcp/BUILD index 03178513e9f..45f4c3b5c97 100644 --- a/pkg/credentialprovider/gcp/BUILD +++ b/pkg/credentialprovider/gcp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/credentialprovider/rancher/BUILD b/pkg/credentialprovider/rancher/BUILD index 0610a8150e7..02689ef5c44 100644 --- a/pkg/credentialprovider/rancher/BUILD +++ b/pkg/credentialprovider/rancher/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/features/BUILD b/pkg/features/BUILD index 70053139218..30bf7b14ecb 100644 --- a/pkg/features/BUILD +++ b/pkg/features/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/fieldpath/BUILD b/pkg/fieldpath/BUILD index 22586e0d368..05710a259df 100644 --- a/pkg/fieldpath/BUILD +++ b/pkg/fieldpath/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/fields/BUILD b/pkg/fields/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/fields/BUILD +++ b/pkg/fields/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/generated/BUILD b/pkg/generated/BUILD index 4608727ec84..cb2a850ebe5 100644 --- a/pkg/generated/BUILD +++ b/pkg/generated/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/generated/openapi/BUILD b/pkg/generated/openapi/BUILD index b7104b28ce3..075cc4487ee 100644 --- a/pkg/generated/openapi/BUILD +++ b/pkg/generated/openapi/BUILD @@ -5,8 +5,6 @@ package(default_visibility = ["//visibility:public"]) load("//pkg/generated/openapi:def.bzl", "openapi_library") -licenses(["notice"]) - openapi_library( name = "go_default_library", srcs = ["doc.go"], diff --git a/pkg/hyperkube/BUILD b/pkg/hyperkube/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/hyperkube/BUILD +++ b/pkg/hyperkube/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/BUILD b/pkg/kubeapiserver/BUILD index 16af1d0de80..fc2e3afe13e 100644 --- a/pkg/kubeapiserver/BUILD +++ b/pkg/kubeapiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/admission/BUILD b/pkg/kubeapiserver/admission/BUILD index 53cc25f9683..c1a833dcd13 100644 --- a/pkg/kubeapiserver/admission/BUILD +++ b/pkg/kubeapiserver/admission/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/admission/configuration/BUILD b/pkg/kubeapiserver/admission/configuration/BUILD index 2cd84e5e40f..edd36ae534b 100644 --- a/pkg/kubeapiserver/admission/configuration/BUILD +++ b/pkg/kubeapiserver/admission/configuration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/authenticator/BUILD b/pkg/kubeapiserver/authenticator/BUILD index 2a87baf0a50..7f0b50de115 100644 --- a/pkg/kubeapiserver/authenticator/BUILD +++ b/pkg/kubeapiserver/authenticator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/authorizer/BUILD b/pkg/kubeapiserver/authorizer/BUILD index 7bfeef52dcc..5fab7712679 100644 --- a/pkg/kubeapiserver/authorizer/BUILD +++ b/pkg/kubeapiserver/authorizer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/authorizer/modes/BUILD b/pkg/kubeapiserver/authorizer/modes/BUILD index aa9f88a6723..3d6e3406c13 100644 --- a/pkg/kubeapiserver/authorizer/modes/BUILD +++ b/pkg/kubeapiserver/authorizer/modes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/options/BUILD b/pkg/kubeapiserver/options/BUILD index 3f994934806..83d1a3793bf 100644 --- a/pkg/kubeapiserver/options/BUILD +++ b/pkg/kubeapiserver/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubeapiserver/server/BUILD b/pkg/kubeapiserver/server/BUILD index 76ee22e949f..cbbc801b475 100644 --- a/pkg/kubeapiserver/server/BUILD +++ b/pkg/kubeapiserver/server/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/BUILD b/pkg/kubectl/BUILD index 198e2353f5e..a408dad1dea 100644 --- a/pkg/kubectl/BUILD +++ b/pkg/kubectl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/BUILD b/pkg/kubectl/cmd/BUILD index 95a003c2483..0ec8b593cfb 100644 --- a/pkg/kubectl/cmd/BUILD +++ b/pkg/kubectl/cmd/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/auth/BUILD b/pkg/kubectl/cmd/auth/BUILD index 51f4ef06dc6..a5b957d4b22 100644 --- a/pkg/kubectl/cmd/auth/BUILD +++ b/pkg/kubectl/cmd/auth/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/config/BUILD b/pkg/kubectl/cmd/config/BUILD index fae76b16c59..d5c9c127c5b 100644 --- a/pkg/kubectl/cmd/config/BUILD +++ b/pkg/kubectl/cmd/config/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/rollout/BUILD b/pkg/kubectl/cmd/rollout/BUILD index 0c178a802e9..d01d3a60359 100644 --- a/pkg/kubectl/cmd/rollout/BUILD +++ b/pkg/kubectl/cmd/rollout/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/set/BUILD b/pkg/kubectl/cmd/set/BUILD index f359949e960..78dc5d2c52c 100644 --- a/pkg/kubectl/cmd/set/BUILD +++ b/pkg/kubectl/cmd/set/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/templates/BUILD b/pkg/kubectl/cmd/templates/BUILD index dbdce1c02d7..082a402d495 100644 --- a/pkg/kubectl/cmd/templates/BUILD +++ b/pkg/kubectl/cmd/templates/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/testdata/edit/BUILD b/pkg/kubectl/cmd/testdata/edit/BUILD index b89d6371564..7c669944352 100644 --- a/pkg/kubectl/cmd/testdata/edit/BUILD +++ b/pkg/kubectl/cmd/testdata/edit/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/pkg/kubectl/cmd/testing/BUILD b/pkg/kubectl/cmd/testing/BUILD index dcb27a622a4..62f5708a2d0 100644 --- a/pkg/kubectl/cmd/testing/BUILD +++ b/pkg/kubectl/cmd/testing/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/util/BUILD b/pkg/kubectl/cmd/util/BUILD index 3c9b230c441..99473b51dc0 100644 --- a/pkg/kubectl/cmd/util/BUILD +++ b/pkg/kubectl/cmd/util/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/util/editor/BUILD b/pkg/kubectl/cmd/util/editor/BUILD index 19ed15efaad..31abf38cc4c 100644 --- a/pkg/kubectl/cmd/util/editor/BUILD +++ b/pkg/kubectl/cmd/util/editor/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/util/jsonmerge/BUILD b/pkg/kubectl/cmd/util/jsonmerge/BUILD index e4c31cc9bf0..c0d175fed69 100644 --- a/pkg/kubectl/cmd/util/jsonmerge/BUILD +++ b/pkg/kubectl/cmd/util/jsonmerge/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/util/openapi/BUILD b/pkg/kubectl/cmd/util/openapi/BUILD index fd79e0f8dba..b7377d9fd43 100644 --- a/pkg/kubectl/cmd/util/openapi/BUILD +++ b/pkg/kubectl/cmd/util/openapi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/cmd/util/sanity/BUILD b/pkg/kubectl/cmd/util/sanity/BUILD index 0bc87a614e3..d52936f879d 100644 --- a/pkg/kubectl/cmd/util/sanity/BUILD +++ b/pkg/kubectl/cmd/util/sanity/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/metricsutil/BUILD b/pkg/kubectl/metricsutil/BUILD index f03c6a0c360..ea100a92889 100644 --- a/pkg/kubectl/metricsutil/BUILD +++ b/pkg/kubectl/metricsutil/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/plugins/BUILD b/pkg/kubectl/plugins/BUILD index f47a947d748..31ee686c623 100644 --- a/pkg/kubectl/plugins/BUILD +++ b/pkg/kubectl/plugins/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/proxy/BUILD b/pkg/kubectl/proxy/BUILD index 0c72bf5e8e8..25d2977c8b2 100644 --- a/pkg/kubectl/proxy/BUILD +++ b/pkg/kubectl/proxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/resource/BUILD b/pkg/kubectl/resource/BUILD index 6b6fe109814..2e7ce43f1a0 100644 --- a/pkg/kubectl/resource/BUILD +++ b/pkg/kubectl/resource/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/testing/BUILD b/pkg/kubectl/testing/BUILD index 94d28c15973..cef4a41c33a 100644 --- a/pkg/kubectl/testing/BUILD +++ b/pkg/kubectl/testing/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/util/BUILD b/pkg/kubectl/util/BUILD index 0f59ced2547..4ee780e7f0f 100644 --- a/pkg/kubectl/util/BUILD +++ b/pkg/kubectl/util/BUILD @@ -1,5 +1,3 @@ -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/util/crlf/BUILD b/pkg/kubectl/util/crlf/BUILD index 6d57117091b..fc24ef43669 100644 --- a/pkg/kubectl/util/crlf/BUILD +++ b/pkg/kubectl/util/crlf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/util/logs/BUILD b/pkg/kubectl/util/logs/BUILD index 73bd9fde975..08392d469d0 100644 --- a/pkg/kubectl/util/logs/BUILD +++ b/pkg/kubectl/util/logs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/util/slice/BUILD b/pkg/kubectl/util/slice/BUILD index 25250fea759..4886be406f6 100644 --- a/pkg/kubectl/util/slice/BUILD +++ b/pkg/kubectl/util/slice/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubectl/util/term/BUILD b/pkg/kubectl/util/term/BUILD index 5c504b2cb66..1955efc780c 100644 --- a/pkg/kubectl/util/term/BUILD +++ b/pkg/kubectl/util/term/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/BUILD b/pkg/kubelet/BUILD index 3d38c47bdf9..3ceb61a0914 100644 --- a/pkg/kubelet/BUILD +++ b/pkg/kubelet/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/apis/BUILD b/pkg/kubelet/apis/BUILD index 6e0ffa157bc..ea268b1a9ea 100644 --- a/pkg/kubelet/apis/BUILD +++ b/pkg/kubelet/apis/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/apis/cri/BUILD b/pkg/kubelet/apis/cri/BUILD index c8637b05deb..0a869ef112d 100644 --- a/pkg/kubelet/apis/cri/BUILD +++ b/pkg/kubelet/apis/cri/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/apis/cri/testing/BUILD b/pkg/kubelet/apis/cri/testing/BUILD index d3636085484..45054521b78 100644 --- a/pkg/kubelet/apis/cri/testing/BUILD +++ b/pkg/kubelet/apis/cri/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD b/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD index c43100a21fc..c39b090d139 100644 --- a/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD +++ b/pkg/kubelet/apis/cri/v1alpha1/runtime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/apis/stats/v1alpha1/BUILD b/pkg/kubelet/apis/stats/v1alpha1/BUILD index b1994b8e384..26c1951081c 100644 --- a/pkg/kubelet/apis/stats/v1alpha1/BUILD +++ b/pkg/kubelet/apis/stats/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/cadvisor/BUILD b/pkg/kubelet/cadvisor/BUILD index 102e9e452b4..15cea0e8d72 100644 --- a/pkg/kubelet/cadvisor/BUILD +++ b/pkg/kubelet/cadvisor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/cadvisor/testing/BUILD b/pkg/kubelet/cadvisor/testing/BUILD index b67f9b872fa..bd41574fec1 100644 --- a/pkg/kubelet/cadvisor/testing/BUILD +++ b/pkg/kubelet/cadvisor/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/certificate/BUILD b/pkg/kubelet/certificate/BUILD index 0fe3227edf7..6def1dd40c1 100644 --- a/pkg/kubelet/certificate/BUILD +++ b/pkg/kubelet/certificate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/certificate/bootstrap/BUILD b/pkg/kubelet/certificate/bootstrap/BUILD index dc077efea49..669d9307577 100644 --- a/pkg/kubelet/certificate/bootstrap/BUILD +++ b/pkg/kubelet/certificate/bootstrap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/client/BUILD b/pkg/kubelet/client/BUILD index 7859b9c4a93..8a2ff7041dc 100644 --- a/pkg/kubelet/client/BUILD +++ b/pkg/kubelet/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/cm/BUILD b/pkg/kubelet/cm/BUILD index 15ecfaa792d..5bce88a5a28 100644 --- a/pkg/kubelet/cm/BUILD +++ b/pkg/kubelet/cm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/cm/util/BUILD b/pkg/kubelet/cm/util/BUILD index 88c5c923418..66030b3f25c 100644 --- a/pkg/kubelet/cm/util/BUILD +++ b/pkg/kubelet/cm/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/config/BUILD b/pkg/kubelet/config/BUILD index e345856a3d5..fc6b62394b5 100644 --- a/pkg/kubelet/config/BUILD +++ b/pkg/kubelet/config/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/configmap/BUILD b/pkg/kubelet/configmap/BUILD index 2d5f98b7c6a..c078a2b2f26 100644 --- a/pkg/kubelet/configmap/BUILD +++ b/pkg/kubelet/configmap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/container/BUILD b/pkg/kubelet/container/BUILD index eba2bb2d3f5..6f68454ab62 100644 --- a/pkg/kubelet/container/BUILD +++ b/pkg/kubelet/container/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/container/testing/BUILD b/pkg/kubelet/container/testing/BUILD index 4d6fc0e88ba..3efa80948c6 100644 --- a/pkg/kubelet/container/testing/BUILD +++ b/pkg/kubelet/container/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/custommetrics/BUILD b/pkg/kubelet/custommetrics/BUILD index 5df606daa14..8f2814384e2 100644 --- a/pkg/kubelet/custommetrics/BUILD +++ b/pkg/kubelet/custommetrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/dockershim/BUILD b/pkg/kubelet/dockershim/BUILD index 937f33129c0..c4554ded65e 100644 --- a/pkg/kubelet/dockershim/BUILD +++ b/pkg/kubelet/dockershim/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/dockershim/cm/BUILD b/pkg/kubelet/dockershim/cm/BUILD index a79b3f56b7c..a83c367b85e 100644 --- a/pkg/kubelet/dockershim/cm/BUILD +++ b/pkg/kubelet/dockershim/cm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/dockershim/errors/BUILD b/pkg/kubelet/dockershim/errors/BUILD index fc6c26bff0f..1a00c4f8509 100644 --- a/pkg/kubelet/dockershim/errors/BUILD +++ b/pkg/kubelet/dockershim/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/dockershim/libdocker/BUILD b/pkg/kubelet/dockershim/libdocker/BUILD index 859a9f7b813..c6f09bd9bb7 100644 --- a/pkg/kubelet/dockershim/libdocker/BUILD +++ b/pkg/kubelet/dockershim/libdocker/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/dockershim/remote/BUILD b/pkg/kubelet/dockershim/remote/BUILD index c78a62d2b87..9460128d657 100644 --- a/pkg/kubelet/dockershim/remote/BUILD +++ b/pkg/kubelet/dockershim/remote/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/dockershim/testing/BUILD b/pkg/kubelet/dockershim/testing/BUILD index bab51629471..9400d0efa7f 100644 --- a/pkg/kubelet/dockershim/testing/BUILD +++ b/pkg/kubelet/dockershim/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/envvars/BUILD b/pkg/kubelet/envvars/BUILD index f5225d6a866..335fb9ef673 100644 --- a/pkg/kubelet/envvars/BUILD +++ b/pkg/kubelet/envvars/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/events/BUILD b/pkg/kubelet/events/BUILD index 1d3b21ff839..eb4d17dddf3 100644 --- a/pkg/kubelet/events/BUILD +++ b/pkg/kubelet/events/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/eviction/BUILD b/pkg/kubelet/eviction/BUILD index 93ec72907a1..0d796fdd3a7 100644 --- a/pkg/kubelet/eviction/BUILD +++ b/pkg/kubelet/eviction/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/eviction/api/BUILD b/pkg/kubelet/eviction/api/BUILD index fe8c1d1d727..e36c2fc1cfd 100644 --- a/pkg/kubelet/eviction/api/BUILD +++ b/pkg/kubelet/eviction/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/gpu/BUILD b/pkg/kubelet/gpu/BUILD index 190a7b1f872..885d267ad29 100644 --- a/pkg/kubelet/gpu/BUILD +++ b/pkg/kubelet/gpu/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/gpu/nvidia/BUILD b/pkg/kubelet/gpu/nvidia/BUILD index a3e9d2167e2..71f110e8a07 100644 --- a/pkg/kubelet/gpu/nvidia/BUILD +++ b/pkg/kubelet/gpu/nvidia/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/images/BUILD b/pkg/kubelet/images/BUILD index 8dd0b37507b..e67fb3b7640 100644 --- a/pkg/kubelet/images/BUILD +++ b/pkg/kubelet/images/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/BUILD b/pkg/kubelet/kubeletconfig/BUILD index b846daf0432..b85d49d1627 100644 --- a/pkg/kubelet/kubeletconfig/BUILD +++ b/pkg/kubelet/kubeletconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/badconfig/BUILD b/pkg/kubelet/kubeletconfig/badconfig/BUILD index ee2249af593..82fecc72678 100644 --- a/pkg/kubelet/kubeletconfig/badconfig/BUILD +++ b/pkg/kubelet/kubeletconfig/badconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/checkpoint/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/BUILD index afaca92e756..e04e74148f8 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/BUILD +++ b/pkg/kubelet/kubeletconfig/checkpoint/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD b/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD index 7331ad1f2b8..44be6347300 100644 --- a/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD +++ b/pkg/kubelet/kubeletconfig/checkpoint/store/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/configfiles/BUILD b/pkg/kubelet/kubeletconfig/configfiles/BUILD index 974828480a7..1c594f31ad9 100644 --- a/pkg/kubelet/kubeletconfig/configfiles/BUILD +++ b/pkg/kubelet/kubeletconfig/configfiles/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/startups/BUILD b/pkg/kubelet/kubeletconfig/startups/BUILD index 8063b615128..4dfd37e775e 100644 --- a/pkg/kubelet/kubeletconfig/startups/BUILD +++ b/pkg/kubelet/kubeletconfig/startups/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/status/BUILD b/pkg/kubelet/kubeletconfig/status/BUILD index 920708bda6e..0226c794b54 100644 --- a/pkg/kubelet/kubeletconfig/status/BUILD +++ b/pkg/kubelet/kubeletconfig/status/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/util/codec/BUILD b/pkg/kubelet/kubeletconfig/util/codec/BUILD index 052fd5da9dc..cf7f42f435f 100644 --- a/pkg/kubelet/kubeletconfig/util/codec/BUILD +++ b/pkg/kubelet/kubeletconfig/util/codec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/util/equal/BUILD b/pkg/kubelet/kubeletconfig/util/equal/BUILD index 15413c2e038..aa0c8e0402e 100644 --- a/pkg/kubelet/kubeletconfig/util/equal/BUILD +++ b/pkg/kubelet/kubeletconfig/util/equal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/util/files/BUILD b/pkg/kubelet/kubeletconfig/util/files/BUILD index f31c0dcc7c7..9c4c8cffcb8 100644 --- a/pkg/kubelet/kubeletconfig/util/files/BUILD +++ b/pkg/kubelet/kubeletconfig/util/files/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/util/filesystem/BUILD b/pkg/kubelet/kubeletconfig/util/filesystem/BUILD index 8f37ffba447..4b72a6e32fd 100644 --- a/pkg/kubelet/kubeletconfig/util/filesystem/BUILD +++ b/pkg/kubelet/kubeletconfig/util/filesystem/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/util/log/BUILD b/pkg/kubelet/kubeletconfig/util/log/BUILD index d6268dd0475..39e96f84c3b 100644 --- a/pkg/kubelet/kubeletconfig/util/log/BUILD +++ b/pkg/kubelet/kubeletconfig/util/log/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/util/panic/BUILD b/pkg/kubelet/kubeletconfig/util/panic/BUILD index 8a13cd0f706..eb72800ec04 100644 --- a/pkg/kubelet/kubeletconfig/util/panic/BUILD +++ b/pkg/kubelet/kubeletconfig/util/panic/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kubeletconfig/util/test/BUILD b/pkg/kubelet/kubeletconfig/util/test/BUILD index a5016e88fb4..a346f93f23d 100644 --- a/pkg/kubelet/kubeletconfig/util/test/BUILD +++ b/pkg/kubelet/kubeletconfig/util/test/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/kuberuntime/BUILD b/pkg/kubelet/kuberuntime/BUILD index 54372f7d402..bef4f1a062f 100644 --- a/pkg/kubelet/kuberuntime/BUILD +++ b/pkg/kubelet/kuberuntime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/leaky/BUILD b/pkg/kubelet/leaky/BUILD index 8800af16e71..3c17746f192 100644 --- a/pkg/kubelet/leaky/BUILD +++ b/pkg/kubelet/leaky/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/lifecycle/BUILD b/pkg/kubelet/lifecycle/BUILD index 70295e468e6..0db7c55df0a 100644 --- a/pkg/kubelet/lifecycle/BUILD +++ b/pkg/kubelet/lifecycle/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/metrics/BUILD b/pkg/kubelet/metrics/BUILD index 0e8cde0fa9a..d64c12f4db9 100644 --- a/pkg/kubelet/metrics/BUILD +++ b/pkg/kubelet/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/BUILD b/pkg/kubelet/network/BUILD index bf386b55b83..913b48514b4 100644 --- a/pkg/kubelet/network/BUILD +++ b/pkg/kubelet/network/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/cni/BUILD b/pkg/kubelet/network/cni/BUILD index 28351ab5e29..3d90ab5744e 100644 --- a/pkg/kubelet/network/cni/BUILD +++ b/pkg/kubelet/network/cni/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/cni/testing/BUILD b/pkg/kubelet/network/cni/testing/BUILD index 9cd6c29fb56..80b1bee6dcd 100644 --- a/pkg/kubelet/network/cni/testing/BUILD +++ b/pkg/kubelet/network/cni/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/hairpin/BUILD b/pkg/kubelet/network/hairpin/BUILD index 7a8958a84ff..88096d4557b 100644 --- a/pkg/kubelet/network/hairpin/BUILD +++ b/pkg/kubelet/network/hairpin/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/hostport/BUILD b/pkg/kubelet/network/hostport/BUILD index 0393b201c3e..e38aab17930 100644 --- a/pkg/kubelet/network/hostport/BUILD +++ b/pkg/kubelet/network/hostport/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/hostport/testing/BUILD b/pkg/kubelet/network/hostport/testing/BUILD index dbac4d80019..03a41aa5a5c 100644 --- a/pkg/kubelet/network/hostport/testing/BUILD +++ b/pkg/kubelet/network/hostport/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/kubenet/BUILD b/pkg/kubelet/network/kubenet/BUILD index ac144b6f1dd..dc5b90fad6d 100644 --- a/pkg/kubelet/network/kubenet/BUILD +++ b/pkg/kubelet/network/kubenet/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/network/testing/BUILD b/pkg/kubelet/network/testing/BUILD index 363a5d623c1..cdc4bd5e4bf 100644 --- a/pkg/kubelet/network/testing/BUILD +++ b/pkg/kubelet/network/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/pleg/BUILD b/pkg/kubelet/pleg/BUILD index 78031d28d34..4bf6c7a7550 100644 --- a/pkg/kubelet/pleg/BUILD +++ b/pkg/kubelet/pleg/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/pod/BUILD b/pkg/kubelet/pod/BUILD index 1488665fa32..937aae83c50 100644 --- a/pkg/kubelet/pod/BUILD +++ b/pkg/kubelet/pod/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/pod/testing/BUILD b/pkg/kubelet/pod/testing/BUILD index c785a5e5001..0120951709e 100644 --- a/pkg/kubelet/pod/testing/BUILD +++ b/pkg/kubelet/pod/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/preemption/BUILD b/pkg/kubelet/preemption/BUILD index 59b8278ee04..cdc9c181195 100644 --- a/pkg/kubelet/preemption/BUILD +++ b/pkg/kubelet/preemption/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/prober/BUILD b/pkg/kubelet/prober/BUILD index 6a7c8b24e5a..380e5f5ee6e 100644 --- a/pkg/kubelet/prober/BUILD +++ b/pkg/kubelet/prober/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/prober/results/BUILD b/pkg/kubelet/prober/results/BUILD index 563127e35db..b33f0f722d1 100644 --- a/pkg/kubelet/prober/results/BUILD +++ b/pkg/kubelet/prober/results/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/prober/testing/BUILD b/pkg/kubelet/prober/testing/BUILD index 78e55670926..af63bb324e5 100644 --- a/pkg/kubelet/prober/testing/BUILD +++ b/pkg/kubelet/prober/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/qos/BUILD b/pkg/kubelet/qos/BUILD index 9bf07da7976..c7a50447f4a 100644 --- a/pkg/kubelet/qos/BUILD +++ b/pkg/kubelet/qos/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/remote/BUILD b/pkg/kubelet/remote/BUILD index 295540eb64f..91528ac553e 100644 --- a/pkg/kubelet/remote/BUILD +++ b/pkg/kubelet/remote/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/rkt/BUILD b/pkg/kubelet/rkt/BUILD index 3b47a5b6836..5193140585a 100644 --- a/pkg/kubelet/rkt/BUILD +++ b/pkg/kubelet/rkt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/rktshim/BUILD b/pkg/kubelet/rktshim/BUILD index a9cb716b59c..c621cd2ca69 100644 --- a/pkg/kubelet/rktshim/BUILD +++ b/pkg/kubelet/rktshim/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/secret/BUILD b/pkg/kubelet/secret/BUILD index 55261f99b3e..e7be9d1a136 100644 --- a/pkg/kubelet/secret/BUILD +++ b/pkg/kubelet/secret/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/server/BUILD b/pkg/kubelet/server/BUILD index 79fef79bd34..cfc4800fa04 100644 --- a/pkg/kubelet/server/BUILD +++ b/pkg/kubelet/server/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/server/portforward/BUILD b/pkg/kubelet/server/portforward/BUILD index 6bb8706e80d..23f52c98fd1 100644 --- a/pkg/kubelet/server/portforward/BUILD +++ b/pkg/kubelet/server/portforward/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/server/remotecommand/BUILD b/pkg/kubelet/server/remotecommand/BUILD index ee271d7f9bf..f93da253f84 100644 --- a/pkg/kubelet/server/remotecommand/BUILD +++ b/pkg/kubelet/server/remotecommand/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/server/stats/BUILD b/pkg/kubelet/server/stats/BUILD index 9bc6abe5d74..8c026960d49 100644 --- a/pkg/kubelet/server/stats/BUILD +++ b/pkg/kubelet/server/stats/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/server/streaming/BUILD b/pkg/kubelet/server/streaming/BUILD index e70a2d992b8..21d1a4b6dbb 100644 --- a/pkg/kubelet/server/streaming/BUILD +++ b/pkg/kubelet/server/streaming/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/status/BUILD b/pkg/kubelet/status/BUILD index b0d35e24d8b..3064ee30df6 100644 --- a/pkg/kubelet/status/BUILD +++ b/pkg/kubelet/status/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/status/testing/BUILD b/pkg/kubelet/status/testing/BUILD index 11e3296ac6f..971b9b4335c 100644 --- a/pkg/kubelet/status/testing/BUILD +++ b/pkg/kubelet/status/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/sysctl/BUILD b/pkg/kubelet/sysctl/BUILD index dc2c213070d..4a67fb103f9 100644 --- a/pkg/kubelet/sysctl/BUILD +++ b/pkg/kubelet/sysctl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/types/BUILD b/pkg/kubelet/types/BUILD index d0c3fe20bc9..c44dfba7164 100644 --- a/pkg/kubelet/types/BUILD +++ b/pkg/kubelet/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/util/BUILD b/pkg/kubelet/util/BUILD index 207b49fbd71..3a9b2819b47 100644 --- a/pkg/kubelet/util/BUILD +++ b/pkg/kubelet/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/util/cache/BUILD b/pkg/kubelet/util/cache/BUILD index 0374e6abd5d..fa2bdda5e3a 100644 --- a/pkg/kubelet/util/cache/BUILD +++ b/pkg/kubelet/util/cache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/util/csr/BUILD b/pkg/kubelet/util/csr/BUILD index 1cfd6d5d156..41a9a00526c 100644 --- a/pkg/kubelet/util/csr/BUILD +++ b/pkg/kubelet/util/csr/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/util/format/BUILD b/pkg/kubelet/util/format/BUILD index 3097514e268..a560f2cfe34 100644 --- a/pkg/kubelet/util/format/BUILD +++ b/pkg/kubelet/util/format/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/util/ioutils/BUILD b/pkg/kubelet/util/ioutils/BUILD index 09d71e9c5da..52deb751060 100644 --- a/pkg/kubelet/util/ioutils/BUILD +++ b/pkg/kubelet/util/ioutils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/util/queue/BUILD b/pkg/kubelet/util/queue/BUILD index 07ad2e9ac87..137940238c1 100644 --- a/pkg/kubelet/util/queue/BUILD +++ b/pkg/kubelet/util/queue/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/util/sliceutils/BUILD b/pkg/kubelet/util/sliceutils/BUILD index aefa33816bf..1d6438571e9 100644 --- a/pkg/kubelet/util/sliceutils/BUILD +++ b/pkg/kubelet/util/sliceutils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/volumemanager/BUILD b/pkg/kubelet/volumemanager/BUILD index 2d89e49059e..e3259fb1e84 100644 --- a/pkg/kubelet/volumemanager/BUILD +++ b/pkg/kubelet/volumemanager/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/volumemanager/cache/BUILD b/pkg/kubelet/volumemanager/cache/BUILD index 36c7257e1f6..ec3515c9b64 100644 --- a/pkg/kubelet/volumemanager/cache/BUILD +++ b/pkg/kubelet/volumemanager/cache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/volumemanager/populator/BUILD b/pkg/kubelet/volumemanager/populator/BUILD index 275f070ce6f..738d8d5421b 100644 --- a/pkg/kubelet/volumemanager/populator/BUILD +++ b/pkg/kubelet/volumemanager/populator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubelet/volumemanager/reconciler/BUILD b/pkg/kubelet/volumemanager/reconciler/BUILD index bfdefa0c276..97065574636 100644 --- a/pkg/kubelet/volumemanager/reconciler/BUILD +++ b/pkg/kubelet/volumemanager/reconciler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/kubemark/BUILD b/pkg/kubemark/BUILD index 33ecd6b7389..0a1050321af 100644 --- a/pkg/kubemark/BUILD +++ b/pkg/kubemark/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/labels/BUILD b/pkg/labels/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/labels/BUILD +++ b/pkg/labels/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/master/BUILD b/pkg/master/BUILD index 1f8448c18ea..1dad3bec249 100644 --- a/pkg/master/BUILD +++ b/pkg/master/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/master/controller/crdregistration/BUILD b/pkg/master/controller/crdregistration/BUILD index 4212768b148..b1e187cfd62 100644 --- a/pkg/master/controller/crdregistration/BUILD +++ b/pkg/master/controller/crdregistration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/master/ports/BUILD b/pkg/master/ports/BUILD index 84f433c4329..1b047cda995 100644 --- a/pkg/master/ports/BUILD +++ b/pkg/master/ports/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/master/tunneler/BUILD b/pkg/master/tunneler/BUILD index c204c98fa1a..906195f4b54 100644 --- a/pkg/master/tunneler/BUILD +++ b/pkg/master/tunneler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/printers/BUILD b/pkg/printers/BUILD index fc2c11ec3a9..b2336dc0ab4 100644 --- a/pkg/printers/BUILD +++ b/pkg/printers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/printers/internalversion/BUILD b/pkg/printers/internalversion/BUILD index 346140317d7..fa0ad5d66b0 100644 --- a/pkg/printers/internalversion/BUILD +++ b/pkg/printers/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/printers/storage/BUILD b/pkg/printers/storage/BUILD index 3a51ff626ea..e73577baa88 100644 --- a/pkg/printers/storage/BUILD +++ b/pkg/printers/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/probe/BUILD b/pkg/probe/BUILD index f9395951d1c..2e21d154fd2 100644 --- a/pkg/probe/BUILD +++ b/pkg/probe/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/probe/exec/BUILD b/pkg/probe/exec/BUILD index fdce701544a..d817517657d 100644 --- a/pkg/probe/exec/BUILD +++ b/pkg/probe/exec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/probe/http/BUILD b/pkg/probe/http/BUILD index 2eafc0a093a..40eb47fd890 100644 --- a/pkg/probe/http/BUILD +++ b/pkg/probe/http/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/probe/tcp/BUILD b/pkg/probe/tcp/BUILD index 9048839a855..7d19c9598ae 100644 --- a/pkg/probe/tcp/BUILD +++ b/pkg/probe/tcp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/proxy/BUILD b/pkg/proxy/BUILD index 91958aae41b..22bf30b13ce 100644 --- a/pkg/proxy/BUILD +++ b/pkg/proxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/proxy/config/BUILD b/pkg/proxy/config/BUILD index 9e8f76d0a26..997dc924336 100644 --- a/pkg/proxy/config/BUILD +++ b/pkg/proxy/config/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/proxy/healthcheck/BUILD b/pkg/proxy/healthcheck/BUILD index 0be2e85ca4e..77b102f482f 100644 --- a/pkg/proxy/healthcheck/BUILD +++ b/pkg/proxy/healthcheck/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/proxy/iptables/BUILD b/pkg/proxy/iptables/BUILD index 338980447e8..e6c45650b38 100644 --- a/pkg/proxy/iptables/BUILD +++ b/pkg/proxy/iptables/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/proxy/userspace/BUILD b/pkg/proxy/userspace/BUILD index 7750cc1e192..096f905bf7c 100644 --- a/pkg/proxy/userspace/BUILD +++ b/pkg/proxy/userspace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/proxy/util/BUILD b/pkg/proxy/util/BUILD index ca6c4d77cc0..61acf95fca0 100644 --- a/pkg/proxy/util/BUILD +++ b/pkg/proxy/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/proxy/winuserspace/BUILD b/pkg/proxy/winuserspace/BUILD index 7722e4fbc3a..f288701bb4b 100644 --- a/pkg/proxy/winuserspace/BUILD +++ b/pkg/proxy/winuserspace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/quota/BUILD b/pkg/quota/BUILD index 72a62317ec1..a6a27b32818 100644 --- a/pkg/quota/BUILD +++ b/pkg/quota/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/quota/evaluator/core/BUILD b/pkg/quota/evaluator/core/BUILD index 3015fb7f08a..efc0798d80a 100644 --- a/pkg/quota/evaluator/core/BUILD +++ b/pkg/quota/evaluator/core/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/quota/generic/BUILD b/pkg/quota/generic/BUILD index 4de2bddb5fc..bfb9678a52a 100644 --- a/pkg/quota/generic/BUILD +++ b/pkg/quota/generic/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/quota/install/BUILD b/pkg/quota/install/BUILD index 51950f4d8e0..ffd846ea53e 100644 --- a/pkg/quota/install/BUILD +++ b/pkg/quota/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/BUILD b/pkg/registry/BUILD index a1f220d99f5..c2ed8b6e87f 100644 --- a/pkg/registry/BUILD +++ b/pkg/registry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD index 6b2b62d88a0..a9da4037d28 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD index ecc0a364557..e6f3f01aaa3 100644 --- a/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD +++ b/pkg/registry/admissionregistration/externaladmissionhookconfiguration/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/admissionregistration/initializerconfiguration/BUILD b/pkg/registry/admissionregistration/initializerconfiguration/BUILD index d0103160fd5..d62b4cec5e5 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/BUILD +++ b/pkg/registry/admissionregistration/initializerconfiguration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD b/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD index c5b0141e387..e17412bd546 100644 --- a/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD +++ b/pkg/registry/admissionregistration/initializerconfiguration/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/admissionregistration/rest/BUILD b/pkg/registry/admissionregistration/rest/BUILD index 9c415774f62..ad10e541579 100644 --- a/pkg/registry/admissionregistration/rest/BUILD +++ b/pkg/registry/admissionregistration/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/apps/controllerrevision/BUILD b/pkg/registry/apps/controllerrevision/BUILD index f7b60c24120..bfc7313563d 100644 --- a/pkg/registry/apps/controllerrevision/BUILD +++ b/pkg/registry/apps/controllerrevision/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/apps/controllerrevision/storage/BUILD b/pkg/registry/apps/controllerrevision/storage/BUILD index 02093cbb63a..7edd6141f2b 100644 --- a/pkg/registry/apps/controllerrevision/storage/BUILD +++ b/pkg/registry/apps/controllerrevision/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/apps/rest/BUILD b/pkg/registry/apps/rest/BUILD index 5441201a200..50c102d96c4 100644 --- a/pkg/registry/apps/rest/BUILD +++ b/pkg/registry/apps/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/apps/statefulset/BUILD b/pkg/registry/apps/statefulset/BUILD index e58f183f3bf..d57cf948611 100644 --- a/pkg/registry/apps/statefulset/BUILD +++ b/pkg/registry/apps/statefulset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/apps/statefulset/storage/BUILD b/pkg/registry/apps/statefulset/storage/BUILD index 90977b2297d..1d3a58e6573 100644 --- a/pkg/registry/apps/statefulset/storage/BUILD +++ b/pkg/registry/apps/statefulset/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/authentication/rest/BUILD b/pkg/registry/authentication/rest/BUILD index 6f2b4e3c10f..51806bec798 100644 --- a/pkg/registry/authentication/rest/BUILD +++ b/pkg/registry/authentication/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/authentication/tokenreview/BUILD b/pkg/registry/authentication/tokenreview/BUILD index a0274dab818..d5ab8782e09 100644 --- a/pkg/registry/authentication/tokenreview/BUILD +++ b/pkg/registry/authentication/tokenreview/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/authorization/localsubjectaccessreview/BUILD b/pkg/registry/authorization/localsubjectaccessreview/BUILD index 60c9a9b9275..183187ecac5 100644 --- a/pkg/registry/authorization/localsubjectaccessreview/BUILD +++ b/pkg/registry/authorization/localsubjectaccessreview/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/authorization/rest/BUILD b/pkg/registry/authorization/rest/BUILD index 8a9fdcef2f6..00520bd895c 100644 --- a/pkg/registry/authorization/rest/BUILD +++ b/pkg/registry/authorization/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/authorization/selfsubjectaccessreview/BUILD b/pkg/registry/authorization/selfsubjectaccessreview/BUILD index 60c9a9b9275..183187ecac5 100644 --- a/pkg/registry/authorization/selfsubjectaccessreview/BUILD +++ b/pkg/registry/authorization/selfsubjectaccessreview/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/authorization/subjectaccessreview/BUILD b/pkg/registry/authorization/subjectaccessreview/BUILD index bfc17ce879a..48a8ed0edeb 100644 --- a/pkg/registry/authorization/subjectaccessreview/BUILD +++ b/pkg/registry/authorization/subjectaccessreview/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/authorization/util/BUILD b/pkg/registry/authorization/util/BUILD index 1b227becf00..b87df6971b7 100644 --- a/pkg/registry/authorization/util/BUILD +++ b/pkg/registry/authorization/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD b/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD index 12b1e70c530..8eb0c99ba17 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD index 2c73f694e07..047c4477e71 100644 --- a/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD +++ b/pkg/registry/autoscaling/horizontalpodautoscaler/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/autoscaling/rest/BUILD b/pkg/registry/autoscaling/rest/BUILD index 5e7f51e7954..d49d4915172 100644 --- a/pkg/registry/autoscaling/rest/BUILD +++ b/pkg/registry/autoscaling/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/batch/cronjob/BUILD b/pkg/registry/batch/cronjob/BUILD index 6b1122f8316..efcde007372 100644 --- a/pkg/registry/batch/cronjob/BUILD +++ b/pkg/registry/batch/cronjob/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/batch/cronjob/storage/BUILD b/pkg/registry/batch/cronjob/storage/BUILD index 0f08ac40d22..2d8b18208f0 100644 --- a/pkg/registry/batch/cronjob/storage/BUILD +++ b/pkg/registry/batch/cronjob/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/batch/job/BUILD b/pkg/registry/batch/job/BUILD index af63f6a5d0a..1361d89b64c 100644 --- a/pkg/registry/batch/job/BUILD +++ b/pkg/registry/batch/job/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/batch/job/storage/BUILD b/pkg/registry/batch/job/storage/BUILD index 70e843eb3e9..90b02b45ff2 100644 --- a/pkg/registry/batch/job/storage/BUILD +++ b/pkg/registry/batch/job/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/batch/rest/BUILD b/pkg/registry/batch/rest/BUILD index fcca76db93d..75043c19a93 100644 --- a/pkg/registry/batch/rest/BUILD +++ b/pkg/registry/batch/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/cachesize/BUILD b/pkg/registry/cachesize/BUILD index c700cb35ad4..e3aa4ce9244 100644 --- a/pkg/registry/cachesize/BUILD +++ b/pkg/registry/cachesize/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/certificates/certificates/BUILD b/pkg/registry/certificates/certificates/BUILD index 0e5ea93cf28..664b1617c9d 100644 --- a/pkg/registry/certificates/certificates/BUILD +++ b/pkg/registry/certificates/certificates/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/certificates/certificates/storage/BUILD b/pkg/registry/certificates/certificates/storage/BUILD index 915f10126bf..728c179baac 100644 --- a/pkg/registry/certificates/certificates/storage/BUILD +++ b/pkg/registry/certificates/certificates/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/certificates/rest/BUILD b/pkg/registry/certificates/rest/BUILD index 6f26692250b..bce4c0e1990 100644 --- a/pkg/registry/certificates/rest/BUILD +++ b/pkg/registry/certificates/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/componentstatus/BUILD b/pkg/registry/core/componentstatus/BUILD index 73516fb01f6..626fa212837 100644 --- a/pkg/registry/core/componentstatus/BUILD +++ b/pkg/registry/core/componentstatus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/configmap/BUILD b/pkg/registry/core/configmap/BUILD index efe2e2ccf83..bfde09681bf 100644 --- a/pkg/registry/core/configmap/BUILD +++ b/pkg/registry/core/configmap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/configmap/storage/BUILD b/pkg/registry/core/configmap/storage/BUILD index d3b79381383..09ad1d6562d 100644 --- a/pkg/registry/core/configmap/storage/BUILD +++ b/pkg/registry/core/configmap/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/endpoint/BUILD b/pkg/registry/core/endpoint/BUILD index 3d184ae869e..7b69243684e 100644 --- a/pkg/registry/core/endpoint/BUILD +++ b/pkg/registry/core/endpoint/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/endpoint/storage/BUILD b/pkg/registry/core/endpoint/storage/BUILD index 26a33f9f70c..3721e1a89c9 100644 --- a/pkg/registry/core/endpoint/storage/BUILD +++ b/pkg/registry/core/endpoint/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/event/BUILD b/pkg/registry/core/event/BUILD index 8b0effbee7d..543db1db613 100644 --- a/pkg/registry/core/event/BUILD +++ b/pkg/registry/core/event/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/event/storage/BUILD b/pkg/registry/core/event/storage/BUILD index 75838fdda2b..d8b3f471935 100644 --- a/pkg/registry/core/event/storage/BUILD +++ b/pkg/registry/core/event/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/limitrange/BUILD b/pkg/registry/core/limitrange/BUILD index e8f58c7fb07..3399ff6c1c3 100644 --- a/pkg/registry/core/limitrange/BUILD +++ b/pkg/registry/core/limitrange/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/limitrange/storage/BUILD b/pkg/registry/core/limitrange/storage/BUILD index ef5138613cd..d94d65f4575 100644 --- a/pkg/registry/core/limitrange/storage/BUILD +++ b/pkg/registry/core/limitrange/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/namespace/BUILD b/pkg/registry/core/namespace/BUILD index cf4634f5767..a01b00ac55d 100644 --- a/pkg/registry/core/namespace/BUILD +++ b/pkg/registry/core/namespace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/namespace/storage/BUILD b/pkg/registry/core/namespace/storage/BUILD index e0e82c46510..564c4a67f88 100644 --- a/pkg/registry/core/namespace/storage/BUILD +++ b/pkg/registry/core/namespace/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/node/BUILD b/pkg/registry/core/node/BUILD index fd1ac0bedf8..2cfe69090f2 100644 --- a/pkg/registry/core/node/BUILD +++ b/pkg/registry/core/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/node/rest/BUILD b/pkg/registry/core/node/rest/BUILD index e79b00f90c5..5af1784d1d3 100644 --- a/pkg/registry/core/node/rest/BUILD +++ b/pkg/registry/core/node/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/node/storage/BUILD b/pkg/registry/core/node/storage/BUILD index 0862705e799..04d1942af5f 100644 --- a/pkg/registry/core/node/storage/BUILD +++ b/pkg/registry/core/node/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/persistentvolume/BUILD b/pkg/registry/core/persistentvolume/BUILD index ebae6261b15..8ca7cf31ddf 100644 --- a/pkg/registry/core/persistentvolume/BUILD +++ b/pkg/registry/core/persistentvolume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/persistentvolume/storage/BUILD b/pkg/registry/core/persistentvolume/storage/BUILD index ea07690b0b8..61998e0d5a1 100644 --- a/pkg/registry/core/persistentvolume/storage/BUILD +++ b/pkg/registry/core/persistentvolume/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/persistentvolumeclaim/BUILD b/pkg/registry/core/persistentvolumeclaim/BUILD index 8645f2e8aa7..156985bb5ee 100644 --- a/pkg/registry/core/persistentvolumeclaim/BUILD +++ b/pkg/registry/core/persistentvolumeclaim/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/persistentvolumeclaim/storage/BUILD b/pkg/registry/core/persistentvolumeclaim/storage/BUILD index f831f72ca7d..29a3ebbc8ac 100644 --- a/pkg/registry/core/persistentvolumeclaim/storage/BUILD +++ b/pkg/registry/core/persistentvolumeclaim/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/pod/BUILD b/pkg/registry/core/pod/BUILD index 3d417daf600..36a4b049f6c 100644 --- a/pkg/registry/core/pod/BUILD +++ b/pkg/registry/core/pod/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/pod/rest/BUILD b/pkg/registry/core/pod/rest/BUILD index 71fed809213..110bbda79d3 100644 --- a/pkg/registry/core/pod/rest/BUILD +++ b/pkg/registry/core/pod/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/pod/storage/BUILD b/pkg/registry/core/pod/storage/BUILD index 63ce729e5eb..969c096caa6 100644 --- a/pkg/registry/core/pod/storage/BUILD +++ b/pkg/registry/core/pod/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/podtemplate/BUILD b/pkg/registry/core/podtemplate/BUILD index 64efa24a062..56c64540e27 100644 --- a/pkg/registry/core/podtemplate/BUILD +++ b/pkg/registry/core/podtemplate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/podtemplate/storage/BUILD b/pkg/registry/core/podtemplate/storage/BUILD index 0af1cc840e5..94aeadfdbd6 100644 --- a/pkg/registry/core/podtemplate/storage/BUILD +++ b/pkg/registry/core/podtemplate/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/rangeallocation/BUILD b/pkg/registry/core/rangeallocation/BUILD index 497f47bf504..bf1d577e3a7 100644 --- a/pkg/registry/core/rangeallocation/BUILD +++ b/pkg/registry/core/rangeallocation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/replicationcontroller/BUILD b/pkg/registry/core/replicationcontroller/BUILD index 1c4cca0152a..6f3f74e28e2 100644 --- a/pkg/registry/core/replicationcontroller/BUILD +++ b/pkg/registry/core/replicationcontroller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/replicationcontroller/storage/BUILD b/pkg/registry/core/replicationcontroller/storage/BUILD index daa18ae103a..ffef9f4d1d3 100644 --- a/pkg/registry/core/replicationcontroller/storage/BUILD +++ b/pkg/registry/core/replicationcontroller/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/resourcequota/BUILD b/pkg/registry/core/resourcequota/BUILD index 8539638a6cc..a7d75810c4b 100644 --- a/pkg/registry/core/resourcequota/BUILD +++ b/pkg/registry/core/resourcequota/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/resourcequota/storage/BUILD b/pkg/registry/core/resourcequota/storage/BUILD index 6fabb23fa4d..6780ca26cbd 100644 --- a/pkg/registry/core/resourcequota/storage/BUILD +++ b/pkg/registry/core/resourcequota/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/rest/BUILD b/pkg/registry/core/rest/BUILD index 4eec208df1d..d18bc4989b5 100644 --- a/pkg/registry/core/rest/BUILD +++ b/pkg/registry/core/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/secret/BUILD b/pkg/registry/core/secret/BUILD index ffa95a22990..ade27419594 100644 --- a/pkg/registry/core/secret/BUILD +++ b/pkg/registry/core/secret/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/secret/storage/BUILD b/pkg/registry/core/secret/storage/BUILD index 504f1f4325e..a7f546c8f00 100644 --- a/pkg/registry/core/secret/storage/BUILD +++ b/pkg/registry/core/secret/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/BUILD b/pkg/registry/core/service/BUILD index 13d94f0a382..c6375b665da 100644 --- a/pkg/registry/core/service/BUILD +++ b/pkg/registry/core/service/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/allocator/BUILD b/pkg/registry/core/service/allocator/BUILD index e126a007dff..f397ec4b6d7 100644 --- a/pkg/registry/core/service/allocator/BUILD +++ b/pkg/registry/core/service/allocator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/allocator/storage/BUILD b/pkg/registry/core/service/allocator/storage/BUILD index 2bfd1d27226..d24f9872c36 100644 --- a/pkg/registry/core/service/allocator/storage/BUILD +++ b/pkg/registry/core/service/allocator/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/ipallocator/BUILD b/pkg/registry/core/service/ipallocator/BUILD index 851b6ad8d99..eea401e7bfe 100644 --- a/pkg/registry/core/service/ipallocator/BUILD +++ b/pkg/registry/core/service/ipallocator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/ipallocator/controller/BUILD b/pkg/registry/core/service/ipallocator/controller/BUILD index 97896496dc4..90f1dbbe109 100644 --- a/pkg/registry/core/service/ipallocator/controller/BUILD +++ b/pkg/registry/core/service/ipallocator/controller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/ipallocator/storage/BUILD b/pkg/registry/core/service/ipallocator/storage/BUILD index 6ff71d225d3..a4e52455a16 100644 --- a/pkg/registry/core/service/ipallocator/storage/BUILD +++ b/pkg/registry/core/service/ipallocator/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/portallocator/BUILD b/pkg/registry/core/service/portallocator/BUILD index 544b6e1fe71..483d8041834 100644 --- a/pkg/registry/core/service/portallocator/BUILD +++ b/pkg/registry/core/service/portallocator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/portallocator/controller/BUILD b/pkg/registry/core/service/portallocator/controller/BUILD index cf84b3883f9..a0127bfb73b 100644 --- a/pkg/registry/core/service/portallocator/controller/BUILD +++ b/pkg/registry/core/service/portallocator/controller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/service/storage/BUILD b/pkg/registry/core/service/storage/BUILD index be4fa24a201..faece9dd9ed 100644 --- a/pkg/registry/core/service/storage/BUILD +++ b/pkg/registry/core/service/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/serviceaccount/BUILD b/pkg/registry/core/serviceaccount/BUILD index 0f97de39b42..152f2c6a452 100644 --- a/pkg/registry/core/serviceaccount/BUILD +++ b/pkg/registry/core/serviceaccount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/core/serviceaccount/storage/BUILD b/pkg/registry/core/serviceaccount/storage/BUILD index 6befa72ba86..d66058c932e 100644 --- a/pkg/registry/core/serviceaccount/storage/BUILD +++ b/pkg/registry/core/serviceaccount/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/controller/storage/BUILD b/pkg/registry/extensions/controller/storage/BUILD index 0498b99023c..7884e65a740 100644 --- a/pkg/registry/extensions/controller/storage/BUILD +++ b/pkg/registry/extensions/controller/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/daemonset/BUILD b/pkg/registry/extensions/daemonset/BUILD index 989cad3d97a..1f1dd0be240 100644 --- a/pkg/registry/extensions/daemonset/BUILD +++ b/pkg/registry/extensions/daemonset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/daemonset/storage/BUILD b/pkg/registry/extensions/daemonset/storage/BUILD index 6dcca9ba7fa..176dae98bc9 100644 --- a/pkg/registry/extensions/daemonset/storage/BUILD +++ b/pkg/registry/extensions/daemonset/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/deployment/BUILD b/pkg/registry/extensions/deployment/BUILD index f3563309d79..fcc9466f1ce 100644 --- a/pkg/registry/extensions/deployment/BUILD +++ b/pkg/registry/extensions/deployment/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/deployment/storage/BUILD b/pkg/registry/extensions/deployment/storage/BUILD index a057ff62cda..49b8a085384 100644 --- a/pkg/registry/extensions/deployment/storage/BUILD +++ b/pkg/registry/extensions/deployment/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/ingress/BUILD b/pkg/registry/extensions/ingress/BUILD index 16cb2d5df2a..838e8927171 100644 --- a/pkg/registry/extensions/ingress/BUILD +++ b/pkg/registry/extensions/ingress/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/ingress/storage/BUILD b/pkg/registry/extensions/ingress/storage/BUILD index e35007ae303..0b538d6b2cf 100644 --- a/pkg/registry/extensions/ingress/storage/BUILD +++ b/pkg/registry/extensions/ingress/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/networkpolicy/BUILD b/pkg/registry/extensions/networkpolicy/BUILD index 5a351ee111f..b4938c02746 100644 --- a/pkg/registry/extensions/networkpolicy/BUILD +++ b/pkg/registry/extensions/networkpolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/networkpolicy/storage/BUILD b/pkg/registry/extensions/networkpolicy/storage/BUILD index d2f911b248a..17f20ad9480 100644 --- a/pkg/registry/extensions/networkpolicy/storage/BUILD +++ b/pkg/registry/extensions/networkpolicy/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/podsecuritypolicy/BUILD b/pkg/registry/extensions/podsecuritypolicy/BUILD index cfea2691bae..c0956317452 100644 --- a/pkg/registry/extensions/podsecuritypolicy/BUILD +++ b/pkg/registry/extensions/podsecuritypolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/podsecuritypolicy/storage/BUILD b/pkg/registry/extensions/podsecuritypolicy/storage/BUILD index 6df27ac8155..38ff3892446 100644 --- a/pkg/registry/extensions/podsecuritypolicy/storage/BUILD +++ b/pkg/registry/extensions/podsecuritypolicy/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/replicaset/BUILD b/pkg/registry/extensions/replicaset/BUILD index c45c55f9434..7d0fe9e135a 100644 --- a/pkg/registry/extensions/replicaset/BUILD +++ b/pkg/registry/extensions/replicaset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/replicaset/storage/BUILD b/pkg/registry/extensions/replicaset/storage/BUILD index 864bb5e3aec..7ccbe4d101b 100644 --- a/pkg/registry/extensions/replicaset/storage/BUILD +++ b/pkg/registry/extensions/replicaset/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/extensions/rest/BUILD b/pkg/registry/extensions/rest/BUILD index 6778f73f46a..1b4193ccb56 100644 --- a/pkg/registry/extensions/rest/BUILD +++ b/pkg/registry/extensions/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/networking/networkpolicy/BUILD b/pkg/registry/networking/networkpolicy/BUILD index 87637fea7d8..8479ea5f251 100644 --- a/pkg/registry/networking/networkpolicy/BUILD +++ b/pkg/registry/networking/networkpolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/networking/networkpolicy/storage/BUILD b/pkg/registry/networking/networkpolicy/storage/BUILD index 8e04d0dc606..0ac35764831 100644 --- a/pkg/registry/networking/networkpolicy/storage/BUILD +++ b/pkg/registry/networking/networkpolicy/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/networking/rest/BUILD b/pkg/registry/networking/rest/BUILD index 836abdeb957..34b6c7889f4 100644 --- a/pkg/registry/networking/rest/BUILD +++ b/pkg/registry/networking/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/policy/poddisruptionbudget/BUILD b/pkg/registry/policy/poddisruptionbudget/BUILD index 1fdef2600cf..f1ad0fb6033 100644 --- a/pkg/registry/policy/poddisruptionbudget/BUILD +++ b/pkg/registry/policy/poddisruptionbudget/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/policy/poddisruptionbudget/storage/BUILD b/pkg/registry/policy/poddisruptionbudget/storage/BUILD index ab1f164286b..5c0c85eca3f 100644 --- a/pkg/registry/policy/poddisruptionbudget/storage/BUILD +++ b/pkg/registry/policy/poddisruptionbudget/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/policy/rest/BUILD b/pkg/registry/policy/rest/BUILD index 1e733e78b17..8d0ca5bb348 100644 --- a/pkg/registry/policy/rest/BUILD +++ b/pkg/registry/policy/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/BUILD b/pkg/registry/rbac/BUILD index 9f0d14f24a9..fa207aa7cbb 100644 --- a/pkg/registry/rbac/BUILD +++ b/pkg/registry/rbac/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/clusterrole/BUILD b/pkg/registry/rbac/clusterrole/BUILD index b6bd484c214..4bcf7f99248 100644 --- a/pkg/registry/rbac/clusterrole/BUILD +++ b/pkg/registry/rbac/clusterrole/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/clusterrole/policybased/BUILD b/pkg/registry/rbac/clusterrole/policybased/BUILD index c10711d9351..a00c40e80a7 100644 --- a/pkg/registry/rbac/clusterrole/policybased/BUILD +++ b/pkg/registry/rbac/clusterrole/policybased/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/clusterrole/storage/BUILD b/pkg/registry/rbac/clusterrole/storage/BUILD index 1f11f64a7cd..e37949c0a94 100644 --- a/pkg/registry/rbac/clusterrole/storage/BUILD +++ b/pkg/registry/rbac/clusterrole/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/clusterrolebinding/BUILD b/pkg/registry/rbac/clusterrolebinding/BUILD index 1ebde6c6ea4..f1d671f61bf 100644 --- a/pkg/registry/rbac/clusterrolebinding/BUILD +++ b/pkg/registry/rbac/clusterrolebinding/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/clusterrolebinding/policybased/BUILD b/pkg/registry/rbac/clusterrolebinding/policybased/BUILD index 9552a0a7662..d9de68520bb 100644 --- a/pkg/registry/rbac/clusterrolebinding/policybased/BUILD +++ b/pkg/registry/rbac/clusterrolebinding/policybased/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/clusterrolebinding/storage/BUILD b/pkg/registry/rbac/clusterrolebinding/storage/BUILD index bff12004a03..00cdd8d4ff4 100644 --- a/pkg/registry/rbac/clusterrolebinding/storage/BUILD +++ b/pkg/registry/rbac/clusterrolebinding/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/reconciliation/BUILD b/pkg/registry/rbac/reconciliation/BUILD index 2629dee8c7e..887010372a9 100644 --- a/pkg/registry/rbac/reconciliation/BUILD +++ b/pkg/registry/rbac/reconciliation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/rest/BUILD b/pkg/registry/rbac/rest/BUILD index f19f764490c..d8e52cadb9a 100644 --- a/pkg/registry/rbac/rest/BUILD +++ b/pkg/registry/rbac/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/role/BUILD b/pkg/registry/rbac/role/BUILD index 13a0f65148a..e24ad971db5 100644 --- a/pkg/registry/rbac/role/BUILD +++ b/pkg/registry/rbac/role/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/role/policybased/BUILD b/pkg/registry/rbac/role/policybased/BUILD index c10711d9351..a00c40e80a7 100644 --- a/pkg/registry/rbac/role/policybased/BUILD +++ b/pkg/registry/rbac/role/policybased/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/role/storage/BUILD b/pkg/registry/rbac/role/storage/BUILD index 802b97299c8..a541dd7f5e7 100644 --- a/pkg/registry/rbac/role/storage/BUILD +++ b/pkg/registry/rbac/role/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/rolebinding/BUILD b/pkg/registry/rbac/rolebinding/BUILD index f869ed42a5d..2549da198ce 100644 --- a/pkg/registry/rbac/rolebinding/BUILD +++ b/pkg/registry/rbac/rolebinding/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/rolebinding/policybased/BUILD b/pkg/registry/rbac/rolebinding/policybased/BUILD index b38de1a7a04..40148153bf3 100644 --- a/pkg/registry/rbac/rolebinding/policybased/BUILD +++ b/pkg/registry/rbac/rolebinding/policybased/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/rolebinding/storage/BUILD b/pkg/registry/rbac/rolebinding/storage/BUILD index 5609995bf53..63ef06d9410 100644 --- a/pkg/registry/rbac/rolebinding/storage/BUILD +++ b/pkg/registry/rbac/rolebinding/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/rbac/validation/BUILD b/pkg/registry/rbac/validation/BUILD index 75df5c119e1..d73421f5a94 100644 --- a/pkg/registry/rbac/validation/BUILD +++ b/pkg/registry/rbac/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/registrytest/BUILD b/pkg/registry/registrytest/BUILD index 7aba0a6b70f..6013380c741 100644 --- a/pkg/registry/registrytest/BUILD +++ b/pkg/registry/registrytest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/scheduling/priorityclass/BUILD b/pkg/registry/scheduling/priorityclass/BUILD index a27516a92f4..2e62a31485e 100644 --- a/pkg/registry/scheduling/priorityclass/BUILD +++ b/pkg/registry/scheduling/priorityclass/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/scheduling/priorityclass/storage/BUILD b/pkg/registry/scheduling/priorityclass/storage/BUILD index 019a6f06fcd..92f42f8da00 100644 --- a/pkg/registry/scheduling/priorityclass/storage/BUILD +++ b/pkg/registry/scheduling/priorityclass/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/scheduling/rest/BUILD b/pkg/registry/scheduling/rest/BUILD index 824467ebfd1..7a316a4473c 100644 --- a/pkg/registry/scheduling/rest/BUILD +++ b/pkg/registry/scheduling/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/settings/podpreset/BUILD b/pkg/registry/settings/podpreset/BUILD index f9e51377ed7..648ef350e86 100644 --- a/pkg/registry/settings/podpreset/BUILD +++ b/pkg/registry/settings/podpreset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/settings/podpreset/storage/BUILD b/pkg/registry/settings/podpreset/storage/BUILD index a1edf2f1abb..a85b1d7dcaa 100644 --- a/pkg/registry/settings/podpreset/storage/BUILD +++ b/pkg/registry/settings/podpreset/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/settings/rest/BUILD b/pkg/registry/settings/rest/BUILD index 44c2257150a..0251054ff15 100644 --- a/pkg/registry/settings/rest/BUILD +++ b/pkg/registry/settings/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/storage/rest/BUILD b/pkg/registry/storage/rest/BUILD index 005f08e99c2..c5cb419e8b9 100644 --- a/pkg/registry/storage/rest/BUILD +++ b/pkg/registry/storage/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/storage/storageclass/BUILD b/pkg/registry/storage/storageclass/BUILD index ccaff1e7940..e3216aa9075 100644 --- a/pkg/registry/storage/storageclass/BUILD +++ b/pkg/registry/storage/storageclass/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/registry/storage/storageclass/storage/BUILD b/pkg/registry/storage/storageclass/storage/BUILD index 0322f9bb643..481ceb7d59a 100644 --- a/pkg/registry/storage/storageclass/storage/BUILD +++ b/pkg/registry/storage/storageclass/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/routes/BUILD b/pkg/routes/BUILD index 78db90b9416..276015ae586 100644 --- a/pkg/routes/BUILD +++ b/pkg/routes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/runtime/BUILD b/pkg/runtime/BUILD index 6ef677c76ae..b12028fcce5 100644 --- a/pkg/runtime/BUILD +++ b/pkg/runtime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/runtime/serializer/BUILD b/pkg/runtime/serializer/BUILD index de96fc2f7d3..8e7996bfd89 100644 --- a/pkg/runtime/serializer/BUILD +++ b/pkg/runtime/serializer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/runtime/serializer/json/BUILD b/pkg/runtime/serializer/json/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/runtime/serializer/json/BUILD +++ b/pkg/runtime/serializer/json/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/runtime/serializer/protobuf/BUILD b/pkg/runtime/serializer/protobuf/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/runtime/serializer/protobuf/BUILD +++ b/pkg/runtime/serializer/protobuf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/runtime/serializer/recognizer/BUILD b/pkg/runtime/serializer/recognizer/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/runtime/serializer/recognizer/BUILD +++ b/pkg/runtime/serializer/recognizer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/runtime/serializer/streaming/BUILD b/pkg/runtime/serializer/streaming/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/runtime/serializer/streaming/BUILD +++ b/pkg/runtime/serializer/streaming/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/runtime/serializer/versioning/BUILD b/pkg/runtime/serializer/versioning/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/runtime/serializer/versioning/BUILD +++ b/pkg/runtime/serializer/versioning/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/BUILD b/pkg/security/BUILD index 9a1154ed5b7..0017dc79e7e 100644 --- a/pkg/security/BUILD +++ b/pkg/security/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/apparmor/BUILD b/pkg/security/apparmor/BUILD index d939a0718bb..c114e75e5e1 100644 --- a/pkg/security/apparmor/BUILD +++ b/pkg/security/apparmor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/BUILD b/pkg/security/podsecuritypolicy/BUILD index 45b3d8c8369..20b6c7e26b0 100644 --- a/pkg/security/podsecuritypolicy/BUILD +++ b/pkg/security/podsecuritypolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/apparmor/BUILD b/pkg/security/podsecuritypolicy/apparmor/BUILD index b293cfddeef..4edc68a8d67 100644 --- a/pkg/security/podsecuritypolicy/apparmor/BUILD +++ b/pkg/security/podsecuritypolicy/apparmor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/capabilities/BUILD b/pkg/security/podsecuritypolicy/capabilities/BUILD index f9d2571f830..ad9478633f8 100644 --- a/pkg/security/podsecuritypolicy/capabilities/BUILD +++ b/pkg/security/podsecuritypolicy/capabilities/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/group/BUILD b/pkg/security/podsecuritypolicy/group/BUILD index e087d9fafc9..b820249ccff 100644 --- a/pkg/security/podsecuritypolicy/group/BUILD +++ b/pkg/security/podsecuritypolicy/group/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/seccomp/BUILD b/pkg/security/podsecuritypolicy/seccomp/BUILD index e0bffa2465b..e53a2d778f3 100644 --- a/pkg/security/podsecuritypolicy/seccomp/BUILD +++ b/pkg/security/podsecuritypolicy/seccomp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/selinux/BUILD b/pkg/security/podsecuritypolicy/selinux/BUILD index d2f2e8b6423..9231a39ae26 100644 --- a/pkg/security/podsecuritypolicy/selinux/BUILD +++ b/pkg/security/podsecuritypolicy/selinux/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/sysctl/BUILD b/pkg/security/podsecuritypolicy/sysctl/BUILD index 2c5cfb9c797..8da68d4a8d6 100644 --- a/pkg/security/podsecuritypolicy/sysctl/BUILD +++ b/pkg/security/podsecuritypolicy/sysctl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/user/BUILD b/pkg/security/podsecuritypolicy/user/BUILD index 30858c17081..9cb2bf4053e 100644 --- a/pkg/security/podsecuritypolicy/user/BUILD +++ b/pkg/security/podsecuritypolicy/user/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/security/podsecuritypolicy/util/BUILD b/pkg/security/podsecuritypolicy/util/BUILD index e0092cfbd5c..88e320d98c9 100644 --- a/pkg/security/podsecuritypolicy/util/BUILD +++ b/pkg/security/podsecuritypolicy/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/securitycontext/BUILD b/pkg/securitycontext/BUILD index efbceded66c..38fd8d83145 100644 --- a/pkg/securitycontext/BUILD +++ b/pkg/securitycontext/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/serviceaccount/BUILD b/pkg/serviceaccount/BUILD index 447ae796ee8..259190977ad 100644 --- a/pkg/serviceaccount/BUILD +++ b/pkg/serviceaccount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/ssh/BUILD b/pkg/ssh/BUILD index 2e838ce6a4b..b2d85c491f8 100644 --- a/pkg/ssh/BUILD +++ b/pkg/ssh/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/types/BUILD b/pkg/types/BUILD index 4e5c52fd563..df044c0ebf9 100644 --- a/pkg/types/BUILD +++ b/pkg/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/BUILD b/pkg/util/BUILD index 8b130c885ce..e3129ef8c39 100644 --- a/pkg/util/BUILD +++ b/pkg/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/util/async/BUILD b/pkg/util/async/BUILD index 7096c27c0fc..72cae5beeca 100644 --- a/pkg/util/async/BUILD +++ b/pkg/util/async/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/bandwidth/BUILD b/pkg/util/bandwidth/BUILD index fb0dbcc767e..4b73efbe35d 100644 --- a/pkg/util/bandwidth/BUILD +++ b/pkg/util/bandwidth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/config/BUILD b/pkg/util/config/BUILD index e78575b51c7..5bed8fca326 100644 --- a/pkg/util/config/BUILD +++ b/pkg/util/config/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/configz/BUILD b/pkg/util/configz/BUILD index 47439e0466e..e9e60ce3c10 100644 --- a/pkg/util/configz/BUILD +++ b/pkg/util/configz/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/dbus/BUILD b/pkg/util/dbus/BUILD index 27a511c2ca0..2356cfe90fd 100644 --- a/pkg/util/dbus/BUILD +++ b/pkg/util/dbus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/ebtables/BUILD b/pkg/util/ebtables/BUILD index 6d727937431..814c30418ac 100644 --- a/pkg/util/ebtables/BUILD +++ b/pkg/util/ebtables/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/env/BUILD b/pkg/util/env/BUILD index 0a12bd7439f..646c4e6f619 100644 --- a/pkg/util/env/BUILD +++ b/pkg/util/env/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/file/BUILD b/pkg/util/file/BUILD index 62633353603..5e7263154a0 100644 --- a/pkg/util/file/BUILD +++ b/pkg/util/file/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/flock/BUILD b/pkg/util/flock/BUILD index 952628c8c53..b5c07a60f8a 100644 --- a/pkg/util/flock/BUILD +++ b/pkg/util/flock/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/goroutinemap/BUILD b/pkg/util/goroutinemap/BUILD index ce9663a82e1..8565a939eff 100644 --- a/pkg/util/goroutinemap/BUILD +++ b/pkg/util/goroutinemap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/goroutinemap/exponentialbackoff/BUILD b/pkg/util/goroutinemap/exponentialbackoff/BUILD index 04f3a18b3d8..92904289752 100644 --- a/pkg/util/goroutinemap/exponentialbackoff/BUILD +++ b/pkg/util/goroutinemap/exponentialbackoff/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/hash/BUILD b/pkg/util/hash/BUILD index c370c237dea..0a066741af9 100644 --- a/pkg/util/hash/BUILD +++ b/pkg/util/hash/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/i18n/BUILD b/pkg/util/i18n/BUILD index 4ad85fc769c..d309f09b19d 100644 --- a/pkg/util/i18n/BUILD +++ b/pkg/util/i18n/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/initsystem/BUILD b/pkg/util/initsystem/BUILD index 151449b9148..a6de3a23c08 100644 --- a/pkg/util/initsystem/BUILD +++ b/pkg/util/initsystem/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/interrupt/BUILD b/pkg/util/interrupt/BUILD index 1ca91efd219..7c2a621e7c6 100644 --- a/pkg/util/interrupt/BUILD +++ b/pkg/util/interrupt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/io/BUILD b/pkg/util/io/BUILD index 94dce2ab902..78d933bf94f 100644 --- a/pkg/util/io/BUILD +++ b/pkg/util/io/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/ipconfig/BUILD b/pkg/util/ipconfig/BUILD index 026fb7ab556..ea22fd91dce 100644 --- a/pkg/util/ipconfig/BUILD +++ b/pkg/util/ipconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/iptables/BUILD b/pkg/util/iptables/BUILD index 94466ecf9d9..c7970e748c6 100644 --- a/pkg/util/iptables/BUILD +++ b/pkg/util/iptables/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/iptables/testing/BUILD b/pkg/util/iptables/testing/BUILD index dc273cb7779..1b3fa699cc0 100644 --- a/pkg/util/iptables/testing/BUILD +++ b/pkg/util/iptables/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/keymutex/BUILD b/pkg/util/keymutex/BUILD index 4521b3e0813..bde4b1f9f57 100644 --- a/pkg/util/keymutex/BUILD +++ b/pkg/util/keymutex/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/labels/BUILD b/pkg/util/labels/BUILD index da2e4ac46cd..0b1a9d448f9 100644 --- a/pkg/util/labels/BUILD +++ b/pkg/util/labels/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/limitwriter/BUILD b/pkg/util/limitwriter/BUILD index 3cb155b1b4c..b827e9523bd 100644 --- a/pkg/util/limitwriter/BUILD +++ b/pkg/util/limitwriter/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/maps/BUILD b/pkg/util/maps/BUILD index fc3b05b7db1..264cdadecf7 100644 --- a/pkg/util/maps/BUILD +++ b/pkg/util/maps/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/metrics/BUILD b/pkg/util/metrics/BUILD index d64bf64b624..6c330b8f1e0 100644 --- a/pkg/util/metrics/BUILD +++ b/pkg/util/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/mount/BUILD b/pkg/util/mount/BUILD index 3bb41006c6b..66aa2cbb6d0 100644 --- a/pkg/util/mount/BUILD +++ b/pkg/util/mount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/net/BUILD b/pkg/util/net/BUILD index 0c027b3bd46..d52a7782248 100644 --- a/pkg/util/net/BUILD +++ b/pkg/util/net/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/pkg/util/net/sets/BUILD b/pkg/util/net/sets/BUILD index 077656a9be4..176ae688822 100644 --- a/pkg/util/net/sets/BUILD +++ b/pkg/util/net/sets/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/netsh/BUILD b/pkg/util/netsh/BUILD index ee74757bd35..54f502de1d6 100644 --- a/pkg/util/netsh/BUILD +++ b/pkg/util/netsh/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/netsh/testing/BUILD b/pkg/util/netsh/testing/BUILD index 79c58b3d2d2..f3816d117e5 100644 --- a/pkg/util/netsh/testing/BUILD +++ b/pkg/util/netsh/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/node/BUILD b/pkg/util/node/BUILD index f6324aa70e3..0c1f2348f77 100644 --- a/pkg/util/node/BUILD +++ b/pkg/util/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/oom/BUILD b/pkg/util/oom/BUILD index b130b5d1407..11d79ceaab0 100644 --- a/pkg/util/oom/BUILD +++ b/pkg/util/oom/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/parsers/BUILD b/pkg/util/parsers/BUILD index aa55a43974d..a3b04cd6298 100644 --- a/pkg/util/parsers/BUILD +++ b/pkg/util/parsers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/pointer/BUILD b/pkg/util/pointer/BUILD index 1ef17f5274e..3e75d456ee6 100644 --- a/pkg/util/pointer/BUILD +++ b/pkg/util/pointer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/procfs/BUILD b/pkg/util/procfs/BUILD index c7a5978635d..999226f1f17 100644 --- a/pkg/util/procfs/BUILD +++ b/pkg/util/procfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/reflector/prometheus/BUILD b/pkg/util/reflector/prometheus/BUILD index bdc5d55528e..a13edbe11fe 100644 --- a/pkg/util/reflector/prometheus/BUILD +++ b/pkg/util/reflector/prometheus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/removeall/BUILD b/pkg/util/removeall/BUILD index d5631c85aa9..4de7ab0c4ed 100644 --- a/pkg/util/removeall/BUILD +++ b/pkg/util/removeall/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/resourcecontainer/BUILD b/pkg/util/resourcecontainer/BUILD index 8f8323a7059..aa49ef97f07 100644 --- a/pkg/util/resourcecontainer/BUILD +++ b/pkg/util/resourcecontainer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/rlimit/BUILD b/pkg/util/rlimit/BUILD index 6edde123c6a..61c3f1d153b 100644 --- a/pkg/util/rlimit/BUILD +++ b/pkg/util/rlimit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/selinux/BUILD b/pkg/util/selinux/BUILD index 3cda3ea1712..933f123da00 100644 --- a/pkg/util/selinux/BUILD +++ b/pkg/util/selinux/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/slice/BUILD b/pkg/util/slice/BUILD index c3fbf2a5f7a..ce8ed8d49e8 100644 --- a/pkg/util/slice/BUILD +++ b/pkg/util/slice/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/strings/BUILD b/pkg/util/strings/BUILD index e4b54ee3592..abda343d558 100644 --- a/pkg/util/strings/BUILD +++ b/pkg/util/strings/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/sysctl/BUILD b/pkg/util/sysctl/BUILD index b60b0f3734a..8e3964e0831 100644 --- a/pkg/util/sysctl/BUILD +++ b/pkg/util/sysctl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/sysctl/testing/BUILD b/pkg/util/sysctl/testing/BUILD index 01b67a37683..35f916e9c5f 100644 --- a/pkg/util/sysctl/testing/BUILD +++ b/pkg/util/sysctl/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/system/BUILD b/pkg/util/system/BUILD index 10f4638013e..76994cf9ba7 100644 --- a/pkg/util/system/BUILD +++ b/pkg/util/system/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/tail/BUILD b/pkg/util/tail/BUILD index 1efe733d683..ab15a92fe5f 100644 --- a/pkg/util/tail/BUILD +++ b/pkg/util/tail/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/taints/BUILD b/pkg/util/taints/BUILD index df5ce2f35b2..b4a657494c8 100644 --- a/pkg/util/taints/BUILD +++ b/pkg/util/taints/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/template/BUILD b/pkg/util/template/BUILD index 1fbcc8848b7..acac1110463 100644 --- a/pkg/util/template/BUILD +++ b/pkg/util/template/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/term/BUILD b/pkg/util/term/BUILD index 143bdc4b999..1edebf3653c 100644 --- a/pkg/util/term/BUILD +++ b/pkg/util/term/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/threading/BUILD b/pkg/util/threading/BUILD index 0ff78e84845..9223edc9881 100644 --- a/pkg/util/threading/BUILD +++ b/pkg/util/threading/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/tolerations/BUILD b/pkg/util/tolerations/BUILD index e798a9b18ec..69e92874db9 100644 --- a/pkg/util/tolerations/BUILD +++ b/pkg/util/tolerations/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/version/BUILD b/pkg/util/version/BUILD index 0b6acbbaebc..ae2668b46cd 100644 --- a/pkg/util/version/BUILD +++ b/pkg/util/version/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/util/workqueue/prometheus/BUILD b/pkg/util/workqueue/prometheus/BUILD index ddf48b3006b..671ebf7bcfd 100644 --- a/pkg/util/workqueue/prometheus/BUILD +++ b/pkg/util/workqueue/prometheus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/version/BUILD b/pkg/version/BUILD index c9d9a182797..29363797f19 100644 --- a/pkg/version/BUILD +++ b/pkg/version/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/version/prometheus/BUILD b/pkg/version/prometheus/BUILD index a380cbabfb6..fe9f8edc852 100644 --- a/pkg/version/prometheus/BUILD +++ b/pkg/version/prometheus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/version/verflag/BUILD b/pkg/version/verflag/BUILD index b503384ab5d..e3c7e41aabd 100644 --- a/pkg/version/verflag/BUILD +++ b/pkg/version/verflag/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/BUILD b/pkg/volume/BUILD index 75acb988c51..d9646c1e06e 100644 --- a/pkg/volume/BUILD +++ b/pkg/volume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/aws_ebs/BUILD b/pkg/volume/aws_ebs/BUILD index 17f6afdf3de..7b623b5f43a 100644 --- a/pkg/volume/aws_ebs/BUILD +++ b/pkg/volume/aws_ebs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/azure_dd/BUILD b/pkg/volume/azure_dd/BUILD index 37af8798d58..db2313fe564 100644 --- a/pkg/volume/azure_dd/BUILD +++ b/pkg/volume/azure_dd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/azure_file/BUILD b/pkg/volume/azure_file/BUILD index 778fa353c04..c80778dfeec 100644 --- a/pkg/volume/azure_file/BUILD +++ b/pkg/volume/azure_file/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/cephfs/BUILD b/pkg/volume/cephfs/BUILD index a5d3accd690..0680a740a8c 100644 --- a/pkg/volume/cephfs/BUILD +++ b/pkg/volume/cephfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/cinder/BUILD b/pkg/volume/cinder/BUILD index 2955c541048..d89b25de895 100644 --- a/pkg/volume/cinder/BUILD +++ b/pkg/volume/cinder/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/configmap/BUILD b/pkg/volume/configmap/BUILD index 2352344dd74..9e3537b6291 100644 --- a/pkg/volume/configmap/BUILD +++ b/pkg/volume/configmap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/downwardapi/BUILD b/pkg/volume/downwardapi/BUILD index ce0ad10c2c6..36ca1489344 100644 --- a/pkg/volume/downwardapi/BUILD +++ b/pkg/volume/downwardapi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/empty_dir/BUILD b/pkg/volume/empty_dir/BUILD index 46c7d8a024c..f16bc3941ba 100644 --- a/pkg/volume/empty_dir/BUILD +++ b/pkg/volume/empty_dir/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/fc/BUILD b/pkg/volume/fc/BUILD index cca13bb5e6c..df6f13d053f 100644 --- a/pkg/volume/fc/BUILD +++ b/pkg/volume/fc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/flexvolume/BUILD b/pkg/volume/flexvolume/BUILD index 053f12c4d17..3a78103ab86 100644 --- a/pkg/volume/flexvolume/BUILD +++ b/pkg/volume/flexvolume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/flocker/BUILD b/pkg/volume/flocker/BUILD index f7056c61da5..468438111e9 100644 --- a/pkg/volume/flocker/BUILD +++ b/pkg/volume/flocker/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/gce_pd/BUILD b/pkg/volume/gce_pd/BUILD index 89ec11d99d4..a3d28e7a1f4 100644 --- a/pkg/volume/gce_pd/BUILD +++ b/pkg/volume/gce_pd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/git_repo/BUILD b/pkg/volume/git_repo/BUILD index 0b5394c7d2d..be57c22489e 100644 --- a/pkg/volume/git_repo/BUILD +++ b/pkg/volume/git_repo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/glusterfs/BUILD b/pkg/volume/glusterfs/BUILD index f35672bbf0d..b895c99116a 100644 --- a/pkg/volume/glusterfs/BUILD +++ b/pkg/volume/glusterfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/host_path/BUILD b/pkg/volume/host_path/BUILD index f24a80cc17b..d55dabee5ce 100644 --- a/pkg/volume/host_path/BUILD +++ b/pkg/volume/host_path/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/iscsi/BUILD b/pkg/volume/iscsi/BUILD index 67288eba2f4..823e394c847 100644 --- a/pkg/volume/iscsi/BUILD +++ b/pkg/volume/iscsi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/local/BUILD b/pkg/volume/local/BUILD index d8ee83fc2cc..beab00e289c 100644 --- a/pkg/volume/local/BUILD +++ b/pkg/volume/local/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/nfs/BUILD b/pkg/volume/nfs/BUILD index 21fca275782..40a22756059 100644 --- a/pkg/volume/nfs/BUILD +++ b/pkg/volume/nfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/photon_pd/BUILD b/pkg/volume/photon_pd/BUILD index 40f6fc71c18..d35face84e1 100644 --- a/pkg/volume/photon_pd/BUILD +++ b/pkg/volume/photon_pd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/portworx/BUILD b/pkg/volume/portworx/BUILD index 4d002ecf1c7..5f7d8abe3ce 100644 --- a/pkg/volume/portworx/BUILD +++ b/pkg/volume/portworx/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/projected/BUILD b/pkg/volume/projected/BUILD index d19568a368b..32d9792192b 100644 --- a/pkg/volume/projected/BUILD +++ b/pkg/volume/projected/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/quobyte/BUILD b/pkg/volume/quobyte/BUILD index d935df28c89..d72c52334e8 100644 --- a/pkg/volume/quobyte/BUILD +++ b/pkg/volume/quobyte/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/rbd/BUILD b/pkg/volume/rbd/BUILD index 9da18a00848..32b6efcfab8 100644 --- a/pkg/volume/rbd/BUILD +++ b/pkg/volume/rbd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/scaleio/BUILD b/pkg/volume/scaleio/BUILD index ee06de48a8f..cdd168fd922 100644 --- a/pkg/volume/scaleio/BUILD +++ b/pkg/volume/scaleio/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/secret/BUILD b/pkg/volume/secret/BUILD index 896d8bf2a21..7743e788fb3 100644 --- a/pkg/volume/secret/BUILD +++ b/pkg/volume/secret/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/storageos/BUILD b/pkg/volume/storageos/BUILD index 5be05ea5f7e..14e5a73d016 100644 --- a/pkg/volume/storageos/BUILD +++ b/pkg/volume/storageos/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/testing/BUILD b/pkg/volume/testing/BUILD index 43bd4dfc923..511fc72710b 100644 --- a/pkg/volume/testing/BUILD +++ b/pkg/volume/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/util/BUILD b/pkg/volume/util/BUILD index 4abf3e0a8ab..85c3ee9423b 100644 --- a/pkg/volume/util/BUILD +++ b/pkg/volume/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/util/nestedpendingoperations/BUILD b/pkg/volume/util/nestedpendingoperations/BUILD index 4f27fdc88f4..60efd00a211 100644 --- a/pkg/volume/util/nestedpendingoperations/BUILD +++ b/pkg/volume/util/nestedpendingoperations/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/util/operationexecutor/BUILD b/pkg/volume/util/operationexecutor/BUILD index 87090e4e80d..dae1131fc3a 100644 --- a/pkg/volume/util/operationexecutor/BUILD +++ b/pkg/volume/util/operationexecutor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/util/types/BUILD b/pkg/volume/util/types/BUILD index 3d2559a3090..5d7380241eb 100644 --- a/pkg/volume/util/types/BUILD +++ b/pkg/volume/util/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/util/volumehelper/BUILD b/pkg/volume/util/volumehelper/BUILD index 7d00656136a..1880d21c058 100644 --- a/pkg/volume/util/volumehelper/BUILD +++ b/pkg/volume/util/volumehelper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/validation/BUILD b/pkg/volume/validation/BUILD index 6604f6768df..b64dc983784 100644 --- a/pkg/volume/validation/BUILD +++ b/pkg/volume/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/volume/vsphere_volume/BUILD b/pkg/volume/vsphere_volume/BUILD index cb7433d5869..e118362772b 100644 --- a/pkg/volume/vsphere_volume/BUILD +++ b/pkg/volume/vsphere_volume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/watch/BUILD b/pkg/watch/BUILD index de02b4f2afc..79e41daa4b8 100644 --- a/pkg/watch/BUILD +++ b/pkg/watch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/watch/json/BUILD b/pkg/watch/json/BUILD index e76ad5843ba..bfaa1692627 100644 --- a/pkg/watch/json/BUILD +++ b/pkg/watch/json/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/pkg/watch/versioned/BUILD b/pkg/watch/versioned/BUILD index d1398d06401..50c3c3b82cb 100644 --- a/pkg/watch/versioned/BUILD +++ b/pkg/watch/versioned/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/BUILD b/plugin/BUILD index 88d9d0e0633..a58f83e180b 100644 --- a/plugin/BUILD +++ b/plugin/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/plugin/cmd/kube-scheduler/BUILD b/plugin/cmd/kube-scheduler/BUILD index c7941a00ed5..52bea2b6b93 100644 --- a/plugin/cmd/kube-scheduler/BUILD +++ b/plugin/cmd/kube-scheduler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/plugin/cmd/kube-scheduler/app/BUILD b/plugin/cmd/kube-scheduler/app/BUILD index 5bc5391fec4..64325cbaac0 100644 --- a/plugin/cmd/kube-scheduler/app/BUILD +++ b/plugin/cmd/kube-scheduler/app/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/cmd/kube-scheduler/app/options/BUILD b/plugin/cmd/kube-scheduler/app/options/BUILD index 026b9c81725..5d036472025 100644 --- a/plugin/cmd/kube-scheduler/app/options/BUILD +++ b/plugin/cmd/kube-scheduler/app/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/admit/BUILD b/plugin/pkg/admission/admit/BUILD index 951c35c6120..49e9ec1e477 100644 --- a/plugin/pkg/admission/admit/BUILD +++ b/plugin/pkg/admission/admit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/alwayspullimages/BUILD b/plugin/pkg/admission/alwayspullimages/BUILD index ec5efda710f..4066801864f 100644 --- a/plugin/pkg/admission/alwayspullimages/BUILD +++ b/plugin/pkg/admission/alwayspullimages/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/antiaffinity/BUILD b/plugin/pkg/admission/antiaffinity/BUILD index 1f5dffb40c8..908646924d0 100644 --- a/plugin/pkg/admission/antiaffinity/BUILD +++ b/plugin/pkg/admission/antiaffinity/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/defaulttolerationseconds/BUILD b/plugin/pkg/admission/defaulttolerationseconds/BUILD index f35a0192050..f61605ff3b7 100644 --- a/plugin/pkg/admission/defaulttolerationseconds/BUILD +++ b/plugin/pkg/admission/defaulttolerationseconds/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/deny/BUILD b/plugin/pkg/admission/deny/BUILD index 951c35c6120..49e9ec1e477 100644 --- a/plugin/pkg/admission/deny/BUILD +++ b/plugin/pkg/admission/deny/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/exec/BUILD b/plugin/pkg/admission/exec/BUILD index dc709818ad9..c416af3b002 100644 --- a/plugin/pkg/admission/exec/BUILD +++ b/plugin/pkg/admission/exec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/gc/BUILD b/plugin/pkg/admission/gc/BUILD index 8b56403a056..d4adb0f97a4 100644 --- a/plugin/pkg/admission/gc/BUILD +++ b/plugin/pkg/admission/gc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/imagepolicy/BUILD b/plugin/pkg/admission/imagepolicy/BUILD index bd6b223405f..eaee9ef8625 100644 --- a/plugin/pkg/admission/imagepolicy/BUILD +++ b/plugin/pkg/admission/imagepolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/initialization/BUILD b/plugin/pkg/admission/initialization/BUILD index b1d767df5c2..54529cc258b 100644 --- a/plugin/pkg/admission/initialization/BUILD +++ b/plugin/pkg/admission/initialization/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/initialresources/BUILD b/plugin/pkg/admission/initialresources/BUILD index acd873fcf27..81a1c340334 100644 --- a/plugin/pkg/admission/initialresources/BUILD +++ b/plugin/pkg/admission/initialresources/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/limitranger/BUILD b/plugin/pkg/admission/limitranger/BUILD index e4c8b65176f..9307f02c311 100644 --- a/plugin/pkg/admission/limitranger/BUILD +++ b/plugin/pkg/admission/limitranger/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/namespace/autoprovision/BUILD b/plugin/pkg/admission/namespace/autoprovision/BUILD index 48fa4087b74..3343556bda3 100644 --- a/plugin/pkg/admission/namespace/autoprovision/BUILD +++ b/plugin/pkg/admission/namespace/autoprovision/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/namespace/exists/BUILD b/plugin/pkg/admission/namespace/exists/BUILD index e009ffe2841..881ab061bc5 100644 --- a/plugin/pkg/admission/namespace/exists/BUILD +++ b/plugin/pkg/admission/namespace/exists/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/noderestriction/BUILD b/plugin/pkg/admission/noderestriction/BUILD index 2a566854fda..b81cb1c09fa 100644 --- a/plugin/pkg/admission/noderestriction/BUILD +++ b/plugin/pkg/admission/noderestriction/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/persistentvolume/label/BUILD b/plugin/pkg/admission/persistentvolume/label/BUILD index 26915db0cf8..cbf4432c59e 100644 --- a/plugin/pkg/admission/persistentvolume/label/BUILD +++ b/plugin/pkg/admission/persistentvolume/label/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/podnodeselector/BUILD b/plugin/pkg/admission/podnodeselector/BUILD index 39c91981112..e89110ebb08 100644 --- a/plugin/pkg/admission/podnodeselector/BUILD +++ b/plugin/pkg/admission/podnodeselector/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/podpreset/BUILD b/plugin/pkg/admission/podpreset/BUILD index dca6ea58e93..a7210dc67ad 100644 --- a/plugin/pkg/admission/podpreset/BUILD +++ b/plugin/pkg/admission/podpreset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/BUILD b/plugin/pkg/admission/podtolerationrestriction/BUILD index cb2cdd659fd..3492b2a840e 100644 --- a/plugin/pkg/admission/podtolerationrestriction/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD index 21e8829ec6f..c2cb617aaea 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD index 4982a300d4f..0671d3e6af1 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD index 487d21fd3c3..78f31098ac7 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD index b0c443d0ada..7ef9df74fdd 100644 --- a/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD +++ b/plugin/pkg/admission/podtolerationrestriction/apis/podtolerationrestriction/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/resourcequota/BUILD b/plugin/pkg/admission/resourcequota/BUILD index 10d75b11f1e..44fbd1a74cf 100644 --- a/plugin/pkg/admission/resourcequota/BUILD +++ b/plugin/pkg/admission/resourcequota/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD index d04d4c15b3c..5a73d3cc9e3 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD index 67f068264a4..abe44299735 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD index 5c36e87b3d7..0d3f4a995a2 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD b/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD index 818d349ddef..d5e5f6e1bde 100644 --- a/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD +++ b/plugin/pkg/admission/resourcequota/apis/resourcequota/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/security/BUILD b/plugin/pkg/admission/security/BUILD index 5ff9abfb43f..a68b7c1318a 100644 --- a/plugin/pkg/admission/security/BUILD +++ b/plugin/pkg/admission/security/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/security/podsecuritypolicy/BUILD b/plugin/pkg/admission/security/podsecuritypolicy/BUILD index 571a1ce1b39..a377da0fb28 100644 --- a/plugin/pkg/admission/security/podsecuritypolicy/BUILD +++ b/plugin/pkg/admission/security/podsecuritypolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/securitycontext/scdeny/BUILD b/plugin/pkg/admission/securitycontext/scdeny/BUILD index 3f15a14bce4..7d32bd9f819 100644 --- a/plugin/pkg/admission/securitycontext/scdeny/BUILD +++ b/plugin/pkg/admission/securitycontext/scdeny/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/serviceaccount/BUILD b/plugin/pkg/admission/serviceaccount/BUILD index a6fd299e0dd..dc51db0a95a 100644 --- a/plugin/pkg/admission/serviceaccount/BUILD +++ b/plugin/pkg/admission/serviceaccount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/storageclass/setdefault/BUILD b/plugin/pkg/admission/storageclass/setdefault/BUILD index 9eda75899ad..5726f14e635 100644 --- a/plugin/pkg/admission/storageclass/setdefault/BUILD +++ b/plugin/pkg/admission/storageclass/setdefault/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/admission/webhook/BUILD b/plugin/pkg/admission/webhook/BUILD index 5e64db89bc3..0221e3ffbe3 100644 --- a/plugin/pkg/admission/webhook/BUILD +++ b/plugin/pkg/admission/webhook/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/auth/BUILD b/plugin/pkg/auth/BUILD index 7da89719e8e..97f02acf0f5 100644 --- a/plugin/pkg/auth/BUILD +++ b/plugin/pkg/auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/auth/authenticator/token/bootstrap/BUILD b/plugin/pkg/auth/authenticator/token/bootstrap/BUILD index 01d2f3d49cb..abba54f6eee 100644 --- a/plugin/pkg/auth/authenticator/token/bootstrap/BUILD +++ b/plugin/pkg/auth/authenticator/token/bootstrap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/auth/authorizer/BUILD b/plugin/pkg/auth/authorizer/BUILD index 19c6246b22f..946700d631d 100644 --- a/plugin/pkg/auth/authorizer/BUILD +++ b/plugin/pkg/auth/authorizer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/auth/authorizer/node/BUILD b/plugin/pkg/auth/authorizer/node/BUILD index 1ebc03cd112..926c876ee3b 100644 --- a/plugin/pkg/auth/authorizer/node/BUILD +++ b/plugin/pkg/auth/authorizer/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/auth/authorizer/rbac/BUILD b/plugin/pkg/auth/authorizer/rbac/BUILD index 5b62ffbda5c..37fdbaaf0c5 100644 --- a/plugin/pkg/auth/authorizer/rbac/BUILD +++ b/plugin/pkg/auth/authorizer/rbac/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD index 4d01d9ad648..b3243e18ff5 100644 --- a/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD +++ b/plugin/pkg/auth/authorizer/rbac/bootstrappolicy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/BUILD b/plugin/pkg/scheduler/BUILD index 90b6d26920d..1683e48c637 100644 --- a/plugin/pkg/scheduler/BUILD +++ b/plugin/pkg/scheduler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/algorithm/BUILD b/plugin/pkg/scheduler/algorithm/BUILD index c4c29573bea..b1e89a9fb16 100644 --- a/plugin/pkg/scheduler/algorithm/BUILD +++ b/plugin/pkg/scheduler/algorithm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/algorithm/predicates/BUILD b/plugin/pkg/scheduler/algorithm/predicates/BUILD index 88d8bf2d1f1..fc15e457b30 100644 --- a/plugin/pkg/scheduler/algorithm/predicates/BUILD +++ b/plugin/pkg/scheduler/algorithm/predicates/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/algorithm/priorities/BUILD b/plugin/pkg/scheduler/algorithm/priorities/BUILD index cb3d279bb0a..eff8faba1ea 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/BUILD +++ b/plugin/pkg/scheduler/algorithm/priorities/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/algorithm/priorities/util/BUILD b/plugin/pkg/scheduler/algorithm/priorities/util/BUILD index fc571966195..a034d550960 100644 --- a/plugin/pkg/scheduler/algorithm/priorities/util/BUILD +++ b/plugin/pkg/scheduler/algorithm/priorities/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/algorithmprovider/BUILD b/plugin/pkg/scheduler/algorithmprovider/BUILD index c93be076c15..883faf0bf0d 100644 --- a/plugin/pkg/scheduler/algorithmprovider/BUILD +++ b/plugin/pkg/scheduler/algorithmprovider/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD b/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD index 0509b210fc9..f0bb6ef2301 100644 --- a/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD +++ b/plugin/pkg/scheduler/algorithmprovider/defaults/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/api/BUILD b/plugin/pkg/scheduler/api/BUILD index 7b5e37a5775..4475d9e7bb3 100644 --- a/plugin/pkg/scheduler/api/BUILD +++ b/plugin/pkg/scheduler/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/api/latest/BUILD b/plugin/pkg/scheduler/api/latest/BUILD index c604182f488..e2d6f0d1bbe 100644 --- a/plugin/pkg/scheduler/api/latest/BUILD +++ b/plugin/pkg/scheduler/api/latest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/api/v1/BUILD b/plugin/pkg/scheduler/api/v1/BUILD index 784501097e2..0a160932f6d 100644 --- a/plugin/pkg/scheduler/api/v1/BUILD +++ b/plugin/pkg/scheduler/api/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/api/validation/BUILD b/plugin/pkg/scheduler/api/validation/BUILD index f20a17f93b2..3639204e785 100644 --- a/plugin/pkg/scheduler/api/validation/BUILD +++ b/plugin/pkg/scheduler/api/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/core/BUILD b/plugin/pkg/scheduler/core/BUILD index 0b8fd318c79..6b985508a5a 100644 --- a/plugin/pkg/scheduler/core/BUILD +++ b/plugin/pkg/scheduler/core/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/factory/BUILD b/plugin/pkg/scheduler/factory/BUILD index f616925ff93..c1556c3c957 100644 --- a/plugin/pkg/scheduler/factory/BUILD +++ b/plugin/pkg/scheduler/factory/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/metrics/BUILD b/plugin/pkg/scheduler/metrics/BUILD index 7497542d14c..b9badf163a2 100644 --- a/plugin/pkg/scheduler/metrics/BUILD +++ b/plugin/pkg/scheduler/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/schedulercache/BUILD b/plugin/pkg/scheduler/schedulercache/BUILD index 533eaec2fcd..596bf7858a7 100644 --- a/plugin/pkg/scheduler/schedulercache/BUILD +++ b/plugin/pkg/scheduler/schedulercache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/testing/BUILD b/plugin/pkg/scheduler/testing/BUILD index 2a56a79f82d..a9397f2aa7d 100644 --- a/plugin/pkg/scheduler/testing/BUILD +++ b/plugin/pkg/scheduler/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/plugin/pkg/scheduler/util/BUILD b/plugin/pkg/scheduler/util/BUILD index 141dec6010d..e3381b02f70 100644 --- a/plugin/pkg/scheduler/util/BUILD +++ b/plugin/pkg/scheduler/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/BUILD b/staging/BUILD index c42df8b0351..234cfbdcf30 100644 --- a/staging/BUILD +++ b/staging/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/api/admission/v1alpha1/BUILD b/staging/src/k8s.io/api/admission/v1alpha1/BUILD index 3f61a5ca2b6..389b56c3a9d 100644 --- a/staging/src/k8s.io/api/admission/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/admission/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD index 4aa7c974b56..f77e6881be0 100644 --- a/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/admissionregistration/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/apps/v1beta1/BUILD b/staging/src/k8s.io/api/apps/v1beta1/BUILD index 20e5c583d35..694aa0c1130 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/api/apps/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/apps/v1beta2/BUILD b/staging/src/k8s.io/api/apps/v1beta2/BUILD index 46d1a61079e..dd256cbd310 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/api/apps/v1beta2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/authentication/v1/BUILD b/staging/src/k8s.io/api/authentication/v1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/authentication/v1/BUILD +++ b/staging/src/k8s.io/api/authentication/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/authentication/v1beta1/BUILD b/staging/src/k8s.io/api/authentication/v1beta1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/authentication/v1beta1/BUILD +++ b/staging/src/k8s.io/api/authentication/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/authorization/v1/BUILD b/staging/src/k8s.io/api/authorization/v1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/authorization/v1/BUILD +++ b/staging/src/k8s.io/api/authorization/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/authorization/v1beta1/BUILD b/staging/src/k8s.io/api/authorization/v1beta1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/authorization/v1beta1/BUILD +++ b/staging/src/k8s.io/api/authorization/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/autoscaling/v1/BUILD b/staging/src/k8s.io/api/autoscaling/v1/BUILD index cf9d95c4cfb..4c374757b77 100644 --- a/staging/src/k8s.io/api/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/api/autoscaling/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD index cf9d95c4cfb..4c374757b77 100644 --- a/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/api/autoscaling/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/batch/v1/BUILD b/staging/src/k8s.io/api/batch/v1/BUILD index 2d3adf4e33f..1fba57b82bb 100644 --- a/staging/src/k8s.io/api/batch/v1/BUILD +++ b/staging/src/k8s.io/api/batch/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/batch/v2alpha1/BUILD b/staging/src/k8s.io/api/batch/v2alpha1/BUILD index ca61fad0233..f70ebf0d2f3 100644 --- a/staging/src/k8s.io/api/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/api/batch/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/certificates/v1beta1/BUILD b/staging/src/k8s.io/api/certificates/v1beta1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/api/certificates/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/core/v1/BUILD b/staging/src/k8s.io/api/core/v1/BUILD index 53b6aa9265e..5c4e6331c5d 100644 --- a/staging/src/k8s.io/api/core/v1/BUILD +++ b/staging/src/k8s.io/api/core/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/extensions/v1beta1/BUILD b/staging/src/k8s.io/api/extensions/v1beta1/BUILD index d872cc19bb6..bb34e59f753 100644 --- a/staging/src/k8s.io/api/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/api/extensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD b/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/imagepolicy/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/networking/v1/BUILD b/staging/src/k8s.io/api/networking/v1/BUILD index 36c0fcbe015..7ca18208825 100644 --- a/staging/src/k8s.io/api/networking/v1/BUILD +++ b/staging/src/k8s.io/api/networking/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/policy/v1beta1/BUILD b/staging/src/k8s.io/api/policy/v1beta1/BUILD index d04553fdcb2..7ec32f79904 100644 --- a/staging/src/k8s.io/api/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/api/policy/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/rbac/v1/BUILD b/staging/src/k8s.io/api/rbac/v1/BUILD index 4aa7c974b56..f77e6881be0 100644 --- a/staging/src/k8s.io/api/rbac/v1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/rbac/v1alpha1/BUILD b/staging/src/k8s.io/api/rbac/v1alpha1/BUILD index 4aa7c974b56..f77e6881be0 100644 --- a/staging/src/k8s.io/api/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/rbac/v1beta1/BUILD b/staging/src/k8s.io/api/rbac/v1beta1/BUILD index 4aa7c974b56..f77e6881be0 100644 --- a/staging/src/k8s.io/api/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/api/rbac/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD index fbbb30d9907..6a38064dd24 100644 --- a/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/scheduling/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/settings/v1alpha1/BUILD b/staging/src/k8s.io/api/settings/v1alpha1/BUILD index cf9d95c4cfb..4c374757b77 100644 --- a/staging/src/k8s.io/api/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/api/settings/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/storage/v1/BUILD b/staging/src/k8s.io/api/storage/v1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/storage/v1/BUILD +++ b/staging/src/k8s.io/api/storage/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/api/storage/v1beta1/BUILD b/staging/src/k8s.io/api/storage/v1beta1/BUILD index 71a632cf949..2c4953766bb 100644 --- a/staging/src/k8s.io/api/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/api/storage/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/BUILD b/staging/src/k8s.io/apiextensions-apiserver/BUILD index 8c4a52d9269..d7a5b5dd325 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD index 07bd5dfa528..48552335b40 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD index 07505178468..83e0a3210a5 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/apis/cr/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD index 74f102f1c82..db64d4d5740 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD index cd5a6c5e581..aef3026fb8a 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/examples/client-go/controller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD index b89450a4312..64088c8a1b0 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD index b0a4e439ceb..8fe1450a9ba 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD index 1b3f9ad9278..33c068fd739 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD index 2c96cfe33f3..60b91ad1f23 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD index cf634e2569b..53c042aeaf6 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD index e73092876b5..e14bf33317e 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD index 93780caa9ed..494522755ca 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD index d32fa91820c..5bd8e4be021 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD index 1b7c90b7145..c37ee3f5c0a 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD index c5c051314cf..3cb4e1f6219 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD index c99a36ba6ea..d8a05477666 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset/typed/apiextensions/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD index 4d29be6e95b..97024ea635d 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD index e41e7dfea5c..fbcf55239aa 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD index 07937c8a2cf..040a7fcdc48 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD index 2b4f64a9afe..75584d5a391 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD index cdfb68c2418..eae775984af 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/clientset/internalclientset/typed/apiextensions/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD index cae998296f1..94f642a2c99 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD index d1c1657e468..f8613a82dbf 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD index c5beaa61a05..69f89a94bfa 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/apiextensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD index 2fa3e9ad422..3c686edf473 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD index f9dc345687c..3855ac6236b 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD index 19e437793c0..3d8440cb118 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD index 4b94aa1c46a..ba99018061a 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/apiextensions/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD index 59c1b38cc5a..deda85345e4 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/informers/internalversion/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD index 37b093d7388..f76dfc119db 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD index 3d44152f3ca..9b69d966d55 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/client/listers/apiextensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD index 35a60d3a8b2..536cdedb303 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/cmd/server/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD index 7f382f6115d..6bf81ab317c 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/finalizer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD index 86dea14fc59..3ca71007cba 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/controller/status/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD index 89682b6b448..e61b8f824c5 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresource/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD index 54909a23ad6..ff0bd54d2e0 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/pkg/registry/customresourcedefinition/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD b/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD index c9ecd49b549..482ab94a39e 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD b/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD index 15cf1c91a71..484ddb50607 100644 --- a/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD +++ b/staging/src/k8s.io/apiextensions-apiserver/test/integration/testserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD index fef940ac16a..f4282535715 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/equality/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD index 0e323828b2f..bae266c4b12 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD index a667d490ec6..00d15de9c5f 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/meta/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD index c3b64f409f6..840c575e747 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/resource/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD index d4aebdd119c..d906482c550 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD index 1e543851034..a81c71a7554 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/testing/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD index eb768aa133d..927bace7361 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/testing/roundtrip/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD index c700d00957c..9de7826bc80 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD b/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD index 001d614d352..1aff05d0513 100644 --- a/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/api/validation/path/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD b/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD index f718ab82e5a..fc983842e1b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apimachinery/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD index bcf5b22c7c9..466f86e1fdf 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apimachinery/announced/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD b/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD index 6397b81d82d..e4c6856471d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apimachinery/registered/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD index 70635d98fad..e91a7cbffc0 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD index c9d340627f5..20d435f1d9b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD index 992af6621f6..d2915820d87 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD index 4e5c0b2b9e6..0df8cd9c514 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD index 450f79413d1..2544ce6e150 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD index d9c3487372a..e981dea096c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/meta/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD index 3e0f712a897..33b3235a2e2 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD index f64d74d8572..e54e95d843c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD index 6e105d11ace..c2abc2280bf 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD index c38b760e409..4310cfb2aa8 100644 --- a/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/apis/testapigroup/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD b/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD index 9faf1c0f285..eb7f1749660 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD b/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD index ae39e038aec..e2beb3e0a10 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/queryparams/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD index 9d3a0113746..a4de1a6f93e 100644 --- a/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/conversion/unstructured/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/fields/BUILD b/staging/src/k8s.io/apimachinery/pkg/fields/BUILD index 161690f9acd..637ecc4bb01 100644 --- a/staging/src/k8s.io/apimachinery/pkg/fields/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/fields/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/labels/BUILD b/staging/src/k8s.io/apimachinery/pkg/labels/BUILD index a13640c8226..f49d05a27d9 100644 --- a/staging/src/k8s.io/apimachinery/pkg/labels/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/labels/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD index 14ddd00852b..ef9dc9af6f9 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD index b83ef07ca6a..07faa4dc5fe 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/schema/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD index 4f6cf6c7722..4a0a8f812be 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD index 44a1283a43c..0dd88529f37 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/json/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD index 4d6d9e261ac..dba23107dc8 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD index e3d78a7d12d..95239b02822 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD index 398d83e0403..4e126bc8a84 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/recognizer/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD index ed75a24c71c..f3991e494a7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD index 74714103772..a92f1ba027a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD index 11d263d3d7b..f9406b4bce2 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/versioning/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD index 26f5b9b0ce3..7aa51ff4e2d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/serializer/yaml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD b/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD index 74714103772..a92f1ba027a 100644 --- a/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/runtime/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/selection/BUILD b/staging/src/k8s.io/apimachinery/pkg/selection/BUILD index 1001eab44e7..29027a0b9ec 100644 --- a/staging/src/k8s.io/apimachinery/pkg/selection/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/selection/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/test/BUILD b/staging/src/k8s.io/apimachinery/pkg/test/BUILD index c9ef67cd88a..e5de3f43b43 100644 --- a/staging/src/k8s.io/apimachinery/pkg/test/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/test/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/types/BUILD b/staging/src/k8s.io/apimachinery/pkg/types/BUILD index 1c2992546c5..63d4f6b15ab 100644 --- a/staging/src/k8s.io/apimachinery/pkg/types/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD index 6822c800077..ecc2cd93bf7 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/cache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD index 7a5c9735b02..90d28c49076 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/clock/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD index 43f8acc8a11..225d0b6f771 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/diff/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD index 41f6f2a92a7..8859a8e47d1 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD index a5353ec7393..7b682719519 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/framer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD index e1e2fbbbb68..fa913eb774c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD index b3edab49203..3d82eb52621 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/httpstream/spdy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD index 83815d6415a..9eece8f8059 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/intstr/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD index 4b5a337debb..cc30f70404d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/json/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD index 929faec14cf..147c659e59b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/jsonmergepatch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD index 690b0372508..775b5b2b62e 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/mergepatch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD index 1412e409c86..bdd086a61ed 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/net/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD index 8018bb2cdb8..ff2aafdbaea 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/proxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD index 298d990e95b..a92d241f9a2 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/rand/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD index d72a2e5f8ca..0293e0ddad3 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/remotecommand/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD index 7b4560140c1..55109577d9c 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/runtime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD index bf0ed2c9aba..831606ed3be 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/sets/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load("@io_kubernetes_build//defs:go.bzl", "go_genrule") load( "@io_bazel_rules_go//go:def.bzl", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD index faaf46d0d62..f39b267a2f0 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/sets/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD index e97a1f69bee..eebfbf69a75 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/strategicpatch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD index 6e26cbc9243..5ee2b075b7d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/uuid/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD index 7c0993bf504..cd174f80082 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD index de47ad61ca0..9138331856d 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/validation/field/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD index b877a52300e..dfbfb2a7c07 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/wait/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD b/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD index a20bbbd3433..433c3eacb6b 100644 --- a/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/util/yaml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/version/BUILD b/staging/src/k8s.io/apimachinery/pkg/version/BUILD index f0f511f09b9..8a548064ae1 100644 --- a/staging/src/k8s.io/apimachinery/pkg/version/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/version/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/pkg/watch/BUILD b/staging/src/k8s.io/apimachinery/pkg/watch/BUILD index 513d44a584c..6285679f366 100644 --- a/staging/src/k8s.io/apimachinery/pkg/watch/BUILD +++ b/staging/src/k8s.io/apimachinery/pkg/watch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD b/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD index df33686d03d..cf64e1f539a 100644 --- a/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD +++ b/staging/src/k8s.io/apimachinery/third_party/forked/golang/json/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD b/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD index 49455e16ef4..b48ba03127e 100644 --- a/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD +++ b/staging/src/k8s.io/apimachinery/third_party/forked/golang/netutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD b/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD index 36db6bef9df..b5f3d74658b 100644 --- a/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD +++ b/staging/src/k8s.io/apimachinery/third_party/forked/golang/reflect/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/admission/BUILD b/staging/src/k8s.io/apiserver/pkg/admission/BUILD index 40218ef709c..8c380dd8892 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/admission/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD b/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD index e6a48712f1f..2755ab09016 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/admission/initializer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD b/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD index 46243e03e82..96d15ce0833 100644 --- a/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/admission/plugin/namespace/lifecycle/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD index 0bc9de63a53..d8709cb0f48 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD index c827ab955d3..b5236bef995 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD index 914c1f5a352..a4d1b765943 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/apiserver/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD index 039fed14c64..085a82ce5d5 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD index f7f6034d473..8f1d8076406 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD index e2e198b79c9..c9334d54184 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD index 8507dfffce2..38ab70d076c 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/audit/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD index 1c03ddcd0e6..e5b7b24b2df 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD index e8b6033c817..650230c7252 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/fuzzer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD index 4db1d954ea8..8a939e03e7d 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD index 776917a2b93..4bcc5d5ae1a 100644 --- a/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/apis/example/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/audit/BUILD b/staging/src/k8s.io/apiserver/pkg/audit/BUILD index 940ff546017..9229b141bba 100644 --- a/staging/src/k8s.io/apiserver/pkg/audit/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/audit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD b/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD index 8f7aaddf56c..949a10af20c 100644 --- a/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/audit/policy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD index 91d0b27d6dd..e49523f2998 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/authenticator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD index 1f1a3482ff3..19084bed46a 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/authenticatorfactory/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD index 968ce73885d..b4cf749bd5c 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/group/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD index eb86f6311ef..e0538757bc7 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/anonymous/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD index 1ea3bb6a721..37a5d33443d 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/bearertoken/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD index 835e158a056..93a0164bf86 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/headerrequest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD index 9178946cef8..c3c0131e7e8 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/union/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD index 8c80b166b9f..ccb9d742463 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/websocket/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD index 6d89e6b1d5e..3f8a0d91c65 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD index 5dce88f5177..9f63af9e36a 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/serviceaccount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD index 957b6057803..f298f15b490 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/token/tokenfile/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD b/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD index 5e0ae6e8d9c..8f8d940ea82 100644 --- a/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authentication/user/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD b/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD index 91d0b27d6dd..e49523f2998 100644 --- a/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authorization/authorizer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD b/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD index 1b041413e7a..655342a6d22 100644 --- a/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authorization/authorizerfactory/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD b/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD index bdc871e3be9..47d6f38b205 100644 --- a/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/authorization/union/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD index e68c946538a..65996a8900f 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD index 82f829d3ea0..3623cd9e4a5 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/discovery/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD index 36f0914cc9b..cbcb0833810 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/filters/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD index a4ac67226ad..f60cf7b6462 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD index 629b9588985..aed172285db 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/negotiation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD index 2a204ed3436..4ee001070e4 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/handlers/responsewriters/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD index 82e422c7dcc..bcc239904e7 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD index cd0537fb1e5..619e36e2582 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD index 3ab7b63578c..06990fb5b8c 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/openapi/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD index b67efc78746..a9fff53ccd7 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/request/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD index 08fb1533d0a..0ccbb0641a2 100644 --- a/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/endpoints/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/features/BUILD b/staging/src/k8s.io/apiserver/pkg/features/BUILD index 30e2b48e155..3b415effc45 100644 --- a/staging/src/k8s.io/apiserver/pkg/features/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/features/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/BUILD index dcefb5d7855..27c000a76e4 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD index a304d8a7a29..8d2212a4d8a 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD index 4d7a1ffbae3..82da56630c5 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/registry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD index 7f38f6cbde1..06fb0e46e08 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/generic/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD index c8ddaac04a7..3e5b4d5781d 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD b/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD index 74b588ad952..75f8952f52c 100644 --- a/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/registry/rest/resttest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/BUILD b/staging/src/k8s.io/apiserver/pkg/server/BUILD index f87d2366e41..7e3433955f0 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD b/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD index 759fb0a5a84..a4051a5edc3 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/filters/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD b/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD index b7a33b9e9b7..a0c5ecadb2e 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/healthz/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD b/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD index 1f84ac64f67..92c63dcadf6 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/httplog/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD b/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD index 1d67e0bf0fb..acbbf22cce3 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/mux/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD index f49d327e9da..0f6d6e8c606 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/options/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD b/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD index 48f63c9001c..442550bb97f 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/options/encryptionconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD b/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD index 7873eaa5ae5..bf0f862403a 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/routes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD b/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD index 40d18c8cd34..1b6d661a2e6 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/routes/data/swagger/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD b/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD index 0748dac6b0e..18b12853c09 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/server/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/BUILD index f6ac27a5df1..c8ea98ab703 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD index a53be11f885..41f19e21bc1 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD index 875eec1347a..c1f36633edc 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD index f2297458778..cd32ea1a4cf 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD index 7497542d14c..b9badf163a2 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD index cf37f6b4d60..0f089ee9b48 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD index 731c2d66156..910ddd53711 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD index 2ef03875c2e..935b7faebcf 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD index aaee9485cde..51496d936e1 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD index 5a04a8267d3..b1392aa408d 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/etcd3/preflight/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD index 2dbfbdd98b2..88ee18bb157 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/names/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD index ada0a8b68cb..1609b74c2b9 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD index 0f8b0079d8f..38f9bb64105 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD index 30c74dbce74..45c465a4f81 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD index 987b869547f..7299f0438b4 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/tests/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD index e9e303e8b6f..0933e97415b 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD index 00820cc3123..430d6438de9 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/aes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD index 9f410268e85..3d45be121cf 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD index 614f851ccfe..57040228990 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/identity/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD index fda654883ed..79308921a35 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/secretbox/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD b/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD index 10db5aac37b..582bf86bd58 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/feature/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD b/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD index 731b885d0f0..83a353d935d 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/flag/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD b/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD index 023965eff01..5e62223522d 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/flushwriter/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD b/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD index 73bd9fde975..08392d469d0 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/logs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD b/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD index 75260283afd..b411276dab2 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/proxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD b/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD index eea0cc97791..89cc2f56925 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/trace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD b/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD index 73d513c68a2..91689975615 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/webhook/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD b/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD index b77e9f4ba25..da0546b3a44 100644 --- a/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD +++ b/staging/src/k8s.io/apiserver/pkg/util/wsstream/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD index 0ff03980793..e4d6e83958e 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/audit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD index 9f2e731f1f0..2c038e88226 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/audit/log/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD index fc68ba71705..3fc7cd48af5 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/audit/webhook/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD index 549d79b59d8..20838b6181a 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD index 82d26f2ff15..3721a3d5695 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD index 89d9f77e240..d80a6fe7120 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/allow/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD index 01bdea23609..b25b06144f4 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/keystone/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD index 9b494533cae..667355f60c5 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/password/passwordfile/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD index 7635ac9a0b6..087b6df169f 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/request/basicauth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD index 8e03b414fb0..8bbb5ceccea 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD index ef5377b9af4..06edbb1c5e7 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/oidc/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD index 4d288d3f48a..7c579805ef0 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/tokentest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD index c3a9d7282aa..75718d6ee8c 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authenticator/token/webhook/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD b/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD index 2f7bd455267..92d2a388fb1 100644 --- a/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD +++ b/staging/src/k8s.io/apiserver/plugin/pkg/authorizer/webhook/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/discovery/BUILD b/staging/src/k8s.io/client-go/discovery/BUILD index 1486859a909..81135dded85 100644 --- a/staging/src/k8s.io/client-go/discovery/BUILD +++ b/staging/src/k8s.io/client-go/discovery/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/discovery/cached/BUILD b/staging/src/k8s.io/client-go/discovery/cached/BUILD index 49ea7585f1a..a1d030d4de4 100644 --- a/staging/src/k8s.io/client-go/discovery/cached/BUILD +++ b/staging/src/k8s.io/client-go/discovery/cached/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/discovery/fake/BUILD b/staging/src/k8s.io/client-go/discovery/fake/BUILD index e565ab046a9..ac28a2244a7 100644 --- a/staging/src/k8s.io/client-go/discovery/fake/BUILD +++ b/staging/src/k8s.io/client-go/discovery/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/dynamic/BUILD b/staging/src/k8s.io/client-go/dynamic/BUILD index 50db7ac4fde..788462039df 100644 --- a/staging/src/k8s.io/client-go/dynamic/BUILD +++ b/staging/src/k8s.io/client-go/dynamic/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/dynamic/fake/BUILD b/staging/src/k8s.io/client-go/dynamic/fake/BUILD index 9a172f4ac6e..9c281e0411e 100644 --- a/staging/src/k8s.io/client-go/dynamic/fake/BUILD +++ b/staging/src/k8s.io/client-go/dynamic/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD b/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD index 3efd41743a8..891f853077f 100644 --- a/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD +++ b/staging/src/k8s.io/client-go/examples/create-update-delete-deployment/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD index 30912547ce8..0cfa979e0eb 100644 --- a/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD +++ b/staging/src/k8s.io/client-go/examples/in-cluster-client-configuration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD index db4d679a40e..f502df56a30 100644 --- a/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD +++ b/staging/src/k8s.io/client-go/examples/out-of-cluster-client-configuration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/client-go/examples/workqueue/BUILD b/staging/src/k8s.io/client-go/examples/workqueue/BUILD index 25ef07ae2c2..9d539cdb449 100644 --- a/staging/src/k8s.io/client-go/examples/workqueue/BUILD +++ b/staging/src/k8s.io/client-go/examples/workqueue/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/client-go/informers/BUILD b/staging/src/k8s.io/client-go/informers/BUILD index 81a99e532bf..f796eda8655 100644 --- a/staging/src/k8s.io/client-go/informers/BUILD +++ b/staging/src/k8s.io/client-go/informers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD b/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD index 6298b15af69..28360513098 100644 --- a/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD +++ b/staging/src/k8s.io/client-go/informers/admissionregistration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD index dd42b9b4eec..8f405a3a5a8 100644 --- a/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/admissionregistration/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/apps/BUILD b/staging/src/k8s.io/client-go/informers/apps/BUILD index 574c4b0731a..f7c0d1151dc 100644 --- a/staging/src/k8s.io/client-go/informers/apps/BUILD +++ b/staging/src/k8s.io/client-go/informers/apps/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD index fc538c70762..c6eaee5e3ab 100644 --- a/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/apps/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD b/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD index fc6a4fd54b8..9cbb3e30285 100644 --- a/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/client-go/informers/apps/v1beta2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/autoscaling/BUILD b/staging/src/k8s.io/client-go/informers/autoscaling/BUILD index f014afdf607..4169b35026d 100644 --- a/staging/src/k8s.io/client-go/informers/autoscaling/BUILD +++ b/staging/src/k8s.io/client-go/informers/autoscaling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD b/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD index 45d9689ab6c..b9b49874398 100644 --- a/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/autoscaling/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD index 95e4c126120..f28447c3934 100644 --- a/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/autoscaling/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/batch/BUILD b/staging/src/k8s.io/client-go/informers/batch/BUILD index 7fd93dd6e32..90335d5c03d 100644 --- a/staging/src/k8s.io/client-go/informers/batch/BUILD +++ b/staging/src/k8s.io/client-go/informers/batch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/batch/v1/BUILD b/staging/src/k8s.io/client-go/informers/batch/v1/BUILD index ee22bd57ed1..b5c3bcd56c2 100644 --- a/staging/src/k8s.io/client-go/informers/batch/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/batch/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD b/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD index c9b9b0612a9..74c94faea84 100644 --- a/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/batch/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/certificates/BUILD b/staging/src/k8s.io/client-go/informers/certificates/BUILD index bdf3626f070..d87e8883afd 100644 --- a/staging/src/k8s.io/client-go/informers/certificates/BUILD +++ b/staging/src/k8s.io/client-go/informers/certificates/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD index 4036c3ffb19..eee6b25088d 100644 --- a/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/certificates/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/core/BUILD b/staging/src/k8s.io/client-go/informers/core/BUILD index 547d5ccf6a7..1b4345ea631 100644 --- a/staging/src/k8s.io/client-go/informers/core/BUILD +++ b/staging/src/k8s.io/client-go/informers/core/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/core/v1/BUILD b/staging/src/k8s.io/client-go/informers/core/v1/BUILD index 78cfba76885..697caaf139c 100644 --- a/staging/src/k8s.io/client-go/informers/core/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/core/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/extensions/BUILD b/staging/src/k8s.io/client-go/informers/extensions/BUILD index 7599a9594a1..214883a11bf 100644 --- a/staging/src/k8s.io/client-go/informers/extensions/BUILD +++ b/staging/src/k8s.io/client-go/informers/extensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD index a756010c192..195f023eadf 100644 --- a/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/extensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD b/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD index 3d8ee0c229f..1f3323abcce 100644 --- a/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD +++ b/staging/src/k8s.io/client-go/informers/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/networking/BUILD b/staging/src/k8s.io/client-go/informers/networking/BUILD index 40cb590baa6..89809fa6c34 100644 --- a/staging/src/k8s.io/client-go/informers/networking/BUILD +++ b/staging/src/k8s.io/client-go/informers/networking/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/networking/v1/BUILD b/staging/src/k8s.io/client-go/informers/networking/v1/BUILD index 33c125bb0f3..43d2bbf8375 100644 --- a/staging/src/k8s.io/client-go/informers/networking/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/networking/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/policy/BUILD b/staging/src/k8s.io/client-go/informers/policy/BUILD index 4eb5f761a97..66dc7d48b7b 100644 --- a/staging/src/k8s.io/client-go/informers/policy/BUILD +++ b/staging/src/k8s.io/client-go/informers/policy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD index afc9a3d85d5..a1d03643232 100644 --- a/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/policy/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/BUILD b/staging/src/k8s.io/client-go/informers/rbac/BUILD index bbb3d92175c..107e22b2d02 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD b/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD index b0dd5455411..6a5ef536f0f 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD index 30bf5aaa73f..52d662231a3 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD index 0a359cca024..229b451e4f8 100644 --- a/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/rbac/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/scheduling/BUILD b/staging/src/k8s.io/client-go/informers/scheduling/BUILD index 47b3b9bd78e..dec09ae459e 100644 --- a/staging/src/k8s.io/client-go/informers/scheduling/BUILD +++ b/staging/src/k8s.io/client-go/informers/scheduling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD index 108ba930157..34676949cff 100644 --- a/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/scheduling/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/settings/BUILD b/staging/src/k8s.io/client-go/informers/settings/BUILD index d351bb40c97..4c84b1758c8 100644 --- a/staging/src/k8s.io/client-go/informers/settings/BUILD +++ b/staging/src/k8s.io/client-go/informers/settings/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD b/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD index 0aebd4c0ad6..c09df485dca 100644 --- a/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/informers/settings/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/storage/BUILD b/staging/src/k8s.io/client-go/informers/storage/BUILD index 16561ce1eaf..550a51e6c93 100644 --- a/staging/src/k8s.io/client-go/informers/storage/BUILD +++ b/staging/src/k8s.io/client-go/informers/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/storage/v1/BUILD b/staging/src/k8s.io/client-go/informers/storage/v1/BUILD index f2131a3440f..5868626b186 100644 --- a/staging/src/k8s.io/client-go/informers/storage/v1/BUILD +++ b/staging/src/k8s.io/client-go/informers/storage/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD b/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD index f1458ed3ca8..dd0a1ca1fcf 100644 --- a/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/informers/storage/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/BUILD b/staging/src/k8s.io/client-go/kubernetes/BUILD index 19359457d43..a171aa1e935 100644 --- a/staging/src/k8s.io/client-go/kubernetes/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/fake/BUILD index 50ead88d702..40c29f640a0 100644 --- a/staging/src/k8s.io/client-go/kubernetes/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD b/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD index b33118a55df..753abcd9d1a 100644 --- a/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD index 484d3fcf0b5..f2b50573128 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD index 7e8dab72928..0f404bf5b66 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/admissionregistration/v1alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD index a8e3a28904d..5b620a0bba9 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD index 3f6f5de2276..4269dabb93a 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD index 9f6441b51af..a109e0f0ba2 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD index 35e7dfd417b..824dd7287c0 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/apps/v1beta2/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD index 9667c002b6d..8b47c107931 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD index ee33733b49c..acd8739a033 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD index d5c257958b1..29b88edf5ac 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD index 027f6252a2a..cce5471e04e 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authentication/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD index 7eccfee233f..ab5f2454af5 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD index 66b1d9a8568..8fe5bebd438 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD index fcd2cb60d71..1fa7e72282c 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD index ebdf8b7a119..eb9a8b32050 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/authorization/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD index cd49c8ed28a..c9f72448330 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD index 7ad7bf4a68b..1793ee4db65 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD index 3dc2d67debf..e47c20df576 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD index 4a7c06d2b29..a326e8b07ed 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/autoscaling/v2alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD index bcbc3a5bf04..ff1e7ea69c3 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD index b714456a4f9..dfcaf27927a 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD index b7ffcc17b57..83e35ab4ec7 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD index b91aca84103..2e041d51bed 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD index cf5ae89e783..ba36b676103 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD index a6baa84e6b9..e7d923d9c6e 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD index 284f2e3e7f5..76b65f92289 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD index da71a8e7094..8b2920948d0 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/core/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD index 4403310e555..af61bbeffdc 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD index 4154911da38..45985b8deb6 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/extensions/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD index 70c28183304..275b2fea5fb 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD index a4f14774f45..00d8314680c 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/networking/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD index 07fe7dd9766..be2393905eb 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD index 8d6aae0258b..3f984dc1f66 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD index 14b33c83d80..436c9713089 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD index cc97eace6af..0ee621cda29 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD index 276ab3c54f1..c61acfed0d8 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD index 8b6093ce936..eb119bb8ecd 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD index 4da3de4e7c8..4d29cb8cda9 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD index 1c0c366def0..335e84a513b 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/rbac/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD index 89e00f58cd0..e1879101710 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD index 9a6d9cd1a0c..3054049f0e5 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/scheduling/v1alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD index 59c8500b635..a4304afd3c7 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD index e1f009f64f9..9c6c59609ab 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/settings/v1alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD index 1bb1f1612fd..6d26ca505e6 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD index 5f0ea3d9d82..b53cee2e6f9 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD index f1b46730815..9bee7a36ff7 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD index e83affd5aaa..95b3f2149d3 100644 --- a/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/client-go/kubernetes/typed/storage/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD index f75afadc9e8..cdc0c6e4aef 100644 --- a/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/admissionregistration/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD index 73b9c7a66e9..586e116fd35 100644 --- a/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/apps/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD b/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD index b036bd9f92e..eda475f3a1f 100644 --- a/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD +++ b/staging/src/k8s.io/client-go/listers/apps/v1beta2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD b/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD index 7dae81db270..3085d144914 100644 --- a/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authentication/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD index f437d40d6cd..9c074127bb6 100644 --- a/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authentication/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD b/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD index 330243c6c78..3c77a5e3583 100644 --- a/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authorization/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD index 56585800ff1..7fca960f7c6 100644 --- a/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/authorization/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD b/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD index 6acf38191a8..f52b549ec1d 100644 --- a/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/autoscaling/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD b/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD index ff5cb2c4f7a..29131c9cbc1 100644 --- a/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/autoscaling/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/batch/v1/BUILD b/staging/src/k8s.io/client-go/listers/batch/v1/BUILD index 3ceca8f836b..8a188ac0922 100644 --- a/staging/src/k8s.io/client-go/listers/batch/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/batch/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD b/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD index ee50883ed78..d4b630172c5 100644 --- a/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/batch/v2alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD index 213e1ba2e67..a3a11915cc5 100644 --- a/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/certificates/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/core/v1/BUILD b/staging/src/k8s.io/client-go/listers/core/v1/BUILD index 2c7df9b3077..beb7e6635cc 100644 --- a/staging/src/k8s.io/client-go/listers/core/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/core/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD index 33c2f67132d..9dec1ff0711 100644 --- a/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/extensions/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD index 59aa9db8c6c..49bac986b2c 100644 --- a/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/imagepolicy/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/networking/v1/BUILD b/staging/src/k8s.io/client-go/listers/networking/v1/BUILD index fd729ca81c6..4b6e2183239 100644 --- a/staging/src/k8s.io/client-go/listers/networking/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/networking/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD index a760048c09a..8bcde940c23 100644 --- a/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/policy/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD b/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD index b8598b5cdc3..d3c5e2e38e8 100644 --- a/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/rbac/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD index 3eba85fc348..c497f2966b1 100644 --- a/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/rbac/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD index 0b6b78b283f..85de3ea1928 100644 --- a/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/rbac/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD index 7e5f5c5651b..163c965a32d 100644 --- a/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/scheduling/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD b/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD index 8610edc836f..436fa356c17 100644 --- a/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD +++ b/staging/src/k8s.io/client-go/listers/settings/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/storage/v1/BUILD b/staging/src/k8s.io/client-go/listers/storage/v1/BUILD index f01dc853f82..4bf813e3b20 100644 --- a/staging/src/k8s.io/client-go/listers/storage/v1/BUILD +++ b/staging/src/k8s.io/client-go/listers/storage/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD b/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD index 9b7633c40ab..57fcd37c698 100644 --- a/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD +++ b/staging/src/k8s.io/client-go/listers/storage/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/pkg/version/BUILD b/staging/src/k8s.io/client-go/pkg/version/BUILD index 0e4d5efc45e..2bb94c6e225 100644 --- a/staging/src/k8s.io/client-go/pkg/version/BUILD +++ b/staging/src/k8s.io/client-go/pkg/version/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD index ef5377b9af4..06edbb1c5e7 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/auth/authenticator/token/oidc/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD index 31b06a43c38..c4ed1de5aab 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD index 799d2459696..2c928c71f84 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/azure/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD index 1ef72ca33a2..adba877c62d 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/gcp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD index 9e5a76f43ce..c65bfe9dabe 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/oidc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD index 34ff3047636..211e390e600 100644 --- a/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD +++ b/staging/src/k8s.io/client-go/plugin/pkg/client/auth/openstack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/rest/BUILD b/staging/src/k8s.io/client-go/rest/BUILD index b7ac2a475f5..ee877febc13 100644 --- a/staging/src/k8s.io/client-go/rest/BUILD +++ b/staging/src/k8s.io/client-go/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/rest/fake/BUILD b/staging/src/k8s.io/client-go/rest/fake/BUILD index 829080456b6..9b013d3e4c2 100644 --- a/staging/src/k8s.io/client-go/rest/fake/BUILD +++ b/staging/src/k8s.io/client-go/rest/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/rest/watch/BUILD b/staging/src/k8s.io/client-go/rest/watch/BUILD index 9afdab8ba2b..9e0082cc276 100644 --- a/staging/src/k8s.io/client-go/rest/watch/BUILD +++ b/staging/src/k8s.io/client-go/rest/watch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/testing/BUILD b/staging/src/k8s.io/client-go/testing/BUILD index 5b58606db5c..3eb2728b3b9 100644 --- a/staging/src/k8s.io/client-go/testing/BUILD +++ b/staging/src/k8s.io/client-go/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD b/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD index 9ad3abc8b5f..26dd36f17ed 100644 --- a/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD +++ b/staging/src/k8s.io/client-go/third_party/forked/golang/template/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/auth/BUILD b/staging/src/k8s.io/client-go/tools/auth/BUILD index 785a2e57189..5f5238bb52f 100644 --- a/staging/src/k8s.io/client-go/tools/auth/BUILD +++ b/staging/src/k8s.io/client-go/tools/auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/cache/BUILD b/staging/src/k8s.io/client-go/tools/cache/BUILD index 5ecf882c618..e79cce629cc 100644 --- a/staging/src/k8s.io/client-go/tools/cache/BUILD +++ b/staging/src/k8s.io/client-go/tools/cache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/cache/testing/BUILD b/staging/src/k8s.io/client-go/tools/cache/testing/BUILD index ed12963dcbf..0372461300c 100644 --- a/staging/src/k8s.io/client-go/tools/cache/testing/BUILD +++ b/staging/src/k8s.io/client-go/tools/cache/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/BUILD index d5c015127d0..c91b688e24d 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD index bac4eeb6500..443b31f7939 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD index 0de286c87a6..deab93e06c9 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/latest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD index c47b1cafa16..f95ee400e13 100644 --- a/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD +++ b/staging/src/k8s.io/client-go/tools/clientcmd/api/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/leaderelection/BUILD b/staging/src/k8s.io/client-go/tools/leaderelection/BUILD index 10460e6ced2..103c0c5a183 100644 --- a/staging/src/k8s.io/client-go/tools/leaderelection/BUILD +++ b/staging/src/k8s.io/client-go/tools/leaderelection/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD b/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD index 3db307fd862..51a814e350a 100644 --- a/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD +++ b/staging/src/k8s.io/client-go/tools/leaderelection/resourcelock/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/metrics/BUILD b/staging/src/k8s.io/client-go/tools/metrics/BUILD index 4624248ca78..8a0344488be 100644 --- a/staging/src/k8s.io/client-go/tools/metrics/BUILD +++ b/staging/src/k8s.io/client-go/tools/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/portforward/BUILD b/staging/src/k8s.io/client-go/tools/portforward/BUILD index d0baf9272d9..cea870f5f64 100644 --- a/staging/src/k8s.io/client-go/tools/portforward/BUILD +++ b/staging/src/k8s.io/client-go/tools/portforward/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/record/BUILD b/staging/src/k8s.io/client-go/tools/record/BUILD index f7f6e3088d1..de3160d2c85 100644 --- a/staging/src/k8s.io/client-go/tools/record/BUILD +++ b/staging/src/k8s.io/client-go/tools/record/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/reference/BUILD b/staging/src/k8s.io/client-go/tools/reference/BUILD index 6da99e71dc6..50176ff6ddb 100644 --- a/staging/src/k8s.io/client-go/tools/reference/BUILD +++ b/staging/src/k8s.io/client-go/tools/reference/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/tools/remotecommand/BUILD b/staging/src/k8s.io/client-go/tools/remotecommand/BUILD index deac59c72d5..9d061ed0687 100644 --- a/staging/src/k8s.io/client-go/tools/remotecommand/BUILD +++ b/staging/src/k8s.io/client-go/tools/remotecommand/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/transport/BUILD b/staging/src/k8s.io/client-go/transport/BUILD index 5fc06b74532..56b6256c9a0 100644 --- a/staging/src/k8s.io/client-go/transport/BUILD +++ b/staging/src/k8s.io/client-go/transport/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/transport/spdy/BUILD b/staging/src/k8s.io/client-go/transport/spdy/BUILD index c474f3ef787..7e5145c990e 100644 --- a/staging/src/k8s.io/client-go/transport/spdy/BUILD +++ b/staging/src/k8s.io/client-go/transport/spdy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/cert/BUILD b/staging/src/k8s.io/client-go/util/cert/BUILD index a758beb11c1..d8076548ce8 100644 --- a/staging/src/k8s.io/client-go/util/cert/BUILD +++ b/staging/src/k8s.io/client-go/util/cert/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/cert/triple/BUILD b/staging/src/k8s.io/client-go/util/cert/triple/BUILD index f27694c416c..1bed9cd4318 100644 --- a/staging/src/k8s.io/client-go/util/cert/triple/BUILD +++ b/staging/src/k8s.io/client-go/util/cert/triple/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/exec/BUILD b/staging/src/k8s.io/client-go/util/exec/BUILD index 52c56ae0482..396658dc5b4 100644 --- a/staging/src/k8s.io/client-go/util/exec/BUILD +++ b/staging/src/k8s.io/client-go/util/exec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/flowcontrol/BUILD b/staging/src/k8s.io/client-go/util/flowcontrol/BUILD index 8dbafa8d892..ff03657a420 100644 --- a/staging/src/k8s.io/client-go/util/flowcontrol/BUILD +++ b/staging/src/k8s.io/client-go/util/flowcontrol/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/homedir/BUILD b/staging/src/k8s.io/client-go/util/homedir/BUILD index ca47477de9a..255d866b8b5 100644 --- a/staging/src/k8s.io/client-go/util/homedir/BUILD +++ b/staging/src/k8s.io/client-go/util/homedir/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/integer/BUILD b/staging/src/k8s.io/client-go/util/integer/BUILD index 2a53788e1cb..25e7d7f94a8 100644 --- a/staging/src/k8s.io/client-go/util/integer/BUILD +++ b/staging/src/k8s.io/client-go/util/integer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/jsonpath/BUILD b/staging/src/k8s.io/client-go/util/jsonpath/BUILD index 2be1601487f..8cd93e1c9bc 100644 --- a/staging/src/k8s.io/client-go/util/jsonpath/BUILD +++ b/staging/src/k8s.io/client-go/util/jsonpath/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/testing/BUILD b/staging/src/k8s.io/client-go/util/testing/BUILD index c6f4b29d6e8..d7534616aac 100644 --- a/staging/src/k8s.io/client-go/util/testing/BUILD +++ b/staging/src/k8s.io/client-go/util/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/client-go/util/workqueue/BUILD b/staging/src/k8s.io/client-go/util/workqueue/BUILD index 05d16c723eb..58adbda042b 100644 --- a/staging/src/k8s.io/client-go/util/workqueue/BUILD +++ b/staging/src/k8s.io/client-go/util/workqueue/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/BUILD b/staging/src/k8s.io/kube-aggregator/BUILD index 99287b0f27f..52ca37eb684 100644 --- a/staging/src/k8s.io/kube-aggregator/BUILD +++ b/staging/src/k8s.io/kube-aggregator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD index 7035f02aeea..fcbc32a1992 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD index bd54e48fabc..1fb42eb6273 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD index 7d7be51af48..b3e620266ba 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD index dc7143e970f..040e64bea5f 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apis/apiregistration/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD index 3faf1a46c81..ccc0b52b072 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD index be50a6f0f03..73e32289473 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD index 1a73bff019a..eb6cbabfc0c 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD index c2373401148..e8298c2fce1 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD index 94829f8def2..908f1951a14 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD index f16be9ef0b5..aeef781ab14 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset/typed/apiregistration/v1beta1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD index c783280e26d..1565118e39b 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD index f9750025141..9c9f335e2c5 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD index 9076da12093..8b598eadc1d 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD index 7e51c337eb5..1c7ac3f1a7e 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD index 2d196a19b75..7981f793b83 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/clientset_generated/internalclientset/typed/apiregistration/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD index 3d6b3fca4f3..c1c1b3a6141 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD index f7c2ecd19f7..de215e40f9e 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD index b4f000bf965..413e5f0364e 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/apiregistration/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD index 64b3b6423e7..6b5931c0466 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/externalversions/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD index f459341c75d..77812a0b268 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD index 33da05cbb61..8701145496c 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD index 1796512a2e1..055da5c8ba2 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/apiregistration/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD index 80064de7b3d..78dbde363ee 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/informers/internalversion/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD index ef549599277..152e0db9ef1 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD index dc3fcf58f32..d96936c35a2 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/client/listers/apiregistration/v1beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD index 379ea0a84ba..c42fea68284 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/cmd/server/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD index fdafe81edf5..9644e6dc03b 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/controllers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD index 30db2aea47b..15d2fc9dfaf 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/controllers/autoregister/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD index 9f7b8bb964e..a2f239d0ad9 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/controllers/status/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD index 9fc6e3ffffa..f77b75f5bcb 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD index 562006df4ba..1a486312dcd 100644 --- a/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD +++ b/staging/src/k8s.io/kube-aggregator/pkg/registry/apiservice/etcd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD index 1cfc11b483d..74864e5d484 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD index 785e50e8b0c..6d7d6df7d58 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/args/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD index 2fe3a15d28f..95ac5eb716a 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD index 4a6c58590b0..71dd9a18bed 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD index 13280160a39..850b30ad27b 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD index 83fc9ca8be7..b426436d8a7 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/generators/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD index d35e72aecc4..3a31ed9efe3 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/path/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD b/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD index c02d754ccb2..e44988f8007 100644 --- a/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/client-gen/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD index 41ae89a3696..fea52467213 100644 --- a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD index e24a4b90438..4b3e78d33d9 100644 --- a/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/conversion-gen/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD index 863e8f242ad..bf35f7a6463 100644 --- a/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/deepcopy-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD index 5da6ef43490..7af8454c780 100644 --- a/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/defaulter-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD index a842690244e..2cbc76dd291 100644 --- a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD index 807e839c021..3d115ba2772 100644 --- a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protobuf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD index 698ad311952..a37033413b0 100644 --- a/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/go-to-protobuf/protoc-gen-gogo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD b/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD index 6fcf914f81d..0636ed3a14c 100644 --- a/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/import-boss/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD index 1725921bc49..df7ee1a6d24 100644 --- a/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/informer-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD index c0fea048850..1f56383d0fa 100644 --- a/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/informer-gen/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD index f505ba82157..292dab89b7f 100644 --- a/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/lister-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD b/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD index b5f8aa42ac1..0d1b4865e36 100644 --- a/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/lister-gen/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD index 5ea156f3eaa..a092811bd49 100644 --- a/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/openapi-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD b/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD index ce522ca0b4f..a5c01f9cab1 100644 --- a/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD +++ b/staging/src/k8s.io/kube-gen/cmd/set-gen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD b/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD index d1dcc509a03..4f10bd63323 100644 --- a/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD +++ b/staging/src/k8s.io/kube-gen/test/apis/testgroup/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD b/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD index 942f6e9504c..bff464c2a2a 100644 --- a/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD +++ b/staging/src/k8s.io/kube-gen/test/apis/testgroup/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD index fa5b3fa2b23..6b717c07f3e 100644 --- a/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/apis/testgroup/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD index 8e9a138a7ca..f4cc9735339 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD index 87dbfeff4eb..6ef5deb74c5 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD index f4e25f728d8..8d8513ff6ef 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD index 045a2eb77a3..85e9eebd074 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD index 0ff7f26a01b..5ac8473e9ee 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/internal/typed/testgroup/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD index 0b846ed5b58..0877e63c3ef 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD index 7aef9c7d49d..8796fbb90a9 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD index a0b5c20ee1b..597a08106f3 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD index 6705b86e7bd..54c2ffbfb3e 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD index 6b09d3dc68b..c8bce9ba0cf 100644 --- a/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD +++ b/staging/src/k8s.io/kube-gen/test/clientset/versioned/typed/testgroup/v1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD index f5a36510e88..9f53f06c80d 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD index 6d98d758d57..dcdcd13360f 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD index 263cb67a82b..cb8cdbf610a 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD index f015cd6eeff..02608a2d6d1 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/externalversions/testgroup/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD index 87e20c8c692..5c6fc023be9 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD index 0ae844428f2..a2c85578479 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD index 979c4235c04..a248c9e4ae1 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD index 7d860c0e5ca..ce07c449373 100644 --- a/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/informers/internalversion/testgroup/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD b/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD index e5766c24c31..c75646056a7 100644 --- a/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD +++ b/staging/src/k8s.io/kube-gen/test/listers/testgroup/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD b/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD index ab5b14abe41..f9de88d2069 100644 --- a/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD +++ b/staging/src/k8s.io/kube-gen/test/listers/testgroup/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD b/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD index 9a6b3d83e08..8dd68554410 100644 --- a/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD +++ b/staging/src/k8s.io/kube-gen/third_party/forked/golang/reflect/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD index a1430551ce9..3931e788a4a 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD index 5799d4a3fda..c145a808a4e 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD index e06c9c7f23c..ce2931e74c0 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD b/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD index 35562a79207..fba37423d13 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD b/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD index dd42af7f901..11fb277cd7c 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD index 3824d2275b3..3bed249d936 100644 --- a/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/apis/metrics/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD index dde0b9c4cc1..e981a1df63b 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD index 63940bbccd5..f7365bf3daf 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD index b38f0c539ba..2dc4a1fbbb4 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD index 84f6db68a8c..d9540be52cc 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD index 631f56fb3cc..c3a9c63f745 100644 --- a/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/clientset_generated/clientset/typed/metrics/v1alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD index f46331cc769..75922874918 100644 --- a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD index 3803d0100ac..5c2e75e5934 100644 --- a/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD +++ b/staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/BUILD b/staging/src/k8s.io/sample-apiserver/BUILD index 174839769fa..5e679ec9790 100644 --- a/staging/src/k8s.io/sample-apiserver/BUILD +++ b/staging/src/k8s.io/sample-apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD index 72065692053..f7357b1f9b6 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/admission/plugin/banflunder/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD index 75c587ad0fa..353623b8374 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/admission/wardleinitializer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD index 2378224bf63..aa8f8a3dc9e 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD index 918a46467e9..c451d3dc5fb 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/install/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD index 5318458a18d..f7ce6f12b20 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apis/wardle/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD index d9f9027e0bf..79ed70f8257 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD index ab3b4bf2e7b..90296e4354b 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD index 25419e98e48..e6d2bafb802 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD index da3982d8634..8d423db96c2 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD index c60e10a5bb2..4d0eb671eef 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD index 837d2ed2b55..94cdf0f6b28 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/clientset/typed/wardle/v1alpha1/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD index d464b867d78..a00a83e808b 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD index 8c57e7d8934..a9c990af420 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD index 53abad3d1f5..458b4f792b6 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/scheme/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD index 4490c26e8ab..ddc6e0d2211 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD index 408933d45bd..de4327b8693 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/clientset_generated/internalclientset/typed/wardle/internalversion/fake/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD index 78dbf538b7b..0895ac3e068 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD index cd4aab8757f..8879ae2650b 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD index 638b9856ed2..b3371dcd327 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD index ce2a1801097..e7ad18c5484 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/externalversions/wardle/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD index 3d5edcad1cb..337af4e206f 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD index c3139390904..d5aea15716b 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/internalinterfaces/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD index 663874702c7..8423ea59956 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD index 5199eae7013..e8a316318a9 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/informers_generated/internalversion/wardle/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD index 9aa8ccce010..41c866a1745 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/internalversion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD index 3158afaf92e..41c1c34c495 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/client/listers_generated/wardle/v1alpha1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD index a401bbe92ff..e5c74652c5c 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/cmd/server/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD index e9f3dee4e29..46efdb56376 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD index 6082960e7ec..e05438f7273 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/fischer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD index 6082960e7ec..e05438f7273 100644 --- a/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD +++ b/staging/src/k8s.io/sample-apiserver/pkg/registry/wardle/flunder/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/BUILD b/test/BUILD index 9c4c19ec884..0233959be4e 100644 --- a/test/BUILD +++ b/test/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/test/e2e/BUILD b/test/e2e/BUILD index 1e05723fe6b..0438d934331 100644 --- a/test/e2e/BUILD +++ b/test/e2e/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/apimachinery/BUILD b/test/e2e/apimachinery/BUILD index 78244990846..b58944f67a0 100644 --- a/test/e2e/apimachinery/BUILD +++ b/test/e2e/apimachinery/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/apps/BUILD b/test/e2e/apps/BUILD index 3e524025f89..7bdc5073c68 100644 --- a/test/e2e/apps/BUILD +++ b/test/e2e/apps/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/autoscaling/BUILD b/test/e2e/autoscaling/BUILD index cdcf1527a1c..a22b273c4a6 100644 --- a/test/e2e/autoscaling/BUILD +++ b/test/e2e/autoscaling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/chaosmonkey/BUILD b/test/e2e/chaosmonkey/BUILD index 3891c65aed7..f0b34e6d543 100644 --- a/test/e2e/chaosmonkey/BUILD +++ b/test/e2e/chaosmonkey/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/common/BUILD b/test/e2e/common/BUILD index 70c26bace85..58d5b24aa60 100644 --- a/test/e2e/common/BUILD +++ b/test/e2e/common/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/framework/BUILD b/test/e2e/framework/BUILD index 5d0f90c0d37..245ac34c504 100644 --- a/test/e2e/framework/BUILD +++ b/test/e2e/framework/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/framework/ginkgowrapper/BUILD b/test/e2e/framework/ginkgowrapper/BUILD index be7c2447492..71e11de2668 100644 --- a/test/e2e/framework/ginkgowrapper/BUILD +++ b/test/e2e/framework/ginkgowrapper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/framework/metrics/BUILD b/test/e2e/framework/metrics/BUILD index 92e976c30dc..44853abb7f8 100644 --- a/test/e2e/framework/metrics/BUILD +++ b/test/e2e/framework/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/generated/BUILD b/test/e2e/generated/BUILD index 1e0d2f3cfb7..706fad8a7a9 100644 --- a/test/e2e/generated/BUILD +++ b/test/e2e/generated/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/instrumentation/BUILD b/test/e2e/instrumentation/BUILD index c76e52d0b83..22a1d312d9e 100644 --- a/test/e2e/instrumentation/BUILD +++ b/test/e2e/instrumentation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/instrumentation/common/BUILD b/test/e2e/instrumentation/common/BUILD index f681528d5ea..944e485a448 100644 --- a/test/e2e/instrumentation/common/BUILD +++ b/test/e2e/instrumentation/common/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/instrumentation/logging/BUILD b/test/e2e/instrumentation/logging/BUILD index 9dd284c7023..2fd179912de 100644 --- a/test/e2e/instrumentation/logging/BUILD +++ b/test/e2e/instrumentation/logging/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/instrumentation/logging/elasticsearch/BUILD b/test/e2e/instrumentation/logging/elasticsearch/BUILD index 756be59b5a6..4fb0f9efdaf 100644 --- a/test/e2e/instrumentation/logging/elasticsearch/BUILD +++ b/test/e2e/instrumentation/logging/elasticsearch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/instrumentation/logging/stackdrvier/BUILD b/test/e2e/instrumentation/logging/stackdrvier/BUILD index 11f6db6aa3c..cbd29eff8cb 100644 --- a/test/e2e/instrumentation/logging/stackdrvier/BUILD +++ b/test/e2e/instrumentation/logging/stackdrvier/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/instrumentation/logging/utils/BUILD b/test/e2e/instrumentation/logging/utils/BUILD index fb2a5b11b44..7b70e61dc03 100644 --- a/test/e2e/instrumentation/logging/utils/BUILD +++ b/test/e2e/instrumentation/logging/utils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/instrumentation/monitoring/BUILD b/test/e2e/instrumentation/monitoring/BUILD index 50d748dd1d6..7677ba55d7c 100644 --- a/test/e2e/instrumentation/monitoring/BUILD +++ b/test/e2e/instrumentation/monitoring/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/kubectl/BUILD b/test/e2e/kubectl/BUILD index 882ad075a2e..58c5ef9c92f 100644 --- a/test/e2e/kubectl/BUILD +++ b/test/e2e/kubectl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/lifecycle/BUILD b/test/e2e/lifecycle/BUILD index 4da7e362bc2..012c7044cb1 100644 --- a/test/e2e/lifecycle/BUILD +++ b/test/e2e/lifecycle/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/lifecycle/bootstrap/BUILD b/test/e2e/lifecycle/bootstrap/BUILD index a4133f5870c..55eb22f3fc3 100644 --- a/test/e2e/lifecycle/bootstrap/BUILD +++ b/test/e2e/lifecycle/bootstrap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/manifest/BUILD b/test/e2e/manifest/BUILD index 3f12fce2b62..e132b429a08 100644 --- a/test/e2e/manifest/BUILD +++ b/test/e2e/manifest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/network/BUILD b/test/e2e/network/BUILD index 47cb5ee90b7..6080e1ed433 100644 --- a/test/e2e/network/BUILD +++ b/test/e2e/network/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/node/BUILD b/test/e2e/node/BUILD index 67778a4a9eb..9bacfabe68c 100644 --- a/test/e2e/node/BUILD +++ b/test/e2e/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/perftype/BUILD b/test/e2e/perftype/BUILD index d2a39fed195..ebd879cbce2 100644 --- a/test/e2e/perftype/BUILD +++ b/test/e2e/perftype/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/scalability/BUILD b/test/e2e/scalability/BUILD index 73cf0dc26b9..6221357dc41 100644 --- a/test/e2e/scalability/BUILD +++ b/test/e2e/scalability/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/scheduling/BUILD b/test/e2e/scheduling/BUILD index 33657dcf9c3..fbec227aa5b 100644 --- a/test/e2e/scheduling/BUILD +++ b/test/e2e/scheduling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/storage/BUILD b/test/e2e/storage/BUILD index d94eb9c273d..38d2d027665 100644 --- a/test/e2e/storage/BUILD +++ b/test/e2e/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/upgrades/BUILD b/test/e2e/upgrades/BUILD index d97446f5fd1..e049ed86771 100644 --- a/test/e2e/upgrades/BUILD +++ b/test/e2e/upgrades/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/upgrades/apps/BUILD b/test/e2e/upgrades/apps/BUILD index dac2d6ccfcd..1e448896e50 100644 --- a/test/e2e/upgrades/apps/BUILD +++ b/test/e2e/upgrades/apps/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e/upgrades/storage/BUILD b/test/e2e/upgrades/storage/BUILD index 4be7c3a482f..9adedf6b5d4 100644 --- a/test/e2e/upgrades/storage/BUILD +++ b/test/e2e/upgrades/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_federation/BUILD b/test/e2e_federation/BUILD index f2c9174d966..4d52f3f4989 100644 --- a/test/e2e_federation/BUILD +++ b/test/e2e_federation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_federation/framework/BUILD b/test/e2e_federation/framework/BUILD index 005f1473e76..d6b67b7043c 100644 --- a/test/e2e_federation/framework/BUILD +++ b/test/e2e_federation/framework/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_federation/upgrades/BUILD b/test/e2e_federation/upgrades/BUILD index b849c5f7574..be79ca8f1d2 100644 --- a/test/e2e_federation/upgrades/BUILD +++ b/test/e2e_federation/upgrades/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_node/BUILD b/test/e2e_node/BUILD index a0c5b1e14a9..9039dc125e9 100644 --- a/test/e2e_node/BUILD +++ b/test/e2e_node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_node/builder/BUILD b/test/e2e_node/builder/BUILD index b3189de161e..f4a9fb12d46 100644 --- a/test/e2e_node/builder/BUILD +++ b/test/e2e_node/builder/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_node/environment/BUILD b/test/e2e_node/environment/BUILD index 82162f02ceb..896768ae717 100644 --- a/test/e2e_node/environment/BUILD +++ b/test/e2e_node/environment/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/e2e_node/perftype/BUILD b/test/e2e_node/perftype/BUILD index d2a39fed195..ebd879cbce2 100644 --- a/test/e2e_node/perftype/BUILD +++ b/test/e2e_node/perftype/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_node/remote/BUILD b/test/e2e_node/remote/BUILD index ead8f13aafa..b102fb0b33e 100644 --- a/test/e2e_node/remote/BUILD +++ b/test/e2e_node/remote/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_node/runner/local/BUILD b/test/e2e_node/runner/local/BUILD index 160fb81d298..70899d15ab8 100644 --- a/test/e2e_node/runner/local/BUILD +++ b/test/e2e_node/runner/local/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/e2e_node/runner/remote/BUILD b/test/e2e_node/runner/remote/BUILD index f0ac12e36fe..0c36eb543e3 100644 --- a/test/e2e_node/runner/remote/BUILD +++ b/test/e2e_node/runner/remote/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/e2e_node/services/BUILD b/test/e2e_node/services/BUILD index d8a83b7f032..2db32224862 100644 --- a/test/e2e_node/services/BUILD +++ b/test/e2e_node/services/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/e2e_node/system/BUILD b/test/e2e_node/system/BUILD index a7bfdaf731f..67dfe7d6c27 100644 --- a/test/e2e_node/system/BUILD +++ b/test/e2e_node/system/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/images/clusterapi-tester/BUILD b/test/images/clusterapi-tester/BUILD index 40d7404cc66..5a14c0d44c8 100644 --- a/test/images/clusterapi-tester/BUILD +++ b/test/images/clusterapi-tester/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/entrypoint-tester/BUILD b/test/images/entrypoint-tester/BUILD index de2dadf54c4..04dc887f9ca 100644 --- a/test/images/entrypoint-tester/BUILD +++ b/test/images/entrypoint-tester/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/fakegitserver/BUILD b/test/images/fakegitserver/BUILD index ae342326525..522e6a45f16 100644 --- a/test/images/fakegitserver/BUILD +++ b/test/images/fakegitserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/goproxy/BUILD b/test/images/goproxy/BUILD index 7e568a121a0..45c10904531 100644 --- a/test/images/goproxy/BUILD +++ b/test/images/goproxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/liveness/BUILD b/test/images/liveness/BUILD index c5d990b2de1..10f23cbbcca 100644 --- a/test/images/liveness/BUILD +++ b/test/images/liveness/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/logs-generator/BUILD b/test/images/logs-generator/BUILD index 592d630a0c8..a22e02b64d7 100644 --- a/test/images/logs-generator/BUILD +++ b/test/images/logs-generator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/mounttest/BUILD b/test/images/mounttest/BUILD index a33b989cb99..427abeadce6 100644 --- a/test/images/mounttest/BUILD +++ b/test/images/mounttest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/n-way-http/BUILD b/test/images/n-way-http/BUILD index 535d7471135..925ecc0e604 100644 --- a/test/images/n-way-http/BUILD +++ b/test/images/n-way-http/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/net/BUILD b/test/images/net/BUILD index cd43dd62074..84827e9bfd6 100644 --- a/test/images/net/BUILD +++ b/test/images/net/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/net/common/BUILD b/test/images/net/common/BUILD index 84408f189c6..d940c0b9bb7 100644 --- a/test/images/net/common/BUILD +++ b/test/images/net/common/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/images/net/nat/BUILD b/test/images/net/nat/BUILD index 81e5bf70ea1..2ea52915169 100644 --- a/test/images/net/nat/BUILD +++ b/test/images/net/nat/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/images/netexec/BUILD b/test/images/netexec/BUILD index 6a7ac6df747..5a080e3c881 100644 --- a/test/images/netexec/BUILD +++ b/test/images/netexec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/nettest/BUILD b/test/images/nettest/BUILD index dce109a3549..2f694540e57 100644 --- a/test/images/nettest/BUILD +++ b/test/images/nettest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/no-snat-test-proxy/BUILD b/test/images/no-snat-test-proxy/BUILD index 90d867685fe..90a3e8da91a 100644 --- a/test/images/no-snat-test-proxy/BUILD +++ b/test/images/no-snat-test-proxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/no-snat-test/BUILD b/test/images/no-snat-test/BUILD index bd4cf1da3ef..6a60db38d66 100644 --- a/test/images/no-snat-test/BUILD +++ b/test/images/no-snat-test/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/port-forward-tester/BUILD b/test/images/port-forward-tester/BUILD index 96f713da5f1..66d04340716 100644 --- a/test/images/port-forward-tester/BUILD +++ b/test/images/port-forward-tester/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/porter/BUILD b/test/images/porter/BUILD index 9c13f46670b..1b37177fb54 100644 --- a/test/images/porter/BUILD +++ b/test/images/porter/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/resource-consumer/BUILD b/test/images/resource-consumer/BUILD index d8a15dbfd2b..a3276e5c4e0 100644 --- a/test/images/resource-consumer/BUILD +++ b/test/images/resource-consumer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/resource-consumer/common/BUILD b/test/images/resource-consumer/common/BUILD index 84408f189c6..d940c0b9bb7 100644 --- a/test/images/resource-consumer/common/BUILD +++ b/test/images/resource-consumer/common/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/images/resource-consumer/consume-cpu/BUILD b/test/images/resource-consumer/consume-cpu/BUILD index 73a54ea2464..b570b6060d0 100644 --- a/test/images/resource-consumer/consume-cpu/BUILD +++ b/test/images/resource-consumer/consume-cpu/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/resource-consumer/controller/BUILD b/test/images/resource-consumer/controller/BUILD index 58409469a4f..7b12bbd27ab 100644 --- a/test/images/resource-consumer/controller/BUILD +++ b/test/images/resource-consumer/controller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/serve-hostname/BUILD b/test/images/serve-hostname/BUILD index 875f1aed007..9757630047b 100644 --- a/test/images/serve-hostname/BUILD +++ b/test/images/serve-hostname/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/images/test-webserver/BUILD b/test/images/test-webserver/BUILD index 2a6ca82ac30..17cb43e6a62 100644 --- a/test/images/test-webserver/BUILD +++ b/test/images/test-webserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/integration/BUILD b/test/integration/BUILD index f28e3103910..be220b5b2a5 100644 --- a/test/integration/BUILD +++ b/test/integration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/integration/apiserver/BUILD b/test/integration/apiserver/BUILD index 5e5416664ae..82c66a895cb 100644 --- a/test/integration/apiserver/BUILD +++ b/test/integration/apiserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/auth/BUILD b/test/integration/auth/BUILD index 098ae62b192..293388047a1 100644 --- a/test/integration/auth/BUILD +++ b/test/integration/auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/client/BUILD b/test/integration/client/BUILD index 9a7813b6bae..4a04d3eb814 100644 --- a/test/integration/client/BUILD +++ b/test/integration/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/configmap/BUILD b/test/integration/configmap/BUILD index 1c5b016cd94..de491d588cc 100644 --- a/test/integration/configmap/BUILD +++ b/test/integration/configmap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/defaulttolerationseconds/BUILD b/test/integration/defaulttolerationseconds/BUILD index b03b56a117d..3235d5c2ffb 100644 --- a/test/integration/defaulttolerationseconds/BUILD +++ b/test/integration/defaulttolerationseconds/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/deployment/BUILD b/test/integration/deployment/BUILD index a6ac6fbebb8..ff6da2dc364 100644 --- a/test/integration/deployment/BUILD +++ b/test/integration/deployment/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/integration/etcd/BUILD b/test/integration/etcd/BUILD index de4d0782a87..44db94711a8 100644 --- a/test/integration/etcd/BUILD +++ b/test/integration/etcd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/evictions/BUILD b/test/integration/evictions/BUILD index 3f62758dc38..404d8ae9bae 100644 --- a/test/integration/evictions/BUILD +++ b/test/integration/evictions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/examples/BUILD b/test/integration/examples/BUILD index 26e70d38a56..9e9dc9b478b 100644 --- a/test/integration/examples/BUILD +++ b/test/integration/examples/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/federation/BUILD b/test/integration/federation/BUILD index 187f101c174..ab566082f17 100644 --- a/test/integration/federation/BUILD +++ b/test/integration/federation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/federation/framework/BUILD b/test/integration/federation/framework/BUILD index 9aa6bfb9737..e1cdac858e6 100644 --- a/test/integration/federation/framework/BUILD +++ b/test/integration/federation/framework/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/integration/framework/BUILD b/test/integration/framework/BUILD index 4451a2053ab..c6fb9d6df2e 100644 --- a/test/integration/framework/BUILD +++ b/test/integration/framework/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/integration/garbagecollector/BUILD b/test/integration/garbagecollector/BUILD index fe5110b4d60..3de6f032fb8 100644 --- a/test/integration/garbagecollector/BUILD +++ b/test/integration/garbagecollector/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/kubectl/BUILD b/test/integration/kubectl/BUILD index 735082839ab..51095bd76d6 100644 --- a/test/integration/kubectl/BUILD +++ b/test/integration/kubectl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/master/BUILD b/test/integration/master/BUILD index 9bad9a76c51..c281aa1a067 100644 --- a/test/integration/master/BUILD +++ b/test/integration/master/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/metrics/BUILD b/test/integration/metrics/BUILD index 49a33c47276..bfe3cf1b050 100644 --- a/test/integration/metrics/BUILD +++ b/test/integration/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/integration/objectmeta/BUILD b/test/integration/objectmeta/BUILD index bc0639c405d..c55e74cbd8b 100644 --- a/test/integration/objectmeta/BUILD +++ b/test/integration/objectmeta/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/openshift/BUILD b/test/integration/openshift/BUILD index a1fc7b1bf5c..5883c5f1ff6 100644 --- a/test/integration/openshift/BUILD +++ b/test/integration/openshift/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/pods/BUILD b/test/integration/pods/BUILD index 712fbfb97dc..76f4dfd4c3b 100644 --- a/test/integration/pods/BUILD +++ b/test/integration/pods/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/quota/BUILD b/test/integration/quota/BUILD index 02521acacf2..ced16254188 100644 --- a/test/integration/quota/BUILD +++ b/test/integration/quota/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/replicaset/BUILD b/test/integration/replicaset/BUILD index d0f9600c17b..281a0238a8e 100644 --- a/test/integration/replicaset/BUILD +++ b/test/integration/replicaset/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/replicationcontroller/BUILD b/test/integration/replicationcontroller/BUILD index 717a52e98da..8cd41606c58 100644 --- a/test/integration/replicationcontroller/BUILD +++ b/test/integration/replicationcontroller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/scheduler/BUILD b/test/integration/scheduler/BUILD index 43175ee3b64..34c1505287d 100644 --- a/test/integration/scheduler/BUILD +++ b/test/integration/scheduler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/integration/scheduler_perf/BUILD b/test/integration/scheduler_perf/BUILD index 7cdb5b92ed4..a8352ea379e 100644 --- a/test/integration/scheduler_perf/BUILD +++ b/test/integration/scheduler_perf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/integration/secrets/BUILD b/test/integration/secrets/BUILD index 660e4f0f44d..09c06c3371e 100644 --- a/test/integration/secrets/BUILD +++ b/test/integration/secrets/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/serviceaccount/BUILD b/test/integration/serviceaccount/BUILD index 39a3895f300..5967cada212 100644 --- a/test/integration/serviceaccount/BUILD +++ b/test/integration/serviceaccount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/storageclasses/BUILD b/test/integration/storageclasses/BUILD index 193e6122ded..b0126f6c6f8 100644 --- a/test/integration/storageclasses/BUILD +++ b/test/integration/storageclasses/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/ttlcontroller/BUILD b/test/integration/ttlcontroller/BUILD index e5aa2a01239..14b0dac3ebf 100644 --- a/test/integration/ttlcontroller/BUILD +++ b/test/integration/ttlcontroller/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/integration/volume/BUILD b/test/integration/volume/BUILD index f5676f9fa94..b16bc6978bb 100644 --- a/test/integration/volume/BUILD +++ b/test/integration/volume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_test", diff --git a/test/kubemark/BUILD b/test/kubemark/BUILD index 6cc62052baf..7e76248ad95 100644 --- a/test/kubemark/BUILD +++ b/test/kubemark/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/test/list/BUILD b/test/list/BUILD index 3d730b687f9..a93479475a3 100644 --- a/test/list/BUILD +++ b/test/list/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/soak/cauldron/BUILD b/test/soak/cauldron/BUILD index 770e53d0533..64dfdd7bd74 100644 --- a/test/soak/cauldron/BUILD +++ b/test/soak/cauldron/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/soak/serve_hostnames/BUILD b/test/soak/serve_hostnames/BUILD index 175e8a37784..110d7615060 100644 --- a/test/soak/serve_hostnames/BUILD +++ b/test/soak/serve_hostnames/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/test/utils/BUILD b/test/utils/BUILD index eae9788dfc4..5a6ec424d3f 100644 --- a/test/utils/BUILD +++ b/test/utils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/test/utils/junit/BUILD b/test/utils/junit/BUILD index 77299301f24..a5f569e7dff 100644 --- a/test/utils/junit/BUILD +++ b/test/utils/junit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/BUILD b/vendor/BUILD index 9ca062889c5..1abe198496e 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - filegroup( name = "package-srcs", srcs = glob(["**"]), diff --git a/vendor/bitbucket.org/bertimus9/systemstat/BUILD b/vendor/bitbucket.org/bertimus9/systemstat/BUILD index faf21dd17de..4d9707bc7d8 100644 --- a/vendor/bitbucket.org/bertimus9/systemstat/BUILD +++ b/vendor/bitbucket.org/bertimus9/systemstat/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/bitbucket.org/ww/goautoneg/BUILD b/vendor/bitbucket.org/ww/goautoneg/BUILD index 8dcfcc6e63d..1a0875deb92 100644 --- a/vendor/bitbucket.org/ww/goautoneg/BUILD +++ b/vendor/bitbucket.org/ww/goautoneg/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/cloud.google.com/go/compute/metadata/BUILD b/vendor/cloud.google.com/go/compute/metadata/BUILD index f21cabaab5b..ae4da9a1203 100644 --- a/vendor/cloud.google.com/go/compute/metadata/BUILD +++ b/vendor/cloud.google.com/go/compute/metadata/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/cloud.google.com/go/internal/BUILD b/vendor/cloud.google.com/go/internal/BUILD index 72de124e794..3d1068d3fb5 100644 --- a/vendor/cloud.google.com/go/internal/BUILD +++ b/vendor/cloud.google.com/go/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD index e624bf83521..2e45e1129e7 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/compute/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD index 6e847ce5388..0ceb3590f8b 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/containerregistry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD index f40f2c9eda8..edbc7c65401 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/disk/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD index ef9f4199c25..687b0a258a5 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/network/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD index e1a84810baa..8b0fcf31ced 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/arm/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD b/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD index 5cb778c93bd..6ce434abc7d 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD +++ b/vendor/github.com/Azure/azure-sdk-for-go/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/go-ansiterm/BUILD b/vendor/github.com/Azure/go-ansiterm/BUILD index 97fd5449e9f..c4a904a93bb 100644 --- a/vendor/github.com/Azure/go-ansiterm/BUILD +++ b/vendor/github.com/Azure/go-ansiterm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/go-autorest/autorest/BUILD b/vendor/github.com/Azure/go-autorest/autorest/BUILD index d02f5d01a2f..748cbdf0621 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD b/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD index 2a231fb5062..b6a3d28f905 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/adal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD b/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD index b8d25d2401a..4f3f96366cd 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/azure/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/go-autorest/autorest/date/BUILD b/vendor/github.com/Azure/go-autorest/autorest/date/BUILD index 2202754efa1..d7a1b7a6eff 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/date/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/date/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/go-autorest/autorest/to/BUILD b/vendor/github.com/Azure/go-autorest/autorest/to/BUILD index 80180b18fba..d14d1ff81fa 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/to/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/to/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD b/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD index 2219530bf9d..1a78f6d273f 100644 --- a/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD +++ b/vendor/github.com/Azure/go-autorest/autorest/validation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/MakeNowJust/heredoc/BUILD b/vendor/github.com/MakeNowJust/heredoc/BUILD index 5e9b062aaba..0d951a8811f 100644 --- a/vendor/github.com/MakeNowJust/heredoc/BUILD +++ b/vendor/github.com/MakeNowJust/heredoc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Microsoft/go-winio/BUILD b/vendor/github.com/Microsoft/go-winio/BUILD index 0db8d9444ea..ab042f07ce5 100644 --- a/vendor/github.com/Microsoft/go-winio/BUILD +++ b/vendor/github.com/Microsoft/go-winio/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/NYTimes/gziphandler/BUILD b/vendor/github.com/NYTimes/gziphandler/BUILD index fbfc5359c7d..9825935753a 100644 --- a/vendor/github.com/NYTimes/gziphandler/BUILD +++ b/vendor/github.com/NYTimes/gziphandler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/PuerkitoBio/purell/BUILD b/vendor/github.com/PuerkitoBio/purell/BUILD index a448549da67..7e825e1ba05 100644 --- a/vendor/github.com/PuerkitoBio/purell/BUILD +++ b/vendor/github.com/PuerkitoBio/purell/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/PuerkitoBio/urlesc/BUILD b/vendor/github.com/PuerkitoBio/urlesc/BUILD index 8d85d90f13e..190965dcba1 100644 --- a/vendor/github.com/PuerkitoBio/urlesc/BUILD +++ b/vendor/github.com/PuerkitoBio/urlesc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/Sirupsen/logrus/BUILD b/vendor/github.com/Sirupsen/logrus/BUILD index 8a6f258a234..b70de36f996 100644 --- a/vendor/github.com/Sirupsen/logrus/BUILD +++ b/vendor/github.com/Sirupsen/logrus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/abbot/go-http-auth/BUILD b/vendor/github.com/abbot/go-http-auth/BUILD index 6a8d5efe419..5b6a945e18f 100644 --- a/vendor/github.com/abbot/go-http-auth/BUILD +++ b/vendor/github.com/abbot/go-http-auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/appc/spec/schema/BUILD b/vendor/github.com/appc/spec/schema/BUILD index 2a65eef2fa6..71c94c0012c 100644 --- a/vendor/github.com/appc/spec/schema/BUILD +++ b/vendor/github.com/appc/spec/schema/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/appc/spec/schema/common/BUILD b/vendor/github.com/appc/spec/schema/common/BUILD index 84408f189c6..d940c0b9bb7 100644 --- a/vendor/github.com/appc/spec/schema/common/BUILD +++ b/vendor/github.com/appc/spec/schema/common/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/appc/spec/schema/types/BUILD b/vendor/github.com/appc/spec/schema/types/BUILD index 1af7f4a0c2a..93bc320bced 100644 --- a/vendor/github.com/appc/spec/schema/types/BUILD +++ b/vendor/github.com/appc/spec/schema/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/appc/spec/schema/types/resource/BUILD b/vendor/github.com/appc/spec/schema/types/resource/BUILD index 743e4d65080..025035b6d2e 100644 --- a/vendor/github.com/appc/spec/schema/types/resource/BUILD +++ b/vendor/github.com/appc/spec/schema/types/resource/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/armon/circbuf/BUILD b/vendor/github.com/armon/circbuf/BUILD index 5affafeea3d..19cf9375df6 100644 --- a/vendor/github.com/armon/circbuf/BUILD +++ b/vendor/github.com/armon/circbuf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/asaskevich/govalidator/BUILD b/vendor/github.com/asaskevich/govalidator/BUILD index 63a9c401aaa..a126a568882 100644 --- a/vendor/github.com/asaskevich/govalidator/BUILD +++ b/vendor/github.com/asaskevich/govalidator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/BUILD index 74b7c419a7e..f69dd067a60 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD index 301abb6d8b8..b730c4bbc6c 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/awserr/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD index bade8400c6c..f2bcf336128 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/awsutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD index 008782f675f..67bdd6d5392 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD index 34116deb7de..351f951b229 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/client/metadata/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD index dfaf45b4895..dfe8f39d4ee 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/corehandlers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD index f5196676fb6..48765e75f4c 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD index d60d0fcc62a..bc77c1c6167 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD index 6f2504feaaa..4b416a72f13 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/endpointcreds/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD index 2ff98158bc5..3c9fa1e8163 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/credentials/stscreds/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD index 1279b258095..afa1bb30d88 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/defaults/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD index 772e9625a3b..bb99aad9c36 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/ec2metadata/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD index 03214b7effe..9d4a947a935 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD index a1663988d37..c4c306a71ce 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD index 08c39383ae9..a8c74b7cefa 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD index bbb60247dc6..af58e9c0ec1 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/aws/signer/v4/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD index 4024e56880b..994485022d3 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD index 8e58360eebf..7ec697660a2 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/ec2query/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD index 1eee534dbd6..a80e6ba608e 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/json/jsonutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD index 7a218111c55..e62d0c9b7d3 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/jsonrpc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD index 5b2cc5f1aa6..159c882220e 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD index 4002d1b71e3..630ba6a2ef2 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/query/queryutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD index 2cfcbfd2c0f..2ec58b2c3ff 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/rest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD index 6bf726a5d43..d7237a70a6b 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/restxml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD index eadab9ac68a..85163dca567 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD b/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD index af67703723e..6949b9a5c7f 100644 --- a/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/private/waiter/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD index ee5180e4f74..7ad8fb3a317 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD b/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD index 114e0daf208..2fc43b8fc7a 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD b/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD index 073490e8631..9601d97464b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/ecr/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD b/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD index 7c0929148f6..18d3aa3a614 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/elb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD b/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD index 11b97faafb3..36247aa79bf 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/route53/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD b/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD index 2211c9ac0ff..6f2faccb30f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/beorn7/perks/quantile/BUILD b/vendor/github.com/beorn7/perks/quantile/BUILD index c6a37b018c0..dd069e54645 100644 --- a/vendor/github.com/beorn7/perks/quantile/BUILD +++ b/vendor/github.com/beorn7/perks/quantile/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/blang/semver/BUILD b/vendor/github.com/blang/semver/BUILD index 1e31c1f3e6c..b5aba2c78c7 100644 --- a/vendor/github.com/blang/semver/BUILD +++ b/vendor/github.com/blang/semver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/boltdb/bolt/BUILD b/vendor/github.com/boltdb/bolt/BUILD index 1c5c022d4d4..760f04d3f9d 100644 --- a/vendor/github.com/boltdb/bolt/BUILD +++ b/vendor/github.com/boltdb/bolt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/chai2010/gettext-go/gettext/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/BUILD index 4808a622552..1d6c1247774 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD index a2b479f7177..2a9e7832212 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/mo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD index 2938e70e579..924d68518ae 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/plural/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD b/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD index 73b3f9e44a2..c734cd6eba0 100644 --- a/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD +++ b/vendor/github.com/chai2010/gettext-go/gettext/po/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/auth/BUILD b/vendor/github.com/cloudflare/cfssl/auth/BUILD index d11ecee45ff..24df7e2477b 100644 --- a/vendor/github.com/cloudflare/cfssl/auth/BUILD +++ b/vendor/github.com/cloudflare/cfssl/auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/certdb/BUILD b/vendor/github.com/cloudflare/cfssl/certdb/BUILD index b94812b85a7..a828fc79dcb 100644 --- a/vendor/github.com/cloudflare/cfssl/certdb/BUILD +++ b/vendor/github.com/cloudflare/cfssl/certdb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/config/BUILD b/vendor/github.com/cloudflare/cfssl/config/BUILD index 76d94683dc4..603b2e73285 100644 --- a/vendor/github.com/cloudflare/cfssl/config/BUILD +++ b/vendor/github.com/cloudflare/cfssl/config/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD b/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD index cd0ab9ce230..81096d170f5 100644 --- a/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD +++ b/vendor/github.com/cloudflare/cfssl/crypto/pkcs7/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/csr/BUILD b/vendor/github.com/cloudflare/cfssl/csr/BUILD index 1afeb102072..461251d456b 100644 --- a/vendor/github.com/cloudflare/cfssl/csr/BUILD +++ b/vendor/github.com/cloudflare/cfssl/csr/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/errors/BUILD b/vendor/github.com/cloudflare/cfssl/errors/BUILD index 035d56a2c03..a4878fd2346 100644 --- a/vendor/github.com/cloudflare/cfssl/errors/BUILD +++ b/vendor/github.com/cloudflare/cfssl/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/helpers/BUILD b/vendor/github.com/cloudflare/cfssl/helpers/BUILD index 060b7972590..1545cebd877 100644 --- a/vendor/github.com/cloudflare/cfssl/helpers/BUILD +++ b/vendor/github.com/cloudflare/cfssl/helpers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD b/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD index eb36149c0e6..4c5245b4ac2 100644 --- a/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD +++ b/vendor/github.com/cloudflare/cfssl/helpers/derhelpers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/info/BUILD b/vendor/github.com/cloudflare/cfssl/info/BUILD index d8c646b81b2..bbb65c45671 100644 --- a/vendor/github.com/cloudflare/cfssl/info/BUILD +++ b/vendor/github.com/cloudflare/cfssl/info/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/log/BUILD b/vendor/github.com/cloudflare/cfssl/log/BUILD index 376173a90ad..e9dc9069768 100644 --- a/vendor/github.com/cloudflare/cfssl/log/BUILD +++ b/vendor/github.com/cloudflare/cfssl/log/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD b/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD index 2c1d373a268..329b92f689b 100644 --- a/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD +++ b/vendor/github.com/cloudflare/cfssl/ocsp/config/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/signer/BUILD b/vendor/github.com/cloudflare/cfssl/signer/BUILD index 963b6013430..5e862e195ec 100644 --- a/vendor/github.com/cloudflare/cfssl/signer/BUILD +++ b/vendor/github.com/cloudflare/cfssl/signer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cloudflare/cfssl/signer/local/BUILD b/vendor/github.com/cloudflare/cfssl/signer/local/BUILD index 6b27c2c0348..c72816c94c9 100644 --- a/vendor/github.com/cloudflare/cfssl/signer/local/BUILD +++ b/vendor/github.com/cloudflare/cfssl/signer/local/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/clusterhq/flocker-go/BUILD b/vendor/github.com/clusterhq/flocker-go/BUILD index 96c1de971cd..752893715e0 100644 --- a/vendor/github.com/clusterhq/flocker-go/BUILD +++ b/vendor/github.com/clusterhq/flocker-go/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/codedellemc/goscaleio/BUILD b/vendor/github.com/codedellemc/goscaleio/BUILD index 9cf65de108c..d7f26d921ae 100644 --- a/vendor/github.com/codedellemc/goscaleio/BUILD +++ b/vendor/github.com/codedellemc/goscaleio/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD b/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD index faaf46d0d62..f39b267a2f0 100644 --- a/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD +++ b/vendor/github.com/codedellemc/goscaleio/types/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/codegangsta/negroni/BUILD b/vendor/github.com/codegangsta/negroni/BUILD index a567b55c89c..c887e81af0e 100644 --- a/vendor/github.com/codegangsta/negroni/BUILD +++ b/vendor/github.com/codegangsta/negroni/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/containernetworking/cni/libcni/BUILD b/vendor/github.com/containernetworking/cni/libcni/BUILD index f9343684987..a54c1fc39e0 100644 --- a/vendor/github.com/containernetworking/cni/libcni/BUILD +++ b/vendor/github.com/containernetworking/cni/libcni/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD index f82629c1b09..0ca223abf3a 100644 --- a/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/invoke/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD index 9e0b06cda8c..d2c45b30c2e 100644 --- a/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/types/020/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/types/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/BUILD index 366aa6098db..14683ab5c10 100644 --- a/vendor/github.com/containernetworking/cni/pkg/types/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD b/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD index 332177e8c00..5450c28cca5 100644 --- a/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/types/current/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/containernetworking/cni/pkg/version/BUILD b/vendor/github.com/containernetworking/cni/pkg/version/BUILD index 571fc05dd57..095c07e15db 100644 --- a/vendor/github.com/containernetworking/cni/pkg/version/BUILD +++ b/vendor/github.com/containernetworking/cni/pkg/version/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/alarm/BUILD b/vendor/github.com/coreos/etcd/alarm/BUILD index 00eb16437bd..b613c011999 100644 --- a/vendor/github.com/coreos/etcd/alarm/BUILD +++ b/vendor/github.com/coreos/etcd/alarm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/auth/BUILD b/vendor/github.com/coreos/etcd/auth/BUILD index 9cef4db0166..3dbaccfcbf5 100644 --- a/vendor/github.com/coreos/etcd/auth/BUILD +++ b/vendor/github.com/coreos/etcd/auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/auth/authpb/BUILD b/vendor/github.com/coreos/etcd/auth/authpb/BUILD index 23d131308c4..c58d89af1af 100644 --- a/vendor/github.com/coreos/etcd/auth/authpb/BUILD +++ b/vendor/github.com/coreos/etcd/auth/authpb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/client/BUILD b/vendor/github.com/coreos/etcd/client/BUILD index 42b5c0c259b..b6775d8e335 100644 --- a/vendor/github.com/coreos/etcd/client/BUILD +++ b/vendor/github.com/coreos/etcd/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/clientv3/BUILD b/vendor/github.com/coreos/etcd/clientv3/BUILD index e285acbb042..5351f504eaa 100644 --- a/vendor/github.com/coreos/etcd/clientv3/BUILD +++ b/vendor/github.com/coreos/etcd/clientv3/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/compactor/BUILD b/vendor/github.com/coreos/etcd/compactor/BUILD index e62a3826456..57c6998a56a 100644 --- a/vendor/github.com/coreos/etcd/compactor/BUILD +++ b/vendor/github.com/coreos/etcd/compactor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/discovery/BUILD b/vendor/github.com/coreos/etcd/discovery/BUILD index ddfa3ee44cf..4ca52f741f7 100644 --- a/vendor/github.com/coreos/etcd/discovery/BUILD +++ b/vendor/github.com/coreos/etcd/discovery/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/error/BUILD b/vendor/github.com/coreos/etcd/error/BUILD index 576eab0f560..79e5f67f936 100644 --- a/vendor/github.com/coreos/etcd/error/BUILD +++ b/vendor/github.com/coreos/etcd/error/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/BUILD b/vendor/github.com/coreos/etcd/etcdserver/BUILD index 9140c6c4c07..21270144d67 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/BUILD index 12210c4983a..da4dd27d1d5 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD index 40c7f9aee8e..f6cbe7a907b 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD index 4c4ba26b0f9..4ef98e1359d 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v2http/httptypes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD index 5e71b843101..deb2c8ca6f4 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD index 2bc2bd64796..b8328b39e43 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD b/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD index d80929b2f84..03d59ccbea0 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/auth/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD b/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD index 84116b4203f..3223d936b4a 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/etcdserverpb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD b/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD index 99338310a2e..62793fb8007 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/membership/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD b/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD index 59088253f99..4715fa8963a 100644 --- a/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD +++ b/vendor/github.com/coreos/etcd/etcdserver/stats/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/integration/BUILD b/vendor/github.com/coreos/etcd/integration/BUILD index d6b77d7e0a7..21d3bdae646 100644 --- a/vendor/github.com/coreos/etcd/integration/BUILD +++ b/vendor/github.com/coreos/etcd/integration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/lease/BUILD b/vendor/github.com/coreos/etcd/lease/BUILD index 60b4f16e5a4..e6aeff5b343 100644 --- a/vendor/github.com/coreos/etcd/lease/BUILD +++ b/vendor/github.com/coreos/etcd/lease/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD b/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD index 9a3424bcb63..bf9f4aa860f 100644 --- a/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD +++ b/vendor/github.com/coreos/etcd/lease/leasehttp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/lease/leasepb/BUILD b/vendor/github.com/coreos/etcd/lease/leasepb/BUILD index 2ce4effcf7f..7663e10dff0 100644 --- a/vendor/github.com/coreos/etcd/lease/leasepb/BUILD +++ b/vendor/github.com/coreos/etcd/lease/leasepb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/mvcc/BUILD b/vendor/github.com/coreos/etcd/mvcc/BUILD index 8875e3fa0bc..d486437f82a 100644 --- a/vendor/github.com/coreos/etcd/mvcc/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/mvcc/backend/BUILD b/vendor/github.com/coreos/etcd/mvcc/backend/BUILD index 8988b241f2d..d57206a4282 100644 --- a/vendor/github.com/coreos/etcd/mvcc/backend/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/backend/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD b/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD index 52456e2240a..6b7016b1b38 100644 --- a/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD +++ b/vendor/github.com/coreos/etcd/mvcc/mvccpb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/adt/BUILD b/vendor/github.com/coreos/etcd/pkg/adt/BUILD index ca5abeb1900..9205a036691 100644 --- a/vendor/github.com/coreos/etcd/pkg/adt/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/adt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/contention/BUILD b/vendor/github.com/coreos/etcd/pkg/contention/BUILD index 27a963396b9..68fc6fbd9c1 100644 --- a/vendor/github.com/coreos/etcd/pkg/contention/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/contention/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD b/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD index 4ea74961a69..67ee37b45a5 100644 --- a/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/cpuutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/crc/BUILD b/vendor/github.com/coreos/etcd/pkg/crc/BUILD index 68fa81d3dc4..4e7633c1162 100644 --- a/vendor/github.com/coreos/etcd/pkg/crc/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/crc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD b/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD index 5764cc11399..957bd36e70e 100644 --- a/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/fileutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/httputil/BUILD b/vendor/github.com/coreos/etcd/pkg/httputil/BUILD index cb82598f47e..bfbb4111d4c 100644 --- a/vendor/github.com/coreos/etcd/pkg/httputil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/httputil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/idutil/BUILD b/vendor/github.com/coreos/etcd/pkg/idutil/BUILD index 5ec29067fc6..15ca2a5befe 100644 --- a/vendor/github.com/coreos/etcd/pkg/idutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/idutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD b/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD index f31ad6f2e19..f2bb9f27920 100644 --- a/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/ioutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/logutil/BUILD b/vendor/github.com/coreos/etcd/pkg/logutil/BUILD index efbaee23061..0bf0d576032 100644 --- a/vendor/github.com/coreos/etcd/pkg/logutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/logutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/monotime/BUILD b/vendor/github.com/coreos/etcd/pkg/monotime/BUILD index 8b995f0d227..d6d3a35cd2e 100644 --- a/vendor/github.com/coreos/etcd/pkg/monotime/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/monotime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/netutil/BUILD b/vendor/github.com/coreos/etcd/pkg/netutil/BUILD index b36b0e62cd3..cc0b184f4a7 100644 --- a/vendor/github.com/coreos/etcd/pkg/netutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/netutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD b/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD index d35e72aecc4..3a31ed9efe3 100644 --- a/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/pathutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD b/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD index 82378a00936..9fba71b166a 100644 --- a/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/pbutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/runtime/BUILD b/vendor/github.com/coreos/etcd/pkg/runtime/BUILD index 0c34a9d830d..1765c4bde67 100644 --- a/vendor/github.com/coreos/etcd/pkg/runtime/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/runtime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/schedule/BUILD b/vendor/github.com/coreos/etcd/pkg/schedule/BUILD index efcc43ecc0e..8ac9ab0b0ca 100644 --- a/vendor/github.com/coreos/etcd/pkg/schedule/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/schedule/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/testutil/BUILD b/vendor/github.com/coreos/etcd/pkg/testutil/BUILD index abecd84bc54..7542f57eb26 100644 --- a/vendor/github.com/coreos/etcd/pkg/testutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/testutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD b/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD index 1dd7d3825ee..49c41b1b740 100644 --- a/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/tlsutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/transport/BUILD b/vendor/github.com/coreos/etcd/pkg/transport/BUILD index b2da410e6f0..d4eeaf1cf43 100644 --- a/vendor/github.com/coreos/etcd/pkg/transport/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/transport/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/types/BUILD b/vendor/github.com/coreos/etcd/pkg/types/BUILD index a0ba8868f98..b0ae89aa3e2 100644 --- a/vendor/github.com/coreos/etcd/pkg/types/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/pkg/wait/BUILD b/vendor/github.com/coreos/etcd/pkg/wait/BUILD index f91872bbcaf..793265d18da 100644 --- a/vendor/github.com/coreos/etcd/pkg/wait/BUILD +++ b/vendor/github.com/coreos/etcd/pkg/wait/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD b/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD index 36b96a13034..2c25cab5644 100644 --- a/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD +++ b/vendor/github.com/coreos/etcd/proxy/grpcproxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD b/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD index 189f3ff293d..232b2fc2373 100644 --- a/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD +++ b/vendor/github.com/coreos/etcd/proxy/grpcproxy/cache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/raft/BUILD b/vendor/github.com/coreos/etcd/raft/BUILD index 4c885e3f989..94965107778 100644 --- a/vendor/github.com/coreos/etcd/raft/BUILD +++ b/vendor/github.com/coreos/etcd/raft/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/raft/raftpb/BUILD b/vendor/github.com/coreos/etcd/raft/raftpb/BUILD index 2a9e9a0cd42..63eb17762cd 100644 --- a/vendor/github.com/coreos/etcd/raft/raftpb/BUILD +++ b/vendor/github.com/coreos/etcd/raft/raftpb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/rafthttp/BUILD b/vendor/github.com/coreos/etcd/rafthttp/BUILD index 95e9456509a..fa7ab49d3e7 100644 --- a/vendor/github.com/coreos/etcd/rafthttp/BUILD +++ b/vendor/github.com/coreos/etcd/rafthttp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/snap/BUILD b/vendor/github.com/coreos/etcd/snap/BUILD index 068dc111a1e..d5875e81733 100644 --- a/vendor/github.com/coreos/etcd/snap/BUILD +++ b/vendor/github.com/coreos/etcd/snap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/snap/snappb/BUILD b/vendor/github.com/coreos/etcd/snap/snappb/BUILD index f7a7796cfb8..9dd9ae884fd 100644 --- a/vendor/github.com/coreos/etcd/snap/snappb/BUILD +++ b/vendor/github.com/coreos/etcd/snap/snappb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/store/BUILD b/vendor/github.com/coreos/etcd/store/BUILD index b0c800854cd..3d1c6efb33d 100644 --- a/vendor/github.com/coreos/etcd/store/BUILD +++ b/vendor/github.com/coreos/etcd/store/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/version/BUILD b/vendor/github.com/coreos/etcd/version/BUILD index 8808f796a79..d259f114b37 100644 --- a/vendor/github.com/coreos/etcd/version/BUILD +++ b/vendor/github.com/coreos/etcd/version/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/wal/BUILD b/vendor/github.com/coreos/etcd/wal/BUILD index 59bc5c4824f..f2725ce9f62 100644 --- a/vendor/github.com/coreos/etcd/wal/BUILD +++ b/vendor/github.com/coreos/etcd/wal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/etcd/wal/walpb/BUILD b/vendor/github.com/coreos/etcd/wal/walpb/BUILD index 31ffd3ef9cb..b9f3f3901eb 100644 --- a/vendor/github.com/coreos/etcd/wal/walpb/BUILD +++ b/vendor/github.com/coreos/etcd/wal/walpb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-oidc/http/BUILD b/vendor/github.com/coreos/go-oidc/http/BUILD index 8ecdfd6d215..5f63cad7ef0 100644 --- a/vendor/github.com/coreos/go-oidc/http/BUILD +++ b/vendor/github.com/coreos/go-oidc/http/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-oidc/jose/BUILD b/vendor/github.com/coreos/go-oidc/jose/BUILD index 654e4ea476b..6ee448f3ac7 100644 --- a/vendor/github.com/coreos/go-oidc/jose/BUILD +++ b/vendor/github.com/coreos/go-oidc/jose/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-oidc/key/BUILD b/vendor/github.com/coreos/go-oidc/key/BUILD index 099179b200a..f66351eae69 100644 --- a/vendor/github.com/coreos/go-oidc/key/BUILD +++ b/vendor/github.com/coreos/go-oidc/key/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-oidc/oauth2/BUILD b/vendor/github.com/coreos/go-oidc/oauth2/BUILD index 48ffb7bac17..332d61b40b3 100644 --- a/vendor/github.com/coreos/go-oidc/oauth2/BUILD +++ b/vendor/github.com/coreos/go-oidc/oauth2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-oidc/oidc/BUILD b/vendor/github.com/coreos/go-oidc/oidc/BUILD index 111c251a024..df620bfffe2 100644 --- a/vendor/github.com/coreos/go-oidc/oidc/BUILD +++ b/vendor/github.com/coreos/go-oidc/oidc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-semver/semver/BUILD b/vendor/github.com/coreos/go-semver/semver/BUILD index 917233ae9eb..16771f7fc50 100644 --- a/vendor/github.com/coreos/go-semver/semver/BUILD +++ b/vendor/github.com/coreos/go-semver/semver/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-systemd/daemon/BUILD b/vendor/github.com/coreos/go-systemd/daemon/BUILD index 6295fceb652..85732bb543a 100644 --- a/vendor/github.com/coreos/go-systemd/daemon/BUILD +++ b/vendor/github.com/coreos/go-systemd/daemon/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-systemd/dbus/BUILD b/vendor/github.com/coreos/go-systemd/dbus/BUILD index db986880434..3d1f39178e5 100644 --- a/vendor/github.com/coreos/go-systemd/dbus/BUILD +++ b/vendor/github.com/coreos/go-systemd/dbus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-systemd/journal/BUILD b/vendor/github.com/coreos/go-systemd/journal/BUILD index b1224f709ca..f8a213f910f 100644 --- a/vendor/github.com/coreos/go-systemd/journal/BUILD +++ b/vendor/github.com/coreos/go-systemd/journal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-systemd/unit/BUILD b/vendor/github.com/coreos/go-systemd/unit/BUILD index 595e86b64ce..1d485b17a19 100644 --- a/vendor/github.com/coreos/go-systemd/unit/BUILD +++ b/vendor/github.com/coreos/go-systemd/unit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/go-systemd/util/BUILD b/vendor/github.com/coreos/go-systemd/util/BUILD index 2c44efba247..b19d1d8ad46 100644 --- a/vendor/github.com/coreos/go-systemd/util/BUILD +++ b/vendor/github.com/coreos/go-systemd/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/pkg/capnslog/BUILD b/vendor/github.com/coreos/pkg/capnslog/BUILD index 49590e6ba5e..409b2f64c89 100644 --- a/vendor/github.com/coreos/pkg/capnslog/BUILD +++ b/vendor/github.com/coreos/pkg/capnslog/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/pkg/dlopen/BUILD b/vendor/github.com/coreos/pkg/dlopen/BUILD index 8f99090b19a..a0b9454a4f2 100644 --- a/vendor/github.com/coreos/pkg/dlopen/BUILD +++ b/vendor/github.com/coreos/pkg/dlopen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/pkg/health/BUILD b/vendor/github.com/coreos/pkg/health/BUILD index a49fa90e352..9eb5aca9d43 100644 --- a/vendor/github.com/coreos/pkg/health/BUILD +++ b/vendor/github.com/coreos/pkg/health/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/pkg/httputil/BUILD b/vendor/github.com/coreos/pkg/httputil/BUILD index 3fae275c4ba..1f64da29dde 100644 --- a/vendor/github.com/coreos/pkg/httputil/BUILD +++ b/vendor/github.com/coreos/pkg/httputil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/pkg/timeutil/BUILD b/vendor/github.com/coreos/pkg/timeutil/BUILD index b4e1274db15..52fa8dbba0c 100644 --- a/vendor/github.com/coreos/pkg/timeutil/BUILD +++ b/vendor/github.com/coreos/pkg/timeutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/coreos/rkt/api/v1alpha/BUILD b/vendor/github.com/coreos/rkt/api/v1alpha/BUILD index bb13f4d8d42..40acab5df43 100644 --- a/vendor/github.com/coreos/rkt/api/v1alpha/BUILD +++ b/vendor/github.com/coreos/rkt/api/v1alpha/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD b/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD index 31ad6a6e09d..18c9bd81d12 100644 --- a/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD +++ b/vendor/github.com/cpuguy83/go-md2man/md2man/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/davecgh/go-spew/spew/BUILD b/vendor/github.com/davecgh/go-spew/spew/BUILD index b808c32daa6..5c4e2ecb6df 100644 --- a/vendor/github.com/davecgh/go-spew/spew/BUILD +++ b/vendor/github.com/davecgh/go-spew/spew/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/daviddengcn/go-colortext/BUILD b/vendor/github.com/daviddengcn/go-colortext/BUILD index ed550f07b33..4aef21661f6 100644 --- a/vendor/github.com/daviddengcn/go-colortext/BUILD +++ b/vendor/github.com/daviddengcn/go-colortext/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/dgrijalva/jwt-go/BUILD b/vendor/github.com/dgrijalva/jwt-go/BUILD index f0d82be676f..d412f78e506 100644 --- a/vendor/github.com/dgrijalva/jwt-go/BUILD +++ b/vendor/github.com/dgrijalva/jwt-go/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/distribution/digest/BUILD b/vendor/github.com/docker/distribution/digest/BUILD index 57bc1cb0767..b7655fb04f9 100644 --- a/vendor/github.com/docker/distribution/digest/BUILD +++ b/vendor/github.com/docker/distribution/digest/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/distribution/reference/BUILD b/vendor/github.com/docker/distribution/reference/BUILD index 73b3a15f292..53e398b3689 100644 --- a/vendor/github.com/docker/distribution/reference/BUILD +++ b/vendor/github.com/docker/distribution/reference/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/BUILD b/vendor/github.com/docker/docker/api/types/BUILD index e6073ae10d6..36d64a856a3 100644 --- a/vendor/github.com/docker/docker/api/types/BUILD +++ b/vendor/github.com/docker/docker/api/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/blkiodev/BUILD b/vendor/github.com/docker/docker/api/types/blkiodev/BUILD index d40a87d9c21..15daa3b3e17 100644 --- a/vendor/github.com/docker/docker/api/types/blkiodev/BUILD +++ b/vendor/github.com/docker/docker/api/types/blkiodev/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/container/BUILD b/vendor/github.com/docker/docker/api/types/container/BUILD index e8a1eb3b2f2..39e0d46e6f6 100644 --- a/vendor/github.com/docker/docker/api/types/container/BUILD +++ b/vendor/github.com/docker/docker/api/types/container/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/events/BUILD b/vendor/github.com/docker/docker/api/types/events/BUILD index 954bb6c9e4f..90984a6c91a 100644 --- a/vendor/github.com/docker/docker/api/types/events/BUILD +++ b/vendor/github.com/docker/docker/api/types/events/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/filters/BUILD b/vendor/github.com/docker/docker/api/types/filters/BUILD index b4220c5fbdd..e896a1587a8 100644 --- a/vendor/github.com/docker/docker/api/types/filters/BUILD +++ b/vendor/github.com/docker/docker/api/types/filters/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/mount/BUILD b/vendor/github.com/docker/docker/api/types/mount/BUILD index ee174178015..e2a891d559d 100644 --- a/vendor/github.com/docker/docker/api/types/mount/BUILD +++ b/vendor/github.com/docker/docker/api/types/mount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/network/BUILD b/vendor/github.com/docker/docker/api/types/network/BUILD index 3c577c35659..ed25dae25e0 100644 --- a/vendor/github.com/docker/docker/api/types/network/BUILD +++ b/vendor/github.com/docker/docker/api/types/network/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/reference/BUILD b/vendor/github.com/docker/docker/api/types/reference/BUILD index 5759dd588d4..3d9e2b7fb42 100644 --- a/vendor/github.com/docker/docker/api/types/reference/BUILD +++ b/vendor/github.com/docker/docker/api/types/reference/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/registry/BUILD b/vendor/github.com/docker/docker/api/types/registry/BUILD index 9a525406eb8..dcab897890d 100644 --- a/vendor/github.com/docker/docker/api/types/registry/BUILD +++ b/vendor/github.com/docker/docker/api/types/registry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/strslice/BUILD b/vendor/github.com/docker/docker/api/types/strslice/BUILD index eef1daa3607..270257ad921 100644 --- a/vendor/github.com/docker/docker/api/types/strslice/BUILD +++ b/vendor/github.com/docker/docker/api/types/strslice/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/swarm/BUILD b/vendor/github.com/docker/docker/api/types/swarm/BUILD index 3bcdc1b9476..83b0e680a9b 100644 --- a/vendor/github.com/docker/docker/api/types/swarm/BUILD +++ b/vendor/github.com/docker/docker/api/types/swarm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/time/BUILD b/vendor/github.com/docker/docker/api/types/time/BUILD index 2869dfb5b91..d8061508219 100644 --- a/vendor/github.com/docker/docker/api/types/time/BUILD +++ b/vendor/github.com/docker/docker/api/types/time/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/versions/BUILD b/vendor/github.com/docker/docker/api/types/versions/BUILD index cabd881cd1e..042932ac6b2 100644 --- a/vendor/github.com/docker/docker/api/types/versions/BUILD +++ b/vendor/github.com/docker/docker/api/types/versions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/api/types/volume/BUILD b/vendor/github.com/docker/docker/api/types/volume/BUILD index 4463e7266f1..0297c66eef7 100644 --- a/vendor/github.com/docker/docker/api/types/volume/BUILD +++ b/vendor/github.com/docker/docker/api/types/volume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/client/BUILD b/vendor/github.com/docker/docker/client/BUILD index 598e89bc772..799b5c6e57a 100644 --- a/vendor/github.com/docker/docker/client/BUILD +++ b/vendor/github.com/docker/docker/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/jsonlog/BUILD b/vendor/github.com/docker/docker/pkg/jsonlog/BUILD index c9041cd175d..c1d76b41773 100644 --- a/vendor/github.com/docker/docker/pkg/jsonlog/BUILD +++ b/vendor/github.com/docker/docker/pkg/jsonlog/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD b/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD index 4cd6bf5d79b..a999efcef75 100644 --- a/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD +++ b/vendor/github.com/docker/docker/pkg/jsonmessage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/longpath/BUILD b/vendor/github.com/docker/docker/pkg/longpath/BUILD index b4f6e9b8e2d..77a27e1eeb9 100644 --- a/vendor/github.com/docker/docker/pkg/longpath/BUILD +++ b/vendor/github.com/docker/docker/pkg/longpath/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/mount/BUILD b/vendor/github.com/docker/docker/pkg/mount/BUILD index 83159380455..8b4bb7f92cd 100644 --- a/vendor/github.com/docker/docker/pkg/mount/BUILD +++ b/vendor/github.com/docker/docker/pkg/mount/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/stdcopy/BUILD b/vendor/github.com/docker/docker/pkg/stdcopy/BUILD index b4dad6905f9..498b138c114 100644 --- a/vendor/github.com/docker/docker/pkg/stdcopy/BUILD +++ b/vendor/github.com/docker/docker/pkg/stdcopy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/symlink/BUILD b/vendor/github.com/docker/docker/pkg/symlink/BUILD index 3d9154efe1d..a3a748bd47f 100644 --- a/vendor/github.com/docker/docker/pkg/symlink/BUILD +++ b/vendor/github.com/docker/docker/pkg/symlink/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/system/BUILD b/vendor/github.com/docker/docker/pkg/system/BUILD index ba0a8219162..1c6f8aa61fa 100644 --- a/vendor/github.com/docker/docker/pkg/system/BUILD +++ b/vendor/github.com/docker/docker/pkg/system/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/term/BUILD b/vendor/github.com/docker/docker/pkg/term/BUILD index 7dabaf09012..213094d0fa1 100644 --- a/vendor/github.com/docker/docker/pkg/term/BUILD +++ b/vendor/github.com/docker/docker/pkg/term/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/term/windows/BUILD b/vendor/github.com/docker/docker/pkg/term/windows/BUILD index 820806ba044..5d564e0db49 100644 --- a/vendor/github.com/docker/docker/pkg/term/windows/BUILD +++ b/vendor/github.com/docker/docker/pkg/term/windows/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD b/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD index 60160b0e14d..041930bf804 100644 --- a/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD +++ b/vendor/github.com/docker/docker/pkg/tlsconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/client/BUILD b/vendor/github.com/docker/engine-api/client/BUILD index 9a418e17b68..315c575e0d0 100644 --- a/vendor/github.com/docker/engine-api/client/BUILD +++ b/vendor/github.com/docker/engine-api/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/client/transport/BUILD b/vendor/github.com/docker/engine-api/client/transport/BUILD index 232e115f3d4..8efb1c7e6ac 100644 --- a/vendor/github.com/docker/engine-api/client/transport/BUILD +++ b/vendor/github.com/docker/engine-api/client/transport/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD b/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD index 31e229c39fb..8edb3074660 100644 --- a/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD +++ b/vendor/github.com/docker/engine-api/client/transport/cancellable/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/BUILD b/vendor/github.com/docker/engine-api/types/BUILD index b0a57fd5605..f433a94aae1 100644 --- a/vendor/github.com/docker/engine-api/types/BUILD +++ b/vendor/github.com/docker/engine-api/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/blkiodev/BUILD b/vendor/github.com/docker/engine-api/types/blkiodev/BUILD index d40a87d9c21..15daa3b3e17 100644 --- a/vendor/github.com/docker/engine-api/types/blkiodev/BUILD +++ b/vendor/github.com/docker/engine-api/types/blkiodev/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/container/BUILD b/vendor/github.com/docker/engine-api/types/container/BUILD index 2c34f744458..178b8911fa7 100644 --- a/vendor/github.com/docker/engine-api/types/container/BUILD +++ b/vendor/github.com/docker/engine-api/types/container/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/filters/BUILD b/vendor/github.com/docker/engine-api/types/filters/BUILD index be7e0e38986..fc1abe63531 100644 --- a/vendor/github.com/docker/engine-api/types/filters/BUILD +++ b/vendor/github.com/docker/engine-api/types/filters/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/network/BUILD b/vendor/github.com/docker/engine-api/types/network/BUILD index 3c577c35659..ed25dae25e0 100644 --- a/vendor/github.com/docker/engine-api/types/network/BUILD +++ b/vendor/github.com/docker/engine-api/types/network/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/reference/BUILD b/vendor/github.com/docker/engine-api/types/reference/BUILD index 5759dd588d4..3d9e2b7fb42 100644 --- a/vendor/github.com/docker/engine-api/types/reference/BUILD +++ b/vendor/github.com/docker/engine-api/types/reference/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/registry/BUILD b/vendor/github.com/docker/engine-api/types/registry/BUILD index 691940bf671..1d6348e6fb8 100644 --- a/vendor/github.com/docker/engine-api/types/registry/BUILD +++ b/vendor/github.com/docker/engine-api/types/registry/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/strslice/BUILD b/vendor/github.com/docker/engine-api/types/strslice/BUILD index eef1daa3607..270257ad921 100644 --- a/vendor/github.com/docker/engine-api/types/strslice/BUILD +++ b/vendor/github.com/docker/engine-api/types/strslice/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/time/BUILD b/vendor/github.com/docker/engine-api/types/time/BUILD index 5e0bd18b8e8..08e4b01ac61 100644 --- a/vendor/github.com/docker/engine-api/types/time/BUILD +++ b/vendor/github.com/docker/engine-api/types/time/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/engine-api/types/versions/BUILD b/vendor/github.com/docker/engine-api/types/versions/BUILD index cabd881cd1e..042932ac6b2 100644 --- a/vendor/github.com/docker/engine-api/types/versions/BUILD +++ b/vendor/github.com/docker/engine-api/types/versions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/go-connections/nat/BUILD b/vendor/github.com/docker/go-connections/nat/BUILD index c136c437a15..4c0a4a41c3e 100644 --- a/vendor/github.com/docker/go-connections/nat/BUILD +++ b/vendor/github.com/docker/go-connections/nat/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/go-connections/sockets/BUILD b/vendor/github.com/docker/go-connections/sockets/BUILD index ebce1497ca2..710827fd4d5 100644 --- a/vendor/github.com/docker/go-connections/sockets/BUILD +++ b/vendor/github.com/docker/go-connections/sockets/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/go-connections/tlsconfig/BUILD b/vendor/github.com/docker/go-connections/tlsconfig/BUILD index 2773a91d9f7..a0ab0679022 100644 --- a/vendor/github.com/docker/go-connections/tlsconfig/BUILD +++ b/vendor/github.com/docker/go-connections/tlsconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/go-units/BUILD b/vendor/github.com/docker/go-units/BUILD index 3e7cdb9ee30..9c8816c8424 100644 --- a/vendor/github.com/docker/go-units/BUILD +++ b/vendor/github.com/docker/go-units/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/spdystream/BUILD b/vendor/github.com/docker/spdystream/BUILD index 8912f596e77..1c3269df74e 100644 --- a/vendor/github.com/docker/spdystream/BUILD +++ b/vendor/github.com/docker/spdystream/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/docker/spdystream/spdy/BUILD b/vendor/github.com/docker/spdystream/spdy/BUILD index e64a014ccf3..0fbaa96eba7 100644 --- a/vendor/github.com/docker/spdystream/spdy/BUILD +++ b/vendor/github.com/docker/spdystream/spdy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/elazarl/go-bindata-assetfs/BUILD b/vendor/github.com/elazarl/go-bindata-assetfs/BUILD index 992285d0189..16f6ae9d465 100644 --- a/vendor/github.com/elazarl/go-bindata-assetfs/BUILD +++ b/vendor/github.com/elazarl/go-bindata-assetfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/elazarl/goproxy/BUILD b/vendor/github.com/elazarl/goproxy/BUILD index f47194cd71a..41f08f78c76 100644 --- a/vendor/github.com/elazarl/goproxy/BUILD +++ b/vendor/github.com/elazarl/goproxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/emicklei/go-restful-swagger12/BUILD b/vendor/github.com/emicklei/go-restful-swagger12/BUILD index 4f015bd3b1c..55c49ad41fd 100644 --- a/vendor/github.com/emicklei/go-restful-swagger12/BUILD +++ b/vendor/github.com/emicklei/go-restful-swagger12/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/emicklei/go-restful/BUILD b/vendor/github.com/emicklei/go-restful/BUILD index 8b725e78fec..6ec5f85a0cd 100644 --- a/vendor/github.com/emicklei/go-restful/BUILD +++ b/vendor/github.com/emicklei/go-restful/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/emicklei/go-restful/log/BUILD b/vendor/github.com/emicklei/go-restful/log/BUILD index 376173a90ad..e9dc9069768 100644 --- a/vendor/github.com/emicklei/go-restful/log/BUILD +++ b/vendor/github.com/emicklei/go-restful/log/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/evanphx/json-patch/BUILD b/vendor/github.com/evanphx/json-patch/BUILD index 807c965f3fe..6f04aea8888 100644 --- a/vendor/github.com/evanphx/json-patch/BUILD +++ b/vendor/github.com/evanphx/json-patch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/exponent-io/jsonpath/BUILD b/vendor/github.com/exponent-io/jsonpath/BUILD index ad212b69e11..e5eb87f8f08 100644 --- a/vendor/github.com/exponent-io/jsonpath/BUILD +++ b/vendor/github.com/exponent-io/jsonpath/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/fatih/camelcase/BUILD b/vendor/github.com/fatih/camelcase/BUILD index 32ac9cd33da..3a5d0c3aaa1 100644 --- a/vendor/github.com/fatih/camelcase/BUILD +++ b/vendor/github.com/fatih/camelcase/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/fsnotify/fsnotify/BUILD b/vendor/github.com/fsnotify/fsnotify/BUILD index 30dcc67dfb8..747ab36282a 100644 --- a/vendor/github.com/fsnotify/fsnotify/BUILD +++ b/vendor/github.com/fsnotify/fsnotify/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/garyburd/redigo/internal/BUILD b/vendor/github.com/garyburd/redigo/internal/BUILD index 5c2a65c47dc..8b1302e9448 100644 --- a/vendor/github.com/garyburd/redigo/internal/BUILD +++ b/vendor/github.com/garyburd/redigo/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/garyburd/redigo/redis/BUILD b/vendor/github.com/garyburd/redigo/redis/BUILD index a5299be2452..fb58c1b03ab 100644 --- a/vendor/github.com/garyburd/redigo/redis/BUILD +++ b/vendor/github.com/garyburd/redigo/redis/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/ghodss/yaml/BUILD b/vendor/github.com/ghodss/yaml/BUILD index 85f890258c9..9fb67e17b01 100644 --- a/vendor/github.com/ghodss/yaml/BUILD +++ b/vendor/github.com/ghodss/yaml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-ini/ini/BUILD b/vendor/github.com/go-ini/ini/BUILD index 7ff7e208d5d..81c29f14909 100644 --- a/vendor/github.com/go-ini/ini/BUILD +++ b/vendor/github.com/go-ini/ini/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/analysis/BUILD b/vendor/github.com/go-openapi/analysis/BUILD index ea7f038ac56..2cd83a786f1 100644 --- a/vendor/github.com/go-openapi/analysis/BUILD +++ b/vendor/github.com/go-openapi/analysis/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/errors/BUILD b/vendor/github.com/go-openapi/errors/BUILD index 3e501ac3b80..7d6a633dcb4 100644 --- a/vendor/github.com/go-openapi/errors/BUILD +++ b/vendor/github.com/go-openapi/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/jsonpointer/BUILD b/vendor/github.com/go-openapi/jsonpointer/BUILD index 37f0040a662..f213621ded3 100644 --- a/vendor/github.com/go-openapi/jsonpointer/BUILD +++ b/vendor/github.com/go-openapi/jsonpointer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/jsonreference/BUILD b/vendor/github.com/go-openapi/jsonreference/BUILD index 1a549e409ca..cab0f6de735 100644 --- a/vendor/github.com/go-openapi/jsonreference/BUILD +++ b/vendor/github.com/go-openapi/jsonreference/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/loads/BUILD b/vendor/github.com/go-openapi/loads/BUILD index 0057d8383fa..b770f4380f0 100644 --- a/vendor/github.com/go-openapi/loads/BUILD +++ b/vendor/github.com/go-openapi/loads/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/runtime/BUILD b/vendor/github.com/go-openapi/runtime/BUILD index 28983aa3b70..d6e24eb4886 100644 --- a/vendor/github.com/go-openapi/runtime/BUILD +++ b/vendor/github.com/go-openapi/runtime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/spec/BUILD b/vendor/github.com/go-openapi/spec/BUILD index 841c38d6b03..cb79e2b3666 100644 --- a/vendor/github.com/go-openapi/spec/BUILD +++ b/vendor/github.com/go-openapi/spec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/strfmt/BUILD b/vendor/github.com/go-openapi/strfmt/BUILD index d268875558e..fd58c551d7e 100644 --- a/vendor/github.com/go-openapi/strfmt/BUILD +++ b/vendor/github.com/go-openapi/strfmt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/swag/BUILD b/vendor/github.com/go-openapi/swag/BUILD index 1571114141b..f69e04215c4 100644 --- a/vendor/github.com/go-openapi/swag/BUILD +++ b/vendor/github.com/go-openapi/swag/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/go-openapi/validate/BUILD b/vendor/github.com/go-openapi/validate/BUILD index 0241b41b803..98e66da928e 100644 --- a/vendor/github.com/go-openapi/validate/BUILD +++ b/vendor/github.com/go-openapi/validate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/godbus/dbus/BUILD b/vendor/github.com/godbus/dbus/BUILD index 354ea6e9c33..5bd56e43b62 100644 --- a/vendor/github.com/godbus/dbus/BUILD +++ b/vendor/github.com/godbus/dbus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/gogoproto/BUILD b/vendor/github.com/gogo/protobuf/gogoproto/BUILD index a5062a17102..f7d2b0a1a3c 100644 --- a/vendor/github.com/gogo/protobuf/gogoproto/BUILD +++ b/vendor/github.com/gogo/protobuf/gogoproto/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/compare/BUILD b/vendor/github.com/gogo/protobuf/plugin/compare/BUILD index 3750574a3e0..5f67619acd5 100644 --- a/vendor/github.com/gogo/protobuf/plugin/compare/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/compare/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD index ed38caeb546..cc4d91d2a68 100644 --- a/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/defaultcheck/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/description/BUILD b/vendor/github.com/gogo/protobuf/plugin/description/BUILD index e542ee7270e..c66d92bda5c 100644 --- a/vendor/github.com/gogo/protobuf/plugin/description/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/description/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD index c34a153d1e8..e07f94a61c1 100644 --- a/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/embedcheck/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD b/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD index 761b1747a00..6969fe66135 100644 --- a/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/enumstringer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/equal/BUILD b/vendor/github.com/gogo/protobuf/plugin/equal/BUILD index 5d103f72fd9..fc2da895cd6 100644 --- a/vendor/github.com/gogo/protobuf/plugin/equal/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/equal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/face/BUILD b/vendor/github.com/gogo/protobuf/plugin/face/BUILD index 4751c4cb29a..a0650471b6b 100644 --- a/vendor/github.com/gogo/protobuf/plugin/face/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/face/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD b/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD index d317eae312d..a89e657a6a2 100644 --- a/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/gostring/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD b/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD index 83b0f978567..f0cac14eb46 100644 --- a/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/marshalto/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD index c9de1f0a832..de30e37499c 100644 --- a/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/oneofcheck/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/populate/BUILD b/vendor/github.com/gogo/protobuf/plugin/populate/BUILD index fcd0baeded2..2e02d312928 100644 --- a/vendor/github.com/gogo/protobuf/plugin/populate/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/populate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/size/BUILD b/vendor/github.com/gogo/protobuf/plugin/size/BUILD index ab662eefea4..311982b8b7c 100644 --- a/vendor/github.com/gogo/protobuf/plugin/size/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/size/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD b/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD index 1cb61d1f762..d0c11034eac 100644 --- a/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/stringer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD b/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD index cc43a466c27..d7d167125ae 100644 --- a/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/testgen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/union/BUILD b/vendor/github.com/gogo/protobuf/plugin/union/BUILD index 5b5ab0f6f6b..ff9a09d91b4 100644 --- a/vendor/github.com/gogo/protobuf/plugin/union/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/union/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD b/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD index 9c623b32256..4b1b845eca8 100644 --- a/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD +++ b/vendor/github.com/gogo/protobuf/plugin/unmarshal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/proto/BUILD b/vendor/github.com/gogo/protobuf/proto/BUILD index 2164c167c0a..fba6b7f5b8c 100644 --- a/vendor/github.com/gogo/protobuf/proto/BUILD +++ b/vendor/github.com/gogo/protobuf/proto/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD index 76609965e80..5113a24e2cc 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/descriptor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD index 6d6873ddd62..03cc688eecc 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/generator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD index ff8c16f8c87..61d43f006ee 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/grpc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD index e0008f72ef9..a0a1a346024 100644 --- a/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD +++ b/vendor/github.com/gogo/protobuf/protoc-gen-gogo/plugin/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/sortkeys/BUILD b/vendor/github.com/gogo/protobuf/sortkeys/BUILD index 098cee6e1f6..a0ce76ea544 100644 --- a/vendor/github.com/gogo/protobuf/sortkeys/BUILD +++ b/vendor/github.com/gogo/protobuf/sortkeys/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/vanity/BUILD b/vendor/github.com/gogo/protobuf/vanity/BUILD index 90bab99635f..fabf280b69b 100644 --- a/vendor/github.com/gogo/protobuf/vanity/BUILD +++ b/vendor/github.com/gogo/protobuf/vanity/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gogo/protobuf/vanity/command/BUILD b/vendor/github.com/gogo/protobuf/vanity/command/BUILD index 2a0b78687bf..58518373b54 100644 --- a/vendor/github.com/gogo/protobuf/vanity/command/BUILD +++ b/vendor/github.com/gogo/protobuf/vanity/command/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/glog/BUILD b/vendor/github.com/golang/glog/BUILD index d88c6f6c413..e807aa3249e 100644 --- a/vendor/github.com/golang/glog/BUILD +++ b/vendor/github.com/golang/glog/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/groupcache/lru/BUILD b/vendor/github.com/golang/groupcache/lru/BUILD index 0905bf773cd..957de8a19b8 100644 --- a/vendor/github.com/golang/groupcache/lru/BUILD +++ b/vendor/github.com/golang/groupcache/lru/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/mock/gomock/BUILD b/vendor/github.com/golang/mock/gomock/BUILD index 920373be442..8806128b552 100644 --- a/vendor/github.com/golang/mock/gomock/BUILD +++ b/vendor/github.com/golang/mock/gomock/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/protobuf/jsonpb/BUILD b/vendor/github.com/golang/protobuf/jsonpb/BUILD index f7d05c0d029..e930b52a497 100644 --- a/vendor/github.com/golang/protobuf/jsonpb/BUILD +++ b/vendor/github.com/golang/protobuf/jsonpb/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/protobuf/proto/BUILD b/vendor/github.com/golang/protobuf/proto/BUILD index bcf3caefff7..eaad117b98d 100644 --- a/vendor/github.com/golang/protobuf/proto/BUILD +++ b/vendor/github.com/golang/protobuf/proto/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/protobuf/ptypes/BUILD b/vendor/github.com/golang/protobuf/ptypes/BUILD index 4d6a314a320..2c636381fba 100644 --- a/vendor/github.com/golang/protobuf/ptypes/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/protobuf/ptypes/any/BUILD b/vendor/github.com/golang/protobuf/ptypes/any/BUILD index eab75bd6152..54b0d338ad6 100644 --- a/vendor/github.com/golang/protobuf/ptypes/any/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/any/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/protobuf/ptypes/duration/BUILD b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD index 07435866f2c..3522299db88 100644 --- a/vendor/github.com/golang/protobuf/ptypes/duration/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/duration/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD index c260b201a66..0923ff56564 100644 --- a/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD +++ b/vendor/github.com/golang/protobuf/ptypes/timestamp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/btree/BUILD b/vendor/github.com/google/btree/BUILD index 677e051f2f4..174aa0d49ea 100644 --- a/vendor/github.com/google/btree/BUILD +++ b/vendor/github.com/google/btree/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/api/BUILD b/vendor/github.com/google/cadvisor/api/BUILD index 9af09ee4f2b..e722ddb26b7 100644 --- a/vendor/github.com/google/cadvisor/api/BUILD +++ b/vendor/github.com/google/cadvisor/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/cache/memory/BUILD b/vendor/github.com/google/cadvisor/cache/memory/BUILD index c39590f2c2b..13a3d5d7c0f 100644 --- a/vendor/github.com/google/cadvisor/cache/memory/BUILD +++ b/vendor/github.com/google/cadvisor/cache/memory/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/client/v2/BUILD b/vendor/github.com/google/cadvisor/client/v2/BUILD index d8c3e0e6122..50d8b4b6025 100644 --- a/vendor/github.com/google/cadvisor/client/v2/BUILD +++ b/vendor/github.com/google/cadvisor/client/v2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/collector/BUILD b/vendor/github.com/google/cadvisor/collector/BUILD index da2e3eeadcc..5792af49e77 100644 --- a/vendor/github.com/google/cadvisor/collector/BUILD +++ b/vendor/github.com/google/cadvisor/collector/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/container/BUILD b/vendor/github.com/google/cadvisor/container/BUILD index 560ccf2c4c2..be86459e085 100644 --- a/vendor/github.com/google/cadvisor/container/BUILD +++ b/vendor/github.com/google/cadvisor/container/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/container/common/BUILD b/vendor/github.com/google/cadvisor/container/common/BUILD index ce47dc4d897..ff7b3997cdd 100644 --- a/vendor/github.com/google/cadvisor/container/common/BUILD +++ b/vendor/github.com/google/cadvisor/container/common/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/container/docker/BUILD b/vendor/github.com/google/cadvisor/container/docker/BUILD index fc601adb5bf..03f76e5cc34 100644 --- a/vendor/github.com/google/cadvisor/container/docker/BUILD +++ b/vendor/github.com/google/cadvisor/container/docker/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/container/libcontainer/BUILD b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD index b8182eaa355..0f535172a0b 100644 --- a/vendor/github.com/google/cadvisor/container/libcontainer/BUILD +++ b/vendor/github.com/google/cadvisor/container/libcontainer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/container/raw/BUILD b/vendor/github.com/google/cadvisor/container/raw/BUILD index d186634c8bc..f9313fa4211 100644 --- a/vendor/github.com/google/cadvisor/container/raw/BUILD +++ b/vendor/github.com/google/cadvisor/container/raw/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/container/rkt/BUILD b/vendor/github.com/google/cadvisor/container/rkt/BUILD index 5ddbf389392..12fa090b074 100644 --- a/vendor/github.com/google/cadvisor/container/rkt/BUILD +++ b/vendor/github.com/google/cadvisor/container/rkt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/container/systemd/BUILD b/vendor/github.com/google/cadvisor/container/systemd/BUILD index 5b5e68116b0..d32286a12c7 100644 --- a/vendor/github.com/google/cadvisor/container/systemd/BUILD +++ b/vendor/github.com/google/cadvisor/container/systemd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/devicemapper/BUILD b/vendor/github.com/google/cadvisor/devicemapper/BUILD index 1c8256bafbe..e1ca79df82e 100644 --- a/vendor/github.com/google/cadvisor/devicemapper/BUILD +++ b/vendor/github.com/google/cadvisor/devicemapper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/events/BUILD b/vendor/github.com/google/cadvisor/events/BUILD index 522fdd86f67..ff5dd458966 100644 --- a/vendor/github.com/google/cadvisor/events/BUILD +++ b/vendor/github.com/google/cadvisor/events/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/fs/BUILD b/vendor/github.com/google/cadvisor/fs/BUILD index 6db3fe3718c..c31f780b2d1 100644 --- a/vendor/github.com/google/cadvisor/fs/BUILD +++ b/vendor/github.com/google/cadvisor/fs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/healthz/BUILD b/vendor/github.com/google/cadvisor/healthz/BUILD index 504c5cb9849..45db39ae225 100644 --- a/vendor/github.com/google/cadvisor/healthz/BUILD +++ b/vendor/github.com/google/cadvisor/healthz/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/http/BUILD b/vendor/github.com/google/cadvisor/http/BUILD index 1bc17155a45..a84cbe663e3 100644 --- a/vendor/github.com/google/cadvisor/http/BUILD +++ b/vendor/github.com/google/cadvisor/http/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/http/mux/BUILD b/vendor/github.com/google/cadvisor/http/mux/BUILD index 904b467994f..3c2e1b6f73c 100644 --- a/vendor/github.com/google/cadvisor/http/mux/BUILD +++ b/vendor/github.com/google/cadvisor/http/mux/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/info/v1/BUILD b/vendor/github.com/google/cadvisor/info/v1/BUILD index 39066daab76..43f5562e441 100644 --- a/vendor/github.com/google/cadvisor/info/v1/BUILD +++ b/vendor/github.com/google/cadvisor/info/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/info/v2/BUILD b/vendor/github.com/google/cadvisor/info/v2/BUILD index 700987472b7..7c1c6e8b264 100644 --- a/vendor/github.com/google/cadvisor/info/v2/BUILD +++ b/vendor/github.com/google/cadvisor/info/v2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/machine/BUILD b/vendor/github.com/google/cadvisor/machine/BUILD index d6222e0a518..6f9c9c03ed5 100644 --- a/vendor/github.com/google/cadvisor/machine/BUILD +++ b/vendor/github.com/google/cadvisor/machine/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/manager/BUILD b/vendor/github.com/google/cadvisor/manager/BUILD index 7da1972e185..cd306216a26 100644 --- a/vendor/github.com/google/cadvisor/manager/BUILD +++ b/vendor/github.com/google/cadvisor/manager/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/manager/watcher/BUILD b/vendor/github.com/google/cadvisor/manager/watcher/BUILD index b25074f1925..3248585c27c 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/BUILD +++ b/vendor/github.com/google/cadvisor/manager/watcher/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD b/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD index 3e87336f660..d92e12acc03 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD +++ b/vendor/github.com/google/cadvisor/manager/watcher/raw/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD b/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD index be61578dd92..5c572b265b6 100644 --- a/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD +++ b/vendor/github.com/google/cadvisor/manager/watcher/rkt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/metrics/BUILD b/vendor/github.com/google/cadvisor/metrics/BUILD index bfec4cbc68a..eff40db21f9 100644 --- a/vendor/github.com/google/cadvisor/metrics/BUILD +++ b/vendor/github.com/google/cadvisor/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/pages/BUILD b/vendor/github.com/google/cadvisor/pages/BUILD index 6152f6589a2..d1dade2d9fd 100644 --- a/vendor/github.com/google/cadvisor/pages/BUILD +++ b/vendor/github.com/google/cadvisor/pages/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/pages/static/BUILD b/vendor/github.com/google/cadvisor/pages/static/BUILD index d84095b60e1..49e44dd36b9 100644 --- a/vendor/github.com/google/cadvisor/pages/static/BUILD +++ b/vendor/github.com/google/cadvisor/pages/static/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/storage/BUILD b/vendor/github.com/google/cadvisor/storage/BUILD index 14e46caeec6..e9ac50f6acf 100644 --- a/vendor/github.com/google/cadvisor/storage/BUILD +++ b/vendor/github.com/google/cadvisor/storage/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/summary/BUILD b/vendor/github.com/google/cadvisor/summary/BUILD index 75ddbc6b000..a6c4fd71b0b 100644 --- a/vendor/github.com/google/cadvisor/summary/BUILD +++ b/vendor/github.com/google/cadvisor/summary/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/BUILD b/vendor/github.com/google/cadvisor/utils/BUILD index efc3e12618b..30baf87d044 100644 --- a/vendor/github.com/google/cadvisor/utils/BUILD +++ b/vendor/github.com/google/cadvisor/utils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD b/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD index 6bbdde92ccd..9689a43de55 100644 --- a/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cloudinfo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/BUILD index d101cce2dcb..ae3650ca868 100644 --- a/vendor/github.com/google/cadvisor/utils/cpuload/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cpuload/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD index 93640d0389b..eb6aa78514b 100644 --- a/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD +++ b/vendor/github.com/google/cadvisor/utils/cpuload/netlink/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/docker/BUILD b/vendor/github.com/google/cadvisor/utils/docker/BUILD index 46379566b4a..11866628c30 100644 --- a/vendor/github.com/google/cadvisor/utils/docker/BUILD +++ b/vendor/github.com/google/cadvisor/utils/docker/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/oomparser/BUILD b/vendor/github.com/google/cadvisor/utils/oomparser/BUILD index a7df684e14f..ec126880212 100644 --- a/vendor/github.com/google/cadvisor/utils/oomparser/BUILD +++ b/vendor/github.com/google/cadvisor/utils/oomparser/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/sysfs/BUILD b/vendor/github.com/google/cadvisor/utils/sysfs/BUILD index 4d8495cb63c..a44a5e0e982 100644 --- a/vendor/github.com/google/cadvisor/utils/sysfs/BUILD +++ b/vendor/github.com/google/cadvisor/utils/sysfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD b/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD index 4cb20ed10ab..b29cf3e1306 100644 --- a/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD +++ b/vendor/github.com/google/cadvisor/utils/sysinfo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/utils/tail/BUILD b/vendor/github.com/google/cadvisor/utils/tail/BUILD index e83df808b62..0063b51d04d 100644 --- a/vendor/github.com/google/cadvisor/utils/tail/BUILD +++ b/vendor/github.com/google/cadvisor/utils/tail/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/validate/BUILD b/vendor/github.com/google/cadvisor/validate/BUILD index 2a07547916e..7d8b534acb8 100644 --- a/vendor/github.com/google/cadvisor/validate/BUILD +++ b/vendor/github.com/google/cadvisor/validate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/version/BUILD b/vendor/github.com/google/cadvisor/version/BUILD index f540db33932..5ba586b201c 100644 --- a/vendor/github.com/google/cadvisor/version/BUILD +++ b/vendor/github.com/google/cadvisor/version/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/cadvisor/zfs/BUILD b/vendor/github.com/google/cadvisor/zfs/BUILD index bcff615bebe..6e5f54a816a 100644 --- a/vendor/github.com/google/cadvisor/zfs/BUILD +++ b/vendor/github.com/google/cadvisor/zfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/certificate-transparency/go/BUILD b/vendor/github.com/google/certificate-transparency/go/BUILD index d453491e488..e8455b4c645 100644 --- a/vendor/github.com/google/certificate-transparency/go/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/certificate-transparency/go/asn1/BUILD b/vendor/github.com/google/certificate-transparency/go/asn1/BUILD index 4d9a60f0527..10c1452175e 100644 --- a/vendor/github.com/google/certificate-transparency/go/asn1/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/asn1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/certificate-transparency/go/client/BUILD b/vendor/github.com/google/certificate-transparency/go/client/BUILD index d735ecc7af5..840a64012d1 100644 --- a/vendor/github.com/google/certificate-transparency/go/client/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/certificate-transparency/go/x509/BUILD b/vendor/github.com/google/certificate-transparency/go/x509/BUILD index 9e9022f03eb..70bf61584c7 100644 --- a/vendor/github.com/google/certificate-transparency/go/x509/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/x509/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD b/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD index 62fac67d8a8..6c14039fc53 100644 --- a/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD +++ b/vendor/github.com/google/certificate-transparency/go/x509/pkix/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/google/gofuzz/BUILD b/vendor/github.com/google/gofuzz/BUILD index b878fccfda1..94f98183a66 100644 --- a/vendor/github.com/google/gofuzz/BUILD +++ b/vendor/github.com/google/gofuzz/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD b/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD index 7a793f41ba4..11a270877ee 100644 --- a/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD +++ b/vendor/github.com/googleapis/gnostic/OpenAPIv2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/googleapis/gnostic/compiler/BUILD b/vendor/github.com/googleapis/gnostic/compiler/BUILD index f8978aa0bac..391edc78bd5 100644 --- a/vendor/github.com/googleapis/gnostic/compiler/BUILD +++ b/vendor/github.com/googleapis/gnostic/compiler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/googleapis/gnostic/extensions/BUILD b/vendor/github.com/googleapis/gnostic/extensions/BUILD index 8ba6d6184e5..9e474feb339 100644 --- a/vendor/github.com/googleapis/gnostic/extensions/BUILD +++ b/vendor/github.com/googleapis/gnostic/extensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/BUILD b/vendor/github.com/gophercloud/gophercloud/BUILD index 8eec9949bfa..44c7163df45 100644 --- a/vendor/github.com/gophercloud/gophercloud/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/BUILD index 0cccf716990..e3b68e89f7e 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD index ffbe85281d5..63ec222bdf7 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/apiversions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD index f0049563da9..47741e19e55 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD index f0049563da9..47741e19e55 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD index 9d2d75689fb..855148a06b7 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/common/extensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD index ffbe85281d5..63ec222bdf7 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD index ffbe85281d5..63ec222bdf7 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD index ffbe85281d5..63ec222bdf7 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/images/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD index 904ede0d033..3471ff910b3 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/servers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD index ffbe85281d5..63ec222bdf7 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tenants/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD index ef293143365..56f71df4df1 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v2/tokens/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD index c1b0e05454c..4ca8601e6c1 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/extensions/trusts/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD index 9afe434f70f..7ac5f997c1d 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/identity/v3/tokens/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD index d30fe119d00..838702796bf 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD index d52c3ee519f..2c1fd335e8c 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD index a2add83af54..f7f16c0bc55 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD index c0872e43c99..2af38a15434 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD index b301ad343f6..da9d689a458 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD index 03e28ff3a37..69ffe188f69 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD index ffbe85281d5..63ec222bdf7 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/networking/v2/ports/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD b/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD index 1c227c7cccc..34942c1e33f 100644 --- a/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/openstack/utils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gophercloud/gophercloud/pagination/BUILD b/vendor/github.com/gophercloud/gophercloud/pagination/BUILD index 51a957e7886..b48c5e180db 100644 --- a/vendor/github.com/gophercloud/gophercloud/pagination/BUILD +++ b/vendor/github.com/gophercloud/gophercloud/pagination/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gorilla/context/BUILD b/vendor/github.com/gorilla/context/BUILD index b2b8afee7f4..378da872b7f 100644 --- a/vendor/github.com/gorilla/context/BUILD +++ b/vendor/github.com/gorilla/context/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gorilla/mux/BUILD b/vendor/github.com/gorilla/mux/BUILD index d9b1a823efc..1383c19f375 100644 --- a/vendor/github.com/gorilla/mux/BUILD +++ b/vendor/github.com/gorilla/mux/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/gorilla/websocket/BUILD b/vendor/github.com/gorilla/websocket/BUILD index efda74e5181..81f47647a16 100644 --- a/vendor/github.com/gorilla/websocket/BUILD +++ b/vendor/github.com/gorilla/websocket/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD b/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD index 8902127909f..f3479dc2fe9 100644 --- a/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD +++ b/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD index 5c2b0d8f8cd..f700b53da77 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD index e98091df35a..00a8cdaad89 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/runtime/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD b/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD index ea603a8f88e..802add56ce1 100644 --- a/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD +++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/utilities/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/golang-lru/BUILD b/vendor/github.com/hashicorp/golang-lru/BUILD index 0282ff40faf..0d686f855c0 100644 --- a/vendor/github.com/hashicorp/golang-lru/BUILD +++ b/vendor/github.com/hashicorp/golang-lru/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD b/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD index 0905bf773cd..957de8a19b8 100644 --- a/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD +++ b/vendor/github.com/hashicorp/golang-lru/simplelru/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/BUILD b/vendor/github.com/hashicorp/hcl/BUILD index 85cecfe79f3..d44215fe4d9 100644 --- a/vendor/github.com/hashicorp/hcl/BUILD +++ b/vendor/github.com/hashicorp/hcl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD b/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD index 858061f8bbf..a1aa0b87191 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/ast/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD b/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD index 2f972588dda..4b2baa5fe0b 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/parser/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD b/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD index b48b06ed39e..f531bea9d64 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/scanner/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD b/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD index 2c1c731a596..69e46a1a102 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/strconv/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/hcl/token/BUILD b/vendor/github.com/hashicorp/hcl/hcl/token/BUILD index dd900374020..901025f812f 100644 --- a/vendor/github.com/hashicorp/hcl/hcl/token/BUILD +++ b/vendor/github.com/hashicorp/hcl/hcl/token/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/json/parser/BUILD b/vendor/github.com/hashicorp/hcl/json/parser/BUILD index aaebac2e69c..8db12af56c9 100644 --- a/vendor/github.com/hashicorp/hcl/json/parser/BUILD +++ b/vendor/github.com/hashicorp/hcl/json/parser/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/json/scanner/BUILD b/vendor/github.com/hashicorp/hcl/json/scanner/BUILD index 623d672f187..2cf1e467aff 100644 --- a/vendor/github.com/hashicorp/hcl/json/scanner/BUILD +++ b/vendor/github.com/hashicorp/hcl/json/scanner/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hashicorp/hcl/json/token/BUILD b/vendor/github.com/hashicorp/hcl/json/token/BUILD index be68829a5ff..736b087d310 100644 --- a/vendor/github.com/hashicorp/hcl/json/token/BUILD +++ b/vendor/github.com/hashicorp/hcl/json/token/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD b/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD index 968b04f4424..73e2e183746 100644 --- a/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD +++ b/vendor/github.com/hawkular/hawkular-client-go/metrics/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/heketi/heketi/client/api/go-client/BUILD b/vendor/github.com/heketi/heketi/client/api/go-client/BUILD index 9ee1f461fb2..894cd1c92eb 100644 --- a/vendor/github.com/heketi/heketi/client/api/go-client/BUILD +++ b/vendor/github.com/heketi/heketi/client/api/go-client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD b/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD index faaf46d0d62..f39b267a2f0 100644 --- a/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD +++ b/vendor/github.com/heketi/heketi/pkg/glusterfs/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/heketi/heketi/pkg/utils/BUILD b/vendor/github.com/heketi/heketi/pkg/utils/BUILD index 1883c710969..f0575671cdd 100644 --- a/vendor/github.com/heketi/heketi/pkg/utils/BUILD +++ b/vendor/github.com/heketi/heketi/pkg/utils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/howeyc/gopass/BUILD b/vendor/github.com/howeyc/gopass/BUILD index 41f81f725ef..2d9c1d589e6 100644 --- a/vendor/github.com/howeyc/gopass/BUILD +++ b/vendor/github.com/howeyc/gopass/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/imdario/mergo/BUILD b/vendor/github.com/imdario/mergo/BUILD index fc87f00da57..080f87ccc95 100644 --- a/vendor/github.com/imdario/mergo/BUILD +++ b/vendor/github.com/imdario/mergo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/inconshreveable/mousetrap/BUILD b/vendor/github.com/inconshreveable/mousetrap/BUILD index 25cce9646fa..27db2d5708b 100644 --- a/vendor/github.com/inconshreveable/mousetrap/BUILD +++ b/vendor/github.com/inconshreveable/mousetrap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/influxdata/influxdb/client/BUILD b/vendor/github.com/influxdata/influxdb/client/BUILD index 5b652ad478f..71df9f54955 100644 --- a/vendor/github.com/influxdata/influxdb/client/BUILD +++ b/vendor/github.com/influxdata/influxdb/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/influxdata/influxdb/client/v2/BUILD b/vendor/github.com/influxdata/influxdb/client/v2/BUILD index fbfb90ca378..5e7d614c901 100644 --- a/vendor/github.com/influxdata/influxdb/client/v2/BUILD +++ b/vendor/github.com/influxdata/influxdb/client/v2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/influxdata/influxdb/models/BUILD b/vendor/github.com/influxdata/influxdb/models/BUILD index 3e044b86c6a..ee5dd2dbf81 100644 --- a/vendor/github.com/influxdata/influxdb/models/BUILD +++ b/vendor/github.com/influxdata/influxdb/models/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD b/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD index f897ee2ec94..700e427e124 100644 --- a/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD +++ b/vendor/github.com/influxdata/influxdb/pkg/escape/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/jmespath/go-jmespath/BUILD b/vendor/github.com/jmespath/go-jmespath/BUILD index e50453eaa9b..fa628987383 100644 --- a/vendor/github.com/jmespath/go-jmespath/BUILD +++ b/vendor/github.com/jmespath/go-jmespath/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/jonboulle/clockwork/BUILD b/vendor/github.com/jonboulle/clockwork/BUILD index 8a99c87e3d7..4c4c55aede7 100644 --- a/vendor/github.com/jonboulle/clockwork/BUILD +++ b/vendor/github.com/jonboulle/clockwork/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/jteeuwen/go-bindata/BUILD b/vendor/github.com/jteeuwen/go-bindata/BUILD index 82e6aba1486..5daeb41b44f 100644 --- a/vendor/github.com/jteeuwen/go-bindata/BUILD +++ b/vendor/github.com/jteeuwen/go-bindata/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD b/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD index 731e97c64ee..ad7e9fbbad3 100644 --- a/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD +++ b/vendor/github.com/jteeuwen/go-bindata/go-bindata/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/vendor/github.com/juju/ratelimit/BUILD b/vendor/github.com/juju/ratelimit/BUILD index 5cc0a56244d..4955bc7b452 100644 --- a/vendor/github.com/juju/ratelimit/BUILD +++ b/vendor/github.com/juju/ratelimit/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/kardianos/osext/BUILD b/vendor/github.com/kardianos/osext/BUILD index e0d3511a4b3..86e381855f2 100644 --- a/vendor/github.com/kardianos/osext/BUILD +++ b/vendor/github.com/kardianos/osext/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/karlseguin/ccache/BUILD b/vendor/github.com/karlseguin/ccache/BUILD index d1adbb2049b..3b8fd7df683 100644 --- a/vendor/github.com/karlseguin/ccache/BUILD +++ b/vendor/github.com/karlseguin/ccache/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/kr/fs/BUILD b/vendor/github.com/kr/fs/BUILD index 6424e9006bf..10e923a4a08 100644 --- a/vendor/github.com/kr/fs/BUILD +++ b/vendor/github.com/kr/fs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/kr/pty/BUILD b/vendor/github.com/kr/pty/BUILD index 4f69212c552..6ee61d9508c 100644 --- a/vendor/github.com/kr/pty/BUILD +++ b/vendor/github.com/kr/pty/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/libopenstorage/openstorage/api/BUILD b/vendor/github.com/libopenstorage/openstorage/api/BUILD index 6405cf6be3f..89e1c229fd2 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/libopenstorage/openstorage/api/client/BUILD b/vendor/github.com/libopenstorage/openstorage/api/client/BUILD index c8460cd68c8..06e5559df9f 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/client/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD b/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD index a6199d50fdb..e2a61771ab9 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/client/volume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD b/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD index 23cb82fbff7..7f62e974aeb 100644 --- a/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/api/spec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD b/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD index 922055d1334..d13ef81fd2e 100644 --- a/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/pkg/units/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/libopenstorage/openstorage/volume/BUILD b/vendor/github.com/libopenstorage/openstorage/volume/BUILD index aa428c4420e..61dde57a2cd 100644 --- a/vendor/github.com/libopenstorage/openstorage/volume/BUILD +++ b/vendor/github.com/libopenstorage/openstorage/volume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/lpabon/godbc/BUILD b/vendor/github.com/lpabon/godbc/BUILD index b0dca6e64fa..f4d6634ea7f 100644 --- a/vendor/github.com/lpabon/godbc/BUILD +++ b/vendor/github.com/lpabon/godbc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/magiconair/properties/BUILD b/vendor/github.com/magiconair/properties/BUILD index 592c180200f..770888384ad 100644 --- a/vendor/github.com/magiconair/properties/BUILD +++ b/vendor/github.com/magiconair/properties/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mailru/easyjson/buffer/BUILD b/vendor/github.com/mailru/easyjson/buffer/BUILD index 42fec3e5bfd..969576b710f 100644 --- a/vendor/github.com/mailru/easyjson/buffer/BUILD +++ b/vendor/github.com/mailru/easyjson/buffer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mailru/easyjson/jlexer/BUILD b/vendor/github.com/mailru/easyjson/jlexer/BUILD index 85bb9a2a124..c60eda48b3d 100644 --- a/vendor/github.com/mailru/easyjson/jlexer/BUILD +++ b/vendor/github.com/mailru/easyjson/jlexer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mailru/easyjson/jwriter/BUILD b/vendor/github.com/mailru/easyjson/jwriter/BUILD index 352532de317..b959506d46d 100644 --- a/vendor/github.com/mailru/easyjson/jwriter/BUILD +++ b/vendor/github.com/mailru/easyjson/jwriter/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD index abb13ea4d16..fe3e4393084 100644 --- a/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD +++ b/vendor/github.com/matttproud/golang_protobuf_extensions/pbutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD b/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD index 274953c2d0c..52c93fb1776 100644 --- a/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD +++ b/vendor/github.com/miekg/coredns/middleware/etcd/msg/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/miekg/dns/BUILD b/vendor/github.com/miekg/dns/BUILD index 91f368cd2dc..83772c5b1a8 100644 --- a/vendor/github.com/miekg/dns/BUILD +++ b/vendor/github.com/miekg/dns/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mistifyio/go-zfs/BUILD b/vendor/github.com/mistifyio/go-zfs/BUILD index 8edf940e8e3..4ab092146c7 100644 --- a/vendor/github.com/mistifyio/go-zfs/BUILD +++ b/vendor/github.com/mistifyio/go-zfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mitchellh/go-wordwrap/BUILD b/vendor/github.com/mitchellh/go-wordwrap/BUILD index 1bd9f8591c7..27999f8ee05 100644 --- a/vendor/github.com/mitchellh/go-wordwrap/BUILD +++ b/vendor/github.com/mitchellh/go-wordwrap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mitchellh/mapstructure/BUILD b/vendor/github.com/mitchellh/mapstructure/BUILD index 806413bfb63..c31b0916135 100644 --- a/vendor/github.com/mitchellh/mapstructure/BUILD +++ b/vendor/github.com/mitchellh/mapstructure/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mreiferson/go-httpclient/BUILD b/vendor/github.com/mreiferson/go-httpclient/BUILD index 89538e9d6ac..0da23fa56d5 100644 --- a/vendor/github.com/mreiferson/go-httpclient/BUILD +++ b/vendor/github.com/mreiferson/go-httpclient/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mvdan/xurls/BUILD b/vendor/github.com/mvdan/xurls/BUILD index 670ea0bb30d..e148b939fbc 100644 --- a/vendor/github.com/mvdan/xurls/BUILD +++ b/vendor/github.com/mvdan/xurls/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/mxk/go-flowrate/flowrate/BUILD b/vendor/github.com/mxk/go-flowrate/flowrate/BUILD index c0e10e8f9c1..989bc7b29d3 100644 --- a/vendor/github.com/mxk/go-flowrate/flowrate/BUILD +++ b/vendor/github.com/mxk/go-flowrate/flowrate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/BUILD b/vendor/github.com/onsi/ginkgo/BUILD index 810c1246d75..795d826f09f 100644 --- a/vendor/github.com/onsi/ginkgo/BUILD +++ b/vendor/github.com/onsi/ginkgo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/config/BUILD b/vendor/github.com/onsi/ginkgo/config/BUILD index 2c1d373a268..329b92f689b 100644 --- a/vendor/github.com/onsi/ginkgo/config/BUILD +++ b/vendor/github.com/onsi/ginkgo/config/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/BUILD index 788a25d1acb..d8ad62e7ee1 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD index b288dfc02fe..9a142c74ebc 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/convert/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD index 6e53a292580..55766a1fc17 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD index dee2d3a65f1..8512ec0737c 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/nodot/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD index e59436701f1..a0ffc978556 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD index 2aa5fb24eed..499d59650e9 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD b/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD index 9c8bafe6ef4..efa03fd21b5 100644 --- a/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD +++ b/vendor/github.com/onsi/ginkgo/ginkgo/watch/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD b/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD index 87ee3cc136c..dda00b6b6f5 100644 --- a/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/codelocation/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD b/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD index b6012aa766e..dfb74ab7b16 100644 --- a/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/containernode/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/failer/BUILD b/vendor/github.com/onsi/ginkgo/internal/failer/BUILD index fea6885a80f..2f09a895fb7 100644 --- a/vendor/github.com/onsi/ginkgo/internal/failer/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/failer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD b/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD index 7c7a2eb0763..4a4d7a127e8 100644 --- a/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/leafnodes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/remote/BUILD b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD index d4a72f8a483..f7c21b1cfe0 100644 --- a/vendor/github.com/onsi/ginkgo/internal/remote/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/remote/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/spec/BUILD b/vendor/github.com/onsi/ginkgo/internal/spec/BUILD index 1b91b346bf7..f25584a56ee 100644 --- a/vendor/github.com/onsi/ginkgo/internal/spec/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/spec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD b/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD index 707850230c5..64b8bdcbb59 100644 --- a/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/spec_iterator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD b/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD index b08a6e8e62b..056af460c5d 100644 --- a/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/specrunner/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/suite/BUILD b/vendor/github.com/onsi/ginkgo/internal/suite/BUILD index 5460aa7e1cd..b98a7de9b1f 100644 --- a/vendor/github.com/onsi/ginkgo/internal/suite/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/suite/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD b/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD index 761849e62b4..f73f6225738 100644 --- a/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/testingtproxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/internal/writer/BUILD b/vendor/github.com/onsi/ginkgo/internal/writer/BUILD index e6a5e19f986..b4e91c1b0cb 100644 --- a/vendor/github.com/onsi/ginkgo/internal/writer/BUILD +++ b/vendor/github.com/onsi/ginkgo/internal/writer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/BUILD b/vendor/github.com/onsi/ginkgo/reporters/BUILD index 40db711d219..f67e0f9c918 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD index 7d34459a820..e3efb1866f4 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD index 0a72fedc382..b1f2efe065e 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD index 19bdc8ea13d..33af7a8a18c 100644 --- a/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD +++ b/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/ginkgo/types/BUILD b/vendor/github.com/onsi/ginkgo/types/BUILD index 5fc9e789b2d..227986214ba 100644 --- a/vendor/github.com/onsi/ginkgo/types/BUILD +++ b/vendor/github.com/onsi/ginkgo/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/BUILD b/vendor/github.com/onsi/gomega/BUILD index 463a6d3fb19..3c79114b46c 100644 --- a/vendor/github.com/onsi/gomega/BUILD +++ b/vendor/github.com/onsi/gomega/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/format/BUILD b/vendor/github.com/onsi/gomega/format/BUILD index c0d05c03c48..fee97c09115 100644 --- a/vendor/github.com/onsi/gomega/format/BUILD +++ b/vendor/github.com/onsi/gomega/format/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/gstruct/BUILD b/vendor/github.com/onsi/gomega/gstruct/BUILD index 3208bf566cb..f465405f1f7 100644 --- a/vendor/github.com/onsi/gomega/gstruct/BUILD +++ b/vendor/github.com/onsi/gomega/gstruct/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/gstruct/errors/BUILD b/vendor/github.com/onsi/gomega/gstruct/errors/BUILD index 59d58123ca7..1afde9131a6 100644 --- a/vendor/github.com/onsi/gomega/gstruct/errors/BUILD +++ b/vendor/github.com/onsi/gomega/gstruct/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/internal/assertion/BUILD b/vendor/github.com/onsi/gomega/internal/assertion/BUILD index f37ad78541d..65f01061b95 100644 --- a/vendor/github.com/onsi/gomega/internal/assertion/BUILD +++ b/vendor/github.com/onsi/gomega/internal/assertion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD b/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD index 5e869f7a2fe..c354f84d387 100644 --- a/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD +++ b/vendor/github.com/onsi/gomega/internal/asyncassertion/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD b/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD index 8676d755fb4..f3076761b3a 100644 --- a/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD +++ b/vendor/github.com/onsi/gomega/internal/oraclematcher/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD b/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD index 47dcb817179..b5a24364e91 100644 --- a/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD +++ b/vendor/github.com/onsi/gomega/internal/testingtsupport/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/matchers/BUILD b/vendor/github.com/onsi/gomega/matchers/BUILD index 178049fd270..0023f9026a2 100644 --- a/vendor/github.com/onsi/gomega/matchers/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD index ed0f1244f00..812b7f3b933 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD index be42d98bef1..b1e3e1194c1 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD index e98978950c5..bb074c50e35 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/node/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD b/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD index 6575bc0e335..213076f9d9f 100644 --- a/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD +++ b/vendor/github.com/onsi/gomega/matchers/support/goraph/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/onsi/gomega/types/BUILD b/vendor/github.com/onsi/gomega/types/BUILD index faaf46d0d62..f39b267a2f0 100644 --- a/vendor/github.com/onsi/gomega/types/BUILD +++ b/vendor/github.com/onsi/gomega/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/BUILD index 4d5dc8f692c..d10e9d37b08 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD index 335652267c1..52fcc537b06 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/apparmor/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD index c66e140000c..e4ef90cb301 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD index 92d94f79880..b1a434d5905 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/fs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD index 172ce2576b6..30626c6c384 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/cgroups/systemd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD index b71b55dd51b..d029dd04a82 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/configs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD index 8dd6de06a41..b9de525b360 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/configs/validate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD index 84e73575654..6c71e43a5be 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/criurpc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD index 9bd7d5d171c..a452d1cb876 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/keys/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD index 0ce8edbc899..d133bde837a 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/label/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD index 26896590f81..c8c6e28dda3 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/seccomp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD index 8954dd2de99..2161c522d19 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/selinux/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD index 83e8e073ea1..f288a9fc8d7 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/stacktrace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD index 86bc279c2f7..5a114263ad0 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/system/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD index d12bb65b3f0..7f8420bcdb4 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/user/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD b/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD index 74a6dbb49cf..f8b2676ad29 100644 --- a/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD +++ b/vendor/github.com/opencontainers/runc/libcontainer/utils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/pborman/uuid/BUILD b/vendor/github.com/pborman/uuid/BUILD index f586b1a4af0..4a64c22fb41 100644 --- a/vendor/github.com/pborman/uuid/BUILD +++ b/vendor/github.com/pborman/uuid/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/pelletier/go-buffruneio/BUILD b/vendor/github.com/pelletier/go-buffruneio/BUILD index 1bc9a8cf8dd..310b1022f08 100644 --- a/vendor/github.com/pelletier/go-buffruneio/BUILD +++ b/vendor/github.com/pelletier/go-buffruneio/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/pelletier/go-toml/BUILD b/vendor/github.com/pelletier/go-toml/BUILD index 3bcf2517fdb..c87e0c658f3 100644 --- a/vendor/github.com/pelletier/go-toml/BUILD +++ b/vendor/github.com/pelletier/go-toml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/pkg/errors/BUILD b/vendor/github.com/pkg/errors/BUILD index d18b810415c..218f1357bd3 100644 --- a/vendor/github.com/pkg/errors/BUILD +++ b/vendor/github.com/pkg/errors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/pkg/sftp/BUILD b/vendor/github.com/pkg/sftp/BUILD index 2a3fbb6e6a5..cd57c039412 100644 --- a/vendor/github.com/pkg/sftp/BUILD +++ b/vendor/github.com/pkg/sftp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/pmezard/go-difflib/difflib/BUILD b/vendor/github.com/pmezard/go-difflib/difflib/BUILD index 72c3b815267..10dafc89d77 100644 --- a/vendor/github.com/pmezard/go-difflib/difflib/BUILD +++ b/vendor/github.com/pmezard/go-difflib/difflib/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/client_golang/prometheus/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/BUILD index 85e0b7e0ae8..b2d98bdc666 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/BUILD +++ b/vendor/github.com/prometheus/client_golang/prometheus/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD index 9024b9680b3..d17767b4e62 100644 --- a/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD +++ b/vendor/github.com/prometheus/client_golang/prometheus/promhttp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/client_model/go/BUILD b/vendor/github.com/prometheus/client_model/go/BUILD index 37714489eea..e8c75453c05 100644 --- a/vendor/github.com/prometheus/client_model/go/BUILD +++ b/vendor/github.com/prometheus/client_model/go/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/common/expfmt/BUILD b/vendor/github.com/prometheus/common/expfmt/BUILD index 03163585d41..c3e4ab3cf9f 100644 --- a/vendor/github.com/prometheus/common/expfmt/BUILD +++ b/vendor/github.com/prometheus/common/expfmt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD index 8dcfcc6e63d..1a0875deb92 100644 --- a/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD +++ b/vendor/github.com/prometheus/common/internal/bitbucket.org/ww/goautoneg/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/common/model/BUILD b/vendor/github.com/prometheus/common/model/BUILD index 3ec1d9ebed4..8805caf84e7 100644 --- a/vendor/github.com/prometheus/common/model/BUILD +++ b/vendor/github.com/prometheus/common/model/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/procfs/BUILD b/vendor/github.com/prometheus/procfs/BUILD index 44ea8aadac1..ebb6091321f 100644 --- a/vendor/github.com/prometheus/procfs/BUILD +++ b/vendor/github.com/prometheus/procfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/prometheus/procfs/xfs/BUILD b/vendor/github.com/prometheus/procfs/xfs/BUILD index 059674e0a1f..b2d23813388 100644 --- a/vendor/github.com/prometheus/procfs/xfs/BUILD +++ b/vendor/github.com/prometheus/procfs/xfs/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/quobyte/api/BUILD b/vendor/github.com/quobyte/api/BUILD index d0479971da8..2827b25b772 100644 --- a/vendor/github.com/quobyte/api/BUILD +++ b/vendor/github.com/quobyte/api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/BUILD b/vendor/github.com/rackspace/gophercloud/BUILD index 4909f300f77..47777d6b586 100644 --- a/vendor/github.com/rackspace/gophercloud/BUILD +++ b/vendor/github.com/rackspace/gophercloud/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/BUILD index b8a08efc8a7..d95e0f0964f 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD index 83d817e0b62..427dd138a41 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/blockstorage/v1/volumes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD index 4bcf12a851b..763e9904adc 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/bootfromvolume/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD index c05096d857f..37aa5880773 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/diskconfig/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD index a322db72f6a..7115567bbbd 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/extensions/volumeattach/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD index a322db72f6a..7115567bbbd 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/flavors/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD index a322db72f6a..7115567bbbd 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/images/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD index 32a2d05127f..c19379e9e38 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/compute/v2/servers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD index a322db72f6a..7115567bbbd 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tenants/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD index 276d7511fab..68b6deb49c6 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/identity/v2/tokens/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD index d03cc167b1b..f3214b94ebd 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/identity/v3/tokens/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD b/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD index f7c6c03c489..32ffcbcf229 100644 --- a/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD +++ b/vendor/github.com/rackspace/gophercloud/openstack/utils/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/pagination/BUILD b/vendor/github.com/rackspace/gophercloud/pagination/BUILD index 2a5e940656b..809e81c9bc3 100644 --- a/vendor/github.com/rackspace/gophercloud/pagination/BUILD +++ b/vendor/github.com/rackspace/gophercloud/pagination/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/BUILD index d37ee1785d9..a1151db5b82 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD index 9cc056fc5ac..56941ef22d6 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/blockstorage/v1/volumes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD index f3db62d6800..76e5b7cfe18 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/servers/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD index d1b5721f6bd..5ccf0d4c6dc 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/compute/v2/volumeattach/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD b/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD index 41bda98b699..e940cac74be 100644 --- a/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD +++ b/vendor/github.com/rackspace/gophercloud/rackspace/identity/v2/tokens/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/testhelper/BUILD b/vendor/github.com/rackspace/gophercloud/testhelper/BUILD index 0be974a9755..41e3ac2166f 100644 --- a/vendor/github.com/rackspace/gophercloud/testhelper/BUILD +++ b/vendor/github.com/rackspace/gophercloud/testhelper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD b/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD index 225f4d713c4..9848216fa06 100644 --- a/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD +++ b/vendor/github.com/rackspace/gophercloud/testhelper/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rancher/go-rancher/client/BUILD b/vendor/github.com/rancher/go-rancher/client/BUILD index 7adfdade74f..5ea67452e55 100644 --- a/vendor/github.com/rancher/go-rancher/client/BUILD +++ b/vendor/github.com/rancher/go-rancher/client/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/renstrom/dedent/BUILD b/vendor/github.com/renstrom/dedent/BUILD index 80cd4c3db74..466d7326105 100644 --- a/vendor/github.com/renstrom/dedent/BUILD +++ b/vendor/github.com/renstrom/dedent/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/robfig/cron/BUILD b/vendor/github.com/robfig/cron/BUILD index 1264fcb3aa8..f723dc468e8 100644 --- a/vendor/github.com/robfig/cron/BUILD +++ b/vendor/github.com/robfig/cron/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/rubiojr/go-vhd/vhd/BUILD b/vendor/github.com/rubiojr/go-vhd/vhd/BUILD index ee96897886c..3e4b297a986 100644 --- a/vendor/github.com/rubiojr/go-vhd/vhd/BUILD +++ b/vendor/github.com/rubiojr/go-vhd/vhd/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/russross/blackfriday/BUILD b/vendor/github.com/russross/blackfriday/BUILD index 6bec634007e..7bf24bba8c0 100644 --- a/vendor/github.com/russross/blackfriday/BUILD +++ b/vendor/github.com/russross/blackfriday/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/satori/uuid/BUILD b/vendor/github.com/satori/uuid/BUILD index 80d9ec5db74..c3bd28ced0a 100644 --- a/vendor/github.com/satori/uuid/BUILD +++ b/vendor/github.com/satori/uuid/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/seccomp/libseccomp-golang/BUILD b/vendor/github.com/seccomp/libseccomp-golang/BUILD index c858a874fa4..2fb6e598e54 100644 --- a/vendor/github.com/seccomp/libseccomp-golang/BUILD +++ b/vendor/github.com/seccomp/libseccomp-golang/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD b/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD index c31afa60a64..3098ba911b8 100644 --- a/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD +++ b/vendor/github.com/shurcooL/sanitized_anchor_name/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/afero/BUILD b/vendor/github.com/spf13/afero/BUILD index 719a45b83b2..956955149ac 100644 --- a/vendor/github.com/spf13/afero/BUILD +++ b/vendor/github.com/spf13/afero/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/afero/mem/BUILD b/vendor/github.com/spf13/afero/mem/BUILD index a671e80ad17..4fa0cf2fe1e 100644 --- a/vendor/github.com/spf13/afero/mem/BUILD +++ b/vendor/github.com/spf13/afero/mem/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/afero/sftp/BUILD b/vendor/github.com/spf13/afero/sftp/BUILD index 3d6c1f8cc78..97e50d26bc4 100644 --- a/vendor/github.com/spf13/afero/sftp/BUILD +++ b/vendor/github.com/spf13/afero/sftp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/cast/BUILD b/vendor/github.com/spf13/cast/BUILD index f3bb88c2662..620541c401d 100644 --- a/vendor/github.com/spf13/cast/BUILD +++ b/vendor/github.com/spf13/cast/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/cobra/BUILD b/vendor/github.com/spf13/cobra/BUILD index 6951a6a76cd..7cf0ae917a3 100644 --- a/vendor/github.com/spf13/cobra/BUILD +++ b/vendor/github.com/spf13/cobra/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/cobra/doc/BUILD b/vendor/github.com/spf13/cobra/doc/BUILD index 23ae8c94420..8fe54fc12e9 100644 --- a/vendor/github.com/spf13/cobra/doc/BUILD +++ b/vendor/github.com/spf13/cobra/doc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/jwalterweatherman/BUILD b/vendor/github.com/spf13/jwalterweatherman/BUILD index 4bec00f3474..4f9c752c069 100644 --- a/vendor/github.com/spf13/jwalterweatherman/BUILD +++ b/vendor/github.com/spf13/jwalterweatherman/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/pflag/BUILD b/vendor/github.com/spf13/pflag/BUILD index b9450f2ddd9..fa18e4f093e 100644 --- a/vendor/github.com/spf13/pflag/BUILD +++ b/vendor/github.com/spf13/pflag/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/spf13/viper/BUILD b/vendor/github.com/spf13/viper/BUILD index 5cbdd128f60..5c478cf40e9 100644 --- a/vendor/github.com/spf13/viper/BUILD +++ b/vendor/github.com/spf13/viper/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/square/go-jose/BUILD b/vendor/github.com/square/go-jose/BUILD index 582424931b9..73447ad728c 100644 --- a/vendor/github.com/square/go-jose/BUILD +++ b/vendor/github.com/square/go-jose/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/square/go-jose/cipher/BUILD b/vendor/github.com/square/go-jose/cipher/BUILD index 801308e44ae..d427e6e7bea 100644 --- a/vendor/github.com/square/go-jose/cipher/BUILD +++ b/vendor/github.com/square/go-jose/cipher/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/square/go-jose/json/BUILD b/vendor/github.com/square/go-jose/json/BUILD index 5ea124ff50b..78d2e9cd662 100644 --- a/vendor/github.com/square/go-jose/json/BUILD +++ b/vendor/github.com/square/go-jose/json/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/storageos/go-api/BUILD b/vendor/github.com/storageos/go-api/BUILD index 4d13ba9aa0b..68bf99afebb 100644 --- a/vendor/github.com/storageos/go-api/BUILD +++ b/vendor/github.com/storageos/go-api/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/storageos/go-api/types/BUILD b/vendor/github.com/storageos/go-api/types/BUILD index 04b70310efe..2336eb3c520 100644 --- a/vendor/github.com/storageos/go-api/types/BUILD +++ b/vendor/github.com/storageos/go-api/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/stretchr/objx/BUILD b/vendor/github.com/stretchr/objx/BUILD index eeca96dee9f..d8cf0170ba5 100644 --- a/vendor/github.com/stretchr/objx/BUILD +++ b/vendor/github.com/stretchr/objx/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/stretchr/testify/assert/BUILD b/vendor/github.com/stretchr/testify/assert/BUILD index 3b08d2eeeea..155a21ff0bd 100644 --- a/vendor/github.com/stretchr/testify/assert/BUILD +++ b/vendor/github.com/stretchr/testify/assert/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/stretchr/testify/mock/BUILD b/vendor/github.com/stretchr/testify/mock/BUILD index 559e1cdba7c..053fb85cdae 100644 --- a/vendor/github.com/stretchr/testify/mock/BUILD +++ b/vendor/github.com/stretchr/testify/mock/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/stretchr/testify/require/BUILD b/vendor/github.com/stretchr/testify/require/BUILD index edc1c02538d..4fbd20e021d 100644 --- a/vendor/github.com/stretchr/testify/require/BUILD +++ b/vendor/github.com/stretchr/testify/require/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/syndtr/gocapability/capability/BUILD b/vendor/github.com/syndtr/gocapability/capability/BUILD index 60e53ac8b32..0e9b01b3b05 100644 --- a/vendor/github.com/syndtr/gocapability/capability/BUILD +++ b/vendor/github.com/syndtr/gocapability/capability/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/ugorji/go/codec/BUILD b/vendor/github.com/ugorji/go/codec/BUILD index c3ef123f7e7..0f5f7bed374 100644 --- a/vendor/github.com/ugorji/go/codec/BUILD +++ b/vendor/github.com/ugorji/go/codec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/ugorji/go/codec/codecgen/BUILD b/vendor/github.com/ugorji/go/codec/codecgen/BUILD index 305eb5c7e21..8d39b73df16 100644 --- a/vendor/github.com/ugorji/go/codec/codecgen/BUILD +++ b/vendor/github.com/ugorji/go/codec/codecgen/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_binary", diff --git a/vendor/github.com/vishvananda/netlink/BUILD b/vendor/github.com/vishvananda/netlink/BUILD index a98b88e81a4..ecb736d2a45 100644 --- a/vendor/github.com/vishvananda/netlink/BUILD +++ b/vendor/github.com/vishvananda/netlink/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vishvananda/netlink/nl/BUILD b/vendor/github.com/vishvananda/netlink/nl/BUILD index 316652d96ac..2741e7a60c6 100644 --- a/vendor/github.com/vishvananda/netlink/nl/BUILD +++ b/vendor/github.com/vishvananda/netlink/nl/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/BUILD b/vendor/github.com/vmware/govmomi/BUILD index d748fd10438..dd5f1eb66dc 100644 --- a/vendor/github.com/vmware/govmomi/BUILD +++ b/vendor/github.com/vmware/govmomi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/find/BUILD b/vendor/github.com/vmware/govmomi/find/BUILD index 240ba74534c..6efc3e7ee42 100644 --- a/vendor/github.com/vmware/govmomi/find/BUILD +++ b/vendor/github.com/vmware/govmomi/find/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/list/BUILD b/vendor/github.com/vmware/govmomi/list/BUILD index 0f1b5c74d7f..37919ff2a97 100644 --- a/vendor/github.com/vmware/govmomi/list/BUILD +++ b/vendor/github.com/vmware/govmomi/list/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/object/BUILD b/vendor/github.com/vmware/govmomi/object/BUILD index ac34c812330..2214f252a16 100644 --- a/vendor/github.com/vmware/govmomi/object/BUILD +++ b/vendor/github.com/vmware/govmomi/object/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/pbm/BUILD b/vendor/github.com/vmware/govmomi/pbm/BUILD index e6b606b86ac..9bbb5b06f7e 100644 --- a/vendor/github.com/vmware/govmomi/pbm/BUILD +++ b/vendor/github.com/vmware/govmomi/pbm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/pbm/methods/BUILD b/vendor/github.com/vmware/govmomi/pbm/methods/BUILD index 1660275a328..893f8e8e161 100644 --- a/vendor/github.com/vmware/govmomi/pbm/methods/BUILD +++ b/vendor/github.com/vmware/govmomi/pbm/methods/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/pbm/types/BUILD b/vendor/github.com/vmware/govmomi/pbm/types/BUILD index c020b66d288..68c48e424f9 100644 --- a/vendor/github.com/vmware/govmomi/pbm/types/BUILD +++ b/vendor/github.com/vmware/govmomi/pbm/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/property/BUILD b/vendor/github.com/vmware/govmomi/property/BUILD index c8014bb5250..0f260d12744 100644 --- a/vendor/github.com/vmware/govmomi/property/BUILD +++ b/vendor/github.com/vmware/govmomi/property/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/session/BUILD b/vendor/github.com/vmware/govmomi/session/BUILD index 860fba678c8..b72ac1017f6 100644 --- a/vendor/github.com/vmware/govmomi/session/BUILD +++ b/vendor/github.com/vmware/govmomi/session/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/task/BUILD b/vendor/github.com/vmware/govmomi/task/BUILD index 3d8791b1cae..c441a836f26 100644 --- a/vendor/github.com/vmware/govmomi/task/BUILD +++ b/vendor/github.com/vmware/govmomi/task/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/BUILD b/vendor/github.com/vmware/govmomi/vim25/BUILD index 385910a7a09..c0277e65e67 100644 --- a/vendor/github.com/vmware/govmomi/vim25/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/debug/BUILD b/vendor/github.com/vmware/govmomi/vim25/debug/BUILD index 389a4e3c3b8..12db11434b4 100644 --- a/vendor/github.com/vmware/govmomi/vim25/debug/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/debug/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/methods/BUILD b/vendor/github.com/vmware/govmomi/vim25/methods/BUILD index 87b860366ea..68886e87130 100644 --- a/vendor/github.com/vmware/govmomi/vim25/methods/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/methods/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/mo/BUILD b/vendor/github.com/vmware/govmomi/vim25/mo/BUILD index f252cd244fb..435045478bb 100644 --- a/vendor/github.com/vmware/govmomi/vim25/mo/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/mo/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/progress/BUILD b/vendor/github.com/vmware/govmomi/vim25/progress/BUILD index eae171c68e9..a7b91985718 100644 --- a/vendor/github.com/vmware/govmomi/vim25/progress/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/progress/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/soap/BUILD b/vendor/github.com/vmware/govmomi/vim25/soap/BUILD index 223e0e4a278..93e0b105738 100644 --- a/vendor/github.com/vmware/govmomi/vim25/soap/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/soap/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/types/BUILD b/vendor/github.com/vmware/govmomi/vim25/types/BUILD index 7ab2174573e..a6fdf93cfe2 100644 --- a/vendor/github.com/vmware/govmomi/vim25/types/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/govmomi/vim25/xml/BUILD b/vendor/github.com/vmware/govmomi/vim25/xml/BUILD index d49ef8ab0b0..a13876c6cdf 100644 --- a/vendor/github.com/vmware/govmomi/vim25/xml/BUILD +++ b/vendor/github.com/vmware/govmomi/vim25/xml/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD index e84c07e4c1d..6f00739bba4 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/SSPI/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD index 0f914c04b58..e4d93672d03 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/photon/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD b/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD index cd27e70e829..e2e3976e3c0 100644 --- a/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD +++ b/vendor/github.com/vmware/photon-controller-go-sdk/photon/lightwave/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD b/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD index 04636286c63..3a49049a5aa 100644 --- a/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD +++ b/vendor/github.com/xanzy/go-cloudstack/cloudstack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/xiang90/probing/BUILD b/vendor/github.com/xiang90/probing/BUILD index e84ce227c15..79c2152f78d 100644 --- a/vendor/github.com/xiang90/probing/BUILD +++ b/vendor/github.com/xiang90/probing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/github.com/xyproto/simpleredis/BUILD b/vendor/github.com/xyproto/simpleredis/BUILD index ddbed78124a..64ee58816e6 100644 --- a/vendor/github.com/xyproto/simpleredis/BUILD +++ b/vendor/github.com/xyproto/simpleredis/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/go.pedge.io/pb/go/google/protobuf/BUILD b/vendor/go.pedge.io/pb/go/google/protobuf/BUILD index 8e5aa51c861..faa76615de1 100644 --- a/vendor/go.pedge.io/pb/go/google/protobuf/BUILD +++ b/vendor/go.pedge.io/pb/go/google/protobuf/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/go4.org/errorutil/BUILD b/vendor/go4.org/errorutil/BUILD index 53e89b94a31..426a0d6252f 100644 --- a/vendor/go4.org/errorutil/BUILD +++ b/vendor/go4.org/errorutil/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/bcrypt/BUILD b/vendor/golang.org/x/crypto/bcrypt/BUILD index 273bfc0e11d..39f4b0c4b1f 100644 --- a/vendor/golang.org/x/crypto/bcrypt/BUILD +++ b/vendor/golang.org/x/crypto/bcrypt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/blowfish/BUILD b/vendor/golang.org/x/crypto/blowfish/BUILD index b131a28e9e7..ddcb7df51d0 100644 --- a/vendor/golang.org/x/crypto/blowfish/BUILD +++ b/vendor/golang.org/x/crypto/blowfish/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/curve25519/BUILD b/vendor/golang.org/x/crypto/curve25519/BUILD index f9a1c699b5b..827a8ad1822 100644 --- a/vendor/golang.org/x/crypto/curve25519/BUILD +++ b/vendor/golang.org/x/crypto/curve25519/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/ed25519/BUILD b/vendor/golang.org/x/crypto/ed25519/BUILD index 2197c11cefa..30cbf4f6cc5 100644 --- a/vendor/golang.org/x/crypto/ed25519/BUILD +++ b/vendor/golang.org/x/crypto/ed25519/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD index 8915d6725fc..4f1b357fa14 100644 --- a/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD +++ b/vendor/golang.org/x/crypto/ed25519/internal/edwards25519/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/nacl/secretbox/BUILD b/vendor/golang.org/x/crypto/nacl/secretbox/BUILD index 15abfd43a5f..4e8deb9793a 100644 --- a/vendor/golang.org/x/crypto/nacl/secretbox/BUILD +++ b/vendor/golang.org/x/crypto/nacl/secretbox/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/pkcs12/BUILD b/vendor/golang.org/x/crypto/pkcs12/BUILD index ec4b372929a..3a2f81a8a20 100644 --- a/vendor/golang.org/x/crypto/pkcs12/BUILD +++ b/vendor/golang.org/x/crypto/pkcs12/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD index 4de994e7760..32dcb294966 100644 --- a/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD +++ b/vendor/golang.org/x/crypto/pkcs12/internal/rc2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/poly1305/BUILD b/vendor/golang.org/x/crypto/poly1305/BUILD index 798a84d9d81..47ae4f4b564 100644 --- a/vendor/golang.org/x/crypto/poly1305/BUILD +++ b/vendor/golang.org/x/crypto/poly1305/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/salsa20/salsa/BUILD b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD index 0d96da4f1b3..47238e57b80 100644 --- a/vendor/golang.org/x/crypto/salsa20/salsa/BUILD +++ b/vendor/golang.org/x/crypto/salsa20/salsa/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/ssh/BUILD b/vendor/golang.org/x/crypto/ssh/BUILD index 38345d72dca..1a1ab217249 100644 --- a/vendor/golang.org/x/crypto/ssh/BUILD +++ b/vendor/golang.org/x/crypto/ssh/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/crypto/ssh/terminal/BUILD b/vendor/golang.org/x/crypto/ssh/terminal/BUILD index e186b2c714d..e7e6f0d4532 100644 --- a/vendor/golang.org/x/crypto/ssh/terminal/BUILD +++ b/vendor/golang.org/x/crypto/ssh/terminal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/exp/inotify/BUILD b/vendor/golang.org/x/exp/inotify/BUILD index c46a29144ce..c69a2b4276b 100644 --- a/vendor/golang.org/x/exp/inotify/BUILD +++ b/vendor/golang.org/x/exp/inotify/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/context/BUILD b/vendor/golang.org/x/net/context/BUILD index d3c7bbac2f7..5d8a2f41ed9 100644 --- a/vendor/golang.org/x/net/context/BUILD +++ b/vendor/golang.org/x/net/context/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/context/ctxhttp/BUILD b/vendor/golang.org/x/net/context/ctxhttp/BUILD index 80afc887d1f..b46f3256fef 100644 --- a/vendor/golang.org/x/net/context/ctxhttp/BUILD +++ b/vendor/golang.org/x/net/context/ctxhttp/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/html/BUILD b/vendor/golang.org/x/net/html/BUILD index 08ee89ecde2..42504580cd0 100644 --- a/vendor/golang.org/x/net/html/BUILD +++ b/vendor/golang.org/x/net/html/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/html/atom/BUILD b/vendor/golang.org/x/net/html/atom/BUILD index 8a212655368..52bfd1e95a8 100644 --- a/vendor/golang.org/x/net/html/atom/BUILD +++ b/vendor/golang.org/x/net/html/atom/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/http2/BUILD b/vendor/golang.org/x/net/http2/BUILD index 374c349adde..bdf6e3a259e 100644 --- a/vendor/golang.org/x/net/http2/BUILD +++ b/vendor/golang.org/x/net/http2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/http2/hpack/BUILD b/vendor/golang.org/x/net/http2/hpack/BUILD index c85707ab5a3..e44ac73695c 100644 --- a/vendor/golang.org/x/net/http2/hpack/BUILD +++ b/vendor/golang.org/x/net/http2/hpack/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/idna/BUILD b/vendor/golang.org/x/net/idna/BUILD index 4326d0757fc..125d4d58f4a 100644 --- a/vendor/golang.org/x/net/idna/BUILD +++ b/vendor/golang.org/x/net/idna/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/internal/timeseries/BUILD b/vendor/golang.org/x/net/internal/timeseries/BUILD index e51b624a9b2..10ba33c5fd2 100644 --- a/vendor/golang.org/x/net/internal/timeseries/BUILD +++ b/vendor/golang.org/x/net/internal/timeseries/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/lex/httplex/BUILD b/vendor/golang.org/x/net/lex/httplex/BUILD index d8eab7b3572..18b564cd916 100644 --- a/vendor/golang.org/x/net/lex/httplex/BUILD +++ b/vendor/golang.org/x/net/lex/httplex/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/proxy/BUILD b/vendor/golang.org/x/net/proxy/BUILD index 656c8a1c6b3..957f17bbe23 100644 --- a/vendor/golang.org/x/net/proxy/BUILD +++ b/vendor/golang.org/x/net/proxy/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/trace/BUILD b/vendor/golang.org/x/net/trace/BUILD index c3c39ca5dc6..7050391e3ca 100644 --- a/vendor/golang.org/x/net/trace/BUILD +++ b/vendor/golang.org/x/net/trace/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/net/websocket/BUILD b/vendor/golang.org/x/net/websocket/BUILD index 4fbd978e2a3..814385f7025 100644 --- a/vendor/golang.org/x/net/websocket/BUILD +++ b/vendor/golang.org/x/net/websocket/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/oauth2/BUILD b/vendor/golang.org/x/oauth2/BUILD index ba941d41e05..a22ef4bd0d3 100644 --- a/vendor/golang.org/x/oauth2/BUILD +++ b/vendor/golang.org/x/oauth2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/oauth2/google/BUILD b/vendor/golang.org/x/oauth2/google/BUILD index 14f2677ff6d..15ef1d88976 100644 --- a/vendor/golang.org/x/oauth2/google/BUILD +++ b/vendor/golang.org/x/oauth2/google/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/oauth2/internal/BUILD b/vendor/golang.org/x/oauth2/internal/BUILD index c8f36140059..768c2b80565 100644 --- a/vendor/golang.org/x/oauth2/internal/BUILD +++ b/vendor/golang.org/x/oauth2/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/oauth2/jws/BUILD b/vendor/golang.org/x/oauth2/jws/BUILD index ae48443bfde..5b56fb88e08 100644 --- a/vendor/golang.org/x/oauth2/jws/BUILD +++ b/vendor/golang.org/x/oauth2/jws/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/oauth2/jwt/BUILD b/vendor/golang.org/x/oauth2/jwt/BUILD index 6dfeec20edc..bc2d9a517dd 100644 --- a/vendor/golang.org/x/oauth2/jwt/BUILD +++ b/vendor/golang.org/x/oauth2/jwt/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/sys/unix/BUILD b/vendor/golang.org/x/sys/unix/BUILD index 8277a69e107..95c4e22b28a 100644 --- a/vendor/golang.org/x/sys/unix/BUILD +++ b/vendor/golang.org/x/sys/unix/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/sys/windows/BUILD b/vendor/golang.org/x/sys/windows/BUILD index fc5a01c8283..e7a44073396 100644 --- a/vendor/golang.org/x/sys/windows/BUILD +++ b/vendor/golang.org/x/sys/windows/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/cases/BUILD b/vendor/golang.org/x/text/cases/BUILD index aedb3ded146..ab46bb2b99d 100644 --- a/vendor/golang.org/x/text/cases/BUILD +++ b/vendor/golang.org/x/text/cases/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/encoding/BUILD b/vendor/golang.org/x/text/encoding/BUILD index 0e148e8b626..ed736dfb2ed 100644 --- a/vendor/golang.org/x/text/encoding/BUILD +++ b/vendor/golang.org/x/text/encoding/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/encoding/internal/BUILD b/vendor/golang.org/x/text/encoding/internal/BUILD index aca9f178a37..b2ee36aaf90 100644 --- a/vendor/golang.org/x/text/encoding/internal/BUILD +++ b/vendor/golang.org/x/text/encoding/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/BUILD b/vendor/golang.org/x/text/encoding/internal/identifier/BUILD index b875fad128f..797f87bcebb 100644 --- a/vendor/golang.org/x/text/encoding/internal/identifier/BUILD +++ b/vendor/golang.org/x/text/encoding/internal/identifier/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/encoding/unicode/BUILD b/vendor/golang.org/x/text/encoding/unicode/BUILD index 142a5105b62..1c2b9f2b7aa 100644 --- a/vendor/golang.org/x/text/encoding/unicode/BUILD +++ b/vendor/golang.org/x/text/encoding/unicode/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/internal/tag/BUILD b/vendor/golang.org/x/text/internal/tag/BUILD index 6a513ced652..c8d54fe7ce2 100644 --- a/vendor/golang.org/x/text/internal/tag/BUILD +++ b/vendor/golang.org/x/text/internal/tag/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/internal/utf8internal/BUILD b/vendor/golang.org/x/text/internal/utf8internal/BUILD index eeb4ccdf314..74c25c20ecb 100644 --- a/vendor/golang.org/x/text/internal/utf8internal/BUILD +++ b/vendor/golang.org/x/text/internal/utf8internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/language/BUILD b/vendor/golang.org/x/text/language/BUILD index bbe775ff533..c38e7a70e17 100644 --- a/vendor/golang.org/x/text/language/BUILD +++ b/vendor/golang.org/x/text/language/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/runes/BUILD b/vendor/golang.org/x/text/runes/BUILD index 507c01c3674..1d1e2696d59 100644 --- a/vendor/golang.org/x/text/runes/BUILD +++ b/vendor/golang.org/x/text/runes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/secure/bidirule/BUILD b/vendor/golang.org/x/text/secure/bidirule/BUILD index 4fc1b149d2e..70e8c3f1685 100644 --- a/vendor/golang.org/x/text/secure/bidirule/BUILD +++ b/vendor/golang.org/x/text/secure/bidirule/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/secure/precis/BUILD b/vendor/golang.org/x/text/secure/precis/BUILD index d01982a53df..f107424f834 100644 --- a/vendor/golang.org/x/text/secure/precis/BUILD +++ b/vendor/golang.org/x/text/secure/precis/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/transform/BUILD b/vendor/golang.org/x/text/transform/BUILD index 5e89c39e90b..5ff1a168a14 100644 --- a/vendor/golang.org/x/text/transform/BUILD +++ b/vendor/golang.org/x/text/transform/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/unicode/bidi/BUILD b/vendor/golang.org/x/text/unicode/bidi/BUILD index 3166e4466c5..ee17f7ce915 100644 --- a/vendor/golang.org/x/text/unicode/bidi/BUILD +++ b/vendor/golang.org/x/text/unicode/bidi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/unicode/norm/BUILD b/vendor/golang.org/x/text/unicode/norm/BUILD index df8e801fd68..5ce37562270 100644 --- a/vendor/golang.org/x/text/unicode/norm/BUILD +++ b/vendor/golang.org/x/text/unicode/norm/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/text/width/BUILD b/vendor/golang.org/x/text/width/BUILD index 4e99d3535fc..c5296de0c39 100644 --- a/vendor/golang.org/x/text/width/BUILD +++ b/vendor/golang.org/x/text/width/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/time/rate/BUILD b/vendor/golang.org/x/time/rate/BUILD index 12098763d03..3eec700d66f 100644 --- a/vendor/golang.org/x/time/rate/BUILD +++ b/vendor/golang.org/x/time/rate/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/golang.org/x/tools/container/intsets/BUILD b/vendor/golang.org/x/tools/container/intsets/BUILD index df1992b8ec7..26fb45f626f 100644 --- a/vendor/golang.org/x/tools/container/intsets/BUILD +++ b/vendor/golang.org/x/tools/container/intsets/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/cloudkms/v1/BUILD b/vendor/google.golang.org/api/cloudkms/v1/BUILD index 2685419f72a..e396adb7e00 100644 --- a/vendor/google.golang.org/api/cloudkms/v1/BUILD +++ b/vendor/google.golang.org/api/cloudkms/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD b/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD index ecd0f101916..d4a3153aa46 100644 --- a/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD +++ b/vendor/google.golang.org/api/cloudmonitoring/v2beta2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/compute/v0.alpha/BUILD b/vendor/google.golang.org/api/compute/v0.alpha/BUILD index 984a2eeb188..0a2dfc68d05 100644 --- a/vendor/google.golang.org/api/compute/v0.alpha/BUILD +++ b/vendor/google.golang.org/api/compute/v0.alpha/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/compute/v0.beta/BUILD b/vendor/google.golang.org/api/compute/v0.beta/BUILD index 984a2eeb188..0a2dfc68d05 100644 --- a/vendor/google.golang.org/api/compute/v0.beta/BUILD +++ b/vendor/google.golang.org/api/compute/v0.beta/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/compute/v1/BUILD b/vendor/google.golang.org/api/compute/v1/BUILD index 984a2eeb188..0a2dfc68d05 100644 --- a/vendor/google.golang.org/api/compute/v1/BUILD +++ b/vendor/google.golang.org/api/compute/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/container/v1/BUILD b/vendor/google.golang.org/api/container/v1/BUILD index ba7f63f3c89..f1512213e43 100644 --- a/vendor/google.golang.org/api/container/v1/BUILD +++ b/vendor/google.golang.org/api/container/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/dns/v1/BUILD b/vendor/google.golang.org/api/dns/v1/BUILD index 038e9f2c628..6a69266990a 100644 --- a/vendor/google.golang.org/api/dns/v1/BUILD +++ b/vendor/google.golang.org/api/dns/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/gensupport/BUILD b/vendor/google.golang.org/api/gensupport/BUILD index ac04ccee189..c0a6e483bcc 100644 --- a/vendor/google.golang.org/api/gensupport/BUILD +++ b/vendor/google.golang.org/api/gensupport/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/googleapi/BUILD b/vendor/google.golang.org/api/googleapi/BUILD index aa9d39f89fb..0a70027594c 100644 --- a/vendor/google.golang.org/api/googleapi/BUILD +++ b/vendor/google.golang.org/api/googleapi/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD b/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD index 7fe1792155e..a1f401f0eb6 100644 --- a/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD +++ b/vendor/google.golang.org/api/googleapi/internal/uritemplates/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/logging/v2beta1/BUILD b/vendor/google.golang.org/api/logging/v2beta1/BUILD index 86a1a2f909a..482777221d8 100644 --- a/vendor/google.golang.org/api/logging/v2beta1/BUILD +++ b/vendor/google.golang.org/api/logging/v2beta1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/monitoring/v3/BUILD b/vendor/google.golang.org/api/monitoring/v3/BUILD index c19f67ccb1f..fc2f8d34ec8 100644 --- a/vendor/google.golang.org/api/monitoring/v3/BUILD +++ b/vendor/google.golang.org/api/monitoring/v3/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/api/pubsub/v1/BUILD b/vendor/google.golang.org/api/pubsub/v1/BUILD index 3e64975a093..17f7f74b2f5 100644 --- a/vendor/google.golang.org/api/pubsub/v1/BUILD +++ b/vendor/google.golang.org/api/pubsub/v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/BUILD b/vendor/google.golang.org/grpc/BUILD index 1eeb44e70df..83be39d6196 100644 --- a/vendor/google.golang.org/grpc/BUILD +++ b/vendor/google.golang.org/grpc/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/codes/BUILD b/vendor/google.golang.org/grpc/codes/BUILD index 2169ab825f6..1afad5e13b7 100644 --- a/vendor/google.golang.org/grpc/codes/BUILD +++ b/vendor/google.golang.org/grpc/codes/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/credentials/BUILD b/vendor/google.golang.org/grpc/credentials/BUILD index 3aa731785e0..261ac342a32 100644 --- a/vendor/google.golang.org/grpc/credentials/BUILD +++ b/vendor/google.golang.org/grpc/credentials/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/grpclog/BUILD b/vendor/google.golang.org/grpc/grpclog/BUILD index 9ae5403e371..bb0da35d63b 100644 --- a/vendor/google.golang.org/grpc/grpclog/BUILD +++ b/vendor/google.golang.org/grpc/grpclog/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/internal/BUILD b/vendor/google.golang.org/grpc/internal/BUILD index 365d619e76b..103aa168909 100644 --- a/vendor/google.golang.org/grpc/internal/BUILD +++ b/vendor/google.golang.org/grpc/internal/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/metadata/BUILD b/vendor/google.golang.org/grpc/metadata/BUILD index 782fb7d968f..a2cacce7995 100644 --- a/vendor/google.golang.org/grpc/metadata/BUILD +++ b/vendor/google.golang.org/grpc/metadata/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/naming/BUILD b/vendor/google.golang.org/grpc/naming/BUILD index 8bf9f1fcd9d..cedcc150322 100644 --- a/vendor/google.golang.org/grpc/naming/BUILD +++ b/vendor/google.golang.org/grpc/naming/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/peer/BUILD b/vendor/google.golang.org/grpc/peer/BUILD index fbd2001986f..b1bea90e750 100644 --- a/vendor/google.golang.org/grpc/peer/BUILD +++ b/vendor/google.golang.org/grpc/peer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/google.golang.org/grpc/transport/BUILD b/vendor/google.golang.org/grpc/transport/BUILD index ce5b34accde..b12e7a3a8c9 100644 --- a/vendor/google.golang.org/grpc/transport/BUILD +++ b/vendor/google.golang.org/grpc/transport/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/gcfg.v1/BUILD b/vendor/gopkg.in/gcfg.v1/BUILD index 28aa709b07c..31ca6f35644 100644 --- a/vendor/gopkg.in/gcfg.v1/BUILD +++ b/vendor/gopkg.in/gcfg.v1/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/gcfg.v1/scanner/BUILD b/vendor/gopkg.in/gcfg.v1/scanner/BUILD index 910b4789626..5bf94f6611e 100644 --- a/vendor/gopkg.in/gcfg.v1/scanner/BUILD +++ b/vendor/gopkg.in/gcfg.v1/scanner/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/gcfg.v1/token/BUILD b/vendor/gopkg.in/gcfg.v1/token/BUILD index 47dcdb55c73..7e10630366d 100644 --- a/vendor/gopkg.in/gcfg.v1/token/BUILD +++ b/vendor/gopkg.in/gcfg.v1/token/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/gcfg.v1/types/BUILD b/vendor/gopkg.in/gcfg.v1/types/BUILD index bfe3cb1f8e9..06997039631 100644 --- a/vendor/gopkg.in/gcfg.v1/types/BUILD +++ b/vendor/gopkg.in/gcfg.v1/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/inf.v0/BUILD b/vendor/gopkg.in/inf.v0/BUILD index 93b7e4eddb2..b4c1ec95a04 100644 --- a/vendor/gopkg.in/inf.v0/BUILD +++ b/vendor/gopkg.in/inf.v0/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD b/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD index 551c68d2bab..7190fefe21b 100644 --- a/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD +++ b/vendor/gopkg.in/natefinch/lumberjack.v2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/warnings.v0/BUILD b/vendor/gopkg.in/warnings.v0/BUILD index d599d50b124..2c91be054b6 100644 --- a/vendor/gopkg.in/warnings.v0/BUILD +++ b/vendor/gopkg.in/warnings.v0/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/gopkg.in/yaml.v2/BUILD b/vendor/gopkg.in/yaml.v2/BUILD index 70789685e83..b40dbfa18e0 100644 --- a/vendor/gopkg.in/yaml.v2/BUILD +++ b/vendor/gopkg.in/yaml.v2/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/args/BUILD b/vendor/k8s.io/gengo/args/BUILD index 11b67b6b832..3906cdd6c04 100644 --- a/vendor/k8s.io/gengo/args/BUILD +++ b/vendor/k8s.io/gengo/args/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD b/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD index c4c6aaf8354..1b2e0db5c54 100644 --- a/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/deepcopy-gen/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD b/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD index ba4842dcb65..aae32bf992e 100644 --- a/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/defaulter-gen/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD b/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD index 1b55ba66c9a..3aec8d17e55 100644 --- a/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/import-boss/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD b/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD index 43cd6639a17..cba2169a5e5 100644 --- a/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD +++ b/vendor/k8s.io/gengo/examples/set-gen/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD b/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD index e0f99b65303..b68ae7170fb 100644 --- a/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD +++ b/vendor/k8s.io/gengo/examples/set-gen/sets/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/generator/BUILD b/vendor/k8s.io/gengo/generator/BUILD index 281059300ea..2acae9f1b81 100644 --- a/vendor/k8s.io/gengo/generator/BUILD +++ b/vendor/k8s.io/gengo/generator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/namer/BUILD b/vendor/k8s.io/gengo/namer/BUILD index f3c6d01a99a..f98c0f9bfcb 100644 --- a/vendor/k8s.io/gengo/namer/BUILD +++ b/vendor/k8s.io/gengo/namer/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/parser/BUILD b/vendor/k8s.io/gengo/parser/BUILD index f4bdfdf2991..7c139474767 100644 --- a/vendor/k8s.io/gengo/parser/BUILD +++ b/vendor/k8s.io/gengo/parser/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/gengo/types/BUILD b/vendor/k8s.io/gengo/types/BUILD index 50d9cfc4925..77e5086f018 100644 --- a/vendor/k8s.io/gengo/types/BUILD +++ b/vendor/k8s.io/gengo/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD b/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD index cbb63e0050a..20bfb766998 100644 --- a/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD +++ b/vendor/k8s.io/heapster/metrics/api/v1/types/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD b/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD index 5cf112582f8..2670fed0744 100644 --- a/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/aggregator/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/builder/BUILD b/vendor/k8s.io/kube-openapi/pkg/builder/BUILD index accab94e64e..3ae3365ead2 100644 --- a/vendor/k8s.io/kube-openapi/pkg/builder/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/builder/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/common/BUILD b/vendor/k8s.io/kube-openapi/pkg/common/BUILD index ecdadc13dfd..a753617b5a5 100644 --- a/vendor/k8s.io/kube-openapi/pkg/common/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/common/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/generators/BUILD b/vendor/k8s.io/kube-openapi/pkg/generators/BUILD index ad1557b5643..f843067a4d3 100644 --- a/vendor/k8s.io/kube-openapi/pkg/generators/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/generators/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/handler/BUILD b/vendor/k8s.io/kube-openapi/pkg/handler/BUILD index ce870c3b3df..25c8d529345 100644 --- a/vendor/k8s.io/kube-openapi/pkg/handler/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/handler/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/kube-openapi/pkg/util/BUILD b/vendor/k8s.io/kube-openapi/pkg/util/BUILD index b56f02fa908..a0d3a47cb72 100644 --- a/vendor/k8s.io/kube-openapi/pkg/util/BUILD +++ b/vendor/k8s.io/kube-openapi/pkg/util/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/utils/exec/BUILD b/vendor/k8s.io/utils/exec/BUILD index 76392387512..1e59b57d7d4 100644 --- a/vendor/k8s.io/utils/exec/BUILD +++ b/vendor/k8s.io/utils/exec/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/k8s.io/utils/exec/testing/BUILD b/vendor/k8s.io/utils/exec/testing/BUILD index dade7dc8dab..eab4f5f2c25 100644 --- a/vendor/k8s.io/utils/exec/testing/BUILD +++ b/vendor/k8s.io/utils/exec/testing/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library", diff --git a/vendor/vbom.ml/util/sortorder/BUILD b/vendor/vbom.ml/util/sortorder/BUILD index ac3b3606306..51010587246 100644 --- a/vendor/vbom.ml/util/sortorder/BUILD +++ b/vendor/vbom.ml/util/sortorder/BUILD @@ -1,7 +1,5 @@ package(default_visibility = ["//visibility:public"]) -licenses(["notice"]) - load( "@io_bazel_rules_go//go:def.bzl", "go_library",