Created
November 23, 2017 10:50
-
-
Save openstacker/26e31c9715d52cc502397b65d3cebab6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openstack stack create \ | |
--template kubemaster.yaml \ | |
--parameter name=kube \ | |
--parameter ssh_key_name=default \ | |
--parameter master_flavor=m1.small \ | |
--parameter fixed_network=357dfedc-7e58-4e15-b169-96d89ef5b160 \ | |
--parameter fixed_subnet=d1d057a8-f91c-4f3c-803f-4e4ad2201008 \ | |
--parameter server_image=c51afe4f-8a52-4fc7-b798-0830e327dfd5 \ | |
kube | |
###################################### | |
$ cat kubemaster.yaml | |
heat_template_version: 2014-10-16 | |
description: > | |
This is a nested stack that defines a single Kubernetes master, This stack is | |
included by an ResourceGroup resource in the parent template | |
(kubecluster.yaml). | |
parameters: | |
name: | |
type: string | |
description: server name | |
server_image: | |
type: string | |
description: glance image used to boot the server | |
master_flavor: | |
type: string | |
description: flavor to use when booting the server | |
ssh_key_name: | |
type: string | |
description: name of ssh key to be provisioned on our server | |
fixed_network: | |
type: string | |
description: Network from which to allocate fixed addresses. | |
fixed_subnet: | |
type: string | |
description: Subnet from which to allocate fixed addresses. | |
resources: | |
secgroup_kube_master: | |
type: OS::Neutron::SecurityGroup | |
properties: | |
rules: | |
- protocol: icmp | |
- protocol: tcp | |
port_range_min: 22 | |
port_range_max: 22 | |
- protocol: tcp | |
port_range_min: 7080 | |
port_range_max: 7080 | |
- protocol: tcp | |
port_range_min: 8080 | |
port_range_max: 8080 | |
- protocol: tcp | |
port_range_min: 2379 | |
port_range_max: 2379 | |
- protocol: tcp | |
port_range_min: 2380 | |
port_range_max: 2380 | |
- protocol: tcp | |
port_range_min: 6443 | |
port_range_max: 6443 | |
- protocol: tcp | |
port_range_min: 30000 | |
port_range_max: 32767 | |
make_cert: | |
type: OS::Heat::SoftwareConfig | |
properties: | |
group: ungrouped | |
config: {get_file: a_shell_script.sh} | |
kube_master_init: | |
type: OS::Heat::MultipartMime | |
properties: | |
parts: | |
- config: {get_resource: make_cert} | |
###################################################################### | |
# | |
# a single kubernetes master. | |
# | |
# do NOT use "_" (underscore) in the Nova server name | |
# it creates a mismatch between the generated Nova name and its hostname | |
# which can lead to weird problems | |
kube-master: | |
type: OS::Nova::Server | |
properties: | |
name: {get_param: name} | |
image: {get_param: server_image} | |
flavor: {get_param: master_flavor} | |
key_name: {get_param: ssh_key_name} | |
user_data_format: RAW | |
user_data: {get_resource: kube_master_init} | |
networks: | |
- port: {get_resource: kube_master_eth0} | |
kube_master_eth0: | |
type: OS::Neutron::Port | |
properties: | |
network: {get_param: fixed_network} | |
security_groups: | |
- {get_resource: secgroup_kube_master} | |
fixed_ips: | |
- subnet: {get_param: fixed_subnet} | |
allowed_address_pairs: | |
- ip_address: "10.100.0.0/16" | |
replacement_policy: AUTO | |
outputs: | |
kube_master_ip: | |
value: {get_attr: [kube_master_eth0, fixed_ips, 0, ip_address]} | |
description: > | |
This is the "private" IP address of the Kubernetes master node. | |
##################################### | |
$ cat a_shell_script.sh | |
#!/bin/bash | |
echo hi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment