https://github.com/philips-labs/dicom-on-hsdp
https://github.com/philips-labs/dicom-on-hsdp
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/philips-labs/dicom-on-hsdp
- Owner: philips-labs
- Created: 2021-02-23T13:25:22.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-07-20T11:51:09.000Z (about 4 years ago)
- Last Synced: 2025-01-18T05:30:46.305Z (9 months ago)
- Language: HCL
- Size: 16.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# HSDP DICOM Store
## Requirements
| Name | Version |
|------|---------|
|[hsdp](https://registry.terraform.io/modules/philips-labs/dicom/hsdp/latest) | >= 0.16.1 |
|[Terraform](https://www.terraform.io/downloads.html) | >= v0.15.1|## Providers
No providers.
## Modules
## Resources
No resources.
## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [environment](#input\_environment) | Possible values: `dev`, `client-test`, `prod`. | `string` | n/a | yes |
| [region](#input\_region) | Deployment Region. Possible values: `us-east-1`, `eu-west-1` | `string` | n/a | yes |
| [is_instance_shared](#input\_is\_instance\_shared) | DICOMStore deployment type. Possible values: `true`, `false` | `bool` | false | no |
| [cdr\_base\_url](#input\_cdr\_base\_url) | CDR Base URL which is provided for DICOM Store onboarding (E.g: https://cdr-example.us-east.philips-healthsuite.com) | `string` | n/a | yes |
| [dss\_config\_url](#input\_dss\_config\_url) | DICOM Store config URL (Should have received from Onboarding Request) | `string` | n/a | yes |
| [iam\_url](#input\_iam\_url) | IAM URL. E.g. https://iam-development.us-east.philips-healthsuite.com | `string` | n/a | yes |
| [idm\_url](#input\_idm\_url) | IDM URL. E.g. https://idm-development.us-east.philips-healthsuite.com | `string` | n/a | yes |
| [oauth2\_client\_id](#input\_oauth2\_client\_id) | OAauth2 Client Id | `string` | n/a | yes |
| [oauth2\_password](#input\_oauth2\_password) | OAuth2 Password | `string` | n/a | yes |
|
| [org\_admin\_username](#input\_org\_admin\_username) | Organization admin username.
E.g. kareppa.hipparagi@philips.com | `string` | n/a | yes |
[org\_admin\_password](#input\_org\_admin\_password) | Organization admin password. | `string` | n/a | yes |
| [managing\_root\_definition](#input\_managing\_root\_definition) | Managing root configuration.
If 'input_is_instance_shared' is set to true then 'shared_cdr_service_account_id' is mandatory.
If 'use_default_object_store_for_all_orgs' set to true then s3creds_bucket_name and s3creds_product_key are mandatory. Also, use can skip the s3creds details in tenant _definitions.
|object({| `null` | yes |
organization_id = string
admin_users = list(string)
dicom_users = optional(list(string))
s3creds_bucket_name = optional(string)
s3creds_product_key = optional(string)
force_delete_object_store = optional(bool)
use_default_object_store_for_all_orgs = optional(bool)
repository_organization_id = optional(string)
shared_cdr_service_account_id = optional(string)
mpi_endpoint = optional(string)
})
| [tenant\_definitions](#input\_tenant\_definitions) | List of tenant configurations |list(object({| `[]` | no |
managing_root_organization_id = string
tenant_organization_id = string
admin_users = list(string)
dicom_users = optional(list(string))
s3creds_bucket_name = optional(string)
s3creds_product_key = optional(string)
force_delete_object_store = optional(bool)
repository_organization_id = optional(string)
}))## Outputs
No outputs.
## Running Terraform Scripts
* `terraform init`
* `terraform plan`
* `terraform apply`## Best Practices
* Always run `terraform plan` to understand the resources creation and updates.
* Use `terrraform destroy` very carefully as this will destroy all the existing configurations which are created using `terraform apply`. Not recommended for production use cases.
* Try avoiding the deletion of the terraform `tfstate` files section which results in destroy of those resources.
* Have secure credentials in var file and provide during the terraform command execution.
Run terraform command with var-file
```bash
$ cat config/secrets.dev.tfvars
oauth2_client_id = "devOAuthClientId"
oauth2_password = "devOAuthSecret"
org_admin_username = "admin@philips.com"
org_admin_password = "mypassword"
$ terraform plan -var-file="secrets.dev.tfvars"
```
With `var-file`, you can easily manage environment (dev/stag/prod) variables.* Enable version control on terraform state files.
* Manage tfstate files securely
* Turn on debug when you need do troubleshooting
```bash
debug_log = "c:\\temp\\terrraform.log"
```
* Validate and format terraform codeAlways run `terraform fmt -recursive` to format terraform files and make them neat.
# Contact / Getting help
Post your questions on the `#terraform` HSDP Slack channel
# License
License is MIT