-
Notifications
You must be signed in to change notification settings - Fork 564
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
feat: Advanced Templating #823
Conversation
@astorath Hey! Thanks a lot for your efforts. I'm looking forward to review this fully once this gets out of the WIP status. Until then I'll keep adding design comments. Firstly:
How the dependencies across field templates are handled? Do you by any chance build something like a DAG of field templates?
This makes sense. An alternative way to that is to give boolean field
Awesome! Can I later enhance it so that the output of the Actually I'm talking about #780 so I'd be glad if I can rename it to |
No, just simple iterations with some sane limit. If release stops mutating: interpolation stops.
Well, I do consider my approach ugly. But I don't think that messing with As I've pointed out, the best way (IMHO) is to separate Nevertheless, if you think using
I've replaced the name. |
|
||
func ptr(v interface{}) interface{} { | ||
r := v | ||
return reflect.ValueOf(r).Addr().Interface() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks neat!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
helmfile list
and helmfile build
with support for templating non-string release fields! LGTM. Thanks a lot for your AWESOME work @astorath 🎉
Understood. As long as someone tries 6+ iterations in a real world project(not sure someone ever does!), we can live with that, which makes me think that it's a great starting point.
I agree a lot!
This may negate my previous comment but I started thinking that both The way you've done things with the Probably I'll adapt existing fields like |
- `set` block values: | ||
```yaml | ||
# ... | ||
set: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Accordingly to #823 (comment), I'd be happy if we could enable templates only for setTemplate
and valuesTemplate
rather than set
and values
respectively.
I'll make the changes on my own before releasing this, but if you made it on your side I'd be happy to review/accept the PR! Thanks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See #833
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Merged #833. Please feel free to leave any comments about it!
This is a follow-up for #823 Ref #823 (comment)
This is a follow-up for #823 Ref #823 (comment)
This is a follow-up for #823 Ref #823 (comment)
This is a follow-up for #823 Ref #823 (comment)
helmfile build
command to print final stateMotivation: useful for debugging purposes and some CI scenarios
this solves: #818
helmfile list
command to print target releases in simple tabular formhelm
output messages, e.g.:Comparing release=%v, chart=%v
TODO:
yaml
serialization improvements