{"id":21161842,"url":"https://github.com/silverbirder/micro-frontends-on-kubernetes","last_synced_at":"2025-10-06T01:10:50.786Z","repository":{"id":41770342,"uuid":"208151859","full_name":"silverbirder/micro-frontends-on-kubernetes","owner":"silverbirder","description":"micro frontends application works on kubernetes","archived":false,"fork":false,"pushed_at":"2023-12-15T05:26:25.000Z","size":1799,"stargazers_count":9,"open_issues_count":37,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2024-04-13T19:02:17.566Z","etag":null,"topics":["kubernetes","micro-frontends","minikube"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silverbirder.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}},"created_at":"2019-09-12T21:46:45.000Z","updated_at":"2024-02-14T07:07:33.000Z","dependencies_parsed_at":"2023-01-26T03:46:35.962Z","dependency_job_id":null,"html_url":"https://github.com/silverbirder/micro-frontends-on-kubernetes","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/silverbirder%2Fmicro-frontends-on-kubernetes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbirder%2Fmicro-frontends-on-kubernetes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbirder%2Fmicro-frontends-on-kubernetes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silverbirder%2Fmicro-frontends-on-kubernetes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silverbirder","download_url":"https://codeload.github.com/silverbirder/micro-frontends-on-kubernetes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225562096,"owners_count":17488574,"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":["kubernetes","micro-frontends","minikube"],"created_at":"2024-11-20T13:18:14.214Z","updated_at":"2025-10-06T01:10:45.765Z","avatar_url":"https://github.com/silverbirder.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# micro-frontends-on-kubernetes\nmicro frontends application works on kubernetes\nfork by https://github.com/neuland/micro-frontends\n\n![micro-frontends-application](https://res.cloudinary.com/silverbirder/image/upload/v1568757697/micro-frontend-in-kubernetes/micro-frontend-in-kubernetes.png)\n# Usage\n## My Env\n```\n$ sw_vers\nProductName:\tMac OS X\nProductVersion:\t10.14.6\nBuildVersion:\t18G84\n$ docker -v\nDocker version 19.03.1, build 74b1e89\n```\n\n## Install\n### minikube\nuse [minikube](https://github.com/kubernetes/minikube) for single cluster or single node\n\n``` bash\n$ brew cask install minikube\n$ curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit \\\n  \u0026\u0026 sudo install -o root -m 4755 docker-machine-driver-hyperkit /usr/local/bin/\n$ minikube start --vm-driver=hyperkit\n$ eval $(minikube docker-env)\n```\n\n### kind\nuse [kind](https://github.com/kubernetes-sigs/kind) for multi clusters or multi nodes\n\n```bash\n$ brew install go\n$ go version\ngo version go1.13 darwin/amd64\n$ PATH=${PATH}:$(go env GOPATH)/bin\n$ kind create cluster\n$ export KUBECONFIG=\"$(kind get kubeconfig-path --name=\"kind\")\"\n```\n\n## Build \u0026 Load\n```bash\n$ cd team-blue \u0026\u0026 docker build -t team-blue . \u0026\u0026 cd ..\n$ cd team-green \u0026\u0026 docker build -t team-green . \u0026\u0026 cd ..\n$ cd team-red \u0026\u0026 docker build -t team-red . \u0026\u0026 cd ..\n$ cd team-black \u0026\u0026 docker build -t team-black . \u0026\u0026 cd ..\n```\n\n※ The yaml files was generated using [kompose](https://github.com/kubernetes/kompose)\n\nnext step is for kind\n```bash\n$ kind load docker-image team-blue:1.0.0\n$ kind load docker-image team-green:1.0.0\n$ kind load docker-image team-red:1.0.0\n$ kind load docker-image team-black:1.0.0\n```\n### skaffold\n\n[skaffold](https://github.com/GoogleContainerTools/skaffold) is \n\u003e Easy and Repeatable Kubernetes Developmen\n\nI use it for minikube\n\n```\n$ brew install skaffold\n```\n## Prepare\n### Database\n\n```bash\n$ find . -name \"mysql*.yaml\" | xargs -I {} kubectl apply -f {}\n```\n\n```\n$ kubectl run mysql-client --image=mysql:5.7 -i --rm --restart=Never -- mysql -h mysql-0.mysql \u003c\u003cEOF\nCREATE DATABASE web;\nEOF\n\n$ kubectl run mysql-client --image=mysql:5.7 -i --rm --restart=Never -- mysql -h mysql-0.mysql \u003c\u003cEOF\nCREATE TABLE web.teamGreenRelatedProducts (sku varchar(255), related_sku_id int);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_porsche', 3);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_porsche', 5);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_porsche', 6);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_fendt', 3);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_fendt', 6);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_fendt', 4);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_eicher', 1);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_eicher', 8);\nINSERT INTO web.teamGreenRelatedProducts VALUES ('t_eicher', 7);\nEOF\n\n$ kubectl run mysql-client --image=mysql:5.7 -i --rm --restart=Never -- mysql -h mysql-0.mysql \u003c\u003cEOF\nCREATE TABLE web.teamRedProducts (product_name varchar(255), sku varchar(255), color varchar(255), sku_name varchar(255), image varchar(255), thumb varchar(255), price varchar(255));\nINSERT INTO web.teamRedProducts VALUES ('Tractor', 't_porsche', 'red', 'Porsche-Diesel Master 419', '/red/images/tractor-red.jpg', '/red/images/tractor-red-thumb.jpg', '66,00');\nINSERT INTO web.teamRedProducts VALUES ('Tractor', 't_fendt', 'green', 'Fendt F20 Dieselroß', '/red/images/tractor-green.jpg', '/red/images/tractor-green-thumb.jpg', '54,00');\nINSERT INTO web.teamRedProducts VALUES ('Tractor', 't_eicher', 'blue', 'Eicher Diesel 215/16', '/red/images/tractor-blue.jpg', '/red/images/tractor-blue-thumb.jpg', '58,00');\nEOF\n```\n\n## Secrets\n\n```bash\n$ sentry_dns='https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXX@sentry.io/XXXXXX'\n$ echo \"sentry.dns=${sentry_dns}\" \u003e team-red-secrets \u0026\u0026 \\\n kubectl create secret generic team.red --from-env-file=./team-red-secrets \n```\n\n※ [sentry](https://docs.sentry.io/error-reporting/quickstart/?platform=browser#configure-the-sdk)\n\n## Apply\n```bash\n$ find . -name \"*.yaml\" | grep -v \"skaffold.yaml\" |xargs -I {} kubectl apply -f {}\n$ kubectl port-forward $(k get pods | grep nginx | awk '{print $1}') 3000:3000\n```\n\nor \n\n```bash\n$ skaffold dev  --port-forward\n```\n\n## Delete\n```bash\n$ find . -name \"*.yaml\"|xargs -I {} kubectl delete -f {}\n```\n\nnext step is for kind\n```bash\n$ kind delete cluster --name kind\n```\n\n```bash\n$ docker images | grep \"team-\" | awk '{print $3}' | xargs docker rmi -f \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilverbirder%2Fmicro-frontends-on-kubernetes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilverbirder%2Fmicro-frontends-on-kubernetes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilverbirder%2Fmicro-frontends-on-kubernetes/lists"}