| // Any port has the following properties. |
| selector: metadata.labels // we want those to be the same |
| daemonSet <Name>: _spec & { |
| apiVersion: "extensions/v1beta1" |
| statefulSet <Name>: _spec & { |
| apiVersion: "apps/v1beta1" |
| deployment <Name>: _spec & { |
| apiVersion: "extensions/v1beta1" |
| metadata labels component: _component |
| metadata labels component: _component |
| spec containers: [{name: _name}] |
| // Define the _export option and set the default to true |
| // for all ports defined in all containers. |
| _spec spec template spec containers: [...{ |
| _export: *true | false // include the port in the service |
| spec selector: v.spec.template.metadata.labels |
| Port = p.containerPort // Port is an alias |
| } for c in v.spec.template.spec.containers |
| } for x in [deployment, daemonSet, statefulSet] for k, v in x |