Release notes
The release notes were launched on 11.10.2022. At this point, the
minimum functionality of The Cloudsphere was achieved. The MVP was
usable both via API itself and via the CLI (tcsctl
). A UI was not
yet available at that time.
1.0.0 (Nighthawk)
Version 1.0.0 is currently in progress and not yet published.
Version 1.0.0 contains the status of the MVP as well as all enhancements already identified and implemented during the evaluation phase of the MVP.
Other
- Python 3.11 is now used as standard in the service container image
- This project was initially developed under the internal development name Timon. In preparation for the first release, it was renamed The Cloudsphere (TCS for short).
- The documentation has been switched from Sphinx to Docusaurus and is now published on thecloudsphere.io.
- The Getting Started Guide from the README of thecloudsphere/tcsctl has been integrated into the documentation.
Blueprint: environment overrides
With environment overrides it is possible to customise certain predefined properties in a blueprint when executing an environment on a blueprint.
The following properties can be adjusted (if supported by the environment used).
blueprint_source
blueprint_source_key
blueprint_version
working_directory
outputs_directory
makefile
makefile_pre_processing
makefile_processing
makefile_post_processing
The following sample snippet is from the osism/testbed
blueprint.
There, the blueprint is not imported from the registry but from the
external repository osism/testbed. The
directory for the execution of Terraform in this case is
/processing/terraform
(instead of /processing
). The outputs are not
in /outputs
but in /processing/terraform
. For the execution of
Terraform, /processing/terraform/Makefile
is used instead of
/processing/Makefile
.
environment:
repository: thecloudsphere/registry
name: terraform/openstack
version: 1.3.2
overrides:
blueprint_source: https://github.com/osism/testbed.git
# blueprint_source_key:
# blueprint_version:
working_directory: /processing/terraform
outputs_directory: /processing/terraform
# makefile:
# makefile_pre_processing:
makefile_processing: /processing/terraform/Makefile
# makefile_post_processing:
The overrides supported by an environment can be defined via the
parameter supported_overrides
at the environment. If
supported_overrides
is not set, no overrides are supported. All
supported overrides must be explicitly listed. If overrides are set that
are not supported by an environment, a WARNING
is issued and the
override is ignored.
Blueprint/Environment/Template: use of template strings
When executing a deployment, certain variables are set that always can be used.
tcs.id
: the UUID of a deploymenttcs.name
: the name of a deploymenttcs.created_at
: the timestamp when a deployment was initially requested
These variables can now be accessed within the inputs
and outputs
by
using Jinja2.
inputs:
prefix: "{{ tcs.id }}"
Additional variables are available in the output. In addition to the
standard tcs.*
templates, inputs can also be accessed there.
However, it is only possible to access inputs of the type environment
.
For example, if the following input is defined for a blueprint, it can
be accessed in the outputs
via inputs.environment
.
inputs:
- name: environment
destination:
path: ENVIRONMENT
type: environment
default: betacloud
required: false
description: |
Environment to use.
outputs:
- name: private_key
source:
path: ".id_rsa.{{ inputs.environment }}"
type: ssh
description: |
Private SSH key to access the manager instance
visibility: private
API: deployment states endpoint
The deployment states endpoint can be used to list all existing states in a deployment or to download a specific state.
/deployments/{project_id}/{deployment_id}/states
/deployments/{project_id}/{deployment_id}/states/{version_id}
The command in the CLI is tcsctl deployment states
. For the listing of
all states, only the name or the ID of the deployment is given.
tcsctl deployment states hello-world
+--------------------------------------+----------------------------------+
| version_id | last_modified |
|--------------------------------------+----------------------------------|
| adad1499-8aca-4b54-ba30-86fb7dfc9412 | 2022-10-16T16:08:26.746000+00:00 |
| 24962ce5-92dc-4a87-a27e-487859f840e4 | 2022-10-16T15:45:04.028000+00:00 |
| 4c9ef664-f89b-460d-97eb-be0c951e838d | 2022-10-16T15:31:24.197000+00:00 |
| aafcf490-d782-4c7d-80b1-38a9ce063147 | 2022-10-16T15:28:30.014000+00:00 |
+--------------------------------------+----------------------------------+
To download a specific state, the ID of the state is also specified.
tcsctl deployment states hello-world adad1499-8aca-4b54-ba30-86fb7dfc9412
The status is then stored on the local file system in the working
directory in a file with the name
adad1499-8aca-4b54-ba30-86fb7dfc9412.tar
.
Template: overwrite the environment
With the parameters environment
and environment_version
, it is
possible to overwrite the environment set via the selected blueprint and
its version during a template.
In blueprint terraform/openstack/hello-world
, the terraform/opentack
environment is actually used. In this case, the python/base
environment version 3.10
is used instead.
python-sample:
blueprint: terraform/openstack/hello-world
blueprint_version: main
environment: python/base
environment_version: "3.10"
New CLI feature: Specify the column(s) to include
With the list
command, the columns can now be filtered using the
--column
parameter. The parameter can be repeated to show multiple
columns
tcsctl deployment list --column name --column status
+----+-------------+----------+
| | name | status |
|----+-------------+----------|
| 0 | hello-world | CREATED |
+----+-------------+----------+
New CLI feature: Write outpus to file instead of stdout
With the parameter --file
, the output of a deployment can be written
directly to a file.
tcsctl deployment outputs hello-world private_key --file id_rsa.hello-world
Output private_key from deployment hello-world was written to file id_rsa.hello-world.
New CLI feature: Control of deployments
There are blueprints that support a console, for example SSH, for
control. This console can be called up with the command
tcsctl deployment control
. A deployment must be in status CREATED
or
RECONCILED
for the control feature to be usable.
Currently, only SSH is supported. In the future, other tools such as
kubectl
will be added.
tcsctl deployment control hello-world
Welcome to Ubuntu 22.04.1 LTS (GNU/Linux 5.15.0-52-generic x86_64)
[...]
ubuntu@hello-world-instance:~$
Blueprint: Control of deployments
The control object can be used to define the necessary values for the
tcsctl deployment control
command in a blueprint. The use of outputs
of the created deployments is possible via templates.
control:
type: ssh
arguments:
- name: destination
value: "{{ outputs.address }}"
type: string
- name: identity_file
value: "{{ outputs.private_key }}"
type: file
- name: user
value: ubuntu
type: string