Sebastian Melchior
8 years ago
8 changed files with 145 additions and 8 deletions
Split View
Diff Options
-
54docs/azure.md
-
15inventory/group_vars/all.yml
-
2roles/kubernetes/master/templates/manifests/kube-apiserver.manifest.j2
-
6roles/kubernetes/master/templates/manifests/kube-controller-manager.manifest.j2
-
2roles/kubernetes/node/templates/kubelet.j2
-
47roles/kubernetes/preinstall/tasks/azure-credential-check.yml
-
15roles/kubernetes/preinstall/tasks/main.yml
-
12roles/kubernetes/preinstall/templates/azure-cloud-config.j2
@ -0,0 +1,54 @@ |
|||
Azure |
|||
=============== |
|||
|
|||
To deploy kubespray on [Azure](https://azure.microsoft.com) uncomment the `cloud_provider` option in `group_vars/all.yml` and set it to `'azure'`. |
|||
|
|||
All your instances are required to run in a resource group and a routing table has to be attached to the subnet your instances are in. |
|||
|
|||
Not all features are supported yet though, for a list of the current status have a look [here](https://github.com/colemickens/azure-kubernetes-status) |
|||
|
|||
### Parameters |
|||
|
|||
Before creating the instances you must first set the `azure_` variables in the `group_vars/all.yml` file. |
|||
|
|||
All of the values can be retrieved using the azure cli tool which can be downloaded here: https://docs.microsoft.com/en-gb/azure/xplat-cli-install |
|||
After installation you have to run `azure login` to get access to your account. |
|||
|
|||
|
|||
#### azure\_tenant\_id + azure\_subscription\_id |
|||
run `azure account show` to retrieve your subscription id and tenant id: |
|||
`azure_tenant_id` -> Tenant ID field |
|||
`azure_subscription_id` -> ID field |
|||
|
|||
|
|||
#### azure\_location |
|||
The region your instances are located, can be something like `westeurope` or `westcentralus`. A full list of region names can be retrieved via `azure location list` |
|||
|
|||
|
|||
#### azure\_resource\_group |
|||
The name of the resource group your instances are in, can be retrieved via `azure group list` |
|||
|
|||
#### azure\_vnet\_name |
|||
The name of the virtual network your instances are in, can be retrieved via `azure network vnet list` |
|||
|
|||
#### azure\_subnet\_name |
|||
The name of the subnet your instances are in, can be retrieved via `azure network vnet subnet list RESOURCE_GROUP VNET_NAME` |
|||
|
|||
#### azure\_security\_group\_name |
|||
The name of the network security group your instances are in, can be retrieved via `azure network nsg list` |
|||
|
|||
#### azure\_aad\_client\_id + azure\_aad\_client\_secret |
|||
These will have to be generated first: |
|||
- Create an Azure AD Application with: |
|||
`azure ad app create --name kubernetes --identifier-uris http://kubernetes --home-page http://example.com --password CLIENT_SECRET` |
|||
The name, identifier-uri, home-page and the password can be choosen |
|||
Note the AppId in the output. |
|||
- Create Service principal for the application with: |
|||
`azure ad sp create --applicationId AppId` |
|||
This is the AppId from the last command |
|||
- Create the role assignment with: |
|||
`azure role assignment create --spn http://kubernetes -o "Owner" -c /subscriptions/SUBSCRIPTION_ID` |
|||
|
|||
azure\_aad\_client\_id musst be set to the AppId, azure\_aad\_client\_secret is your choosen secret. |
|||
|
|||
|
@ -0,0 +1,47 @@ |
|||
--- |
|||
- name: check azure_tenant_id value |
|||
fail: |
|||
msg: "azure_tenant_id is missing" |
|||
when: azure_tenant_id is not defined or azure_tenant_id == "" |
|||
|
|||
- name: check openstack_username value |
|||
fail: |
|||
msg: "azure_subscription_id is missing" |
|||
when: azure_subscription_id is not defined or azure_subscription_id == "" |
|||
|
|||
- name: check azure_aad_client_id value |
|||
fail: |
|||
msg: "azure_aad_client_id is missing" |
|||
when: azure_aad_client_id is not defined or azure_aad_client_id == "" |
|||
|
|||
- name: check azure_aad_client_secret value |
|||
fail: |
|||
msg: "azure_aad_client_secret is missing" |
|||
when: azure_aad_client_secret is not defined or azure_aad_client_secret == "" |
|||
|
|||
- name: check azure_resource_group value |
|||
fail: |
|||
msg: "azure_resource_group is missing" |
|||
when: azure_resource_group is not defined or azure_resource_group == "" |
|||
|
|||
- name: check azure_location value |
|||
fail: |
|||
msg: "azure_location is missing" |
|||
when: azure_location is not defined or azure_location == "" |
|||
|
|||
- name: check azure_subnet_name value |
|||
fail: |
|||
msg: "azure_subnet_name is missing" |
|||
when: azure_subnet_name is not defined or azure_subnet_name == "" |
|||
|
|||
- name: check azure_security_group_name value |
|||
fail: |
|||
msg: "azure_security_group_name is missing" |
|||
when: azure_security_group_name is not defined or azure_security_group_name == "" |
|||
|
|||
- name: check azure_vnet_name value |
|||
fail: |
|||
msg: "azure_vnet_name is missing" |
|||
when: azure_vnet_name is not defined or azure_vnet_name == "" |
|||
|
|||
|
@ -0,0 +1,12 @@ |
|||
{ |
|||
"tenantId": "{{ azure_tenant_id }}", |
|||
"subscriptionId": "{{ azure_subscription_id }}", |
|||
"aadClientId": "{{ azure_aad_client_id }}", |
|||
"aadClientSecret": "{{ azure_aad_client_secret }}", |
|||
"resourceGroup": "{{ azure_resource_group }}", |
|||
"location": "{{ azure_location }}", |
|||
"subnetName": "{{ azure_subnet_name }}", |
|||
"securityGroupName": "{{ azure_security_group_name }}", |
|||
"vnetName": "{{ azure_vnet_name }}", |
|||
"routeTableName": "{{ azure_route_table_name }}" |
|||
} |
Write
Preview
Loading…
Cancel
Save