Skip to content

Commit d79918f

Browse files
committed
update README.md,refactor and add screenshots
1 parent bf84f17 commit d79918f

File tree

21 files changed

+98
-32
lines changed

21 files changed

+98
-32
lines changed

.DS_Store

0 Bytes
Binary file not shown.

osh/README.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -135,4 +135,9 @@ kubectl --namespace openstack get horizontalpodautoscaler.autoscaling memcached
135135
### Deploy Horizon
136136
- Follow the detailed installation instructions [here](https://github.com/pratik705/trinity/blob/main/osh/openstack/15-horizon/README.md).
137137

138-
---
138+
---
139+
![openstack](../screenshots/openstack_argocd.jpg?raw=true)
140+
141+
ArgoCD continuously monitors the configured Git repository for changes and automatically applies them to the Kubernetes cluster. Once the changes are pushed to the repository, ArgoCD will detect the update and synchronize with the latest version.
142+
143+
Check the ArgoCD UI to track the synchronization progress and ensure that the modifications are successfully applied to the cluster.

osh/openstack/06-keystone/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ kubectl --namespace openstack \
3434
2. Encrypt the generated secrets using kubeseal for enhanced security. Also, create the kustomization.yaml file, ensuring removal of plain text Kubernetes secret resources.
3535
```bash
3636
bash ../../../../tools/kubeseal_secret.sh . ../../../../tools/sealed-secret-tls.crt
37-
kustomize create --autodetect --recursive --namespace openstack .
37+
# kustomize create --autodetect --recursive --namespace openstack .
3838
```
3939
**Note:** Make sure you remove plain text Kubernetes secret resources from `kustomization.yaml`
4040
```bash

osh/openstack/06-keystone/addon_manifests/keystone-mariadb-database.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ spec:
99
# name: data-custom
1010
mariaDbRef:
1111
name: mariadb-galera
12+
waitForIt: true
1213
characterSet: utf8
1314
collate: utf8_general_ci
1415
retryInterval: 5s
@@ -23,6 +24,7 @@ spec:
2324
# name: user-custom
2425
mariaDbRef:
2526
name: mariadb-galera
27+
waitForIt: true
2628
passwordSecretKeyRef:
2729
name: keystone-db-password
2830
key: password
@@ -39,6 +41,7 @@ metadata:
3941
spec:
4042
mariaDbRef:
4143
name: mariadb-galera
44+
waitForIt: true
4245
privileges:
4346
- "ALL"
4447
database: "keystone"

osh/openstack/07-glance/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ kubectl --namespace openstack \
2929
2. Encrypt the generated secrets using kubeseal for enhanced security. Also, create the kustomization.yaml file, ensuring removal of plain text Kubernetes secret resources.
3030
```bash
3131
bash ../../../../tools/kubeseal_secret.sh . ../../../../tools/sealed-secret-tls.crt
32-
kustomize create --autodetect --recursive --namespace openstack .
32+
# kustomize create --autodetect --recursive --namespace openstack .
3333
```
3434
**Note:** Make sure you remove plain text Kubernetes secret resources from `kustomization.yaml`
3535
```bash
@@ -45,7 +45,7 @@ kubectl apply -k .
4545
```bash
4646
cd ../
4747
helm template glance ../../openstack-helm/glance/ \
48-
-f vales.yaml \
48+
-f values.yaml \
4949
--set endpoints.identity.auth.admin.password="$(kubectl --namespace openstack get secret keystone-admin -o jsonpath='{.data.password}' | base64 -d)" \
5050
--set endpoints.identity.auth.glance.password="$(kubectl --namespace openstack get secret glance-admin -o jsonpath='{.data.password}' | base64 -d)" \
5151
--set endpoints.oslo_db.auth.admin.password="$(kubectl --namespace openstack get secret mariadb -o jsonpath='{.data.root-password}' | base64 -d)" \

osh/openstack/07-glance/addon_manifests/glance-mariadb-database.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ spec:
99
# name: data-custom
1010
mariaDbRef:
1111
name: mariadb-galera
12+
waitForIt: true
1213
characterSet: utf8
1314
collate: utf8_general_ci
1415
retryInterval: 5s
@@ -23,6 +24,7 @@ spec:
2324
# name: user-custom
2425
mariaDbRef:
2526
name: mariadb-galera
27+
waitForIt: true
2628
passwordSecretKeyRef:
2729
name: glance-db-password
2830
key: password
@@ -39,6 +41,7 @@ metadata:
3941
spec:
4042
mariaDbRef:
4143
name: mariadb-galera
44+
waitForIt: true
4245
privileges:
4346
- "ALL"
4447
database: "glance"

osh/openstack/08-heat/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ kubectl --namespace openstack \
3939
2. Encrypt the generated secrets using kubeseal for enhanced security. Also, create the kustomization.yaml file, ensuring removal of plain text Kubernetes secret resources.
4040
```bash
4141
bash ../../../../tools/kubeseal_secret.sh . ../../../../tools/sealed-secret-tls.crt
42-
kustomize create --autodetect --recursive --namespace openstack .
42+
# kustomize create --autodetect --recursive --namespace openstack .
4343
```
4444
**Note:** Make sure you remove plain text Kubernetes secret resources from `kustomization.yaml`
4545
```bash

osh/openstack/08-heat/addon_manifests/heat-mariadb-database.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ spec:
99
# name: data-custom
1010
mariaDbRef:
1111
name: mariadb-galera
12+
waitForIt: true
1213
characterSet: utf8
1314
collate: utf8_general_ci
1415
retryInterval: 5s
@@ -23,6 +24,7 @@ spec:
2324
# name: user-custom
2425
mariaDbRef:
2526
name: mariadb-galera
27+
waitForIt: true
2628
passwordSecretKeyRef:
2729
name: heat-db-password
2830
key: password
@@ -39,6 +41,7 @@ metadata:
3941
spec:
4042
mariaDbRef:
4143
name: mariadb-galera
44+
waitForIt: true
4245
privileges:
4346
- "ALL"
4447
database: "heat"

osh/openstack/09-cinder/README.md

+5-4
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ kubectl --namespace openstack \
2929
2. Encrypt the generated secrets using kubeseal for enhanced security. Also, create the kustomization.yaml file, ensuring removal of plain text Kubernetes secret resources.
3030
```bash
3131
bash ../../../../tools/kubeseal_secret.sh . ../../../../tools/sealed-secret-tls.crt
32-
kustomize create --autodetect --recursive --namespace openstack .
32+
# kustomize create --autodetect --recursive --namespace openstack .
3333
```
3434
**Note:** Make sure you remove plain text Kubernetes secret resources from `kustomization.yaml`
3535
```bash
@@ -73,7 +73,7 @@ bash ../../../tools/kubeseal_secret.sh manifests/ ../../../tools/sealed-secret-
7373
kubectl get secret rook-ceph-client-rbd-client -o jsonpath='{.data.rbd-client}' -n rook-ceph |base64 -d
7474
```
7575

76-
8. Create a new secret which will be used by Cinder to access the data from the rbd pool:
76+
8. Create a new secret(`rbd-client1-secret.yam`l) which will be used by Cinder to access the data from the rbd pool:
7777
```bash
7878
apiVersion: v1
7979
stringData:
@@ -116,14 +116,15 @@ metadata:
116116
```
117117

118118
10. Create the final `kustomization.yaml`, removing any duplicate secrets already applied in Step 2.
119+
119120
**Note:** Make sure you remove plain text Kubernetes secret resources from `kustomization.yaml`
120121
```bash
121122
cat kustomization.yaml
122123
```
123124

124-
11. Commit and push the changes to your Git repository.
125+
1. Commit and push the changes to your Git repository.
125126

126-
12. Apply the ArgoCD application to deploy Keystone.
127+
2. Apply the ArgoCD application to deploy Keystone.
127128
```bash
128129
kubectl apply -f osh/argoCD/09-cinder-argo.yaml
129130
```

osh/openstack/09-cinder/addon_manifests/cinder-mariadb-database.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ spec:
99
# name: data-custom
1010
mariaDbRef:
1111
name: mariadb-galera
12+
waitForIt: true
1213
characterSet: utf8
1314
collate: utf8_general_ci
1415
retryInterval: 5s
@@ -23,6 +24,7 @@ spec:
2324
# name: user-custom
2425
mariaDbRef:
2526
name: mariadb-galera
27+
waitForIt: true
2628
passwordSecretKeyRef:
2729
name: cinder-db-password
2830
key: password
@@ -39,6 +41,7 @@ metadata:
3941
spec:
4042
mariaDbRef:
4143
name: mariadb-galera
44+
waitForIt: true
4245
privileges:
4346
- "ALL"
4447
database: "cinder"

osh/openstack/10-neutron/README.md

+42-6
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ kubectl --namespace openstack \
7575
2. Encrypt the generated secrets using kubeseal for enhanced security. Also, create the kustomization.yaml file, ensuring removal of plain text Kubernetes secret resources.
7676
```bash
7777
bash ../../../../tools/kubeseal_secret.sh secrets/ ../../../../tools/sealed-secret-tls.crt
78-
kustomize create --autodetect --recursive --namespace openstack .
78+
# kustomize create --autodetect --recursive --namespace openstack .
7979
```
8080
**Note:** Make sure you remove plain text Kubernetes secret resources from `kustomization.yaml`
8181
```bash
@@ -128,24 +128,60 @@ cat kustomization.yaml
128128

129129
8. Commit and push the changes to your Git repository.
130130

131-
9. Apply the ArgoCD application to deploy Keystone.
131+
132+
9. Configure OVN for OpenStack
133+
134+
- Set the name of the OVS integration bridge we'll use. In general, this should be br-int.
135+
```bash
136+
kubectl annotate nodes $(kubectl get nodes -l 'openstack-network-node=enabled' -o 'jsonpath={.items[*].metadata.name}') ovn.openstack.org/int_bridge='br-int'
137+
```
138+
139+
- Set the name of the OVS bridges we'll use. These are the bridges you will use on your hosts.
140+
141+
NOTE The functional example here annotates all nodes; however, not all nodes have to have the same setup.
142+
```bash
143+
kubectl annotate nodes $(kubectl get nodes -l 'openstack-network-node=enabled' -o 'jsonpath={.items[*].metadata.name}') ovn.openstack.org/bridges='br-ex'
144+
```
145+
146+
- Set the bridge mapping. These are colon delimitated between OVS_BRIDGE:PHYSICAL_INTERFACE_NAME. Multiple bridge mappings can be defined here and are separated by commas.
147+
```bash
148+
kubectl annotate nodes $(kubectl get nodes -l 'openstack-network-node=enabled' -o 'jsonpath={.items[*].metadata.name}') ovn.openstack.org/ports='br-ex:bond0'
149+
```
150+
151+
- Set the OVN bridge mapping. This maps the Neutron interfaces to the ovs bridge names. These are colon delimitated between OVS_BRIDGE:PHYSICAL_INTERFACE_NAME. Multiple bridge mappings can be defined here and are separated by commas.
152+
```bash
153+
kubectl annotate nodes $(kubectl get nodes -l 'openstack-network-node=enabled' -o 'jsonpath={.items[*].metadata.name}') ovn.openstack.org/mappings='physnet1:br-ex'
154+
```
155+
156+
- Set the OVN availability zones. Multiple network availability zones can be defined and are colon separated.
157+
```bash
158+
kubectl annotate nodes $(kubectl get nodes -l 'openstack-network-node=enabled' -o 'jsonpath={.items[*].metadata.name}') ovn.openstack.org/availability_zones='nova'
159+
```
160+
Note the "nova" availability zone is an assumed default.
161+
162+
- Set the OVN gateway nodes.
163+
```bash
164+
kubectl annotate nodes $(kubectl get nodes -l 'openstack-network-node=enabled' -o 'jsonpath={.items[*].metadata.name}') ovn.openstack.org/gateway='enabled'
165+
```
166+
Note while all compute nodes could be a gateway, not all nodes should be a gateway.
167+
168+
169+
10. Apply the ArgoCD application to deploy Keystone.
132170
```bash
133171
kubectl apply -f osh/argoCD/10-neutron-argo.yaml
134172
```
135173

136-
10. Confirm if all the neutron pods are UP:
174+
11. Confirm if all the neutron pods are UP:
137175
```bash
138176
kubectl get pods -n openstack |egrep -i neutron
139177
```
140178

141-
11. Once neutron is up and running proceed with the installation of Open vSwitch OVN by referring this [link](https://github.com/cloudnull/genestack/wiki/4.-Deploy-Required-Infrastructure-in-the-Environment#deploy-open-vswitch-ovn
142-
)
143-
144179
---
145180

146181
## Validation:
147182
```bash
148183
kubectl get pods -n openstack |egrep -i neutron
184+
# NOTE: `neutron-ovn-metadata-agent` will not be ready as it expects nova endpoint.
149185
kubectl exec -it openstack-admin-client -n openstack -- openstack catalog list
150186
kubectl exec -it openstack-admin-client -n openstack -- openstack service list
151187
kubectl exec -it openstack-admin-client -n openstack -- openstack network agent list

osh/openstack/10-neutron/addon_manifests/kustomization.yaml

-13
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,3 @@ resources:
33
- neutron-rabbitmq-queue.yaml
44
- hpa-neutron-server.yaml
55
- ovn-setup.yaml
6-
7-
patches:
8-
- target:
9-
kind: ConfigMap
10-
name: neutron-bin
11-
version: v1
12-
patch: |-
13-
- op: replace
14-
path: /data/neutron-ovn-init.sh
15-
value: |-
16-
#!/bin/bash
17-
mkdir -p /tmp/pod-shared
18-
touch /tmp/pod-shared/ovn.ini

osh/openstack/10-neutron/kustomization.yaml

+11
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,14 @@ patches:
5656
name: neutron-server
5757
spec:
5858
replicas: null
59+
- target:
60+
kind: ConfigMap
61+
name: neutron-bin
62+
version: v1
63+
patch: |-
64+
- op: replace
65+
path: /data/neutron-ovn-init.sh
66+
value: |-
67+
#!/bin/bash
68+
mkdir -p /tmp/pod-shared
69+
touch /tmp/pod-shared/ovn.ini

osh/openstack/11-placement/addon_manifests/placement-mariadb-database.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ spec:
99
# name: data-custom
1010
mariaDbRef:
1111
name: mariadb-galera
12+
waitForIt: true
1213
characterSet: utf8
1314
collate: utf8_general_ci
1415
retryInterval: 5s
@@ -23,6 +24,7 @@ spec:
2324
# name: user-custom
2425
mariaDbRef:
2526
name: mariadb-galera
27+
waitForIt: true
2628
passwordSecretKeyRef:
2729
name: placement-db-password
2830
key: password
@@ -39,6 +41,7 @@ metadata:
3941
spec:
4042
mariaDbRef:
4143
name: mariadb-galera
44+
waitForIt: true
4245
privileges:
4346
- "ALL"
4447
database: "placement"

osh/openstack/12-libvirt/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ This guide provides instructions to deploy Libvirt service on a Compute nodes.
1313
```bash
1414
helm template libvirt ../../openstack-helm-infra/libvirt \
1515
-f values.yaml \
16-
--set conf.ceph.cinder.keyring="$(kubectl get secret rook-ceph-client-rbd-client -o jsonpath='{.data.rbd-client}' -n rook-ceph |base64 -d)"
16+
--set conf.ceph.cinder.keyring="$(kubectl get secret rook-ceph-client-rbd-client -o jsonpath='{.data.rbd-client}' -n rook-ceph |base64 -d)" \
1717
-n openstack --output-dir manifests
1818
```
1919

osh/openstack/13-nova/addon_manifests/nova-mariadb-database.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ spec:
99
# name: data-custom
1010
mariaDbRef:
1111
name: mariadb-galera
12+
waitForIt: true
1213
characterSet: utf8
1314
collate: utf8_general_ci
1415
retryInterval: 5s
@@ -24,6 +25,7 @@ spec:
2425
name: nova_api
2526
mariaDbRef:
2627
name: mariadb-galera
28+
waitForIt: true
2729
characterSet: utf8
2830
collate: utf8_general_ci
2931
retryInterval: 5s
@@ -39,6 +41,7 @@ spec:
3941
name: nova_cell0
4042
mariaDbRef:
4143
name: mariadb-galera
44+
waitForIt: true
4245
characterSet: utf8
4346
collate: utf8_general_ci
4447
retryInterval: 5s

osh/openstack/13-nova/values.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1426,7 +1426,7 @@ conf:
14261426
send_service_user_token: true
14271427
libvirt:
14281428
connection_uri: "qemu+unix:///system?socket=/run/libvirt/libvirt-sock"
1429-
images_type: raw
1429+
images_type: rbd
14301430
images_rbd_pool: cinder.volumes.gold
14311431
images_rbd_ceph_conf: /etc/ceph/ceph.conf
14321432
rbd_user: rbd-client

osh/openstack/14-octavia/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ kubectl --namespace openstack \
3434
2. Encrypt the generated secrets using kubeseal for enhanced security. Also, create the kustomization.yaml file, ensuring removal of plain text Kubernetes secret resources.
3535
```bash
3636
bash ../../../../tools/kubeseal_secret.sh . ../../../../tools/sealed-secret-tls.crt
37-
kustomize create --autodetect --recursive --namespace openstack .
37+
# kustomize create --autodetect --recursive --namespace openstack .
3838
```
3939
**Note:** Make sure you remove plain text Kubernetes secret resources from `kustomization.yaml`
4040
```bash

osh/openstack/14-octavia/addon_manifests/octavia-mariadb-database.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ spec:
99
# name: data-custom
1010
mariaDbRef:
1111
name: mariadb-galera
12+
waitForIt: true
1213
characterSet: utf8
1314
collate: utf8_general_ci
1415
retryInterval: 5s
@@ -23,6 +24,7 @@ spec:
2324
# name: user-custom
2425
mariaDbRef:
2526
name: mariadb-galera
27+
waitForIt: true
2628
passwordSecretKeyRef:
2729
name: octavia-db-password
2830
key: password
@@ -39,6 +41,7 @@ metadata:
3941
spec:
4042
mariaDbRef:
4143
name: mariadb-galera
44+
waitForIt: true
4245
privileges:
4346
- "ALL"
4447
database: "octavia"

0 commit comments

Comments
 (0)