Skip to content

Commit 90b54c1

Browse files
ipa
1 parent 260d1e8 commit 90b54c1

17 files changed

Lines changed: 218 additions & 10 deletions

File tree

.github/workflows/containers.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ on:
1313
- "containers/ironic-nautobot-client/**"
1414
- "containers/ironic-vnc-client/**"
1515
- "containers/understack-tests/**"
16+
- "containers/ironic-prometheus-exporter/**"
1617
- "python/**"
1718
- ".github/workflows/containers.yaml"
1819
- ".github/workflows/build-container-reuse.yaml"
@@ -46,6 +47,8 @@ jobs:
4647
target: prod
4748
- name: nautobot
4849
target: prod
50+
- name: ironic-prometheus-exporter
51+
target: prod
4952
uses: ./.github/workflows/build-container-reuse.yaml
5053
secrets: inherit
5154
with:
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
component: ironic-prometheus-exporter
3+
componentNamespace: openstack
4+
sources:
5+
- ref: understack
6+
path: 'components/ironic-prometheus-exporter'

charts/argocd-understack/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ version: 0.1.0
2121
# incremented each time you make changes to the application. Versions are not expected to
2222
# follow Semantic Versioning. They should reflect the version the application is using.
2323
# It is recommended to use it with quotes.
24-
appVersion: "1.16.0"
24+
appVersion: "1.16.1"
2525

2626
maintainers:
2727
- name: rackerlabs
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{{- if or (eq (include "understack.isEnabled" (list $.Values.global "ironic_prometheus_exporter")) "true") (eq (include "understack.isEnabled" (list $.Values.site "ironic_prometheus_exporter")) "true") }}
2+
---
3+
apiVersion: argoproj.io/v1alpha1
4+
kind: Application
5+
metadata:
6+
name: {{ printf "%s-%s" $.Release.Name "ironic-prometheus-exporter" }}
7+
annotations:
8+
argocd.argoproj.io/compare-options: ServerSideDiff=true,IncludeMutationWebhook=true
9+
spec:
10+
destination:
11+
namespace: openstack
12+
server: {{ $.Values.cluster_server }}
13+
project: understack
14+
sources:
15+
- path: components/ironic-prometheus-exporter
16+
ref: understack
17+
repoURL: {{ include "understack.understack_url" $ }}
18+
targetRevision: {{ include "understack.understack_ref" $ }}
19+
syncPolicy:
20+
automated:
21+
prune: true
22+
selfHeal: true
23+
managedNamespaceMetadata:
24+
annotations:
25+
argocd.argoproj.io/sync-options: Delete=false
26+
syncOptions:
27+
- CreateNamespace=true
28+
- ServerSideApply=true
29+
- RespectIgnoreDifferences=true
30+
- ApplyOutOfSyncOnly=true
31+
{{- end }}

charts/argocd-understack/values.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,15 @@ site:
305305
# renovate: datasource=helm depName=ironic registryUrl=https://tarballs.opendev.org/openstack/openstack-helm
306306
chartVersion: 2025.2.8+01c93d867
307307

308+
# -- ironic-prometheus-exporter
309+
ironic_prometheus_exporter:
310+
# -- Enable/disable deploying ironic-prometheus-exporter
311+
# @default -- true
312+
enabled: true
313+
# -- Sync wave for deployment ordering
314+
# @default -- 4
315+
wave: 4
316+
308317
# -- Neutron (Networking Service)
309318
neutron:
310319
# -- Enable/disable deploying Neutron

components/images-openstack.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@ images:
2222
keystone_fernet_setup: "ghcr.io/rackerlabs/understack/keystone:2025.2"
2323

