package kube

// _base defines settings that apply to all cloud objects
_base: {
	name: string

	label <Key>: string

	// k8s is a set of Kubernetes-specific settings that will be merged in at
	// the top-level. The allowed fields are type specfic.
	kubernetes: {}
}

deployment <Name>: _base & {
	// Allow any string, but take Name by default.
	name:     string | *Name
	kind:     *"deployment" | "stateful" | "daemon"
	replicas: int | *1

	image: string

	// expose port defines named ports that is exposed in the service
	expose port <N>: int

	// port defines named ports that is not exposed in the service.
	port <N>: int

	arg <Key>: string
	args: [ "-\(k)=\(v)" for k, v in arg ] | [...string]

	// Environment variables
	env <Key>: string

	envSpec <Key>: {}
	envSpec: {"\(k)" value: v for k, v in env}

	volume <Name>: {
		name:      string | *Name
		mountPath: string
		subPath:   string | *null
		readOnly:  *false | true
		kubernetes: {}
	}
}

service <Name>: _base & {
	name: *Name | string

	port <Name>: {
		name: string | *Name

		port:     int
		protocol: *"TCP" | "UDP"
	}

	kubernetes: {}
}

configMap <Name>: {
}

// define services implied by deployments
service "\(k)": {

	// Copy over all ports exposed from containers.
	port "\(Name)": {
		// Set default external port to Port. targetPort must be
		// the respective containerPort (Port) if it differs from port.
		port:       int | *Port
		targetPort: Port if port != Port
	} for Name, Port in spec.expose.port

	// Copy over the labels
	label: spec.label

} for k, spec in deployment if len(spec.expose.port) > 0
