mirror of
https://github.com/kubernetes/client-go.git
synced 2026-07-13 03:36:44 +00:00
Automatic merge from submit-queue (batch tested with PRs 51984, 51351, 51873, 51795, 51634) Bug Fix - Adding an allowed address pair wipes port security groups **What this PR does / why we need it**: Fix for cloud routes enabled instances will have their security groups removed when the allowed address pair is added to the instance's port. Upstream bug report is in: https://github.com/gophercloud/gophercloud/issues/509 Upstream bug fix is in: https://github.com/gophercloud/gophercloud/pull/510 **Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: fixes # Fixes #51755 **Special notes for your reviewer**: Just an fix in vendored code. minimal changes needed in OpenStack cloud provider **Release note**: ```release-note NONE ``` Kubernetes-commit: 9a8cb435b77085fa7d518c4428a02eae316b1003
77 lines
3.0 KiB
Go
77 lines
3.0 KiB
Go
package gophercloud
|
|
|
|
// Availability indicates to whom a specific service endpoint is accessible:
|
|
// the internet at large, internal networks only, or only to administrators.
|
|
// Different identity services use different terminology for these. Identity v2
|
|
// lists them as different kinds of URLs within the service catalog ("adminURL",
|
|
// "internalURL", and "publicURL"), while v3 lists them as "Interfaces" in an
|
|
// endpoint's response.
|
|
type Availability string
|
|
|
|
const (
|
|
// AvailabilityAdmin indicates that an endpoint is only available to
|
|
// administrators.
|
|
AvailabilityAdmin Availability = "admin"
|
|
|
|
// AvailabilityPublic indicates that an endpoint is available to everyone on
|
|
// the internet.
|
|
AvailabilityPublic Availability = "public"
|
|
|
|
// AvailabilityInternal indicates that an endpoint is only available within
|
|
// the cluster's internal network.
|
|
AvailabilityInternal Availability = "internal"
|
|
)
|
|
|
|
// EndpointOpts specifies search criteria used by queries against an
|
|
// OpenStack service catalog. The options must contain enough information to
|
|
// unambiguously identify one, and only one, endpoint within the catalog.
|
|
//
|
|
// Usually, these are passed to service client factory functions in a provider
|
|
// package, like "openstack.NewComputeV2()".
|
|
type EndpointOpts struct {
|
|
// Type [required] is the service type for the client (e.g., "compute",
|
|
// "object-store"). Generally, this will be supplied by the service client
|
|
// function, but a user-given value will be honored if provided.
|
|
Type string
|
|
|
|
// Name [optional] is the service name for the client (e.g., "nova") as it
|
|
// appears in the service catalog. Services can have the same Type but a
|
|
// different Name, which is why both Type and Name are sometimes needed.
|
|
Name string
|
|
|
|
// Region [required] is the geographic region in which the endpoint resides,
|
|
// generally specifying which datacenter should house your resources.
|
|
// Required only for services that span multiple regions.
|
|
Region string
|
|
|
|
// Availability [optional] is the visibility of the endpoint to be returned.
|
|
// Valid types include the constants AvailabilityPublic, AvailabilityInternal,
|
|
// or AvailabilityAdmin from this package.
|
|
//
|
|
// Availability is not required, and defaults to AvailabilityPublic. Not all
|
|
// providers or services offer all Availability options.
|
|
Availability Availability
|
|
}
|
|
|
|
/*
|
|
EndpointLocator is an internal function to be used by provider implementations.
|
|
|
|
It provides an implementation that locates a single endpoint from a service
|
|
catalog for a specific ProviderClient based on user-provided EndpointOpts. The
|
|
provider then uses it to discover related ServiceClients.
|
|
*/
|
|
type EndpointLocator func(EndpointOpts) (string, error)
|
|
|
|
// ApplyDefaults is an internal method to be used by provider implementations.
|
|
//
|
|
// It sets EndpointOpts fields if not already set, including a default type.
|
|
// Currently, EndpointOpts.Availability defaults to the public endpoint.
|
|
func (eo *EndpointOpts) ApplyDefaults(t string) {
|
|
if eo.Type == "" {
|
|
eo.Type = t
|
|
}
|
|
if eo.Availability == "" {
|
|
eo.Availability = AvailabilityPublic
|
|
}
|
|
}
|