Skip to content

AleksFirsta/terraform-provider-morpheus

 
 

Repository files navigation

Terraform Provider for Morpheus

GitHub tag (latest SemVer) license

This is the Terraform provider for the Morpheus Data Cloud Management Platform (CMP). It interfaces with the Morpheus API using the morpheus-go-sdk client. Like all Terraform Providers, it is written in Go.

This is being developed in conjunction with morpheus-go-sdk.

Requirements


  • Terraform | 0.13+
  • Go 1.20 (to build the provider plugin)

Getting Started


The best way to get started using the Morpheus Terraform provider is by following the getting started guide.

Supported Resources


The following list of resources are supported by the Morpheus Terraform provider:

Resource Name Description
morpheus_active_directory_identity_source Morpheus active directory identity source resource
morpheus_ansible_integration Morpheus ansible_integration resource
morpheus_ansible_playbook_task Morpheus ansible playbook automation task resource
morpheus_ansible_tower_integration Morpheus ansible tower integration resource
morpheus_ansible_tower_task Morpheus ansible tower task resource
morpheus_api_option_list Morpheus api_option_list resource
morpheus_app_blueprint_catalog_item Morpheus app_blueprint_catalog_item resource
morpheus_arm_app_blueprint Morpheus ARM app blueprint resource
morpheus_arm_spec_template Morpheus ARM spec template resource
morpheus_aws_cloud Morpheus AWS cloud integration resource
morpheus_backup_creation_policy Morpheus backup creation policy resource
morpheus_backup_setting Morpheus backup setting resource
morpheus_boot_script Morpheus boot script resource
morpheus_budget_policy Morpheus budget policy resource
morpheus_checkbox_option_type Morpheus checkbox option type resource
morpheus_cloud_formation_app_blueprint Morpheus Cloud Formation app blueprint resource
morpheus_cloud_formation_spec_template Morpheus Cloud Formation spec template resource
morpheus_cluster_layout Morpheus cluster layout resource
morpheus_cluster_resource_name_policy Morpheus cluster resource name policy resource
morpheus_contact Morpheus contact resource
morpheus_docker_registry_integration Morpheus docker_registry_integration resource
morpheus_cypher_access_policy Morpheus cypher access policy resource
morpheus_delayed_delete_policy Morpheus delayed delete policy resource
morpheus_email_task Morpheus email task resource
morpheus_environment Morpheus environment resource
morpheus_execute_schedule Morpheus execute schedule resource
morpheus_file_template Morpheus file template resource
morpheus_git_integration Morpheus git_integration resource
morpheus_groovy_task Morpheus groovy script task resource
morpheus_group Morpheus group resource
morpheus_guidance_setting Morpheus guidance setting resource
morpheus_helm_app_blueprint Morpheus HELM app blueprint resource
morpheus_helm_spec_template Morpheus HELM spec template resource
morpheus_hidden_option_type Morpheus hidden option type resource
morpheus_hostname_policy Morpheus hostname policy resource
morpheus_instance_catalog_item Morpheus instance_catalog_item resource
morpheus_instance_layout Morpheus instance_layout resource
morpheus_instance_type Morpheus instance_type resource
morpheus_kubernetes_app_blueprint Morpheus Kubernetes app blueprint resource
morpheus_kubernetes_spec_template Morpheus Kubernetes spec template resource
morpheus_javascript_task Morpheus javascript task resource
morpheus_library_script_task Morpheus library script task resource
morpheus_library_template_task Morpheus library template task resource
morpheus_manual_option_list Morpheus manual option list resource
morpheus_max_containers_policy Morpheus max containers policy resource
morpheus_max_cores_policy Morpheus max cores policy resource
morpheus_max_hosts_policy Morpheus max hosts policy resource
morpheus_max_memory_policy Morpheus max memory policy resource
morpheus_max_storage_policy Morpheus max storage policy resource
morpheus_max_vms_policy Morpheus max vms policy resource
morpheus_monitoring_setting Morpheus monitoring setting resource
morpheus_motd_policy Morpheus message of the day policy resource
morpheus_network_domain Morpheus network domain resource
morpheus_network_quota_policy Morpheus network quota policy resource
morpheus_node_type Morpheus node_type resource
morpheus_number_option_type Morpheus number option type resource
morpheus_operational_workflow Morpheus operational automation workflow resource
morpheus_password_option_type Morpheus password option type resource
morpheus_power_schedule_policy Morpheus power schedule policy resource
morpheus_powershell_script_task Morpheus powershell script task resource
morpheus_preseed_script Morpheus preseed script resource
morpheus_price Morpheus price resource
morpheus_price_set Morpheus price set resource
morpheus_provisiong_setting Morpheus provisioning setting resource
morpheus_provisiong_workflow Morpheus provisioning automation workflow resource
morpheus_puppet_integration Morpheus puppet integration resource
morpheus_python_script_task Morpheus python script automation task resource
morpheus_radio_list_option_type Morpheus radio list option type resource
morpheus_resource_pool_group Morpheus resource pool group resource
morpheus_rest_option_list Morpheus REST API option list resource
morpheus_restart_task Morpheus restart task resource
morpheus_router_quota_policy Morpheus router quota policy resource for configuring router quotas based upon the group, cloud, role, user or globally
morpheus_ruby_script_task Morpheus ruby script task resource
morpheus_scale_threshold Morpheus scale threshold resource
morpheus_script_template Morpheus script template resource
morpheus_select_list_option_type Morpheus select list option type resource
morpheus_service_plan Morpheus service plan resource
morpheus_shell_script_task Morpheus shell script task resource
morpheus_tag_policy Morpheus tag policy resource
morpheus_task_job Morpheus task job resource for scheduling automation tasks
morpheus_tenant Morpheus tenant resource
morpheus_terraform_app_blueprint Morpheus Terraform app blueprint resource
morpheus_terraform_spec_template Morpheus Terraform spec template resource
morpheus_text_option_type Morpheus text option type resource
morpheus_textarea_option_type Morpheus text area option type resource
morpheus_typeahead_option_type Morpheus typeahead option type resource
morpheus_user_creation_policy Morpheus user creation policy resource for configuring user creation based upon the group, cloud, role, user or globally
morpheus_user_group_creation_policy Morpheus user group creation policy resource for configuring user group creation based upon the group, cloud, role, user or globally
morpheus_user_role Morpheus user role resource
morpheus_vro_integration Morpheus VMware vRealize Orchestrator integration resource
morpheus_vro_task Morpheus VMware vRealize Orchestrator task resource
morpheus_vsphere_cloud Morpheus VMware vSphere cloud resource
morpheus_vsphere_instance Morpheus VMware vSphere instance resource
morpheus_wiki_page Morpheus wiki page resource for creating and managing wiki pages
morpheus_workflow_catalog_item Morpheus workflow catalog item resource for creating and managing operational workflow catalog items
morpheus_workflow_policy Morpheus workflow policy resource for assigning a workflow to a group, cloud, role, user or globally
morpheus_write_attributes_task Morpheus write attributes task resource for storing values from XaaS instance phases

