Project
A Project in SleakOps represents a codebase managed by a Git repository, it also defines the so-called Namespace. It's the core entity that connects your repository to the SleakOps environment, enabling deployment, management, and scaling of your application in the AWS infrastructure.
It is the combination of: Repository, Branch and Dockerfile Path. By adding the environment you have a ProjectEnv (or Kubernetes Namespace).
What is a ProjectEnv or Namespace?
A ProjectEnv is the combination of a project and an environment. It acts as a Kubernetes Namespace in the cluster and contains all the services and resources related to the project within that environment.
How do I create a ProjectEnv in SleakOps?
The Project and the ProjectEnv will be created at the same time. You need to connect your Git account (e.g., GitHub, GitLab, or Bitbucket) to SleakOps, select a repository, choose a branch, and specify the location of the Dockerfile. Once these steps are completed, a ProjectEnv is created, and the first image build is triggered. Follow the steps bellow.
What happens when I create a ProjectEnv?
When a ProjectEnv is created, the following resources are set up:
- AWS Elastic Container Registry (ECR) to store container images and Helm charts.
- A Kubernetes Namespace to manage services in isolation.
- A Service Account to handle permissions and secure connections with AWS resources.
- A Dockerfile analysis to verify its correctness and build a container image using Kaniko
How do I add the Dockerfile Args?
If any build-time Docker Args (arguments) are required, SleakOps will prompt you to enter them before running the initial build. These arguments can be modified for future builds.
What is the purpose of the Dockerfile in my project?
The Dockerfile defines how your application is built into a container image. During ProjectEnv creation, SleakOps analyzes the Dockerfile to ensure it's correctly configured, and then builds the image using Kaniko.
Where are the Docker images stored?
Docker images are stored in the AWS ECR (Elastic Container Registry) associated with your project. The images are named after the ProjectEnv, which combines the environment name and project name.
What is the role of the Service Account?
The Service Account manages permissions for resources inside the Kubernetes cluster. It allows services deployed in the ProjectEnv to securely interact with AWS resources like S3, RDS, or any other service your application may require.
Can I update the repository, branch, or Dockerfile path after creating a Project?
Just the Branch and the Dockerfile Path can be updated. If you need to work with a different Environment, Repository or Name, you will need to create a new record.
How does SleakOps handle the initial image build?
SleakOps automates the first image build as part of the ProjectEnv creation process. This initial build ensures faster deployment by utilizing the existing infrastructure. Afterward, future image builds are triggered when services are published in deployments or manually via the Build Form.
How do I control project’s expenses?
SleakOps allows you to see all your project expenses in one place, classified by account, resources, dates.
Access Projects, select one and click the button:
How do I monitor my project?
You can monitor your project by accessing Projects, selecting one **and clicking into the button: (button image)
How do I create a Kubernetes Volume?
When editing a Project, you can enable and define Kubernetes Volumes by specifying the mount path and storage capacity. SleakOps uses the AWS EFS CSI Driver to manage these volumes as EFS file systems in the EKS cluster.
🚩 How do I manage future builds and deployments?
Future builds and deployments can be managed manually via the SleakOps interface or automated using the SleakOps CLI.
Lets create your first Project on SleakOps
You must have your Git Repository connected. See Connect your Git Account
1. Navigate to Create Project section
Into the Left Pane, access Projects option and then, at the top right corner, click on the Create button.
2. Set up your Project
You will access the following form:
Here the parameters that SleakOps allows you to customize during the creation:
Setting | Description |
---|---|
Name | Identify your Project. |
Environment | The environment represents a specific stage or setup within your infrastructure where your project will be deployed (e.g., Development, Staging, Production). You are associating your project’s code with a particular environment in your Kubernetes cluster. |
Repository | The repository is the Git repository that holds the codebase for your project. SleakOps will access this repository to manage code updates, builds, and deployments. Ensure that you have connected your Git provider (e.g., GitHub, GitLab, Bitbucket) and that the selected repository contains all necessary files for your project. |
Nodepool | Is the resource in charge of provision the server where your services will run. More info here. |
Branch | The branch represents a specific version or line of development within the repository. This allows you to deploy a particular version of your code (e.g., main, develop, or a feature-specific branch). The branch you select will determine the code that gets built and deployed within the associated environment. |
Dockerfile Path | The Dockerfile is a critical component used to build your project into a container. The Dockerfile Path field requires the relative file path to your Dockerfile within the repository (e.g., /Dockerfile, /src/Dockerfile, or /app/Dockerfile). This file contains the instructions needed to create the container image, which SleakOps will build and later use for deployments. |
Once you’ve completed the form, click on Submit in order to trigger the Dockerfile validation and then the build.