{"id":28885266,"url":"https://github.com/a7ryan/simulated-eks-style-secure-deployment-using-minikube","last_synced_at":"2026-02-02T01:32:21.716Z","repository":{"id":294247071,"uuid":"986214865","full_name":"A7ryan/Simulated-EKS-Style-Secure-Deployment-Using-Minikube","owner":"A7ryan","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-19T15:10:14.000Z","size":37321,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-20T22:06:53.625Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/A7ryan.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-05-19T09:24:24.000Z","updated_at":"2025-05-19T15:10:19.000Z","dependencies_parsed_at":"2025-05-19T15:55:46.444Z","dependency_job_id":null,"html_url":"https://github.com/A7ryan/Simulated-EKS-Style-Secure-Deployment-Using-Minikube","commit_stats":null,"previous_names":["a7ryan/simulated-eks-style-secure-deployment-using-minikube"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/A7ryan/Simulated-EKS-Style-Secure-Deployment-Using-Minikube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A7ryan%2FSimulated-EKS-Style-Secure-Deployment-Using-Minikube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A7ryan%2FSimulated-EKS-Style-Secure-Deployment-Using-Minikube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A7ryan%2FSimulated-EKS-Style-Secure-Deployment-Using-Minikube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A7ryan%2FSimulated-EKS-Style-Secure-Deployment-Using-Minikube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/A7ryan","download_url":"https://codeload.github.com/A7ryan/Simulated-EKS-Style-Secure-Deployment-Using-Minikube/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/A7ryan%2FSimulated-EKS-Style-Secure-Deployment-Using-Minikube/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28999661,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T01:32:03.847Z","status":"ssl_error","status_checked_at":"2026-02-02T01:32:03.458Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":"2025-06-20T22:05:59.069Z","updated_at":"2026-02-02T01:32:21.710Z","avatar_url":"https://github.com/A7ryan.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Setup Instructions:\n\n1. Start up the minikube\n- minikube start --cpus=2 --memory=4096 --addons=ingress,metrics-server\n\n##\n\n2. Enable the Ingress\n- minikube addons enable ingress\n\n##\n\n3. Check once if its running\n- kubectl get pods -n ingress-nginx\n\n##\n\n4. List the Helm Charts Available\n- helm repo list\n\n##\n\n5. Add Prometheus/Grafana using Helm Chart\n- helm repo add prometheus-community https://prometheus-community.github.io/helm-charts\n\n##\n\n6. Apply the Kustomize file\n- kubectl apply -k .\n\n##\n\n7. Create a bucket into MiniO\n- kubectl exec -it -n application $(kubectl get pod -n application -l app=minio -o jsonpath='{.items[0].metadata.name}') -- /bin/sh\n- mc alias set myminio http://localhost:9000 minio minioadmin\n- mc mb myminio/testbucket\n\n##\n\n8. Prove Auth-service cannot access the bucket\n- kubectl exec -it -n application $(kubectl get pod -n application -l app=auth -o jsonpath='{.items[0].metadata.name}') -- /bin/sh\n- curl http://minio.application.svc.cluster.local:9000/testbucket\n- (It will output Access Denied)\n\n##\n\n9. NOTE: The data-service (image - hashicorp/http-echo:latest) does not have any ssh\n- Solution:  \n    - i.  Either Create Custom Dockerfile\n    - ii. Use the new pod with service account (I have created data-servica-sa)\n\n##\n\n10. Creating a Temporary pod\n- kubectl apply -f test-data-access.yaml\n\n##\n\n11. Try to access now:\n- kubectl exec -it -n application test-data-access -- /bin/sh\n- aws configure set s3.endpoint_url http://minio.application.svc.cluster.local:9000\n- aws configure set s3api.endpoint_url http://minio.application.svc.cluster.local:9000\n\n##\n\n12. I will create a demo .txt file and will upload that to that MiniO Bucket\n- echo \"test\" \u003e testfile.txt\n- aws --endpoint-url=http://minio.application.svc.cluster.local:9000 s3 cp testfile.txt s3://testbucket/\n- aws --endpoint-url=http://minio.application.svc.cluster.local:9000 s3 ls s3://testbucket\n\n##\n\n13. Success just login to MiniO\n- kubectl exec -it -n application $(kubectl get pod -n application -l app=minio -o jsonpath='{.items[0].metadata.name}') -- /bin/sh\n\n##\n\n14. check the data dir and try to find bucket and its object\n- cd ~\n- ls \n- cd data\n- cd \u003cbucket-name\u003e\n- ls\n\n##\n\n15. Auth-service is leaking Authorization (find it out)\n- kubectl exec -it -n application $(kubectl get pod -n application -l app=auth -o jsonpath='{.items[0].metadata.name}') -- /bin/sh\n\n- curl -H \"Authorization: Bearer fake-token-123\" http://auth-service.application.svc.cluster.local/headers\n(it show show good output)\n\n##\n\n16. Run the Node Exporter\n- docker run -d \\\n  --name node-exporter \\\n  -p 9100:9100 \\\n  --restart unless-stopped \\\n  prom/node-exporter:latest\n\n##\n\n17. Run the Prometheus Server\n- docker run -d \\\n  --name prometheus \\\n  -p 9090:9090 \\\n  -v ~/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \\\n  --restart unless-stopped \\\n  prom/prometheus:latest\n\n##\n\n18. Run the Grafana Server\n- docker run -d \\\n  --name grafana \\\n  -p 3000:3000 \\\n  --restart unless-stopped \\\n  grafana/grafana:latest\n\n##\n\n19. Filter the Queries according to Requirement*\n- Query:\n    - System CPU Usage: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)\n    - System Memory Usage: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100\n    - HTTP Rate Request: rate(http_requests_total[5m])\n    - HTTP Error Rate: rate(http_requests_total{status=~\"5..\"}[5m])\n    - Process Restarts: changes(process_start_time_seconds{job=\"application\"}[1h])","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa7ryan%2Fsimulated-eks-style-secure-deployment-using-minikube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa7ryan%2Fsimulated-eks-style-secure-deployment-using-minikube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa7ryan%2Fsimulated-eks-style-secure-deployment-using-minikube/lists"}