WIP: Add Designate
Sem-Ver: feature
Change-Id: Idd18443fe0cd5b0df352f88e554d1f2db3404db5
diff --git a/playbooks/openstack.yml b/playbooks/openstack.yml
index fb422c8..9d7f0cf 100644
--- a/playbooks/openstack.yml
+++ b/playbooks/openstack.yml
@@ -81,6 +81,10 @@
tags:
- openstack-helm-placement
+ - role: openstack_helm_designate
+ tags:
+ - openstack-helm-designate
+
- role: openstack_helm_infra_openvswitch
tags:
- openstack-helm-infra-openvswitch
diff --git a/releasenotes/notes/add_designate-73b91c9514f92c22.yaml b/releasenotes/notes/add_designate-73b91c9514f92c22.yaml
new file mode 100644
index 0000000..58c3143
--- /dev/null
+++ b/releasenotes/notes/add_designate-73b91c9514f92c22.yaml
@@ -0,0 +1,2 @@
+---
+features: Add Designate
diff --git a/roles/openstack_helm_designate/defaults/main.yml b/roles/openstack_helm_designate/defaults/main.yml
new file mode 100644
index 0000000..99701e6
--- /dev/null
+++ b/roles/openstack_helm_designate/defaults/main.yml
@@ -0,0 +1,61 @@
+---
+# .. vim: foldmarker=[[[,]]]:foldmethod=marker
+
+# .. Copyright (C) 2022 VEXXHOST, Inc.
+# .. SPDX-License-Identifier: Apache-2.0
+
+# Default variables
+# =================
+
+# .. contents:: Sections
+# :local:
+
+
+# .. envvar:: openstack_helm_designate_chart_repo_name [[[
+#
+# Helm repository name for the chart.
+openstack_helm_designate_chart_repo_name: openstack-helm
+
+ # ]]]
+# .. envvar:: openstack_helm_designate_chart_repo_url [[[
+#
+# Helm repository URL for the chart.
+openstack_helm_designate_chart_repo_url: https://tarballs.opendev.org/openstack/openstack-helm/
+
+ # ]]]
+# .. envvar:: openstack_helm_designate_chart_name [[[
+#
+# Helm chart name (will also be used for release name)
+openstack_helm_designate_chart_name: designate
+
+ # ]]]
+# .. envvar:: openstack_helm_designate_image_repository [[[
+#
+# Image repository location to be prefixed for all images
+openstack_helm_designate_image_repository: "{{ atmosphere_image_repository | default('us-docker.pkg.dev/vexxhost-infra/openstack') }}"
+
+ # ]]]
+# .. envvar:: openstack_helm_designate_image_tag [[[
+#
+# Image tag for container
+openstack_helm_designate_image_tag: 0.2.5
+
+ # ]]]
+# .. envvar:: openstack_helm_designate_heat_image_tag [[[
+#
+# Image tag for Heat to be used for jobs running via Helm hooks
+openstack_helm_designate_heat_image_tag: wallaby
+
+ # ]]]
+# .. envvar:: openstack_helm_designate_values [[[
+#
+# Overrides for Helm chart values
+openstack_helm_designate_values: {}
+
+ # ]]]
+# .. envvar:: openstack_helm_designate_ingress_annotations [[[
+#
+# Ingress annotations
+openstack_helm_designate_ingress_annotations: {}
+
+ # ]]]
diff --git a/roles/openstack_helm_designate/meta/main.yml b/roles/openstack_helm_designate/meta/main.yml
new file mode 100644
index 0000000..ed691c4
--- /dev/null
+++ b/roles/openstack_helm_designate/meta/main.yml
@@ -0,0 +1,29 @@
+# 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.
+
+galaxy_info:
+ author: VEXXHOST, Inc.
+ description: Ansible role for OpenStack designate
+ license: Apache-2.0
+ min_ansible_version: 5.5.0
+ platforms:
+ - name: Ubuntu
+ versions:
+ - focal
+
+dependencies:
+ - role: helm_repository
+ vars:
+ helm_repository_name: "{{ openstack_helm_designate_chart_repo_name }}"
+ helm_repository_repo_url: "{{ openstack_helm_designate_chart_repo_url }}"
diff --git a/roles/openstack_helm_designate/tasks/main.yml b/roles/openstack_helm_designate/tasks/main.yml
new file mode 100644
index 0000000..7fd7300
--- /dev/null
+++ b/roles/openstack_helm_designate/tasks/main.yml
@@ -0,0 +1,39 @@
+# 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: Generate OpenStack-Helm endpoints
+ ansible.builtin.include_role:
+ name: openstack_helm_endpoints
+ vars:
+ openstack_helm_endpoints_repo_name: "{{ openstack_helm_designate_chart_repo_name }}"
+ openstack_helm_endpoints_repo_url: "{{ openstack_helm_designate_chart_repo_url }}"
+ openstack_helm_endpoints_chart: "{{ openstack_helm_designate_chart_name }}"
+
+- name: Deploy Helm chart
+ kubernetes.core.helm:
+ name: "{{ openstack_helm_designate_chart_name }}"
+ chart_ref: "{{ openstack_helm_designate_chart_repo_name }}/{{ openstack_helm_designate_chart_name }}"
+ chart_version: 0.2.5
+ release_namespace: openstack
+ kubeconfig: /etc/kubernetes/admin.conf
+ values: "{{ _openstack_helm_designate_values | combine(openstack_helm_designate_values, recursive=True) }}"
+
+- name: Create Ingress
+ ansible.builtin.include_role:
+ name: openstack_helm_ingress
+ vars:
+ openstack_helm_ingress_endpoint: designate
+ openstack_helm_ingress_service_name: designate-api
+ openstack_helm_ingress_service_port: 8778
+ openstack_helm_ingress_annotations: "{{ openstack_helm_designate_ingress_annotations }}"
diff --git a/roles/openstack_helm_designate/vars/main.yml b/roles/openstack_helm_designate/vars/main.yml
new file mode 100644
index 0000000..177b79b
--- /dev/null
+++ b/roles/openstack_helm_designate/vars/main.yml
@@ -0,0 +1,33 @@
+# 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.
+
+_openstack_helm_designate_values:
+ endpoints: "{{ openstack_helm_endpoints }}"
+ images:
+ tags:
+ bootstrap: "{{ openstack_helm_designate_image_repository }}/heat:{{ openstack_helm_designate_heat_image_tag }}"
+ db_init: "{{ openstack_helm_designate_image_repository }}/heat:{{ openstack_helm_designate_heat_image_tag }}"
+ db_drop: "{{ openstack_helm_designate_image_repository }}/heat:{{ openstack_helm_designate_heat_image_tag }}"
+ rabbit_init: "{{ openstack_helm_designate_image_repository }}/rabbitmq:3.8.23-management"
+ ks_user: "{{ openstack_helm_designate_image_repository }}/heat:{{ openstack_helm_designate_heat_image_tag }}"
+ ks_service: "{{ openstack_helm_designate_image_repository }}/heat:{{ openstack_helm_designate_heat_image_tag }}"
+ ks_endpoints: "{{ openstack_helm_designate_image_repository }}/heat:{{ openstack_helm_designate_heat_image_tag }}"
+ dep_check: "{{ openstack_helm_designate_image_repository }}/kubernetes-entrypoint:latest"
+ designate_db_sync: "{{ openstack_helm_designate_image_repository }}/designate:{{ openstack_helm_designate_image_tag }}"
+ designate_api: "{{ openstack_helm_designate_image_repository }}/designate:{{ openstack_helm_designate_image_tag }}"
+ designate_central: "{{ openstack_helm_designate_image_repository }}/designate:{{ openstack_helm_designate_image_tag }}"
+ designate_mdns: "{{ openstack_helm_designate_image_repository }}/designate:{{ openstack_helm_designate_image_tag }}"
+ designate_worker: "{{ openstack_helm_designate_image_repository }}/designate:{{ openstack_helm_designate_image_tag }}"
+ designate_producer: "{{ openstack_helm_designate_image_repository }}/designate:{{ openstack_helm_designate_image_tag }}"
+ designate_sink: "{{ openstack_helm_designate_image_repository }}/designate:{{ openstack_helm_designate_image_tag }}"
diff --git a/roles/openstack_helm_endpoints/vars/main.yml b/roles/openstack_helm_endpoints/vars/main.yml
index 2b8632b..d86cb48 100644
--- a/roles/openstack_helm_endpoints/vars/main.yml
+++ b/roles/openstack_helm_endpoints/vars/main.yml
@@ -301,6 +301,35 @@
designate:
password: "{{ openstack_helm_endpoints_designate_rabbitmq_password }}"
+_openstack_helm_endpoints_mdns:
+ name: minidns
+ hosts:
+ default: minidns
+ public: designate-mdns
+ host_fqdn_override:
+ default: "{{ openstack_helm_endpoints_designate_api_host }}"
+ path:
+ default: /
+ scheme:
+ default: 'tcp'
+ port:
+ ipc:
+ default: 5354
+
+_openstack_helm_endpoints_powerdns:
+ auth:
+ service:
+ token: chiave_segreta
+ hosts:
+ default: powerdns
+ host_fqdn_override:
+ default: "{{ openstack_helm_endpoints_designate_api_host }}"
+ port:
+ powerdns_api:
+ default: 8081
+ powerdns:
+ default: 53
+
_openstack_helm_endpoints_load_balancer:
identity:
auth: