feat(generate): support k8s manifest overriding #88
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In the current implementation of score-k8s, duplicate k8s manifests produced by resources or workloads are just accepted with errors thrown at runtime due to the name already existing in the target apiVersion/kind/namespace. This doesn't happen often, since the built in provisioners produce unique k8s objects per resource with no overlap. HOWEVER, moving forwards we want to encourage the use of central in-cluster resources, for example #65 we need a single
minio
instance with multiple buckets created on it. This means we need to allow overrides to the manifests so that both S3 buckets A, and B can produce a minio service, but only the last one is actually used.This technique can also be used for other heavyweight stateful applications like databases and queue providers.
This wasn't a problem in score-compose, because score-compose keys all services by a name, and silently merges duplicate named services together.
With this done, I can continue with #65 and produce a single in-cluster minio service.