diff --git a/helm/Chart.yaml b/helm/Chart.yaml new file mode 100644 index 0000000..a71ed19 --- /dev/null +++ b/helm/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: perfsonar +description: A Helm chart for Kubernetes + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "1.16.0" diff --git a/helm/templates/_helpers.tpl b/helm/templates/_helpers.tpl new file mode 100644 index 0000000..0ae24c9 --- /dev/null +++ b/helm/templates/_helpers.tpl @@ -0,0 +1,76 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "perfsonar.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "perfsonar.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "perfsonar.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "perfsonar.labels" -}} +helm.sh/chart: {{ include "perfsonar.chart" . }} +{{ include "perfsonar.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + + +{{- define "perfsonar.postgresPVC" }} +- name: postgresql-data + persistentVolumeClaim: + claimName: {{ .Release.Name }}-postgres-pvc +{{- end }} + +{{- define "perfsonar.postgresMount" }} +- name: postgresql-data + mountPath: /var/lib/postgresql +{{- end }} + + + +{{/* +Selector labels +*/}} +{{- define "perfsonar.selectorLabels" -}} +app.kubernetes.io/name: {{ include "perfsonar.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "perfsonar.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "perfsonar.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/helm/templates/configmap.yaml b/helm/templates/configmap.yaml new file mode 100644 index 0000000..b1595fa --- /dev/null +++ b/helm/templates/configmap.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +data: + pscheduler-agent-logger.conf: | + [loggers] + keys=root,TaskLogger,TransactionLogger,psconfig + + [formatters] + keys=patternLayout,rootPatternLayout + + [handlers] + keys=fileRotateTask,fileRotateTransaction,nullRoot,fileRotatePSConfig + + [formatter_patternLayout] + format=%(asctime)s %(levelname)s %(message)s + datefmt=%Y-%m-%d %H:%M:%S + + [formatter_rootPatternLayout] + format=%(asctime)s %(levelname)s pid=%(process)d prog=%(funcName)s line=%(lineno)d %(message)s + datefmt=%Y-%m-%d %H:%M:%S + + [logger_root] + level=NOTSET + handlers=nullRoot + + [logger_psconfig] + level=NOTSET + qualname=psconfig + handlers=fileRotatePSConfig + + [logger_TaskLogger] + level=INFO + qualname=TaskLogger + handlers=fileRotateTask + + [logger_TransactionLogger] + level=INFO + qualname=TransactionLogger + handlers=fileRotateTransaction + + [handler_fileRotateTask] + class=handlers.RotatingFileHandler + level=INFO + formatter=patternLayout + maxBytes=16777216 + backupCount=7 + args=('/var/log/perfsonar/psconfig-pscheduler-agent-tasks.log', 'a') + + [handler_nullRoot] + class=logging.NullHandler + + [handler_fileRotatePSConfig] + class=handlers.RotatingFileHandler + level=INFO + formatter=rootPatternLayout + maxBytes=16777216 + backupCount=7 + args=('/var/log/perfsonar/psconfig-pscheduler-agent.log', 'a') + + [handler_fileRotateTransaction] + class=handlers.RotatingFileHandler + level=DEBUG + formatter=patternLayout + maxBytes=16777216 + backupCount=7 + args=('/var/log/perfsonar/psconfig-pscheduler-agent-transactions.log', 'a') +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-pscheduler-configmap diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml new file mode 100644 index 0000000..138e3f2 --- /dev/null +++ b/helm/templates/deployment.yaml @@ -0,0 +1,141 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "perfsonar.fullname" . }} + labels: + {{- include "perfsonar.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "perfsonar.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "perfsonar.labels" . | nindent 8 }} + {{- with .Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "perfsonar.serviceAccountName" . }} + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + initContainers: + - name: init-postgresql + image: perfsonar/testpoint:v5.2.2 + imagePullPolicy: IfNotPresent + command: + - /bin/sh + - -c + - | + if [ ! -d "/var/lib/postgresql/data/pg_wal" ]; then + echo "Initializing PostgreSQL database..." + cp -rP /var/lib/postgresql/* /var/lib/postgresql-1/ + chown -R postgres:postgres /var/lib/postgresql-1/ + else + echo "PostgreSQL data directory already initialized." + fi + volumeMounts: + - name: postgresql-data + mountPath: /var/lib/postgresql-1 + containers: + - name: {{ .Chart.Name }} + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + + {{- with .Values.livenessProbe }} + livenessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.readinessProbe }} + readinessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + volumeMounts: + {{- include "perfsonar.postgresMount" $ | nindent 12 }} + {{- with $.Values.volumeMounts }} + {{- toYaml . | nindent 12 }} + {{- end }} + - name: {{ .Release.Name }}-pschedulerconfig + mountPath: "/etc/perfsonar/psconfig/pscheduler-agent-logger.conf" + subPath: pscheduler-agent-logger.conf + readOnly: true + - name: {{ .Release.Name }}-pscheduleragentconfig + mountPath: "/etc/perfsonar/psconfig/pscheduler-agent.json" + subPath: pscheduler-agent.json + readOnly: true + - name: {{ .Release.Name }}-owampconfig + mountPath: "/etc/owamp-server/owamp-server.conf" + subPath: owamp-server.conf + readOnly: true + - name: {{ .Release.Name }}-twampconfig + mountPath: "/etc/twamp-server/twamp-server.conf" + subPath: twamp-server.conf + readOnly: true + - name: {{ .Release.Name }}-twamplimits + mountPath: "/etc/twamp-server/twamp-server.limits" + subPath: twamp-server.limits + readOnly: true + - name: {{ .Release.Name }}-owamplimits + mountPath: "/etc/twamp-server/owamp-server.limits" + subPath: owamp-server.limits + readOnly: true + + volumes: + {{- include "perfsonar.postgresPVC" $ | nindent 8 }} + {{- with $.Values.volumes }} + {{- toYaml . | nindent 8 }} + {{- end }} + - name: {{ .Release.Name }}-pschedulerconfig + configMap: + name: {{ .Release.Name }}-pscheduler-configmap + - name: {{ .Release.Name }}-pscheduleragentconfig + configMap: + name: {{ .Release.Name }}-pscheduler-agent-configmap + - name: {{ .Release.Name }}-owampconfig + configMap: + name: {{ .Release.Name }}-owamp-config + - name: {{ .Release.Name }}-twampconfig + configMap: + name: {{ .Release.Name }}-twamp-config + - name: {{ .Release.Name }}-twamplimits + configMap: + name: {{ .Release.Name }}-twamp-limits + - name: {{ .Release.Name }}-owamplimits + configMap: + name: {{ .Release.Name }}-owamp-limits + + {{- with $.Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + + {{- with $.Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + + {{- with $.Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/helm/templates/hpa.yaml b/helm/templates/hpa.yaml new file mode 100644 index 0000000..20c7ca0 --- /dev/null +++ b/helm/templates/hpa.yaml @@ -0,0 +1,32 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "perfsonar.fullname" . }} + labels: + {{- include "perfsonar.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "perfsonar.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/helm/templates/owamp-server-limits.yaml b/helm/templates/owamp-server-limits.yaml new file mode 100644 index 0000000..600ca73 --- /dev/null +++ b/helm/templates/owamp-server-limits.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-owamp-limits +data: + owamp-server.limits: | + limit root with disk=0,\ + bandwidth=0,\ + delete_on_fetch=on + + limit regular with parent=root,\ + disk=10G,\ + bandwidth=20M + + assign default regular \ No newline at end of file diff --git a/helm/templates/owamp-server.yaml b/helm/templates/owamp-server.yaml new file mode 100644 index 0000000..12d1976 --- /dev/null +++ b/helm/templates/owamp-server.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-owamp-config +data: + owamp-server.conf: | + user owamp + group owamp + verbose + facility local5 + loglocation + vardir /var/run + datadir /var/lib/owamp + testports 8760-8770 + diskfudge 3.0 diff --git a/helm/templates/pscheduler-agent.yaml b/helm/templates/pscheduler-agent.yaml new file mode 100644 index 0000000..f953a34 --- /dev/null +++ b/helm/templates/pscheduler-agent.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +data: + pscheduler-agent.json: | + { + "remotes": [] + } + +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-pscheduler-agent-configmap diff --git a/helm/templates/pvc.yaml b/helm/templates/pvc.yaml new file mode 100644 index 0000000..221d435 --- /dev/null +++ b/helm/templates/pvc.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Release.Name }}-postgres-pvc + namespace: {{ .Release.Namespace }} +spec: + storageClassName: + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/helm/templates/service-loadbalancer.yaml b/helm/templates/service-loadbalancer.yaml new file mode 100644 index 0000000..bd6e288 --- /dev/null +++ b/helm/templates/service-loadbalancer.yaml @@ -0,0 +1,336 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }}-loadbalancer + labels: + {{- include "perfsonar.labels" . | nindent 4 }} +spec: + type: LoadBalancer + ports: + - port: 861 + targetPort: 861 + protocol: TCP + name: owamp + + - port: 80 + targetPort: 80 + protocol: TCP + name: http + + - port: 443 + targetPort: 443 + protocol: TCP + name: https + + - port: 862 + targetPort: 862 + protocol: TCP + name: twamp + + #owamp TCP range 8760-8770 + - port: 8760 + targetPort: 8760 + protocol: TCP + name: owamp8760 + + - port: 8761 + targetPort: 8761 + protocol: TCP + name: owamp8761 + + - port: 8762 + targetPort: 8762 + protocol: TCP + name: owamp8762 + + - port: 8763 + targetPort: 8763 + protocol: TCP + name: owamp8763 + + - port: 8764 + targetPort: 8764 + protocol: TCP + name: owamp8764 + + - port: 8765 + targetPort: 8765 + protocol: TCP + name: owamp8765 + + - port: 8766 + targetPort: 8766 + protocol: TCP + name: owamp8766 + + - port: 8767 + targetPort: 8767 + protocol: TCP + name: owamp8767 + + - port: 8768 + targetPort: 8768 + protocol: TCP + name: owamp8768 + + - port: 8769 + targetPort: 8769 + protocol: TCP + name: owamp8769 + + - port: 8770 + targetPort: 8770 + protocol: TCP + name: owamp8770 + + + #owamp UDP range 8760-8770 + - port: 8760 + targetPort: 8760 + protocol: UDP + name: owampudp8760 + + - port: 8761 + targetPort: 8761 + protocol: UDP + name: owampudp8761 + + - port: 8762 + targetPort: 8762 + protocol: UDP + name: owampudp8762 + + - port: 8763 + targetPort: 8763 + protocol: UDP + name: owampudp8763 + + - port: 8764 + targetPort: 8764 + protocol: UDP + name: owampudp8764 + + - port: 8765 + targetPort: 8765 + protocol: UDP + name: owampudp8765 + + - port: 8766 + targetPort: 8766 + protocol: UDP + name: owampudp8766 + + - port: 8767 + targetPort: 8767 + protocol: UDP + name: owampudp8767 + + - port: 8768 + targetPort: 8768 + protocol: UDP + name: owampudp8768 + + - port: 8769 + targetPort: 8769 + protocol: UDP + name: owampudp8769 + + - port: 8770 + targetPort: 8770 + protocol: UDP + name: owampudp8770 + + + #twamp TCP range 18760-18770 + - port: 18760 + targetPort: 18760 + protocol: TCP + name: twamptcp18760 + + - port: 18761 + targetPort: 18761 + protocol: TCP + name: twamptcp18761 + + - port: 18762 + targetPort: 18762 + protocol: TCP + name: twamptcp18762 + + - port: 18763 + targetPort: 18763 + protocol: TCP + name: twamptcp18763 + + - port: 18764 + targetPort: 18764 + protocol: TCP + name: twamptcp18764 + + - port: 18765 + targetPort: 18765 + protocol: TCP + name: twamptcp18765 + + - port: 18766 + targetPort: 18766 + protocol: TCP + name: twamptcp18766 + + - port: 18767 + targetPort: 18767 + protocol: TCP + name: twamptcp18767 + + - port: 18768 + targetPort: 18768 + protocol: TCP + name: twamptcp18768 + + - port: 18769 + targetPort: 18769 + protocol: TCP + name: twamptcp18769 + + - port: 18770 + targetPort: 18770 + protocol: TCP + name: twamptcp18770 + + + #twamp UDP range 18760-18770 + - port: 18760 + targetPort: 18760 + protocol: UDP + name: twampudp18760 + + - port: 18761 + targetPort: 18761 + protocol: UDP + name: twampudp18761 + + - port: 18762 + targetPort: 18762 + protocol: UDP + name: twampudp18762 + + - port: 18763 + targetPort: 18763 + protocol: UDP + name: twampudp18763 + + - port: 18764 + targetPort: 18764 + protocol: UDP + name: twampudp18764 + + - port: 18765 + targetPort: 18765 + protocol: UDP + name: twampudp18765 + + - port: 18766 + targetPort: 18766 + protocol: UDP + name: twampudp18766 + + - port: 18767 + targetPort: 18767 + protocol: UDP + name: twampudp18767 + + - port: 18768 + targetPort: 18768 + protocol: UDP + name: twampudp18768 + + - port: 18769 + targetPort: 18769 + protocol: UDP + name: twampudp18769 + + - port: 18770 + targetPort: 18770 + protocol: UDP + name: twampudp18770 + + + + #simplestream port range 5890-5900 + - port: 5890 + targetPort: 5890 + protocol: TCP + name: simplestream5890 + + - port: 5891 + targetPort: 5891 + protocol: TCP + name: simplestream5891 + + - port: 5892 + targetPort: 5892 + protocol: TCP + name: simplestream5892 + + - port: 5893 + targetPort: 5893 + protocol: TCP + name: simplestream5893 + + - port: 5894 + targetPort: 5894 + protocol: TCP + name: simplestream5894 + + - port: 5895 + targetPort: 5895 + protocol: TCP + name: simplestream5895 + + - port: 5896 + targetPort: 5896 + protocol: TCP + name: simplestream5896 + + - port: 5897 + targetPort: 5897 + protocol: TCP + name: simplestream5897 + + - port: 5898 + targetPort: 5898 + protocol: TCP + name: simplestream5898 + + - port: 5899 + targetPort: 5899 + protocol: TCP + name: simplestream5899 + + - port: 5900 + targetPort: 5900 + protocol: TCP + name: simplestream5900 + + - port: 5000 + targetPort: 5000 + protocol: TCP + name: nuttcp5000 + + - port: 5101 + targetPort: 5101 + protocol: TCP + name: nuttcp5101 + + - port: 5201 + targetPort: 5201 + protocol: TCP + name: iperf3 + + - port: 123 + targetPort: 123 + protocol: UDP + name: ntp + + selector: + {{- include "perfsonar.selectorLabels" . | nindent 4 }} diff --git a/helm/templates/serviceaccount.yaml b/helm/templates/serviceaccount.yaml new file mode 100644 index 0000000..21dac34 --- /dev/null +++ b/helm/templates/serviceaccount.yaml @@ -0,0 +1,13 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "perfsonar.serviceAccountName" . }} + labels: + {{- include "perfsonar.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.serviceAccount.automount }} +{{- end }} diff --git a/helm/templates/twamp-server-limits.yaml b/helm/templates/twamp-server-limits.yaml new file mode 100644 index 0000000..0546c84 --- /dev/null +++ b/helm/templates/twamp-server-limits.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-twamp-limits +data: + twamp-server.limits: | + limit root with disk=0,\ + bandwidth=0,\ + delete_on_fetch=on + + limit regular with parent=root,\ + disk=10G,\ + bandwidth=20M + + assign default regular \ No newline at end of file diff --git a/helm/templates/twamp-server.yaml b/helm/templates/twamp-server.yaml new file mode 100644 index 0000000..35477b9 --- /dev/null +++ b/helm/templates/twamp-server.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ .Release.Name }}-twamp-config +data: + twamp-server.conf: | + user twamp + group twamp + verbose + facility local5 + loglocation + vardir /var/run + datadir /var/lib/twamp + testports 18760-18770 diff --git a/helm/values.yaml b/helm/values.yaml new file mode 100644 index 0000000..31797b6 --- /dev/null +++ b/helm/values.yaml @@ -0,0 +1,94 @@ + # Default values for perfsonar. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +# This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ +replicaCount: 1 + +# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/ +image: + repository: perfsonar/testpoint + # This sets the pull policy for images. + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "v5.2.2" + +strategy: + type: Recreate +# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ +imagePullSecrets: [] +# This is to override the chart name. +nameOverride: "perfsonar-testpoint" +fullnameOverride: "" + +# This section builds out the service account more information can be found here: https://kubernetes.io/docs/concepts/security/service-accounts/ +serviceAccount: + # Specifies whether a service account should be created + create: false + # Automatically mount a ServiceAccount's API credentials? + automount: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "default" + +# This is for setting Kubernetes Annotations to a Pod. +# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ +podAnnotations: {} +# This is for setting Kubernetes Labels to a Pod. +# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ +podLabels: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +resources: + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + limits: + cpu: 2000m + memory: 3072Mi + requests: + cpu: 1000m + memory: 2048Mi + +# This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ +#livenessProbe: +# httpGet: +# path: / +# port: http +#readinessProbe: +# httpGet: +# path: / +# port: http + +# This section is for setting up autoscaling more information can be found here: https://kubernetes.io/docs/concepts/workloads/autoscaling/ +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +# Additional volumes on the output Deployment definition. +volumes: [] + +# Additional volumeMounts on the output Deployment definition. +volumeMounts: [] + +nodeSelector: {} + +tolerations: [] + +affinity: {}