-
-
Notifications
You must be signed in to change notification settings - Fork 434
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hetzner: Add shared vCPU
instance types; EUR
-> USD
#835
Hetzner: Add shared vCPU
instance types; EUR
-> USD
#835
Conversation
Thank you for your contribution! Please consider adding all shared CPU types, not just one. You are currently using the migration file for version 2.0.0. Since we cannot modify it (details), please use the migration file for the next release, version 2.1.0. Additionally, it would be helpful to include the ability to display in the UI that this is a shared vCPU. However, implementing this feature will require updates to both the API and UI. |
Thanks for the quick feedback. 🏎️ 👌 |
@schonert good call. 👌 🇺🇸 https://www.hetzner.com/cloud/ Added all the Shared vCPU instance types in @vitabaks can I update the autobase/console/db/migrations/20240520144338_2.0.0_initial_scheme_setup.sql Lines 295 to 302 in 03157f7
Won't affect any existing instances of the console, but will help future people get a fair comparison between cloud providers. 💭 |
….sql from EUR to USD ref: vitabaks#834 (comment)
…initial_scheme_setup.sql ref: vitabaks#834 (comment)
CX22
instance for Hetzner
closes #834CX22
instance for Hetzner
closes #834 EUR
-> USD
No, because this version has already been released. We need to prepare a migration file for the next version 2.1.0 in which we will perform an UPDATE for prices and an INSERT for new instance types. |
@vitabaks Thanks for your prompt reply. 👌 |
example: -- cloud_instances
-- Update prices and other relevant fields for Hetzner cloud instances
UPDATE public.cloud_instances SET price_hourly = 0.0082, price_monthly = 5.09, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CPX11';
UPDATE public.cloud_instances SET price_hourly = 0.0138, price_monthly = 8.59, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CPX21';
UPDATE public.cloud_instances SET price_hourly = 0.0226, price_monthly = 14.09, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CCX13';
UPDATE public.cloud_instances SET price_hourly = 0.0435, price_monthly = 27.09, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CCX23';
UPDATE public.cloud_instances SET price_hourly = 0.0867, price_monthly = 54.09, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CCX33';
UPDATE public.cloud_instances SET price_hourly = 0.1725, price_monthly = 107.59, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CCX43';
UPDATE public.cloud_instances SET price_hourly = 0.3431, price_monthly = 214.09, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CCX53';
UPDATE public.cloud_instances SET price_hourly = 0.5138, price_monthly = 320.59, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner' AND instance_name = 'CCX63';
-- cloud_volumes
-- Update prices and other relevant fields for Hetzner cloud volume
UPDATE public.cloud_volumes SET price_monthly = 0.05, currency = '$', updated_at = '2024-12-10' WHERE cloud_provider = 'hetzner'; File |
The Happy to include the extra |
By default, we create public IP addresses to enable SSH access to the instance over the Internet. This is particularly useful, for example, when deploying from your laptop. Later, you can delete the public IP addresses or modify the firewall rules to restrict access via SSH to specific IP addresses. P.S. Access to the servers is only possible via SSH keys, ensuring a high level of security. TODO: describe it in the documentation. |
This behavior can be controlled when deployed via the command line using variables ssh_public_access: true # Allow public ssh access (required for deployment from the public network).
ssh_public_allowed_ips: "" # (comma-separated list of IP addresses in CIDR format) If empty, then public access is allowed for any IP address.
netdata_public_access: true # Allow access to the Netdata monitoring from the public network (if 'netdata_install' is 'true').
netdata_public_allowed_ips: "" # (comma-separated list of IP addresses in CIDR format) If empty, then public access is allowed for any IP address.
database_public_access: false # Allow access to the database from the public network.
database_public_allowed_ips: "" # (comma-separated list of IP addresses in CIDR format) If empty, then public access is allowed for any IP address. We will try to add this to the UI when developing Expert Mode |
CX22
instance for Hetzner
closes #834 EUR
-> USD
Hetzner
; EUR
-> USD
Cool. Perhaps a backlog item to use Going to include the |
Hetzner
; EUR
-> USD
shared vCPU
instance types for Hetzner
; EUR
-> USD
shared vCPU
instance types for Hetzner
; EUR
-> USD
shared vCPU
instance types; EUR
-> USD
until Expert Mode is implemented, you can simply delete public IP addresses after deployment. |
…itabaks#835 (comment) instead these are updates in 2.1 vitabaks#834
@vitabaks requested changes made. ✅ |
I created a separate issue (#837) so that I don't forget about it in the future. |
@vitabaks happy to contribute further. Would you like it added in this PR or can it be a follow-up to keep changes separate? 💭 |
We can create a separate PR for this. |
Curious why some of the checks are failing ... 🤷♂️ Anything I can do to help fix them? 🧑💻 Doesn't look like these errors have anything to do with the migration files ... 💭 |
These errors are not related to this PR, I am working on correcting the tests here #832 |
@vitabaks LMK if this final |
Test
Console image:
Result: Adding a column requires changes to the Console API service to support the new field. |
Test 2Commit: 45b5bdc Result: postgres=# \d cloud_instances
Table "public.cloud_instances"
Column | Type | Collation | Nullable | Default
----------------+-----------------------------+-----------+----------+-------------------
cloud_provider | text | | not null |
instance_group | text | | not null |
instance_name | text | | not null |
arch | text | | not null | 'amd64'::text
cpu | integer | | not null |
ram | integer | | not null |
price_hourly | numeric | | not null |
price_monthly | numeric | | not null |
currency | character(1) | | not null | '$'::bpchar
updated_at | timestamp without time zone | | | CURRENT_TIMESTAMP
shared_cpu | boolean | | | false
Indexes:
"cloud_instances_pkey" PRIMARY KEY, btree (cloud_provider, instance_group, instance_name)
Foreign-key constraints:
"cloud_instances_cloud_provider_fkey" FOREIGN KEY (cloud_provider) REFERENCES cloud_providers(provider_name)
Triggers:
handle_updated_at BEFORE UPDATE ON cloud_instances FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updated_at')
postgres=# select * from cloud_instances where cloud_provider = 'hetzner' and shared_cpu order by cpu, ram;
cloud_provider | instance_group | instance_name | arch | cpu | ram | price_hourly | price_monthly | currency | updated_at | shared_cpu
----------------+----------------+---------------+-------+-----+-----+--------------+---------------+----------+---------------------------+------------
hetzner | Small Size | CPX11 | amd64 | 2 | 2 | 0.0082 | 5.09 | $ | 2024-12-12 08:50:08.61843 | t
hetzner | Small Size | CX22 | amd64 | 2 | 4 | 0.0074 | 4.59 | $ | 2024-12-10 00:00:00 | t
hetzner | Small Size | CPX21 | amd64 | 3 | 4 | 0.0138 | 8.59 | $ | 2024-12-12 08:50:08.61843 | t
hetzner | Small Size | CPX31 | amd64 | 4 | 8 | 0.025 | 15.59 | $ | 2024-12-10 00:00:00 | t
hetzner | Small Size | CX32 | amd64 | 4 | 8 | 0.0127 | 7.59 | $ | 2024-12-10 00:00:00 | t
hetzner | Medium Size | CPX41 | amd64 | 8 | 16 | 0.0464 | 28.09 | $ | 2024-12-10 00:00:00 | t
hetzner | Medium Size | CX42 | amd64 | 8 | 16 | 0.0304 | 18.59 | $ | 2024-12-10 00:00:00 | t
hetzner | Medium Size | CX52 | amd64 | 16 | 32 | 0.0611 | 36.09 | $ | 2024-12-10 00:00:00 | t
hetzner | Medium Size | CPX51 | amd64 | 16 | 32 | 0.0979 | 61.09 | $ | 2024-12-10 00:00:00 | t
(9 rows)
postgres=# select * from cloud_instances where shared_cpu and cloud_provider != 'hetzner';
cloud_provider | instance_group | instance_name | arch | cpu | ram | price_hourly | price_monthly | currency | updated_at | shared_cpu
----------------+----------------+---------------+-------+-----+-----+--------------+---------------+----------+---------------------------+------------
aws | Small Size | t3.medium | amd64 | 2 | 4 | 0.042 | 29.952 | $ | 2024-12-12 08:50:08.61843 | t
aws | Small Size | t3.small | amd64 | 2 | 2 | 0.021 | 14.976 | $ | 2024-12-12 08:50:08.61843 | t
gcp | Small Size | e2-medium | amd64 | 2 | 4 | 0.034 | 24.457 | $ | 2024-12-12 08:50:08.61843 | t
gcp | Small Size | e2-small | amd64 | 2 | 2 | 0.017 | 12.228 | $ | 2024-12-12 08:50:08.61843 | t
azure | Small Size | Standard_B1ms | amd64 | 1 | 2 | 0.021 | 15.111 | $ | 2024-12-12 08:50:08.61843 | t
azure | Small Size | Standard_B2s | amd64 | 2 | 4 | 0.042 | 30.368 | $ | 2024-12-12 08:50:08.61843 | t
digitalocean | Small Size | s-2vcpu-2gb | amd64 | 2 | 2 | 0.027 | 18.000 | $ | 2024-12-12 08:50:08.61843 | t
digitalocean | Small Size | s-2vcpu-4gb | amd64 | 2 | 4 | 0.036 | 24.000 | $ | 2024-12-12 08:50:08.61843 | t
(8 rows) passed |
Awesome @vitabaks 🚀 |
This PR adds the lowest cost
Shared vCPU
instance to the list forHetzner
☁️as it allows people to test
autobase
for the lowest price e.g:while
in development. 🧪EUR
toUSD
to aid comparison with other US-centric cloud providers. 💵Hetzner
default instanceCPX11
instead ofCX22
? 💭 #834 ✅shared_cpu
BOOLEAN
field topublic.cloud_instances
withtrue/false
data Hetzner server types #784 🌹