mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-24 20:24:09 +00:00
Merge pull request #58491 from bowei/cp-forwarding
Automatic merge from submit-queue (batch tested with PRs 58104, 58492, 58491). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. GCE: forwarding rules to use generated code GCE: forwarding rules to use generated code ```release-note NONE ```
This commit is contained in:
commit
e056dde7ea
@ -17,8 +17,12 @@ limitations under the License.
|
|||||||
package gce
|
package gce
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
computealpha "google.golang.org/api/compute/v0.alpha"
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/filter"
|
||||||
|
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce/cloud/meta"
|
||||||
)
|
)
|
||||||
|
|
||||||
func newForwardingRuleMetricContext(request, region string) *metricContext {
|
func newForwardingRuleMetricContext(request, region string) *metricContext {
|
||||||
@ -31,79 +35,62 @@ func newForwardingRuleMetricContextWithVersion(request, region, version string)
|
|||||||
// CreateGlobalForwardingRule creates the passed GlobalForwardingRule
|
// CreateGlobalForwardingRule creates the passed GlobalForwardingRule
|
||||||
func (gce *GCECloud) CreateGlobalForwardingRule(rule *compute.ForwardingRule) error {
|
func (gce *GCECloud) CreateGlobalForwardingRule(rule *compute.ForwardingRule) error {
|
||||||
mc := newForwardingRuleMetricContext("create", "")
|
mc := newForwardingRuleMetricContext("create", "")
|
||||||
op, err := gce.service.GlobalForwardingRules.Insert(gce.projectID, rule).Do()
|
return mc.Observe(gce.c.GlobalForwardingRules().Insert(context.Background(), meta.GlobalKey(rule.Name), rule))
|
||||||
if err != nil {
|
|
||||||
return mc.Observe(err)
|
|
||||||
}
|
|
||||||
return gce.waitForGlobalOp(op, mc)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetProxyForGlobalForwardingRule links the given TargetHttp(s)Proxy with the given GlobalForwardingRule.
|
// SetProxyForGlobalForwardingRule links the given TargetHttp(s)Proxy with the given GlobalForwardingRule.
|
||||||
// targetProxyLink is the SelfLink of a TargetHttp(s)Proxy.
|
// targetProxyLink is the SelfLink of a TargetHttp(s)Proxy.
|
||||||
func (gce *GCECloud) SetProxyForGlobalForwardingRule(forwardingRuleName, targetProxyLink string) error {
|
func (gce *GCECloud) SetProxyForGlobalForwardingRule(forwardingRuleName, targetProxyLink string) error {
|
||||||
mc := newForwardingRuleMetricContext("set_proxy", "")
|
mc := newForwardingRuleMetricContext("set_proxy", "")
|
||||||
op, err := gce.service.GlobalForwardingRules.SetTarget(
|
target := &compute.TargetReference{Target: targetProxyLink}
|
||||||
gce.projectID, forwardingRuleName, &compute.TargetReference{Target: targetProxyLink}).Do()
|
return mc.Observe(gce.c.GlobalForwardingRules().SetTarget(context.Background(), meta.GlobalKey(forwardingRuleName), target))
|
||||||
if err != nil {
|
|
||||||
return mc.Observe(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return gce.waitForGlobalOp(op, mc)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteGlobalForwardingRule deletes the GlobalForwardingRule by name.
|
// DeleteGlobalForwardingRule deletes the GlobalForwakdingRule by name.
|
||||||
func (gce *GCECloud) DeleteGlobalForwardingRule(name string) error {
|
func (gce *GCECloud) DeleteGlobalForwardingRule(name string) error {
|
||||||
mc := newForwardingRuleMetricContext("delete", "")
|
mc := newForwardingRuleMetricContext("delete", "")
|
||||||
op, err := gce.service.GlobalForwardingRules.Delete(gce.projectID, name).Do()
|
return mc.Observe(gce.c.GlobalForwardingRules().Delete(context.Background(), meta.GlobalKey(name)))
|
||||||
if err != nil {
|
|
||||||
return mc.Observe(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return gce.waitForGlobalOp(op, mc)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetGlobalForwardingRule returns the GlobalForwardingRule by name.
|
// GetGlobalForwardingRule returns the GlobalForwardingRule by name.
|
||||||
func (gce *GCECloud) GetGlobalForwardingRule(name string) (*compute.ForwardingRule, error) {
|
func (gce *GCECloud) GetGlobalForwardingRule(name string) (*compute.ForwardingRule, error) {
|
||||||
mc := newForwardingRuleMetricContext("get", "")
|
mc := newForwardingRuleMetricContext("get", "")
|
||||||
v, err := gce.service.GlobalForwardingRules.Get(gce.projectID, name).Do()
|
v, err := gce.c.GlobalForwardingRules().Get(context.Background(), meta.GlobalKey(name))
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListGlobalForwardingRules lists all GlobalForwardingRules in the project.
|
// ListGlobalForwardingRules lists all GlobalForwardingRules in the project.
|
||||||
func (gce *GCECloud) ListGlobalForwardingRules() (*compute.ForwardingRuleList, error) {
|
func (gce *GCECloud) ListGlobalForwardingRules() ([]*compute.ForwardingRule, error) {
|
||||||
mc := newForwardingRuleMetricContext("list", "")
|
mc := newForwardingRuleMetricContext("list", "")
|
||||||
// TODO: use PageToken to list all not just the first 500
|
v, err := gce.c.GlobalForwardingRules().List(context.Background(), filter.None)
|
||||||
v, err := gce.service.GlobalForwardingRules.List(gce.projectID).Do()
|
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRegionForwardingRule returns the RegionalForwardingRule by name & region.
|
// GetRegionForwardingRule returns the RegionalForwardingRule by name & region.
|
||||||
func (gce *GCECloud) GetRegionForwardingRule(name, region string) (*compute.ForwardingRule, error) {
|
func (gce *GCECloud) GetRegionForwardingRule(name, region string) (*compute.ForwardingRule, error) {
|
||||||
mc := newForwardingRuleMetricContext("get", region)
|
mc := newForwardingRuleMetricContext("get", region)
|
||||||
v, err := gce.service.ForwardingRules.Get(gce.projectID, region, name).Do()
|
v, err := gce.c.ForwardingRules().Get(context.Background(), meta.RegionalKey(name, region))
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetAlphaRegionForwardingRule returns the Alpha forwarding rule by name & region.
|
// GetAlphaRegionForwardingRule returns the Alpha forwarding rule by name & region.
|
||||||
func (gce *GCECloud) GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error) {
|
func (gce *GCECloud) GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error) {
|
||||||
mc := newForwardingRuleMetricContextWithVersion("get", region, computeAlphaVersion)
|
mc := newForwardingRuleMetricContextWithVersion("get", region, computeAlphaVersion)
|
||||||
v, err := gce.serviceAlpha.ForwardingRules.Get(gce.projectID, region, name).Do()
|
v, err := gce.c.AlphaForwardingRules().Get(context.Background(), meta.RegionalKey(name, region))
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
|
// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
|
||||||
func (gce *GCECloud) ListRegionForwardingRules(region string) (*compute.ForwardingRuleList, error) {
|
func (gce *GCECloud) ListRegionForwardingRules(region string) ([]*compute.ForwardingRule, error) {
|
||||||
mc := newForwardingRuleMetricContext("list", region)
|
mc := newForwardingRuleMetricContext("list", region)
|
||||||
// TODO: use PageToken to list all not just the first 500
|
v, err := gce.c.ForwardingRules().List(context.Background(), region, filter.None)
|
||||||
v, err := gce.service.ForwardingRules.List(gce.projectID, region).Do()
|
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
|
// ListAlphaRegionForwardingRules lists all RegionalForwardingRules in the project & region.
|
||||||
func (gce *GCECloud) ListAlphaRegionForwardingRules(region string) (*computealpha.ForwardingRuleList, error) {
|
func (gce *GCECloud) ListAlphaRegionForwardingRules(region string) ([]*computealpha.ForwardingRule, error) {
|
||||||
mc := newForwardingRuleMetricContextWithVersion("list", region, computeAlphaVersion)
|
mc := newForwardingRuleMetricContextWithVersion("list", region, computeAlphaVersion)
|
||||||
// TODO: use PageToken to list all not just the first 500
|
v, err := gce.c.AlphaForwardingRules().List(context.Background(), region, filter.None)
|
||||||
v, err := gce.serviceAlpha.ForwardingRules.List(gce.projectID, region).Do()
|
|
||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,35 +98,20 @@ func (gce *GCECloud) ListAlphaRegionForwardingRules(region string) (*computealph
|
|||||||
// RegionalForwardingRule that points to the given BackendService
|
// RegionalForwardingRule that points to the given BackendService
|
||||||
func (gce *GCECloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error {
|
func (gce *GCECloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, region string) error {
|
||||||
mc := newForwardingRuleMetricContext("create", region)
|
mc := newForwardingRuleMetricContext("create", region)
|
||||||
op, err := gce.service.ForwardingRules.Insert(gce.projectID, region, rule).Do()
|
return mc.Observe(gce.c.ForwardingRules().Insert(context.Background(), meta.RegionalKey(rule.Name, region), rule))
|
||||||
if err != nil {
|
|
||||||
return mc.Observe(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return gce.waitForRegionOp(op, region, mc)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// CreateAlphaRegionForwardingRule creates and returns an Alpha
|
// CreateAlphaRegionForwardingRule creates and returns an Alpha
|
||||||
// forwarding fule in the given region.
|
// forwarding fule in the given region.
|
||||||
func (gce *GCECloud) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error {
|
func (gce *GCECloud) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error {
|
||||||
mc := newForwardingRuleMetricContextWithVersion("create", region, computeAlphaVersion)
|
mc := newForwardingRuleMetricContextWithVersion("create", region, computeAlphaVersion)
|
||||||
op, err := gce.serviceAlpha.ForwardingRules.Insert(gce.projectID, region, rule).Do()
|
return mc.Observe(gce.c.AlphaForwardingRules().Insert(context.Background(), meta.RegionalKey(rule.Name, region), rule))
|
||||||
if err != nil {
|
|
||||||
return mc.Observe(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return gce.waitForRegionOp(op, region, mc)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region.
|
// DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region.
|
||||||
func (gce *GCECloud) DeleteRegionForwardingRule(name, region string) error {
|
func (gce *GCECloud) DeleteRegionForwardingRule(name, region string) error {
|
||||||
mc := newForwardingRuleMetricContext("delete", region)
|
mc := newForwardingRuleMetricContext("delete", region)
|
||||||
op, err := gce.service.ForwardingRules.Delete(gce.projectID, region, name).Do()
|
return mc.Observe(gce.c.ForwardingRules().Delete(context.Background(), meta.RegionalKey(name, region)))
|
||||||
if err != nil {
|
|
||||||
return mc.Observe(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return gce.waitForRegionOp(op, region, mc)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(#51665): retire this function once Network Tiers becomes Beta in GCP.
|
// TODO(#51665): retire this function once Network Tiers becomes Beta in GCP.
|
||||||
|
@ -195,7 +195,7 @@ func getGCEForwardingRuleByIP(ip string) (*computealpha.ForwardingRule, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
for _, rule := range ruleList.Items {
|
for _, rule := range ruleList {
|
||||||
if rule.IPAddress == ip {
|
if rule.IPAddress == ip {
|
||||||
return rule, nil
|
return rule, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user