For an on-paved road service, this is the only file in their deployment repo:
```yaml
apiVersion: mycompany.com/v1alpha1
kind: WebService
metadata:
name: my-service
spec:
version: 13 # helm chart version
# everything here goes into values.yaml
values: # This is NOT an untyped object. The fields are defined and enforced with a JSON schema.
# This is all stuff I pulled from the onboarding script. Maybe we need it, maybe we don't.
artifactName:
artifactEndpoint:
registry:
assetId:
assetAlias:
l1:
l2:
mesh:
port:
sidecarPort:
policyId:
excludeInboundPorts:
excludeOutboundIpRanges:
kubernetesServiceName: # Default is {baseArtifactId}-desired-service
environmentOverrides:
- name: e2e
version: 14
values:
# All the fields from the top level spec.values, except environmentOverrides, can be overridden here.
# The following additional fields are only available as environment overrides.
# This stuff ends up in values-e2e.yaml
ingressEndpoint:
cluster:
namespace:
region:
iksType:
offPavedRoadKustomization:
- reason: "Can't do the Mesh thing I wanted to do."
patches:
# You get the entire kustomization spec, minus `helmCharts`.
- patch:
- name: prd
---
apiVersion: mycompany.com/v1alpha1
kind: CronJob
```
If you run a CLI with the Service yaml as an input, we prepare the following files...
```shell
$ service-render --help
Commands:
prepare - does all the steps that happen before running `kustomize build`
build {env} - renders manifests for the given env
build {env} --exclude-off-paved-road-patches - renders everything, but leaves off the paved road patches
build {env} --diff-off-paved-road-patches - renders with patches and then with patches, prints the diff
```
```shell
service-render prepare -i service.yaml
```
You get a directory tree like this:
```
service.yaml
e2e/
kustomization.yaml
values.yaml
values-e2e.yaml
prd/
kustomization.yaml
values.yaml
values-prd.yaml
```
/e2e/kustomization.yaml:
```yaml
# we write a kustomization.yaml like this:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
helmCharts:
- name: my-service
chart: service
version: 14 # got overridden for this environment
releaseName: my-service
values:
- values.yaml
- values-e2e.yaml
```
/prd/kustomization.yaml:
```yaml
# we write a kustomization.yaml like this:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
helmCharts:
- name: my-service
chart: service
version: 13 # came from the base
releaseName: my-service
values:
- values.yaml
- values-prd.yaml
```