mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-19 09:52:49 +00:00
**What type of PR is this?** /kind cleanup **What this PR does / why we need it**: Staging the GCE Cloud Provider as part of KEP [20190125-removing-in-tree-providers](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cloud-provider/20190125-removing-in-tree-providers.md). Staging repo setup here https://github.com/kubernetes/legacy-cloud-providers Moves the GCE cloud provider implementation to staging. This is in preparation for moving the cloud provider code out of tree entirely. However we need it in staging while the code needs to be consumed both in/out of tree. **Which issue(s) this PR fixes**: Fixes # **Special notes for your reviewer**: **Does this PR introduce a user-facing change?**: ``` NONE ``` Updated import dependency tracking. Factored in the cleanup from #77412 Minor fix to go.mod.
73 lines
2.3 KiB
Go
73 lines
2.3 KiB
Go
/*
|
|
Copyright 2018 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 (
|
|
"time"
|
|
|
|
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud"
|
|
"golang.org/x/oauth2"
|
|
"k8s.io/legacy-cloud-providers/gce"
|
|
)
|
|
|
|
const (
|
|
// TestProjectID is the project id used for creating NewMockGCECloud
|
|
TestProjectID = "test-project"
|
|
// TestNetworkProjectID is the network project id for creating NewMockGCECloud
|
|
TestNetworkProjectID = "net-test-project"
|
|
// TestRegion is the region for creating NewMockGCECloud
|
|
TestRegion = "test-region"
|
|
// TestZone is the zone for creating NewMockGCECloud
|
|
TestZone = "test-zone"
|
|
// TestNetworkName is the network name for creating NewMockGCECloud
|
|
TestNetworkName = "test-network"
|
|
// TestSubnetworkName is the sub network name for creating NewMockGCECloud
|
|
TestSubnetworkName = "test-sub-network"
|
|
// TestSecondaryRangeName is the secondary range name for creating NewMockGCECloud
|
|
TestSecondaryRangeName = "test-secondary-range"
|
|
)
|
|
|
|
type mockTokenSource struct{}
|
|
|
|
func (*mockTokenSource) Token() (*oauth2.Token, error) {
|
|
return &oauth2.Token{
|
|
AccessToken: "access",
|
|
TokenType: "Bearer",
|
|
RefreshToken: "refresh",
|
|
Expiry: time.Now().Add(1 * time.Hour),
|
|
}, nil
|
|
}
|
|
|
|
// NewMockGCECloud returns a handle to a Cloud instance that is
|
|
// served by a mock http server
|
|
func NewMockGCECloud(cloud cloud.Cloud) (*gce.Cloud, error) {
|
|
config := &gce.CloudConfig{
|
|
ProjectID: TestProjectID,
|
|
NetworkProjectID: TestNetworkProjectID,
|
|
Region: TestRegion,
|
|
Zone: TestZone,
|
|
ManagedZones: []string{TestZone},
|
|
NetworkName: TestNetworkName,
|
|
SubnetworkName: TestSubnetworkName,
|
|
SecondaryRangeName: TestSecondaryRangeName,
|
|
NodeTags: []string{},
|
|
UseMetadataServer: false,
|
|
TokenSource: &mockTokenSource{},
|
|
}
|
|
return gce.CreateGCECloudWithCloud(config, cloud)
|
|
}
|