Skip to content

Commit c8948fe

Browse files
authored
Merge pull request #598 from rackerlabs/puc-529_create_prov_ntw
feat: PUC-529 : create provisioning network on successful deployment of neutron-server
2 parents 11665b3 + c9655ab commit c8948fe

File tree

3 files changed

+134
-0
lines changed

3 files changed

+134
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apiVersion: argoproj.io/v1alpha1
2+
kind: EventSource
3+
metadata:
4+
name: openstack-neutron
5+
namespace: openstack
6+
spec:
7+
template:
8+
serviceAccountName: openstack-events
9+
# Kubernetes resource event sources
10+
resource:
11+
neutron-deployment:
12+
# monitor deployment resources under openstack namespace
13+
namespace: openstack
14+
resource: deployments
15+
group: apps
16+
version: v1
17+
# Event types to listen for (e.g., ADD, UPDATE, DELETE). Here we want only when deployment is created.
18+
eventTypes:
19+
- ADD
20+
filter:
21+
# filter based these labels to match neutron-server deployment
22+
labels:
23+
- key: application
24+
value: neutron
25+
- key: component
26+
value: server
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
---
2+
apiVersion: argoproj.io/v1alpha1
3+
kind: Sensor
4+
metadata:
5+
name: neutron-deployment
6+
namespace: openstack
7+
spec:
8+
template:
9+
serviceAccountName: openstack-events
10+
# events the Sensor listens for
11+
dependencies:
12+
- eventName: neutron-deployment
13+
eventSourceName: openstack-neutron
14+
name: openstack-neutron-server-deployment
15+
# actions executed when dependencies are satisfied (StandardK8STrigger designed to create or update a generic Kubernetes resource.)
16+
triggers:
17+
- template:
18+
name: create-provisioning-network
19+
k8s:
20+
operation: create
21+
source:
22+
resource:
23+
apiVersion: batch/v1
24+
kind: Job # Resource type to be created
25+
metadata:
26+
generateName: create-provision-network
27+
spec:
28+
template:
29+
spec:
30+
containers:
31+
- name: create-network
32+
image: docker.io/openstackhelm/openstack-client:2024.2
33+
command:
34+
- /bin/bash
35+
- '-c'
36+
- >-
37+
openstack network create --description "${PROVISIONING_NETWORK_DESCRIPTION}" \
38+
--no-share --provider-network-type "${PROVISIONING_NETWORK_TYPE}" \
39+
--provider-physical-network "${PROVISIONING_PHYSICAL_NETWORK}" \
40+
--tag "${PROVISIONING_NETWORK_TAGS}" \
41+
"${PROVISIONING_NETWORK_NAME}"
42+
env:
43+
- name: PROVISIONING_NETWORK_NAME
44+
valueFrom:
45+
configMapKeyRef:
46+
name: provisioning-network-config
47+
key: network_name
48+
- name: PROVISIONING_NETWORK_TYPE
49+
valueFrom:
50+
configMapKeyRef:
51+
name: provisioning-network-config
52+
key: network_type
53+
- name: PROVISIONING_PHYSICAL_NETWORK
54+
valueFrom:
55+
configMapKeyRef:
56+
name: provisioning-network-config
57+
key: physical_network
58+
- name: PROVISIONING_NETWORK_TAGS
59+
valueFrom:
60+
configMapKeyRef:
61+
name: provisioning-network-config
62+
key: tags
63+
- name: PROVISIONING_NETWORK_DESCRIPTION
64+
valueFrom:
65+
configMapKeyRef:
66+
name: provisioning-network-config
67+
key: description
68+
imagePullPolicy: IfNotPresent
69+
restartPolicy: OnFailure
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
apiVersion: v1
3+
kind: ServiceAccount
4+
metadata:
5+
namespace: openstack
6+
name: openstack-events
7+
8+
---
9+
apiVersion: rbac.authorization.k8s.io/v1
10+
kind: Role
11+
metadata:
12+
namespace: openstack
13+
name: openstack-events-role
14+
rules:
15+
- apiGroups:
16+
- ""
17+
- apps
18+
- batch
19+
resources:
20+
- pods
21+
- deployments
22+
- jobs
23+
verbs:
24+
- '*'
25+
26+
---
27+
apiVersion: rbac.authorization.k8s.io/v1
28+
kind: RoleBinding
29+
metadata:
30+
namespace: openstack
31+
name: openstack-events-rolebinding
32+
roleRef:
33+
apiGroup: rbac.authorization.k8s.io
34+
kind: Role
35+
name: openstack-events-role
36+
subjects:
37+
- kind: ServiceAccount
38+
name: openstack-events
39+
namespace: openstack

0 commit comments

Comments
 (0)