Skip to content

Commit 1532b9a

Browse files
authored
feat: Improve SKE, Postgres, RabbitMQ, Redis examples (#434)
1 parent 44cb8e8 commit 1532b9a

11 files changed

+50
-72
lines changed

examples/postgresflex/create_instances.py renamed to examples/postgresflex/create_instance.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import os
22

3+
from stackit.core.configuration import Configuration
34
from stackit.postgresflex.api.default_api import DefaultApi
4-
from stackit.postgresflex.models.create_instance_payload import CreateInstancePayload
55
from stackit.postgresflex.models.acl import ACL
6+
from stackit.postgresflex.models.create_instance_payload import CreateInstancePayload
67
from stackit.postgresflex.models.storage import Storage
7-
from stackit.core.configuration import Configuration
88

99
project_id = os.getenv("PROJECT_ID")
10-
storage_class = "premium-perf2-stackit"
1110

1211
# Create a new API client, that uses default authentication and configuration
1312
config = Configuration()
@@ -21,10 +20,11 @@
2120
name="example-instance",
2221
backupSchedule="0 0 1 * *",
2322
acl=ACL(items=["45.129.40.0/21", "193.148.160.0/19"]),
24-
storage=Storage(var_class=storage_class, size=20),
23+
storage=Storage(var_class="premium-perf2-stackit", size=20),
2524
flavorId=flavor_response.flavors[0].id,
2625
replicas=1,
2726
version="16",
2827
options={"type": "Single"},
2928
)
30-
client.create_instance(project_id, create_instance_payload)
29+
instance = client.create_instance(project_id, create_instance_payload)
30+
print("Created instance with ID: " + instance.id)
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
import os
22

3-
from stackit.postgresflex.api.default_api import DefaultApi
43
from stackit.core.configuration import Configuration
4+
from stackit.postgresflex.api.default_api import DefaultApi
55

66
project_id = os.getenv("PROJECT_ID")
7+
instance_id = "INSTANCE_ID"
78

89
# Create a new API client, that uses default authentication and configuration
910
config = Configuration()
1011
client = DefaultApi(config)
1112

12-
# List all postgresflex instances
13-
response = client.list_instances(project_id)
14-
15-
# Delete all instances
16-
for instance in response.items:
17-
client.delete_instance(project_id, instance.id)
13+
# Delete an instances
14+
client.delete_instance(project_id, instance_id)
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import os
22

3+
from stackit.core.configuration import Configuration
34
from stackit.rabbitmq.api.default_api import DefaultApi
45
from stackit.rabbitmq.models.create_instance_payload import CreateInstancePayload
56

6-
from stackit.core.configuration import Configuration
7-
87
project_id = os.getenv("PROJECT_ID")
9-
storage_class = "premium-perf2-stackit"
108

119
# Create a new API client, that uses default authentication and configuration
1210
config = Configuration()
@@ -17,7 +15,8 @@
1715

1816
# Create instance using the first flvaor
1917
create_instance_payload = CreateInstancePayload(
20-
instance_name="exampleInstance",
18+
instance_name="example-instance",
2119
plan_id=response.offerings[0].plans[0].id,
2220
)
23-
client.create_instance(project_id, create_instance_payload)
21+
instance = client.create_instance(project_id, create_instance_payload)
22+
print("Created instance with ID: " + instance.instance_id)
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
import os
22

3-
from stackit.rabbitmq.api.default_api import DefaultApi
43
from stackit.core.configuration import Configuration
4+
from stackit.rabbitmq.api.default_api import DefaultApi
55

66
project_id = os.getenv("PROJECT_ID")
7+
instance_id = "INSTANCE_ID"
78

89
# Create a new API client, that uses default authentication and configuration
910
config = Configuration()
1011
client = DefaultApi(config)
1112

12-
# List all rabbitmq instances
13-
response = client.list_instances(project_id)
14-
15-
# Delete all instances
16-
for instance in response.instances:
17-
client.delete_instance(project_id, instance.cf_guid)
13+
# Delete an instance
14+
client.delete_instance(project_id, instance_id)

examples/redis/create_instance.py

+7-9
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
11
import os
22

3+
from stackit.core.configuration import Configuration
34
from stackit.redis.api.default_api import DefaultApi
45
from stackit.redis.models.create_instance_payload import CreateInstancePayload
5-
from stackit.core.configuration import Configuration
66

77
project_id = os.getenv("PROJECT_ID")
88

99
config = Configuration()
1010
client = DefaultApi(config)
1111

12-
# check out all available offerings
12+
# Check out all available offerings
1313
available_offerings = client.list_offerings(project_id)
1414

15-
# take the first available plan id
15+
# Take the first available plan id
1616
offering_id = available_offerings.offerings[0].plans[0].id
1717
payload = CreateInstancePayload(
18-
instance_name="Test Instance",
18+
instance_name="test-instance",
1919
plan_id=offering_id,
2020
)
2121

22-
# create the instance
23-
response = client.create_instance(project_id, payload)
24-
instance_id = response.instance_id
25-
26-
print(f"Instance with id:{instance_id} has been created.")
22+
# Create the instance
23+
instance = client.create_instance(project_id, payload)
24+
print("Created instance with ID: " + instance.instance_id)
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
import os
22

