Skip to content

Commit

Permalink
Go rewrite edgecontainer, edgenetwork, essentialcontacts, filestore, …
Browse files Browse the repository at this point in the history
  • Loading branch information
zli82016 authored and BBBmau committed Aug 21, 2024
1 parent bf25570 commit 5e570a9
Show file tree
Hide file tree
Showing 19 changed files with 2,411 additions and 1 deletion.
529 changes: 529 additions & 0 deletions mmv1/products/edgecontainer/go_Cluster.yaml

Large diffs are not rendered by default.

161 changes: 161 additions & 0 deletions mmv1/products/edgecontainer/go_NodePool.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
# Copyright 2024 Google Inc.
# 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.

# Warning: This is a temporary file, and should not be edited directly
---
name: 'NodePool'
description: |
"A set of Kubernetes nodes in a cluster with common configuration and specification."
references:
guides:
'Google Distributed Cloud Edge': 'https://cloud.google.com/distributed-cloud/edge/latest/docs'
api: 'https://cloud.google.com/distributed-cloud/edge/latest/docs/reference/container/rest/v1/projects.locations.clusters.nodePools'
docs:
base_url: 'projects/{{project}}/locations/{{location}}/clusters/{{cluster}}/nodePools'
self_link: 'projects/{{project}}/locations/{{location}}/clusters/{{cluster}}/nodePools/{{name}}'
create_url: 'projects/{{project}}/locations/{{location}}/clusters/{{cluster}}/nodePools?nodePoolId={{name}}'
update_url: 'projects/{{project}}/locations/{{location}}/clusters/{{cluster}}/nodePools/{{name}}'
update_verb: 'PATCH'
update_mask: true
import_format:
- 'projects/{{project}}/locations/{{location}}/clusters/{{cluster}}/nodePools/{{name}}'
timeouts:
insert_minutes: 480
update_minutes: 480
delete_minutes: 480
autogen_async: true
async:
actions: ['create', 'delete', 'update']
type: 'OpAsync'
operation:
base_url: '{{op_id}}'
path: 'name'
wait_ms: 1000
timeouts:
insert_minutes: 480
update_minutes: 480
delete_minutes: 480
result:
path: 'response'
resource_inside_response: false
error:
path: 'error'
message: 'message'
custom_code:
examples:
- name: 'edgecontainer_node_pool'
primary_resource_id: 'default'
skip_test: true
- name: 'edgecontainer_node_pool_with_cmek'
primary_resource_id: 'default'
skip_test: true
- name: 'edgecontainer_local_control_plane_node_pool'
primary_resource_id: 'default'
skip_test: true
- name: 'edgecontainer_local_control_plane_node_pool_internal'
primary_resource_id: 'default'
skip_test: true
skip_docs: true
skip_vcr: true
parameters:
- name: 'name'
type: String
description: |
The resource name of the node pool.
url_param_only: true
required: true
immutable: true
- name: 'location'
type: String
description: |
The location of the resource.
url_param_only: true
required: true
immutable: true
- name: 'cluster'
type: String
description: |
The name of the target Distributed Cloud Edge Cluster.
url_param_only: true
required: true
immutable: true
properties:
- name: 'createTime'
type: Time
description: |
The time when the node pool was created.
output: true
- name: 'updateTime'
type: Time
description: |
The time when the node pool was last updated.
output: true
- name: 'labels'
type: KeyValueLabels
description: "Labels associated with this resource."
- name: 'nodeLocation'
type: String
description: |
Name of the Google Distributed Cloud Edge zone where this node pool will be created. For example: `us-central1-edge-customer-a`.
required: true
immutable: true
- name: 'nodeCount'
type: Integer
description: |
The number of nodes in the pool.
required: true
- name: 'machineFilter'
type: String
description: |
Only machines matching this filter will be allowed to join the node pool.
The filtering language accepts strings like "name=<name>", and is
documented in more detail in [AIP-160](https://google.aip.dev/160).
default_from_api: true
- name: 'localDiskEncryption'
type: NestedObject
description: |
Local disk encryption options. This field is only used when enabling CMEK support.
properties:
- name: 'kmsKey'
type: String
description: |
The Cloud KMS CryptoKey e.g. projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{cryptoKey} to use for protecting node local disks.
If not specified, a Google-managed key will be used instead.
immutable: true
- name: 'kmsKeyActiveVersion'
type: String
description: |
The Cloud KMS CryptoKeyVersion currently in use for protecting node local disks. Only applicable if kmsKey is set.
output: true
- name: 'kmsKeyState'
type: String
description: |
Availability of the Cloud KMS CryptoKey. If not KEY_AVAILABLE, then nodes may go offline as they cannot access their local data.
This can be caused by a lack of permissions to use the key, or if the key is disabled or deleted.
output: true
- name: 'nodeVersion'
type: String
description: |
The lowest release version among all worker nodes.
output: true
- name: 'nodeConfig'
type: NestedObject
description: |
Configuration for each node in the NodePool
default_from_api: true
properties:
- name: 'labels'
type: KeyValuePairs
description: |
"The Kubernetes node labels"
default_from_api: true
154 changes: 154 additions & 0 deletions mmv1/products/edgecontainer/go_VpnConnection.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# Copyright 2024 Google Inc.
# 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.

# Warning: This is a temporary file, and should not be edited directly
---
name: 'VpnConnection'
description: "A VPN connection"
references:
guides:
'Google Distributed Cloud Edge': 'https://cloud.google.com/distributed-cloud/edge/latest/docs'
api: 'https://cloud.google.com/distributed-cloud/edge/latest/docs/reference/container/rest/v1/projects.locations.vpnConnections'
docs:
base_url: 'projects/{{project}}/locations/{{location}}/vpnConnections'
self_link: 'projects/{{project}}/locations/{{location}}/vpnConnections/{{name}}'
create_url: 'projects/{{project}}/locations/{{location}}/vpnConnections?vpnConnectionId={{name}}'
timeouts:
insert_minutes: 30
update_minutes: 30
delete_minutes: 30
autogen_async: true
async:
actions: ['create', 'delete', 'update']
type: 'OpAsync'
operation:
base_url: '{{op_id}}'
path: 'name'
wait_ms: 1000
timeouts:
insert_minutes: 30
update_minutes: 30
delete_minutes: 30
result:
path: 'response'
resource_inside_response: false
error:
path: 'error'
message: 'message'
custom_code:
examples:
- name: 'edgecontainer_vpn_connection'
primary_resource_id: 'default'
skip_test: true
parameters:
- name: 'name'
type: String
description: |
The resource name of VPN connection
url_param_only: true
required: true
immutable: true
- name: 'location'
type: String
description: |
Google Cloud Platform location.
url_param_only: true
required: true
immutable: true
properties:
- name: 'createTime'
type: Time
description: |
The time when the VPN connection was created.
output: true
- name: 'updateTime'
type: Time
description: |
The time when the VPN connection was last updated.
output: true
- name: 'labels'
type: KeyValueLabels
description: "Labels associated with this resource."
immutable: true
- name: 'natGatewayIp'
type: String
description: |
NAT gateway IP, or WAN IP address. If a customer has multiple NAT IPs, the customer needs to configure NAT such that only one external IP maps to the GMEC Anthos cluster.
This is empty if NAT is not used.
immutable: true
- name: 'cluster'
type: String
description: |
The canonical Cluster name to connect to. It is in the form of projects/{project}/locations/{location}/clusters/{cluster}.
required: true
immutable: true
- name: 'vpc'
type: String
description: |
The network ID of VPC to connect to.
immutable: true
- name: 'vpcProject'
type: NestedObject
description: Project detail of the VPC network. Required if VPC is in a different project than the cluster project.
properties:
- name: 'projectId'
type: String
description: |
The project of the VPC to connect to. If not specified, it is the same as the cluster project.
immutable: true
- name: 'enableHighAvailability'
type: Boolean
description: |
Whether this VPN connection has HA enabled on cluster side. If enabled, when creating VPN connection we will attempt to use 2 ANG floating IPs.
immutable: true
default_from_api: true
- name: 'router'
type: String
description: |
The VPN connection Cloud Router name.
- name: 'details'
type: NestedObject
output: true
properties:
- name: 'state'
type: String
description: |
The current connection state.
output: true
- name: 'error'
type: String
description: |
The error message. This is only populated when state=ERROR.
output: true
- name: 'cloudRouter'
type: NestedObject
description: |
The Cloud Router info.
output: true
properties:
- name: 'name'
type: String
description: |
The associated Cloud Router name.
output: true
- name: 'cloudVpns'
type: NestedObject
description: |
Each connection has multiple Cloud VPN gateways.
output: true
properties:
- name: 'gateway'
type: String
description: |
The created Cloud VPN gateway name.
output: true
22 changes: 22 additions & 0 deletions mmv1/products/edgecontainer/go_product.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Copyright 2024 Google Inc.
# 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.

# Warning: This is a temporary file, and should not be edited directly
---
name: 'Edgecontainer'
display_name: 'Google Distributed Cloud Edge'
versions:
- name: 'ga'
base_url: 'https://edgecontainer.googleapis.com/v1/'
scopes:
- 'https://www.googleapis.com/auth/cloud-platform'
Loading

0 comments on commit 5e570a9

Please sign in to comment.