Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
290 changes: 145 additions & 145 deletions modules/container-instance/container-group/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,7 @@ This module deploys a Container Instance Container Group.
- [Outputs](#Outputs)
- [Cross-referenced modules](#Cross-referenced-modules)
- [Deployment examples](#Deployment-examples)

### Container groups in Azure Container Instances

The top-level resource in Azure Container Instances is the container group. A container group is a collection of containers that get scheduled on the same host machine. The containers in a container group share a lifecycle, resources, local network, and storage volumes. It's similar in concept to a pod in Kubernetes.
- [Notes](#Notes)

## Resource types

Expand Down Expand Up @@ -64,43 +61,6 @@ The top-level resource in Azure Container Instances is the container group. A co
| `volumes` | array | `[]` | | Specify if volumes (emptyDir, AzureFileShare or GitRepo) shall be attached to your containergroup. |


### Parameter Usage: `imageRegistryCredentials`

The image registry credentials by which the container group is created from.

<details>

<summary>Parameter JSON format</summary>

```json
"imageRegistryCredentials": {
"value": [
{
"server": "sxxazacrx001.azurecr.io",
"username": "sxxazacrx001"
}
]
}
```

</details>

<details>

<summary>Bicep format</summary>

```bicep
imageRegistryCredentials: [
{
server: 'sxxazacrx001.azurecr.io'
username: 'sxxazacrx001'
}
]
```

</details>
<p>

### Parameter Usage: `tags`

Tag names and tag values can be provided as needed. A tag can be left without a value.
Expand Down Expand Up @@ -142,110 +102,6 @@ tags: {
</details>
<p>

### Parameter Usage: `autoGeneratedDomainNameLabelScope`

DNS name reuse is convenient for DevOps within any modern company. The idea of redeploying an application by reusing the DNS name fulfills an on-demand philosophy that secures cloud development. Therefore, it's important to note that DNS names that are available to anyone become a problem when one customer releases a name only to have that same name taken by another customer. This is called subdomain takeover. A customer releases a resource using a particular name, and another customer creates a new resource with that same DNS name. If there were any records pointing to the old resource, they now also point to the new resource.

This field can only be used when the `ipAddressType` is set to `Public`.

Allowed values are:
| Policy name | Policy definition | | | |
|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|---|---|
| unsecure | Hash will be generated based on only the DNS name. Avoiding subdomain takeover is not guaranteed if another customer uses the same DNS name. | | | |
| tenantReuse | Default Hash will be generated based on the DNS name and the tenant ID. Object's domain name label can be reused within the same tenant. | | | |
| subscriptionReuse | Hash will be generated based on the DNS name and the tenant ID and subscription ID. Object's domain name label can be reused within the same subscription. | | | |
| resourceGroupReuse | Hash will be generated based on the DNS name and the tenant ID, subscription ID, and resource group name. Object's domain name label can be reused within the same resource group. | | | |
| noReuse | Hash will not be generated. Object's domain label can't be reused within resource group, subscription, or tenant. | | | |

<details>

<summary>Parameter JSON format</summary>

```json
"autoGeneratedDomainNameLabelScope": {
"value": "Unsecure"
},
```

</details>

<details>

<summary>Bicep format</summary>

```bicep
autoGeneratedDomainNameLabelScope: 'Unsecure'
```

</details>
<p>

### Parameter Usage: `volumes`

By default, Azure Container Instances are stateless. If the container is restarted, crashes, or stops, all of its state is lost. To persist state beyond the lifetime of the container, you must mount a volume from an external store. Currently, Azure volume mounting is only supported on a linux based image.

You can mount:

- an Azure File Share (make sure the storage account has a service endpoint when running the container in private mode!)
- a secret
- a GitHub Repository
- an empty local directory

<details>

<summary>Parameter JSON format</summary>

```json
"volumes": [
{
"azureFile": {
"readOnly": "bool",
"shareName": "string",
"storageAccountKey": "string",
"storageAccountName": "string"
},
"emptyDir": {},
"gitRepo": {
"directory": "string",
"repository": "string",
"revision": "string"
},
"name": "string",
"secret": {}
}
]
```

</details>

<details>

<summary>Bicep format</summary>

```bicep
volumes: [
{
azureFile: {
readOnly: bool
shareName: 'string'
storageAccountKey: 'string'
storageAccountName: 'string'
}
emptyDir: any()
gitRepo: {
directory: 'string'
repository: 'string'
revision: 'string'
}
name: 'string'
secret: {}
}
]
```

</details>
<p>

### Parameter Usage: `userAssignedIdentities`

You can specify multiple user assigned identities to a resource by providing additional resource IDs using the following format:
Expand Down Expand Up @@ -1022,3 +878,147 @@ module containerGroup './container-instance/container-group/main.bicep' = {

</details>
<p>


## Notes

### Parameter Usage: `imageRegistryCredentials`

The image registry credentials by which the container group is created from.

<details>

<summary>Parameter JSON format</summary>

```json
"imageRegistryCredentials": {
"value": [
{
"server": "sxxazacrx001.azurecr.io",
"username": "sxxazacrx001"
}
]
}
```

</details>

<details>

<summary>Bicep format</summary>

```bicep
imageRegistryCredentials: [
{
server: 'sxxazacrx001.azurecr.io'
username: 'sxxazacrx001'
}
]
```

</details>
<p>

### Parameter Usage: `autoGeneratedDomainNameLabelScope`

DNS name reuse is convenient for DevOps within any modern company. The idea of redeploying an application by reusing the DNS name fulfills an on-demand philosophy that secures cloud development. Therefore, it's important to note that DNS names that are available to anyone become a problem when one customer releases a name only to have that same name taken by another customer. This is called subdomain takeover. A customer releases a resource using a particular name, and another customer creates a new resource with that same DNS name. If there were any records pointing to the old resource, they now also point to the new resource.

This field can only be used when the `ipAddressType` is set to `Public`.

Allowed values are:
| Policy name | Policy definition | | | |
|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|---|---|
| unsecure | Hash will be generated based on only the DNS name. Avoiding subdomain takeover is not guaranteed if another customer uses the same DNS name. | | | |
| tenantReuse | Default Hash will be generated based on the DNS name and the tenant ID. Object's domain name label can be reused within the same tenant. | | | |
| subscriptionReuse | Hash will be generated based on the DNS name and the tenant ID and subscription ID. Object's domain name label can be reused within the same subscription. | | | |
| resourceGroupReuse | Hash will be generated based on the DNS name and the tenant ID, subscription ID, and resource group name. Object's domain name label can be reused within the same resource group. | | | |
| noReuse | Hash will not be generated. Object's domain label can't be reused within resource group, subscription, or tenant. | | | |

<details>

<summary>Parameter JSON format</summary>

```json
"autoGeneratedDomainNameLabelScope": {
"value": "Unsecure"
},
```

</details>

<details>

<summary>Bicep format</summary>

```bicep
autoGeneratedDomainNameLabelScope: 'Unsecure'
```

</details>
<p>

### Parameter Usage: `volumes`

By default, Azure Container Instances are stateless. If the container is restarted, crashes, or stops, all of its state is lost. To persist state beyond the lifetime of the container, you must mount a volume from an external store. Currently, Azure volume mounting is only supported on a linux based image.

You can mount:

- an Azure File Share (make sure the storage account has a service endpoint when running the container in private mode!)
- a secret
- a GitHub Repository
- an empty local directory

<details>

<summary>Parameter JSON format</summary>

```json
"volumes": [
{
"azureFile": {
"readOnly": "bool",
"shareName": "string",
"storageAccountKey": "string",
"storageAccountName": "string"
},
"emptyDir": {},
"gitRepo": {
"directory": "string",
"repository": "string",
"revision": "string"
},
"name": "string",
"secret": {}
}
]
```

</details>

<details>

<summary>Bicep format</summary>

```bicep
volumes: [
{
azureFile: {
readOnly: bool
shareName: 'string'
storageAccountKey: 'string'
storageAccountName: 'string'
}
emptyDir: any()
gitRepo: {
directory: 'string'
repository: 'string'
revision: 'string'
}
name: 'string'
secret: {}
}
]
```

</details>
<p>
35 changes: 0 additions & 35 deletions modules/container-registry/registry/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,41 +141,6 @@ roleAssignments: [
</details>
<p>

### Parameter Usage: `imageRegistryCredentials`

The image registry credentials by which the container group is created from.

<details>

<summary>Parameter JSON format</summary>

```json
"acrName": {
"value": {
"server": "acrx001",
}
},
"acrAdminUserEnabled": {
"value": false
}
```

</details>

<details>

<summary>Bicep format</summary>

```bicep
acrName: {
server: 'acrx001'
}
acrAdminUserEnabled: false
```

</details>
<p>

### Parameter Usage: `privateEndpoints`

To use Private Endpoint the following dependencies must be deployed:
Expand Down
Loading