blob: b2a42f0c87631677da91a0dbe1b8523a02e5ee8f [file] [log] [blame]
Mohammed Naserb7b97d62022-03-12 16:30:00 -05001# Copyright (c) 2022 VEXXHOST, Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may
4# not use this file except in compliance with the License. You may obtain
5# a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations
13# under the License.
14
guilhermesteinmuller6f6bf702023-01-24 19:00:19 +000015- name: Uninstall the legacy HelmRelease
16 run_once: true
17 block:
18 - name: Suspend the existing HelmRelease
19 kubernetes.core.k8s:
20 state: patched
21 api_version: helm.toolkit.fluxcd.io/v2beta1
22 kind: HelmRelease
Mohammed Naser2145fc32023-01-29 23:23:03 +000023 name: "{{ neutron_helm_release_name }}"
24 namespace: "{{ neutron_helm_release_namespace }}"
guilhermesteinmuller6f6bf702023-01-24 19:00:19 +000025 definition:
26 spec:
27 suspend: true
28
29 - name: Remove the existing HelmRelease
30 kubernetes.core.k8s:
31 state: absent
32 api_version: helm.toolkit.fluxcd.io/v2beta1
33 kind: HelmRelease
Mohammed Naser2145fc32023-01-29 23:23:03 +000034 name: "{{ neutron_helm_release_name }}"
35 namespace: "{{ neutron_helm_release_namespace }}"
Mohammed Naserb7b97d62022-03-12 16:30:00 -050036
37- name: Deploy Helm chart
guilhermesteinmuller6f6bf702023-01-24 19:00:19 +000038 run_once: true
39 kubernetes.core.helm:
Mohammed Naser2145fc32023-01-29 23:23:03 +000040 name: "{{ neutron_helm_release_name }}"
41 chart_ref: "{{ neutron_helm_chart_ref }}"
42 release_namespace: "{{ neutron_helm_release_namespace }}"
guilhermesteinmuller6f6bf702023-01-24 19:00:19 +000043 create_namespace: true
44 kubeconfig: /etc/kubernetes/admin.conf
Mohammed Naser2145fc32023-01-29 23:23:03 +000045 values: "{{ _neutron_helm_values | combine(neutron_helm_values, recursive=True) }}"
Mohammed Naserb7b97d62022-03-12 16:30:00 -050046
47- name: Create Ingress
48 ansible.builtin.include_role:
49 name: openstack_helm_ingress
50 vars:
51 openstack_helm_ingress_endpoint: network
52 openstack_helm_ingress_service_name: neutron-server
53 openstack_helm_ingress_service_port: 9696
Mohammed Naser2145fc32023-01-29 23:23:03 +000054 openstack_helm_ingress_annotations: "{{ neutron_ingress_annotations }}"
Mohammed Naserb7b97d62022-03-12 16:30:00 -050055
Mohammed Naserb7b97d62022-03-12 16:30:00 -050056- name: Create networks
Mohammed Naser2145fc32023-01-29 23:23:03 +000057 when: neutron_networks | length > 0
Mohammed Naserc8e1a452022-08-11 16:16:13 -040058 block:
59 - name: Wait until network service ready
60 kubernetes.core.k8s_info:
61 api_version: apps/v1
62 kind: Deployment
63 name: neutron-server
64 namespace: openstack
65 wait_sleep: 10
66 wait_timeout: 600
67 wait: true
68 wait_condition:
69 type: Available
70 status: true
Mohammed Naserb7b97d62022-03-12 16:30:00 -050071
Mohammed Naserc8e1a452022-08-11 16:16:13 -040072 - name: Create networks
73 openstack.cloud.network:
74 cloud: atmosphere
75 # Network settings
76 name: "{{ item.name }}"
77 external: "{{ item.external | default(omit) }}"
78 shared: "{{ item.shared | default(omit) }}"
79 mtu_size: "{{ item.mtu_size | default(omit) }}"
80 port_security_enabled: "{{ item.port_security_enabled | default(omit) }}"
81 provider_network_type: "{{ item.provider_network_type | default(omit) }}"
82 provider_physical_network: "{{ item.provider_physical_network | default(omit) }}"
83 provider_segmentation_id: "{{ item.provider_segmentation_id | default(omit) }}"
Mohammed Naser2145fc32023-01-29 23:23:03 +000084 loop: "{{ neutron_networks }}"
Mohammed Naserc8e1a452022-08-11 16:16:13 -040085
86 - name: Create subnets
87 openstack.cloud.subnet:
88 cloud: atmosphere
89 # Subnet settings
90 network_name: "{{ item.0.name }}"
91 name: "{{ item.1.name }}"
92 ip_version: "{{ item.1.ip_version | default(omit) }}"
93 cidr: "{{ item.1.cidr | default(omit) }}"
94 gateway_ip: "{{ item.1.gateway_ip | default(omit) }}"
95 no_gateway_ip: "{{ item.1.no_gateway_ip | default(omit) }}"
96 allocation_pool_start: "{{ item.1.allocation_pool_start | default(omit) }}"
97 allocation_pool_end: "{{ item.1.allocation_pool_end | default(omit) }}"
98 dns_nameservers: "{{ item.1.dns_nameservers | default(omit) }}"
99 enable_dhcp: "{{ item.1.enable_dhcp | default(omit) }}"
100 host_routes: "{{ item.1.host_routes | default(omit) }}"
101 ipv6_address_mode: "{{ item.1.ipv6_address_mode | default(omit) }}"
102 ipv6_ra_mode: "{{ item.1.ipv6_ra_mode | default(omit) }}"
103 with_subelements:
Mohammed Naser2145fc32023-01-29 23:23:03 +0000104 - "{{ neutron_networks }}"
Mohammed Naserc8e1a452022-08-11 16:16:13 -0400105 - subnets