diff --git a/CHANGELOG.md b/CHANGELOG.md
index 35890561..df4270c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
+## [3.10.0] - 2024-07-04
+### Added
+- Added `initialNodes` query parameter for Ocean GKE `create_virtual_node_group` API.
+
## [3.9.1] - 2024-06-28
### Fixed
- Made few parameter objects in `create_right_sizing_rule` to optional (For internal use only).
diff --git a/docs/clients/ocean/ocean_gcp_client.md b/docs/clients/ocean/ocean_gcp_client.md
index 897feb27..65d11265 100644
--- a/docs/clients/ocean/ocean_gcp_client.md
+++ b/docs/clients/ocean/ocean_gcp_client.md
@@ -202,7 +202,8 @@ __Returns__
create_virtual_node_group
```python
-OceanGcpClient.create_virtual_node_group(vng: VirtualNodeGroup)
+OceanGcpClient.create_virtual_node_group(vng: VirtualNodeGroup,
+ initial_nodes: int = None)
```
Create a virtual node group.
@@ -210,6 +211,7 @@ Create a virtual node group.
__Arguments__
- __vng (VirtualNodeGroup)__: VirtualNodeGroup Object
+- __initial_nodes__: When set to an integer greater than 0, a corresponding number of nodes will be launched from the virtual node group created.
__Returns__
diff --git a/spotinst_sdk2/clients/ocean/__init__.py b/spotinst_sdk2/clients/ocean/__init__.py
index d8b6941b..530ef49d 100644
--- a/spotinst_sdk2/clients/ocean/__init__.py
+++ b/spotinst_sdk2/clients/ocean/__init__.py
@@ -1820,6 +1820,8 @@ def get_aggregated_summary_costs(self, ocean_id: str, aggregated_cluster_costs:
# endregion
# region GCP
+
+
class OceanGcpClient(Client):
__base_ocean_url = "/ocean/k8s/cluster/"
__base_ocean_cluster_url = "/ocean/gcp/k8s/cluster"
@@ -2108,12 +2110,13 @@ def get_aggregated_summary_costs(self, ocean_id: str, aggregated_cluster_costs:
return formatted_response["response"]["items"][0]
- def create_virtual_node_group(self, vng: gcp_ocean.VirtualNodeGroup):
+ def create_virtual_node_group(self, vng: gcp_ocean.VirtualNodeGroup, initial_nodes: int = None):
"""
Create a virtual node group.
# Arguments
vng (VirtualNodeGroup): VirtualNodeGroup Object
+ initial_nodes: When set to an integer greater than 0, a corresponding number of nodes will be launched from the virtual node group created.
# Returns
(Object): Ocean Launch Spec response
@@ -2128,10 +2131,13 @@ def create_virtual_node_group(self, vng: gcp_ocean.VirtualNodeGroup):
body_json = json.dumps(formatted_missing_dict)
- response = self.send_post(
+ query_params = dict(initialNodes=initial_nodes)
+
+ response = self.send_post_with_params(
body=body_json,
url=self.__base_ocean_launchspec_url,
- entity_name='ocean_gcp_vng')
+ entity_name='ocean_gcp_vng',
+ user_query_params=query_params)
formatted_response = self.convert_json(response,
self.camel_to_underscore)
@@ -2480,6 +2486,8 @@ def launch_nodes_in_vng(self, ocean_launch_spec_id: str, amount: int):
# endRegion
# region RightSizing
+
+
class OceanRightSizingClient(Client):
def create_right_sizing_rule(self, ocean_id: str, rule_name: str, restart_pods: bool,
diff --git a/spotinst_sdk2/version.py b/spotinst_sdk2/version.py
index d0282444..3f3750c9 100644
--- a/spotinst_sdk2/version.py
+++ b/spotinst_sdk2/version.py
@@ -1 +1 @@
-__version__ = '3.9.1'
+__version__ = '3.10.0'