-- in.cue --
package kube
service: "node-exporter": {
	spec: {
		ports: [{
			name:     "metrics"
			port:     9100
			protocol: "TCP"
		}]
	}
}
deployment: "node-exporter": {
	spec: template: {
		spec: {
			containers: [{
				ports: [{
					containerPort: 9100
					name:          "scrape"
				}]
			}]
		}
	}
}
service: [ID=string]: {
	spec: {
		ports: [...{
			port:     int
			protocol: *"TCP" | "UDP"
			name:     string | *"client"
		}]
	}
}
deployment: [ID=string]: { }
deployment: [ID=_]: _spec & {}
_spec: {
	_name: string
	spec: template: {
		spec: containers: [{name: _name}]
	}
}
_spec: spec: template: spec: containers: [...{
	ports: [...{
		_export: *true | false // include the port in the service
	}]
}]
for k, v in deployment {
	service: "\(k)": {
		spec: selector: v.spec.template.metadata.labels
		spec: ports: [
			for c in v.spec.template.spec.containers
			for p in c.ports
			if p._export {
				let Port = p.containerPort // Port is an alias
				port:       *Port | int
				targetPort: *Port | int
			},
		]
	}
}
-- out/eval --
(struct){
  service: (struct){
    "node-exporter": (struct){
      spec: (struct){
        ports: (#list){
          0: (struct){
            name: (string){ "metrics" }
            port: (int){ 9100 }
            protocol: (string){ "TCP" }
            targetPort: (int){ |(*(int){ 9100 }, (int){ int }) }
          }
        }
        selector: (_|_){
          // [incomplete] service."node-exporter".spec.selector: undefined field metadata:
          //     ./in.cue:47:35
        }
      }
    }
  }
  deployment: (struct){
    "node-exporter": (struct){
      spec: (struct){
        template: (struct){
          spec: (struct){
            containers: (#list){
              0: (struct){
                ports: (#list){
                  0: (struct){
                    containerPort: (int){ 9100 }
                    name: (string){ "scrape" }
                    _export(:kube): (bool){ |(*(bool){ true }, (bool){ false }) }
                  }
                }
                name: (string){ string }
              }
            }
          }
        }
      }
      _name(:kube): (string){ string }
    }
  }
  _spec(:kube): (struct){
    _name(:kube): (string){ string }
    spec: (struct){
      template: (struct){
        spec: (struct){
          containers: (#list){
            0: (struct){
              name: (string){ string }
              ports: (list){
              }
            }
          }
        }
      }
    }
  }
}
-- out/compile --
--- in.cue
{
  service: {
    "node-exporter": {
      spec: {
        ports: [
          {
            name: "metrics"
            port: 9100
            protocol: "TCP"
          },
        ]
      }
    }
  }
  deployment: {
    "node-exporter": {
      spec: {
        template: {
          spec: {
            containers: [
              {
                ports: [
                  {
                    containerPort: 9100
                    name: "scrape"
                  },
                ]
              },
            ]
          }
        }
      }
    }
  }
  service: {
    [string]: {
      spec: {
        ports: [
          ...{
            port: int
            protocol: (*"TCP"|"UDP")
            name: (string|*"client")
          },
        ]
      }
    }
  }
  deployment: {
    [string]: {}
  }
  deployment: {
    [_]: (〈1;_spec〉 & {})
  }
  _spec: {
    _name: string
    spec: {
      template: {
        spec: {
          containers: [
            {
              name: 〈4;_name〉
            },
          ]
        }
      }
    }
  }
  _spec: {
    spec: {
      template: {
        spec: {
          containers: [
            ...{
              ports: [
                ...{
                  _export: (*true|false)
                },
              ]
            },
          ]
        }
      }
    }
  }
  for k, v in 〈0;deployment〉 {
    service: {
      "\(〈2;k〉)": {
        spec: {
          selector: 〈4;v〉.spec.template.metadata.labels
        }
        spec: {
          ports: [
            for _, c in 〈4;v〉.spec.template.spec.containers for _, p in 〈0;c〉.ports if 〈0;p〉._export {
              port: (*〈0;let Port〉|int)
              targetPort: (*〈0;let Port〉|int)
            },
          ]
        }
      }
    }
  }
}
