4 |
5 |
6 | You may change the disk size of both the master VM and agent VMs using the `OSDiskSizeGB` parameter. Providing more disk space to these VMs may allow you to have a longer retention period for your logs or cache things to disk from your containers. Valid disk sizes are between `1GB` and `1023GB`
7 |
8 | ## Deployment
9 | Please make sure that you have created a resource group in one of the following regions: `ukwest` or `uksouth`.
10 |
11 | You will also need to change the following values in the `azuredeploy.params.kubernetes.json` file:
12 | * `masterDnsNamePrefix`
13 | * `agentDnsNamePrefix`
14 | * `windowsAgentAdminPassword`
15 | * `sshaRSAPublicKey`
16 | * `servicePrincipalClientId`
17 | * `servicePrincipalClientSecret`
18 |
19 | You can deploy an ACS cluster with the following command:
20 |
21 | `az group deployment create -g
24 |
25 |
26 | ## After deployment
27 | You should be able to check the public agent pool's nsg rules, in [azure portal](https://portal.azure.com/)
28 | 
--------------------------------------------------------------------------------
/announcements/2017-06-28-acs-uk-public-preview.md:
--------------------------------------------------------------------------------
1 | # Microsoft Azure Container Service
2 |
3 | ## ACS UK Public Preview Release
4 | **Announced: June 28, 2017**
5 |
6 | On June 28, 2017, the Azure Container Service team released a new version of the
7 | service as public preview in the UK region. This is available in the `ukwest`
8 | and `uksouth` regions. The new service is based on the open-source heart of
9 | ACS: [ACS-Engine](https://github.com/Azure/acs-engine). As part of this new
10 | release, a new preview header version `2017-07-01` is now available.
11 |
12 | The new header version `2017-07-01` exposes the following new preview features:
13 |
14 | 1. [Simple Clusters](../docs/Simple/README.md) - Deploy a standard cluster
15 | 2. [Large Clusters](../docs/LargeCluster/README.md) - Supports multiple worker pools
16 | 3. [Storage via Managed Disks](../docs/ManagedDisks/README.md) - Support for storing OS disks in Azure's new Managed Disk feature (see #3)
17 | 4. [Storage via Storage Accounts](../docs/StorageAccount/README.md) - Support for storing OS disks in Azure's classic Storage Accounts
18 | 5. [Configurable Master Size](../docs/MasterSize/README.md) - User control over Master VM SKU/size
19 | 6. [Configurable OS Disk Size](../docs/OSDiskSize/README.md) - User control over Master VM OS Disk size
20 | 7. [Configurable Network Ports](../docs/Ports/README.md) - User control over additional network ports
21 | 8. [Bring your own VNET](../docs/VNET/README.md) - User control of the network the cluster is deployed into
22 | 9. [Windows](../docs/Windows/README.md) - Support for deploying Windows clusters
23 |
24 | You may wish to start with [the documentation index page](../docs/README.md) which contains
25 | instructions for deploying via [Azure CLI](https://github.com/Azure/azure-cli). Additionally, each extended feature
26 | page should contain a link to deploy via the Portal.
27 |
28 | And don't forget, these new features only work in `ukwest` and `uksouth`,
29 | for now.
--------------------------------------------------------------------------------
/docs/ManagedDisks/README.md:
--------------------------------------------------------------------------------
1 | # Azure Container Service - Managed Disks
2 |
3 | You can now create clusters with all managed disks, meaning the whole cluster has encryption at rest by default, as can be [read here](https://azure.microsoft.com/blog/azure-managed-disks-sse/?v=17.23h)
4 |
5 | All orchestrators clusters in version “vlabs” and v20170701 use managed disks by default on all masters and agents with the exception of K8S agents. If you don’t need Kubernetes persistent volumes, you can even override K8S agents to use managed disks [example here](https://github.com/Azure/acs-engine/blob/master/examples/disks-managed/kubernetes-preAttachedDisks-vmas.json)
6 |
7 | ## Before using sample template and parameters
8 | - Replace GEN-UNIQUE and GEN-UNIQUE-2 with different unique strings
9 | - Replace GEN-SSH-PUB-KEY with valid SSH public key
10 | - Replace GEN-CLIENT-ID and GEN-CLIENT-SECRET with valid service principal client Id and client secret
11 |
12 | ## Deploy using sample template and parameters
13 | With the provided sample ARM templates and parameters,
14 | - Using [az cli](https://github.com/Azure/azure-cli) to deploy
15 | ```
16 | az group deployment create -g
7 |
8 |
9 | ## Deploying 'az' cli
10 | ### Prerequsites
11 | This demo will use [Azure cli](https://github.com/Azure/azure-cli).
12 | 1. `az login`
13 | 2. `az account set --subscription ${SUBSCRIPTION_ID}`
14 |
15 | ### Steps to create DCOS cluster
16 | 1. `az group create -l ukwest -n acs-demo-dcos`
17 | 2. edit `azuredeploy.params.dcos.json`
18 | - Replace GEN-SSH-PUB-KEY with
19 | - Replace GEN-UNIQUE with proper unique dns prefix(s), each needs to be unique
20 | - Change any agent pool counts or vm sizes to desired values
21 | 3. `az group deployment create -g acs-demo-dcos --template-file azuredeploy.json --parameters azuredeploy.params.dcos.json`
22 |
23 | ### Steps to create DockerCE cluster
24 | 1. `az group create -l ukwest -n acs-demo-dockerce`
25 | 2. edit `azuredeploy.params.dockerce.json`
26 | - Replace GEN-SSH-PUB-KEY with
27 | - Replace GEN-UNIQUE with proper unique dns prefix(s), each needs to be unique
28 | - Change any agent pool counts or vm sizes to desired values
29 | 3. `az group deployment create -g acs-demo-dockerce --template-file azuredeploy.json --parameters azuredeploy.params.dockerce.json`
30 |
--------------------------------------------------------------------------------
/docs/VNET/README.md:
--------------------------------------------------------------------------------
1 | # Custom VNET
2 |
3 | ## Overview
4 |
5 | These examples show you how to build a customized Docker enabled cluster on Microsoft Azure where you can provide your own VNET.
6 |
7 | These examples use two new primitives named `vnetSubnetId` and `firstConsecutiveStaticIP`.
8 |
9 | To try:
10 |
11 | 1. first deploy a custom vnet. An example of an arm template that does this is under directory vnetarmtemplate.
12 | 2. next configure the example templates and deploy according to the examples:
13 | 3. For Kubernetes, you will need to apply the following workaround when deploying a cluster in a custom VNET with
14 | Kubernetes 1.6.0:
15 | 1. After a cluster has been created in step 6 get id of the route table resource from Microsoft.Network provider in your resource group.
16 | The route table resource id is of the format:
17 | `/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.Network/routeTables/ROUTETABLENAME`
18 | 2. Update properties of all subnets in the newly created VNET that are used by Kubernetes cluster to refer to the route table resource by appending the following to subnet properties:
19 | ```shell
20 | "routeTable": {
21 | "id": "/subscriptions/
38 |
39 |
40 | ### DockerCE & Kubernetes
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/announcements/2017-08-22_scenario_usage.md:
--------------------------------------------------------------------------------
1 |
2 | ### The ACS New RP V2 enables a bunch of new features including:
3 | 1) Exisiting VNET Support
4 | 2) Choice of master size
5 | 3) Multiple agent pools
6 | 4) Choice of managed disks vs storage account and their respective sizes for Masters and Agents
7 |
8 | The below use cases will be documented on ACOM when the RP V2 is Generally Available in a month or so.
9 | Please try them out and provide feedback on the issues section of this repo.
10 |
11 | Preview features only available in the following regions:
12 | UK West
13 | UK South
14 | West Central US
15 | West US 2
16 | Canada East
17 | Canada Central
18 | West India
19 | South India
20 | Central India
21 |
22 | ### Install Azure CLI v 2.0.14
23 | ### https://github.com/Azure/azure-cli
24 |
25 | #### Login
26 | ` az login `
27 |
28 | #### Create a resource group
29 | ` az group create -n
37 |
38 | ### For DC/OS
39 |
40 |
41 |
42 | ## Deployment with [Azure CLI](https://github.com/Azure/azure-cli)
43 |
44 | (This assumes you are using Azure CLI from a bash environment. If not, you will
45 | need to copy-paste these instructions as appropriate into cmd.exe)
46 |
47 | ```
48 | export CLUSTER_NAME="choose_a_name"
49 | export LOCATION="uksouth"
50 |
51 | ```
52 |
53 | ### For Kubernetes:
54 |
55 | Replace all instances of the value `GEN-UNIQUE` in the provided sample parameters file `azuredeploy.params.kubernetes.json` with appropriate values for your environment. Then:
56 |
57 | ```az group create --name ${CLUSTER_NAME} --location ${LOCATION}
58 | az group deployment create \
59 | --resource-group "${CLUSTER_NAME}-deployment-${RANDOM}" \
60 | --template-file "./azuredeploy.json" \
61 | --parameters "./azuredeploy.params.kubernetes.json"
62 | ```
63 |
64 | ### For DC/OS:
65 |
66 | Replace all instances of the value `GEN-UNIQUE` in the provided sample parameters file `azuredeploy.params.dcos.json` with appropriate values for your environment. Then:
67 |
68 | ```az group create --name ${CLUSTER_NAME} --location ${LOCATION}
69 | az group deployment create \
70 | --resource-group "${CLUSTER_NAME}-deployment-${RANDOM}" \
71 | --template-file "./azuredeploy.dcos.json" \
72 | --parameters "./azuredeploy.params.dcos.json"
73 | ```
74 |
75 | ### For Docker CE:
76 |
77 | Replace all instances of the value `GEN-UNIQUE` in the provided sample parameters file `azuredeploy.params.dockerce.json` with appropriate values for your environment. Then:
78 |
79 | ```az group create --name ${CLUSTER_NAME} --location ${LOCATION}
80 | az group deployment create \
81 | --resource-group "${CLUSTER_NAME}-deployment-${RANDOM}" \
82 | --template-file "./azuredeploy.json" \
83 | --parameters "./azuredeploy.params.dockerce.json"
84 | ```
--------------------------------------------------------------------------------
/kubernetes-status.md:
--------------------------------------------------------------------------------
1 | # Status of Kubernetes on Azure
2 |
3 | Contents:
4 | * [Features Status](#features-status)
5 | * [Recommended Cluster Deployment Mechanism](#recommended-cluster-deployment-mechanism)
6 | * [Future Work](#future-work)
7 |
8 | ## Features Status
9 |
10 | | Feature | K8s 1.3.x | K8s 1.4.6 | K8s 1.5.1 | K8s 1.6.6 | PRs |
11 | | ------- | --------- | --------- | --------- | --------- | --- |
12 | | Native Pod Networking | | ✓ | ✓ | ✓ | [#28821](https://github.com/kubernetes/kubernetes/pull/28821) |
13 | | Automatic L4 Load Balancers | | ✓ | ✓ | ✓ | [#28821](https://github.com/kubernetes/kubernetes/pull/28821), [#36256](https://github.com/kubernetes/kubernetes/pull/36256) |
14 | | Source IP White-listing w/ L4 Load Balancers | | | ✓ | ✓ | [#36696](https://github.com/kubernetes/kubernetes/pull/36696) |
15 | | Source IP Preservation w/ L4 Load Balancers | | | ✓ | ✓ | [#36557](https://github.com/kubernetes/kubernetes/pull/36557) |
16 | | Persistent VHD Disks (AzureDisk) | | ✓ | ✓ | ✓ | [#29836](https://github.com/kubernetes/kubernetes/pull/29836) |
17 | | Dynamically Provisioned Persistent Disks | | | ✓ | ✓ | [#30091](https://github.com/kubernetes/kubernetes/pull/30091) |
18 |
19 | * Kubernetes 1.4 was released on September 26, 2016.
20 | * Kubernetes 1.5 was released on December 12, 2016.
21 | * Kubernetes 1.6 was released on March 22, 2017.
22 |
23 | ## Recommended Cluster Deployment Strategy
24 |
25 | ### [Azure Container Service](https://azure.microsoft.com/en-us/services/container-service/)
26 | * Azure Container Service supports DC/OS, Swarm and Kubernetes (in preview).
27 | * Walkthrough: [Kubernetes on Azure Container Service](https://docs.microsoft.com/azure/container-service/container-service-kubernetes-walkthrough)
28 | * More Information: [Kubernetes Blog: Bringing Kubernetes Support to Azure](http://blog.kubernetes.io/2016/11/bringing-kubernetes-support-to-azure.html).
29 |
30 | ### [ACS-Engine](https://github.com/Azure/ACS-Engine)
31 | * The **open-source** core of the Azure Container Service
32 | * Enables easy, up-front modifications of Kubernetes clusters deployed with Azure Resource Manager (ARM) Templates
33 | * Allows for deep customization beyond what is supported in the official Azure Container Service
34 |
35 | ## Future Work
36 |
37 | These are potential projects that anyone could pick up to help Kubernetes on Azure scenarios.
38 |
39 | 1. **Azure Ingress Controller**
40 | * **Status**: [Work In Progress](https://github.com/JargoonPard/contrib/commits/azureingress)
41 | * **Description**:
42 | * Build an `azure-ingress-controller` using [Azure's ApplicationGateways](https://azure.microsoft.com/services/application-gateway/)
43 | 2. **Azure Cluster-Autoscale Backend**
44 | * **Status**: Not started
45 | * **Description**:
46 | * Build an Azure backend for [`cluster-autoscale`](https://github.com/kubernetes/contrib/tree/master/cluster-autoscaler).
47 | 3. **Azure Federation Support**
48 | * **Status**: Not started
49 | * **Description**:
50 | * Implementation of [dnsprovider](https://github.com/kubernetes/kubernetes/tree/master/federation/pkg/dnsprovider).
51 | 4. **Azure Active Directory Authorization Plugin**
52 | * **Status**: Not started
53 | * **Description**:
54 | * Implementation of [an Authorization plugin](http://kubernetes.io/docs/admin/authorization/) to compliment [Azure Active Directory OIDC Authentication](https://github.com/colemickens/azure-ad-k8s-oidc-example)
55 | 5. **Azure Virtual Machine Scale Set (VMSS) Support**
56 | * **Status**: Not started
57 | * **Description**:
58 | * The [Azure cloudprovider](https://github.com/kubernetes/kubernetes/tree/master/pkg/cloudprovider/providers/azure) only supports "loose" (non-VMSS) VMs. It should also support VMSS.
59 | 5. **Miscellaneous**
60 | * Use of Managed Disks in Azure (some work is in progress on this by @khenidak)
61 | * Performance Improvements for AzureDisk attach/detach timing. (See [this issue (and referenced issues)](https://github.com/colemickens/azure-kubernetes-demo/issues/14#issuecomment-250564890) for some background.)
62 |
--------------------------------------------------------------------------------
/docs/MasterSize/README.md:
--------------------------------------------------------------------------------
1 | # Microsoft Azure Container Service
2 |
3 | ## masterVMSize
4 |
5 | Azure Container Service API version `2017-07-01` includes support for VMSize under MasterProfile. masterVMSize is the allowed size of VM of master in Azure depending on the orchestrator type. In sample templates we specify the master vmSize like this:
6 |
7 | 
8 |
9 | The allowed sizes are obtained from [script using az cli](https://github.com/Azure/acs-engine/blob/master/pkg/acsengine/Get-AzureConstants.py) and can refer to [Azure constant data](https://github.com/Azure/acs-engine/blob/master/pkg/acsengine/azureconst.go)
10 |
11 | ## Allowed master VM sizes
12 | ### DCOS
13 | "Standard_A10",
14 | "Standard_A11",
15 | "Standard_A2",
16 | "Standard_A3",
17 | "Standard_A4",
18 | "Standard_A5",
19 | "Standard_A6",
20 | "Standard_A7",
21 | "Standard_A8",
22 | "Standard_A9",
23 | "Standard_D11",
24 | "Standard_D11_v2",
25 | "Standard_D11_v2_Promo",
26 | "Standard_D12",
27 | "Standard_D12_v2",
28 | "Standard_D12_v2_Promo",
29 | "Standard_D13",
30 | "Standard_D13_v2",
31 | "Standard_D13_v2_Promo",
32 | "Standard_D14",
33 | "Standard_D14_v2",
34 | "Standard_D14_v2_Promo",
35 | "Standard_D15_v2",
36 | "Standard_D2",
37 | "Standard_D2_v2",
38 | "Standard_D2_v2_Promo",
39 | "Standard_D3",
40 | "Standard_D3_v2",
41 | "Standard_D3_v2_Promo",
42 | "Standard_D4",
43 | "Standard_D4_v2",
44 | "Standard_D4_v2_Promo",
45 | "Standard_D5_v2",
46 | "Standard_D5_v2_Promo",
47 | "Standard_DS13",
48 | "Standard_DS13_v2",
49 | "Standard_DS13_v2_Promo",
50 | "Standard_DS14",
51 | "Standard_DS14_v2",
52 | "Standard_DS14_v2_Promo",
53 | "Standard_DS15_v2",
54 | "Standard_DS5_v2",
55 | "Standard_DS5_v2_Promo",
56 | "Standard_F16",
57 | "Standard_F8",
58 | "Standard_G1",
59 | "Standard_G2",
60 | "Standard_G3",
61 | "Standard_G4",
62 | "Standard_G5",
63 | "Standard_GS2",
64 | "Standard_GS3",
65 | "Standard_GS4",
66 | "Standard_GS5",
67 | "Standard_H16",
68 | "Standard_H16m",
69 | "Standard_H16mr",
70 | "Standard_H16r",
71 | "Standard_H8",
72 | "Standard_H8m",
73 | "Standard_L16s",
74 | "Standard_L32s",
75 | "Standard_L4s",
76 | "Standard_L8s",
77 | "Standard_M128ms",
78 | "Standard_M128s",
79 | "Standard_M64ms",
80 | "Standard_NC12",
81 | "Standard_NC24",
82 | "Standard_NC24r",
83 | "Standard_NC6",
84 | "Standard_NV12",
85 | "Standard_NV24",
86 | "Standard_NV6"
87 |
88 | ### Swarm, Kubernetes, and DockerCE
89 | "Standard_A10",
90 | "Standard_A11",
91 | "Standard_A2",
92 | "Standard_A2_v2",
93 | "Standard_A2m_v2",
94 | "Standard_A3",
95 | "Standard_A4",
96 | "Standard_A4_v2",
97 | "Standard_A4m_v2",
98 | "Standard_A5",
99 | "Standard_A6",
100 | "Standard_A7",
101 | "Standard_A8",
102 | "Standard_A8_v2",
103 | "Standard_A8m_v2",
104 | "Standard_A9",
105 | "Standard_D11",
106 | "Standard_D11_v2",
107 | "Standard_D11_v2_Promo",
108 | "Standard_D12",
109 | "Standard_D12_v2",
110 | "Standard_D12_v2_Promo",
111 | "Standard_D13",
112 | "Standard_D13_v2",
113 | "Standard_D13_v2_Promo",
114 | "Standard_D14",
115 | "Standard_D14_v2",
116 | "Standard_D14_v2_Promo",
117 | "Standard_D15_v2",
118 | "Standard_D2",
119 | "Standard_D2_v2",
120 | "Standard_D2_v2_Promo",
121 | "Standard_D3",
122 | "Standard_D3_v2",
123 | "Standard_D3_v2_Promo",
124 | "Standard_D4",
125 | "Standard_D4_v2",
126 | "Standard_D4_v2_Promo",
127 | "Standard_D5_v2",
128 | "Standard_D5_v2_Promo",
129 | "Standard_DS11",
130 | "Standard_DS11_v2",
131 | "Standard_DS11_v2_Promo",
132 | "Standard_DS12",
133 | "Standard_DS12_v2",
134 | "Standard_DS12_v2_Promo",
135 | "Standard_DS13",
136 | "Standard_DS13_v2",
137 | "Standard_DS13_v2_Promo",
138 | "Standard_DS14",
139 | "Standard_DS14_v2",
140 | "Standard_DS14_v2_Promo",
141 | "Standard_DS15_v2",
142 | "Standard_DS2",
143 | "Standard_DS2_v2",
144 | "Standard_DS2_v2_Promo",
145 | "Standard_DS3",
146 | "Standard_DS3_v2",
147 | "Standard_DS3_v2_Promo",
148 | "Standard_DS4",
149 | "Standard_DS4_v2",
150 | "Standard_DS4_v2_Promo",
151 | "Standard_DS5_v2",
152 | "Standard_DS5_v2_Promo",
153 | "Standard_F16",
154 | "Standard_F16s",
155 | "Standard_F2",
156 | "Standard_F2s",
157 | "Standard_F4",
158 | "Standard_F4s",
159 | "Standard_F8",
160 | "Standard_F8s",
161 | "Standard_G1",
162 | "Standard_G2",
163 | "Standard_G3",
164 | "Standard_G4",
165 | "Standard_G5",
166 | "Standard_GS1",
167 | "Standard_GS2",
168 | "Standard_GS3",
169 | "Standard_GS4",
170 | "Standard_GS5",
171 | "Standard_H16",
172 | "Standard_H16m",
173 | "Standard_H16mr",
174 | "Standard_H16r",
175 | "Standard_H8",
176 | "Standard_H8m",
177 | "Standard_L16s",
178 | "Standard_L32s",
179 | "Standard_L4s",
180 | "Standard_L8s",
181 | "Standard_M128ms",
182 | "Standard_M128s",
183 | "Standard_M64ms",
184 | "Standard_NC12",
185 | "Standard_NC24",
186 | "Standard_NC24r",
187 | "Standard_NC6",
188 | "Standard_NV12",
189 | "Standard_NV24",
190 | "Standard_NV6"
191 |
192 | # Example template and parameter files for all three orchestrators
193 | ## DCOS
194 | ### [azuredeploy.dcos.json](./azuredeploy.dcos.json)
195 | ### [azuredeploy.params.dcos.json](./azuredeploy.params.dcos.json)
196 |
197 |
198 |
199 |
200 | ## Kubernetes
201 | ### [azuredeploy.kubernetes.json](./azuredeploy.kubernetes.json)
202 | ### [azuredeploy.params.kubernetes.json](./azuredeploy.params.kubernetes.json)
203 |
204 |
205 |
206 |
207 | ## DockerCE
208 | ### [azuredeploy.dockerce.json](./azuredeploy.dockerce.json)
209 | ### [azuredeploy.params.dockerce.json](./azuredeploy.params.dockerce.json)
210 |
211 |
212 |
213 |
--------------------------------------------------------------------------------
/docs/MasterSize/azuredeploy.kubernetes.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpools",
135 | "count": "[variables('agentCount')]",
136 | "vmSize": "[variables('agentVMSize')]"
137 | }
138 | ] ,
139 | "linuxProfile": {
140 | "adminUsername": "[variables('adminUsername')]",
141 | "ssh": {
142 | "publicKeys": [
143 | {
144 | "keyData": "[variables('sshRSAPublicKey')]"
145 | }
146 | ]
147 | }
148 | },
149 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
150 | }
151 | }
152 | ],
153 | "outputs": {
154 | "masterFQDN": {
155 | "type": "string",
156 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
157 | },
158 | "sshMaster0": {
159 | "type": "string",
160 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
161 | },
162 | "agentFQDN": {
163 | "type": "string",
164 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
165 | }
166 | }
167 | }
168 |
--------------------------------------------------------------------------------
/docs/ManagedDisks/azuredeploy.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpools1",
135 | "count": "[variables('agentCount')]",
136 | "vmSize": "[variables('agentVMSize')]",
137 | "storageProfile": "ManagedDisks"
138 | }
139 | ] ,
140 | "linuxProfile": {
141 | "adminUsername": "[variables('adminUsername')]",
142 | "ssh": {
143 | "publicKeys": [
144 | {
145 | "keyData": "[variables('sshRSAPublicKey')]"
146 | }
147 | ]
148 | }
149 | },
150 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
151 | }
152 | }
153 | ],
154 | "outputs": {
155 | "masterFQDN": {
156 | "type": "string",
157 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
158 | },
159 | "sshMaster0": {
160 | "type": "string",
161 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
162 | },
163 | "agentFQDN": {
164 | "type": "string",
165 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
166 | }
167 | }
168 | }
--------------------------------------------------------------------------------
/docs/Simple/azuredeploy.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpools",
135 | "count": "[variables('agentCount')]",
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]"
138 | }
139 | ] ,
140 | "linuxProfile": {
141 | "adminUsername": "[variables('adminUsername')]",
142 | "ssh": {
143 | "publicKeys": [
144 | {
145 | "keyData": "[variables('sshRSAPublicKey')]"
146 | }
147 | ]
148 | }
149 | },
150 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
151 | }
152 | }
153 | ],
154 | "outputs": {
155 | "masterFQDN": {
156 | "type": "string",
157 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
158 | },
159 | "sshMaster0": {
160 | "type": "string",
161 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
162 | },
163 | "agentFQDN": {
164 | "type": "string",
165 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
166 | }
167 | }
168 | }
--------------------------------------------------------------------------------
/docs/StorageAccount/azuredeploy.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpools",
135 | "count": "[variables('agentCount')]",
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "storageProfile": "StorageAccount"
139 | }
140 | ] ,
141 | "linuxProfile": {
142 | "adminUsername": "[variables('adminUsername')]",
143 | "ssh": {
144 | "publicKeys": [
145 | {
146 | "keyData": "[variables('sshRSAPublicKey')]"
147 | }
148 | ]
149 | }
150 | },
151 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
152 | }
153 | }
154 | ],
155 | "outputs": {
156 | "masterFQDN": {
157 | "type": "string",
158 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
159 | },
160 | "sshMaster0": {
161 | "type": "string",
162 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
163 | },
164 | "agentFQDN": {
165 | "type": "string",
166 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
167 | }
168 | }
169 | }
--------------------------------------------------------------------------------
/docs/OSDiskSize/azuredeploy.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]",
131 | "OSDiskSizeGB": 300
132 | },
133 | "agentPoolProfiles": [
134 | {
135 | "name": "agentpools",
136 | "count": "[variables('agentCount')]",
137 | "vmSize": "[variables('agentVMSize')]",
138 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
139 | "OSDiskSizeGB": 300
140 | }
141 | ] ,
142 | "linuxProfile": {
143 | "adminUsername": "[variables('adminUsername')]",
144 | "ssh": {
145 | "publicKeys": [
146 | {
147 | "keyData": "[variables('sshRSAPublicKey')]"
148 | }
149 | ]
150 | }
151 | },
152 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
153 | }
154 | }
155 | ],
156 | "outputs": {
157 | "masterFQDN": {
158 | "type": "string",
159 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
160 | },
161 | "sshMaster0": {
162 | "type": "string",
163 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
164 | },
165 | "agentFQDN": {
166 | "type": "string",
167 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
168 | }
169 | }
170 | }
--------------------------------------------------------------------------------
/docs/ManagedDisks/azuredeploy.dockerce.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpools",
135 | "count": "[variables('agentCount')]",
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "ports": [
139 | 443,
140 | 8080
141 | ]
142 | }
143 | ] ,
144 | "linuxProfile": {
145 | "adminUsername": "[variables('adminUsername')]",
146 | "ssh": {
147 | "publicKeys": [
148 | {
149 | "keyData": "[variables('sshRSAPublicKey')]"
150 | }
151 | ]
152 | }
153 | },
154 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
155 | }
156 | }
157 | ],
158 | "outputs": {
159 | "masterFQDN": {
160 | "type": "string",
161 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
162 | },
163 | "sshMaster0": {
164 | "type": "string",
165 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
166 | },
167 | "agentFQDN": {
168 | "type": "string",
169 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
170 | }
171 | }
172 | }
--------------------------------------------------------------------------------
/docs/MasterSize/azuredeploy.dockerce.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpools",
135 | "count": "[variables('agentCount')]",
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "ports": [
139 | 443,
140 | 8080
141 | ]
142 | }
143 | ] ,
144 | "linuxProfile": {
145 | "adminUsername": "[variables('adminUsername')]",
146 | "ssh": {
147 | "publicKeys": [
148 | {
149 | "keyData": "[variables('sshRSAPublicKey')]"
150 | }
151 | ]
152 | }
153 | },
154 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
155 | }
156 | }
157 | ],
158 | "outputs": {
159 | "masterFQDN": {
160 | "type": "string",
161 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
162 | },
163 | "sshMaster0": {
164 | "type": "string",
165 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
166 | },
167 | "agentFQDN": {
168 | "type": "string",
169 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
170 | }
171 | }
172 | }
173 |
--------------------------------------------------------------------------------
/docs/Ports/azuredeploy.dockerce.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpools",
135 | "count": "[variables('agentCount')]",
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "ports": [
139 | 443,
140 | 8080,
141 | 8081,
142 | 8082,
143 | 8083,
144 | 8084
145 | ]
146 | }
147 | ] ,
148 | "linuxProfile": {
149 | "adminUsername": "[variables('adminUsername')]",
150 | "ssh": {
151 | "publicKeys": [
152 | {
153 | "keyData": "[variables('sshRSAPublicKey')]"
154 | }
155 | ]
156 | }
157 | },
158 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
159 | }
160 | }
161 | ],
162 | "outputs": {
163 | "masterFQDN": {
164 | "type": "string",
165 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
166 | },
167 | "sshMaster0": {
168 | "type": "string",
169 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
170 | },
171 | "agentFQDN": {
172 | "type": "string",
173 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
174 | }
175 | }
176 | }
--------------------------------------------------------------------------------
/docs/Simple/azuredeploy.dcos.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpublic",
135 | "count": 1,
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "ports": [
139 | 443,
140 | 8080
141 | ]
142 | },
143 | {
144 | "name": "agentprivate",
145 | "count": "[variables('agentCount')]",
146 | "vmSize": "[variables('agentVMSize')]"
147 | }
148 | ] ,
149 | "linuxProfile": {
150 | "adminUsername": "[variables('adminUsername')]",
151 | "ssh": {
152 | "publicKeys": [
153 | {
154 | "keyData": "[variables('sshRSAPublicKey')]"
155 | }
156 | ]
157 | }
158 | },
159 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
160 | }
161 | }
162 | ],
163 | "outputs": {
164 | "masterFQDN": {
165 | "type": "string",
166 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
167 | },
168 | "sshMaster0": {
169 | "type": "string",
170 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
171 | },
172 | "agentFQDN": {
173 | "type": "string",
174 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
175 | }
176 | }
177 | }
--------------------------------------------------------------------------------
/docs/ManagedDisks/azuredeploy.dcos.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpublic",
135 | "count": 1,
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "ports": [
139 | 443,
140 | 8080
141 | ]
142 | },
143 | {
144 | "name": "agentprivate",
145 | "count": "[variables('agentCount')]",
146 | "vmSize": "[variables('agentVMSize')]"
147 | }
148 | ] ,
149 | "linuxProfile": {
150 | "adminUsername": "[variables('adminUsername')]",
151 | "ssh": {
152 | "publicKeys": [
153 | {
154 | "keyData": "[variables('sshRSAPublicKey')]"
155 | }
156 | ]
157 | }
158 | },
159 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
160 | }
161 | }
162 | ],
163 | "outputs": {
164 | "masterFQDN": {
165 | "type": "string",
166 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
167 | },
168 | "sshMaster0": {
169 | "type": "string",
170 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
171 | },
172 | "agentFQDN": {
173 | "type": "string",
174 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
175 | }
176 | }
177 | }
--------------------------------------------------------------------------------
/docs/MasterSize/azuredeploy.dcos.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpublic",
135 | "count": 1,
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "ports": [
139 | 443,
140 | 8080
141 | ]
142 | },
143 | {
144 | "name": "agentprivate",
145 | "count": "[variables('agentCount')]",
146 | "vmSize": "[variables('agentVMSize')]"
147 | }
148 | ] ,
149 | "linuxProfile": {
150 | "adminUsername": "[variables('adminUsername')]",
151 | "ssh": {
152 | "publicKeys": [
153 | {
154 | "keyData": "[variables('sshRSAPublicKey')]"
155 | }
156 | ]
157 | }
158 | },
159 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
160 | }
161 | }
162 | ],
163 | "outputs": {
164 | "masterFQDN": {
165 | "type": "string",
166 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
167 | },
168 | "sshMaster0": {
169 | "type": "string",
170 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
171 | },
172 | "agentFQDN": {
173 | "type": "string",
174 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
175 | }
176 | }
177 | }
178 |
--------------------------------------------------------------------------------
/docs/Ports/azuredeploy.dcos.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]"
131 | },
132 | "agentPoolProfiles": [
133 | {
134 | "name": "agentpublic",
135 | "count": 1,
136 | "vmSize": "[variables('agentVMSize')]",
137 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
138 | "ports": [
139 | 443,
140 | 8080,
141 | 8081,
142 | 8082,
143 | 8083,
144 | 8084
145 | ]
146 | },
147 | {
148 | "name": "agentprivate",
149 | "count": "[variables('agentCount')]",
150 | "vmSize": "[variables('agentVMSize')]"
151 | }
152 | ] ,
153 | "linuxProfile": {
154 | "adminUsername": "[variables('adminUsername')]",
155 | "ssh": {
156 | "publicKeys": [
157 | {
158 | "keyData": "[variables('sshRSAPublicKey')]"
159 | }
160 | ]
161 | }
162 | },
163 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
164 | }
165 | }
166 | ],
167 | "outputs": {
168 | "masterFQDN": {
169 | "type": "string",
170 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
171 | },
172 | "sshMaster0": {
173 | "type": "string",
174 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
175 | },
176 | "agentFQDN": {
177 | "type": "string",
178 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
179 | }
180 | }
181 | }
--------------------------------------------------------------------------------
/docs/VNET/azuredeploy.kubernetes.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "vnetSubnetID": {
71 | "metadata": {
72 | "description": "Sets the vnet subnet."
73 | },
74 | "type": "string"
75 | },
76 | "sshRSAPublicKey": {
77 | "type": "string",
78 | "metadata": {
79 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
80 | }
81 | },
82 | "servicePrincipalClientId": {
83 | "metadata": {
84 | "description": "Client ID (used by cloudprovider)"
85 | },
86 | "type": "securestring",
87 | "defaultValue": "n/a"
88 | },
89 | "servicePrincipalClientSecret": {
90 | "metadata": {
91 | "description": "The Service Principal Client Secret."
92 | },
93 | "type": "securestring",
94 | "defaultValue": "n/a"
95 | }
96 | },
97 | "variables": {
98 | "adminUsername":"[parameters('linuxAdminUsername')]",
99 | "agentCount":"[parameters('agentCount')]",
100 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
101 | "agentVMSize":"[parameters('agentVMSize')]",
102 | "masterCount":"[parameters('masterCount')]",
103 | "masterVMSize":"[parameters('masterVMSize')]",
104 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
105 | "vnetSubnetID":"[parameters('vnetSubnetID')]",
106 | "orchestratorType":"[parameters('orchestratorType')]",
107 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
108 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
109 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
110 | "useServicePrincipalDictionary": {
111 | "DCOS": 0,
112 | "DockerCE": 0,
113 | "Kubernetes": 1
114 | },
115 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
116 | "servicePrincipalFields": [
117 | null,
118 | {
119 | "ClientId": "[parameters('servicePrincipalClientId')]",
120 | "Secret": "[parameters('servicePrincipalClientSecret')]"
121 | }
122 | ]
123 | },
124 | "resources": [
125 | {
126 | "apiVersion": "2017-07-01",
127 | "type": "Microsoft.ContainerService/containerServices",
128 | "location": "[resourceGroup().location]",
129 | "name":"[concat('containerservice-',resourceGroup().name)]",
130 | "properties": {
131 | "orchestratorProfile": {
132 | "orchestratorType": "[variables('orchestratorType')]"
133 | },
134 | "masterProfile": {
135 | "count": "[variables('masterCount')]",
136 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
137 | "vmSize": "[variables('masterVMSize')]",
138 | "vnetSubnetId": "[variables('vnetSubnetID')]",
139 | "firstConsecutiveStaticIP": "10.239.255.239"
140 | },
141 | "agentPoolProfiles": [
142 | {
143 | "name": "agentpools",
144 | "count": "[variables('agentCount')]",
145 | "vmSize": "[variables('agentVMSize')]",
146 | "vnetSubnetId": "[variables('vnetSubnetID')]",
147 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]"
148 | }
149 | ],
150 | "linuxProfile": {
151 | "adminUsername": "[variables('adminUsername')]",
152 | "ssh": {
153 | "publicKeys": [
154 | {
155 | "keyData": "[variables('sshRSAPublicKey')]"
156 | }
157 | ]
158 | }
159 | },
160 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
161 | }
162 | }
163 | ],
164 | "outputs": {
165 | "masterFQDN": {
166 | "type": "string",
167 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
168 | },
169 | "sshMaster0": {
170 | "type": "string",
171 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
172 | },
173 | "agentFQDN": {
174 | "type": "string",
175 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
176 | }
177 | }
178 | }
179 |
--------------------------------------------------------------------------------
/docs/StorageAccount/azuredeploy.dcos.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "orchestratorType": {
41 | "type": "string",
42 | "defaultValue": "Kubernetes",
43 | "allowedValues": [
44 | "Kubernetes",
45 | "DCOS",
46 | "DockerCE"
47 | ],
48 | "metadata": {
49 | "description": "The type of orchestrator used to manage the applications on the cluster."
50 | }
51 | },
52 | "masterCount": {
53 | "type": "int",
54 | "defaultValue": 1,
55 | "allowedValues": [
56 | 1,
57 | 3,
58 | 5
59 | ],
60 | "metadata": {
61 | "description": "The number of Kubernetes masters for the cluster."
62 | }
63 | },
64 | "masterVMSize": {
65 | "metadata": {
66 | "description": "The size of the Virtual Machine."
67 | },
68 | "type": "string"
69 | },
70 | "sshRSAPublicKey": {
71 | "type": "string",
72 | "metadata": {
73 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
74 | }
75 | },
76 | "servicePrincipalClientId": {
77 | "metadata": {
78 | "description": "Client ID (used by cloudprovider)"
79 | },
80 | "type": "securestring",
81 | "defaultValue": "n/a"
82 | },
83 | "servicePrincipalClientSecret": {
84 | "metadata": {
85 | "description": "The Service Principal Client Secret."
86 | },
87 | "type": "securestring",
88 | "defaultValue": "n/a"
89 | }
90 | },
91 | "variables": {
92 | "adminUsername":"[parameters('linuxAdminUsername')]",
93 | "agentCount":"[parameters('agentCount')]",
94 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
95 | "agentVMSize":"[parameters('agentVMSize')]",
96 | "masterCount":"[parameters('masterCount')]",
97 | "masterVMSize":"[parameters('masterVMSize')]",
98 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
99 | "orchestratorType":"[parameters('orchestratorType')]",
100 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
101 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
102 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
103 | "useServicePrincipalDictionary": {
104 | "DCOS": 0,
105 | "DockerCE": 0,
106 | "Kubernetes": 1
107 | },
108 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
109 | "servicePrincipalFields": [
110 | null,
111 | {
112 | "ClientId": "[parameters('servicePrincipalClientId')]",
113 | "Secret": "[parameters('servicePrincipalClientSecret')]"
114 | }
115 | ]
116 | },
117 | "resources": [
118 | {
119 | "apiVersion": "2017-07-01",
120 | "type": "Microsoft.ContainerService/containerServices",
121 | "location": "[resourceGroup().location]",
122 | "name":"[concat('containerservice-',resourceGroup().name)]",
123 | "properties": {
124 | "orchestratorProfile": {
125 | "orchestratorType": "[variables('orchestratorType')]"
126 | },
127 | "masterProfile": {
128 | "count": "[variables('masterCount')]",
129 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
130 | "vmSize": "[variables('masterVMSize')]",
131 | "storageProfile": "StorageAccount"
132 | },
133 | "agentPoolProfiles": [
134 | {
135 | "name": "agentpublic",
136 | "count": 1,
137 | "vmSize": "[variables('agentVMSize')]",
138 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
139 | "ports": [
140 | 443,
141 | 8080
142 | ],
143 | "storageProfile": "StorageAccount"
144 | },
145 | {
146 | "name": "agentprivate",
147 | "count": "[variables('agentCount')]",
148 | "vmSize": "[variables('agentVMSize')]",
149 | "storageProfile": "StorageAccount"
150 | }
151 | ] ,
152 | "linuxProfile": {
153 | "adminUsername": "[variables('adminUsername')]",
154 | "ssh": {
155 | "publicKeys": [
156 | {
157 | "keyData": "[variables('sshRSAPublicKey')]"
158 | }
159 | ]
160 | }
161 | },
162 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
163 | }
164 | }
165 | ],
166 | "outputs": {
167 | "masterFQDN": {
168 | "type": "string",
169 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
170 | },
171 | "sshMaster0": {
172 | "type": "string",
173 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
174 | },
175 | "agentFQDN": {
176 | "type": "string",
177 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
178 | }
179 | }
180 | }
--------------------------------------------------------------------------------
/docs/LargeCluster/azuredeploy.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentPool1Count": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentPool1VMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "agentPool2Count": {
34 | "type": "int",
35 | "defaultValue": 1,
36 | "metadata": {
37 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
38 | },
39 | "minValue":1,
40 | "maxValue":100
41 | },
42 | "agentPool2VMSize": {
43 | "type": "string",
44 | "defaultValue": "Standard_D2_v2",
45 | "metadata": {
46 | "description": "The size of the Virtual Machine."
47 | }
48 | },
49 | "agentPool3Count": {
50 | "type": "int",
51 | "defaultValue": 1,
52 | "metadata": {
53 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
54 | },
55 | "minValue":1,
56 | "maxValue":100
57 | },
58 | "agentPool3VMSize": {
59 | "type": "string",
60 | "defaultValue": "Standard_D2_v2",
61 | "metadata": {
62 | "description": "The size of the Virtual Machine."
63 | }
64 | },
65 | "linuxAdminUsername": {
66 | "type": "string",
67 | "defaultValue": "azureuser",
68 | "metadata": {
69 | "description": "User name for the Linux Virtual Machines."
70 | }
71 | },
72 | "orchestratorType": {
73 | "type": "string",
74 | "defaultValue": "Kubernetes",
75 | "allowedValues": [
76 | "Kubernetes",
77 | "DCOS",
78 | "DockerCE"
79 | ],
80 | "metadata": {
81 | "description": "The type of orchestrator used to manage the applications on the cluster."
82 | }
83 | },
84 | "masterCount": {
85 | "type": "int",
86 | "defaultValue": 1,
87 | "allowedValues": [
88 | 1,
89 | 3,
90 | 5
91 | ],
92 | "metadata": {
93 | "description": "The number of Kubernetes masters for the cluster."
94 | }
95 | },
96 | "masterVMSize": {
97 | "metadata": {
98 | "description": "The size of the Virtual Machine."
99 | },
100 | "type": "string"
101 | },
102 | "sshRSAPublicKey": {
103 | "type": "string",
104 | "metadata": {
105 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
106 | }
107 | }
108 | },
109 | "variables": {
110 | "adminUsername":"[parameters('linuxAdminUsername')]",
111 | "agentPool1Count":"[parameters('agentPool1Count')]",
112 | "agentPool2Count":"[parameters('agentPool2Count')]",
113 | "agentPool3Count":"[parameters('agentPool3Count')]",
114 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
115 | "agentPool1VMSize":"[parameters('agentPool1VMSize')]",
116 | "agentPool2VMSize":"[parameters('agentPool2VMSize')]",
117 | "agentPool3VMSize":"[parameters('agentPool3VMSize')]",
118 | "masterCount":"[parameters('masterCount')]",
119 | "masterVMSize":"[parameters('masterVMSize')]",
120 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
121 | "orchestratorType":"[parameters('orchestratorType')]",
122 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]"
123 | },
124 | "resources": [
125 | {
126 | "apiVersion": "2017-07-01",
127 | "type": "Microsoft.ContainerService/containerServices",
128 | "location": "[resourceGroup().location]",
129 | "name":"containerservice",
130 | "properties": {
131 | "orchestratorProfile": {
132 | "orchestratorType": "[variables('orchestratorType')]"
133 | },
134 | "masterProfile": {
135 | "count": "[variables('masterCount')]",
136 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
137 | "vmSize": "[variables('masterVMSize')]"
138 | },
139 | "agentPoolProfiles": [
140 | {
141 | "name": "agentPool1",
142 | "count": "[variables('agentPool1Count')]",
143 | "vmSize": "[variables('agentPool1VMSize')]",
144 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]"
145 | },
146 | {
147 | "name": "agentPool2",
148 | "count": "[variables('agentPool2Count')]",
149 | "vmSize": "[variables('agentPool2VMSize')]"
150 | },
151 | {
152 | "name": "agentPool3",
153 | "count": "[variables('agentPool3Count')]",
154 | "vmSize": "[variables('agentPool3VMSize')]"
155 | }
156 | ],
157 | "linuxProfile": {
158 | "adminUsername": "[variables('adminUsername')]",
159 | "ssh": {
160 | "publicKeys": [
161 | {
162 | "keyData": "[variables('sshRSAPublicKey')]"
163 | }
164 | ]
165 | }
166 | }
167 | }
168 | }
169 | ],
170 | "outputs": {
171 | "masterFQDN": {
172 | "type": "string",
173 | "value": "[reference('Microsoft.ContainerService/containerServices/containerservice').masterProfile.fqdn]"
174 | },
175 | "sshMaster0": {
176 | "type": "string",
177 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference('Microsoft.ContainerService/containerServices/containerservice').masterProfile.fqdn, ' -A -p 2200')]"
178 | },
179 | "agentFQDN": {
180 | "type": "string",
181 | "value": "[reference('Microsoft.ContainerService/containerServices/containerservice').agentPoolProfiles[0].fqdn]"
182 | }
183 | }
184 | }
--------------------------------------------------------------------------------
/docs/VNET/azuredeploy.dockerce.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "agentVnetSubnetID": {
34 | "metadata": {
35 | "description": "Sets the vnet subnet of agent pool."
36 | },
37 | "type": "string"
38 | },
39 | "linuxAdminUsername": {
40 | "type": "string",
41 | "defaultValue": "azureuser",
42 | "metadata": {
43 | "description": "User name for the Linux Virtual Machines."
44 | }
45 | },
46 | "orchestratorType": {
47 | "type": "string",
48 | "defaultValue": "Kubernetes",
49 | "allowedValues": [
50 | "Kubernetes",
51 | "DCOS",
52 | "DockerCE"
53 | ],
54 | "metadata": {
55 | "description": "The type of orchestrator used to manage the applications on the cluster."
56 | }
57 | },
58 | "masterCount": {
59 | "type": "int",
60 | "defaultValue": 1,
61 | "allowedValues": [
62 | 1,
63 | 3,
64 | 5
65 | ],
66 | "metadata": {
67 | "description": "The number of Kubernetes masters for the cluster."
68 | }
69 | },
70 | "masterVMSize": {
71 | "metadata": {
72 | "description": "The size of the Virtual Machine."
73 | },
74 | "type": "string"
75 | },
76 | "masterVnetSubnetID": {
77 | "metadata": {
78 | "description": "Sets the vnet subnet of the master."
79 | },
80 | "type": "string"
81 | },
82 | "sshRSAPublicKey": {
83 | "type": "string",
84 | "metadata": {
85 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
86 | }
87 | },
88 | "servicePrincipalClientId": {
89 | "metadata": {
90 | "description": "Client ID (used by cloudprovider)"
91 | },
92 | "type": "securestring",
93 | "defaultValue": "n/a"
94 | },
95 | "servicePrincipalClientSecret": {
96 | "metadata": {
97 | "description": "The Service Principal Client Secret."
98 | },
99 | "type": "securestring",
100 | "defaultValue": "n/a"
101 | }
102 | },
103 | "variables": {
104 | "adminUsername":"[parameters('linuxAdminUsername')]",
105 | "agentCount":"[parameters('agentCount')]",
106 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
107 | "agentVMSize":"[parameters('agentVMSize')]",
108 | "agentVnetSubnetID":"[parameters('agentVnetSubnetID')]",
109 | "masterCount":"[parameters('masterCount')]",
110 | "masterVMSize":"[parameters('masterVMSize')]",
111 | "masterVnetSubnetID":"[parameters('masterVnetSubnetID')]",
112 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
113 | "orchestratorType":"[parameters('orchestratorType')]",
114 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
115 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
116 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
117 | "useServicePrincipalDictionary": {
118 | "DCOS": 0,
119 | "DockerCE": 0,
120 | "Kubernetes": 1
121 | },
122 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
123 | "servicePrincipalFields": [
124 | null,
125 | {
126 | "ClientId": "[parameters('servicePrincipalClientId')]",
127 | "Secret": "[parameters('servicePrincipalClientSecret')]"
128 | }
129 | ]
130 | },
131 | "resources": [
132 | {
133 | "apiVersion": "2017-07-01",
134 | "type": "Microsoft.ContainerService/containerServices",
135 | "location": "[resourceGroup().location]",
136 | "name":"[concat('containerservice-',resourceGroup().name)]",
137 | "properties": {
138 | "orchestratorProfile": {
139 | "orchestratorType": "[variables('orchestratorType')]"
140 | },
141 | "masterProfile": {
142 | "count": "[variables('masterCount')]",
143 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
144 | "vmSize": "[variables('masterVMSize')]",
145 | "vnetSubnetId": "[variables('masterVnetSubnetID')]",
146 | "firstConsecutiveStaticIP": "10.100.0.5"
147 | },
148 | "agentPoolProfiles": [
149 | {
150 | "name": "agentpools",
151 | "count": "[variables('agentCount')]",
152 | "vmSize": "[variables('agentVMSize')]",
153 | "vnetSubnetId": "[variables('agentVnetSubnetID')]",
154 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]"
155 | }
156 | ],
157 | "linuxProfile": {
158 | "adminUsername": "[variables('adminUsername')]",
159 | "ssh": {
160 | "publicKeys": [
161 | {
162 | "keyData": "[variables('sshRSAPublicKey')]"
163 | }
164 | ]
165 | }
166 | },
167 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
168 | }
169 | }
170 | ],
171 | "outputs": {
172 | "masterFQDN": {
173 | "type": "string",
174 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
175 | },
176 | "sshMaster0": {
177 | "type": "string",
178 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
179 | },
180 | "agentFQDN": {
181 | "type": "string",
182 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
183 | }
184 | }
185 | }
186 |
--------------------------------------------------------------------------------
/docs/VNET/azuredeploy.dcos.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "agentVnetSubnetID": {
34 | "metadata": {
35 | "description": "Sets the vnet subnet of agent pool."
36 | },
37 | "type": "string"
38 | },
39 | "linuxAdminUsername": {
40 | "type": "string",
41 | "defaultValue": "azureuser",
42 | "metadata": {
43 | "description": "User name for the Linux Virtual Machines."
44 | }
45 | },
46 | "orchestratorType": {
47 | "type": "string",
48 | "defaultValue": "Kubernetes",
49 | "allowedValues": [
50 | "Kubernetes",
51 | "DCOS",
52 | "DockerCE"
53 | ],
54 | "metadata": {
55 | "description": "The type of orchestrator used to manage the applications on the cluster."
56 | }
57 | },
58 | "masterCount": {
59 | "type": "int",
60 | "defaultValue": 1,
61 | "allowedValues": [
62 | 1,
63 | 3,
64 | 5
65 | ],
66 | "metadata": {
67 | "description": "The number of Kubernetes masters for the cluster."
68 | }
69 | },
70 | "masterVMSize": {
71 | "metadata": {
72 | "description": "The size of the Virtual Machine."
73 | },
74 | "type": "string"
75 | },
76 | "masterVnetSubnetID": {
77 | "metadata": {
78 | "description": "Sets the vnet subnet of the master."
79 | },
80 | "type": "string"
81 | },
82 | "sshRSAPublicKey": {
83 | "type": "string",
84 | "metadata": {
85 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
86 | }
87 | },
88 | "servicePrincipalClientId": {
89 | "metadata": {
90 | "description": "Client ID (used by cloudprovider)"
91 | },
92 | "type": "securestring",
93 | "defaultValue": "n/a"
94 | },
95 | "servicePrincipalClientSecret": {
96 | "metadata": {
97 | "description": "The Service Principal Client Secret."
98 | },
99 | "type": "securestring",
100 | "defaultValue": "n/a"
101 | }
102 | },
103 | "variables": {
104 | "adminUsername":"[parameters('linuxAdminUsername')]",
105 | "agentCount":"[parameters('agentCount')]",
106 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
107 | "agentVMSize":"[parameters('agentVMSize')]",
108 | "agentVnetSubnetID":"[parameters('agentVnetSubnetID')]",
109 | "masterCount":"[parameters('masterCount')]",
110 | "masterVMSize":"[parameters('masterVMSize')]",
111 | "masterVnetSubnetID":"[parameters('masterVnetSubnetID')]",
112 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
113 | "orchestratorType":"[parameters('orchestratorType')]",
114 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
115 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
116 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
117 | "useServicePrincipalDictionary": {
118 | "DCOS": 0,
119 | "DockerCE": 0,
120 | "Kubernetes": 1
121 | },
122 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
123 | "servicePrincipalFields": [
124 | null,
125 | {
126 | "ClientId": "[parameters('servicePrincipalClientId')]",
127 | "Secret": "[parameters('servicePrincipalClientSecret')]"
128 | }
129 | ]
130 | },
131 | "resources": [
132 | {
133 | "apiVersion": "2017-07-01",
134 | "type": "Microsoft.ContainerService/containerServices",
135 | "location": "[resourceGroup().location]",
136 | "name":"[concat('containerservice-',resourceGroup().name)]",
137 | "properties": {
138 | "orchestratorProfile": {
139 | "orchestratorType": "[variables('orchestratorType')]"
140 | },
141 | "masterProfile": {
142 | "count": "[variables('masterCount')]",
143 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
144 | "vmSize": "[variables('masterVMSize')]",
145 | "vnetSubnetId": "[variables('masterVnetSubnetID')]",
146 | "firstConsecutiveStaticIP": "10.100.0.5"
147 | },
148 | "agentPoolProfiles": [
149 | {
150 | "name": "agentpublic",
151 | "count": 1,
152 | "vmSize": "[variables('agentVMSize')]",
153 | "vnetSubnetId": "[variables('agentVnetSubnetID')]",
154 | "dnsPrefix": "[variables('agentsEndpointDNSNamePrefix')]",
155 | "ports": [
156 | 443,
157 | 8080
158 | ]
159 | },
160 | {
161 | "name": "agentprivate",
162 | "count": "[variables('agentCount')]",
163 | "vmSize": "[variables('agentVMSize')]",
164 | "vnetSubnetId": "[variables('agentVnetSubnetID')]"
165 | }
166 | ] ,
167 | "linuxProfile": {
168 | "adminUsername": "[variables('adminUsername')]",
169 | "ssh": {
170 | "publicKeys": [
171 | {
172 | "keyData": "[variables('sshRSAPublicKey')]"
173 | }
174 | ]
175 | }
176 | },
177 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
178 | }
179 | }
180 | ],
181 | "outputs": {
182 | "masterFQDN": {
183 | "type": "string",
184 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
185 | },
186 | "sshMaster0": {
187 | "type": "string",
188 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
189 | },
190 | "agentFQDN": {
191 | "type": "string",
192 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
193 | }
194 | }
195 | }
196 |
--------------------------------------------------------------------------------
/docs/Windows/azuredeploy.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
3 | "contentVersion": "1.0.0.0",
4 | "parameters": {
5 | "masterDnsNamePrefix": {
6 | "type": "string",
7 | "metadata": {
8 | "description": "Sets the Domain name prefix for the Master nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
9 | }
10 | },
11 | "agentDnsNamePrefix": {
12 | "type": "string",
13 | "metadata": {
14 | "description": "Sets the Domain name prefix for the Agent nodes in a cluster. The concatenation of the domain name and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address."
15 | }
16 | },
17 | "agentCount": {
18 | "type": "int",
19 | "defaultValue": 1,
20 | "metadata": {
21 | "description": "The number of agents for the cluster. This value can be from 1 to 100 (note, for Kubernetes clusters you will also get 1 or 2 public agents in addition to these seleted masters)"
22 | },
23 | "minValue":1,
24 | "maxValue":100
25 | },
26 | "agentVMSize": {
27 | "type": "string",
28 | "defaultValue": "Standard_D2_v2",
29 | "metadata": {
30 | "description": "The size of the Virtual Machine."
31 | }
32 | },
33 | "linuxAdminUsername": {
34 | "type": "string",
35 | "defaultValue": "azureuser",
36 | "metadata": {
37 | "description": "User name for the Linux Virtual Machines."
38 | }
39 | },
40 | "windowsAgentAdminUsername": {
41 | "type": "string",
42 | "defaultValue": "azureuser",
43 | "metadata": {
44 | "description": "User name for the Windows Agent Node Virtual Machines."
45 | }
46 | },
47 | "windowsAgentAdminPassword": {
48 | "type": "string",
49 | "metadata": {
50 | "description": "Password for the Windows Agent Node Virtual Machines"
51 | },
52 | "defaultValue": "n/a"
53 | },
54 | "orchestratorType": {
55 | "type": "string",
56 | "defaultValue": "Kubernetes",
57 | "allowedValues": [
58 | "Kubernetes",
59 | "DCOS",
60 | "DockerCE"
61 | ],
62 | "metadata": {
63 | "description": "The type of orchestrator used to manage the applications on the cluster."
64 | }
65 | },
66 | "masterCount": {
67 | "type": "int",
68 | "defaultValue": 1,
69 | "allowedValues": [
70 | 1,
71 | 3,
72 | 5
73 | ],
74 | "metadata": {
75 | "description": "The number of Kubernetes masters for the cluster."
76 | }
77 | },
78 | "masterVMSize": {
79 | "metadata": {
80 | "description": "The size of the Virtual Machine."
81 | },
82 | "type": "string"
83 | },
84 | "sshRSAPublicKey": {
85 | "type": "string",
86 | "metadata": {
87 | "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'"
88 | }
89 | },
90 | "servicePrincipalClientId": {
91 | "metadata": {
92 | "description": "Client ID (used by cloudprovider)"
93 | },
94 | "type": "securestring",
95 | "defaultValue": "n/a"
96 | },
97 | "servicePrincipalClientSecret": {
98 | "metadata": {
99 | "description": "The Service Principal Client Secret."
100 | },
101 | "type": "securestring",
102 | "defaultValue": "n/a"
103 | },
104 | "osType": {
105 | "type": "string",
106 | "defaultValue": "Linux",
107 | "allowedValues": [
108 | "Linux",
109 | "Windows"
110 | ],
111 | "metadata": {
112 | "description": "The type of operating system."
113 | }
114 | }
115 | },
116 | "variables": {
117 | "adminUsername":"[parameters('linuxAdminUsername')]",
118 | "agentCount":"[parameters('agentCount')]",
119 | "agentsEndpointDNSNamePrefix":"[parameters('agentDnsNamePrefix')]",
120 | "agentVMSize":"[parameters('agentVMSize')]",
121 | "masterCount":"[parameters('masterCount')]",
122 | "masterVMSize":"[parameters('masterVMSize')]",
123 | "mastersEndpointDNSNamePrefix":"[parameters('masterDnsNamePrefix')]",
124 | "orchestratorType":"[parameters('orchestratorType')]",
125 | "sshRSAPublicKey":"[parameters('sshRSAPublicKey')]",
126 | "servicePrincipalClientId": "[parameters('servicePrincipalClientId')]",
127 | "servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]",
128 | "useServicePrincipalDictionary": {
129 | "DCOS": 0,
130 | "DockerCE": 0,
131 | "Kubernetes": 1
132 | },
133 | "useServicePrincipal": "[variables('useServicePrincipalDictionary')[variables('orchestratorType')]]",
134 | "servicePrincipalFields": [
135 | null,
136 | {
137 | "ClientId": "[parameters('servicePrincipalClientId')]",
138 | "Secret": "[parameters('servicePrincipalClientSecret')]"
139 | }
140 | ],
141 | "osType": "[parameters('osType')]",
142 | "osProfileDictionary": {
143 | "Linux": 0,
144 | "Windows": 1
145 | },
146 | "useWindowsOnKubernetes": "[add(variables('useServicePrincipalDictionary')[variables('orchestratorType')], variables('osProfileDictionary')[variables('osType')])]",
147 | "windowsProfileFields": [
148 | null,
149 | null,
150 | {
151 | "adminUsername": "[parameters('windowsAgentAdminUsername')]",
152 | "adminPassword": "[parameters('windowsAgentAdminPassword')]"
153 | }
154 | ]
155 | },
156 | "resources": [
157 | {
158 | "apiVersion": "2017-07-01",
159 | "type": "Microsoft.ContainerService/containerServices",
160 | "location": "[resourceGroup().location]",
161 | "name":"[concat('containerservice-',resourceGroup().name)]",
162 | "properties": {
163 | "orchestratorProfile": {
164 | "orchestratorType": "[variables('orchestratorType')]"
165 | },
166 | "masterProfile": {
167 | "count": "[variables('masterCount')]",
168 | "dnsPrefix": "[variables('mastersEndpointDNSNamePrefix')]",
169 | "vmSize": "[variables('masterVMSize')]"
170 | },
171 | "agentPoolProfiles": [
172 | {
173 | "name": "agentwin",
174 | "count": "[variables('agentCount')]",
175 | "vmSize": "[variables('agentVMSize')]",
176 | "osType": "[variables('osType')]"
177 | }
178 | ],
179 | "linuxProfile": {
180 | "adminUsername": "[variables('adminUsername')]",
181 | "ssh": {
182 | "publicKeys": [
183 | {
184 | "keyData": "[variables('sshRSAPublicKey')]"
185 | }
186 | ]
187 | }
188 | },
189 | "windowsProfile": "[variables('windowsProfileFields')[variables('useWindowsOnKubernetes')]]",
190 | "servicePrincipalProfile": "[variables('servicePrincipalFields')[variables('useServicePrincipal')]]"
191 | }
192 | }
193 | ],
194 | "outputs": {
195 | "masterFQDN": {
196 | "type": "string",
197 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn]"
198 | },
199 | "sshMaster0": {
200 | "type": "string",
201 | "value": "[concat('ssh ', variables('adminUsername'), '@', reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).masterProfile.fqdn, ' -A -p 2200')]"
202 | },
203 | "agentFQDN": {
204 | "type": "string",
205 | "value": "[reference(concat('Microsoft.ContainerService/containerServices/', 'containerservice-', resourceGroup().name)).agentPoolProfiles[0].fqdn]"
206 | }
207 | }
208 | }
--------------------------------------------------------------------------------
/docs/Windows/README.md:
--------------------------------------------------------------------------------
1 | # Microsoft Azure Container Service - Builds Docker Enabled Clusters
2 |
3 | ## Overview
4 |
5 | These Azure Resource Manager(ARM) templates allow you to deploy a Docker Enabled Cluster with Windows on Azure Container Service using Kubernetes as the orchestrator.
6 |
7 |
8 |
9 |
10 |
11 | ## User Guides
12 |
13 | Here are the steps to deploy a simple Kubernetes cluster with Windows:
14 |
15 | 1. [generate your ssh key](https://github.com/Azure/acs-engine/blob/master/docs/ssh.md#ssh-key-generation)
16 | 2. [generate your service principal](https://github.com/Azure/acs-engine/blob/master/docs/serviceprincipal.md)
17 | 3. edit the [parameter file](azuredeploy.params.kubernetes.json) and fill in your ssh key, service principal, dns name, agent count and master count
18 | 4. [deploy the output azuredeploy.json and azuredeploy.parameters.json](https://github.com/Azure/acs-engine/blob/master/README.md#deployment-usage)
19 |
20 |
21 | ## Walkthrough
22 |
23 | Once your Kubernetes cluster has been created you will have a resource group containing:
24 |
25 | 1. 1 master accessible by SSH on port 22 or kubectl on port 443
26 |
27 | 2. a set of windows nodes. The windows nodes can be accessed through an RDP SSH tunnel via the master node. To do this, follow these [instructions](https://github.com/Azure/acs-engine/blob/master/docs/ssh.md#create-port-80-tunnel-to-the-master), replacing port 80 with 3389. Since your windows machine is already using port 3389, it is recommended to use 3390 to Windows Node 0, 10.240.245.5, 3391 to Windows Node 1, 10.240.245.6, and so on as shown in the following image:
28 |
29 | 
30 |
31 | The following image shows the architecture of a container service cluster with 1 master, and 2 agents:
32 |
33 | 
34 |
35 | In the image above, you can see the following parts:
36 |
37 | 1. **Master Components** - The master runs the Kubernetes scheduler, api server, and controller manager. Port 443 is exposed for remote management with the kubectl cli.
38 | 2. **Windows Nodes** - the Kubernetes windows nodes run in an availability set.
39 | 3. **Common Components** - All VMs run a kubelet, Docker, and a Proxy.
40 | 4. **Networking** - All VMs are assigned an ip address in the 10.240.0.0/16 network. Each VM is assigned a /24 subnet for their pod CIDR enabling IP per pod. The proxy running on each VM implements the service network 10.0.0.0/16.
41 |
42 | All VMs are in the same private VNET and are fully accessible to each other.
43 |
44 | ## Create your First Kubernetes Service
45 |
46 | After completing this walkthrough you will know how to:
47 | * access Kubernetes cluster via SSH,
48 | * deploy a simple Windows Docker application and expose to the world,
49 | * and deploy a hybrid Windows / Linux Docker application.
50 |
51 | 1. After successfully deploying the template write down the master FQDN (Fully Qualified Domain Name).
52 | 1. If using Powershell or CLI, the output parameter is in the OutputsString section named 'masterFQDN'
53 | 2. If using Portal, to get the output you need to:
54 | 1. navigate to "resource group"
55 | 2. click on the resource group you just created
56 | 3. then click on "Succeeded" under *last deployment*
57 | 4. then click on the "Microsoft.Template"
58 | 5. now you can copy the output FQDNs and sample SSH commands
59 |
60 | 
61 |
62 | 2. SSH to the master FQDN obtained in step 1.
63 |
64 | 3. Explore your nodes and running pods:
65 | 1. to see a list of your nodes type `kubectl get nodes`. If you want full detail of the nodes, add `-o yaml` to become `kubectl get nodes -o yaml`.
66 | 2. to see a list of running pods type `kubectl get pods --all-namespaces`. By default DNS, heapster, and the dashboard pods will be assigned to the Linux nodes.
67 |
68 | 4. Start your first Docker image by editing a file named `simpleweb.yaml` filling in the contents below, and then apply by typing `kubectl apply -f simpleweb.yaml`. This will start a windows simple web application and expose to the world.
69 |
70 | ```yaml
71 | apiVersion: v1
72 | kind: Service
73 | metadata:
74 | name: win-webserver
75 | labels:
76 | app: win-webserver
77 | spec:
78 | ports:
79 | # the port that this service should serve on
80 | - port: 80
81 | targetPort: 80
82 | selector:
83 | app: win-webserver
84 | type: LoadBalancer
85 | ---
86 | apiVersion: extensions/v1beta1
87 | kind: Deployment
88 | metadata:
89 | labels:
90 | app: win-webserver
91 | name: win-webserver
92 | spec:
93 | replicas: 1
94 | template:
95 | metadata:
96 | labels:
97 | app: win-webserver
98 | name: win-webserver
99 | spec:
100 | containers:
101 | - name: windowswebserver
102 | image: microsoft/windowsservercore
103 | command:
104 | - powershell.exe
105 | - -command
106 | - "<#code used from https://gist.github.com/wagnerandrade/5424431#> ; $$listener = New-Object System.Net.HttpListener ; $$listener.Prefixes.Add('http://*:80/') ; $$listener.Start() ; $$callerCounts = @{} ; Write-Host('Listening at http://*:80/') ; while ($$listener.IsListening) { ;$$context = $$listener.GetContext() ;$$requestUrl = $$context.Request.Url ;$$clientIP = $$context.Request.RemoteEndPoint.Address ;$$response = $$context.Response ;Write-Host '' ;Write-Host('> {0}' -f $$requestUrl) ; ;$$count = 1 ;$$k=$$callerCounts.Get_Item($$clientIP) ;if ($$k -ne $$null) { $$count += $$k } ;$$callerCounts.Set_Item($$clientIP, $$count) ;$$header='IP {0} callerCount {1} ' -f $$_,$$callerCounts.Item($$_) } ;$$footer='' ;$$content='{0}{1}{2}' -f $$header,$$callerCountsString,$$footer ;Write-Output $$content ;$$buffer = [System.Text.Encoding]::UTF8.GetBytes($$content) ;$$response.ContentLength64 = $$buffer.Length ;$$response.OutputStream.Write($$buffer, 0, $$buffer.Length) ;$$response.Close() ;$$responseStatus = $$response.StatusCode ;Write-Host('< {0}' -f $$responseStatus) } ; " 107 | nodeSelector: 108 | beta.kubernetes.io/os: windows 109 | ``` 110 | 111 | 5. Type `watch kubectl get pods` to watch the deployment of the service that takes about 30 seconds. Once running, type `kubectl get svc` and curl the 10.x address to see the output, eg. `curl 10.244.1.4` 112 | 113 | 6. Type `watch kubectl get svc` to watch the addition of the external IP address that will take about 2-5 minutes. Once there, you can take the external IP and view in your web browser. 114 | 115 | ## Troubleshooting 116 | 117 | If your cluster is not reachable, you can run the following command to check for common failures. 118 | 119 | ### Misconfigured Service Principal 120 | 121 | If your Service Principal is misconfigured, none of the Kubernetes components will come up in a healthy manner. 122 | You can check to see if this the problem: 123 | 124 | ```shell 125 | ssh -i ~/.ssh/id_rsa USER@MASTERFQDN sudo journalctl -u kubelet | grep --text autorest 126 | ``` 127 | 128 | If you see output that looks like the following, then you have **not** configured the Service Principal correctly. 129 | You may need to check to ensure the credentials were provided accurately, and that the configured Service Principal has 130 | read and **write** permissions to the target Subscription. 131 | 132 | `Nov 10 16:35:22 k8s-master-43D6F832-0 docker[3177]: E1110 16:35:22.840688 3201 kubelet_node_status.go:69] Unable to construct api.Node object for kubelet: failed to get external ID from cloud provider: autorest#WithErrorUnlessStatusCode: POST https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/oauth2/token?api-version=1.0 failed with 400 Bad Request: StatusCode=400` 133 | 134 | ## Learning More 135 | 136 | Here are recommended links to learn more about Kubernetes: 137 | 138 | 1. [Kubernetes Bootcamp](https://kubernetesbootcamp.github.io/kubernetes-bootcamp/index.html) - shows you how to deploy, scale, update, and debug containerized applications. 139 | 2. [Kubernetes Userguide](http://kubernetes.io/docs/user-guide/) - provides information on running programs in an existing Kubernetes cluster. 140 | 3. [Kubernetes Examples](https://github.com/kubernetes/kubernetes/tree/master/examples) - provides a number of examples on how to run real applications with Kubernetes. --------------------------------------------------------------------------------