You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
6.8 KiB
177 lines
6.8 KiB
heat_template_version: queens |
|
|
|
description: External tasks definition for OpenShift |
|
|
|
parameters: |
|
RoleNetIpMap: |
|
default: {} |
|
type: json |
|
ServiceData: |
|
default: {} |
|
description: Dictionary packing service data |
|
type: json |
|
ServiceNetMap: |
|
default: {} |
|
description: Mapping of service_name -> network name. Typically set |
|
via parameter_defaults in the resource registry. This |
|
mapping overrides those in ServiceNetMapDefaults. |
|
type: json |
|
DefaultPasswords: |
|
default: {} |
|
type: json |
|
RoleName: |
|
default: '' |
|
description: Role name on which the service is applied |
|
type: string |
|
RoleParameters: |
|
default: {} |
|
description: Parameters specific to the role |
|
type: json |
|
EndpointMap: |
|
default: {} |
|
description: Mapping of service endpoint -> protocol. Typically set |
|
via parameter_defaults in the resource registry. |
|
type: json |
|
|
|
outputs: |
|
role_data: |
|
description: Role data for the Openshift Service |
|
value: |
|
service_name: openshift_master |
|
config_settings: |
|
tripleo.openshift_master.firewall_rules: |
|
'200 openshift-master api': |
|
dport: 6443 |
|
proto: tcp |
|
'200 openshift-master etcd': |
|
dport: |
|
- 2379 |
|
- 2380 |
|
proto: tcp |
|
upgrade_tasks: [] |
|
step_config: '' |
|
external_deploy_tasks: |
|
- name: openshift_master step 2 |
|
when: step == '2' |
|
block: |
|
- name: create openshift temp dirs |
|
file: |
|
path: "{{item}}" |
|
state: directory |
|
with_items: |
|
- "{{playbook_dir}}/openshift" |
|
- name: generate openshift inventory |
|
copy: |
|
dest: "{{playbook_dir}}/openshift/inventory.yml" |
|
content: | |
|
masters: |
|
hosts: |
|
{% for host in groups['openshift_master'] -%} |
|
{{ hostvars.raw_get(host)['ansible_hostname'] }}: |
|
ansible_user: {{ hostvars.raw_get(host)['ansible_user'] | default(hostvars.raw_get(host)['ansible_ssh_user']) | default('root') }} |
|
ansible_host: {{ hostvars.raw_get(host)['ansible_host'] | default(host) }} |
|
ansible_become: true |
|
{% endfor %} |
|
|
|
nodes: |
|
hosts: |
|
{% for host in groups['openshift_worker'] -%} |
|
{{ hostvars.raw_get(host)['ansible_hostname'] }}: |
|
ansible_user: {{ hostvars.raw_get(host)['ansible_user'] | default(hostvars.raw_get(host)['ansible_ssh_user']) | default('root') }} |
|
ansible_host: {{ hostvars.raw_get(host)['ansible_host'] | default(host) }} |
|
ansible_become: true |
|
openshift_schedulable: true |
|
{% endfor %} |
|
|
|
etcd: |
|
children: |
|
masters: {} |
|
|
|
OSEv3: |
|
children: |
|
masters: {} |
|
nodes: {} |
|
|
|
- name: generate openshift global vars |
|
copy: |
|
dest: "{{playbook_dir}}/openshift/global_vars.yml" |
|
content: | |
|
containerized: true |
|
openshift_master_cluster_method: native |
|
openshift_use_dnsmasq: true |
|
openshift_deployment_type: origin |
|
openshift_release: '3.6' |
|
openshift_image_tag: v3.6.1 |
|
enable_excluders: false |
|
openshift_docker_selinux_enabled: false |
|
osm_etcd_image: "registry.fedoraproject.org/f27/etcd" |
|
# NOTE(flaper87): Needed for the gate |
|
openshift_disable_check: disk_availability,docker_storage,memory_availability,docker_image_availability |
|
skip_ovs_svc_handlers: true |
|
|
|
- name: generate openshift playbook |
|
copy: |
|
dest: "{{playbook_dir}}/openshift/playbook.yml" |
|
content: | |
|
# NOTE(flaper87): The NetworkManager setup has been moved |
|
# into openshift-ansible but it's not been released yet. |
|
# This code will go away as soon as an rpm with the required |
|
# roles hits the repo. |
|
- name: Install NetworkManager |
|
hosts: all |
|
|
|
tasks: |
|
- name: install NetworkManager |
|
package: |
|
name: NetworkManager |
|
state: present |
|
|
|
- name: generate nm dispatcher script |
|
copy: |
|
dest: "/etc/NetworkManager/dispatcher.d/99-os-net-config-origin-dns.sh" |
|
owner: root |
|
mode: 0755 |
|
content: >- |
|
#!/bin/bash -x |
|
|
|
for dev in $(jq '.network_config[] | {name}.name' /etc/os-net-config/config.json); |
|
do |
|
temp="${dev%\"}" |
|
temp="${temp#\"}" |
|
export DEVICE_IFACE=$temp |
|
|
|
/etc/NetworkManager/dispatcher.d/99-origin-dns.sh $DEVICE_IFACE up |
|
done |
|
|
|
- name: Enable NetworkManager |
|
service: |
|
name: NetworkManager |
|
state: restarted |
|
enabled: yes |
|
|
|
- include: /usr/share/ansible/openshift-ansible/playbooks/byo/config.yml |
|
- name: set openshift command |
|
set_fact: |
|
openshift_command: >- |
|
{%- if openshift_command is defined -%} |
|
{{openshift_command}} |
|
{%- else -%} |
|
ANSIBLE_HOST_KEY_CHECKING=False |
|
ansible-playbook |
|
-i '{{playbook_dir}}/openshift/inventory.yml' |
|
--extra-vars '@{{playbook_dir}}/openshift/global_vars.yml' |
|
'{{playbook_dir}}/openshift/playbook.yml' |
|
{%- endif -%} |
|
- name: print openshift command |
|
debug: |
|
var: openshift_command |
|
- name: run openshift (immediate log at {{playbook_dir}}/openshift/playbook.log) |
|
shell: | |
|
{{openshift_command}} 2>&1 | tee {{playbook_dir}}/openshift/playbook.log |
|
exit ${PIPESTATUS[0]} |
|
register: outputs |
|
- name: print openshift outputs |
|
debug: |
|
var: (outputs.stderr|default('')).split('\n')|union(outputs.stdout_lines|default([])) |
|
failed_when: outputs|failed |
|
when: outputs is defined
|
|
|