{"id":19346943,"url":"https://github.com/godmode2k/kubernetes_ui","last_synced_at":"2026-05-16T08:44:34.987Z","repository":{"id":169269645,"uuid":"645152956","full_name":"godmode2k/kubernetes_ui","owner":"godmode2k","description":"RPC Server, RPC Client and Web interface for Kubernetes","archived":false,"fork":false,"pushed_at":"2024-11-04T14:04:08.000Z","size":232,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-06T14:28:30.497Z","etag":null,"topics":["ingress","k8s","kubernetes","kubernetes-apis","kubernetes-client","kubernetes-rpc","msa"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/godmode2k.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"custom":["https://github.com/godmode2k"]}},"created_at":"2023-05-25T03:25:04.000Z","updated_at":"2024-11-04T14:04:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"ed22af52-ee86-4e1a-8bc2-cb62d39752e1","html_url":"https://github.com/godmode2k/kubernetes_ui","commit_stats":null,"previous_names":["godmode2k/kubernetes_ui"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godmode2k%2Fkubernetes_ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godmode2k%2Fkubernetes_ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godmode2k%2Fkubernetes_ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/godmode2k%2Fkubernetes_ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/godmode2k","download_url":"https://codeload.github.com/godmode2k/kubernetes_ui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240457944,"owners_count":19804489,"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":["ingress","k8s","kubernetes","kubernetes-apis","kubernetes-client","kubernetes-rpc","msa"],"created_at":"2024-11-10T04:13:20.867Z","updated_at":"2026-05-16T08:44:34.960Z","avatar_url":"https://github.com/godmode2k.png","language":"Go","funding_links":["https://github.com/godmode2k"],"categories":[],"sub_categories":[],"readme":"# Kubernetes UI\n\n\nSummary\n----------\n\u003e RPC Server, RPC Client and Web interface for Kubernetes \u003c/br\u003e\n\u003e \u003c/br\u003e\n\u003e WORK IN-PROGRESS\n\n\nEnvironment\n----------\n\u003e build all and tested on GNU/Linux\n\n    GNU/Linux: Ubuntu 20.04_x64 LTS\n    Kubernetes (Master node, Worker node x2)\n    Docker (+ Docker Private Registry)\n    Python: v3.8.10 (pip 20.0.2)\n    Go: go1.20.4 linux/amd64\n    Apache2\n    cURL\n\n\nPrerequisites\n----------\n```sh\n* VirtualBox: Kubernetes\n - Master node (+ Backend: JSON RPC API Server)\n - Worker node1 (+ Docker \u0026 Private Registry)\n - Worker node2\n\n\n* kubernetes\n - (optional) $HOME/.kube/config permission for user\n\n\n* Docker\nInstall: https://docs.docker.com/engine/install/\n\n\n* Docker Private Registry\n$ sudo docker pull registry:latest\n$ sudo docker run -d --restart=always -p 5000:5000 registry:latest\n\n// Test Image: Ubuntu 20.04, Apache2, Tomcat9, MariaDB, ...\n$ sudo docker build -f Dockerfile_test_image --tag test_img_apm:1.0 .\n$ sudo docker tag test_img_apm:1.0 (Docker Private Registry IP):5000/test_img_apm:1.0\n$ sudo docker push (Docker Private Registry IP):5000/test_img_apm:1.0\n```\n\n\nDependencies\n----------\n```sh\n// Python3\n// for Python RPC client code test\n$ sudo apt-get install python3 python3-pip\n\n\n// Apache2\n// for Web interface test\n$ sudo apt-get install apache2\n\n\n// cURL\n// for JSON RPC client test\n$ sudo apt-get install curl\n\n\n// Golang\n$ wget https://go.dev/dl/go1.20.4.linux-amd64.tar.gz\n$ sudo tar xzvf go1.20.4.linux-amd64.tar.gz -C /usr/local/\n$ echo \"export PATH=$PATH:/usr/local/go/bin\" \u003e\u003e $HOME/.profile\n\n\n// Golang modules\n$ go get -u github.com/go-sql-driver/mysql\n$ go get github.com/mattn/go-sqlite3\n$ go get github.com/gorilla/mux\n$ go get github.com/gorilla/rpc\n$ go get github.com/gorilla/rpc/json\n$ go get github.com/gorilla/handlers\n$ go get github.com/rs/cors\n$ go get k8s.io/client-go@latest\n\n$ go mod tidy -e\n```\n\n\nRun \u0026 Test\n----------\n```sh\n// Server\n(Golang)\n$ go run rpc_server.go\n\n\n// Clients\n\n(Golang)\n$ go run rpc_client.go\n\n(Python)\n$ python3 rpc_client.py\n\n(cURL)\n// list\n$ curl -v -X POST -H \"Content-Type: application/json\" -d '{\"method\":\"LocalDB.JSONRPC_kubernetes_request_service\",\"params\":[{\"request\":{\"req\":\"container_list\"}}],\"id\":5251029047958439656}' http://127.0.0.1:8890/rpc\n\n// create\n$ curl -v -X POST -H \"Content-Type: application/json\" -d '{\"method\":\"LocalDB.JSONRPC_kubernetes_request_service\",\"params\":[{\"request\":{\"container_ports\":[\"80\",\"8080\",\"3306\"],\"deployment_image\":\"10.0.2.5:5000/test_img_apm:1.0\",\"deployment_name\":\"test100-img\",\"req\":\"create_instance\",\"service_ports\":[{\"name\":\"apache\",\"node_port\":\"0\",\"port\":\"80\",\"target_port\":\"80\"},{\"name\":\"tomcat\",\"node_port\":\"0\",\"port\":\"8080\",\"target_port\":\"8080\"},{\"name\":\"mariadb\",\"node_port\":\"0\",\"port\":\"3306\",\"target_port\":\"3306\"}]}}],\"id\":5251029047958439656}' http://127.0.0.1:8890/rpc\n\n// delete\n$ curl -v -X POST -H \"Content-Type: application/json\" -d '{\"method\":\"LocalDB.JSONRPC_kubernetes_request_service\",\"params\":[{\"request\":{\"req\":\"container_delete\", \"deployment_name\": \"test100-img-1684747326\", \"deployment_service_name\": \"test100-img-1684747326-service\", \"deployment_ingress_name\": \"test100-img-1684747326-ingress\"}}],\"id\":5251029047958439656}' http://127.0.0.1:8890/rpc\n\n(Web)\n(project home)/html/k8s_apis/index.html\n$ sudo ln -s (project home)/html/k8s_apis /var/www/html/\n\nhttp://127.0.0.1:80/k8s_apis\n\n\n\n// CORS error\nrpc_server_main.go\n\n...\ncors := rs_cors.New( rs_cors.Options {\n    AllowedOrigins: []string {\n        \"http://[IP]:[Port]\",  // \u003c-- ADD here...\n    },\n...\n```\n\n\nTODO\n----------\n```sh\nKubernetes:\n - Update Pod, Service, ...\n - Command-line interface for Pod\n - PV(PVC): iSCSI, NFS, OpenEBS, ...\n\n - (optional) iptables\n - Authentication: HMAC, DB (account, secret-key, ...), ...\n```\n\n\nScreenshots\n----------\n\u003e Web interface \u003c/br\u003e\n\u003cimg src=\"https://github.com/godmode2k/kubernetes_ui/raw/main/screenshot_create.png\" width=\"50%\" height=\"50%\"\u003e\n\u003cimg src=\"https://github.com/godmode2k/kubernetes_ui/raw/main/screenshot_list.png\" width=\"50%\" height=\"50%\"\u003e\n\n\nLICENSE\n----------\n```sh\nApache-2.0 license\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodmode2k%2Fkubernetes_ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgodmode2k%2Fkubernetes_ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgodmode2k%2Fkubernetes_ui/lists"}