Project

General

Profile

Task #7138

Updated by Nico Schottelius over 4 years ago

This ticket is about tracking how/where we should continue to develop or things that come to my mind. Anyone who is a watcher here, feel free to update it when things are implemented that I think should be implemented. 

 Many things might only be brainstorming quality, but I help everyone involved to guide us to the getting it running. 

 {{toc}} 

 


 h2. Important flows / tasks (read: need to focus on this) 

 h3. Ordering a VM by CLI 

 I want to order a VM, so I... 

 * register on https://account.ungleich.ch/ 
 ** gives me an LDAP account 
 ** gives me an uotp seed 
 * create ~/.ucloud (or similar) and store my username + seed in there 
 ** { username: "nico", seed: "whatigot" } 
 * I download / install the ucloud client 
 ** this should be *very* easy 
 * I add payment details (bee below for more about this) 
 ** In the first version this will cleary be a credit card 
 ** So I type: ucloud payment-register --cc --number xx --verify yy -- expiry i/b --name "Nico Schottelius" 

 Now I should be ready to rock! 

 * I will list the available public images 
 ** @ucloud list-images@ 
 ** Maybe list-images by default takes some "pool" / "storage" that is named public 
 ** But you can also specify ucloud list-images --pool xyz 
 ** But let's not do this now. 
 * Aaaaand ... oh, I need to have an ssh key registered to access my VMs! 
 ** @ucloud add-ssh-key --name mygreatkey --key "key content" 
 * Alright, finally! 
 ** @ucloud add-vm --name "my first VM" --cpu 12 --ram 10 --os-ssd 10 --hdd 200 --hdd 400 
 ** Creating a VM with 12 CPU, 10GB RAM, 10 GB SSD and 2 extra disks with 200 and 300 GB 

 Now how to access the VM? 

 * Get the details! 
 ** @ucloud list-vm@ 
 *** shows all VMs with name and UUID 
 ** @ucloud show-vm --uuid $uuid@ 
 *** By name would be cool, but we could also allow same name VMs 
 *** To be discussed/defined 
 * Now I have the IPv6 address and can ssh into it! 

 <pre> 
 ssh root@my-cool-vm 
 </pre> 


 h3. Ordering a VM by WEB 

 Pretty much the same as CLI, could even by a JS client... thinking about that: we might be smart in having the client being something like nodejs, which can be the same in the web as on the command line. 

 * Mondi/Ahmed, can you comment on this? 

 h3. Managing payment 

 We want to support: 

 * Wire transfer / pre paid 
 ** User's can upload money and we will deduct usage from there 
 * Credit card / post paid 
 ** We charge once $timeframe 
 ** $timeframe does not have to be the same as the cycle for the VM 
 * Coupon support 
 ** Giving free $something to people 
 ** Basically deducting from this similar to a pre-paid account 

 h3. Adding an IPv4 address to an existing VM 

 While ucloud is very IPv6 centered and VMs by default will be IPv6 only, we want users to easily have    IPv4 addresses. 

 h4. Adding an IPv4 address *after* creating the VM 

 That would be, I created the VM and realise that it does not come with IPv4. Let's fix this. 

 * Order the IPv4 address 
 ** @ucloud order ipv4address --vm-uuid ${uuid}@ 
 * Show IPv4 addresses 
 ** @ucloud show ipv4address --vm-uuid ${uuid}@ 
 *** Might return a list 

 The way how we support it is by using NAT64. 

 h2. Paying vs. not paying 

 I was thinking about having a --pay flag in case a service costs money for the user, requiring explicit confirmation. The flag name can be discussed and we can also discuss whether we want to have it required by default or not. 

 In either case, we should have support for enabling/disabling confirmation when charges occur in the config ~/.ucloud file. Something on the line of: 

 <pre> 
 { ... 
    "require_payment_confirmation": "yes" or "no" 

 ...} 

 </pre> 

 h2. Config support 

 When adding a config file, we should also have something easy to modify it. Or we document it nicely how to modify it.  

 



 h2. Stuff that is cool and probably makes sense, but maybe not right away 

 * Billing on second base might be cool 
 ** To have it feasible we might need to have a minimum fee x + fee per second 
 ** This could be realised with the one time charging scheme 

Back