A demo application with a three-tier architecture (Frontend → Backend → Database) designed to:
- Show the capabilities of the cloud platform
- Demonstrate how Network Policies work
- Example of integration with Dex authentication system
- Testing the interaction of components in a virtualized environment
- Project: demo-db
- Database
- VM:
db(PostgreSQL)
- VM:
- Database
- Project: demo-app
- Frontend
- VM:
frontend(Bootstrap app) - Pod:
frontend(Bootstrap app)
- VM:
- Backend
- VM:
backend-a(Flask + Gunicorn) - VM:
backend-b(Flask + Gunicorn)
- VM:
- Frontend
Component interaction is restricted by network policies. Application access requires authentication via Dex.
| User | Role | Access Rights |
|---|---|---|
demo-user@flant.com |
Application User | Access via web interface |
demo-db-admin@flant.com |
Project Administrator demo-db |
Full VM access with PostgreSQL |
demo-app-admin@flant.com |
Project Administrator demo-app |
Management of all application components |
Translated with DeepL.com (free version)
/apps- Frontend and backend source code/k8s- Kubernetes deployment manifests/ansible- Ansible playbooks for VM management
Ensure the following d8 modules are enabled and configured:
admission-policy-enginecni-ciliumconsolemultitenancy-managerservice-with-healthchecksuser-authnvirtualizationoperator-argo(required for ArgoCD installation)
For Option 1 (Manual Installation via Task):
- Create a
.envfile with infrastructure settings:
PASSWORD=password
FQDN=demo.example.com- Generate SSH keys for VM access:
task ssh-gen- Deploy the application:
task deploy- Uninstall the application:
task undeploy- Apply the ApplicationSet:
task argocd:apply-
ArgoCD will automatically create and sync applications for
demo-appanddemo-dbnamespaces. -
To remove, delete the ApplicationSet:
task argocd:deletetask ssh:frontend # Connect to frontend VM
task ssh:backend-a # Connect to backend-a VM
task ssh:backend-b # Connect to backend-b VM
task ssh:db # Connect to database VMSSH:
d8 v ssh -n demo-app cloud@<vmname> -i ./tmp/demo --local-sshConsole:
d8 v console -n demo-app <vmname>The project includes Ansible playbooks for automated VM management. Uses d8 v ansible-inventory for dynamic inventory discovery.
Check VM uptime:
task ansible:uptimeUpdate packages on all VMs:
task ansible:updateRun security checks:
task ansible:security-check