Add ability to create clusters

This commit is contained in:
2018-12-01 13:13:40 -08:00
parent 0c4bae674b
commit 195bd8adca
3 changed files with 59 additions and 0 deletions
+3
View File
@@ -108,6 +108,9 @@ class Bootnode(object):
print(pod.block_number())
# Cluster
def create_cluster(self, chain, network):
print(self.gcloud.create_cluster("{}-{}".format(chain, network)))
def list_clusters(self):
table(self.gcloud.list_clusters(), 'name', 'status', 'ip',
'node_count', 'version')
+51
View File
@@ -275,6 +275,57 @@ class Gcloud(object):
name = "{0}-{1}-{2}".format(pod.client, pod.network, pod.block_number())
return self.snapshot_disk(pod.disk, name, pod_name=pod.name)
def create_cluster(self, name, zone=None, retry=None, timeout=None):
"""
Creates a new GKE cluster using NEG.
"""
# gcloud container clusters create neg-demo-cluster \
# --enable-ip-alias \
# --create-subnetwork="" \
# --network=default \
# --zone=us-central1-a
if not zone:
zone = self.zone
cluster = {
"name": name,
# "description": description,
"initial_node_count": 1,
"node_config": {
"machine_type": "n1-standard-2",
"disk_size_gb": 100,
"disk_type": "pd-ssd",
"min_cpu_platform": "Intel Skylake",
"oauth_scopes": [
"https://www.googleapis.com/auth/compute",
"https://www.googleapis.com/auth/devstorage.read_only",
],
},
"logging_service": "logging.googleapis.com",
"monitoring_service": "monitoring.googleapis.com",
"ip_allocation_policy": {
"use_ip_aliases": True,
"create_subnetwork": True,
},
# "node_pool_autoscaling": {
# "enabled": True,
# "min_node_count: 1,
# "max_node_count: 10,
# },
"addons_config": {
"horizontal_pod_autoscaling": {
"disabled": False,
},
"http_load_balancing": {
"disabled": False,
},
"kubernetes_dashboard": {
"disabled": False,
},
},
}
return self.gke_api.create_cluster(self.project, zone, cluster)
# Clusters
def list_clusters(self, project=None, zone=None, retry=None, timeout=None):
"""
+5
View File
@@ -94,6 +94,11 @@ def parser():
get_block_number.set_defaults(command='get_block_number')
# Clusters
create_cluster = subparsers.add_parser('create-cluster', help='Create a new cluster')
create_cluster.add_argument('chain', help='Chain used by this cluster')
create_cluster.add_argument('network', help='Network used by this cluster')
create_cluster.set_defaults(command='create_cluster')
list_clusters = subparsers.add_parser('clusters', help='List clusters')
list_clusters.set_defaults(command='list_clusters')