blob: 1b5991f51b8f4b1747cc69f49a7df74df3d8c1d8 [file] [log] [blame]
# 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 )