---
# System prepended metadata

title: logistics-wms-infrastructure

---

# logistics-wms-infrastructure

## How to use?

1.  [Install Terraform](https://learn.hashicorp.com/tutorials/terraform/install-cli)
2.  Clone this repository

### commands:

Inside the project folder run `terraform workspace list`
you see list exist workspaces in terraform, usally have only **default**

In our project, default is equals dev workspace.

To see varibles available for modification, look the file `variable.tf`.
In this files exist all variables to project and your possible typing.

- ##### Ex:

      ```
      variable "labels" {
            description = "key and value of all labels used for the entire pubsub"
            type        = map(string)
            default = {
              domain  = "logistics",
              tribe   = "logistics",
              squad   = "wms",
              project = "driverpayment"
            }
      }
      ```

  In this exemple is possible add more labels on list, `name` for exemple, important the value meets the typing which is `string`.
  This values show pubsub's labels on GCP.

  ```
  variable "labels" {
        description = "key and value of all labels used for the entire pubsub"
        type        = map(string)
        default = {
          name    = "driver-paymente"
          domain  = "logistics",
          tribe   = "logistics",
          squad   = "wms",
          project = "driverpayment"
        }
  }
  ```

#### Develop:

If you want to run terraform in **dev**, just enter the project folder you want and run the commands:
`terraform init` - this will install terraform dependencies.
`terraform plan` - this will create terraform plan execution, use this plan for revision your changes.
`terraform apply` - this will apply changes plan in GCP **dev** .

> In case something wrong use `terraform destroy`, this command destroy all changes includes in your plan

#### Production:

For production the first command should be for set **prod** on terraform workspace, do this using
`terraform workspace new prod`

Done that, you can repeat the same [dev](#develop) instructions, **only with more responsibility**

To come back for **dev** use `terraform workspace select dev`