2424
# ironic
25-
ironic_api: "ghcr.io/rackerlabs/understack/ironic:2025.2"
26-
ironic_conductor: "ghcr.io/rackerlabs/understack/ironic:2025.2"
27-
ironic_pxe: "ghcr.io/rackerlabs/understack/ironic:2025.2"
28-
ironic_pxe_init: "ghcr.io/rackerlabs/understack/ironic:2025.2"
25+
ironic_api: "ghcr.io/rackerlabs/understack/ironic:pr-1673"
26+
ironic_conductor: "ghcr.io/rackerlabs/understack/ironic:pr-1673"
27+
ironic_pxe: "ghcr.io/rackerlabs/understack/ironic:pr-1673"
28+
ironic_pxe_init: "ghcr.io/rackerlabs/understack/ironic:pr-1673"
2929
ironic_pxe_http: "docker.io/nginx:1.29.4"
30-
ironic_db_sync: "ghcr.io/rackerlabs/understack/ironic:2025.2"
30+
ironic_db_sync: "ghcr.io/rackerlabs/understack/ironic:pr-1673"
3131
# these want curl which apparently is in the openstack-client image
32-
ironic_manage_cleaning_network: "ghcr.io/rackerlabs/understack/openstack-client:2025.2"
33-
ironic_retrive_cleaning_network: "ghcr.io/rackerlabs/understack/openstack-client:2025.2"
34-
ironic_retrive_swift_config: "ghcr.io/rackerlabs/understack/openstack-client:2025.2"
32+
ironic_manage_cleaning_network: "ghcr.io/rackerlabs/understack/openstack-client:pr-1673"
33+
ironic_retrive_cleaning_network: "ghcr.io/rackerlabs/understack/openstack-client:pr-1673"
34+
ironic_retrive_swift_config: "ghcr.io/rackerlabs/understack/openstack-client:pr-1673"
3535

3636
# neutron
3737
neutron_db_sync: "ghcr.io/rackerlabs/understack/neutron:2025.2"
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: ironic-prometheus-exporter
5+
namespace: openstack
6+
labels:
7+
app: ironic-prometheus-exporter
8+
spec:
9+
replicas: 1
10+
selector:
11+
matchLabels:
12+
app: ironic-prometheus-exporter
13+
template:
14+
metadata:
15+
labels:
16+
app: ironic-prometheus-exporter
17+
spec:
18+
containers:
19+
- name: ironic-prometheus-exporter
20+
image: ghcr.io/rackerlabs/understack/ironic-prometheus-exporter:pr-1673
21+
imagePullPolicy: IfNotPresent
22+
ports:
23+
- name: metrics
24+
containerPort: 8000
25+
protocol: TCP
26+
volumeMounts:
27+
- name: ironic-prometheus-exporter
28+
mountPath: /opt/stack/node_metrics
29+
readOnly: true
30+
# Uncomment and adjust if your container requires explicit arguments
31+
# args:
32+
# - --metrics-path
33+
# - /opt/stack/node_metrics
34+
# - --port
35+
# - "8000"
36+
resources:
37+
requests:
38+
cpu: 50m
39+
memory: 64Mi
40+
limits:
41+
cpu: 250m
42+
memory: 256Mi
43+
volumes:
44+
- name: ironic-prometheus-exporter
45+
persistentVolumeClaim:
46+
claimName: pvc-ironic-prometheus-exporter
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
4+
resources:
5+
- deployment.yaml
6+
- service.yaml
7+
- service-monitor.yaml
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: monitoring.coreos.com/v1
2+
kind: ServiceMonitor
3+
metadata:
4+
name: ironic-prometheus-exporter
5+
namespace: openstack
6+
spec:
7+
selector:
8+
matchLabels:
9+
app: ironic-prometheus-exporter
10+
namespaceSelector:
11+
matchNames:
12+
- openstack
13+
endpoints:
14+
- port: metrics
15+
interval: 30s
16+
path: /metrics
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: ironic-prometheus-exporter
5+
namespace: openstack
6+
labels:
7+
app: ironic-prometheus-exporter
8+
spec:
9+
type: ClusterIP
10+
selector:
11+
app: ironic-prometheus-exporter
12+
ports:
13+
- name: metrics
14+
port: 8000
15+
targetPort: 8000
16+
protocol: TCP

0 commit comments

Comments
 (0)