This project is a copy of the original repository: https://gitlab.com/hiba.awad1/DDTS
This project aims to assist engineers in selecting the most suitable deployment tool by evaluating non-functional properties such as security and cost from various deployment configuration files. The analysis of these properties is driven by a YAML file called deployment instructions.
The deployment instructions file includes:
- Non-Functional Properties: The characteristics to be evaluated (e.g., security, cost).
- Rules: The acceptable values for each property that determine whether a deployment configuration passes.
- Selection Priority: The importance level of each property (lower numbers indicate higher priority).
- Deployment Status: The importance of the test for the deployment.
In cases where multiple deployment configurations are being evaluated, and their results conflict, the tool resolves the conflict based on the Selection Priority. A property with a priority of 1 will take precedence over those with lower priority.
- Users provide a deployment instructions YAML file.
- The tool verifies and compares the non-functional properties of different deployment configurations based on the instructions.
- It helps you choose the optimal deployment configuration that best meets the specified non-functional properties.
Prerequisites
Ensure you have the following:
- GitLab CI/CD configured for your repository.
- A valid deployment instructions YAML file that outlines the non-functional properties, priorities, and thresholds for your deployment configurations.
Steps to Configure
git clone https://gitlab.com/<your-repo>.git
cd <your-repo>
Modify the GitLab CI/CD Pipeline:
You will need to modify the .gitlab-ci.yml file to include your confidential information and details of a secondary project (if applicable) to proceed with deployment.
- Add Confidential Information: Insert your deployment credentials and any other sensitive data (like username, email, password) within the GitLab CI transfer section.
- Configure Additional Projects: If you are working with multiple projects and you wish to continue to the deployment, add the necessary environment details, such as the project paths, URLs, or additional parameters in the Gitlab CI variables section.
Commit the Changes: After modifying the .gitlab-ci.yml, commit your changes back to the repository:
git add .gitlab-ci.yml
git commit -m "Configured CI with confidential and secondary project information"
git push origin main
Once the GitLab CI/CD pipeline is set up with the necessary credentials and project configurations, the tool will automatically evaluate the provided deployment configurations. You can monitor the results from the GitLab CI/CD job logs.
In the case you are running the kubecost for the first time you need to allow it is installation by uncomment the installation commands and increase the sleeping time to 3d allowing kubecost to gather the necessary metrics to predict the cost of your kubernetes file.
Deployment Instructions: Customize the deployment instructions file to match your project's specific non-functional requirements. CI/CD Configuration: Update the .gitlab-ci.yml to suit your project’s deployment tools, environment, and configurations.
If you wish to contribute to the project:
- Fork the repository.
- Create a new branch for your feature.
- Submit a merge request with a clear description of your changes.
This project is licensed under the MIT License. See the LICENSE file for more details.