diff options
| author | Thomas Wiest <twiest@redhat.com> | 2015-12-09 15:48:15 -0500 | 
|---|---|---|
| committer | Thomas Wiest <twiest@redhat.com> | 2015-12-09 15:48:15 -0500 | 
| commit | 14c69ad397be8ee101ef5b4edfa223d703e67ad0 (patch) | |
| tree | 70eee046db8012061c178ab4e686650048265564 /playbooks/openstack/openshift-cluster | |
| parent | 898290cb3aabbc9d98883181877ac857a2fe1faf (diff) | |
| parent | b7b3e6dbdfd17e55055630ce963965818e830620 (diff) | |
| download | openshift-14c69ad397be8ee101ef5b4edfa223d703e67ad0.tar.gz openshift-14c69ad397be8ee101ef5b4edfa223d703e67ad0.tar.bz2 openshift-14c69ad397be8ee101ef5b4edfa223d703e67ad0.tar.xz openshift-14c69ad397be8ee101ef5b4edfa223d703e67ad0.zip | |
Merge remote-tracking branch 'upstream/master' into prod
Diffstat (limited to 'playbooks/openstack/openshift-cluster')
| -rw-r--r-- | playbooks/openstack/openshift-cluster/files/heat_stack.yaml | 88 | ||||
| -rw-r--r-- | playbooks/openstack/openshift-cluster/launch.yml | 15 | ||||
| -rw-r--r-- | playbooks/openstack/openshift-cluster/vars.yml | 1 | 
3 files changed, 104 insertions, 0 deletions
| diff --git a/playbooks/openstack/openshift-cluster/files/heat_stack.yaml b/playbooks/openstack/openshift-cluster/files/heat_stack.yaml index 40e4ab22c..bfd73c777 100644 --- a/playbooks/openstack/openshift-cluster/files/heat_stack.yaml +++ b/playbooks/openstack/openshift-cluster/files/heat_stack.yaml @@ -43,6 +43,11 @@ parameters:      description: Source of legitimate ssh connections      default: 0.0.0.0/0 +  num_etcd: +    type: number +    label: Number of etcd nodes +    description: Number of etcd nodes +    num_masters:      type: number      label: Number of masters @@ -58,6 +63,11 @@ parameters:      label: Number of infrastructure nodes      description: Number of infrastructure nodes +  etcd_image: +    type: string +    label: Etcd image +    description: Name of the image for the etcd servers +    master_image:      type: string      label: Master image @@ -73,6 +83,11 @@ parameters:      label: Infra image      description: Name of the image for the infra node servers +  etcd_flavor: +    type: string +    label: Etcd flavor +    description: Flavor of the etcd servers +    master_flavor:      type: string      label: Master flavor @@ -90,6 +105,18 @@ parameters:  outputs: +  etcd_names: +    description: Name of the etcds +    value: { get_attr: [ etcd, name ] } + +  etcd_ips: +    description: IPs of the etcds +    value: { get_attr: [ etcd, private_ip ] } + +  etcd_floating_ips: +    description: Floating IPs of the etcds +    value: { get_attr: [ etcd, floating_ip ] } +    master_names:      description: Name of the masters      value: { get_attr: [ masters, name ] } @@ -220,6 +247,37 @@ resources:            port_range_min: 24224            port_range_max: 24224 +  etcd-secgrp: +    type: OS::Neutron::SecurityGroup +    properties: +      name: +        str_replace: +          template: openshift-ansible-cluster_id-etcd-secgrp +          params: +            cluster_id: { get_param: cluster_id } +      description: +        str_replace: +          template: Security group for cluster_id etcd cluster +          params: +            cluster_id: { get_param: cluster_id } +      rules: +        - direction: ingress +          protocol: tcp +          port_range_min: 22 +          port_range_max: 22 +          remote_ip_prefix: { get_param: ssh_incoming } +        - direction: ingress +          protocol: tcp +          port_range_min: 2379 +          port_range_max: 2379 +          remote_mode: remote_group_id +          remote_group_id: { get_resource: master-secgrp } +        - direction: ingress +          protocol: tcp +          port_range_min: 2380 +          port_range_max: 2380 +          remote_mode: remote_group_id +    node-secgrp:      type: OS::Neutron::SecurityGroup      properties: @@ -274,6 +332,36 @@ resources:            port_range_min: 443            port_range_max: 443 +  etcd: +    type: OS::Heat::ResourceGroup +    properties: +      count: { get_param: num_etcd } +      resource_def: +        type: heat_stack_server.yaml +        properties: +          name: +            str_replace: +              template: cluster_id-k8s_type-%index% +              params: +                cluster_id: { get_param: cluster_id } +                k8s_type: etcd +          cluster_id: { get_param: cluster_id } +          type:       etcd +          image:      { get_param: etcd_image } +          flavor:     { get_param: etcd_flavor } +          key_name:   { get_resource: keypair } +          net:        { get_resource: net } +          subnet:     { get_resource: subnet } +          secgrp: +            - { get_resource: etcd-secgrp } +          floating_network: { get_param: floating_ip_pool } +          net_name: +            str_replace: +              template: openshift-ansible-cluster_id-net +              params: +                cluster_id: { get_param: cluster_id } +    depends_on: interface +    masters:      type: OS::Heat::ResourceGroup      properties: diff --git a/playbooks/openstack/openshift-cluster/launch.yml b/playbooks/openstack/openshift-cluster/launch.yml index 651aef40b..b18512495 100644 --- a/playbooks/openstack/openshift-cluster/launch.yml +++ b/playbooks/openstack/openshift-cluster/launch.yml @@ -35,12 +35,15 @@               -P floating_ip_pool={{ openstack_floating_ip_pool }}               -P ssh_public_key="{{ openstack_ssh_public_key }}"               -P ssh_incoming={{ openstack_ssh_access_from }} +             -P num_etcd={{ num_etcd }}               -P num_masters={{ num_masters }}               -P num_nodes={{ num_nodes }}               -P num_infra={{ num_infra }} +             -P etcd_image={{ deployment_vars[deployment_type].image }}               -P master_image={{ deployment_vars[deployment_type].image }}               -P node_image={{ deployment_vars[deployment_type].image }}               -P infra_image={{ deployment_vars[deployment_type].image }} +             -P etcd_flavor={{ openstack_flavor["etcd"] }}               -P master_flavor={{ openstack_flavor["master"] }}               -P node_flavor={{ openstack_flavor["node"] }}               -P infra_flavor={{ openstack_flavor["infra"] }} @@ -61,6 +64,18 @@    - set_fact:        parsed_outputs: "{{ stack_show_result | oo_parse_heat_stack_outputs }}" +  - name: Add new etcd instances groups and variables +    add_host: +      hostname: '{{ item[0] }}' +      ansible_ssh_host: '{{ item[2] }}' +      ansible_ssh_user: "{{ deployment_vars[deployment_type].ssh_user }}" +      ansible_sudo: "{{ deployment_vars[deployment_type].sudo }}" +      groups: 'tag_env_{{ cluster_id }}, tag_host-type_etcd, tag_env-host-type_{{ cluster_id }}-openshift-etcd, tag_sub-host-type_default' +    with_together: +      - parsed_outputs.etcd_names +      - parsed_outputs.etcd_ips +      - parsed_outputs.etcd_floating_ips +    - name: Add new master instances groups and variables      add_host:        hostname: '{{ item[0] }}' diff --git a/playbooks/openstack/openshift-cluster/vars.yml b/playbooks/openstack/openshift-cluster/vars.yml index 262d3f4ed..e3796c91f 100644 --- a/playbooks/openstack/openshift-cluster/vars.yml +++ b/playbooks/openstack/openshift-cluster/vars.yml @@ -14,6 +14,7 @@ openstack_ssh_public_key:       "{{ lookup('file', lookup('oo_option', 'public_k  openstack_ssh_access_from:      "{{ lookup('oo_option', 'ssh_from')          |                                      default('0.0.0.0/0',                     True) }}"  openstack_flavor: +  etcd:   "{{ lookup('oo_option', 'etcd_flavor'      ) | default('m1.small',  True) }}"    master: "{{ lookup('oo_option', 'master_flavor'    ) | default('m1.small',  True) }}"    infra:  "{{ lookup('oo_option', 'infra_flavor'     ) | default('m1.small',  True) }}"    node:   "{{ lookup('oo_option', 'node_flavor'      ) | default('m1.medium', True) }}" | 
