Skip to content

Commit a1aed69

Browse files
GokceGKjoaopalet
andauthored
Onboard IaaS server commands (#508)
* onboard iaas server commands * fix linter issues * change --details flag handling * remove userData from table output in describe command * fix linter issues * update descriptions * make flags conditionally required * add more examples * fix linter issues * Update internal/cmd/beta/server/create/create.go Co-authored-by: João Palet <[email protected]> * Update internal/cmd/beta/server/create/create.go Co-authored-by: João Palet <[email protected]> * adapt link in the create flags * update docs * change type of userDataFlag * change the flag validation * fix linter issues * Update internal/pkg/errors/errors.go Co-authored-by: João Palet <[email protected]> * change error message * improve flag handling * extend unit tests * fix linter issues --------- Co-authored-by: João Palet <[email protected]>
1 parent 3b8d284 commit a1aed69

20 files changed

+2748
-0
lines changed

docs/stackit_beta_server.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,9 @@ stackit beta server [flags]
3131
* [stackit beta](./stackit_beta.md) - Contains beta STACKIT CLI commands
3232
* [stackit beta server backup](./stackit_beta_server_backup.md) - Provides functionality for Server Backup
3333
* [stackit beta server command](./stackit_beta_server_command.md) - Provides functionality for Server Command
34+
* [stackit beta server create](./stackit_beta_server_create.md) - Creates a server
35+
* [stackit beta server delete](./stackit_beta_server_delete.md) - Deletes a server
36+
* [stackit beta server describe](./stackit_beta_server_describe.md) - Shows details of a server
37+
* [stackit beta server list](./stackit_beta_server_list.md) - Lists all servers of a project
38+
* [stackit beta server update](./stackit_beta_server_update.md) - Updates a server
3439

docs/stackit_beta_server_create.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
## stackit beta server create
2+
3+
Creates a server
4+
5+
### Synopsis
6+
7+
Creates a server.
8+
9+
```
10+
stackit beta server create [flags]
11+
```
12+
13+
### Examples
14+
15+
```
16+
Create a server from an image with id xxx
17+
$ stackit beta server create --machine-type t1.1 --name server1 --image-id xxx
18+
19+
Create a server with labels from an image with id xxx
20+
$ stackit beta server create --machine-type t1.1 --name server1 --image-id xxx --labels key=value,foo=bar
21+
22+
Create a server with a boot volume
23+
$ stackit beta server create --machine-type t1.1 --name server1 --boot-volume-source-id xxx --boot-volume-source-type image --boot-volume-size 64
24+
25+
Create a server with a boot volume from an existing volume
26+
$ stackit beta server create --machine-type t1.1 --name server1 --boot-volume-source-id xxx --boot-volume-source-type volume
27+
28+
Create a server with a keypair
29+
$ stackit beta server create --machine-type t1.1 --name server1 --image-id xxx --keypair-name example
30+
31+
Create a server with a network
32+
$ stackit beta server create --machine-type t1.1 --name server1 --image-id xxx --network-id yyy
33+
34+
Create a server with a network interface
35+
$ stackit beta server create --machine-type t1.1 --name server1 --boot-volume-source-id xxx --boot-volume-source-type image --boot-volume-size 64 --network-interface-ids yyy
36+
37+
Create a server with an attached volume
38+
$ stackit beta server create --machine-type t1.1 --name server1 --boot-volume-source-id xxx --boot-volume-source-type image --boot-volume-size 64 --volumes yyy
39+
40+
Create a server with user data (cloud-init)
41+
$ stackit beta server create --machine-type t1.1 --name server1 --boot-volume-source-id xxx --boot-volume-source-type image --boot-volume-size 64 --user-data @path/to/file.yaml")
42+
```
43+
44+
### Options
45+
46+
```
47+
--affinity-group string The affinity group the server is assigned to
48+
--availability-zone string The availability zone of the server
49+
--boot-volume-delete-on-termination Delete the volume during the termination of the server. Defaults to false
50+
--boot-volume-performance-class string Boot volume performance class
51+
--boot-volume-size int The size of the boot volume in GB. Must be provided when 'boot-volume-source-type' is 'image'
52+
--boot-volume-source-id string ID of the source object of boot volume. It can be either an image or volume ID
53+
--boot-volume-source-type string Type of the source object of boot volume. It can be either 'image' or 'volume'
54+
-h, --help Help for "stackit beta server create"
55+
--image-id string The image ID to be used for an ephemeral disk on the server. Either 'image-id' or 'boot-volume-...' flags are required
56+
--keypair-name string The name of the SSH keypair used during the server creation
57+
--labels stringToString Labels are key-value string pairs which can be attached to a server. E.g. '--labels key1=value1,key2=value2,...' (default [])
58+
--machine-type string Name of the type of the machine for the server. Possible values are documented in https://docs.stackit.cloud/stackit/en/virtual-machine-flavors-75137231.html
59+
-n, --name string Server name
60+
--network-id string ID of the network for the initial networking setup for the server creation
61+
--network-interface-ids strings List of network interface IDs for the initial networking setup for the server creation
62+
--security-groups strings The initial security groups for the server creation
63+
--service-account-emails strings List of the service account mails
64+
--user-data string User data that is passed via cloud-init to the server
65+
--volumes strings The list of volumes attached to the server
66+
```
67+
68+
### Options inherited from parent commands
69+
70+
```
71+
-y, --assume-yes If set, skips all confirmation prompts
72+
--async If set, runs the command asynchronously
73+
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
74+
-p, --project-id string Project ID
75+
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
76+
```
77+
78+
### SEE ALSO
79+
80+
* [stackit beta server](./stackit_beta_server.md) - Provides functionality for Server
81+

docs/stackit_beta_server_delete.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
## stackit beta server delete
2+
3+
Deletes a server
4+
5+
### Synopsis
6+
7+
Deletes a server.
8+
If the server is still in use, the deletion will fail
9+
10+
11+
```
12+
stackit beta server delete [flags]
13+
```
14+
15+
### Examples
16+
17+
```
18+
Delete server with ID "xxx"
19+
$ stackit beta server delete xxx
20+
```
21+
22+
### Options
23+
24+
```
25+
-h, --help Help for "stackit beta server delete"
26+
```
27+
28+
### Options inherited from parent commands
29+
30+
```
31+
-y, --assume-yes If set, skips all confirmation prompts
32+
--async If set, runs the command asynchronously
33+
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
34+
-p, --project-id string Project ID
35+
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
36+
```
37+
38+
### SEE ALSO
39+
40+
* [stackit beta server](./stackit_beta_server.md) - Provides functionality for Server
41+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
## stackit beta server describe
2+
3+
Shows details of a server
4+
5+
### Synopsis
6+
7+
Shows details of a server.
8+
9+
```
10+
stackit beta server describe [flags]
11+
```
12+
13+
### Examples
14+
15+
```
16+
Show details of a server with ID "xxx"
17+
$ stackit beta server describe xxx
18+
19+
Show detailed information of a server with ID "xxx"
20+
$ stackit beta server describe xxx --details
21+
22+
Show details of a server with ID "xxx" in JSON format
23+
$ stackit beta server describe xxx --output-format json
24+
```
25+
26+
### Options
27+
28+
```
29+
--details Show detailed information about server
30+
-h, --help Help for "stackit beta server describe"
31+
```
32+
33+
### Options inherited from parent commands
34+
35+
```
36+
-y, --assume-yes If set, skips all confirmation prompts
37+
--async If set, runs the command asynchronously
38+
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
39+
-p, --project-id string Project ID
40+
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
41+
```
42+
43+
### SEE ALSO
44+
45+
* [stackit beta server](./stackit_beta_server.md) - Provides functionality for Server
46+

docs/stackit_beta_server_list.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
## stackit beta server list
2+
3+
Lists all servers of a project
4+
5+
### Synopsis
6+
7+
Lists all servers of a project.
8+
9+
```
10+
stackit beta server list [flags]
11+
```
12+
13+
### Examples
14+
15+
```
16+
Lists all servers
17+
$ stackit beta server list
18+
19+
Lists all servers which contains the label xxx
20+
$ stackit beta server list --label-selector xxx
21+
22+
Lists all servers in JSON format
23+
$ stackit beta server list --output-format json
24+
25+
Lists up to 10 servers
26+
$ stackit beta server list --limit 10
27+
```
28+
29+
### Options
30+
31+
```
32+
-h, --help Help for "stackit beta server list"
33+
--label-selector string Filter by label
34+
--limit int Maximum number of entries to list
35+
```
36+
37+
### Options inherited from parent commands
38+
39+
```
40+
-y, --assume-yes If set, skips all confirmation prompts
41+
--async If set, runs the command asynchronously
42+
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
43+
-p, --project-id string Project ID
44+
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
45+
```
46+
47+
### SEE ALSO
48+
49+
* [stackit beta server](./stackit_beta_server.md) - Provides functionality for Server
50+

docs/stackit_beta_server_update.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
## stackit beta server update
2+
3+
Updates a server
4+
5+
### Synopsis
6+
7+
Updates a server.
8+
9+
```
10+
stackit beta server update [flags]
11+
```
12+
13+
### Examples
14+
15+
```
16+
Update server with ID "xxx" with new name "server-1-new"
17+
$ stackit beta server update xxx --name server-1-new
18+
19+
Update server with ID "xxx" with new name "server-1-new" and label(s)
20+
$ stackit beta server update xxx --name server-1-new --labels key=value,foo=bar
21+
```
22+
23+
### Options
24+
25+
```
26+
-h, --help Help for "stackit beta server update"
27+
--labels stringToString Labels are key-value string pairs which can be attached to a server. E.g. '--labels key1=value1,key2=value2,...' (default [])
28+
-n, --name string Server name
29+
```
30+
31+
### Options inherited from parent commands
32+
33+
```
34+
-y, --assume-yes If set, skips all confirmation prompts
35+
--async If set, runs the command asynchronously
36+
-o, --output-format string Output format, one of ["json" "pretty" "none" "yaml"]
37+
-p, --project-id string Project ID
38+
--verbosity string Verbosity of the CLI, one of ["debug" "info" "warning" "error"] (default "info")
39+
```
40+
41+
### SEE ALSO
42+
43+
* [stackit beta server](./stackit_beta_server.md) - Provides functionality for Server
44+

0 commit comments

Comments
 (0)