Skip to content

Commit e7a75e5

Browse files
authored
feat: OSPC-1720 - Add Trove helm overrides and kustomize in genestack repo (generated by Kiro) (#1378)
1 parent 812b131 commit e7a75e5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+3662
-30
lines changed

.github/workflows/helm-trove.yaml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
name: Helm GitHub Actions for trove
3+
4+
on:
5+
pull_request:
6+
paths:
7+
- base-helm-configs/trove/**
8+
- base-kustomize/trove/**
9+
- .github/workflows/helm-trove.yaml
10+
jobs:
11+
helm:
12+
strategy:
13+
matrix:
14+
overlays:
15+
- base
16+
- aio
17+
name: Helm
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
- uses: azure/setup-helm@v3
23+
with:
24+
version: v3.14.3
25+
token: ${{ secrets.GITHUB_TOKEN }}
26+
id: helm
27+
- name: Kubectl Install
28+
working-directory: /usr/local/bin/
29+
run: |
30+
if [ ! -f /usr/local/bin/kubectl ]; then
31+
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
32+
chmod +x ./kubectl
33+
fi
34+
- name: Pull OSH repositories
35+
run: |
36+
helm repo add openstack-helm https://tarballs.opendev.org/openstack/openstack-helm
37+
helm repo update
38+
- name: Run Helm Template
39+
run: |
40+
${{ steps.helm.outputs.helm-path }} template trove ${{ github.workspace }}/helm-charts/trove \
41+
--namespace=openstack \
42+
--wait \
43+
--timeout 120m \
44+
-f ${{ github.workspace }}/base-helm-configs/trove/trove-helm-overrides.yaml \
45+
--post-renderer ${{ github.workspace }}/base-kustomize/kustomize.sh \
46+
--post-renderer-args trove/${{ matrix.overlays }} > /tmp/rendered.yaml
47+
- name: Return helm Build
48+
uses: actions/upload-artifact@v4
49+
with:
50+
name: helm-trove-artifact-${{ matrix.overlays }}
51+
path: /tmp/rendered.yaml

.yamllint

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ rules:
1111
new-line-at-end-of-file: enable
1212
ignore:
1313
- submodules/
14+
- helm-charts/
Lines changed: 215 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,215 @@
1+
---
2+
labels:
3+
api:
4+
node_selector_key: openstack-control-plane
5+
conductor:
6+
node_selector_key: openstack-control-plane
7+
taskmanager:
8+
node_selector_key: openstack-control-plane
9+
10+
images:
11+
tags:
12+
bootstrap: "ghcr.io/rackerlabs/genestack-images/openstack-client:latest"
13+
trove_api: "ghcr.io/rackerlabs/genestack-images/trove:2025.1-latest"
14+
trove_conductor: "ghcr.io/rackerlabs/genestack-images/trove:2025.1-latest"
15+
trove_taskmanager: "ghcr.io/rackerlabs/genestack-images/trove:2025.1-latest"
16+
trove_db_sync: "ghcr.io/rackerlabs/genestack-images/trove:2025.1-latest"
17+
db_drop: "ghcr.io/rackerlabs/genestack-images/openstack-client:latest"
18+
db_init: "ghcr.io/rackerlabs/genestack-images/openstack-client:latest"
19+
dep_check: "ghcr.io/rackerlabs/genestack-images/kubernetes-entrypoint:latest"
20+
image_repo_sync: null
21+
ks_endpoints: "ghcr.io/rackerlabs/genestack-images/openstack-client:latest"
22+
ks_service: "ghcr.io/rackerlabs/genestack-images/openstack-client:latest"
23+
ks_user: "ghcr.io/rackerlabs/genestack-images/openstack-client:latest"
24+
rabbit_init: null
25+
test: null
26+
27+
pod:
28+
lifecycle:
29+
upgrades:
30+
deployments:
31+
revision_history: 3
32+
pod_replacement_strategy: RollingUpdate
33+
rolling_update:
34+
max_unavailable: 20%
35+
max_surge: 3
36+
disruption_budget:
37+
api:
38+
min_available: 0
39+
termination_grace_period:
40+
api:
41+
timeout: 60
42+
resources:
43+
enabled: true
44+
api:
45+
requests:
46+
memory: "384Mi"
47+
cpu: "100m"
48+
limits: {}
49+
conductor:
50+
requests:
51+
memory: "192Mi"
52+
cpu: "100m"
53+
limits: {}
54+
taskmanager:
55+
requests:
56+
memory: "256Mi"
57+
cpu: "100m"
58+
limits: {}
59+
oslo_db:
60+
host_fqdn_override:
61+
default: mariadb-cluster-primary.openstack.svc.cluster.local
62+
hosts:
63+
default: mariadb-cluster-primary
64+
oslo_cache:
65+
host_fqdn_override:
66+
default: memcached.openstack.svc.cluster.local
67+
hosts:
68+
default: memcached
69+
oslo_messaging:
70+
host_fqdn_override:
71+
default: rabbitmq.openstack.svc.cluster.local
72+
hosts:
73+
default: rabbitmq-nodes
74+
75+
conf:
76+
trove:
77+
DEFAULT:
78+
debug: false
79+
default_datastore: mysql
80+
management_networks: ""
81+
network_driver: trove.network.neutron.NeutronDriver
82+
taskmanager_manager: trove.taskmanager.manager.Manager
83+
trove_api_workers: 2
84+
trove_volume_support: true
85+
volume_support: true
86+
volume_fstype: ext4
87+
cinder_volume_type: Standard
88+
enable_volume_az: true
89+
max_accepted_volume_size: 1024
90+
# exists_notification_transformer: null
91+
backup_segment_max_size: "2147483648"
92+
# dns_auth_url: null
93+
# trove_auth_url: null
94+
# auth_url: null
95+
# nova_compute_url: null
96+
nova_compute_service_type: compute
97+
nova_compute_endpoint_type: internalURL
98+
# neutron_url: null
99+
neutron_service_type: network
100+
neutron_endpoint_type: internalURL
101+
# cinder_url: null
102+
cinder_service_type: volumev3
103+
cinder_endpoint_type: internalURL
104+
# swift_url: null
105+
swift_service_type: object-store
106+
swift_endpoint_type: internalURL
107+
# glance_url: null
108+
glance_service_type: image
109+
glance_endpoint_type: internalURL
110+
# heat_url: null
111+
mysql:
112+
volume_support: true
113+
database:
114+
connection_debug: 0
115+
connection_recycle_time: 600
116+
connection_trace: true
117+
idle_timeout: 3600
118+
mysql_sql_mode: {}
119+
use_db_reconnect: true
120+
pool_timeout: 60
121+
max_retries: -1
122+
keystone_authtoken:
123+
auth_type: password
124+
auth_version: v3
125+
memcache_security_strategy: ENCRYPT
126+
service_token_roles: service
127+
service_token_roles_required: true
128+
endpoint_type: internalURL
129+
service_type: database
130+
oslo_messaging_rabbit:
131+
amqp_durable_queues: false
132+
rabbit_ha_queues: false
133+
rabbit_quorum_queue: true
134+
rabbit_transient_quorum_queue: false
135+
use_queue_manager: false
136+
rabbit_interval_max: 10
137+
heartbeat_rate: 3
138+
heartbeat_timeout_threshold: 60
139+
heartbeat_in_pthread: true
140+
kombu_reconnect_delay: 0.5
141+
trove_api_uwsgi:
142+
uwsgi:
143+
processes: 2
144+
threads: 1
145+
logging:
146+
logger_root:
147+
handlers:
148+
- stdout
149+
level: INFO
150+
rabbitmq:
151+
policies: []
152+
153+
dependencies:
154+
static:
155+
api:
156+
jobs:
157+
- trove-db-sync
158+
- trove-ks-user
159+
- trove-ks-endpoints
160+
conductor:
161+
jobs:
162+
- trove-db-sync
163+
- trove-ks-user
164+
- trove-ks-endpoints
165+
taskmanager:
166+
jobs:
167+
- trove-db-sync
168+
- trove-ks-user
169+
- trove-ks-endpoints
170+
db_sync:
171+
jobs: null
172+
173+
endpoints:
174+
fluentd:
175+
namespace: fluentbit
176+
identity:
177+
port:
178+
api:
179+
default: 5000
180+
internal: 5000
181+
public: 80
182+
service: 5000
183+
oslo_db:
184+
host_fqdn_override:
185+
default: mariadb-cluster-primary.openstack.svc.cluster.local
186+
hosts:
187+
default: mariadb-cluster-primary
188+
oslo_cache:
189+
host_fqdn_override:
190+
default: memcached.openstack.svc.cluster.local
191+
hosts:
192+
default: memcached
193+
oslo_messaging:
194+
host_fqdn_override:
195+
default: rabbitmq.openstack.svc.cluster.local
196+
hosts:
197+
default: rabbitmq-nodes
198+
database:
199+
port:
200+
api:
201+
default: 8779
202+
internal: 8779
203+
public: 80
204+
service: 8779
205+
206+
manifests:
207+
ingress_api: false
208+
job_bootstrap: false
209+
job_db_init: false
210+
job_rabbit_init: false
211+
pod_rally_test: false
212+
secret_db: false
213+
secret_ingress_tls: false
214+
secret_rabbitmq: false
215+
service_ingress_api: false
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
sortOptions:
3+
order: fifo
4+
resources:
5+
- ../base
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
apiVersion: autoscaling/v2
3+
kind: HorizontalPodAutoscaler
4+
metadata:
5+
name: trove-api
6+
namespace: openstack
7+
spec:
8+
maxReplicas: 9
9+
minReplicas: 2
10+
metrics:
11+
- resource:
12+
name: cpu
13+
target:
14+
averageUtilization: 80
15+
type: Utilization
16+
type: Resource
17+
- resource:
18+
name: memory
19+
target:
20+
averageUtilization: 80
21+
type: Utilization
22+
type: Resource
23+
scaleTargetRef:
24+
apiVersion: apps/v1
25+
kind: Deployment
26+
name: trove-api
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
apiVersion: autoscaling/v2
3+
kind: HorizontalPodAutoscaler
4+
metadata:
5+
name: trove-conductor
6+
namespace: openstack
7+
spec:
8+
maxReplicas: 9
9+
minReplicas: 2
10+
metrics:
11+
- resource:
12+
name: cpu
13+
target:
14+
averageUtilization: 80
15+
type: Utilization
16+
type: Resource
17+
- resource:
18+
name: memory
19+
target:
20+
averageUtilization: 80
21+
type: Utilization
22+
type: Resource
23+
scaleTargetRef:
24+
apiVersion: apps/v1
25+
kind: Deployment
26+
name: trove-conductor
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
apiVersion: autoscaling/v2
3+
kind: HorizontalPodAutoscaler
4+
metadata:
5+
name: trove-taskmanager
6+
namespace: openstack
7+
spec:
8+
maxReplicas: 9
9+
minReplicas: 2
10+
metrics:
11+
- resource:
12+
name: cpu
13+
target:
14+
averageUtilization: 80
15+
type: Utilization
16+
type: Resource
17+
- resource:
18+
name: memory
19+
target:
20+
averageUtilization: 80
21+
type: Utilization
22+
type: Resource
23+
scaleTargetRef:
24+
apiVersion: apps/v1
25+
kind: Deployment
26+
name: trove-taskmanager
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
sortOptions:
3+
order: fifo
4+
resources:
5+
- trove-mariadb-database.yaml
6+
- trove-rabbitmq-queue.yaml
7+
- all.yaml
8+
- hpa-trove-api.yaml
9+
- hpa-trove-conductor.yaml
10+
- hpa-trove-taskmanager.yaml
11+
- policies.yaml
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
apiVersion: rabbitmq.com/v1beta1
3+
kind: Policy
4+
metadata:
5+
name: trove-quorum-three-replicas
6+
namespace: openstack
7+
spec:
8+
name: trove-quorum-three-replicas
9+
vhost: "trove"
10+
pattern: ".*"
11+
applyTo: queues
12+
definition:
13+
target-group-size: 3
14+
priority: 0
15+
rabbitmqClusterReference:
16+
name: rabbitmq

0 commit comments

Comments
 (0)