diff --git a/cue/ast_test.go b/cue/ast_test.go
index 83e3b7d..09e9358 100644
--- a/cue/ast_test.go
+++ b/cue/ast_test.go
@@ -291,6 +291,25 @@
 		out: `<0>{` +
 			`a: (<1>{d: <2>{info :: <3>{...}, Y: <2>.info.X}, <0>.base} & <4>{<>: <5>(Name: string)-><6>{info :: <7>C{X: "foo"}}, }), ` +
 			`base :: <8>C{info :: <9>{...}}}`,
+	}, {
+		in: `
+		def :: {
+			Type: string
+			Text: string
+			Size: int
+		}
+
+		def :: {
+			Type: "B"
+			Size: 0
+		} | {
+			Type: "A"
+			Size: 1
+		}
+		`,
+		out: `<0>{` +
+			`def :: (<1>C{Size: int, Type: string, Text: string} & (<2>C{Size: 0, Type: "B"} | <3>C{Size: 1, Type: "A"}))` +
+			`}`,
 	}}
 	for _, tc := range testCases {
 		t.Run("", func(t *testing.T) {
diff --git a/cue/binop.go b/cue/binop.go
index 152b8ac..5a3ca19 100644
--- a/cue/binop.go
+++ b/cue/binop.go
@@ -590,7 +590,7 @@
 	return nil
 }
 
-func evalLambda(ctx *context, a value) (l *lambdaExpr, err evaluated) {
+func evalLambda(ctx *context, a value, finalize bool) (l *lambdaExpr, err evaluated) {
 	if a == nil {
 		return nil, nil
 	}
@@ -603,7 +603,11 @@
 	if !ok {
 		return nil, ctx.mkErr(a, "value must be lambda")
 	}
-	return ctx.deref(l).(*lambdaExpr), nil
+	lambda := ctx.deref(l).(*lambdaExpr)
+	if finalize {
+		lambda.value = wrapFinalize(lambda.value)
+	}
+	return lambda, nil
 }
 
 func (x *structLit) binOp(ctx *context, src source, op op, other evaluated) evaluated {
@@ -632,8 +636,8 @@
 	}
 	defer ctx.pushForwards(x, obj, y, obj).popForwards()
 
-	tx, ex := evalLambda(ctx, x.template)
-	ty, ey := evalLambda(ctx, y.template)
+	tx, ex := evalLambda(ctx, x.template, x.closeStatus.shouldFinalize())
+	ty, ey := evalLambda(ctx, y.template, y.closeStatus.shouldFinalize())
 
 	var t *lambdaExpr
 	switch {
@@ -699,7 +703,14 @@
 					return ctx.mkErr(src, "field %q declared as definition and regular field",
 						ctx.labelStr(a.feature))
 				}
-				v = mkBin(ctx, src.Pos(), op, b.v, v)
+				w := b.v
+				if x.closeStatus.shouldFinalize() {
+					w = wrapFinalize(w)
+				}
+				if y.closeStatus.shouldFinalize() {
+					v = wrapFinalize(v)
+				}
+				v = mkBin(ctx, src.Pos(), op, w, v)
 				obj.arcs[i].v = v
 				obj.arcs[i].cache = nil
 				obj.arcs[i].optional = a.optional && b.optional
@@ -725,7 +736,7 @@
 	sort.Stable(obj)
 
 	if unchecked && obj.template != nil {
-		obj.closeStatus = 0
+		obj.closeStatus.unclose()
 	}
 
 	return obj
diff --git a/cue/debug.go b/cue/debug.go
index ca3e970..1eb5bff 100644
--- a/cue/debug.go
+++ b/cue/debug.go
@@ -263,7 +263,18 @@
 		write("(")
 		p.str(x.params.arcs)
 		write(")->")
+		v := x.value
+		// strip one layer of closeIf wrapper. Evaluation may cause one
+		// layer to have not yet been evaluated. This is fine.
+		if w, ok := v.(*closeIfStruct); ok {
+			v = w.value
+		}
+		p.str(v)
+
+	case *closeIfStruct:
+		write("close(")
 		p.str(x.value)
+		write(")")
 
 	case *structLit:
 		if x == nil {
@@ -273,7 +284,7 @@
 		if p.showNodeRef {
 			p.writef("<%s>", p.ctx.ref(x))
 		}
-		if x.closeStatus != 0 {
+		if x.closeStatus.shouldClose() {
 			write("C")
 		}
 		write("{")
@@ -301,7 +312,7 @@
 				p.write(", ")
 			}
 		}
-		if topDefault && x.closeStatus == 0 {
+		if topDefault && !x.closeStatus.shouldClose() {
 			if len(x.arcs) > 0 {
 				p.write(", ")
 			}
diff --git a/cue/eval.go b/cue/eval.go
index 04a9c77..5950ef9 100644
--- a/cue/eval.go
+++ b/cue/eval.go
@@ -319,6 +319,12 @@
 	return st
 }
 
+func (x *closeIfStruct) evalPartial(ctx *context) evaluated {
+	v := x.value.evalPartial(ctx)
+	updateCloseStatus(v)
+	return v
+}
+
 func (x *structLit) evalPartial(ctx *context) (result evaluated) {
 	if ctx.trace {
 		defer uni(indent(ctx, "struct eval", x))
diff --git a/cue/export.go b/cue/export.go
index 86376c1..656b8ff 100644
--- a/cue/export.go
+++ b/cue/export.go
@@ -211,10 +211,14 @@
 	return false
 }
 
+func (p *exporter) showOptional() bool {
+	return !p.mode.omitOptional && !p.mode.concrete
+}
+
 func (p *exporter) closeOrOpen(s *ast.StructLit, isClosed bool) ast.Expr {
 	// Note, there is no point in printing close if we are dropping optional
 	// fields, as by this the meaning of close will change anyway.
-	if p.mode.omitOptional || p.mode.concrete {
+	if !p.showOptional() {
 		return s
 	}
 	if isClosed && !p.inDef {
@@ -236,6 +240,18 @@
 		return !all
 	case *bottom:
 		return !isIncomplete(x)
+	case *closeIfStruct:
+		return p.isComplete(x.value, all)
+	}
+	return false
+}
+
+func isDisjunction(v value) bool {
+	switch x := v.(type) {
+	case *disjunction:
+		return true
+	case *closeIfStruct:
+		return isDisjunction(x.value)
 	}
 	return false
 }
@@ -247,7 +263,7 @@
 		// This likely requires disjunctions to keep track of original
 		// values (so using arcs instead of values).
 		p := &exporter{p.ctx, options{concrete: true, raw: true}, p.stack, p.top, p.imports, p.inDef}
-		if _, ok := v.(*disjunction); ok || isBottom(e) {
+		if isDisjunction(v) || isBottom(e) {
 			return p.expr(v)
 		}
 		return p.expr(e)
@@ -255,6 +271,10 @@
 	return p.expr(e)
 }
 
+func (p *exporter) isClosed(x *structLit) bool {
+	return x.closeStatus.shouldClose()
+}
+
 func (p *exporter) expr(v value) ast.Expr {
 	// TODO: use the raw expression for convert incomplete errors downstream
 	// as well.
@@ -421,19 +441,30 @@
 		}
 		return bin
 
+	case *closeIfStruct:
+		return p.expr(x.value)
+
 	case *structLit:
-		st, err := p.structure(x, !x.isClosed())
+		st, err := p.structure(x, !p.isClosed(x))
 		if err != nil {
 			return p.expr(err)
 		}
-		expr := p.closeOrOpen(st, x.isClosed())
+		expr := p.closeOrOpen(st, p.isClosed(x))
 		switch {
-		case x.isClosed() && x.template != nil:
+		// If a template is non-nil, we only show it if printing of
+		// optional fields is requested. If a struct is not closed it was
+		// already generated before. Furthermore, if if we are in evaluation
+		// mode, the struct is already unified, so there is no need to print it.
+		case x.template != nil && p.showOptional() && p.isClosed(x) && !doEval(p.mode):
 			l, ok := x.template.evalPartial(p.ctx).(*lambdaExpr)
 			if !ok {
 				break
 			}
-			if _, ok := l.value.(*top); ok {
+			v := l.value
+			if c, ok := v.(*closeIfStruct); ok {
+				v = c.value
+			}
+			if _, ok := v.(*top); ok {
 				break
 			}
 			expr = &ast.BinaryExpr{X: expr, Op: token.AND, Y: &ast.StructLit{
@@ -629,10 +660,10 @@
 		obj.Elts = append(obj.Elts, &ast.EmbedDecl{Expr: p.expr(x.emit)})
 	}
 	switch {
-	case !doEval(p.mode) && x.template != nil && addTempl:
+	case x.template != nil && p.showOptional() && addTempl:
 		l, ok := x.template.evalPartial(p.ctx).(*lambdaExpr)
 		if ok {
-			if _, ok := l.value.(*top); ok && !x.isClosed() {
+			if _, ok := l.value.(*top); ok && !p.isClosed(x) {
 				break
 			}
 			obj.Elts = append(obj.Elts, &ast.Field{
@@ -735,7 +766,7 @@
 			break
 		}
 		s.Elts = append(s.Elts, st.Elts...)
-		return x.isClosed()
+		return p.isClosed(x)
 
 	case *binaryExpr:
 		if x.op != opUnifyUnchecked {
diff --git a/cue/export_test.go b/cue/export_test.go
index 507b345..eed802c 100644
--- a/cue/export_test.go
+++ b/cue/export_test.go
@@ -294,8 +294,9 @@
 			a b: 3
 		}`),
 	}, {
-		raw:  true,
-		eval: true,
+		raw:   true,
+		eval:  true,
+		noOpt: true,
 		in: `{
 			job <Name>: {
 				name:     Name
@@ -381,6 +382,10 @@
 					sub: reg
 				}
 				val: def
+				def2 :: {
+					a: { b: int }
+				}
+				val2: def2
 			}`,
 		out: unindent(`
 		{
@@ -402,6 +407,10 @@
 					bar baz: 3
 				}
 			}
+			def2 :: {
+				a b: int
+			}
+			val2 a b: int
 		}`),
 	}, {
 		raw:  true,
@@ -476,8 +485,9 @@
 				}
 				a: []
 			}`)}, {
-		raw:  true,
-		eval: true,
+		raw:   true,
+		eval:  true,
+		noOpt: true,
 		in: `{
 				And :: {
 					"Fn::And": [...(3 | And)]
@@ -494,8 +504,9 @@
 				Ands "Fn::And": [3 | And]
 			}`),
 	}, {
-		raw:  true,
-		eval: true,
+		raw:   true,
+		eval:  true,
+		noOpt: true,
 		in: `{
 			Foo :: {
 				sgl: Bar
@@ -557,7 +568,7 @@
 			n := root.(*structLit).arcs[0].v
 			v := newValueRoot(ctx, n)
 
-			opts := options{raw: !tc.eval, omitOptional: true}
+			opts := options{raw: !tc.eval, omitOptional: tc.noOpt}
 			node, _ := export(ctx, v.eval(ctx), opts)
 			b, err := format.Node(node, format.Simplify())
 			if err != nil {
@@ -574,6 +585,7 @@
 	testCases := []struct {
 		eval    bool // evaluate the full export
 		in, out string
+		opts    []Option
 	}{{
 		in: `
 		import "strings"
@@ -713,13 +725,9 @@
 			}
 			a: close({
 				b: <10
-			}) & {
-				<_>: <10
-			}
+			})
 			B :: {
 				b: <10
-			} & {
-				<_>: <10
 			}
 		}`),
 	}, {
@@ -758,6 +766,98 @@
 				}
 			})
 		}`),
+	}, {
+		eval: true,
+		in: `
+			T :: {
+				<_>: int64
+			}
+			X :: {
+				x: int
+			} & T
+			x: X
+			`,
+		out: unindent(`
+		{
+			T :: {
+				<_>: int64
+			}
+			X :: {
+				x: int64
+			}
+			x: close({
+				x: int64
+			})
+		}`),
+	}, {
+		eval: true,
+		opts: []Option{Optional(false)},
+		in: `
+		T :: {
+			<_>: int64
+		}
+		X :: {
+			x: int
+		} & T
+		x: X
+		`,
+		out: unindent(`
+		{
+			T :: {
+			}
+			X :: {
+				x: int64
+			}
+			x x: int64
+		}`),
+	}, {
+		eval: true,
+		in: `{
+				reg: { foo: 1, bar: { baz: 3 } }
+				def :: {
+					a: 1
+	
+					sub: reg
+				}
+				val: def
+				def2 :: {
+					a: { b: int }
+				}
+				val2: def2
+			}`,
+		out: unindent(`
+			{
+				reg: {
+					foo: 1
+					bar baz: 3
+				}
+				def :: {
+					a: 1
+					sub: {
+						foo: 1
+						bar: {
+							baz: 3
+							...
+						}
+						...
+					}
+				}
+				val: close({
+					a: 1
+					sub: {
+						foo: 1
+						bar baz: 3
+					}
+				})
+				def2 :: {
+					a b: int
+				}
+				val2: close({
+					a: close({
+						b: int
+					})
+				})
+			}`),
 	}}
 	for _, tc := range testCases {
 		t.Run("", func(t *testing.T) {
@@ -766,7 +866,7 @@
 			if err != nil {
 				t.Fatal(err)
 			}
-			opts := []Option{}
+			opts := tc.opts
 			if !tc.eval {
 				opts = []Option{Raw()}
 			}
diff --git a/cue/resolve_test.go b/cue/resolve_test.go
index 9582f78..689a75b 100644
--- a/cue/resolve_test.go
+++ b/cue/resolve_test.go
@@ -1228,14 +1228,55 @@
 					`,
 		out: `<0>{` +
 			`D1 :: <1>C{env: <2>C{a: "A", b: "B"}, def :: <3>C{a: "A", b: "B"}}, ` +
-			`d1: <4>C{env: <5>C{a: "A", b: "B", c: "C"}, def :: <6>C{a: "A", b: "B"}}, ` +
-			`D2 :: <7>C{a: int, b: int}, ` +
-			`D3 :: <8>C{env: <9>C{a: "A", b: "B"}}, ` +
-			`D4 :: <10>C{env: _|_(int:field "b" not allowed in closed struct)}, ` +
-			`DC :: <11>C{a: int}` +
+			`d1: <4>C{env: _|_("C":field "c" not allowed in closed struct), def :: <5>C{a: "A", b: "B"}}, ` +
+			`D2 :: <6>C{a: int, b: int}, ` +
+			`D3 :: <7>C{env: <8>C{a: "A", b: "B"}}, ` +
+			`D4 :: <9>C{env: _|_(int:field "b" not allowed in closed struct)}, ` +
+			`DC :: <10>C{a: int}` +
 			`}`,
 	}, {
-		desc: "definitions with oneofs",
+		desc: "recursive closing starting at non-definition",
+		in: `
+			z a: {
+				B:: {
+					c d: 1
+					c f: 1
+				}
+			}
+			A: z & { a: { B :: { c e: 2 } } }
+			`,
+		out: `<0>{z: <1>{a: <2>{B :: <3>C{c: <4>C{d: 1, f: 1}}}}, A: <5>{a: <6>{B :: <7>C{c: _|_(2:field "e" not allowed in closed struct)}}}}`,
+	}, {
+		desc: "non-closed definition carries over closedness to enclosed template",
+		in: `
+		S :: {
+			<_>: { a: int }
+		}
+		a: S & {
+			v: { b: int }
+		}
+		Q :: {
+			<_>: { a: int } | { b: int }
+		}
+		b: Q & {
+			w: { c: int }
+		}
+		R :: {
+			<_>: [{ a: int }, { b: int }]
+		}
+		c: R & {
+			w: [{ d: int }, ...]
+		}
+		`,
+		out: `<0>{` +
+			`S :: <1>{<>: <2>(_: string)-><3>C{a: int}, }, ` +
+			`a: <4>{<>: <5>(_: string)-><6>C{a: int}, v: _|_(<7>{<>: <5>(_: string)-><6>C{a: int}, v: <8>{b: int}}:field "b" not allowed in closed struct)}, ` +
+			`b: <9>{<>: <10>(_: string)->(<11>C{a: int} | <12>C{b: int}), w: _|_(<13>{<>: <10>(_: string)->(<11>C{a: int} | <12>C{b: int}), w: <14>{c: int}}:empty disjunction: field "c" not allowed in closed struct)}, ` +
+			`Q :: <15>{<>: <16>(_: string)->(<17>C{a: int} | <18>C{b: int}), }, ` +
+			`c: <19>{<>: <20>(_: string)->[<21>C{a: int},<22>C{b: int}], w: [_|_((<23>{d: int} & close(<24>C{a: int})):field "d" not allowed in closed struct),<25>C{b: int}]}, ` +
+			`R :: <26>{<>: <27>(_: string)->[<28>C{a: int},<29>C{b: int}], }}`,
+	}, {
+		desc: "definitions with disjunctions",
 		in: `
 			Foo :: {
 				field: int
@@ -1245,7 +1286,7 @@
 			}
 
 			foo: Foo
-			foo: { a: 2 }
+			foo: { a: 1 }
 
 			bar: Foo
 			bar: { c: 2 }
@@ -1255,10 +1296,26 @@
 			`,
 		out: `<0>{` +
 			`Foo :: (<1>C{field: int, a: 1} | <2>C{field: int, b: 2}), ` +
-			`foo: _|_((<3>.Foo & <4>{a: 2}):empty disjunction: C{field: int, a: (1 & 2)}), ` +
-			`bar: _|_((<3>.Foo & <5>{c: 2}):empty disjunction: field "c" not allowed in closed struct), ` +
+			`foo: <3>C{field: int, a: 1}, ` +
+			`bar: _|_((<4>.Foo & <5>{c: 2}):empty disjunction: field "c" not allowed in closed struct), ` +
 			`baz: <6>C{field: int, b: 2}}`,
 	}, {
+		desc: "definitions with disjunctions recurisive",
+		in: `
+			Foo :: {
+				x: {
+					field: int
+
+					{ a: 1 } |
+					{ b: 2 }
+				}
+				x c: 3
+			}
+					`,
+		out: `<0>{` +
+			`Foo :: <1>C{x: (<2>C{field: int, a: 1, c: 3} | <3>C{field: int, b: 2, c: 3})}` +
+			`}`,
+	}, {
 		desc: "definitions with embedding",
 		in: `
 		E :: {
@@ -1282,6 +1339,26 @@
 			`e1 :: <5>C{a: _|_(4:field "d" not allowed in closed struct), b: 3}, ` +
 			`v1 :: <6>C{a: <7>C{b: int, c: 4}, b: 3}}`,
 	}, {
+		desc: "top-level definition with struct and disjunction",
+		in: `
+		def :: {
+			Type: string
+			Text: string
+			Size: int
+		}
+
+		def :: {
+			Type: "B"
+			Size: 0
+		} | {
+			Type: "A"
+			Size: 1
+		}`,
+		out: `<0>{` +
+			`def :: (<1>C{Size: (0 & int), Type: ("B" & string), Text: string} | ` +
+			`<2>C{Size: (1 & int), Type: ("A" & string), Text: string})` +
+			`}`,
+	}, {
 		desc: "closing structs",
 		in: `
 		op: {x: int}             // {x: int}
@@ -1376,7 +1453,6 @@
 		in: `
 		A :: {f1: int, f2: int}
 
-		// Comprehension fields cannot be added like any other.
 		for k, v in {f3 : int} {
 			a: A & { "\(k)": v }
 		}
@@ -1409,6 +1485,25 @@
 			`D :: <5>{f1: int, ...}` +
 			`}`,
 	}, {
+		desc: "incomplete comprehensions",
+		in: `
+		A: {
+			for v in src {
+				"\(v)": v
+			}
+			src: _
+			if true {
+				baz: "baz"
+			}
+		}
+		B: A & {
+			src: ["foo", "bar"]
+		}
+		`,
+		out: `<0>{` +
+			`A: <1>{src: _, baz: "baz" <2>for _, v in <3>.src yield <4>{""+<2>.v+"": <2>.v}}, ` +
+			`B: <5>{src: ["foo","bar"], baz: "baz", foo: "foo", bar: "bar"}}`,
+	}, {
 		desc: "reference to root",
 		in: `
 			a: { b: int }
@@ -1996,7 +2091,9 @@
 				}
 			}
 		`,
-		out: `<0>{b: true, a: "foo", c: <1>{a: 3}, d: <2>{a: int if (<2>.a > 1) yield <3>{a: 3}}}`,
+		// NOTE: the node numbers are not correct here, but this is an artifact
+		// of the testing code.
+		out: `<0>{b: true, a: "foo", c: <1>{a: 3}, d: <2>{a: int if (<3>.a > 1) yield <4>{a: 3}}}`,
 	}, {
 		desc: "referencing field in field comprehension",
 		in: `
@@ -2287,7 +2384,9 @@
 			`fibRec: <1>{` +
 			`nn: int, ` +
 			`out: (<2>.fib & <3>{n: <4>.nn}).out}, ` +
-			`fib: <5>{n: int if (<5>.n >= 2) yield <6>{out: ((<2>.fibRec & <7>{nn: (<5>.n - 2)}).out + (<2>.fibRec & <8>{nn: (<5>.n - 1)}).out)},  if (<5>.n < 2) yield <9>{out: <5>.n}}, ` +
+			// NOTE: the node numbers are not correct here, but this is an artifact
+			// of the testing code.
+			`fib: <5>{n: int if (<6>.n >= 2) yield <7>{out: ((<2>.fibRec & <8>{nn: (<6>.n - 2)}).out + (<2>.fibRec & <9>{nn: (<6>.n - 1)}).out)},  if (<6>.n < 2) yield <10>{out: <6>.n}}, ` +
 			`fib2: 1, ` +
 			`fib7: 13, ` +
 			`fib12: 144}`,
diff --git a/cue/rewrite.go b/cue/rewrite.go
index 6d13eaa..3a2b477 100644
--- a/cue/rewrite.go
+++ b/cue/rewrite.go
@@ -34,6 +34,14 @@
 	return x
 }
 
+func (x *closeIfStruct) rewrite(ctx *context, fn rewriteFunc) value {
+	v := rewrite(ctx, x.value, fn)
+	if v == x.value {
+		return x
+	}
+	return wrapFinalize(v)
+}
+
 func (x *structLit) rewrite(ctx *context, fn rewriteFunc) value {
 	emit := x.emit
 	if emit != nil {
diff --git a/cue/subsume.go b/cue/subsume.go
index 1c928e0..83cd174 100644
--- a/cue/subsume.go
+++ b/cue/subsume.go
@@ -113,7 +113,7 @@
 			}
 		}
 		// For closed structs, all arcs in b must exist in a.
-		if x.isClosed() {
+		if x.closeStatus.shouldClose() {
 			for _, b := range o.arcs {
 				a := x.lookup(ctx, b.feature)
 				if a.val() == nil {
diff --git a/cue/types.go b/cue/types.go
index 34edee1..ac7412b 100644
--- a/cue/types.go
+++ b/cue/types.go
@@ -1151,7 +1151,7 @@
 			obj.baseValue,   // baseValue
 			obj.emit,        // emit
 			obj.template,    // template
-			obj.closeStatus, // isClosed
+			obj.closeStatus, // closeStatus
 			nil,             // comprehensions
 			arcs,            // arcs
 			nil,             // attributes
diff --git a/cue/value.go b/cue/value.go
index f3cf133..17ef829 100644
--- a/cue/value.go
+++ b/cue/value.go
@@ -640,7 +640,7 @@
 	// template must evaluated to a lambda and is applied to all concrete
 	// values in the struct, whether it be open or closed.
 	template    value
-	closeStatus byte
+	closeStatus closeMode
 
 	comprehensions []value
 
@@ -649,15 +649,34 @@
 	expanded evaluated
 }
 
-func (x *structLit) isClosed() bool {
-	return x.closeStatus != 0
-}
+type closeMode byte
 
 const (
-	toClose  = 1
-	isClosed = 2
+	shouldFinalize closeMode = 1 << iota
+	toClose
+	isClosed
 )
 
+func (m closeMode) shouldFinalize() bool {
+	return m&shouldFinalize != 0
+}
+
+func (m *closeMode) unclose() {
+	*m &^= (toClose | isClosed)
+}
+
+func (m closeMode) isClosed() bool {
+	return m&isClosed != 0
+}
+
+func (m closeMode) shouldClose() bool {
+	return m >= toClose
+}
+
+func (x *structLit) isClosed() bool {
+	return x.closeStatus.isClosed()
+}
+
 func (x *structLit) addTemplate(ctx *context, pos token.Pos, t value) {
 	if x.template == nil {
 		x.template = t
@@ -667,7 +686,7 @@
 }
 
 func (x *structLit) allows(f label) bool {
-	return x.closeStatus&isClosed == 0 || f&hidden != 0
+	return !x.closeStatus.isClosed() || f&hidden != 0
 }
 
 func newStruct(src source) *structLit {
@@ -762,6 +781,7 @@
 
 		var doc *ast.Field
 		v, doc = x.applyTemplate(ctx, i, v)
+		// only place to apply template?
 
 		if (len(ctx.evalStack) > 0 && ctx.cycleErr) || cycleError(v) != nil {
 			// Don't cache while we're in a evaluation cycle as it will cache
@@ -776,11 +796,7 @@
 		// it is safe to cache the result.
 		ctx.cycleErr = false
 
-		if s, ok := v.(*structLit); ok {
-			if s.closeStatus != 0 {
-				s.closeStatus = 2
-			}
-		}
+		updateCloseStatus(v)
 		x.arcs[i].cache = v
 		if doc != nil {
 			x.arcs[i].docs = &docNode{n: doc, left: x.arcs[i].docs}
@@ -802,10 +818,6 @@
 // should not be evaluated until the other fields of a struct are
 // fully evaluated.
 func (x *structLit) expandFields(ctx *context) (st *structLit, err *bottom) {
-	if x.closeStatus == toClose {
-		x.closeStatus = isClosed
-	}
-
 	switch v := x.expanded.(type) {
 	case nil:
 	case *structLit:
@@ -822,6 +834,8 @@
 
 	comprehensions := x.comprehensions
 
+	var incomplete []value
+
 	var n evaluated = &top{x.baseValue}
 	if x.emit != nil {
 		n = x.emit.evalPartial(ctx)
@@ -829,6 +843,14 @@
 
 	for _, x := range comprehensions {
 		v := x.evalPartial(ctx)
+		if v, ok := v.(*bottom); ok {
+			if isIncomplete(v) {
+				incomplete = append(incomplete, x)
+				continue
+			}
+
+			return nil, v
+		}
 		src := binSrc(x.Pos(), opUnify, x, v)
 		n = binOp(ctx, src, opUnifyUnchecked, n, v)
 	}
@@ -838,16 +860,19 @@
 	case *bottom:
 	case *structLit:
 		orig := *x
-		orig.comprehensions = nil
+		orig.comprehensions = incomplete
 		orig.emit = nil
 		n = binOp(ctx, src, opUnifyUnchecked, &orig, n)
 
 	default:
+		if len(comprehensions) == len(incomplete) {
+			return x, nil
+		}
 		if x.emit != nil {
 			v := x.emit.evalPartial(ctx)
 			n = binOp(ctx, src, opUnifyUnchecked, v, n)
 		}
-		return nil, ctx.mkErr(x, "invalid embedding")
+		return nil, ctx.mkErr(x, n, "invalid embedding")
 	}
 
 	switch v := n.(type) {
@@ -866,7 +891,7 @@
 
 func (x *structLit) applyTemplate(ctx *context, i int, v evaluated) (evaluated, *ast.Field) {
 	if x.template != nil {
-		fn, err := evalLambda(ctx, x.template)
+		fn, err := evalLambda(ctx, x.template, x.closeStatus != 0)
 		if err != nil {
 			return err, nil
 		}
@@ -955,6 +980,46 @@
 	a.cache = nil
 }
 
+type closeIfStruct struct {
+	value
+}
+
+func wrapFinalize(v value) value {
+	if v.kind().isAnyOf(structKind | listKind) {
+		switch x := v.(type) {
+		case *top:
+			return v
+		case *structLit, *list, *disjunction:
+			updateCloseStatus(v)
+		case *closeIfStruct:
+			return x
+		}
+		return &closeIfStruct{v}
+	}
+	return v
+}
+
+func updateCloseStatus(v value) {
+	switch x := v.(type) {
+	case *structLit:
+		if x.closeStatus.shouldClose() {
+			x.closeStatus = isClosed
+		}
+		x.closeStatus |= shouldFinalize
+
+	case *disjunction:
+		for _, d := range x.values {
+			d.val = wrapFinalize(d.val)
+		}
+
+	case *list:
+		wrapFinalize(x.elem)
+		if x.typ != nil {
+			wrapFinalize(x.typ)
+		}
+	}
+}
+
 // insertValue is used during initialization but never during evaluation.
 func (x *structLit) insertValue(ctx *context, f label, optional, isDef bool, value value, a *attributes, docs *docNode) {
 	for i, p := range x.arcs {
@@ -1510,6 +1575,6 @@
 		if k := source.kind(); k&(structKind|listKind) == bottomKind {
 			return ctx.mkErr(x, x.source, "feed source must be list or struct, found %s", k)
 		}
-		return ctx.mkErr(x, "feed source not fully evaluated to struct or list")
+		return ctx.mkErr(x, x.source, codeIncomplete, "incomplete feed source")
 	}
 }
diff --git a/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/apps/v1beta1/types_go_gen.cue b/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/apps/v1beta1/types_go_gen.cue
index fd4c052..f49b235 100644
--- a/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/apps/v1beta1/types_go_gen.cue
+++ b/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/apps/v1beta1/types_go_gen.cue
@@ -44,7 +44,6 @@
 // Scale represents a scaling request for a resource.
 Scale :: {
 	metav1.TypeMeta
-
 	// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.
 	// +optional
 	metadata?: metav1.ObjectMeta @go(ObjectMeta) @protobuf(1,bytes,opt)
@@ -68,7 +67,6 @@
 // map to the same storage identity.
 StatefulSet :: {
 	metav1.TypeMeta
-
 	// +optional
 	metadata?: metav1.ObjectMeta @go(ObjectMeta) @protobuf(1,bytes,opt)
 
@@ -270,7 +268,6 @@
 // StatefulSetList is a collection of StatefulSets.
 StatefulSetList :: {
 	metav1.TypeMeta
-
 	// +optional
 	metadata?: metav1.ListMeta @go(ListMeta) @protobuf(1,bytes,opt)
 	items: [...StatefulSet] @go(Items,[]StatefulSet) @protobuf(2,bytes,rep)
@@ -281,7 +278,6 @@
 // Deployment enables declarative updates for Pods and ReplicaSets.
 Deployment :: {
 	metav1.TypeMeta
-
 	// Standard object metadata.
 	// +optional
 	metadata?: metav1.ObjectMeta @go(ObjectMeta) @protobuf(1,bytes,opt)
@@ -349,7 +345,6 @@
 // DeploymentRollback stores the information required to rollback a deployment.
 DeploymentRollback :: {
 	metav1.TypeMeta
-
 	// Required: This must match the Name of a deployment.
 	name: string @go(Name) @protobuf(1,bytes,opt)
 
@@ -515,7 +510,6 @@
 // DeploymentList is a list of Deployments.
 DeploymentList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// +optional
 	metadata?: metav1.ListMeta @go(ListMeta) @protobuf(1,bytes,opt)
@@ -537,7 +531,6 @@
 // depend on its stability. It is primarily for internal use by controllers.
 ControllerRevision :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -553,7 +546,6 @@
 // ControllerRevisionList is a resource containing a list of ControllerRevision objects.
 ControllerRevisionList :: {
 	metav1.TypeMeta
-
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
 	metadata?: metav1.ListMeta @go(ListMeta) @protobuf(1,bytes,opt)
diff --git a/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/core/v1/types_go_gen.cue b/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/core/v1/types_go_gen.cue
index 8aed250..fcd6299 100644
--- a/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/core/v1/types_go_gen.cue
+++ b/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/core/v1/types_go_gen.cue
@@ -28,7 +28,6 @@
 	name: string @go(Name) @protobuf(1,bytes,opt)
 
 	VolumeSource
-
 }
 
 // Represents the source of a volume to mount.
@@ -304,7 +303,6 @@
 // More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
 PersistentVolume :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -435,7 +433,6 @@
 // PersistentVolumeList is a list of PersistentVolume items.
 PersistentVolumeList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -449,7 +446,6 @@
 // PersistentVolumeClaim is a user's request for and claim to a persistent volume
 PersistentVolumeClaim :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -470,7 +466,6 @@
 // PersistentVolumeClaimList is a list of PersistentVolumeClaim items.
 PersistentVolumeClaimList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -1266,7 +1261,6 @@
 // mode.
 SecretProjection :: {
 	LocalObjectReference
-
 	// If unspecified, each key-value pair in the Data field of the referenced
 	// Secret will be projected into the volume as a file whose name is the
 	// key and content is the value. If specified, the listed keys will be
@@ -1735,7 +1729,6 @@
 // ConfigMap volumes support ownership management and SELinux relabeling.
 ConfigMapVolumeSource :: {
 	LocalObjectReference
-
 	// If unspecified, each key-value pair in the Data field of the referenced
 	// ConfigMap will be projected into the volume as a file whose name is the
 	// key and content is the value. If specified, the listed keys will be
@@ -1770,7 +1763,6 @@
 // mode.
 ConfigMapProjection :: {
 	LocalObjectReference
-
 	// If unspecified, each key-value pair in the Data field of the referenced
 	// ConfigMap will be projected into the volume as a file whose name is the
 	// key and content is the value. If specified, the listed keys will be
@@ -2030,7 +2022,6 @@
 	// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
 	// Defaults to "" (volume's root).
 	// SubPathExpr and SubPath are mutually exclusive.
-	// This field is beta in 1.15.
 	// +optional
 	subPathExpr?: string @go(SubPathExpr) @protobuf(6,bytes,opt)
 }
@@ -2143,7 +2134,6 @@
 // Selects a key from a ConfigMap.
 ConfigMapKeySelector :: {
 	LocalObjectReference
-
 	// The key to select.
 	key: string @go(Key) @protobuf(2,bytes,opt)
 
@@ -2155,7 +2145,6 @@
 // SecretKeySelector selects a key of a Secret.
 SecretKeySelector :: {
 	LocalObjectReference
-
 	// The key of the secret to select from.  Must be a valid secret key.
 	key: string @go(Key) @protobuf(2,bytes,opt)
 
@@ -2186,7 +2175,6 @@
 // key-value pairs as environment variables.
 ConfigMapEnvSource :: {
 	LocalObjectReference
-
 	// Specify whether the ConfigMap must be defined
 	// +optional
 	optional?: null | bool @go(Optional,*bool) @protobuf(2,varint,opt)
@@ -2199,7 +2187,6 @@
 // key-value pairs as environment variables.
 SecretEnvSource :: {
 	LocalObjectReference
-
 	// Specify whether the Secret must be defined
 	// +optional
 	optional?: null | bool @go(Optional,*bool) @protobuf(2,varint,opt)
@@ -2280,7 +2267,6 @@
 // alive or ready to receive traffic.
 Probe :: {
 	Handler
-
 	// Number of seconds after the container has started before liveness probes are initiated.
 	// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
 	// +optional
@@ -3784,7 +3770,6 @@
 // This is an alpha feature enabled by the EphemeralContainers feature flag.
 EphemeralContainer :: {
 	EphemeralContainerCommon
-
 	// If set, the name of the container from PodSpec that this ephemeral container targets.
 	// The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container.
 	// If not set then the ephemeral container is run in whatever namespaces are shared
@@ -3893,7 +3878,6 @@
 // PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded
 PodStatusResult :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -3912,7 +3896,6 @@
 // by clients and scheduled onto hosts.
 Pod :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -3935,7 +3918,6 @@
 // PodList is a list of Pods.
 PodList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -3962,7 +3944,6 @@
 // PodTemplate describes a template for creating copies of a predefined pod.
 PodTemplate :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -3977,7 +3958,6 @@
 // PodTemplateList is a list of PodTemplates.
 PodTemplateList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -4081,7 +4061,6 @@
 // ReplicationController represents the configuration of a replication controller.
 ReplicationController :: {
 	metav1.TypeMeta
-
 	// If the Labels of a ReplicationController are empty, they are defaulted to
 	// be the same as the Pod(s) that the replication controller manages.
 	// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
@@ -4105,7 +4084,6 @@
 // ReplicationControllerList is a collection of replication controllers.
 ReplicationControllerList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -4402,7 +4380,6 @@
 // will answer requests sent through the proxy.
 Service :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -4428,7 +4405,6 @@
 // ServiceList holds a list of services.
 ServiceList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -4444,7 +4420,6 @@
 // * a set of secrets
 ServiceAccount :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -4473,7 +4448,6 @@
 // ServiceAccountList is a list of ServiceAccount objects
 ServiceAccountList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -4498,7 +4472,6 @@
 //  ]
 Endpoints :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -4587,7 +4560,6 @@
 // EndpointsList is a list of endpoints.
 EndpointsList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -5028,7 +5000,6 @@
 // Each node will have a unique identifier in the cache (i.e. in etcd).
 Node :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -5050,7 +5021,6 @@
 // NodeList is the whole list of all Nodes which have been registered with master.
 NodeList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -5148,7 +5118,6 @@
 // Use of multiple namespaces is optional.
 Namespace :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -5168,7 +5137,6 @@
 // NamespaceList is a list of Namespaces.
 NamespaceList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -5183,7 +5151,6 @@
 // Deprecated in 1.7, please use the bindings subresource of pods instead.
 Binding :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -5196,7 +5163,6 @@
 // A list of ephemeral containers used with the Pod ephemeralcontainers subresource.
 EphemeralContainers :: {
 	metav1.TypeMeta
-
 	// +optional
 	metadata?: metav1.ObjectMeta @go(ObjectMeta) @protobuf(1,bytes,opt)
 
@@ -5219,7 +5185,6 @@
 // PodLogOptions is the query options for a Pod's logs REST call.
 PodLogOptions :: {
 	metav1.TypeMeta
-
 	// The container for which to stream logs. Defaults to only container if there is one container in the pod.
 	// +optional
 	container?: string @go(Container) @protobuf(1,bytes,opt)
@@ -5269,7 +5234,6 @@
 // and also when we cut V2, we should export a "StreamOptions" or somesuch that contains Stdin, Stdout, Stder and TTY
 PodAttachOptions :: {
 	metav1.TypeMeta
-
 	// Stdin if true, redirects the standard input stream of the pod for this call.
 	// Defaults to false.
 	// +optional
@@ -5304,7 +5268,6 @@
 // and also when we cut V2, we should export a "StreamOptions" or somesuch that contains Stdin, Stdout, Stder and TTY
 PodExecOptions :: {
 	metav1.TypeMeta
-
 	// Redirect the standard input stream of the pod for this call.
 	// Defaults to false.
 	// +optional
@@ -5342,7 +5305,6 @@
 // to be passed in the `port` header as part of request.
 PodPortForwardOptions :: {
 	metav1.TypeMeta
-
 	// List of ports to forward
 	// Required when using WebSockets
 	// +optional
@@ -5352,7 +5314,6 @@
 // PodProxyOptions is the query options to a Pod's proxy call.
 PodProxyOptions :: {
 	metav1.TypeMeta
-
 	// Path is the URL path to use for the current proxy request to pod.
 	// +optional
 	path?: string @go(Path) @protobuf(1,bytes,opt)
@@ -5361,7 +5322,6 @@
 // NodeProxyOptions is the query options to a Node's proxy call.
 NodeProxyOptions :: {
 	metav1.TypeMeta
-
 	// Path is the URL path to use for the current proxy request to node.
 	// +optional
 	path?: string @go(Path) @protobuf(1,bytes,opt)
@@ -5370,7 +5330,6 @@
 // ServiceProxyOptions is the query options to a Service's proxy call.
 ServiceProxyOptions :: {
 	metav1.TypeMeta
-
 	// Path is the part of URLs that include service endpoints, suffixes,
 	// and parameters to use for the current proxy request to service.
 	// For example, the whole request URL is
@@ -5453,7 +5412,6 @@
 // SerializedReference is a reference to serialized object.
 SerializedReference :: {
 	metav1.TypeMeta
-
 	// The reference to an object in the system.
 	// +optional
 	reference?: ObjectReference @go(Reference) @protobuf(1,bytes,opt)
@@ -5479,7 +5437,6 @@
 // Event is a report of an event somewhere in the cluster.
 Event :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	metadata: metav1.ObjectMeta @go(ObjectMeta) @protobuf(1,bytes,opt)
@@ -5571,7 +5528,6 @@
 // EventList is a list of events.
 EventList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -5637,7 +5593,6 @@
 // LimitRange sets resource usage limits for each kind of resource in a Namespace.
 LimitRange :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -5652,7 +5607,6 @@
 // LimitRangeList is a list of LimitRange items.
 LimitRangeList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -5818,7 +5772,6 @@
 // ResourceQuota sets aggregate quota restrictions enforced per namespace
 ResourceQuota :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -5838,7 +5791,6 @@
 // ResourceQuotaList is a list of ResourceQuota items.
 ResourceQuotaList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -5853,7 +5805,6 @@
 // the Data field must be less than MaxSecretSize bytes.
 Secret :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -5986,7 +5937,6 @@
 // SecretList is a list of Secret.
 SecretList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -6000,7 +5950,6 @@
 // ConfigMap holds configuration data for pods to consume.
 ConfigMap :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -6028,7 +5977,6 @@
 // ConfigMapList is a resource containing a list of ConfigMap objects.
 ConfigMapList :: {
 	metav1.TypeMeta
-
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
 	metadata?: metav1.ListMeta @go(ListMeta) @protobuf(1,bytes,opt)
@@ -6069,7 +6017,6 @@
 // ComponentStatus (and ComponentStatusList) holds the cluster validation info.
 ComponentStatus :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -6085,7 +6032,6 @@
 // Status of all the conditions for the component as a list of ComponentStatus objects.
 ComponentStatusList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -6278,7 +6224,6 @@
 // RangeAllocation is not a public type.
 RangeAllocation :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
diff --git a/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/extensions/v1beta1/types_go_gen.cue b/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/extensions/v1beta1/types_go_gen.cue
index 83308fd..bcf4692 100644
--- a/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/extensions/v1beta1/types_go_gen.cue
+++ b/doc/tutorial/kubernetes/quick/pkg/k8s.io/api/extensions/v1beta1/types_go_gen.cue
@@ -39,7 +39,6 @@
 // represents a scaling request for a resource.
 Scale :: {
 	metav1.TypeMeta
-
 	// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata.
 	// +optional
 	metadata?: metav1.ObjectMeta @go(ObjectMeta) @protobuf(1,bytes,opt)
@@ -56,7 +55,6 @@
 // Dummy definition
 ReplicationControllerDummy :: {
 	metav1.TypeMeta
-
 }
 
 // DEPRECATED - This group version of Deployment is deprecated by apps/v1beta2/Deployment. See the release notes for
@@ -64,7 +62,6 @@
 // Deployment enables declarative updates for Pods and ReplicaSets.
 Deployment :: {
 	metav1.TypeMeta
-
 	// Standard object metadata.
 	// +optional
 	metadata?: metav1.ObjectMeta @go(ObjectMeta) @protobuf(1,bytes,opt)
@@ -135,7 +132,6 @@
 // DeploymentRollback stores the information required to rollback a deployment.
 DeploymentRollback :: {
 	metav1.TypeMeta
-
 	// Required: This must match the Name of a deployment.
 	name: string @go(Name) @protobuf(1,bytes,opt)
 
@@ -301,7 +297,6 @@
 // DeploymentList is a list of Deployments.
 DeploymentList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// +optional
 	metadata?: metav1.ListMeta @go(ListMeta) @protobuf(1,bytes,opt)
@@ -479,7 +474,6 @@
 // DaemonSet represents the configuration of a daemon set.
 DaemonSet :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -513,7 +507,6 @@
 // DaemonSetList is a collection of daemon sets.
 DaemonSetList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -530,7 +523,6 @@
 // DEPRECATED - This group version of Ingress is deprecated by networking.k8s.io/v1beta1 Ingress. See the release notes for more information.
 Ingress :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -550,7 +542,6 @@
 // IngressList is a collection of Ingress.
 IngressList :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -628,7 +619,6 @@
 	host?: string @go(Host) @protobuf(1,bytes,opt)
 
 	IngressRuleValue
-
 }
 
 // IngressRuleValue represents a rule to apply against incoming requests. If the
@@ -682,7 +672,6 @@
 // ReplicaSet ensures that a specified number of pod replicas are running at any given time.
 ReplicaSet :: {
 	metav1.TypeMeta
-
 	// If the Labels of a ReplicaSet are empty, they are defaulted to
 	// be the same as the Pod(s) that the ReplicaSet manages.
 	// Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
@@ -706,7 +695,6 @@
 // ReplicaSetList is a collection of ReplicaSets.
 ReplicaSetList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -811,7 +799,6 @@
 // Deprecated: use PodSecurityPolicy from policy API Group instead.
 PodSecurityPolicy :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -1237,7 +1224,6 @@
 // Deprecated: use PodSecurityPolicyList from policy API Group instead.
 PodSecurityPolicyList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -1251,7 +1237,6 @@
 // NetworkPolicy describes what network traffic is allowed for a set of Pods
 NetworkPolicy :: {
 	metav1.TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -1424,7 +1409,6 @@
 // Network Policy List is a list of NetworkPolicy objects.
 NetworkPolicyList :: {
 	metav1.TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
diff --git a/doc/tutorial/kubernetes/quick/pkg/k8s.io/apimachinery/pkg/apis/meta/v1/types_go_gen.cue b/doc/tutorial/kubernetes/quick/pkg/k8s.io/apimachinery/pkg/apis/meta/v1/types_go_gen.cue
index 9881cfa..07bd4d8 100644
--- a/doc/tutorial/kubernetes/quick/pkg/k8s.io/apimachinery/pkg/apis/meta/v1/types_go_gen.cue
+++ b/doc/tutorial/kubernetes/quick/pkg/k8s.io/apimachinery/pkg/apis/meta/v1/types_go_gen.cue
@@ -314,7 +314,6 @@
 // ListOptions is the query options to a standard REST list call.
 ListOptions :: {
 	TypeMeta
-
 	// A selector to restrict the list of returned objects by their labels.
 	// Defaults to everything.
 	// +optional
@@ -397,7 +396,6 @@
 // Deprecated. Planned for removal in 1.18.
 ExportOptions :: {
 	TypeMeta
-
 	// Should this value be exported.  Export strips fields that a user can not specify.
 	// Deprecated. Planned for removal in 1.18.
 	export: bool @go(Export) @protobuf(1,varint,opt)
@@ -410,7 +408,6 @@
 // GetOptions is the standard query options to the standard REST get call.
 GetOptions :: {
 	TypeMeta
-
 	// When specified:
 	// - if unset, then the result is returned from remote storage based on quorum-read flag;
 	// - if it's 0, then we simply return what we currently have in cache, no guarantee;
@@ -448,7 +445,6 @@
 // DeleteOptions may be provided when deleting an API object.
 DeleteOptions :: {
 	TypeMeta
-
 	// The duration in seconds before the object should be deleted. Value must be non-negative integer.
 	// The value zero indicates delete immediately. If this value is nil, the default grace period for the
 	// specified type will be used.
@@ -491,7 +487,6 @@
 // CreateOptions may be provided when creating an API object.
 CreateOptions :: {
 	TypeMeta
-
 	// When present, indicates that modifications should not be
 	// persisted. An invalid or unrecognized dryRun directive will
 	// result in an error response and no further processing of the
@@ -512,7 +507,6 @@
 // PatchOptions is meant to be a superset of UpdateOptions.
 PatchOptions :: {
 	TypeMeta
-
 	// When present, indicates that modifications should not be
 	// persisted. An invalid or unrecognized dryRun directive will
 	// result in an error response and no further processing of the
@@ -542,7 +536,6 @@
 // All fields in UpdateOptions should also be present in PatchOptions.
 UpdateOptions :: {
 	TypeMeta
-
 	// When present, indicates that modifications should not be
 	// persisted. An invalid or unrecognized dryRun directive will
 	// result in an error response and no further processing of the
@@ -573,7 +566,6 @@
 // Status is a return value for calls that don't return other objects.
 Status :: {
 	TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -894,7 +886,6 @@
 // List holds a list of objects, which may not be known by the server.
 List :: {
 	TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -911,7 +902,6 @@
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 APIVersions :: {
 	TypeMeta
-
 	// versions are the api versions that are available.
 	versions: [...string] @go(Versions,[]string) @protobuf(1,bytes,rep)
 
@@ -929,7 +919,6 @@
 // /apis.
 APIGroupList :: {
 	TypeMeta
-
 	// groups is a list of APIGroup.
 	groups: [...APIGroup] @go(Groups,[]APIGroup) @protobuf(1,bytes,rep)
 }
@@ -938,7 +927,6 @@
 // of a group.
 APIGroup :: {
 	TypeMeta
-
 	// name is the name of the group.
 	name: string @go(Name) @protobuf(1,bytes,opt)
 
@@ -1038,7 +1026,6 @@
 // is namespaced.
 APIResourceList :: {
 	TypeMeta
-
 	// groupVersion is the group and version this APIResourceList is for.
 	groupVersion: string @go(GroupVersion) @protobuf(1,bytes,opt)
 
@@ -1164,7 +1151,6 @@
 // +protobuf=false
 Table :: {
 	TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
@@ -1292,7 +1278,6 @@
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 TableOptions :: {
 	TypeMeta
-
 	// includeObject decides whether to include each object along with its columnar information.
 	// Specifying "None" will return no object, specifying "Object" will return the full object contents, and
 	// specifying "Metadata" (the default) will return the object's metadata in the PartialObjectMetadata kind
@@ -1305,7 +1290,6 @@
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 PartialObjectMetadata :: {
 	TypeMeta
-
 	// Standard object's metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
 	// +optional
@@ -1316,7 +1300,6 @@
 // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
 PartialObjectMetadataList :: {
 	TypeMeta
-
 	// Standard list metadata.
 	// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
 	// +optional
diff --git a/doc/tutorial/kubernetes/testdata/manual.out b/doc/tutorial/kubernetes/testdata/manual.out
index 58b85a0..7f4563d 100644
--- a/doc/tutorial/kubernetes/testdata/manual.out
+++ b/doc/tutorial/kubernetes/testdata/manual.out
@@ -31,7 +31,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -81,7 +113,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -248,7 +312,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -417,7 +513,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -584,7 +712,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -751,7 +911,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -920,7 +1112,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -1087,7 +1311,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -1256,7 +1512,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -1306,7 +1594,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -1459,7 +1779,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -1785,7 +2137,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -1857,8 +2241,13 @@
                                 name:          "grpc"
                                 containerPort: 7788
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-volume"
+                                mountPath: "/etc/ssl"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "secret-volume"
@@ -2007,7 +2396,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -2082,8 +2503,13 @@
                                 name:          "https"
                                 containerPort: 7443
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-volume"
+                                mountPath: "/etc/ssl"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "secret-volume"
@@ -2204,7 +2630,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -2273,8 +2731,13 @@
                                 name:          "http"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-updater"
+                                mountPath: "/etc/certs"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "secret-updater"
@@ -2375,7 +2838,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -2449,8 +2944,13 @@
                                 name:          "https"
                                 containerPort: 7788
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-volume"
+                                mountPath: "/etc/ssl"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "secret-volume"
@@ -2562,7 +3062,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -2612,7 +3144,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -2634,7 +3198,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -2690,10 +3274,27 @@
                                 name:          "client"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "ssd-caller"
+                                mountPath: "/logs"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "secret-ssh-key"
+                                mountPath: "/sslcerts"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "secret-caller"
+                                mountPath: "/etc/certs"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             livenessProbe: {
                                 httpGet: {
                                     path: "/debug/health"
@@ -2864,7 +3465,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -2886,7 +3519,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -2942,10 +3595,27 @@
                                 name:          "client"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-ssh-key"
+                                mountPath: "/sslcerts"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "dishwasher-disk"
+                                mountPath: "/logs"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "secret-dishwasher"
+                                mountPath: "/etc/certs"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             livenessProbe: {
                                 httpGet: {
                                     path: "/debug/health"
@@ -3113,7 +3783,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -3135,7 +3837,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -3191,9 +3913,20 @@
                                 name:          "client"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "expiditer-disk"
+                                mountPath: "/logs"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "secret-expiditer"
+                                mountPath: "/etc/certs"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             livenessProbe: {
                                 httpGet: {
                                     path: "/debug/health"
@@ -3346,7 +4079,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -3368,7 +4133,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -3424,9 +4209,20 @@
                                 name:          "client"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-headchef"
+                                mountPath: "/sslcerts"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "headchef-disk"
+                                mountPath: "/logs"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             livenessProbe: {
                                 httpGet: {
                                     path: "/debug/health"
@@ -3578,7 +4374,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -3600,7 +4428,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -3656,9 +4504,20 @@
                                 name:          "client"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-kitchen"
+                                mountPath: "/etc/certs"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "linecook-disk"
+                                mountPath: "/logs"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             livenessProbe: {
                                 httpGet: {
                                     path: "/debug/health"
@@ -3814,7 +4673,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -3836,7 +4727,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -3892,9 +4803,20 @@
                                 name:          "client"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-ssh-key"
+                                mountPath: "/etc/certs"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "pastrychef-disk"
+                                mountPath: "/logs"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             livenessProbe: {
                                 httpGet: {
                                     path: "/debug/health"
@@ -4050,7 +4972,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -4072,7 +5026,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -4244,7 +5218,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -4266,7 +5272,27 @@
         "event-server": "events:7788"
         logdir:         "/logs"
     }
-    volume: _|_ // incomplete
+    volume: {
+        "\(name)-disk": {
+            name:      string
+            mountPath: "/logs"
+            spec: {
+                gcePersistentDisk: {
+                    pdName: *name | string
+                    fsType: "ext4"
+                }
+            }
+        }
+        "secret-\(name)": {
+            mountPath: "/etc/certs"
+            readOnly:  true
+            spec: {
+                secret: {
+                    secretName: *"\(name)-secrets" | string
+                }
+            }
+        }
+    }
 }
 
 
@@ -4303,7 +5329,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -4383,9 +5441,19 @@
                                 name:          "alertmanager"
                                 containerPort: 9093
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "alertmanager"
+                                mountPath: "/alertmanager"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "config-volume"
+                                mountPath: "/etc/alertmanager"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "alertmanager"
@@ -4560,7 +5628,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -4642,8 +5742,13 @@
                                 name:          "web"
                                 containerPort: 8080
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "grafana-volume"
+                                mountPath: "/var/lib/grafana"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             resources: {
                                 requests: {
                                     cpu:    "100m"
@@ -4786,7 +5891,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -4864,9 +6001,21 @@
                                 containerPort: 9100
                                 hostPort:      9100
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                _|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "proc"
+                                mountPath: "/host/proc"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "sys"
+                                mountPath: "/host/sys"
+                                readOnly:  true
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                             resources: {
                                 requests: {
                                     cpu:    "100m"
@@ -5022,7 +6171,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -5103,8 +6284,13 @@
                                 name:          "web"
                                 containerPort: 9090
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "config-volume"
+                                mountPath: "/etc/prometheus"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "config-volume"
@@ -5714,7 +6900,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -5764,7 +6982,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -5833,8 +7083,13 @@
                                 name:          "client"
                                 containerPort: 4180
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "config-volume"
+                                mountPath: "/etc/authproxy"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "config-volume"
@@ -6055,7 +7310,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -6130,8 +7417,13 @@
                                 name:          "https"
                                 containerPort: 7443
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                            ]
+                            volumeMounts: [{
+                                name:      "secret-volume"
+                                mountPath: "/etc/ssl"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }]
                         }]
                         volumes: [{
                             name: "secret-volume"
@@ -6241,7 +7533,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
@@ -6319,12 +7643,17 @@
                                 name:          "https"
                                 containerPort: 443
                             }]
-                            volumeMounts: [_|_, // non-concrete value bool
-                                                {
-                                    name:      "config-volume"
-                                    mountPath: "/etc/nginx/nginx.conf"
-                                    subPath:   "nginx.conf"
-                                }]
+                            volumeMounts: [{
+                                name:      "secret-volume"
+                                mountPath: "/etc/ssl"
+                                if false | true {
+                                    subPath: null
+                                }
+                            }, {
+                                name:      "config-volume"
+                                mountPath: "/etc/nginx/nginx.conf"
+                                subPath:   "nginx.conf"
+                            }]
                         }]
                         volumes: [{
                             name: "secret-volume"
@@ -6856,7 +8185,39 @@
         kubernetes: {
             spec: {
                 template: {
-                    spec: _|_ // undefined field "volume"
+                    spec: {
+                        containers: [{
+                            name:  X.name
+                            image: X.image
+                            args:  X.args
+                            ports: [ {
+                                name:          k
+                                containerPort: p
+                            } for k, p in X.expose.port & X.port ]
+                            if len(X.envSpec) > 0 {
+                                env: [ {
+                                    name: k
+                                } & v for k, v in X.envSpec ]
+                            }
+                            if len(X.volume) > 0 {
+                                volumeMounts: [ {
+                                    name:      v.name
+                                    mountPath: v.mountPath
+                                    if v.subPath != null | true {
+                                        subPath: v.subPath
+                                    }
+                                    if v.readOnly {
+                                        readOnly: v.readOnly
+                                    }
+                                } for v in X.volume ]
+                            }
+                        }]
+                        if len(X.volume) > 0 {
+                            volumes: [ v.kubernetes & {
+                                name: v.name
+                            } for v in X.volume ]
+                        }
+                    }
                     metadata: {
                         labels: X.label
                     }
