You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All existing documentation is already published. How to write new drivers:
Create account, install command line client for new vendor, make sure it works, learn how to use multiple accounts using that command line client.
Write working install.sh script, that installs all dependencies and can be safely run multiple times, possibly fixing found problems, reinstalling/updating packages etc.
Look at existing drivers and start with setup-account.sh, list-accounts.sh and test-account.sh - as for the start, setup-account.sh should just create configuration profiles without any additional questions, you can add them later when working on creating instances.
When you successfully managed to create many profiles, focus on ssh key management: get-key-path.sh, list-ssh-keys.sh, create-ssh-key.sh
Next implement listing scripts: list regions, list available images, list instance types, list other required resources (except on instances). Also get-configured-region.sh, get-ubuntu-image.sh, get-default-instance-type.sh and possily others related to OS image management. Choose caching strategy at this point (or just look at Azure scripts).
Create some instances manually and focus on list-instances script. Probably you'll have to implement some parser at this point. Look at "internal" subdirectories for each driver.
Next write scripts operating on existing instances: delete-instance.sh and possibly resize/redeploy/open/do-whatever. Verify that you properly operate on instance identifiers returned in 6th column of instance listing script. Really, this part is tricky for some vendors!
create-instance.sh should be the last part, as you need all other auxiliary scripts before (operate on regions, OS images, instance types and other vendor-specific resources).
Is there documentation explaining architecture and how to write new drivers.
Would love to contribute however need to have more information instead of just guessing from the existing code.
The text was updated successfully, but these errors were encountered: