Skip to content
This repository was archived by the owner on Nov 29, 2023. It is now read-only.

Commit d3f5465

Browse files
feat(v1): update client with new API features (#51)
fix: deprecate SetLocations; use UpdateCluster refactor: provide name alias for GetOperation (as method signature annotation) feat: support for GetJSONWebKeys feat: support for Workload Identity feat: support for Gvisor in nodes feat: support for node reservation affinity feat: support for Customer Managed Encryption in nodes fix: deprecate basic auth fields (removed in 1.19 clusters) feat: support for NodeLocalDNS feat: support for ConfigConnector feat: support for private cluster VPC peering feat: support for CloudRun load balancers feat: support using routes for pod IPs feat: support for Shielded Nodes feat: support for release channels fix: deprecated Cluster/NodePool.status_message; use conditions feat: support for disabling default sNAT feat: operations now store more granular progress feat: support for node Surge Upgrades feat: support for updating node pool locations. feat: support for Node Auto Provisioning feat: support for specifying node disk size and type docs: many minor documentation clarifications
1 parent 2f3ba96 commit d3f5465

File tree

32 files changed

+4191
-1475
lines changed

32 files changed

+4191
-1475
lines changed

.kokoro/docs/common.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ env_vars: {
3030

3131
env_vars: {
3232
key: "V2_STAGING_BUCKET"
33-
value: "docs-staging-v2-staging"
33+
value: "docs-staging-v2"
3434
}
3535

3636
# It will upload the docker image after successful builds.

.kokoro/samples/python3.6/common.cfg

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ env_vars: {
1313
value: "py-3.6"
1414
}
1515

16+
# Declare build specific Cloud project.
17+
env_vars: {
18+
key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
19+
value: "python-docs-samples-tests-py36"
20+
}
21+
1622
env_vars: {
1723
key: "TRAMPOLINE_BUILD_FILE"
1824
value: "github/python-container/.kokoro/test-samples.sh"

.kokoro/samples/python3.7/common.cfg

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ env_vars: {
1313
value: "py-3.7"
1414
}
1515

16+
# Declare build specific Cloud project.
17+
env_vars: {
18+
key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
19+
value: "python-docs-samples-tests-py37"
20+
}
21+
1622
env_vars: {
1723
key: "TRAMPOLINE_BUILD_FILE"
1824
value: "github/python-container/.kokoro/test-samples.sh"

.kokoro/samples/python3.8/common.cfg

+6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ env_vars: {
1313
value: "py-3.8"
1414
}
1515

16+
# Declare build specific Cloud project.
17+
env_vars: {
18+
key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
19+
value: "python-docs-samples-tests-py38"
20+
}
21+
1622
env_vars: {
1723
key: "TRAMPOLINE_BUILD_FILE"
1824
value: "github/python-container/.kokoro/test-samples.sh"

.kokoro/test-samples.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@ if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
2828
git checkout $LATEST_RELEASE
2929
fi
3030

31+
# Exit early if samples directory doesn't exist
32+
if [ ! -d "./samples" ]; then
33+
echo "No tests run. `./samples` not found"
34+
exit 0
35+
fi
36+
3137
# Disable buffering, so that the logs stream through.
3238
export PYTHONUNBUFFERED=1
3339

@@ -101,4 +107,4 @@ cd "$ROOT"
101107
# Workaround for Kokoro permissions issue: delete secrets
102108
rm testing/{test-env.sh,client-secrets.json,service-account.json}
103109

104-
exit "$RTN"
110+
exit "$RTN"

CODE_OF_CONDUCT.md

+87-36
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,95 @@
11
<!-- # Generated by synthtool. DO NOT EDIT! !-->
2-
# Contributor Code of Conduct
2+
# Code of Conduct
33

4-
As contributors and maintainers of this project,
5-
and in the interest of fostering an open and welcoming community,
6-
we pledge to respect all people who contribute through reporting issues,
7-
posting feature requests, updating documentation,
8-
submitting pull requests or patches, and other activities.
4+
## Our Pledge
95

10-
We are committed to making participation in this project
11-
a harassment-free experience for everyone,
12-
regardless of level of experience, gender, gender identity and expression,
13-
sexual orientation, disability, personal appearance,
14-
body size, race, ethnicity, age, religion, or nationality.
6+
In the interest of fostering an open and welcoming environment, we as
7+
contributors and maintainers pledge to making participation in our project and
8+
our community a harassment-free experience for everyone, regardless of age, body
9+
size, disability, ethnicity, gender identity and expression, level of
10+
experience, education, socio-economic status, nationality, personal appearance,
11+
race, religion, or sexual identity and orientation.
12+
13+
## Our Standards
14+
15+
Examples of behavior that contributes to creating a positive environment
16+
include:
17+
18+
* Using welcoming and inclusive language
19+
* Being respectful of differing viewpoints and experiences
20+
* Gracefully accepting constructive criticism
21+
* Focusing on what is best for the community
22+
* Showing empathy towards other community members
1523

1624
Examples of unacceptable behavior by participants include:
1725

18-
* The use of sexualized language or imagery
19-
* Personal attacks
20-
* Trolling or insulting/derogatory comments
21-
* Public or private harassment
22-
* Publishing other's private information,
23-
such as physical or electronic
24-
addresses, without explicit permission
25-
* Other unethical or unprofessional conduct.
26+
* The use of sexualized language or imagery and unwelcome sexual attention or
27+
advances
28+
* Trolling, insulting/derogatory comments, and personal or political attacks
29+
* Public or private harassment
30+
* Publishing others' private information, such as a physical or electronic
31+
address, without explicit permission
32+
* Other conduct which could reasonably be considered inappropriate in a
33+
professional setting
34+
35+
## Our Responsibilities
36+
37+
Project maintainers are responsible for clarifying the standards of acceptable
38+
behavior and are expected to take appropriate and fair corrective action in
39+
response to any instances of unacceptable behavior.
2640

2741
Project maintainers have the right and responsibility to remove, edit, or reject
28-
comments, commits, code, wiki edits, issues, and other contributions
29-
that are not aligned to this Code of Conduct.
30-
By adopting this Code of Conduct,
31-
project maintainers commit themselves to fairly and consistently
32-
applying these principles to every aspect of managing this project.
33-
Project maintainers who do not follow or enforce the Code of Conduct
34-
may be permanently removed from the project team.
35-
36-
This code of conduct applies both within project spaces and in public spaces
37-
when an individual is representing the project or its community.
38-
39-
Instances of abusive, harassing, or otherwise unacceptable behavior
40-
may be reported by opening an issue
41-
or contacting one or more of the project maintainers.
42-
43-
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0,
44-
available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/)
42+
comments, commits, code, wiki edits, issues, and other contributions that are
43+
not aligned to this Code of Conduct, or to ban temporarily or permanently any
44+
contributor for other behaviors that they deem inappropriate, threatening,
45+
offensive, or harmful.
46+
47+
## Scope
48+
49+
This Code of Conduct applies both within project spaces and in public spaces
50+
when an individual is representing the project or its community. Examples of
51+
representing a project or community include using an official project e-mail
52+
address, posting via an official social media account, or acting as an appointed
53+
representative at an online or offline event. Representation of a project may be
54+
further defined and clarified by project maintainers.
55+
56+
This Code of Conduct also applies outside the project spaces when the Project
57+
Steward has a reasonable belief that an individual's behavior may have a
58+
negative impact on the project or its community.
59+
60+
## Conflict Resolution
61+
62+
We do not believe that all conflict is bad; healthy debate and disagreement
63+
often yield positive results. However, it is never okay to be disrespectful or
64+
to engage in behavior that violates the project’s code of conduct.
65+
66+
If you see someone violating the code of conduct, you are encouraged to address
67+
the behavior directly with those involved. Many issues can be resolved quickly
68+
and easily, and this gives people more control over the outcome of their
69+
dispute. If you are unable to resolve the matter for any reason, or if the
70+
behavior is threatening or harassing, report it. We are dedicated to providing
71+
an environment where participants feel welcome and safe.
72+
73+
74+
Reports should be directed to *[email protected]*, the
75+
Project Steward(s) for *Google Cloud Client Libraries*. It is the Project Steward’s duty to
76+
receive and address reported violations of the code of conduct. They will then
77+
work with a committee consisting of representatives from the Open Source
78+
Programs Office and the Google Open Source Strategy team. If for any reason you
79+
are uncomfortable reaching out to the Project Steward, please email
80+
81+
82+
We will investigate every complaint, but you may not receive a direct response.
83+
We will use our discretion in determining when and how to follow up on reported
84+
incidents, which may range from not taking action to permanent expulsion from
85+
the project and project-sponsored spaces. We will notify the accused of the
86+
report and provide them an opportunity to discuss it before any action is taken.
87+
The identity of the reporter will be omitted from the details of the report
88+
supplied to the accused. In potentially harmful situations, such as ongoing
89+
harassment or threats to anyone's safety, we may take action without notice.
90+
91+
## Attribution
92+
93+
This Code of Conduct is adapted from the Contributor Covenant, version 1.4,
94+
available at
95+
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

CONTRIBUTING.rst

-19
Original file line numberDiff line numberDiff line change
@@ -80,25 +80,6 @@ We use `nox <https://nox.readthedocs.io/en/latest/>`__ to instrument our tests.
8080

8181
.. nox: https://pypi.org/project/nox/
8282
83-
Note on Editable Installs / Develop Mode
84-
========================================
85-
86-
- As mentioned previously, using ``setuptools`` in `develop mode`_
87-
or a ``pip`` `editable install`_ is not possible with this
88-
library. This is because this library uses `namespace packages`_.
89-
For context see `Issue #2316`_ and the relevant `PyPA issue`_.
90-
91-
Since ``editable`` / ``develop`` mode can't be used, packages
92-
need to be installed directly. Hence your changes to the source
93-
tree don't get incorporated into the **already installed**
94-
package.
95-
96-
.. _namespace packages: https://www.python.org/dev/peps/pep-0420/
97-
.. _Issue #2316: https://github.com/GoogleCloudPlatform/google-cloud-python/issues/2316
98-
.. _PyPA issue: https://github.com/pypa/packaging-problems/issues/12
99-
.. _develop mode: https://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode
100-
.. _editable install: https://pip.pypa.io/en/stable/reference/pip_install/#editable-installs
101-
10283
*****************************************
10384
I'm getting weird errors... Can you help?
10485
*****************************************

docs/conf.py

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"sphinx.ext.autosummary",
4040
"sphinx.ext.intersphinx",
4141
"sphinx.ext.coverage",
42+
"sphinx.ext.doctest",
4243
"sphinx.ext.napoleon",
4344
"sphinx.ext.todo",
4445
"sphinx.ext.viewcode",
@@ -348,6 +349,7 @@
348349
"google-auth": ("https://google-auth.readthedocs.io/en/stable", None),
349350
"google.api_core": ("https://googleapis.dev/python/google-api-core/latest/", None,),
350351
"grpc": ("https://grpc.io/grpc/python/", None),
352+
"proto-plus": ("https://proto-plus-python.readthedocs.io/en/latest/", None),
351353
}
352354

353355

docs/container_v1/types.rst

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ Types for Google Container v1 API
33

44
.. automodule:: google.cloud.container_v1.types
55
:members:
6+
:show-inheritance:

docs/container_v1beta1/types.rst

+1
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@ Types for Google Container v1beta1 API
33

44
.. automodule:: google.cloud.container_v1beta1.types
55
:members:
6+
:show-inheritance:

google/cloud/container/__init__.py

+34
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,28 @@
3636
from google.cloud.container_v1.types.cluster_service import ClusterAutoscaling
3737
from google.cloud.container_v1.types.cluster_service import ClusterUpdate
3838
from google.cloud.container_v1.types.cluster_service import CompleteIPRotationRequest
39+
from google.cloud.container_v1.types.cluster_service import ConfigConnectorConfig
3940
from google.cloud.container_v1.types.cluster_service import CreateClusterRequest
4041
from google.cloud.container_v1.types.cluster_service import CreateNodePoolRequest
4142
from google.cloud.container_v1.types.cluster_service import DailyMaintenanceWindow
4243
from google.cloud.container_v1.types.cluster_service import DatabaseEncryption
44+
from google.cloud.container_v1.types.cluster_service import DefaultSnatStatus
4345
from google.cloud.container_v1.types.cluster_service import DeleteClusterRequest
4446
from google.cloud.container_v1.types.cluster_service import DeleteNodePoolRequest
47+
from google.cloud.container_v1.types.cluster_service import DnsCacheConfig
4548
from google.cloud.container_v1.types.cluster_service import GetClusterRequest
49+
from google.cloud.container_v1.types.cluster_service import GetJSONWebKeysRequest
50+
from google.cloud.container_v1.types.cluster_service import GetJSONWebKeysResponse
4651
from google.cloud.container_v1.types.cluster_service import GetNodePoolRequest
52+
from google.cloud.container_v1.types.cluster_service import GetOpenIDConfigRequest
53+
from google.cloud.container_v1.types.cluster_service import GetOpenIDConfigResponse
4754
from google.cloud.container_v1.types.cluster_service import GetOperationRequest
4855
from google.cloud.container_v1.types.cluster_service import GetServerConfigRequest
4956
from google.cloud.container_v1.types.cluster_service import HorizontalPodAutoscaling
5057
from google.cloud.container_v1.types.cluster_service import HttpLoadBalancing
5158
from google.cloud.container_v1.types.cluster_service import IPAllocationPolicy
5259
from google.cloud.container_v1.types.cluster_service import IntraNodeVisibilityConfig
60+
from google.cloud.container_v1.types.cluster_service import Jwk
5361
from google.cloud.container_v1.types.cluster_service import KubernetesDashboard
5462
from google.cloud.container_v1.types.cluster_service import LegacyAbac
5563
from google.cloud.container_v1.types.cluster_service import ListClustersRequest
@@ -78,13 +86,20 @@
7886
from google.cloud.container_v1.types.cluster_service import NodePoolAutoscaling
7987
from google.cloud.container_v1.types.cluster_service import NodeTaint
8088
from google.cloud.container_v1.types.cluster_service import Operation
89+
from google.cloud.container_v1.types.cluster_service import OperationProgress
8190
from google.cloud.container_v1.types.cluster_service import PrivateClusterConfig
91+
from google.cloud.container_v1.types.cluster_service import (
92+
PrivateClusterMasterGlobalAccessConfig,
93+
)
8294
from google.cloud.container_v1.types.cluster_service import RecurringTimeWindow
95+
from google.cloud.container_v1.types.cluster_service import ReleaseChannel
96+
from google.cloud.container_v1.types.cluster_service import ReservationAffinity
8397
from google.cloud.container_v1.types.cluster_service import ResourceLimit
8498
from google.cloud.container_v1.types.cluster_service import ResourceUsageExportConfig
8599
from google.cloud.container_v1.types.cluster_service import (
86100
RollbackNodePoolUpgradeRequest,
87101
)
102+
from google.cloud.container_v1.types.cluster_service import SandboxConfig
88103
from google.cloud.container_v1.types.cluster_service import ServerConfig
89104
from google.cloud.container_v1.types.cluster_service import SetAddonsConfigRequest
90105
from google.cloud.container_v1.types.cluster_service import SetLabelsRequest
@@ -101,6 +116,7 @@
101116
from google.cloud.container_v1.types.cluster_service import SetNodePoolManagementRequest
102117
from google.cloud.container_v1.types.cluster_service import SetNodePoolSizeRequest
103118
from google.cloud.container_v1.types.cluster_service import ShieldedInstanceConfig
119+
from google.cloud.container_v1.types.cluster_service import ShieldedNodes
104120
from google.cloud.container_v1.types.cluster_service import StartIPRotationRequest
105121
from google.cloud.container_v1.types.cluster_service import StatusCondition
106122
from google.cloud.container_v1.types.cluster_service import TimeWindow
@@ -112,6 +128,8 @@
112128
UsableSubnetworkSecondaryRange,
113129
)
114130
from google.cloud.container_v1.types.cluster_service import VerticalPodAutoscaling
131+
from google.cloud.container_v1.types.cluster_service import WorkloadIdentityConfig
132+
from google.cloud.container_v1.types.cluster_service import WorkloadMetadataConfig
115133

116134
__all__ = (
117135
"AcceleratorConfig",
@@ -129,20 +147,28 @@
129147
"ClusterManagerClient",
130148
"ClusterUpdate",
131149
"CompleteIPRotationRequest",
150+
"ConfigConnectorConfig",
132151
"CreateClusterRequest",
133152
"CreateNodePoolRequest",
134153
"DailyMaintenanceWindow",
135154
"DatabaseEncryption",
155+
"DefaultSnatStatus",
136156
"DeleteClusterRequest",
137157
"DeleteNodePoolRequest",
158+
"DnsCacheConfig",
138159
"GetClusterRequest",
160+
"GetJSONWebKeysRequest",
161+
"GetJSONWebKeysResponse",
139162
"GetNodePoolRequest",
163+
"GetOpenIDConfigRequest",
164+
"GetOpenIDConfigResponse",
140165
"GetOperationRequest",
141166
"GetServerConfigRequest",
142167
"HorizontalPodAutoscaling",
143168
"HttpLoadBalancing",
144169
"IPAllocationPolicy",
145170
"IntraNodeVisibilityConfig",
171+
"Jwk",
146172
"KubernetesDashboard",
147173
"LegacyAbac",
148174
"ListClustersRequest",
@@ -167,11 +193,16 @@
167193
"NodePoolAutoscaling",
168194
"NodeTaint",
169195
"Operation",
196+
"OperationProgress",
170197
"PrivateClusterConfig",
198+
"PrivateClusterMasterGlobalAccessConfig",
171199
"RecurringTimeWindow",
200+
"ReleaseChannel",
201+
"ReservationAffinity",
172202
"ResourceLimit",
173203
"ResourceUsageExportConfig",
174204
"RollbackNodePoolUpgradeRequest",
205+
"SandboxConfig",
175206
"ServerConfig",
176207
"SetAddonsConfigRequest",
177208
"SetLabelsRequest",
@@ -186,6 +217,7 @@
186217
"SetNodePoolManagementRequest",
187218
"SetNodePoolSizeRequest",
188219
"ShieldedInstanceConfig",
220+
"ShieldedNodes",
189221
"StartIPRotationRequest",
190222
"StatusCondition",
191223
"TimeWindow",
@@ -195,4 +227,6 @@
195227
"UsableSubnetwork",
196228
"UsableSubnetworkSecondaryRange",
197229
"VerticalPodAutoscaling",
230+
"WorkloadIdentityConfig",
231+
"WorkloadMetadataConfig",
198232
)

0 commit comments

Comments
 (0)