https://github.com/multicloud-iac/terraform-azurerm-web-app-container
Terraform Module - Azure Web App Container
https://github.com/multicloud-iac/terraform-azurerm-web-app-container
azure-webapp demo-module demo-terraform terraform-azure terraform-enterprise terraform-module
Last synced: 5 months ago
JSON representation
Terraform Module - Azure Web App Container
- Host: GitHub
- URL: https://github.com/multicloud-iac/terraform-azurerm-web-app-container
- Owner: multicloud-iac
- License: mit
- Created: 2019-06-14T21:19:33.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-07-09T21:39:36.000Z (almost 5 years ago)
- Last Synced: 2024-08-02T22:19:38.261Z (9 months ago)
- Topics: azure-webapp, demo-module, demo-terraform, terraform-azure, terraform-enterprise, terraform-module
- Language: HCL
- Homepage:
- Size: 15.6 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - multicloud-iac/terraform-azurerm-web-app-container - Terraform Module - Azure Web App Container (HCL)
README
# Terraform Module to create Azure Web App Containers
Create Web App for Containers (Azure App Service).
## Example Usage
```hcl
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "centralus"
}module "web_app_container" {
# Example source URL points to Terraform Enterprise Private Module Registrysource = "app.terraform.io/multicloud/web-app-container/azurerm"
version = "2.6.1"name = "hello-world"
resource_group_name = azurerm_resource_group.example.name
container_type = "docker"
container_image = "robpco/palacearcade:latest"
}
```## Arguments
| Name | Type | Description |
| -------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------- |
| `name` | `string` | The name of the web app. |
| `resource_group_name` | `string` | The name of an existing resource group to use for the web app. |
| `plan` | `object` | App Service plan properties. This should be `plan` object. |
| `container_type` | `string` | Type of container. The options are: `docker`, `compose` and `kube`. Default: `docker`. |
| `container_config` | `string` | Configuration for the container. This should be YAML. |
| `container_image` | `string` | Container image name. Example: `innovationnorway/go-hello-world:latest`. |
| `port` | `string` | The value of the expected container port number. |
| `enable_storage` | `bool` | Mount an SMB share to the `/home/` directory. Default: `false`. |
| `start_time_limit` | `string` | Configure the amount of time (in seconds) the app service will wait before it restarts the container. Default: `230`. |
| `command` | `string` | A command to be run on the container. |
| `app_settings` | `map` | Set app settings. These are avilable as environment variables at runtime. |
| `secure_app_settings` | `map` | Set sensitive app settings. Uses Key Vault references as values for app settings. |
| `key_vault_id` | `string` | The ID of an existing Key Vault. Required if `secure_app_settings` is set. |
| `https_only` | `bool` | Redirect all traffic made to the web app using HTTP to HTTPS. Default: `true`. |
| `ftps_state` | `string` | Set the FTPS state value the web app. The options are: `AllAllowed`, `Disabled` and `FtpsOnly`. Default: `Disabled`. |
| `ip_restrictions` | `list` | A list of IP addresses in CIDR format specifying Access Restrictions. |
| `custom_hostnames` | `list` | List of custom hostnames to use for the web app. |
| `identity` | `object` | Managed service identity properties. This should be `identity` object. |
| `auth` | `object` | Auth settings for the web app. This should be `auth` object. |
| `docker_registry_username` | `string` | The container registry username. |
| `docker_registry_url` | `string` | The container registry url. Default: `https://index.docker.io` |
| `docker_registry_password` | `string` | The container registry password. |
| `storage_mounts` | `list` | List of storage mounts for the web app. |
| `tags` | `map` | A mapping of tags to assign to the web app. |The `plan` object accepts the following keys:
| Name | Type | Description |
| ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | `string` | The ID of an existing app service plan. |
| `name` | `string` | The name of a new app service plan. |
| `sku_size` | `string` | The SKU size of a new app service plan. The options are: `F1`, `D1`, `B1`, `B2`, `B3`, `S1`, `S2`, `S3`, `P1v2`, `P2v2`, `P3v2`. Default: `F1`. |The `sku_size` parameter can be one of the following:
| Size | Tier | Description |
| ---------------------- | --------- | -------------------- |
| `F1`, `Free` | Free | Free |
| `D1`, `Shared` | Shared | Shared |
| `B1`, `B2`, `B3` | Basic | Small, Medium, Large |
| `S1`, `S2`, `S3` | Standard | Small, Medium, Large |
| `P1v2`, `P2v2`, `P3v2` | PremiumV2 | Small, Medium, Large |The `identity` object accepts the following keys:
| Name | Type | Description |
| --------- | ------ | ----------------------------------------------------------------------------- |
| `enabled` | `bool` | Whether managed service identity is enabled for the web app. Default: `true`. |
| `ids` | `list` | List of user managed identity IDs. |The `storage_mounts` object accepts the following keys:
| Name | Type | Description |
| ---------------- | -------- | ---------------------------------------------------------------------------------------------- |
| `name` | `string` | The identifier of the storage mount. |
| `account_name` | `string` | The name of the storage account. |
| `share_name` | `string` | The name of the file share. |
| `container_name` | `string` | The name of the blob container. Either this or `share_name` should be specified, but not both. |
| `mount_path` | `string` | The path to mount the storage within the web app. |The `auth` object accepts the following keys:
| Name | Type | Description |
| --------------------- | -------- | ------------------------------------------------------------------------------- |
| `enabled` | `bool` | Whether authentication is enabled for the web app. |
| `token_store_enabled` | `bool` | Whether token store is enabled for the web app. |
| `active_directory` | `object` | Azure Active Directory auth settings. This should be `active_directory` object. |The `active_directory` object accepts the following keys:
| Name | Type | Description |
| --------------- | -------- | ----------------------------------------- |
| `client_id` | `string` | The ID of the Azure AD application. |
| `client_secret` | `string` | The password of the Azure AD Application. |