{"id":21186666,"url":"https://github.com/geontech/kube-redhawk","last_synced_at":"2026-01-02T15:08:20.582Z","repository":{"id":146038856,"uuid":"450238716","full_name":"Geontech/kube-redhawk","owner":"Geontech","description":"A repository for launching the Docker-REDHAWK containers in a Kubernetes cluster","archived":false,"fork":false,"pushed_at":"2022-01-20T19:56:06.000Z","size":16,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-01-21T12:48:44.123Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Geontech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-01-20T19:55:17.000Z","updated_at":"2023-11-03T21:57:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"2c4c9e34-2f0d-4a3c-a559-c863633a86f8","html_url":"https://github.com/Geontech/kube-redhawk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geontech%2Fkube-redhawk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geontech%2Fkube-redhawk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geontech%2Fkube-redhawk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Geontech%2Fkube-redhawk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Geontech","download_url":"https://codeload.github.com/Geontech/kube-redhawk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243639557,"owners_count":20323511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T18:25:06.454Z","updated_at":"2026-01-02T15:08:20.540Z","avatar_url":"https://github.com/Geontech.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kube-REDHAWK\n\nA repository for launching the [Docker-REDHAWK](https://github.com/Geontech/docker-redhawk) containers in a Kubernetes cluster.\n\n## Prerequisites\n\n* [Docker Engine](https://docs.docker.com/engine/install/centos/) (Tested with 19.03.12)\n* [Docker Engine Post-installation Steps for Linux](https://docs.docker.com/engine/install/linux-postinstall/)\n\n## Stand Up Cluster\n\nInstall minikube.\n\n```\ncurl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64\nsudo install minikube-linux-amd64 /usr/local/bin/minikube\n```\n\nShow the version to make sure it installed.\n\n```\nminikube version\n```\n\nStart minikube and install `kubectl`.\n\n```\nminikube start\nminikube kubectl -- get pods -A\n```\n\nSave your typing fingers for `kubectl` by adding the following lines to your **~/.bashrc**.\n\n```\nalias kubectl=\"minikube kubectl --\"\n```\n\nMake sure your minikube installation has the CoreDNS add-on (if not, install with instructions [here](https://kubernetes.io/docs/tasks/administer-cluster/coredns/#installing-coredns)).\n\n```\nkubectl get services kube-dns --namespace=kube-system\n```\n\n## Setup Cluster Images\n\nBuild the REDHAWK development cluster image on the minikube node and copy all REDHAWK images to minikube.\n\n```bash\ncd redhawk-cluster-development/\ndocker build -t geontech/redhawk-cluster-development:2.2.5 .\ncd ../\nmkdir images \u0026\u0026 cd images\ndocker save -o redhawk-usrp.tar                geontech/redhawk-usrp:2.2.5\ndocker save -o redhawk-webserver.tar           geontech/redhawk-webserver:2.2.5\ndocker save -o redhawk-bu353s4.tar             geontech/redhawk-bu353s4:2.2.5\ndocker save -o redhawk-rtl2832u.tar            geontech/redhawk-rtl2832u:2.2.5\ndocker save -o redhawk-gpp.tar                 geontech/redhawk-gpp:2.2.5\ndocker save -o redhawk-domain.tar              geontech/redhawk-domain:2.2.5\ndocker save -o redhawk-development.tar         geontech/redhawk-development:2.2.5\ndocker save -o redhawk-runtime.tar             geontech/redhawk-runtime:2.2.5\ndocker save -o redhawk-omniserver.tar          geontech/redhawk-omniserver:2.2.5\ndocker save -o redhawk-base.tar                geontech/redhawk-base:2.2.5\ndocker save -o redhawk-cluster-development.tar geontech/redhawk-cluster-development:2.2.5\nminikube cp redhawk-usrp.tar                   /home/docker/redhawk-usrp.tar\nminikube cp redhawk-webserver.tar              /home/docker/redhawk-webserver.tar\nminikube cp redhawk-bu353s4.tar                /home/docker/redhawk-bu353s4.tar\nminikube cp redhawk-rtl2832u.tar               /home/docker/redhawk-rtl2832u.tar\nminikube cp redhawk-gpp.tar                    /home/docker/redhawk-gpp.tar\nminikube cp redhawk-domain.tar                 /home/docker/redhawk-domain.tar\nminikube cp redhawk-development.tar            /home/docker/redhawk-development.tar\nminikube cp redhawk-runtime.tar                /home/docker/redhawk-runtime.tar\nminikube cp redhawk-omniserver.tar             /home/docker/redhawk-omniserver.tar\nminikube cp redhawk-base.tar                   /home/docker/redhawk-base.tar\nminikube cp redhawk-cluster-development.tar    /home/docker/redhawk-cluster-development.tar\n```\n\nLoad the images on the minikube node with the following commands.\n\n```bash\nminikube ssh\ndocker load -i redhawk-usrp.tar\ndocker load -i redhawk-webserver.tar\ndocker load -i redhawk-bu353s4.tar\ndocker load -i redhawk-rtl2832u.tar\ndocker load -i redhawk-gpp.tar\ndocker load -i redhawk-domain.tar\ndocker load -i redhawk-development.tar\ndocker load -i redhawk-runtime.tar\ndocker load -i redhawk-omniserver.tar\ndocker load -i redhawk-base.tar\ndocker load -i redhawk-cluster-development.tar\nexit\n```\n\n## Launch Kube-REDHAWK\n\nCreate the deployments and services by applying the YAML files to the cluster.\n\n```bash\nkubectl apply -f rh-core.yaml\nkubectl apply -f rh-core-omniserver.yaml\nkubectl apply -f rh-core-ssh.yaml\nkubectl apply -f rh-gpp.yaml\n```\n\nCheck on the status of the deployments, services, and pods.\n\n```bash\nkubectl get deployments\nkubectl get pods\nkubectl get services\n```\n\nInspect the NodePort of the `rh-core-ssh` service to make sure it is 30022.\n\n```bash\nkubectl describe services rh-core-ssh | grep NodePort\n```\n\nGet the Public IP of the cluster (this command might not work without minikube).\n\n```bash\nkubectl cluster-info\n```\n\nSSH directly in to the cluster on the NodePort and start the REDHAWK IDE.\n\n```bash\nssh -X root@\u003cCLUSTER_IP\u003e -p 30022\n# --\u003e Password: redhawk\nrhide \u0026\n```\n\n## Test Kube-REDHAWK\n\nFollow the instructions below in the REDHAWK IDE to validate Kube-REDHAWK is operational.\n\n1. Click the **+** button in the \"REDHAWK Explorer\"\n2. In the \"New Domain Manager\" dialog:\n    1. Enter \"REDHAWK_DEV\" for the **Domain Name** textbox\n    2. The **Display Name** textbox should auto-populate with \"REDHAWK_DEV\"\n    3. Click **Finish**\n3. Expand the **REDHAWK_DEV\u003eDevice Managers** node in the \"REDHAWK Explorer\" and verify that three GPP nodes exist\n4. Right-click on the **REDHAWK_DEV** node in the \"REDHAWK Explorer\" and click **Launch Waveform...**\n5. In the \"Launch Waveform\" dialog:\n    1. Select **rh\u003ebasic_components_demo**\n    2. Check the **Start the Waveform after launching** checkbox\n    3. Click **Finish**\n6. Expand the **REDHAWK_DEV\u003eWaveforms** node in the \"REDHAWK Explorer\" and verify that the \"rh.basic_components_demo\" waveform was launched\n\nFollow the instructions below in the REDHAWK IDE to test a development flow on Kube-REDHAWK.\n\n1. Click **File\u003eNew\u003eREDHAWK Waveform Project**\n2. In the \"New Waveform Project\" dialog:\n    1. Type \"my_demo\" in the **Project name** textbox\n    2. Select the **Use existing waveform as a template** radio button\n    3. Type \"/var/redhawk/sdr/dom/waveforms/rh/basic_components_demo/basic_components_demo.sad.xml\" in the **SAD File** textbox\n    4. Click **Finish**\n3. In the \"my_demo\" panel in the center-top of the screen:\n    1. Select the **Overview** tab\n    2. Click the **Generate Waveform** button in the top right-hand corner of the panel\n    3. Click **OK** in the \"Generate Files\" dialog\n4. Right-click **my_demo** in the \"Project Explorer\" panel on the left-hand side of the screen and click **Export to SDR**\n6. Expand the **Target SDR\u003eWaveforms** node in the \"REDHAWK Explorer\" and verify that the \"my_demo\" waveform is listed\n4. Right-click on the **REDHAWK_DEV** node in the \"REDHAWK Explorer\" and click **Launch Waveform...**\n5. In the \"Launch Waveform\" dialog:\n    1. Select **my_demo**\n    2. Check the **Start the Waveform after launching** checkbox\n    3. Click **Finish**\n6. Expand the **REDHAWK_DEV\u003eWaveforms** node in the \"REDHAWK Explorer\" and verify that the \"my_demo\" waveform was launched\n\n## Tear Down Kube-REDHAWK\n\nTear down the deployments and services in the reverse direction of the startup.\n\n\u003e IMPORTANT NOTE: The workspace and SDRROOT of the cluster are NOT saved!\n\n```bash\nkubectl delete deployment rh-gpp\nkubectl delete service rh-core-ssh\nkubectl delete service rh-core-omniserver\nkubectl delete deployment rh-core\n```\n\n## Debug\n\nIt is helpful to view the logs of a container when something goes wrong.\n\n```bash\nkubectl logs \u003cPOD_NAME\u003e -c \u003cCONTAINER_NAME\u003e\n```\n\nYou can also get directly in to the shell of a running container.\n\n```bash\nkubectl exec --stdin --tty -c \u003cCONTAINER_NAME\u003e \u003cPOD_NAME\u003e -- /bin/bash\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeontech%2Fkube-redhawk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeontech%2Fkube-redhawk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeontech%2Fkube-redhawk/lists"}