fix(monitoring): enable openstack exporter
diff --git a/roles/openstack_exporter/tasks/main.yml b/roles/openstack_exporter/tasks/main.yml
index 0b38ef4..7b4504c 100644
--- a/roles/openstack_exporter/tasks/main.yml
+++ b/roles/openstack_exporter/tasks/main.yml
@@ -12,54 +12,15 @@
# License for the specific language governing permissions and limitations
# under the License.
-- name: Create keystone user
- openstack.cloud.identity_user:
- cloud: atmosphere
- state: present
- name: openstack-exporter-{{ openstack_helm_endpoints_region_name }}
- password: "{{ openstack_helm_endpoints_openstack_exporter_keystone_password }}"
- domain: service
- default_project: service
-
-- name: Assign admin role to service user
- openstack.cloud.role_assignment:
- cloud: atmosphere
- user: openstack-exporter-{{ openstack_helm_endpoints_region_name }}
- role: admin
- project: service
- domain: service
-
- name: Deploy service
kubernetes.core.k8s:
state: present
definition:
- - apiVersion: v1
- kind: Secret
- metadata:
- name: openstack-config
- namespace: monitoring
- type: Opaque
- stringData:
- clouds.yaml: |
- clouds:
- openstack:
- auth:
- auth_url: http://keystone-api.openstack.svc.cluster.local:5000
- project_domain_name: service
- project_name: service
- user_domain_name: service
- username: openstack-exporter-{{ openstack_helm_endpoints_region_name }}
- password: {{ openstack_helm_endpoints_openstack_exporter_keystone_password }}
- region_name: {{ openstack_helm_endpoints_region_name }}
- interface: internal
- identity_api_version: 3
- identity_interface: internal
-
- apiVersion: apps/v1
kind: Deployment
metadata:
name: openstack-exporter
- namespace: monitoring
+ namespace: openstack
labels:
application: openstack-exporter
spec:
@@ -74,6 +35,34 @@
spec:
nodeSelector:
openstack-control-plane: enabled
+ initContainers:
+ - name: build-config
+ image: quay.io/vexxhost/openstack-runtime-focal:latest
+ command: ["bash", "-ec"]
+ args:
+ - |
+ cat <<EOF > /etc/openstack/clouds.yaml
+ ---
+ clouds:
+ default:
+ auth:
+ auth_url: "$(OS_AUTH_URL)"
+ project_domain_name: "$(OS_PROJECT_DOMAIN_NAME)"
+ project_name: "$(OS_PROJECT_NAME)"
+ user_domain_name: "$(OS_USER_DOMAIN_NAME)"
+ username: "$(OS_USERNAME)"
+ password: "$(OS_PASSWORD)"
+ region_name: "$(OS_REGION_NAME)"
+ interface: "$(OS_INTERFACE)"
+ identity_api_version: 3
+ identity_interface: "$(OS_INTERFACE)"
+ EOF
+ envFrom:
+ - secretRef:
+ name: keystone-keystone-admin
+ volumeMounts:
+ - name: openstack-config
+ mountPath: /etc/openstack
containers:
- name: openstack-exporter
image: "{{ openstack_exporter_image_repository }}/openstack-exporter:{{ openstack_exporter_image_tag }}"
@@ -105,17 +94,31 @@
containerPort: 9180
volumeMounts:
- name: openstack-config
- mountPath: "/etc/openstack"
+ mountPath: /etc/openstack
+ readinessProbe:
+ failureThreshold: 3
+ httpGet:
+ path: /
+ port: 9180
+ scheme: HTTP
+ livenessProbe:
+ failureThreshold: 3
+ httpGet:
+ path: /
+ port: 9180
+ scheme: HTTP
+ periodSeconds: 10
+ successThreshold: 1
+ timeoutSeconds: 1
volumes:
- name: openstack-config
- secret:
- secretName: openstack-config
+ emptyDir: {}
- apiVersion: v1
kind: Service
metadata:
name: openstack-exporter
- namespace: monitoring
+ namespace: openstack
labels:
application: openstack-exporter
spec: