Setup Kubernetes for Gitlab CI/CD
Budget: €30 – €250 EUR
Setup Gitlab CI/CD to deploy to AWS Kubernetes.
What we have:
- Project that contains several functional parts on Java, NodeJs packed to Docker images
- Some official docker images that are part of the project (Redis etc.)
- Single Gitlab repository with code
- Completed and working CI/CD pipelines that builds and prepare all necessary images for every branch (review environments)
- Completed Kubernetes cluster on AWS (setup with terraform)
What we need:
- Extend our existing Gitlab CI/CD configuration to be able to deploy and run Docker images using Gitlab Kubernetes Agent (GKA). This is important. Other deployment methods are not accepted.
- Deployment must follow these rules:
1. Branch images must be deployed to a separate namespace. A K8s namespace must be created dynamically for that purpose.
2. When someone pushes code to a branch it must be built (that is already working) and (re)deployed to AWS independently.
3. Every deployed branch must be assigned to the independent domain name as <branch_name>.project-domain.com
4. When I close/delete the branch it must clean and delete namespace on AWS
- Documentation of the setup
What we have:
- Project that contains several functional parts on Java, NodeJs packed to Docker images
- Some official docker images that are part of the project (Redis etc.)
- Single Gitlab repository with code
- Completed and working CI/CD pipelines that builds and prepare all necessary images for every branch (review environments)
- Completed Kubernetes cluster on AWS (setup with terraform)
What we need:
- Extend our existing Gitlab CI/CD configuration to be able to deploy and run Docker images using Gitlab Kubernetes Agent (GKA). This is important. Other deployment methods are not accepted.
- Deployment must follow these rules:
1. Branch images must be deployed to a separate namespace. A K8s namespace must be created dynamically for that purpose.
2. When someone pushes code to a branch it must be built (that is already working) and (re)deployed to AWS independently.
3. Every deployed branch must be assigned to the independent domain name as <branch_name>.project-domain.com
4. When I close/delete the branch it must clean and delete namespace on AWS
- Documentation of the setup