-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Project Overview
Project Name
Baremetal Kubernetes Cluster Implementantion Using Talos Linux
Project Summary
This project will repurpose existing servers in the Computer Laboratory to create a prototype environment to deploy different containered applications. This prototype will support various projects by providing scalable infrastructure, managed via Kubernetes (K8S) and give and relatibly easy to use mechanism to deploy applicatons for users with no experience in k8s. The project will also include a Spike to test and evaluate Talos Linux viability and test tools for basic deployments and git operations.
Project Objective
The primary objective is to set up a Kubernetes-based cluster on existing laboratory servers, enabling the deployment, scaling, and management of containerized applications. The system will serve as a prototype environmet for other academic projects. A Spike with virtual machines insted of baremetal will be conducted to evaluate the viabilty of the project and a way for the team members put in practice their recently acquired knowlage and test diferent configurations before going to the final hosts.
Team Structures
Project Leader
- Name: @GabrielEValenzuela
- Role: Oversees the project execution, ensuring that the Kubernetes clusters are correctly configured, and CI/CD pipelines are optimized. Leads the Spike evaluation and coordinates with team members to resolve technical challenges.
Sr. Engineers
- Name: @FaustoLavezzari @Aquiles2001
- Role: Senior engineer providing technical guidance, especially in the areas of Kubernetes setup, Docker configuration, and CI/CD best practices. Leads the technical aspects of the Spike.
Team Members
- Name: [Carlos Martínez]
- Role: DevOps Engineer
- Responsibilities: Responsible for setting up the Kubernetes clusters, configuring the servers, and implement basic services for deployment and administation. Participates in the Spike to evaluate the OS and tools
Stakeholders
- School of Computer Engineering, UNC: Aims to enhance the computational infrastructure for research and academic purposes, providing students and faculty with a scalable and maintainable environment.
- Computer Department: Interested in deploying a robust infrastructure that can support various academic and research projects.
Work Breakdown Structure (WBS)
Major Deliverables
- Deliverable 1: Research and Planning
- Deliverable 2: Spike: OS and Tool Evaluation
- Deliverable 3: Kubernetes Cluster Setup
- Deliverable 4: Basic tools for deployment with gitops implementation
- Deliverable 6: Documentation and Training
- Deliverable 7: Final Deployment and Handover
Work Packages
- Work Package 1.1: Conduct initial reserch and practice in general containers concepts
- Work Package 1.2: Conduct initial reserch and practice in kubernetes usage with minimal local clusters
- Work Package 1.2: Conduct initial reserch and practice in kubernetes architecture
- Work Package 2.1: Spike: Implement a minimal 3 nodes kubernetes cluster in a VM environment using Talos Linux and a a first aproximation of apps deployment with gitops tools. (ArgoCD, Github Actions, etc)
- Work Package 3.1: Deploy and configure the Kubernetes cluster, including setting up nodes, load balancers, and network policies in the barametal servers.
- Work Package 4.1: Implement the deployment mechanism on the real cluster.
- Work Package 5.1: Implement security measures, including RBAC, network policies, and secret management. Conduct security audits.
- Work Package 6.1: Develop documentation and training materials for the cluster setup and pipeline configurations. Provide training to relevant stakeholders.
- Work Package 7.1: Perform final testing, deploy the system in a production environment, and complete the handover to the IT department.
Milestones
- Milestone 1: Complete Research and Planning - Due: [Date]
- Milestone 2: Spike Results and Decision - Due: [Date]
- Milestone 3: Kubernetes Cluster Setup Finalized - Due: [Date]
- Milestone 4: Deployment mechanism Configured - Due: [Date]
- Milestone 5: Security Testing Completed - Due: [Date]
- Milestone 6: Documentation and Training Delivered - Due: [Date]
- Milestone 7: System Deployed and Handover Completed - Due: [Date]
Project Schedule
Timeline
- Start Date: [Date]
- End Date: [Date]
- Key Phases:
- Phase 1: Research and Planning (Start Date - [Completion Date])
- Phase 2: Spike: OS and Tool Evaluation (Start Date - [Completion Date])
- Phase 3: Cluster Setup (Start Date - [Completion Date])
- Phase 4: Deployment mechanism Configured (Start Date - [Completion Date])
- Phase 5: Security and Final Deployment (Start Date - [Completion Date])
Gantt Chart
(Optional) Attach or reference a Gantt chart that visually represents the project schedule, including task dependencies and critical paths.
Resource Allocation
Budget
- Not applicable
Resource Requirements
- Infrastructure: Existing laboratory servers
- Operating System: Talos Linux
- Development Tools: Kubernetes, Docker, Jenkins/GitLab CI, Helm
- Testing Tools: Kubernetes Dashboard, Prometheus, Grafana, security scanning tools
Risk Management
Risk Identification
- Risk 1: Delays in the Spike due to complexity in evaluating or implementig the OS.
- Risk 2: Integration challenges between the OS, CI/CD pipelines, and Kubernetes.
- Risk 3: Security vulnerabilities due to misconfiguration or unpatched software.
Risk Mitigation Strategies
- Risk 1 Mitigation: Allocate sufficient time and resources for the Spike, and involve experienced personnel in the evaluation process.
- Risk 2 Mitigation: Perform incremental testing and integration to ensure smooth operation. Use established CI/CD tools known for Kubernetes compatibility.
- Risk 3 Mitigation: Regularly update software, conduct thorough security audits, and follow best practices for Kubernetes security.
Quality Assurance
Quality Standards
- Standard 1: The system must meet industry-standard practices for Kubernetes
- Standard 2: Security configurations must pass relevant security audits
Testing and Validation
- Cluster Testing: Ensure high availability, load balancing, and failover capabilities.
- Deployment Testing: Validate the apps deployment mechanism with multiple test scenarios to ensure reliability.
- Security Validation: Perform comprehensive security testing, including penetration testing and vulnerability scanning.
Communication Plan
Reporting
- Weekly Reports: The project leader and senior engineers will provide updates on progress, discuss risks, and highlight upcoming milestones.
Meetings
- Team Meetings: Weekly, to review progress, discuss challenges, and align on next steps.
Approval
Project Approval
This section is for final approval of the project by the core team:
- Approval Status: Approved
- Approved By: [TBD]
- Approval Date: [Date]
Additional Notes
Include any other relevant information or considerations for the project.