Support Kolla install from source
We need to make some downstream changes to Kolla currently, so let's install from source rather than patching.
This commit is contained in:
parent
b654a70e65
commit
a082bd2446
@ -9,3 +9,6 @@ kayobe_config_path: "{{ lookup('env', 'KAYOBE_CONFIG_PATH') | default('/etc/kayo
|
|||||||
|
|
||||||
# Path in which to cache downloaded images.
|
# Path in which to cache downloaded images.
|
||||||
image_cache_path: "{{ ansible_user_dir ~ '/kayobe-image-cache' }}"
|
image_cache_path: "{{ ansible_user_dir ~ '/kayobe-image-cache' }}"
|
||||||
|
|
||||||
|
# Path on which to checkout source code repositories.
|
||||||
|
source_checkout_path: "{{ ansible_user_dir ~ '/kayobe-source' }}"
|
||||||
|
@ -1,4 +1,17 @@
|
|||||||
---
|
---
|
||||||
|
###############################################################################
|
||||||
|
# Kolla installation.
|
||||||
|
|
||||||
|
# Type of Kolla control installation. One of 'binary' or 'source'.
|
||||||
|
kolla_ctl_install_type: source
|
||||||
|
|
||||||
|
# URL of Kolla source code repository if type is 'source'.
|
||||||
|
kolla_source_url: "https://github.com/stackhpc/kolla"
|
||||||
|
|
||||||
|
# Version (branch, tag, etc.) of Kolla source code repository if type is
|
||||||
|
# 'source'.
|
||||||
|
kolla_source_version: "stackhpc-{{ kolla_openstack_release }}"
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Kolla configuration.
|
# Kolla configuration.
|
||||||
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
--- /usr/share/kolla/ansible/roles/baremetal/templates/docker_yum_repo.j2.old 2017-01-10 16:21:05.305626808 -0500
|
|
||||||
+++ /usr/share/kolla/ansible/roles/baremetal/templates/docker_yum_repo.j2 2017-01-10 16:21:09.216645923 -0500
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
[docker-repo]
|
|
||||||
name=Docker main Repository
|
|
||||||
-baseurl={{docker_yum_url}}/repo/main/{{ansible_distribution|lower}}/{{ansible_distribution_major_version|lower}}
|
|
||||||
+baseurl={{docker_yum_url}}/repo/main/{% if ansible_distribution == 'RedHat' %}centos{% else %}{{ansible_distribution|lower}}{% endif %}/{{ansible_distribution_major_version|lower}}
|
|
||||||
enabled=1
|
|
||||||
gpgcheck=1
|
|
||||||
gpgkey={{docker_yum_url}}/gpg
|
|
@ -1,27 +0,0 @@
|
|||||||
--- /usr/share/kolla/ansible/roles/baremetal/tasks/pre-install.yml.old 2017-01-06 17:23:12.444746830 +0000
|
|
||||||
+++ /usr/share/kolla/ansible/roles/baremetal/tasks/pre-install.yml 2017-01-06 17:22:27.864278879 +0000
|
|
||||||
@@ -28,6 +28,7 @@
|
|
||||||
{% for host in groups['all'] %}
|
|
||||||
{{ hostvars[host]['ansible_' + hostvars[host]['api_interface']]['ipv4']['address'] }} {{ hostvars[host]['ansible_hostname'] }}
|
|
||||||
{% endfor %}
|
|
||||||
+ become: True
|
|
||||||
when: customize_etc_hosts | bool
|
|
||||||
|
|
||||||
- name: ensure sudo group is present
|
|
||||||
@@ -126,7 +127,7 @@
|
|
||||||
recurse: yes
|
|
||||||
owner: kolla
|
|
||||||
group: kolla
|
|
||||||
- mode: 755
|
|
||||||
+ mode: 0755
|
|
||||||
become: True
|
|
||||||
when: create_kolla_user | bool == True
|
|
||||||
|
|
||||||
@@ -135,6 +136,6 @@
|
|
||||||
path: /etc/kolla
|
|
||||||
state: directory
|
|
||||||
recurse: yes
|
|
||||||
- mode: 666
|
|
||||||
+ mode: 0666
|
|
||||||
become: True
|
|
||||||
when: create_kolla_user | bool == False
|
|
@ -1,11 +0,0 @@
|
|||||||
--- /usr/share/kolla/ansible/roles/ironic/templates/ironic-api.json.j2.old 2017-01-06 13:56:52.881061188 +0000
|
|
||||||
+++ /usr/share/kolla/ansible/roles/ironic/templates/ironic-api.json.j2 2017-01-06 14:00:21.757338271 +0000
|
|
||||||
@@ -10,7 +10,7 @@
|
|
||||||
],
|
|
||||||
"permissions": [
|
|
||||||
{
|
|
||||||
- "path": "/var/log/kolla/ironic"
|
|
||||||
+ "path": "/var/log/kolla/ironic",
|
|
||||||
"owner": "ironic:ironic",
|
|
||||||
"recurse": true
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
--- /usr/share/kolla/ansible/roles/ironic/templates/ironic-conductor.json.j2.old 2017-01-06 14:28:35.048365453 +0000
|
|
||||||
+++ /usr/share/kolla/ansible/roles/ironic/templates/ironic-conductor.json.j2 2017-01-06 14:28:44.858467071 +0000
|
|
||||||
@@ -20,7 +20,7 @@
|
|
||||||
"recurse": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
- "path": "/tftpboot"
|
|
||||||
+ "path": "/tftpboot",
|
|
||||||
"owner": "ironic:ironic",
|
|
||||||
"recurse": true
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
--- ansible/kolla-venv/bin/kolla-ansible.orig 2017-01-29 21:20:29.189225104 +0000
|
|
||||||
+++ ansible/kolla-venv/bin/kolla-ansible 2017-01-31 16:31:07.203695865 +0000
|
|
||||||
@@ -9,6 +9,8 @@
|
|
||||||
BASEDIR=/usr/share/kolla
|
|
||||||
elif [[ ${dir_name} == "/usr/local/bin" ]]; then
|
|
||||||
BASEDIR=/usr/local/share/kolla
|
|
||||||
+ elif [[ ${dir_name} == "${VIRTUAL_ENV}/bin" ]]; then
|
|
||||||
+ BASEDIR="${VIRTUAL_ENV}/share/kolla"
|
|
||||||
else
|
|
||||||
BASEDIR="$(dirname ${dir_name})"
|
|
||||||
fi
|
|
@ -1,11 +0,0 @@
|
|||||||
--- ansible/kolla-venv/share/kolla/ansible/roles/prechecks/tasks/port_checks.yml.orig 2017-01-31 16:26:26.021463306 +0000
|
|
||||||
+++ ansible/kolla-venv/share/kolla/ansible/roles/prechecks/tasks/port_checks.yml 2017-01-31 16:27:22.045711530 +0000
|
|
||||||
@@ -601,7 +601,7 @@
|
|
||||||
changed_when: false
|
|
||||||
failed_when: "'169.254.' not in kolla_internal_vip_address and \
|
|
||||||
kolla_internal_vip_address | ipaddr(ip_addr_output.stdout.split()[3]) is none"
|
|
||||||
- when: enable_haproxy | bool
|
|
||||||
+ when: false
|
|
||||||
|
|
||||||
- name: Checking the network_interface is present
|
|
||||||
fail: "msg='Please check the network_interface property - interface {{ network_interface }} not found'"
|
|
@ -1,34 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Ensure the Kolla configuration directores exist
|
|
||||||
file:
|
|
||||||
path: "{{ item }}"
|
|
||||||
state: directory
|
|
||||||
mode: 0755
|
|
||||||
become: True
|
|
||||||
with_items:
|
|
||||||
- "{{ kolla_config_path }}/inventory"
|
|
||||||
- "{{ kolla_node_custom_config_path }}"
|
|
||||||
|
|
||||||
- name: Ensure the Kolla configuration files exist
|
|
||||||
template:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ kolla_config_path }}/{{ item.dest }}"
|
|
||||||
mode: 0644
|
|
||||||
become: True
|
|
||||||
with_items:
|
|
||||||
- { src: seed.j2, dest: inventory/seed }
|
|
||||||
- { src: overcloud.j2, dest: inventory/overcloud }
|
|
||||||
- { src: globals.yml.j2, dest: globals.yml }
|
|
||||||
|
|
||||||
- name: Check whether the Kolla passwords file exists
|
|
||||||
stat:
|
|
||||||
path: "{{ kolla_config_path }}/passwords.yml"
|
|
||||||
register: kolla_passwords_stat
|
|
||||||
|
|
||||||
- name: Generate Kolla passwords
|
|
||||||
shell: >
|
|
||||||
cp {{ kolla_install_dir }}/etc_examples/kolla/passwords.yml {{ kolla_config_path }}/passwords.yml.generated
|
|
||||||
&& {{ kolla_venv }}/bin/kolla-genpwd -p {{ kolla_config_path }}/passwords.yml.generated
|
|
||||||
&& mv {{ kolla_config_path }}/passwords.yml.generated {{ kolla_config_path }}/passwords.yml
|
|
||||||
become: True
|
|
||||||
when: not kolla_passwords_stat.stat.exists
|
|
@ -1,19 +0,0 @@
|
|||||||
---
|
|
||||||
- name: Ensure Kolla patches are applied
|
|
||||||
patch:
|
|
||||||
src: "{{ item.src }}"
|
|
||||||
dest: "{{ item.dest }}"
|
|
||||||
become: True
|
|
||||||
with_items:
|
|
||||||
- src: baremetal-docker_yum_repo.j2.patch
|
|
||||||
dest: "{{ kolla_install_dir }}/ansible/roles/baremetal/templates/docker_yum_repo.j2"
|
|
||||||
- src: baremetal-pre-install.yml.patch
|
|
||||||
dest: "{{ kolla_install_dir }}/ansible/roles/baremetal/tasks/pre-install.yml"
|
|
||||||
- src: ironic-api.json.j2.patch
|
|
||||||
dest: "{{ kolla_install_dir }}/ansible/roles/ironic/templates/ironic-api.json.j2"
|
|
||||||
- src: ironic-conductor.json.j2.patch
|
|
||||||
dest: "{{ kolla_install_dir }}/ansible/roles/ironic/templates/ironic-conductor.json.j2"
|
|
||||||
- src: prechecks-port_checks.yml.patch
|
|
||||||
dest: "{{ kolla_install_dir }}/ansible/roles/prechecks/tasks/port_checks.yml"
|
|
||||||
- src: kolla-ansible.patch
|
|
||||||
dest: "{{ kolla_venv }}/bin/kolla-ansible"
|
|
@ -1,3 +1,34 @@
|
|||||||
---
|
---
|
||||||
- include: install.yml
|
- name: Ensure the Kolla configuration directores exist
|
||||||
- include: config.yml
|
file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
mode: 0755
|
||||||
|
become: True
|
||||||
|
with_items:
|
||||||
|
- "{{ kolla_config_path }}/inventory"
|
||||||
|
- "{{ kolla_node_custom_config_path }}"
|
||||||
|
|
||||||
|
- name: Ensure the Kolla configuration files exist
|
||||||
|
template:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ kolla_config_path }}/{{ item.dest }}"
|
||||||
|
mode: 0644
|
||||||
|
become: True
|
||||||
|
with_items:
|
||||||
|
- { src: seed.j2, dest: inventory/seed }
|
||||||
|
- { src: overcloud.j2, dest: inventory/overcloud }
|
||||||
|
- { src: globals.yml.j2, dest: globals.yml }
|
||||||
|
|
||||||
|
- name: Check whether the Kolla passwords file exists
|
||||||
|
stat:
|
||||||
|
path: "{{ kolla_config_path }}/passwords.yml"
|
||||||
|
register: kolla_passwords_stat
|
||||||
|
|
||||||
|
- name: Generate Kolla passwords
|
||||||
|
shell: >
|
||||||
|
cp {{ kolla_install_dir }}/etc_examples/kolla/passwords.yml {{ kolla_config_path }}/passwords.yml.generated
|
||||||
|
&& {{ kolla_venv }}/bin/kolla-genpwd -p {{ kolla_config_path }}/passwords.yml.generated
|
||||||
|
&& mv {{ kolla_config_path }}/passwords.yml.generated {{ kolla_config_path }}/passwords.yml
|
||||||
|
become: True
|
||||||
|
when: not kolla_passwords_stat.stat.exists
|
||||||
|
@ -3,8 +3,6 @@
|
|||||||
file:
|
file:
|
||||||
path: "{{ kolla_node_custom_config_path }}/{{ item.name }}"
|
path: "{{ kolla_node_custom_config_path }}/{{ item.name }}"
|
||||||
state: directory
|
state: directory
|
||||||
owner: kolla
|
|
||||||
group: kolla
|
|
||||||
mode: 0755
|
mode: 0755
|
||||||
become: True
|
become: True
|
||||||
with_items:
|
with_items:
|
||||||
@ -15,8 +13,6 @@
|
|||||||
template:
|
template:
|
||||||
src: "{{ item.src }}"
|
src: "{{ item.src }}"
|
||||||
dest: "{{ kolla_node_custom_config_path }}/{{ item.dest }}"
|
dest: "{{ kolla_node_custom_config_path }}/{{ item.dest }}"
|
||||||
owner: kolla
|
|
||||||
group: kolla
|
|
||||||
mode: 0644
|
mode: 0644
|
||||||
become: True
|
become: True
|
||||||
with_items:
|
with_items:
|
||||||
|
@ -21,16 +21,31 @@
|
|||||||
with_items:
|
with_items:
|
||||||
- { name: pip }
|
- { name: pip }
|
||||||
|
|
||||||
|
- name: Ensure Kolla source code checkout exists
|
||||||
|
git:
|
||||||
|
repo: "{{ kolla_source_url }}"
|
||||||
|
dest: "{{ source_checkout_path }}/kolla"
|
||||||
|
version: "{{ kolla_source_version }}"
|
||||||
|
when: "{{ kolla_ctl_install_type == 'source' }}"
|
||||||
|
|
||||||
- name: Ensure required Python packages are installed
|
- name: Ensure required Python packages are installed
|
||||||
pip:
|
pip:
|
||||||
name: "{{ item.name }}"
|
name: "{{ item.name }}"
|
||||||
version: "{{ item.version }}"
|
version: "{{ item.version | default(omit) }}"
|
||||||
state: present
|
state: present
|
||||||
virtualenv: "{{ kolla_venv }}"
|
virtualenv: "{{ kolla_venv }}"
|
||||||
with_items:
|
with_items:
|
||||||
- { name: kolla, version: "{{ kolla_openstack_release }}" }
|
# Intall Kolla from source.
|
||||||
|
- name: "{{ source_checkout_path }}/kolla"
|
||||||
|
install: "{{ kolla_ctl_install_type == 'source' }}"
|
||||||
|
# Intall Kolla from PyPI.
|
||||||
|
- name: "kolla"
|
||||||
|
version: "{{ kolla_openstack_release }}"
|
||||||
|
install: "{{ kolla_ctl_install_type == 'binary' }}"
|
||||||
# Required for kolla-genpwd.
|
# Required for kolla-genpwd.
|
||||||
- { name: PyYAML, version: "3.12" }
|
- name: PyYAML
|
||||||
|
version: "3.12"
|
||||||
|
when: "{{ item.install | default(True) | bool }}"
|
||||||
|
|
||||||
- name: Ensure the Kolla configuration directores exist
|
- name: Ensure the Kolla configuration directores exist
|
||||||
file:
|
file:
|
||||||
|
@ -10,6 +10,9 @@
|
|||||||
# Path in which to cache downloaded images.
|
# Path in which to cache downloaded images.
|
||||||
#image_cache_path:
|
#image_cache_path:
|
||||||
|
|
||||||
|
# Path on which to checkout source code repositories.
|
||||||
|
#source_checkout_path:
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Dummy variable to allow Ansible to accept this file.
|
# Dummy variable to allow Ansible to accept this file.
|
||||||
workaround_ansible_issue_8743: yes
|
workaround_ansible_issue_8743: yes
|
||||||
|
@ -1,6 +1,19 @@
|
|||||||
---
|
---
|
||||||
# Kayobe Kolla configuration.
|
# Kayobe Kolla configuration.
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
# Kolla installation.
|
||||||
|
|
||||||
|
# Type of Kolla control installation. One of 'binary' or 'source'.
|
||||||
|
#kolla_ctl_install_type:
|
||||||
|
|
||||||
|
# URL of Kolla source code repository if type is 'source'.
|
||||||
|
#kolla_source_url:
|
||||||
|
|
||||||
|
# Version (branch, tag, etc.) of Kolla source code repository if type is
|
||||||
|
# 'source'.
|
||||||
|
#kolla_source_version:
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Kolla configuration.
|
# Kolla configuration.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user