yurake / k8s-3tier-webapp

Sample web application based on k8s
MIT License
15 stars 25 forks source link
activemq cicd docker github-actions kafka kind kubernetes minikube openshift quarkus

🦌 k8s-3tier-webapp

Sample web application based on k8s. Focus on connecting components, setting k8s resources, and aiming to microservices. The k8s-3tier-webapp service is for PoC, not production ready.

Java CI Docker Image CI Minikube Quarkus CI Minikube Yaml CI Minikube Stress CI Minikube Security CI kind Chaos Mesh CI kind Quarkus CI kind Yaml CI Yaml Validator Shell Validator Dockerfile Lint CodeQL Check for Update CIS Dockerfile benchmark Cypress CI K8S Security Config Watch Dependency Review DevSkim Snyk Codacy pmd pages-build-deployment

Codacy Badge Codacy Badge CodeFactor Maintainability codebeat badge codecov DeepSource Active Issues DeepSource Resluved Issues Cypress

Support JVM Version Support Quarkus Version Support Kubernetes Version Support Minikube Version Support kind Version MIT License FOSSA Status

AccessLint Datadog Debricked GitBook Gitpod Hound Imgbot Renovate Repo Ranger Socket Sonatype Lift What The Diff

sonarcloud More details at sonarcloud


Tier Name Description
1 Frontend Web page, Application logic, Static file
2 Backend Database, Cache, Messaging
3 Management Monitoring, CI/CD, Tracing

LayardArchitecturalOverview.png

Concepts

Features

Requirements

Installed CLI commands.

Run on Minikube

Mac

minikube config set memory 121288
minikube config set cpus 6
minikube config set disk-size 80g
minikube start
minikube addons enable ingress
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission

eval $(minikube docker-env)

Windows

minikube config set memory 121288
minikube config set cpus 6
minikube config set disk-size 80g
minikube start
minikube addons enable ingress
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission

minikube docker-env --shell powershell | Invoke-Expression

Build & Apply

apply.sh supports kubectl apply to k8s clusters.

./kubernetes/bin/apply.sh

Web Console Access

Add hosts

Add IP, domain in /etc/hosts

echo `minikube ip` k8s.3tier.webapp api.server.minikube \
rabbitmq.management.minikube jenkins.minikube alertmanager.minikube prometheus.minikube \
grafana.minikube jupyter.minikube hazelcast.manager.minikube activemq.management.minikube \
jaeger.minikube argo.minikube >> /etc/hosts

Web Console list

Service URL
Top Page http://k8s.3tier.webapp/
Rabbitmq Management Console http://rabbitmq.management.minikube
Activemq Management Console http://activemq.management.minikube

top.png

Component

Application

Java based web application for application

Kubernetes

Yaml based kubernetes manifests for kubernetes

Monitoring

Set up monitoring for Tier 3

License

k8s-3tier-webapp is licensed under the MIT License. See LICENSE for the full license text.

FOSSA Status

Contribution

  1. Fork this repo
  2. Create a feature branch named like feature/enhancement from master branch
  3. Commit your changes
  4. Rebase your local changes against the master branch
  5. Create new Pull Request

Security

Security