Last active
September 15, 2022 15:13
-
-
Save pivotaljohn/4858708213e40841266c60cf494594c5 to your computer and use it in GitHub Desktop.
Spring Cloud Data Flow overlays
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: scdf-server | |
annotations: | |
kapp.k14s.io/change-group: "scdf.tanzu.vmware.com/server" | |
kapp.k14s.io/change-rule.1: "upsert after upserting scdf.tanzu.vmware.com/db" | |
kapp.k14s.io/change-rule.2: "upsert after upserting scdf.tanzu.vmware.com/skipper" | |
labels: | |
app: scdf-server | |
spec: | |
selector: | |
matchLabels: | |
app: scdf-server | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: scdf-server | |
spec: | |
containers: | |
- name: scdf-server | |
image: dataflow_image() | |
imagePullPolicy: Always | |
volumeMounts: | |
- name: config | |
mountPath: /workspace/config | |
readOnly: true | |
- name: database | |
mountPath: /workspace/runtime/secrets/database | |
readOnly: true | |
- name: scdfmetadata | |
mountPath: /workspace/runtime/secrets | |
readOnly: true | |
ports: | |
- containerPort: 80 | |
startupProbe: | |
httpGet: | |
port: 9393 | |
path: dataflow_liveness_path() | |
failureThreshold: 40 | |
initialDelaySeconds: 10 | |
timeoutSeconds: 3 | |
periodSeconds: 5 | |
livenessProbe: | |
httpGet: | |
path: dataflow_liveness_path() | |
port: 9393 | |
initialDelaySeconds: 5 | |
readinessProbe: | |
httpGet: | |
path: dataflow_readiness_path() | |
port: 9393 | |
initialDelaySeconds: 10 | |
resources: | |
limits: | |
cpu: data.values.scdf.server.resources.limits.cpu | |
memory: data.values.scdf.server.resources.limits.memory | |
requests: | |
cpu: data.values.scdf.server.resources.requests.cpu | |
memory: data.values.scdf.server.resources.requests.memory | |
env: dataflow_container_env() | |
serviceAccountName: scdf-sa | |
imagePullSecrets: [{name: reg-creds}] | |
volumes: | |
- name: config | |
configMap: | |
name: scdf-server | |
items: | |
- key: application.yaml | |
path: application.yaml | |
- name: database | |
secret: | |
secretName: db-dataflow | |
- name: scdfmetadata | |
secret: | |
secretName: reg-creds |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: backend | |
namespace: default | |
spec: | |
selector: | |
matchLabels: | |
app: backend | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: backend | |
spec: | |
containers: | |
- name: default | |
image: user/backend |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: frontend | |
namespace: default | |
spec: | |
selector: | |
matchLabels: | |
app: frontend | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: frontend | |
spec: | |
containers: | |
- name: default | |
image: user/frontend | |
ports: | |
- containerPort: 80 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#@ load("@ytt:overlay", "overlay") | |
#@overlay/match by=overlay.subset({"kind": "Deployment"}), expects="0+" | |
--- | |
spec: | |
template: | |
spec: | |
containers: | |
#@overlay/match by=overlay.all, expects="0+" | |
- | |
#@overlay/match when=1 | |
resources: | |
#@overlay/match when=1 | |
#@overlay/remove | |
limits: | |
#@overlay/match by=overlay.subset({"kind": "Deployment"}), expects="0+" | |
--- | |
spec: | |
template: | |
spec: | |
containers: | |
#@overlay/match by=overlay.subset({"livenessProbe": {}}), when=1 | |
- | |
#@overlay/match-child-defaults missing_ok=True | |
livenessProbe: | |
failureThreshold: 4 | |
initialDelaySeconds: 1 | |
timeoutSeconds: 3 | |
periodSeconds: 15 | |
#@overlay/match by=overlay.subset({"readinessProbe": {}}), when=1 | |
- | |
#@overlay/match-child-defaults missing_ok=True | |
readinessProbe: | |
failureThreshold: 3 | |
initialDelaySeconds: 5 | |
timeoutSeconds: 3 | |
periodSeconds: 15 | |
#! == Ensure there exists a properly configured startupProbe (if possible) == | |
#! case: there is not yet a startupProbe, but there IS a livenessProbe, | |
#! --> copy the livenessProbe to a startupProbe and update its parameters. | |
#@ load("@ytt:yaml", "yaml") | |
#@ def copy_gets(orig, _): | |
#@ edit = yaml.decode(yaml.encode(orig)) | |
#@ if "httpGet" in edit["livenessProbe"]: | |
#@ edit["startupProbe"] = {"httpGet": edit["livenessProbe"]["httpGet"]} | |
#@ end | |
#@ if "tcpSocket" in edit["livenessProbe"]: | |
#@ edit["startupProbe"] = {"tcpSocket": edit["livenessProbe"]["tcpSocket"]} | |
#@ end | |
#@ return edit | |
#@ end | |
#@overlay/match by=overlay.subset({"kind": "Deployment"}), expects="0+" | |
--- | |
spec: | |
template: | |
spec: | |
containers: | |
#@overlay/match by=lambda _,left,__: ("livenessProbe" in left) and ("startupProbe" not in left), when=1 | |
#@overlay/replace via=copy_gets | |
- | |
#! case: there is not yet a startupProbe, but the container has at least one exposed port, | |
#! --> pluck the port (i.e. containers[].ports[0].containerPort) and build a tcpSocket probe | |
#@ def add_startupProbe(orig, _): | |
#@ edit = yaml.decode(yaml.encode(orig)) | |
#@ edit["startupProbe"] = {"tcpSocket": {"port": orig["ports"][0]["containerPort"]}} | |
#@ return edit | |
#@ end | |
#@overlay/match by=overlay.subset({"kind": "Deployment"}), expects="0+" | |
--- | |
spec: | |
template: | |
spec: | |
containers: | |
#@overlay/match by=lambda _,left,__: ("startupProbe" not in left) and ("ports" in left) and (len(left["ports"]) > 0), when=1 | |
#@overlay/replace via=add_startupProbe | |
- | |
#! finally: However the startupProbe is created, ensure its parameters are properly set. | |
#@overlay/match by=overlay.subset({"kind": "Deployment"}), expects="0+" | |
--- | |
spec: | |
template: | |
spec: | |
containers: | |
#@overlay/match by=overlay.subset({"startupProbe": {}}), when=1 | |
- | |
#@overlay/match-child-defaults missing_ok=True | |
startupProbe: | |
failureThreshold: 30 | |
initialDelaySeconds: 30 | |
timeoutSeconds: 3 | |
periodSeconds: 5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: skipper | |
annotations: | |
kapp.k14s.io/change-group: "scdf.tanzu.vmware.com/skipper" | |
kapp.k14s.io/change-rule: "upsert after upserting scdf.tanzu.vmware.com/db" | |
labels: | |
app: skipper | |
spec: | |
selector: | |
matchLabels: | |
app: skipper | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: skipper | |
spec: | |
containers: | |
- name: skipper | |
image: skipper_image() | |
imagePullPolicy: Always | |
volumeMounts: | |
- name: config | |
mountPath: /workspace/config | |
readOnly: true | |
- name: database | |
mountPath: /workspace/runtime/secrets/database | |
readOnly: true | |
- name: rabbitmq | |
mountPath: /workspace/runtime/secrets/rabbitmq | |
readOnly: true | |
ports: | |
- containerPort: 80 | |
startupProbe: | |
httpGet: | |
port: 7577 | |
path: /actuator | |
failureThreshold: 40 | |
initialDelaySeconds: 10 | |
timeoutSeconds: 3 | |
periodSeconds: 5 | |
livenessProbe: | |
httpGet: | |
path: /actuator/health | |
port: 7577 | |
initialDelaySeconds: 5 | |
readinessProbe: | |
httpGet: | |
path: /actuator/info | |
port: 7577 | |
initialDelaySeconds: 10 | |
resources: | |
limits: | |
cpu: data.values.scdf.skipper.resources.limits.cpu | |
memory: data.values.scdf.skipper.resources.limits.memory | |
requests: | |
cpu: data.values.scdf.skipper.resources.requests.cpu | |
memory: data.values.scdf.skipper.resources.requests.memory | |
env: skipper_container_env() | |
serviceAccountName: scdf-sa | |
imagePullSecrets: [{name: reg-creds}] | |
volumes: | |
- name: config | |
configMap: | |
name: skipper | |
items: | |
- key: application.yaml | |
path: application.yaml | |
- name: database | |
secret: | |
secretName: db-skipper | |
- name: rabbitmq | |
secret: | |
secretName: rabbitmq |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment