Replies: 4 comments 2 replies
-
Original reply by @tkellen in cuelang/cue#411 (comment) Just dropping a note here to say how thankful I am to see this conversation happening. As a longtime user of kustomize searching for a better solution, this project appears to be a oasis in a desert full of failed attempts to solve this issue in a novel way. |
Beta Was this translation helpful? Give feedback.
-
Original reply by @mpvl in cuelang/cue#411 (comment) I think the equivalent of Go "build tags" would be quite useful. So far they have been left out, as the Build tags would take the form of, say, having file-level attributes:
module bike shedding of names and other details, where this file is only included in evaluation if a tag I think that with this mechanism, CUE will have all the necessary tools for slicing and dicing configurations. The only drawback would be introducing another mechanism to learn that is to some extent redundant. After all, the above can be written as:
|
Beta Was this translation helpful? Give feedback.
-
Original reply by @verdverm in cuelang/cue#411 (comment) With the I'm ok with it, so long as when writing tooling, I don't have to inspect filenames and look for these. This seems like something that would be handled by Cue internally and provided as a field on the instance somewhere. The idea for this is that we could have configuration that is selectively included during execution. Does this mean it becomes normal to have conflicting values, such that you cannot load the entire module / instance, and can only load successfully when you supply tags or build args? I've generallty come to avoid the differences between go / cue mods
So I'm not using the ability to have multiple / spread packages because it feels harder to grok the configuration (thinking about Cue philosophy here). Could this make things generally more difficult to understand? Will it create variety in style that makes reading other's code difficult? (one of the nice things about GO is that everyone's code looks the same) Thoughts? |
Beta Was this translation helpful? Give feedback.
-
Original reply by @myitcv in cuelang/cue#411 (comment)
I don't think that's avoidable. In the case of For everything else there is the Noting golang/go#25348 in which there is a new design in the works. |
Beta Was this translation helpful? Give feedback.
-
Originally opened by @verdverm in cuelang/cue#411
When managing systems in the wild, especially for operations which require deploying to multiple clouds (and emerging trends in enterprise OSS buying preferences), microservices, helm charts...
What we see is a combinatorial explosion of configuration options. For example:
{ local, [...branch], dev, stage, prod }
{ gcp, aws, azure, .... }
{ k8s, vm, serverless, ... }
Many of us are coming to Cue to see if there is a solution to this largely unsolved ops problem. Discussion on slack, and some personal experimentation, have lead to three possible solution so far:
_<tag>.cue
conventionWe are still very much in the experimentation phase and there are a lot of open questions.
One that stands out w.r.t. this discussion is:
Option 1 requires Cue maintainers to write core code to handle this
Option 2 & 3 do not have this requirement, and both are possible within the same cue code. 2 can be written in pure Cue while 3 can only be done in tools built on the API.
My experiments are here (I'm currently working on the attrs version)
Beta Was this translation helpful? Give feedback.
All reactions