-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consistent Kubernetes service object naming #953
Consistent Kubernetes service object naming #953
Comments
There are also requests for the predictable service names from a monitoring perspective, too. Example:
|
ideally names would be normalized, labels would be used for selectors, annotations used for metadata. probably need to consider any backwards compatibility issues for existing streams to make sure they and their corresponding objects get cleaned up properly looks related as well: #927 |
as a concrete example using a deployment and service, given kubernetes already allows for tracking versions, doing rollbacks, etc, natively the following may be used for consideration in implementation. this may also remove the need for: spring-cloud/spring-cloud-deployer-kubernetes#196 given theres no need to mess around with the LB, its just updating the deployment. there may be additional projects where changes are needed. in the following an nginx deployment and service is created, the image version is changed, undo / undo to specific revision is performed. nginx is used in this example as it has no dependencies but can be any application..
obviously simplistic example but shows the built in ability to change image versions without incrementing names, labels, etc while also maintaining the existing load balancer. some output and other explanations omitted as full examples are available in the docs at: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment |
releated PR should cover keeping the service name consistent. seems like that may be the furthest we can do with the skipper model... |
application name Relates to: #953
Currently when a stream is created, the deployer creates the appropriate deployment object along with a service object which could be of type clusterIP (default), NodePort or LoadBalancer toggled based on deployer properties.
For example:
The version number will change on subsequent deploys of the stream. This application name with the version number concatenated is passed into the deployer. The deployer uses the application name as for example, the name of the service. Typically this would make sense - i.e: if your deploying an app called "nginx" a sensible name for the service object would the static name
nginx
.Not having a consistent service name is problematic in some use-cases, for example:
Feature request : add a support to auto create an additional clusterIP service with respect to deploymentLabel spring-cloud-deployer-kubernetes#370
Support configuring ingress spring-cloud-deployer-kubernetes#184
Having a static name as expected would alleviate needs for work around as well as allow other things that depend on those names to work out of the box
The text was updated successfully, but these errors were encountered: