Skip to content

Commit f55c092

Browse files
dguidoclaude
andauthored
Remove Exoscale support due to CloudStack API deprecation (#14841)
* Remove Exoscale support due to CloudStack API deprecation (fixes #14839) Exoscale deprecated their CloudStack API on May 1, 2024, migrating to a proprietary API v2 that is incompatible with CloudStack-based tools. Changes: - Remove Exoscale as default CloudStack endpoint - Add detection and clear error message for Exoscale endpoints - Update documentation to remove Exoscale references - Add recommendations for alternative providers - Maintain generic CloudStack support for other providers Users attempting to use Exoscale will now receive a helpful error message explaining the situation and suggesting alternative providers with European presence (Hetzner, DigitalOcean, Vultr, Scaleway). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * Remove remaining Exoscale references from input.yml, README, and prompts - Removed 'Exoscale optimised' label from CloudStack in input.yml - Removed Exoscale mention from README.md provider list - Removed Exoscale URL example from CloudStack API endpoint prompt * Fix typo: 'API ssecret' -> 'API secret' in CloudStack prompt --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent 1cd4203 commit f55c092

File tree

6 files changed

+34
-16
lines changed

6 files changed

+34
-16
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ See our [release announcement](https://blog.trailofbits.com/2016/12/12/meet-algo
3131

3232
The easiest way to get an Algo server running is to run it on your local system or from [Google Cloud Shell](docs/deploy-from-cloudshell.md) and let it set up a _new_ virtual machine in the cloud for you.
3333

34-
1. **Setup an account on a cloud hosting provider.** Algo supports [DigitalOcean](https://m.do.co/c/4d7f4ff9cfe4) (most user friendly), [Amazon Lightsail](https://aws.amazon.com/lightsail/), [Amazon EC2](https://aws.amazon.com/), [Vultr](https://www.vultr.com/), [Microsoft Azure](https://azure.microsoft.com/), [Google Compute Engine](https://cloud.google.com/compute/), [Scaleway](https://www.scaleway.com/), [DreamCompute](https://www.dreamhost.com/cloud/computing/), [Linode](https://www.linode.com) other OpenStack-based cloud hosting, [Exoscale](https://www.exoscale.com) or other CloudStack-based cloud hosting, or [Hetzner Cloud](https://www.hetzner.com/).
34+
1. **Setup an account on a cloud hosting provider.** Algo supports [DigitalOcean](https://m.do.co/c/4d7f4ff9cfe4) (most user friendly), [Amazon Lightsail](https://aws.amazon.com/lightsail/), [Amazon EC2](https://aws.amazon.com/), [Vultr](https://www.vultr.com/), [Microsoft Azure](https://azure.microsoft.com/), [Google Compute Engine](https://cloud.google.com/compute/), [Scaleway](https://www.scaleway.com/), [DreamCompute](https://www.dreamhost.com/cloud/computing/), [Linode](https://www.linode.com), other OpenStack-based cloud hosting, CloudStack-based cloud hosting, or [Hetzner Cloud](https://www.hetzner.com/).
3535

3636
2. **Get a copy of Algo.** The Algo scripts will be run from your local system. There are two ways to get a copy:
3737

docs/cloud-amazon-ec2.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ $ ./algo
9090
7. Vultr
9191
8. Scaleway
9292
9. OpenStack (DreamCompute optimised)
93-
10. CloudStack (Exoscale optimised)
93+
10. CloudStack
9494
11. Linode
9595
12. Install to existing Ubuntu server (for more advanced users)
9696

docs/cloud-cloudstack.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
### Configuration file
22

3-
Algo scripts will ask you for the API detail. You need to fetch the API credentials and the endpoint from the provider control panel.
3+
> **⚠️ Important Note:** Exoscale is no longer supported as they deprecated their CloudStack API on May 1, 2024. Please use alternative providers like Hetzner, DigitalOcean, Vultr, or Scaleway.
44
5-
Example for Exoscale (European cloud provider exposing CloudStack API), visit https://portal.exoscale.com/u/<your@account>/account/profile/api to gather the required information: CloudStack api key and secret.
5+
Algo scripts will ask you for the API details. You need to fetch the API credentials and the endpoint from your CloudStack provider's control panel.
6+
7+
For CloudStack providers, you'll need to set:
68

79
```bash
810
export CLOUDSTACK_KEY="<your api key>"
911
export CLOUDSTACK_SECRET="<your secret>"
10-
export CLOUDSTACK_ENDPOINT="https://api.exoscale.com/compute"
12+
export CLOUDSTACK_ENDPOINT="<your provider's API endpoint>"
1113
```
14+
15+
Make sure your provider supports the CloudStack API. Contact your provider for the correct API endpoint URL.

docs/deploy-from-ansible.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,11 +291,13 @@ You need to source the rc file prior to run Algo. Download it from the OpenStack
291291
292292
### CloudStack
293293
294+
> **Note:** Exoscale is no longer supported as they deprecated their CloudStack API on May 1, 2024.
295+
294296
Required variables:
295297
296298
- [cs_config](https://trailofbits.github.io/algo/cloud-cloudstack.html): /path/to/.cloudstack.ini
297-
- cs_region: e.g. `exoscale`
298-
- cs_zones: e.g. `ch-gva2`
299+
- cs_region: your CloudStack region
300+
- cs_zones: your CloudStack zone
299301
300302
The first two can also be defined in your environment, using the variables `CLOUDSTACK_CONFIG` and `CLOUDSTACK_REGION`.
301303

input.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
- { name: Vultr, alias: vultr }
2121
- { name: Scaleway, alias: scaleway }
2222
- { name: OpenStack (DreamCompute optimised), alias: openstack }
23-
- { name: CloudStack (Exoscale optimised), alias: cloudstack }
23+
- { name: CloudStack, alias: cloudstack }
2424
- { name: Linode, alias: linode }
2525
- { name: Install to existing Ubuntu latest LTS server (for more advanced users), alias: local }
2626
vars_files:

roles/cloud-cloudstack/tasks/prompts.yml

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
- pause:
1414
prompt: |
15-
Enter the API ssecret (https://trailofbits.github.io/algo/cloud-cloudstack.html):
15+
Enter the API secret (https://trailofbits.github.io/algo/cloud-cloudstack.html):
1616
echo: false
1717
register: _cs_secret
1818
when:
@@ -23,7 +23,6 @@
2323
- pause:
2424
prompt: |
2525
Enter the API endpoint (https://trailofbits.github.io/algo/cloud-cloudstack.html)
26-
[https://api.exoscale.com/compute]
2726
register: _cs_url
2827
when:
2928
- cs_url is undefined
@@ -34,10 +33,26 @@
3433
algo_cs_token: "{{ cs_secret | default(_cs_secret.user_input | default(None)) | default(lookup('env', 'CLOUDSTACK_SECRET'), true) }}"
3534
algo_cs_url: >-
3635
{{ cs_url | default(_cs_url.user_input|default(None)) |
37-
default(lookup('env', 'CLOUDSTACK_ENDPOINT'), true) |
38-
default('https://api.exoscale.com/compute', true) }}
36+
default(lookup('env', 'CLOUDSTACK_ENDPOINT'), true) }}
3937
no_log: true
4038

39+
- name: Check for Exoscale API endpoint
40+
fail:
41+
msg: |
42+
ERROR: Exoscale CloudStack API has been deprecated as of May 1, 2024.
43+
44+
Exoscale has migrated from CloudStack to their proprietary API v2, which is not compatible
45+
with CloudStack-based tools. Algo no longer supports Exoscale deployments.
46+
47+
Please consider these alternative providers:
48+
- Hetzner (provider: hetzner) - German provider with European coverage
49+
- DigitalOcean (provider: digitalocean) - Has Amsterdam and Frankfurt regions
50+
- Vultr (provider: vultr) - Multiple European locations
51+
- Scaleway (provider: scaleway) - French provider
52+
53+
If you're using a different CloudStack provider, please provide the correct API endpoint.
54+
when: "'exoscale.com' in algo_cs_url or 'exoscale.ch' in algo_cs_url"
55+
4156
- name: Get zones on cloud
4257
cs_zone_info:
4358
register: _cs_zones
@@ -53,10 +68,7 @@
5368

5469
- name: Set the default zone
5570
set_fact:
56-
default_zone: >-
57-
{%- for z in cs_zones -%}
58-
{%- if z['name'] == "ch-gva-2" %}{{ loop.index }}{% endif -%}
59-
{%- endfor %}
71+
default_zone: "1" # Default to first zone in the list
6072

6173
- pause:
6274
prompt: |

0 commit comments

Comments
 (0)