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 ```