3-
from stackit.redis.api.default_api import DefaultApi
43
from stackit.core.configuration import Configuration
5-
4+
from stackit.redis.api.default_api import DefaultApi
65

76
project_id = os.getenv("PROJECT_ID")
7+
instance_id = "INSTANCE_ID"
88

99
config = Configuration()
1010
client = DefaultApi(config)
1111

12-
# get all instances
13-
response = client.list_instances(project_id)
14-
15-
# delete all instances
16-
for instance in response.instances:
17-
client.delete_instance(project_id=project_id, instance_id=instance.cf_guid)
12+
# Delete an instance
13+
client.delete_instance(project_id=project_id, instance_id=instance_id)

examples/redis/list_instances.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
import os
22

3-
from stackit.redis.api.default_api import DefaultApi
43
from stackit.core.configuration import Configuration
5-
4+
from stackit.redis.api.default_api import DefaultApi
65

76
project_id = os.getenv("PROJECT_ID")
87

98
config = Configuration()
109
client = DefaultApi(config)
1110

12-
# get all instances
11+
# Get all instances
1312
print(client.list_instances(project_id))

examples/resourcemanager/list_projects.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22

3-
from stackit.resourcemanager.api.default_api import DefaultApi
43
from stackit.core.configuration import Configuration
4+
from stackit.resourcemanager.api.default_api import DefaultApi
55

66
project_id = os.getenv("PROJECT_ID")
77

examples/ske/create_cluster.py

+14-19
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,45 @@
11
import os
22

3+
from stackit.core.configuration import Configuration
34
from stackit.ske.api.default_api import DefaultApi
45
from stackit.ske.models.create_or_update_cluster_payload import (
56
CreateOrUpdateClusterPayload,
67
)
8+
from stackit.ske.models.image import Image
79
from stackit.ske.models.kubernetes import Kubernetes
8-
from stackit.ske.models.nodepool import Nodepool
910
from stackit.ske.models.machine import Machine
11+
from stackit.ske.models.nodepool import Nodepool
1012
from stackit.ske.models.volume import Volume
11-
from stackit.ske.models.image import Image
12-
13-
from stackit.core.configuration import Configuration
14-
1513

1614
project_id = os.getenv("PROJECT_ID")
17-
volume_type = "storage_premium_perf0"
1815

1916
# Create a new API client, that uses default authentication and configuration
2017
config = Configuration()
2118
client = DefaultApi(config)
2219

23-
# Get available options
24-
options_resonse = client.list_provider_options()
25-
26-
# Create a new instance using the first option for everything
27-
cluser_name = "cl-name"
28-
create_instance_payload = CreateOrUpdateClusterPayload(
29-
kubernetes=Kubernetes(version=options_resonse.kubernetes_versions[0].version),
20+
# Create a new cluster
21+
cluster_name = "my-cl"
22+
create_cluster_payload = CreateOrUpdateClusterPayload(
23+
kubernetes=Kubernetes(version="1.30.6"),
3024
nodepools=[
3125
Nodepool(
32-
availability_zones=[options_resonse.availability_zones[0].name],
26+
availability_zones=["eu01-3"],
3327
machine=Machine(
3428
image=Image(
35-
name=options_resonse.machine_images[0].name,
36-
version=options_resonse.machine_images[0].versions[0].version,
29+
name="ubuntu",
30+
version="2204.20240912.0",
3731
),
38-
type=options_resonse.machine_types[0].name,
32+
type="b1.2",
3933
),
4034
maximum=3,
4135
minimum=2,
4236
name="my-nodepool",
4337
volume=Volume(
4438
size=20,
45-
type=volume_type,
39+
type="storage_premium_perf0",
4640
),
4741
)
4842
],
4943
)
50-
client.create_or_update_cluster(project_id, cluser_name, create_instance_payload)
44+
cluster = client.create_or_update_cluster(project_id, cluster_name, create_cluster_payload)
45+
print("Created cluster with name: " + cluster.name)
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
import os
22

3-
from stackit.ske.api.default_api import DefaultApi
43
from stackit.core.configuration import Configuration
4+
from stackit.ske.api.default_api import DefaultApi
55

66
project_id = os.getenv("PROJECT_ID")
7+
cluster_name = "CLUSTER_NAME"
78

89
# Create a new API client, that uses default authentication and configuration
910
config = Configuration()
1011
client = DefaultApi(config)
1112

12-
# List all ske clusters
13-
response = client.list_clusters(project_id)
14-
15-
# Delete all cluster
16-
for cluster in response.items:
17-
client.delete_cluster(project_id, cluster.name)
13+
# Delete a cluster
14+
client.delete_cluster(project_id, cluster_name)

examples/ske/list_clusters.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import os
22

3-
from stackit.ske.api.default_api import DefaultApi
43
from stackit.core.configuration import Configuration
4+
from stackit.ske.api.default_api import DefaultApi
55

66
project_id = os.getenv("PROJECT_ID")
77

0 commit comments

Comments
 (0)