BackendService LoadBalancingScheme + IAP support

This commit is contained in:
The Magician 2018-08-28 15:25:00 -07:00 committed by Alex Stephen
parent 01734b6279
commit 073ca550e5

View file

@ -49,18 +49,19 @@ extends_documentation_fragment: gcp
''' '''
EXAMPLES = ''' EXAMPLES = '''
- name: a backend service facts - name: " a backend service facts"
gcp_compute_backend_service_facts: gcp_compute_backend_service_facts:
filters: filters:
- name = test_object - name = test_object
project: test_project project: test_project
auth_kind: serviceaccount auth_kind: serviceaccount
service_account_file: "/tmp/auth.pem" service_account_file: "/tmp/auth.pem"
state: facts
''' '''
RETURN = ''' RETURN = '''
items: resources:
description: List of items description: List of resources
returned: always returned: always
type: complex type: complex
contains: contains:
@ -84,7 +85,6 @@ items:
- Specifies the balancing mode for this backend. - Specifies the balancing mode for this backend.
- For global HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION. - For global HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION.
Valid values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for TCP/SSL). Valid values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for TCP/SSL).
- This cannot be used for internal load balancing.
returned: success returned: success
type: str type: str
capacityScaler: capacityScaler:
@ -95,237 +95,111 @@ items:
configured capacity (depending on balancingMode). A setting of 0 means configured capacity (depending on balancingMode). A setting of 0 means
the group is completely drained, offering 0% of its available Capacity. the group is completely drained, offering 0% of its available Capacity.
Valid range is [0.0,1.0]. Valid range is [0.0,1.0].
- This cannot be used for internal load balancing.
returned: success returned: success
type: str type: str
description: description:
description: description:
- An optional description of this resource. - An optional description of this resource.
- Provide this property when you create the resource. returned: success
returned: success type: str
type: str enable_cdn:
group: description:
description: - If true, enable Cloud CDN for this BackendService.
- This instance group defines the list of instances that serve traffic. - When the load balancing scheme is INTERNAL, this field is not used.
Member virtual machine instances from each instance group must live in returned: success
the same zone as the instance group itself. type: bool
- No two backends in a backend service are allowed to use same Instance health_checks:
Group resource. description:
- When the BackendService has load balancing scheme INTERNAL, the instance - The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health
group must be in a zone within the same region as the BackendService. checking this BackendService. Currently at most one health check can be specified,
returned: success and a health check is required.
type: str - For internal load balancing, a URL to a HealthCheck resource must be specified instead.
maxConnections: returned: success
description: type: list
- The max number of simultaneous connections for the group. Can be used id:
with either CONNECTION or UTILIZATION balancing modes. description:
- For CONNECTION mode, either maxConnections or maxConnectionsPerInstance - The unique identifier for the resource.
must be set. returned: success
- This cannot be used for internal load balancing. type: int
returned: success iap:
type: int description:
maxConnectionsPerInstance: - Settings for enabling Cloud Identity Aware Proxy.
description: returned: success
- The max number of simultaneous connections that a single backend instance type: complex
can handle. This is used to calculate the capacity of the group. Can be contains:
used in either CONNECTION or UTILIZATION balancing modes. enabled:
- For CONNECTION mode, either maxConnections or maxConnectionsPerInstance description:
must be set. - Enables IAP.
- This cannot be used for internal load balancing. returned: success
returned: success type: bool
type: int oauth2_client_id:
maxRate: description:
description: - OAuth2 Client ID for IAP.
- The max requests per second (RPS) of the group. returned: success
- Can be used with either RATE or UTILIZATION balancing modes, but required type: str
if RATE mode. For RATE mode, either maxRate or maxRatePerInstance must oauth2_client_secret:
be set. description:
- This cannot be used for internal load balancing. - OAuth2 Client Secret for IAP.
returned: success returned: success
type: int type: str
maxRatePerInstance: oauth2_client_secret_sha256:
description: description:
- The max requests per second (RPS) that a single backend instance can handle. - OAuth2 Client Secret SHA-256 for IAP.
This is used to calculate the capacity of the group. Can be used in either returned: success
balancing mode. For RATE mode, either maxRate or maxRatePerInstance must type: str
be set. load_balancing_scheme:
- This cannot be used for internal load balancing. description:
returned: success - Indicates whether the backend service will be used with internal or external load
type: str balancing. A backend service created for one type of load balancing cannot be used
maxUtilization: with the other.
description: returned: success
- Used when balancingMode is UTILIZATION. This ratio defines the CPU utilization type: str
target for the group. The default is 0.8. Valid range is [0.0, 1.0]. name:
- This cannot be used for internal load balancing. description:
returned: success - Name of the resource. Provided by the client when the resource is created. The name
type: str must be 1-63 characters long, and comply with RFC1035. Specifically, the name must
cdnPolicy: be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
description: which means the first character must be a lowercase letter, and all following characters
- Cloud CDN configuration for this BackendService. must be a dash, lowercase letter, or digit, except the last character, which cannot
returned: success be a dash.
type: complex returned: success
contains: type: str
cacheKeyPolicy: port_name:
description: description:
- The CacheKeyPolicy for this CdnPolicy. - Name of backend port. The same name should appear in the instance groups referenced
returned: success by this service. Required when the load balancing scheme is EXTERNAL.
type: complex - When the load balancing scheme is INTERNAL, this field is not used.
contains: returned: success
includeHost: type: str
description: protocol:
- If true requests to different hosts will be cached separately. description:
returned: success - The protocol this BackendService uses to communicate with backends.
type: bool - Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
includeProtocol: - For internal load balancing, the possible values are TCP and UDP, and the default
description: is TCP.
- If true, http and https requests will be cached separately. returned: success
returned: success type: str
type: bool region:
includeQueryString: description:
description: - The region where the regional backend service resides.
- If true, include query string parameters in the cache key according - This field is not applicable to global backend services.
to query_string_whitelist and query_string_blacklist. If neither is returned: success
set, the entire query string will be included. type: str
- If false, the query string will be excluded from the cache key entirely. session_affinity:
returned: success description:
type: bool - Type of session affinity to use. The default is NONE.
queryStringBlacklist: - When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or GENERATED_COOKIE.
description: - When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP, CLIENT_IP_PROTO,
- Names of query string parameters to exclude in cache keys. or CLIENT_IP_PORT_PROTO.
- All other parameters will be included. Either specify query_string_whitelist - When the protocol is UDP, this field is not used.
or query_string_blacklist, not both. returned: success
- "'&' and '=' will be percent encoded and not treated as delimiters." type: str
returned: success timeout_sec:
type: list description:
queryStringWhitelist: - How many seconds to wait for the backend before considering it a failed request.
description: Default is 30 seconds. Valid range is [1, 86400].
- Names of query string parameters to include in cache keys. returned: success
- All other parameters will be excluded. Either specify query_string_whitelist type: int
or query_string_blacklist, not both.
- "'&' and '=' will be percent encoded and not treated as delimiters."
returned: success
type: list
connectionDraining:
description:
- Settings for connection draining.
returned: success
type: complex
contains:
drainingTimeoutSec:
description:
- Time for which instance will be drained (not accept new connections, but
still work to finish started).
returned: success
type: int
creationTimestamp:
description:
- Creation timestamp in RFC3339 text format.
returned: success
type: str
description:
description:
- An optional description of this resource.
returned: success
type: str
enableCDN:
description:
- If true, enable Cloud CDN for this BackendService.
- When the load balancing scheme is INTERNAL, this field is not used.
returned: success
type: bool
healthChecks:
description:
- The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for health
checking this BackendService. Currently at most one health check can be specified,
and a health check is required.
- For internal load balancing, a URL to a HealthCheck resource must be specified
instead.
returned: success
type: list
id:
description:
- The unique identifier for the resource.
returned: success
type: int
iap:
description:
- Settings for enabling Cloud Identity Aware Proxy.
returned: success
type: complex
contains:
enabled:
description:
- Enables IAP.
returned: success
type: bool
oauth2ClientId:
description:
- OAuth2 Client ID for IAP.
returned: success
type: str
oauth2ClientSecret:
description:
- OAuth2 Client Secret for IAP.
returned: success
type: str
oauth2ClientSecretSha256:
description:
- OAuth2 Client Secret SHA-256 for IAP.
returned: success
type: str
loadBalancingScheme:
description:
- Indicates whether the backend service will be used with internal or external
load balancing. A backend service created for one type of load balancing cannot
be used with the other.
returned: success
type: str
name:
description:
- Name of the resource. Provided by the client when the resource is created.
The name must be 1-63 characters long, and comply with RFC1035. Specifically,
the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
which means the first character must be a lowercase letter, and all following
characters must be a dash, lowercase letter, or digit, except the last character,
which cannot be a dash.
returned: success
type: str
portName:
description:
- Name of backend port. The same name should appear in the instance groups referenced
by this service. Required when the load balancing scheme is EXTERNAL.
- When the load balancing scheme is INTERNAL, this field is not used.
returned: success
type: str
protocol:
description:
- The protocol this BackendService uses to communicate with backends.
- Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.
- For internal load balancing, the possible values are TCP and UDP, and the
default is TCP.
returned: success
type: str
region:
description:
- The region where the regional backend service resides.
- This field is not applicable to global backend services.
returned: success
type: str
sessionAffinity:
description:
- Type of session affinity to use. The default is NONE.
- When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or GENERATED_COOKIE.
- When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP, CLIENT_IP_PROTO,
or CLIENT_IP_PORT_PROTO.
- When the protocol is UDP, this field is not used.
returned: success
type: str
timeoutSec:
description:
- How many seconds to wait for the backend before considering it a failed request.
Default is 30 seconds. Valid range is [1, 86400].
returned: success
type: int
''' '''
################################################################################ ################################################################################
@ -350,7 +224,7 @@ def main():
items = items.get('items') items = items.get('items')
else: else:
items = [] items = []
return_value = {'items': items} return_value = {'resources': items}
module.exit_json(**return_value) module.exit_json(**return_value)