Open alexec opened 2 years ago
I've written about my plans to standardize on expr
in a few other places (https://github.com/argoproj/argo-workflows/issues/7576#issuecomment-1728725234, https://github.com/argoproj/argo-workflows/issues/12694, https://github.com/argoproj/argo-workflows/issues/12693#issuecomment-1974873029, etc), figured this issue should really be the central source of truth for that and so will document here.
govaluate
by removing it from the docs and examples and replacing it with expr
everywhere, per https://github.com/argoproj/argo-workflows/issues/7576#issuecomment-1728725234govaluate
in 3.7 by detecting its usage (or non-expr
usage) and logging out a deprecation warning saying to switch to expr
govaluate
in 3.8 and error out when its usage is detected, saying to switch to expr
Per #7576, as when
already supports expr
(albeit with some confusing error messages), we can do this without a breaking spec change to the CRs
This covers govaluate
but not quite fasttemplate
(#7810) or text/template
-- the same process could be followed for those. govaluate
is arguably the most confusing one (based on all the issues around it etc) to focus initial efforts on. The other, non-expression templating systems are also documented in the same place as expr
, so govaluate
is kind of the outlier in that sense as it is only used in when
.
{{..}}
does not play nicely with Helm templating.
Syntax replacement has been spilt to #13471.
To be specific, this issue focuses on the expr
standardization.
The current templating system appears to be the primary cause of confusion and bugs. These are caused by the following:
Minor issues:
{{..}}
does not play nicely with Helm templating.podSpecPatch
is arguably a work-around rather than a solution.It would be great to remove this entires class of issue.
To fix this we should:
expr
as the templating technology (easy).