-
Notifications
You must be signed in to change notification settings - Fork 30
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
Add support for installing Keel #112
Comments
Thanks again for the fantastic demo at yesterday's Kubernetes SIG, @nimakaviani! A few comments to consider before making a pull request with the Managed Delivery changes:
Thanks again for the awesome contribution. So excited that you are using Kleat! |
Thanks a lot for the demo and for the interest in supporting Keel! In addition to @maggieneterval's comments above, it looks like your commit adds a lot of places where you've had This is not what Halyard did, which led to a lot of complexity, where defaults where often quite different for users using Halyard vs. deploying and directly writing their config. Ideally the config for Similarly, for the config properties that are telling Thanks again for the interest here! |
Thank you @maggieneterval and @ezimanyi for the quick feedback. yes the implementation that I shared is a quick and dirty proof of concept. so all your points on missing proper comments on proto fields, lack of tests, and premature defaulting of ports and services are totally valid. I address some of the specifics below.
+1
as for the persistent store, MD uses SQL to store its state. Redis however was required by Front50 in the absence of an S3 or other object storage to persist Spinnaker application state. The PR doesn't necessary need to add Redis but I suppose it is a common persistent store that could be used by others deploying Spinnaker. I'd be happy to go with your suggestion on whether to drop Redis or to have a separate PR to have it added. The notion of plugins in the context of Keel and MD is slightly different from how plugins are interpreted in other places in Spinnaker. in MD it more or less serves as a feature flag to enable support for a particular provider. I can embed the notion of Keel specific plugins into the Keel proto message object. or if we want to have a placeholder to extend Kleat with plugins more broadly, we can keep them where they are.
sounds good.
+1 on the above philosophy. Current implementation of Keel assumes the defaults to come from the config file. Some of the defaulting was required for the demo to work. But setting reasonable defaults in the code makes sense.
totally agreed. In fact in my first try, I relied on the default service discovery in I can certainly work with the Keel team to address the defaulting issues. However in the meantime, for the config values where there is a lack of proper defaulting or where some of the previous conventions are broken (eg. with service discovery), how do you suggest to move forward? Does it make sense to have Kleat set some of those defaults, and as we push those defaults to Keel, we will clean them up in Kleat? My worry is that it may take quite some time if we wait for Keel to make necessary changes in all places where proper defaulting is needed, and we will lose momentum on having the community experiment with it. thanks again for the great feedback. |
I'd like to at least discuss with the Keel team first how to push the defaults into In general, this is just a matter of adding the appropriate values to the base config in the repo (ex: for clouddriver). I'd definitely want to involve the Keel team either way, as I'm not really in a great position to know what sensible defaults are for If after discussing with them there is a reason why defaulting in |
Keel is the microservice required to enable Managed Delivery for Spinnaker. As part of our efforts to make Managed Delivery available to the larger community, we would like to have Kleat generate the config file for Keel and also to add the required adjustments to the config files for other Spinnaker microservices.
Here is a PoC implementation: https://github.com/nimakaviani/kleat
The implementation introduces a feature flag
--enable-keel
that once set, makes the required config changes. From our discussions in the k8s sig meeting, @ezimanyi suggested we might be able to remove the feature flag and instead pre-populate the config files with acceptable defaults.Any other changes to the above implementation that you see appropriate?
We can start working on the PR once we settle on the final design. thanks!
/cc @queueburt
The text was updated successfully, but these errors were encountered: