blob: a70ef8b4dbc5fbde4c0beca8d1dba486fe5b8421 [file] [log] [blame]
# Copyright (c) 2022 VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
- name: Create bare metal network
when: ironic_bare_metal_network_manage | bool
ansible.builtin.import_tasks: network/create.yml
- name: Lookup existing bare metal network
when: not (ironic_bare_metal_network_manage | bool)
ansible.builtin.import_tasks: network/lookup.yml
# - name: Create bare metal network ports
# # noqa: args[module]
# openstack.cloud.port:
# cloud: atmosphere
# name: "ironic-{{ inventory_hostname_short }}"
# device_owner: ironic:conductor
# network: "{{ ironic_bare_metal_network.id }}"
# fixed_ips: >-
# {{
# [
# {
# "ip_address": ironic_bare_metal_network_ip
# }
# ]
# if ironic_bare_metal_network_ip is defined else omit
# }}
# - name: Set binding for ports
# changed_when: false
# ansible.builtin.shell: |
# openstack port set \
# --host {{ ansible_fqdn }} \
# ironic-{{ inventory_hostname_short }}
# environment:
# OS_CLOUD: atmosphere
- name: Upload images
ansible.builtin.include_role:
name: glance_image
loop:
- name: "{{ ironic_python_agent_deploy_kernel_name }}"
url: "{{ ironic_python_agent_deploy_kernel_url }}"
format: aki
- name: "{{ ironic_python_agent_deploy_ramdisk_name }}"
url: "{{ ironic_python_agent_deploy_ramdisk_url }}"
format: ari
vars:
glance_image_name: "{{ item.name }}"
glance_image_url: "{{ item.url }}"
glance_image_container_format: "{{ item.format }}"
glance_image_disk_format: "{{ item.format }}"
- name: Get details on the kernel image
run_once: true
openstack.cloud.image_info:
cloud: atmosphere
image: "{{ ironic_python_agent_deploy_kernel_name }}"
register: ironic_python_agent_deploy_kernel
- name: Get details on the ramdisk image
run_once: true
openstack.cloud.image_info:
cloud: atmosphere
image: "{{ ironic_python_agent_deploy_ramdisk_name }}"
register: ironic_python_agent_deploy_ramdisk
- name: Deploy Helm chart
run_once: true
kubernetes.core.helm:
name: "{{ ironic_helm_release_name }}"
chart_ref: "{{ ironic_helm_chart_ref }}"
release_namespace: "{{ ironic_helm_release_namespace }}"
create_namespace: true
kubeconfig: "{{ ironic_helm_kubeconfig }}"
values: "{{ _ironic_helm_values | combine(ironic_helm_values, recursive=True) }}"
- name: Create Ingress
ansible.builtin.include_role:
name: openstack_helm_ingress
vars:
openstack_helm_ingress_endpoint: baremetal
openstack_helm_ingress_service_name: ironic-api
openstack_helm_ingress_service_port: 6385
openstack_helm_ingress_annotations: "{{ ironic_ingress_annotations }}"
openstack_helm_ingress_class_name: "{{ ironic_ingress_class_name }}"