# Digitalocean Provider ## Input | name | description | default | | -------------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | | do_api_key | the do api key | | | do_as_backend | you can use do s3 as backend state storage | False | | do_spaces_access_id | in case of backend usage | | | do_spaces_secret_key | in case of backend usage | | | do_endpoint | in case of backend usage | "fra1.digitaloceanspaces.com" | | do_region | in case of backend usage | "eu-central-1" | | do_bucket | in case of backend usage, the bucket your state is stored in. the url is S3://{do_bucket}/{do_bucket_key}/{do_account_name} | | | do_bucket_key | | {module} | | do_account_name | | {stage} | ### Credentials Mapping defaults ```python [ { "gopass_path": "server/devops/digitalocean/s3", "gopass_field": "id", "name": "do_spaces_access_id", }, { "gopass_path": "server/devops/digitalocean/s3", "gopass_field": "secret", "name": "do_spaces_secret_key", }, ] ``` ## Example Usage ### build.py ```python from os import environ from pybuilder.core import task, init from ddadevops import * name = 'my-project' MODULE = 'my-module' PROJECT_ROOT_PATH = '..' @init def initialize(project): project.build_depends_on("ddadevops>=4.0.0") input = { "credentials_mapping": [ { "gopass_path": environ.get("DIGITALOCEAN_TOKEN_KEY_PATH", None), "name": "do_api_key", }, ], "name": name, "module": MODULE, "name": name, "module": MODULE, "stage": environ["STAGE"], "project_root_path": PROJECT_ROOT_PATH, "build_types": ["TERRAFORM"], "mixin_types": [], "tf_provider_types": ["DIGITALOCEAN"], "tf_use_workspace": False, "tf_terraform_semantic_version": "1.4.2", "do_as_backend": True, "do_bucket": "your-configuration", } build = DevopsTerraformBuild(project, config) build.initialize_build_dir() @task def plan(project): build = get_devops_build(project) build.plan() @task def apply(project): build = get_devops_build(project) build.apply(True) @task def destroy(project): build = get_devops_build(project) build.destroy() @task def tf_import(project): build = get_devops_build(project) build.tf_import( "terraform.resource", "providers id" ) ``` ### call the build ```bash pyb image plan apply destroy ```