From 95c9799dc024ab10a3c7c0e1de9027610475b385 Mon Sep 17 00:00:00 2001
From: David Lazarevic <141435284+davidlazch@users.noreply.github.com>
Date: Wed, 28 May 2025 10:54:30 +0200
Subject: [PATCH] exo*: add pages (#16405)
---
pages/common/exo-compute-block-storage.md | 32 ++++++++++++++++++++
pages/common/exo-compute-instance.md | 36 +++++++++++++++++++++++
pages/common/exo-compute-sks.md | 36 +++++++++++++++++++++++
pages/common/exo-compute.md | 33 +++++++++++++++++++++
pages/common/exo-dbaas.md | 28 ++++++++++++++++++
pages/common/exo-iam.md | 24 +++++++++++++++
pages/common/exo-storage.md | 24 +++++++++++++++
pages/common/exo.md | 29 ++++++++++++++++++
8 files changed, 242 insertions(+)
create mode 100644 pages/common/exo-compute-block-storage.md
create mode 100644 pages/common/exo-compute-instance.md
create mode 100644 pages/common/exo-compute-sks.md
create mode 100644 pages/common/exo-compute.md
create mode 100644 pages/common/exo-dbaas.md
create mode 100644 pages/common/exo-iam.md
create mode 100644 pages/common/exo-storage.md
create mode 100644 pages/common/exo.md
diff --git a/pages/common/exo-compute-block-storage.md b/pages/common/exo-compute-block-storage.md
new file mode 100644
index 0000000000..b93dd99fa7
--- /dev/null
+++ b/pages/common/exo-compute-block-storage.md
@@ -0,0 +1,32 @@
+# exo compute block-storage
+
+> Manage the Exoscale Block Storage service.
+> More information: .
+
+- Create a 20GB Block Storage Volume:
+
+`exo compute block-storage create {{volume_name}} --size 20 {{[-z|--zone]}} {{zone}}`
+
+- List Block Storage Volumes:
+
+`exo compute block-storage list`
+
+- Attach a Block Storage Volume to a Compute instance:
+
+`exo compute block-storage attach {{volume_name|id}} {{instance_name|id}} {{[-z|--zone]}} {{zone}}`
+
+- Forcefully detach a Block Storage Volume (does not require confirmation):
+
+`exo compute block-storage detach {{volume_name|id}} {{[-z|--zone]}} {{zone}} {{[-f|--force]}}`
+
+- Create a snapshot of a Block Storage Volume:
+
+`exo compute block-storage snapshot create {{volume_name|id}} --name {{snapshot_name}} {{[-z|--zone]}} {{zone}}`
+
+- Create a Block Storage Volume from a snapshot:
+
+`exo compute block-storage create {{volume_name}} --snapshot {{snapshot_name|id}} {{[-z|--zone]}} {{zone}}`
+
+- Update an existing Block Storage Volume with a new name and a new volume size of 30GB:
+
+`exo compute block-storage update {{volume_name|id}} --size 30 --name {{new_name}}`
diff --git a/pages/common/exo-compute-instance.md b/pages/common/exo-compute-instance.md
new file mode 100644
index 0000000000..748e817e87
--- /dev/null
+++ b/pages/common/exo-compute-instance.md
@@ -0,0 +1,36 @@
+# exo compute instance
+
+> Manage Exoscale Compute instances.
+> More information: .
+
+- Create a Debian based Compute instance with a disk size of 10GB:
+
+`exo compute instance create --disk-size 10 {{instance_name}} {{[-z|--zone]}} {{zone}} --template '{{Linux Debian 12 (Bookworm) 64-bit}}'`
+
+- Log into a Compute instance via SSH:
+
+`exo compute instance ssh {{instance_name|id}}`
+
+- List all of the Compute instances:
+
+`exo compute instance list`
+
+- Add an instance to a Security Group:
+
+`exo compute instance security-group add {{instance_name|id}} {{security_group_name|id}}`
+
+- Scale the size of a Compute instance:
+
+`exo compute instance scale {{instance_name|id}} {{instance_type}}`
+
+- Create a snapshot of a Compute instance:
+
+`exo compute instance snapshot create {{instance_name|id}}`
+
+- Revert a Compute instance to a snapshot (the data written after the snapshot has been created will be lost):
+
+`exo compute instance snapshot revert {{snapshot_id}} {{instance_name|id}}`
+
+- Resize the disk size of a Compute instance to 20GB:
+
+`exo compute instance resize-disk {{instance_name|id}} 20`
diff --git a/pages/common/exo-compute-sks.md b/pages/common/exo-compute-sks.md
new file mode 100644
index 0000000000..2f457edfc2
--- /dev/null
+++ b/pages/common/exo-compute-sks.md
@@ -0,0 +1,36 @@
+# exo compute sks
+
+> Manage the Exoscale Scalable Kubernetes Service (SKS).
+> More information: .
+
+- List the supported SKS cluster versions:
+
+`exo compute sks versions`
+
+- Create a new SKS cluster:
+
+`exo compute sks create {{cluster_name}} {{[-z|--zone]}} {{zone}}`
+
+- List all SKS clusters:
+
+`exo compute sks list`
+
+- Generate a Kubernetes kubeconfig file for an SKS cluster that expires in 1800 seconds:
+
+`exo compute sks kubeconfig {{cluster_name|id}} {{user}} --ttl 1800 {{[-z|--zone]}} {{zone}}`
+
+- Create and add a Nodepool containing 3 nodes to an SKS cluster:
+
+`exo compute sks nodepool add {{cluster_name|id}} {{nodepool_name}} --size 3 {{[-z|--zone]}} {{zone}}`
+
+- Remove a Nodepool from an SKS cluster:
+
+`exo compute sks nodepool delete {{cluster_name|id}} {{nodepool_name|id}}`
+
+- Evict a Node from a Nodepool in an SKS cluster:
+
+`exo compute sks nodepool evict {{cluster_name|id}} {{nodepool_name|id}} {{node_name|id}}`
+
+- Enable the Exoscale CSI driver for an existing SKS cluster:
+
+`exo compute sks update {{cluster_name|id}} --enable-csi-addon {{[-z|--zone]}} {{zone}}`
diff --git a/pages/common/exo-compute.md b/pages/common/exo-compute.md
new file mode 100644
index 0000000000..5af35c4006
--- /dev/null
+++ b/pages/common/exo-compute.md
@@ -0,0 +1,33 @@
+# exo compute
+
+> Manage Exoscale Compute resources.
+> Some subcommands such as `instance` have their own documentation.
+> More information: .
+
+- Quickly create an Exoscale Compute resource (e.g., instance, Security Group, SKS cluster,...):
+
+`exo compute {{resource_type}} create {{resource_name}}`
+
+- List Exoscale Compute instance types:
+
+`exo compute instance-type list`
+
+- Register a new SSH key that can be used to access Compute instances:
+
+`exo compute ssh-key register {{key_name}} {{public_key_file}}`
+
+- Create a Compute instance with an ssh-key deployed on it:
+
+`exo compute instance create {{instance_name}} {{ssh_key_name}}`
+
+- Register a new Compute instance template based on a Snapshot of a Compute instance (useful when you want to quickly create a replica of a Compute instance):
+
+`exo compute instance template register {{template_name}} --from-snapshot {{snapshot_id}}`
+
+- Add a new rule to an existing Security Group:
+
+`exo compute security-group rule add {{security_group_name|id}} --description '{{Allow SSH access}}' --flow {{ingress}} --port {{22}} --network {{0.0.0.0/0}}`
+
+- Manage the services of an existing Network Load Balancer:
+
+`exo compute load-balancer service add {{load_balancer_name|id}} {{service_name}} --port {{service_port}}`
diff --git a/pages/common/exo-dbaas.md b/pages/common/exo-dbaas.md
new file mode 100644
index 0000000000..ae68463250
--- /dev/null
+++ b/pages/common/exo-dbaas.md
@@ -0,0 +1,28 @@
+# exo dbaas
+
+> Manage Exoscale DBaaS.
+> More information: .
+
+- List available Database Service types:
+
+`exo dbaas type list`
+
+- List available plans for a Database Service type:
+
+`exo dbaas type show {{database_service_type}} --plans`
+
+- Create a new Database Service (an IP filter must be specified in order to access the service):
+
+`exo dbaas create {{database_service_type}} {{database_service_type_plan}} {{database_service_name}} --{{database_service_type}}-ip-filter {{1.2.3.4/32}}`
+
+- Show the connection URI for a Database Service:
+
+`exo dbaas show {{database_service_name}} --uri`
+
+- Set a specified maintenance time and day of the week for a Database Service:
+
+`exo dbaas update {{database_service_name}} --maintenance-dow {{day_of_the_week}} --maintenance-time {{HH:MM:SS}}`
+
+- Get help for a specific Database Service type:
+
+`exo dbaas {{subcommand}} --help-{{database_service_type}}`
diff --git a/pages/common/exo-iam.md b/pages/common/exo-iam.md
new file mode 100644
index 0000000000..6aad681dfa
--- /dev/null
+++ b/pages/common/exo-iam.md
@@ -0,0 +1,24 @@
+# exo iam
+
+> Manage the Exoscale IAM service.
+> More information: .
+
+- List all of the IAM roles:
+
+`exo iam role list`
+
+- Create a new API key:
+
+`exo iam api-key create {{api_key_name}} {{iam_role_name}}`
+
+- Create a new IAM role:
+
+`cat {{/path/to/policy.json}} | exo iam role create {{iam_role_name}} --editable --policy -`
+
+- Show the policy of an existing IAM role:
+
+`exo iam role show {{iam_role_name}} --policy {{[-O|--output-format]}} {{json}} | jq .`
+
+- Update the default Organization policy (the default Organization policy will be applied to all of the API keys within the Organization):
+
+`cat {{/path/to/policy.json}} | exo iam org-policy update -`
diff --git a/pages/common/exo-storage.md b/pages/common/exo-storage.md
new file mode 100644
index 0000000000..31b272ea4d
--- /dev/null
+++ b/pages/common/exo-storage.md
@@ -0,0 +1,24 @@
+# exo storage
+
+> Manage the Exoscale Simple Object Storage (SOS) service.
+> More information: .
+
+- Create a new SOS bucket:
+
+`exo storage mb {{bucket_name}}`
+
+- Upload a file to a bucket:
+
+`exo storage put {{file_path}} {{bucket_name}}/{{prefix/}}`
+
+- List the objects within a bucket:
+
+`exo storage ls {{bucket_name}}`
+
+- Simulate the download of an object from a bucket:
+
+`exo storage get {{bucket_name}}/{{object_key}} {{local_path}} --dry-run`
+
+- Manage the metadata of an object:
+
+`exo storage metadata add {{bucket_name}}/{{object_key}} {{key=value}}`
diff --git a/pages/common/exo.md b/pages/common/exo.md
new file mode 100644
index 0000000000..8905357131
--- /dev/null
+++ b/pages/common/exo.md
@@ -0,0 +1,29 @@
+# exo
+
+> Manage the Exoscale services.
+> Some subcommands such as `exo compute` have their own usage documentation.
+> More information: .
+
+- Configure the exo command-line:
+
+`exo config`
+
+- Generate the exo autocompletion script for a specified shell:
+
+`exo completion {{zsh}}`
+
+- List all of the available zones and output them as json:
+
+`exo zone {{[-O|--output-format]}} {{json}}`
+
+- Quietly create a Compute instance in a specific zone (disables the non-essential command output):
+
+`exo compute instance create {{instance_name}} --zone {{zone}} {{[-Q|--quiet]}}`
+
+- List just the name of all of the buckets in the Organization:
+
+`exo storage list {{[-O|--output-template]}} '\{\{ .Name \}\}`
+
+- Display help for a specific sub-command:
+
+`exo {{iam}} {{[-h|--help]}}`