From 91f19e3dfc1f5c282032122beefa71d7ab026561 Mon Sep 17 00:00:00 2001 From: Brendan Burns Date: Tue, 6 Dec 2016 23:16:53 -0800 Subject: [PATCH] Add an azure container registry credential provider. --- cmd/kubelet/app/BUILD | 1 + cmd/kubelet/app/plugins.go | 1 + hack/verify-flags/known-flags.txt | 1 + .../providers/azure/azure_test.go | 56 +- pkg/credentialprovider/azure/BUILD | 37 + .../azure/azure_credentials.go | 144 ++++ .../azure/azure_credentials_test.go | 81 ++ vendor/BUILD | 720 +++++++++--------- 8 files changed, 665 insertions(+), 376 deletions(-) create mode 100644 pkg/credentialprovider/azure/BUILD create mode 100644 pkg/credentialprovider/azure/azure_credentials.go create mode 100644 pkg/credentialprovider/azure/azure_credentials_test.go diff --git a/cmd/kubelet/app/BUILD b/cmd/kubelet/app/BUILD index 22a3d5494cd..6798e50fa6d 100644 --- a/cmd/kubelet/app/BUILD +++ b/cmd/kubelet/app/BUILD @@ -45,6 +45,7 @@ go_library( "//pkg/cloudprovider/providers:go_default_library", "//pkg/credentialprovider:go_default_library", "//pkg/credentialprovider/aws:go_default_library", + "//pkg/credentialprovider/azure:go_default_library", "//pkg/credentialprovider/gcp:go_default_library", "//pkg/genericapiserver/authorizer:go_default_library", "//pkg/healthz:go_default_library", diff --git a/cmd/kubelet/app/plugins.go b/cmd/kubelet/app/plugins.go index d125852622f..89f8bb5a085 100644 --- a/cmd/kubelet/app/plugins.go +++ b/cmd/kubelet/app/plugins.go @@ -20,6 +20,7 @@ package app import ( // Credential providers _ "k8s.io/kubernetes/pkg/credentialprovider/aws" + _ "k8s.io/kubernetes/pkg/credentialprovider/azure" _ "k8s.io/kubernetes/pkg/credentialprovider/gcp" // Network plugins "k8s.io/kubernetes/pkg/kubelet/network" diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index fe0718977eb..38e9a325d40 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -43,6 +43,7 @@ authorization-rbac-super-user authorization-webhook-cache-authorized-ttl authorization-webhook-cache-unauthorized-ttl authorization-webhook-config-file +azure-container-registry-config babysit-daemons basic-auth-file bench-pods diff --git a/pkg/cloudprovider/providers/azure/azure_test.go b/pkg/cloudprovider/providers/azure/azure_test.go index d27f59c2f2e..13930793707 100644 --- a/pkg/cloudprovider/providers/azure/azure_test.go +++ b/pkg/cloudprovider/providers/azure/azure_test.go @@ -50,7 +50,7 @@ func TestReconcileLoadBalancerAddPort(t *testing.T) { } // ensure we got a frontend ip configuration - if len(*lb.Properties.FrontendIPConfigurations) != 1 { + if len(*lb.FrontendIPConfigurations) != 1 { t.Error("Expected the loadbalancer to have a frontend ip configuration") } @@ -79,7 +79,7 @@ func TestReconcileLoadBalancerNodeHealth(t *testing.T) { } // ensure we got a frontend ip configuration - if len(*lb.Properties.FrontendIPConfigurations) != 1 { + if len(*lb.FrontendIPConfigurations) != 1 { t.Error("Expected the loadbalancer to have a frontend ip configuration") } @@ -110,7 +110,7 @@ func TestReconcileLoadBalancerRemoveAllPortsRemovesFrontendConfig(t *testing.T) } // ensure we abandoned the frontend ip configuration - if len(*lb.Properties.FrontendIPConfigurations) != 0 { + if len(*lb.FrontendIPConfigurations) != 0 { t.Error("Expected the loadbalancer to have no frontend ip configuration") } @@ -262,14 +262,14 @@ func getTestLoadBalancer(services ...v1.Service) network.LoadBalancer { ruleName := getRuleName(&service, port) rules = append(rules, network.LoadBalancingRule{ Name: to.StringPtr(ruleName), - Properties: &network.LoadBalancingRulePropertiesFormat{ + LoadBalancingRulePropertiesFormat: &network.LoadBalancingRulePropertiesFormat{ FrontendPort: to.Int32Ptr(port.Port), BackendPort: to.Int32Ptr(port.Port), }, }) probes = append(probes, network.Probe{ Name: to.StringPtr(ruleName), - Properties: &network.ProbePropertiesFormat{ + ProbePropertiesFormat: &network.ProbePropertiesFormat{ Port: to.Int32Ptr(port.NodePort), }, }) @@ -277,7 +277,7 @@ func getTestLoadBalancer(services ...v1.Service) network.LoadBalancer { } lb := network.LoadBalancer{ - Properties: &network.LoadBalancerPropertiesFormat{ + LoadBalancerPropertiesFormat: &network.LoadBalancerPropertiesFormat{ LoadBalancingRules: &rules, Probes: &probes, }, @@ -304,7 +304,7 @@ func getTestSecurityGroup(services ...v1.Service) network.SecurityGroup { for _, src := range sources { rules = append(rules, network.SecurityRule{ Name: to.StringPtr(ruleName), - Properties: &network.SecurityRulePropertiesFormat{ + SecurityRulePropertiesFormat: &network.SecurityRulePropertiesFormat{ SourceAddressPrefix: to.StringPtr(src), DestinationPortRange: to.StringPtr(fmt.Sprintf("%d", port.Port)), }, @@ -314,7 +314,7 @@ func getTestSecurityGroup(services ...v1.Service) network.SecurityGroup { } sg := network.SecurityGroup{ - Properties: &network.SecurityGroupPropertiesFormat{ + SecurityGroupPropertiesFormat: &network.SecurityGroupPropertiesFormat{ SecurityRules: &rules, }, } @@ -329,10 +329,10 @@ func validateLoadBalancer(t *testing.T, loadBalancer network.LoadBalancer, servi expectedRuleCount++ wantedRuleName := getRuleName(&svc, wantedRule) foundRule := false - for _, actualRule := range *loadBalancer.Properties.LoadBalancingRules { + for _, actualRule := range *loadBalancer.LoadBalancingRules { if strings.EqualFold(*actualRule.Name, wantedRuleName) && - *actualRule.Properties.FrontendPort == wantedRule.Port && - *actualRule.Properties.BackendPort == wantedRule.Port { + *actualRule.FrontendPort == wantedRule.Port && + *actualRule.BackendPort == wantedRule.Port { foundRule = true break } @@ -344,38 +344,38 @@ func validateLoadBalancer(t *testing.T, loadBalancer network.LoadBalancer, servi foundProbe := false if serviceapi.NeedsHealthCheck(&svc) { path, port := serviceapi.GetServiceHealthCheckPathPort(&svc) - for _, actualProbe := range *loadBalancer.Properties.Probes { + for _, actualProbe := range *loadBalancer.Probes { if strings.EqualFold(*actualProbe.Name, wantedRuleName) && - *actualProbe.Properties.Port == port && - *actualProbe.Properties.RequestPath == path && - actualProbe.Properties.Protocol == network.ProbeProtocolHTTP { + *actualProbe.Port == port && + *actualProbe.RequestPath == path && + actualProbe.Protocol == network.ProbeProtocolHTTP { foundProbe = true break } } } else { - for _, actualProbe := range *loadBalancer.Properties.Probes { + for _, actualProbe := range *loadBalancer.Probes { if strings.EqualFold(*actualProbe.Name, wantedRuleName) && - *actualProbe.Properties.Port == wantedRule.NodePort { + *actualProbe.Port == wantedRule.NodePort { foundProbe = true break } } } if !foundProbe { - for _, actualProbe := range *loadBalancer.Properties.Probes { - t.Logf("Probe: %s %d", *actualProbe.Name, *actualProbe.Properties.Port) + for _, actualProbe := range *loadBalancer.Probes { + t.Logf("Probe: %s %d", *actualProbe.Name, *actualProbe.Port) } t.Errorf("Expected loadbalancer probe but didn't find it: %q", wantedRuleName) } } } - lenRules := len(*loadBalancer.Properties.LoadBalancingRules) + lenRules := len(*loadBalancer.LoadBalancingRules) if lenRules != expectedRuleCount { - t.Errorf("Expected the loadbalancer to have %d rules. Found %d.\n%v", expectedRuleCount, lenRules, loadBalancer.Properties.LoadBalancingRules) + t.Errorf("Expected the loadbalancer to have %d rules. Found %d.\n%v", expectedRuleCount, lenRules, loadBalancer.LoadBalancingRules) } - lenProbes := len(*loadBalancer.Properties.Probes) + lenProbes := len(*loadBalancer.Probes) if lenProbes != expectedRuleCount { t.Errorf("Expected the loadbalancer to have %d probes. Found %d.", expectedRuleCount, lenProbes) } @@ -391,10 +391,10 @@ func validateSecurityGroup(t *testing.T, securityGroup network.SecurityGroup, se expectedRuleCount++ wantedRuleName := getRuleName(&svc, wantedRule) foundRule := false - for _, actualRule := range *securityGroup.Properties.SecurityRules { + for _, actualRule := range *securityGroup.SecurityRules { if strings.EqualFold(*actualRule.Name, wantedRuleName) && - *actualRule.Properties.SourceAddressPrefix == source && - *actualRule.Properties.DestinationPortRange == fmt.Sprintf("%d", wantedRule.Port) { + *actualRule.SourceAddressPrefix == source && + *actualRule.DestinationPortRange == fmt.Sprintf("%d", wantedRule.Port) { foundRule = true break } @@ -406,7 +406,7 @@ func validateSecurityGroup(t *testing.T, securityGroup network.SecurityGroup, se } } - lenRules := len(*securityGroup.Properties.SecurityRules) + lenRules := len(*securityGroup.SecurityRules) if lenRules != expectedRuleCount { t.Errorf("Expected the loadbalancer to have %d rules. Found %d.\n", expectedRuleCount, lenRules) } @@ -420,7 +420,7 @@ func TestSecurityRulePriorityPicksNextAvailablePriority(t *testing.T) { var i int32 for i = loadBalancerMinimumPriority; i < expectedPriority; i++ { rules = append(rules, network.SecurityRule{ - Properties: &network.SecurityRulePropertiesFormat{ + SecurityRulePropertiesFormat: &network.SecurityRulePropertiesFormat{ Priority: to.Int32Ptr(i), }, }) @@ -442,7 +442,7 @@ func TestSecurityRulePriorityFailsIfExhausted(t *testing.T) { var i int32 for i = loadBalancerMinimumPriority; i < loadBalancerMaximumPriority; i++ { rules = append(rules, network.SecurityRule{ - Properties: &network.SecurityRulePropertiesFormat{ + SecurityRulePropertiesFormat: &network.SecurityRulePropertiesFormat{ Priority: to.Int32Ptr(i), }, }) diff --git a/pkg/credentialprovider/azure/BUILD b/pkg/credentialprovider/azure/BUILD new file mode 100644 index 00000000000..ef0a7591e9d --- /dev/null +++ b/pkg/credentialprovider/azure/BUILD @@ -0,0 +1,37 @@ +package(default_visibility = ["//visibility:public"]) + +licenses(["notice"]) + +load( + "@io_bazel_rules_go//go:def.bzl", + "go_binary", + "go_library", + "go_test", + "cgo_library", +) + +go_library( + name = "go_default_library", + srcs = ["azure_credentials.go"], + tags = ["automanaged"], + deps = [ + "//pkg/cloudprovider/providers/azure:go_default_library", + "//pkg/credentialprovider:go_default_library", + "//vendor:github.com/Azure/azure-sdk-for-go/arm/containerregistry", + "//vendor:github.com/Azure/go-autorest/autorest/azure", + "//vendor:github.com/golang/glog", + "//vendor:github.com/spf13/pflag", + "//vendor:gopkg.in/yaml.v2", + ], +) + +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", + "//vendor:github.com/Azure/go-autorest/autorest/to", + ], +) diff --git a/pkg/credentialprovider/azure/azure_credentials.go b/pkg/credentialprovider/azure/azure_credentials.go new file mode 100644 index 00000000000..b0191567f64 --- /dev/null +++ b/pkg/credentialprovider/azure/azure_credentials.go @@ -0,0 +1,144 @@ +/* +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 azure + +import ( + "fmt" + "io/ioutil" + "time" + + yaml "gopkg.in/yaml.v2" + + "github.com/Azure/azure-sdk-for-go/arm/containerregistry" + azureapi "github.com/Azure/go-autorest/autorest/azure" + "github.com/golang/glog" + "github.com/spf13/pflag" + "k8s.io/kubernetes/pkg/cloudprovider/providers/azure" + "k8s.io/kubernetes/pkg/credentialprovider" +) + +var flagConfigFile = pflag.String("azure-container-registry-config", "", + "Path to the file container Azure container registry configuration information.") + +const dummyRegistryEmail = "name@contoso.com" + +// init registers the various means by which credentials may +// be resolved on Azure. +func init() { + credentialprovider.RegisterCredentialProvider("azure", + &credentialprovider.CachingDockerConfigProvider{ + Provider: NewACRProvider(flagConfigFile), + Lifetime: 1 * time.Minute, + }) +} + +type RegistriesClient interface { + List() (containerregistry.RegistryListResult, error) +} + +func NewACRProvider(configFile *string) credentialprovider.DockerConfigProvider { + return &acrProvider{ + file: configFile, + } +} + +type acrProvider struct { + file *string + config azure.Config + environment azureapi.Environment + registryClient RegistriesClient +} + +func (a *acrProvider) loadConfig(contents []byte) error { + err := yaml.Unmarshal(contents, &a.config) + if err != nil { + return err + } + + if a.config.Cloud == "" { + a.environment = azureapi.PublicCloud + } else { + a.environment, err = azureapi.EnvironmentFromName(a.config.Cloud) + if err != nil { + return err + } + } + return nil +} + +func (a *acrProvider) Enabled() bool { + if a.file == nil || len(*a.file) == 0 { + glog.V(5).Infof("Azure config unspecified, disabling") + return false + } + contents, err := ioutil.ReadFile(*a.file) + if err != nil { + glog.Errorf("Failed to load azure credential file: %v", err) + return false + } + if err := a.loadConfig(contents); err != nil { + glog.Errorf("Failed to parse azure credential file: %v", err) + return false + } + + oauthConfig, err := a.environment.OAuthConfigForTenant(a.config.TenantID) + if err != nil { + glog.Errorf("Failed to get oauth config: %v", err) + return false + } + + servicePrincipalToken, err := azureapi.NewServicePrincipalToken( + *oauthConfig, + a.config.AADClientID, + a.config.AADClientSecret, + a.environment.ServiceManagementEndpoint) + if err != nil { + glog.Errorf("Failed to create service principal token: %v", err) + return false + } + + registryClient := containerregistry.NewRegistriesClient(a.config.SubscriptionID) + registryClient.BaseURI = a.environment.ResourceManagerEndpoint + registryClient.Authorizer = servicePrincipalToken + a.registryClient = registryClient + + return true +} + +func (a *acrProvider) Provide() credentialprovider.DockerConfig { + cfg := credentialprovider.DockerConfig{} + entry := credentialprovider.DockerConfigEntry{ + Username: a.config.AADClientID, + Password: a.config.AADClientSecret, + Email: dummyRegistryEmail, + } + + res, err := a.registryClient.List() + if err != nil { + glog.Errorf("Failed to list registries: %v", err) + return cfg + } + for ix := range *res.Value { + // TODO: I don't think this will work for national clouds + cfg[fmt.Sprintf("%s.azurecr.io", *(*res.Value)[ix].Name)] = entry + } + return cfg +} + +func (a *acrProvider) LazyProvide() *credentialprovider.DockerConfigEntry { + return nil +} diff --git a/pkg/credentialprovider/azure/azure_credentials_test.go b/pkg/credentialprovider/azure/azure_credentials_test.go new file mode 100644 index 00000000000..d034f90e4d4 --- /dev/null +++ b/pkg/credentialprovider/azure/azure_credentials_test.go @@ -0,0 +1,81 @@ +/* +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 azure + +import ( + "testing" + + "github.com/Azure/azure-sdk-for-go/arm/containerregistry" + "github.com/Azure/go-autorest/autorest/to" +) + +type fakeClient struct { + results containerregistry.RegistryListResult +} + +func (f *fakeClient) List() (containerregistry.RegistryListResult, error) { + return f.results, nil +} + +func Test(t *testing.T) { + configStr := ` + { + "aadClientId": "foo", + "aadClientSecret": "bar" + }` + result := containerregistry.RegistryListResult{ + Value: &[]containerregistry.Registry{ + { + Name: to.StringPtr("foo"), + }, + { + Name: to.StringPtr("bar"), + }, + { + Name: to.StringPtr("baz"), + }, + }, + } + fakeClient := &fakeClient{ + results: result, + } + + provider := &acrProvider{ + registryClient: fakeClient, + } + provider.loadConfig([]byte(configStr)) + + creds := provider.Provide() + + if len(creds) != len(*result.Value) { + t.Errorf("Unexpected list: %v, expected length %d", creds, len(*result.Value)) + } + for _, cred := range creds { + if cred.Username != "foo" { + t.Errorf("expected 'foo' for username, saw: %v", cred.Username) + } + if cred.Password != "bar" { + t.Errorf("expected 'bar' for password, saw: %v", cred.Username) + } + } + for _, val := range *result.Value { + registryName := *val.Name + ".azurecr.io" + if _, found := creds[registryName]; !found { + t.Errorf("Missing expected registry: %s", registryName) + } + } +} diff --git a/vendor/BUILD b/vendor/BUILD index 3615701aa68..8ef0aa4d863 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -64,6 +64,25 @@ go_library( "//vendor:github.com/Azure/go-autorest/autorest/azure", "//vendor:github.com/Azure/go-autorest/autorest/date", "//vendor:github.com/Azure/go-autorest/autorest/to", + "//vendor:github.com/Azure/go-autorest/autorest/validation", + ], +) + +go_library( + name = "github.com/Azure/azure-sdk-for-go/arm/containerregistry", + srcs = [ + "github.com/Azure/azure-sdk-for-go/arm/containerregistry/client.go", + "github.com/Azure/azure-sdk-for-go/arm/containerregistry/models.go", + "github.com/Azure/azure-sdk-for-go/arm/containerregistry/registries.go", + "github.com/Azure/azure-sdk-for-go/arm/containerregistry/version.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:github.com/Azure/go-autorest/autorest", + "//vendor:github.com/Azure/go-autorest/autorest/azure", + "//vendor:github.com/Azure/go-autorest/autorest/date", + "//vendor:github.com/Azure/go-autorest/autorest/to", + "//vendor:github.com/Azure/go-autorest/autorest/validation", ], ) @@ -98,6 +117,7 @@ go_library( "//vendor:github.com/Azure/go-autorest/autorest", "//vendor:github.com/Azure/go-autorest/autorest/azure", "//vendor:github.com/Azure/go-autorest/autorest/to", + "//vendor:github.com/Azure/go-autorest/autorest/validation", ], ) @@ -115,6 +135,7 @@ go_library( "//vendor:github.com/Azure/go-autorest/autorest", "//vendor:github.com/Azure/go-autorest/autorest/azure", "//vendor:github.com/Azure/go-autorest/autorest/date", + "//vendor:github.com/Azure/go-autorest/autorest/validation", ], ) @@ -147,10 +168,7 @@ go_library( "github.com/Azure/go-ansiterm/parser.go", "github.com/Azure/go-ansiterm/parser_action_helpers.go", "github.com/Azure/go-ansiterm/parser_actions.go", - "github.com/Azure/go-ansiterm/parser_test_helpers.go", - "github.com/Azure/go-ansiterm/parser_test_utilities.go", "github.com/Azure/go-ansiterm/states.go", - "github.com/Azure/go-ansiterm/test_event_handler.go", "github.com/Azure/go-ansiterm/utilities.go", ], tags = ["automanaged"], @@ -208,6 +226,12 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "github.com/Azure/go-autorest/autorest/validation", + srcs = ["github.com/Azure/go-autorest/autorest/validation/validation.go"], + tags = ["automanaged"], +) + go_library( name = "github.com/MakeNowJust/heredoc", srcs = ["github.com/MakeNowJust/heredoc/heredoc.go"], @@ -4408,6 +4432,16 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "github.com/miekg/coredns/middleware/etcd/msg", + srcs = [ + "github.com/miekg/coredns/middleware/etcd/msg/path.go", + "github.com/miekg/coredns/middleware/etcd/msg/service.go", + ], + tags = ["automanaged"], + deps = ["//vendor:github.com/miekg/dns"], +) + go_library( name = "github.com/miekg/dns", srcs = [ @@ -5633,6 +5667,21 @@ go_library( ], ) +go_library( + name = "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers", + srcs = [ + "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers/requests.go", + "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers/results.go", + "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers/urls.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:github.com/mitchellh/mapstructure", + "//vendor:github.com/rackspace/gophercloud", + "//vendor:github.com/rackspace/gophercloud/pagination", + ], +) + go_library( name = "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/lbaas/members", srcs = [ @@ -6682,6 +6731,44 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "github.com/vmware/photon-controller-go-sdk/photon", + srcs = [ + "github.com/vmware/photon-controller-go-sdk/photon/apitypes.go", + "github.com/vmware/photon-controller-go-sdk/photon/auth.go", + "github.com/vmware/photon-controller-go-sdk/photon/availabilityzones.go", + "github.com/vmware/photon-controller-go-sdk/photon/client.go", + "github.com/vmware/photon-controller-go-sdk/photon/clusters.go", + "github.com/vmware/photon-controller-go-sdk/photon/deployments.go", + "github.com/vmware/photon-controller-go-sdk/photon/disks.go", + "github.com/vmware/photon-controller-go-sdk/photon/flavors.go", + "github.com/vmware/photon-controller-go-sdk/photon/hosts.go", + "github.com/vmware/photon-controller-go-sdk/photon/images.go", + "github.com/vmware/photon-controller-go-sdk/photon/info.go", + "github.com/vmware/photon-controller-go-sdk/photon/networks.go", + "github.com/vmware/photon-controller-go-sdk/photon/projects.go", + "github.com/vmware/photon-controller-go-sdk/photon/resourcetickets.go", + "github.com/vmware/photon-controller-go-sdk/photon/restclient.go", + "github.com/vmware/photon-controller-go-sdk/photon/status.go", + "github.com/vmware/photon-controller-go-sdk/photon/tasks.go", + "github.com/vmware/photon-controller-go-sdk/photon/tenants.go", + "github.com/vmware/photon-controller-go-sdk/photon/util.go", + "github.com/vmware/photon-controller-go-sdk/photon/virtualnetworks.go", + "github.com/vmware/photon-controller-go-sdk/photon/vms.go", + ], + tags = ["automanaged"], + deps = ["//vendor:github.com/vmware/photon-controller-go-sdk/photon/lightwave"], +) + +go_library( + name = "github.com/vmware/photon-controller-go-sdk/photon/lightwave", + srcs = [ + "github.com/vmware/photon-controller-go-sdk/photon/lightwave/jwttoken.go", + "github.com/vmware/photon-controller-go-sdk/photon/lightwave/oidcclient.go", + ], + tags = ["automanaged"], +) + go_library( name = "github.com/xanzy/go-cloudstack/cloudstack", srcs = [ @@ -8092,6 +8179,12 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "k8s.io/client-go/_vendor/github.com/pmezard/go-difflib/difflib", + srcs = ["k8s.io/client-go/_vendor/github.com/pmezard/go-difflib/difflib/difflib.go"], + tags = ["automanaged"], +) + go_library( name = "k8s.io/client-go/_vendor/github.com/spf13/pflag", srcs = [ @@ -8122,6 +8215,22 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert", + srcs = [ + "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/assertions.go", + "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/doc.go", + "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/errors.go", + "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/forward_assertions.go", + "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/http_assertions.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:github.com/davecgh/go-spew/spew", + "//vendor:github.com/pmezard/go-difflib/difflib", + ], +) + go_library( name = "k8s.io/client-go/_vendor/github.com/ugorji/go/codec", srcs = [ @@ -8718,6 +8827,48 @@ go_library( ], ) +go_library( + name = "k8s.io/client-go/kubernetes/typed/apps/v1beta1", + srcs = [ + "k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go", + "k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go", + "k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go", + "k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apimachinery/registered", + "//vendor:k8s.io/client-go/pkg/apis/apps/v1beta1", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/runtime/serializer", + "//vendor:k8s.io/client-go/pkg/watch", + "//vendor:k8s.io/client-go/rest", + ], +) + +go_library( + name = "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake", + srcs = [ + "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go", + "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go", + "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:k8s.io/client-go/kubernetes/typed/apps/v1beta1", + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apis/apps/v1beta1", + "//vendor:k8s.io/client-go/pkg/labels", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/watch", + "//vendor:k8s.io/client-go/rest", + "//vendor:k8s.io/client-go/testing", + ], +) + go_library( name = "k8s.io/client-go/kubernetes/typed/authentication/v1beta1", srcs = [ @@ -8885,6 +9036,50 @@ go_library( ], ) +go_library( + name = "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", + srcs = [ + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go", + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go", + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go", + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go", + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/job.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apimachinery/registered", + "//vendor:k8s.io/client-go/pkg/apis/batch/v2alpha1", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/runtime/serializer", + "//vendor:k8s.io/client-go/pkg/watch", + "//vendor:k8s.io/client-go/rest", + ], +) + +go_library( + name = "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake", + srcs = [ + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go", + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go", + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go", + "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_job.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:k8s.io/client-go/kubernetes/typed/batch/v2alpha1", + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apis/batch/v2alpha1", + "//vendor:k8s.io/client-go/pkg/labels", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/watch", + "//vendor:k8s.io/client-go/rest", + "//vendor:k8s.io/client-go/testing", + ], +) + go_library( name = "k8s.io/client-go/kubernetes/typed/certificates/v1alpha1", srcs = [ @@ -9119,6 +9314,48 @@ go_library( ], ) +go_library( + name = "k8s.io/client-go/kubernetes/typed/policy/v1beta1", + srcs = [ + "k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go", + "k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go", + "k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go", + "k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apimachinery/registered", + "//vendor:k8s.io/client-go/pkg/apis/policy/v1beta1", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/runtime/serializer", + "//vendor:k8s.io/client-go/pkg/watch", + "//vendor:k8s.io/client-go/rest", + ], +) + +go_library( + name = "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake", + srcs = [ + "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go", + "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go", + "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:k8s.io/client-go/kubernetes/typed/policy/v1beta1", + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apis/policy/v1beta1", + "//vendor:k8s.io/client-go/pkg/labels", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/watch", + "//vendor:k8s.io/client-go/rest", + "//vendor:k8s.io/client-go/testing", + ], +) + go_library( name = "k8s.io/client-go/kubernetes/typed/rbac/v1alpha1", srcs = [ @@ -9520,6 +9757,39 @@ go_library( ], ) +go_library( + name = "k8s.io/client-go/pkg/apis/apps/v1beta1", + srcs = [ + "k8s.io/client-go/pkg/apis/apps/v1beta1/conversion.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/defaults.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/doc.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/generated.pb.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/register.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/types.generated.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/types.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/types_swagger_doc_generated.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/zz_generated.conversion.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/zz_generated.deepcopy.go", + "k8s.io/client-go/pkg/apis/apps/v1beta1/zz_generated.defaults.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:github.com/gogo/protobuf/proto", + "//vendor:github.com/ugorji/go/codec", + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/resource", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apis/apps", + "//vendor:k8s.io/client-go/pkg/apis/meta/v1", + "//vendor:k8s.io/client-go/pkg/conversion", + "//vendor:k8s.io/client-go/pkg/runtime", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/types", + "//vendor:k8s.io/client-go/pkg/util/intstr", + "//vendor:k8s.io/client-go/pkg/watch/versioned", + ], +) + go_library( name = "k8s.io/client-go/pkg/apis/authentication", srcs = [ @@ -10111,6 +10381,37 @@ go_library( ], ) +go_library( + name = "k8s.io/client-go/pkg/apis/meta/v1", + srcs = [ + "k8s.io/client-go/pkg/apis/meta/v1/doc.go", + "k8s.io/client-go/pkg/apis/meta/v1/duration.go", + "k8s.io/client-go/pkg/apis/meta/v1/generated.pb.go", + "k8s.io/client-go/pkg/apis/meta/v1/group_version.go", + "k8s.io/client-go/pkg/apis/meta/v1/helpers.go", + "k8s.io/client-go/pkg/apis/meta/v1/meta.go", + "k8s.io/client-go/pkg/apis/meta/v1/register.go", + "k8s.io/client-go/pkg/apis/meta/v1/time.go", + "k8s.io/client-go/pkg/apis/meta/v1/time_proto.go", + "k8s.io/client-go/pkg/apis/meta/v1/types.go", + "k8s.io/client-go/pkg/apis/meta/v1/types_swagger_doc_generated.go", + "k8s.io/client-go/pkg/apis/meta/v1/well_known_labels.go", + "k8s.io/client-go/pkg/apis/meta/v1/zz_generated.deepcopy.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:github.com/go-openapi/spec", + "//vendor:github.com/gogo/protobuf/proto", + "//vendor:github.com/gogo/protobuf/sortkeys", + "//vendor:github.com/google/gofuzz", + "//vendor:k8s.io/client-go/pkg/conversion", + "//vendor:k8s.io/client-go/pkg/genericapiserver/openapi/common", + "//vendor:k8s.io/client-go/pkg/labels", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/selection", + ], +) + go_library( name = "k8s.io/client-go/pkg/apis/policy", srcs = [ @@ -10162,6 +10463,36 @@ go_library( ], ) +go_library( + name = "k8s.io/client-go/pkg/apis/policy/v1beta1", + srcs = [ + "k8s.io/client-go/pkg/apis/policy/v1beta1/doc.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/generated.pb.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/register.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/types.generated.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/types.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/types_swagger_doc_generated.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.conversion.go", + "k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.deepcopy.go", + ], + tags = ["automanaged"], + deps = [ + "//vendor:github.com/gogo/protobuf/proto", + "//vendor:github.com/gogo/protobuf/sortkeys", + "//vendor:github.com/ugorji/go/codec", + "//vendor:k8s.io/client-go/pkg/api", + "//vendor:k8s.io/client-go/pkg/api/v1", + "//vendor:k8s.io/client-go/pkg/apis/meta/v1", + "//vendor:k8s.io/client-go/pkg/apis/policy", + "//vendor:k8s.io/client-go/pkg/conversion", + "//vendor:k8s.io/client-go/pkg/runtime", + "//vendor:k8s.io/client-go/pkg/runtime/schema", + "//vendor:k8s.io/client-go/pkg/types", + "//vendor:k8s.io/client-go/pkg/util/intstr", + "//vendor:k8s.io/client-go/pkg/watch/versioned", + ], +) + go_library( name = "k8s.io/client-go/pkg/apis/rbac", srcs = [ @@ -10519,6 +10850,17 @@ go_library( ], ) +go_library( + name = "k8s.io/client-go/pkg/runtime/schema", + srcs = [ + "k8s.io/client-go/pkg/runtime/schema/generated.pb.go", + "k8s.io/client-go/pkg/runtime/schema/group_version.go", + "k8s.io/client-go/pkg/runtime/schema/interfaces.go", + ], + tags = ["automanaged"], + deps = ["//vendor:github.com/gogo/protobuf/proto"], +) + go_library( name = "k8s.io/client-go/pkg/runtime/serializer", srcs = [ @@ -10629,6 +10971,15 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "k8s.io/client-go/pkg/third_party/forked/golang/template", + srcs = [ + "k8s.io/client-go/pkg/third_party/forked/golang/template/exec.go", + "k8s.io/client-go/pkg/third_party/forked/golang/template/funcs.go", + ], + tags = ["automanaged"], +) + go_library( name = "k8s.io/client-go/pkg/types", srcs = [ @@ -10795,6 +11146,18 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "k8s.io/client-go/pkg/util/jsonpath", + srcs = [ + "k8s.io/client-go/pkg/util/jsonpath/doc.go", + "k8s.io/client-go/pkg/util/jsonpath/jsonpath.go", + "k8s.io/client-go/pkg/util/jsonpath/node.go", + "k8s.io/client-go/pkg/util/jsonpath/parser.go", + ], + tags = ["automanaged"], + deps = ["//vendor:k8s.io/client-go/pkg/third_party/forked/golang/template"], +) + go_library( name = "k8s.io/client-go/pkg/util/labels", srcs = [ @@ -10835,6 +11198,12 @@ go_library( tags = ["automanaged"], ) +go_library( + name = "k8s.io/client-go/pkg/util/ratelimit", + srcs = ["k8s.io/client-go/pkg/util/ratelimit/bucket.go"], + tags = ["automanaged"], +) + go_library( name = "k8s.io/client-go/pkg/util/runtime", srcs = ["k8s.io/client-go/pkg/util/runtime/runtime.go"], @@ -11475,348 +11844,3 @@ go_library( "//pkg/api/v1:go_default_library", ], ) - -go_library( - name = "github.com/vmware/photon-controller-go-sdk/photon", - srcs = [ - "github.com/vmware/photon-controller-go-sdk/photon/apitypes.go", - "github.com/vmware/photon-controller-go-sdk/photon/auth.go", - "github.com/vmware/photon-controller-go-sdk/photon/availabilityzones.go", - "github.com/vmware/photon-controller-go-sdk/photon/client.go", - "github.com/vmware/photon-controller-go-sdk/photon/clusters.go", - "github.com/vmware/photon-controller-go-sdk/photon/deployments.go", - "github.com/vmware/photon-controller-go-sdk/photon/disks.go", - "github.com/vmware/photon-controller-go-sdk/photon/flavors.go", - "github.com/vmware/photon-controller-go-sdk/photon/hosts.go", - "github.com/vmware/photon-controller-go-sdk/photon/images.go", - "github.com/vmware/photon-controller-go-sdk/photon/info.go", - "github.com/vmware/photon-controller-go-sdk/photon/networks.go", - "github.com/vmware/photon-controller-go-sdk/photon/projects.go", - "github.com/vmware/photon-controller-go-sdk/photon/resourcetickets.go", - "github.com/vmware/photon-controller-go-sdk/photon/restclient.go", - "github.com/vmware/photon-controller-go-sdk/photon/status.go", - "github.com/vmware/photon-controller-go-sdk/photon/tasks.go", - "github.com/vmware/photon-controller-go-sdk/photon/tenants.go", - "github.com/vmware/photon-controller-go-sdk/photon/util.go", - "github.com/vmware/photon-controller-go-sdk/photon/virtualnetworks.go", - "github.com/vmware/photon-controller-go-sdk/photon/vms.go", - ], - tags = ["automanaged"], - deps = ["//vendor:github.com/vmware/photon-controller-go-sdk/photon/lightwave"], -) - -go_library( - name = "github.com/vmware/photon-controller-go-sdk/photon/lightwave", - srcs = [ - "github.com/vmware/photon-controller-go-sdk/photon/lightwave/jwttoken.go", - "github.com/vmware/photon-controller-go-sdk/photon/lightwave/oidcclient.go", - ], - tags = ["automanaged"], -) - -go_library( - name = "k8s.io/client-go/_vendor/github.com/pmezard/go-difflib/difflib", - srcs = ["k8s.io/client-go/_vendor/github.com/pmezard/go-difflib/difflib/difflib.go"], - tags = ["automanaged"], -) - -go_library( - name = "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert", - srcs = [ - "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/assertions.go", - "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/doc.go", - "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/errors.go", - "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/forward_assertions.go", - "k8s.io/client-go/_vendor/github.com/stretchr/testify/assert/http_assertions.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:github.com/davecgh/go-spew/spew", - "//vendor:github.com/pmezard/go-difflib/difflib", - ], -) - -go_library( - name = "k8s.io/client-go/kubernetes/typed/apps/v1beta1", - srcs = [ - "k8s.io/client-go/kubernetes/typed/apps/v1beta1/apps_client.go", - "k8s.io/client-go/kubernetes/typed/apps/v1beta1/doc.go", - "k8s.io/client-go/kubernetes/typed/apps/v1beta1/generated_expansion.go", - "k8s.io/client-go/kubernetes/typed/apps/v1beta1/statefulset.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apimachinery/registered", - "//vendor:k8s.io/client-go/pkg/apis/apps/v1beta1", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/runtime/serializer", - "//vendor:k8s.io/client-go/pkg/watch", - "//vendor:k8s.io/client-go/rest", - ], -) - -go_library( - name = "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake", - srcs = [ - "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/doc.go", - "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_apps_client.go", - "k8s.io/client-go/kubernetes/typed/apps/v1beta1/fake/fake_statefulset.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:k8s.io/client-go/kubernetes/typed/apps/v1beta1", - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apis/apps/v1beta1", - "//vendor:k8s.io/client-go/pkg/labels", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/watch", - "//vendor:k8s.io/client-go/rest", - "//vendor:k8s.io/client-go/testing", - ], -) - -go_library( - name = "k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - srcs = [ - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/batch_client.go", - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/cronjob.go", - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/doc.go", - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/generated_expansion.go", - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/job.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apimachinery/registered", - "//vendor:k8s.io/client-go/pkg/apis/batch/v2alpha1", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/runtime/serializer", - "//vendor:k8s.io/client-go/pkg/watch", - "//vendor:k8s.io/client-go/rest", - ], -) - -go_library( - name = "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake", - srcs = [ - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/doc.go", - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_batch_client.go", - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_cronjob.go", - "k8s.io/client-go/kubernetes/typed/batch/v2alpha1/fake/fake_job.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:k8s.io/client-go/kubernetes/typed/batch/v2alpha1", - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apis/batch/v2alpha1", - "//vendor:k8s.io/client-go/pkg/labels", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/watch", - "//vendor:k8s.io/client-go/rest", - "//vendor:k8s.io/client-go/testing", - ], -) - -go_library( - name = "k8s.io/client-go/kubernetes/typed/policy/v1beta1", - srcs = [ - "k8s.io/client-go/kubernetes/typed/policy/v1beta1/doc.go", - "k8s.io/client-go/kubernetes/typed/policy/v1beta1/generated_expansion.go", - "k8s.io/client-go/kubernetes/typed/policy/v1beta1/poddisruptionbudget.go", - "k8s.io/client-go/kubernetes/typed/policy/v1beta1/policy_client.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apimachinery/registered", - "//vendor:k8s.io/client-go/pkg/apis/policy/v1beta1", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/runtime/serializer", - "//vendor:k8s.io/client-go/pkg/watch", - "//vendor:k8s.io/client-go/rest", - ], -) - -go_library( - name = "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake", - srcs = [ - "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/doc.go", - "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_poddisruptionbudget.go", - "k8s.io/client-go/kubernetes/typed/policy/v1beta1/fake/fake_policy_client.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:k8s.io/client-go/kubernetes/typed/policy/v1beta1", - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apis/policy/v1beta1", - "//vendor:k8s.io/client-go/pkg/labels", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/watch", - "//vendor:k8s.io/client-go/rest", - "//vendor:k8s.io/client-go/testing", - ], -) - -go_library( - name = "k8s.io/client-go/pkg/apis/apps/v1beta1", - srcs = [ - "k8s.io/client-go/pkg/apis/apps/v1beta1/conversion.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/defaults.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/doc.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/generated.pb.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/register.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/types.generated.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/types.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/types_swagger_doc_generated.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/zz_generated.conversion.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/zz_generated.deepcopy.go", - "k8s.io/client-go/pkg/apis/apps/v1beta1/zz_generated.defaults.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:github.com/gogo/protobuf/proto", - "//vendor:github.com/ugorji/go/codec", - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/resource", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apis/apps", - "//vendor:k8s.io/client-go/pkg/apis/meta/v1", - "//vendor:k8s.io/client-go/pkg/conversion", - "//vendor:k8s.io/client-go/pkg/runtime", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/types", - "//vendor:k8s.io/client-go/pkg/util/intstr", - "//vendor:k8s.io/client-go/pkg/watch/versioned", - ], -) - -go_library( - name = "k8s.io/client-go/pkg/apis/policy/v1beta1", - srcs = [ - "k8s.io/client-go/pkg/apis/policy/v1beta1/doc.go", - "k8s.io/client-go/pkg/apis/policy/v1beta1/generated.pb.go", - "k8s.io/client-go/pkg/apis/policy/v1beta1/register.go", - "k8s.io/client-go/pkg/apis/policy/v1beta1/types.generated.go", - "k8s.io/client-go/pkg/apis/policy/v1beta1/types.go", - "k8s.io/client-go/pkg/apis/policy/v1beta1/types_swagger_doc_generated.go", - "k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.conversion.go", - "k8s.io/client-go/pkg/apis/policy/v1beta1/zz_generated.deepcopy.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:github.com/gogo/protobuf/proto", - "//vendor:github.com/gogo/protobuf/sortkeys", - "//vendor:github.com/ugorji/go/codec", - "//vendor:k8s.io/client-go/pkg/api", - "//vendor:k8s.io/client-go/pkg/api/v1", - "//vendor:k8s.io/client-go/pkg/apis/meta/v1", - "//vendor:k8s.io/client-go/pkg/apis/policy", - "//vendor:k8s.io/client-go/pkg/conversion", - "//vendor:k8s.io/client-go/pkg/runtime", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/types", - "//vendor:k8s.io/client-go/pkg/util/intstr", - "//vendor:k8s.io/client-go/pkg/watch/versioned", - ], -) - -go_library( - name = "k8s.io/client-go/pkg/third_party/forked/golang/template", - srcs = [ - "k8s.io/client-go/pkg/third_party/forked/golang/template/exec.go", - "k8s.io/client-go/pkg/third_party/forked/golang/template/funcs.go", - ], - tags = ["automanaged"], -) - -go_library( - name = "k8s.io/client-go/pkg/util/jsonpath", - srcs = [ - "k8s.io/client-go/pkg/util/jsonpath/doc.go", - "k8s.io/client-go/pkg/util/jsonpath/jsonpath.go", - "k8s.io/client-go/pkg/util/jsonpath/node.go", - "k8s.io/client-go/pkg/util/jsonpath/parser.go", - ], - tags = ["automanaged"], - deps = ["//vendor:k8s.io/client-go/pkg/third_party/forked/golang/template"], -) - -go_library( - name = "k8s.io/client-go/pkg/util/ratelimit", - srcs = ["k8s.io/client-go/pkg/util/ratelimit/bucket.go"], - tags = ["automanaged"], -) - -go_library( - name = "k8s.io/client-go/pkg/runtime/schema", - srcs = [ - "k8s.io/client-go/pkg/runtime/schema/generated.pb.go", - "k8s.io/client-go/pkg/runtime/schema/group_version.go", - "k8s.io/client-go/pkg/runtime/schema/interfaces.go", - ], - tags = ["automanaged"], - deps = ["//vendor:github.com/gogo/protobuf/proto"], -) - -go_library( - name = "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers", - srcs = [ - "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers/requests.go", - "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers/results.go", - "github.com/rackspace/gophercloud/openstack/networking/v2/extensions/layer3/routers/urls.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:github.com/mitchellh/mapstructure", - "//vendor:github.com/rackspace/gophercloud", - "//vendor:github.com/rackspace/gophercloud/pagination", - ], -) - -go_library( - name = "k8s.io/client-go/pkg/apis/meta/v1", - srcs = [ - "k8s.io/client-go/pkg/apis/meta/v1/doc.go", - "k8s.io/client-go/pkg/apis/meta/v1/duration.go", - "k8s.io/client-go/pkg/apis/meta/v1/generated.pb.go", - "k8s.io/client-go/pkg/apis/meta/v1/group_version.go", - "k8s.io/client-go/pkg/apis/meta/v1/helpers.go", - "k8s.io/client-go/pkg/apis/meta/v1/meta.go", - "k8s.io/client-go/pkg/apis/meta/v1/register.go", - "k8s.io/client-go/pkg/apis/meta/v1/time.go", - "k8s.io/client-go/pkg/apis/meta/v1/time_proto.go", - "k8s.io/client-go/pkg/apis/meta/v1/types.go", - "k8s.io/client-go/pkg/apis/meta/v1/types_swagger_doc_generated.go", - "k8s.io/client-go/pkg/apis/meta/v1/well_known_labels.go", - "k8s.io/client-go/pkg/apis/meta/v1/zz_generated.deepcopy.go", - ], - tags = ["automanaged"], - deps = [ - "//vendor:github.com/go-openapi/spec", - "//vendor:github.com/gogo/protobuf/proto", - "//vendor:github.com/gogo/protobuf/sortkeys", - "//vendor:github.com/google/gofuzz", - "//vendor:k8s.io/client-go/pkg/conversion", - "//vendor:k8s.io/client-go/pkg/genericapiserver/openapi/common", - "//vendor:k8s.io/client-go/pkg/labels", - "//vendor:k8s.io/client-go/pkg/runtime/schema", - "//vendor:k8s.io/client-go/pkg/selection", - ], -) - -go_library( - name = "github.com/miekg/coredns/middleware/etcd/msg", - srcs = [ - "github.com/miekg/coredns/middleware/etcd/msg/path.go", - "github.com/miekg/coredns/middleware/etcd/msg/service.go", - ], - tags = ["automanaged"], - deps = ["//vendor:github.com/miekg/dns"], -)