[Feature] Enable Separation Of Image And Tag For Value Values.forecasting.fullImageName
Problem Statement
Maintaining kubecost images locally in a repository can be a challenging task, especially when dealing with complex Helm charts. While it's possible to override values for Values.kubecostFrontend.image and Values.kubecostModel.image, having a similar option for Values.forecasting.fullImageName would be highly beneficial. This feature request aims to enable the separation of image and tag for Values.forecasting.fullImageName, allowing users to maintain their own values files and ensuring backward compatibility.
Background
The current implementation of Values.forecasting.fullImageName in the forecasting-deployment.yaml file is as follows:
forecasting:
fullImageName: public.ecr.aws/kubecost/kubecost-modeling:v0.1.18
This can be broken down into two separate values: image and tag. The proposed solution is to modify the file to:
forecasting:
image:
repository: public.ecr.aws/kubecost/kubecost-modeling
tag: v0.1.18
This change will enable users to override the image and tag values separately, providing more flexibility and control over the forecasting deployment.
Solution Description
To implement this feature, we need to modify the forecasting-deployment.yaml file to separate the image and tag values. This can be achieved by introducing a new structure for the forecasting section, as shown below:
forecasting:
image:
repository: public.ecr.aws/kubecost/kubecost-modeling
tag: v0.1.18
This change will allow users to override the image and tag values separately, providing more flexibility and control over the forecasting deployment.
Alternatives
There are no alternative solutions proposed for this feature request.
Additional Context
No additional context is provided for this feature request.
Troubleshooting
Before submitting this feature request, the following steps were taken:
- I have read and followed the issue guidelines and this is a feature request only for the Helm chart.
- I have searched other issues in this repository and mine is not recorded.
Benefits
Enabling the separation of image and tag for Values.forecasting.fullImageName will provide several benefits, including:
- Increased flexibility: Users will be able to override the image and tag values separately, providing more flexibility and control over the forecasting deployment.
- Improved maintainability: By separating the image and tag values, users will be able to maintain their own values files more easily, reducing the risk of conflicts and errors.
- Backward compatibility: The proposed solution will ensure backward compatibility, allowing users to continue using their existing values files without any issues.
Implementation Plan
To implement this feature, the following steps will be taken:
- Modify the forecasting-deployment.yaml file: The forecasting-deployment.yaml file will be modified to separate the image and tag values, as shown above.
- Test the changes: The modified file will be tested to ensure that it works as expected and does not introduce any issues.
- Review and merge the changes: The modified file will be reviewed and merged into the main branch, making it available for all users.
Conclusion
Q: What is the current implementation of Values.forecasting.fullImageName?
A: The current implementation of Values.forecasting.fullImageName in the forecasting-deployment.yaml file is as follows:
forecasting:
fullImageName: public.ecr.aws/kubecost/kubecost-modeling:v0.1.18
Q: What is the proposed solution for enabling separation of image and tag?
A: The proposed solution is to modify the forecasting-deployment.yaml file to separate the image and tag values, as shown below:
forecasting:
image:
repository: public.ecr.aws/kubecost/kubecost-modeling
tag: v0.1.18
Q: What are the benefits of enabling separation of image and tag?
A: Enabling the separation of image and tag for Values.forecasting.fullImageName will provide several benefits, including:
- Increased flexibility: Users will be able to override the image and tag values separately, providing more flexibility and control over the forecasting deployment.
- Improved maintainability: By separating the image and tag values, users will be able to maintain their own values files more easily, reducing the risk of conflicts and errors.
- Backward compatibility: The proposed solution will ensure backward compatibility, allowing users to continue using their existing values files without any issues.
Q: How will the proposed solution affect users who are maintaining their own values files?
A: The proposed solution will not affect users who are maintaining their own values files. The image and tag values will be separated, allowing users to override these values separately, providing more control over the forecasting deployment.
Q: What are the steps involved in implementing the proposed solution?
A: The steps involved in implementing the proposed solution are:
- Modify the forecasting-deployment.yaml file: The forecasting-deployment.yaml file will be modified to separate the image and tag values, as shown above.
- Test the changes: The modified file will be tested to ensure that it works as expected and does not introduce any issues.
- Review and merge the changes: The modified file will be reviewed and merged into the main branch, making it available for all users.
Q: What is the expected outcome of implementing the proposed solution?
A: The expected outcome of implementing the proposed solution is that users will have more flexibility and control over the forecasting deployment, and will be able to maintain their own values files more easily.
Q: Are there any potential risks or issues associated with implementing the proposed solution?
A: There are no potential risks or issues associated with implementing the proposed solution. The proposed solution will ensure backward compatibility, allowing users to continue using their existing values files without any issues.
Q: How will the proposed solution be tested and validated?
A: The proposed solution will be tested and validated through a series of tests, including:
- Unit tests: The modified file will be tested to ensure that it works as expected and does not introduce any issues.
- Integration tests: The modified file will be tested to ensure that it integrates correctly with other components of the system.
- System tests: The modified file will be tested to ensure that it works as expected in a real-world scenario.
Q: What is the expected timeline for implementing the proposed solution?
A: The expected timeline for implementing the proposed solution is as follows:
- Development: The proposed solution will be developed and tested within the next 2 weeks.
- Review and merge: The modified file will be reviewed and merged into the main branch within the next 1 week.
- Deployment: The modified file will be deployed to production within the next 2 weeks.