| # Copyright 2024 highstreet technologies |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # Top level makefile to build all |
| |
| ## help: Show the help. |
| .PHONY: help |
| help: |
| @echo "Usage: make <target>" |
| @echo "" |
| @echo "Targets:" |
| @fgrep "##" Makefile | fgrep -v fgrep | sed 's/##/ -/g' |
| |
| ## install-prereqisites: Install required software packages |
| .PHONY: install-prereqisites |
| install-prereqisites: |
| (cd infrastructure; ./install_prerequisites.sh) |
| (cd infrastructure/scripts; ./install-kubeone.sh; ./create_key_kubeone.sh) |
| (cd infrastructure/scripts; ./install_helm.sh) |
| |
| ## prepare-templates: fills templates (k8s, application and metrics) with machine specific parameters |
| .PHONY: prepare-templates |
| prepare-templates: |
| # for k8s/kubeone |
| (cd infrastructure/scripts/; ./setup-k8s-cluster-template.sh) |
| # for metrics and smo stack |
| (cd application; ./setup-smo-template.sh) |
| |
| |
| |
| ## create-infrastructure: Create kubernetes all-in one infrastructure |
| .PHONY: create-infrastructure |
| create-infrastructure: |
| # TODO: create kubeone.yaml from template file |
| |
| (cd infrastructure; kubeone apply -m kubeone.yaml) |
| (cd infrastructure; mkdir -p ~/.kube; cp o-ran-sc-test-cluster-kubeconfig ~/.kube/config) |
| kubectl wait --for=condition=ready node -l node-role.kubernetes.io/control-plane= |
| echo "wait k8s cluster operable 60s" |
| sleep 60 |
| (cd infrastructure; kubectl apply -f certs/selfsigned-cluster-issuer.yaml) |
| (cd infrastructure/scripts; ./install-kafka-strimzi.sh) |
| (cd infrastructure/scripts; ./install-mariadb-operator.sh) |
| |
| |
| ## destroy-infrastructure: Destroys kubernetes all-in-one infrastructure |
| .PHONY: destroy-infrastructure |
| destroy-infrastructure: |
| (cd infrastructure; kubeone reset) |
| |
| |
| ## deploy-smo: Deploys SMO tailered for O-RAN-SC |
| .PHONY: deploy-smo |
| deploy-smo: |
| (cd application; sudo mkdir -p /dockerdata-nfs/onap/mariadb/; sudo chmod 777 /dockerdata-nfs/onap/mariadb/; kubectl apply -f maria-db-pv.yaml) |
| kubectl patch pv onap-mariadb -p '{"spec":{"claimRef": null}}' |
| (cd application; ./deploy_smo_from_repo.sh) |
| kubectl wait --for=condition=ready pod -l app.kubernetes.io/name=sdnc-web --timeout 1800s --namespace onap |
| (cd application; ./patch-pmbulk.sh) |
| |
| ## undeploy-smo: Un-Deploys SMO |
| .PHONY: undeploy-smo |
| undeploy-smo: |
| helm undeploy onap -n onap |
| for topic in $$(kubectl get kafkatopic -n onap -o name); do kubectl patch $$topic -n onap --type=json -p '[{"op": "remove", "path": "/metadata/finalizers"}]'; done |
| kubectl delete ns onap |
| sudo rm -rf /dockerdata-nfs/onap |
| |
| ## deploy-metric: Deploys grafana and influxdb for PM data |
| .PHONY: deploy-metric |
| deploy-metric: |
| (cd metrics; ./deploy-metric-stack.sh ) |
| (cd metrics; ./deploy-pm-ms.sh ) |
| |
| ## undeploy-metric: Deploys grafana and influxdb for PM data |
| .PHONY: undeploy-metric |
| undeploy-metric: |
| (cd metrics; ./undeploy-metric-stack.sh ) |
| helm uninstall -n metric pm-metric-service |
| |
| ## deploy-test-nfs: Deploys test network functions |
| .PHONY: deploy-test-nfs |
| deploy-test-nfs: |
| (cd tests/network-simulation; ./start-network-simulation.sh ) |
| |
| ## undeploy-test-nfs: un-deploys test network functions |
| .PHONY: undeploy-test-nfs |
| undeploy-test-nfs: |
| (cd tests/network-simulation; ./stop-network-simulation.sh ) |