Supported Data Sources


The following list of data sources are supported by the Morpheus Terraform provider:

Data Source Name Description
morpheus_ansible_tower_inventory Morpheus ansible tower inventory data source
morpheus_ansible_tower_job_template Morpheus ansible tower job template data source
morpheus_blueprint Morpheus blueprint data source
morpheus_budget Morpheus budget data source
morpheus_cloud Morpheus cloud data source
morpheus_contact Morpheus contact data source
morpheus_credential Morpheus credential data source
morpheus_environment Morpheus environment data source
morpheus_execute_schedule Morpheus execute schedule data source
morpheus_file_template Morpheus file template data source
morpheus_group Morpheus group data source
morpheus_instance_layout Morpheus isntance layout data source
morpheus_instance_type Morpheus instance type data source
morpheus_integration Morpheus integration data source
morpheus_job Morpheus job data source
morpheus_network Morpheus network data source
morpheus_network_group Morpheus network group data source
morpheus_node_type Morpheus node type data source
morpheus_option_list Morpheus option list data source
morpheus_option_type Morpheus option type data source
morpheus_plan Morpheus plan data source
morpheus_policy Morpheus policy data source
morpheus_power_schedule Morpheus power schedule data source
morpheus_price Morpheus price data source
morpheus_price_set Morpheus price set data source
morpheus_resource_pool Morpheus resources pool data source
morpheus_script_template Morpheus script template data source
morpheus_spec_template Morpheus spec template data source
morpheus_storage_bucket Morpheus storage bucket data source
morpheus_task Morpheus automation task data source
morpheus_tenant_role Morpheus automation tenant role data source
morpheus_tenant Morpheus automation tenant data source
morpheus_user_group Morpheus user group data source
morpheus_virtual_image Morpheus virtual image data source
morpheus_vro_workflow Morpheus VMware vRealize Orchestrator workflow data source
morpheus_workflow Morpheus workflow data source

Building the provider


Clone repository to: $GOPATH/src/github.com/gomorpheus/terraform-provider-morpheus

mkdir -p $GOPATH/src/github.com/gomorpheus; cd $GOPATH/src/github.com/gomorpheus
git clone git@github.com:gomorpheus/terraform-provider-morpheus

As an alternative to cloning manually, you can use go get:

go get -v github.com/gomorpheus/terraform-provider-morpheus/...

Enter the provider directory.

cd $GOPATH/src/github.com/gomorpheus/terraform-provider-morpheus

Build the provider using make dev. This will place the provider onto your system in a Terraform 0.13-compliant manner.

make dev

You'll need to ensure that your Terraform file contains the information necessary to find the plugin when running terraform init. make dev will use a version number of 0.0.1, so the following block will work:

terraform {
  required_providers {
    morpheus = {
      source = "localhost/providers/morpheus"
      version = "0.0.1"
    }
  }
}

Generating Docs


From the root of the repo run:

go run github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs

Developing the provider


See the contributing directory for more developer documentation.

About

Terraform Morpheus provider

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.8%
  • Other 0.2%