diff --git a/.github/workflows/publish-aapi.yml b/.github/workflows/publish-aapi.yml new file mode 100644 index 0000000000..9ad1cd8af5 --- /dev/null +++ b/.github/workflows/publish-aapi.yml @@ -0,0 +1,38 @@ +name: Publish Admin API Container Image + +on: + push: + tags: + - "aapi/*" + +jobs: + publish-aapi-container-image: + name: Publish Admin API Container Image + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Install script dependencies + run: npm install --prefix ./.ci + - name: Docker Login + uses: docker/login-action@v2.2.0 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract version from git tag + id: extract-version-from-git-tag + run: echo "VERSION=$(./.ci/extractVersionFromGitTag.ts)" >> $GITHUB_OUTPUT + env: + GIT_TAG: ${{ github.ref_name }} + - name: Build Container Image + run: ./.ci/aapi/buildContainerImage.ts + env: + TAG: ${{ steps.extract-version-from-git-tag.outputs.VERSION }} + - name: Push Container Image + run: ./.ci/aapi/pushContainerImage.ts + env: + TAG: ${{ steps.extract-version-from-git-tag.outputs.VERSION }} diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..c7936af456 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,16 @@ +{ + "endOfLine": "lf", + "printWidth": 200, + "tabWidth": 4, + "singleQuote": false, + "trailingComma": "none", + "semi": true, + "overrides": [ + { + "files": ["*.yaml", "*.yml"], + "options": { + "tabWidth": 2 + } + } + ] +} diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 69717043e2..583eda2dd7 100644 --- a/helm/Chart.yaml +++ b/helm/Chart.yaml @@ -10,6 +10,9 @@ dependencies: - name: admincli version: "1.0.0" repository: file://charts/admincli + - name: adminui + version: "1.0.0" + repository: file://charts/adminui - name: consumerapi version: "1.0.0" repository: file://charts/consumerapi diff --git a/helm/charts/adminui/Chart.yaml b/helm/charts/adminui/Chart.yaml new file mode 100644 index 0000000000..a59eabd7fa --- /dev/null +++ b/helm/charts/adminui/Chart.yaml @@ -0,0 +1,9 @@ +apiVersion: v2 +name: adminui +description: A Helm chart for Kubernetes + +type: application + +version: "1.0.0" + +appVersion: "v1.1.0" diff --git a/helm/charts/adminui/templates/deployment.yaml b/helm/charts/adminui/templates/deployment.yaml new file mode 100644 index 0000000000..88941410c4 --- /dev/null +++ b/helm/charts/adminui/templates/deployment.yaml @@ -0,0 +1,97 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "global.name" . }} + labels: + {{- include "global.labels" . | nindent 4 }} + app: {{ include "global.name" . }} +spec: + replicas: {{ .Values.replicas }} + selector: + matchLabels: + app: {{ include "global.name" . }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "global.labels" . | nindent 8 }} + app: {{ include "global.name" . }} + spec: + serviceAccountName: {{ include "global.serviceAccountName" . }} + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + {{- end }} + {{- with .Values.image.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: + - name: settings-override + configMap: + name: configuration + containers: + - name: {{ include "global.name" . }} + {{- with .Values.securityContext }} + securityContext: + {{- toYaml .Values.securityContext | nindent 8 }} + {{- end }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + image: "{{ .Values.image.repository }}:{{- default .Chart.AppVersion .Values.image.tagOverride }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: 80 + protocol: TCP + livenessProbe: + httpGet: + path: / + port: 80 + initialDelaySeconds: 10 + periodSeconds: 10 + timeoutSeconds: 15 + failureThreshold: 5 + volumeMounts: + - name: settings-override + mountPath: /app/appsettings.override.json + subPath: appsettings.override.json + readOnly: true + env: + - name: ASPNETCORE_URLS + value: http://0.0.0.0:80 + {{- if .Values.global.useBuiltInEventbus }} + - name: infrastructure__eventBus__vendor + value: RabbitMQ + - name: infrastructure__eventBus__connectionInfo + value: "rabbitmq" + - name: infrastructure__eventBus__rabbitMQUsername + value: "admin" + - name: infrastructure__eventBus__rabbitMQPassword + valueFrom: + secretKeyRef: + name: rabbitmq-password + key: "VALUE" + {{- end }} + {{- with .Values.env }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- 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/charts/adminui/templates/hpa.yaml b/helm/charts/adminui/templates/hpa.yaml new file mode 100644 index 0000000000..1711417ec0 --- /dev/null +++ b/helm/charts/adminui/templates/hpa.yaml @@ -0,0 +1,28 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2beta1 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "global.name" . }} + labels: + {{- include "global.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "global.name" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/helm/charts/adminui/templates/service.yaml b/helm/charts/adminui/templates/service.yaml new file mode 100644 index 0000000000..bacc69d8d2 --- /dev/null +++ b/helm/charts/adminui/templates/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "global.name" . }} + labels: + {{- include "global.labels" . | nindent 4 }} + app: {{ include "global.name" . }} + {{- if eq .Values.global.provider "GoogleCloud" }} + annotations: + cloud.google.com/backend-config: '{"default": "{{ include "global.name" . }}"}' + {{- end }} +spec: + type: {{ .Values.service.type }} + ports: + - port: 80 + targetPort: {{ .Values.service.port }} + selector: + app: {{ include "global.name" . }} diff --git a/helm/charts/consumerapi/Chart.yaml b/helm/charts/consumerapi/Chart.yaml index b9db88da50..b2d98339f3 100644 --- a/helm/charts/consumerapi/Chart.yaml +++ b/helm/charts/consumerapi/Chart.yaml @@ -6,4 +6,4 @@ type: application version: "1.0.0" -appVersion: "v1.1.0" +appVersion: "v1.2.0" diff --git a/helm/charts/consumerapi/templates/deployment.yaml b/helm/charts/consumerapi/templates/deployment.yaml index 2687c35379..d99c36f774 100644 --- a/helm/charts/consumerapi/templates/deployment.yaml +++ b/helm/charts/consumerapi/templates/deployment.yaml @@ -57,11 +57,19 @@ spec: subPath: appsettings.override.json readOnly: true env: - - name: Infrastructure__EventBus__RabbitMQPassword + {{- if .Values.global.useBuiltInEventbus }} + - name: infrastructure__eventBus__vendor + value: RabbitMQ + - name: infrastructure__eventBus__connectionInfo + value: "rabbitmq" + - name: infrastructure__eventBus__rabbitMQUsername + value: "admin" + - name: infrastructure__eventBus__rabbitMQPassword valueFrom: secretKeyRef: name: rabbitmq-password key: "VALUE" + {{- end }} {{- with .Values.env }} {{- toYaml . | nindent 12 }} {{- end }} diff --git a/helm/templates/rabbitmq/deployment.yaml b/helm/templates/rabbitmq/deployment.yaml index 487ee4157a..621faef2ca 100644 --- a/helm/templates/rabbitmq/deployment.yaml +++ b/helm/templates/rabbitmq/deployment.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rabbitmq.create }} +{{- if .Values.global.useBuiltInEventbus }} apiVersion: apps/v1 kind: Deployment metadata: @@ -25,7 +25,12 @@ spec: containerPort: 5672 protocol: TCP resources: - {{- toYaml .Values.rabbitmq.resources | nindent 12 }} + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "200m" + memory: "256Mi" env: - name: RABBITMQ_DEFAULT_USER value: admin diff --git a/helm/templates/rabbitmq/service.yaml b/helm/templates/rabbitmq/service.yaml index 681eed7a2f..d95d6da7ff 100644 --- a/helm/templates/rabbitmq/service.yaml +++ b/helm/templates/rabbitmq/service.yaml @@ -1,4 +1,4 @@ -{{- if .Values.rabbitmq.create }} +{{- if .Values.global.useBuiltInEventbus }} apiVersion: v1 kind: Service metadata: diff --git a/helm/values.yaml b/helm/values.yaml index f02df80559..27665c9880 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -1,4 +1,199 @@ +consumerapi: + nameOverride: "" + replicas: 1 + + image: + repository: "ghcr.io/nmshd/backbone-consumer-api" + tagOverride: "" + pullPolicy: "IfNotPresent" + imagePullSecrets: [] + + # resources - the resources for the Consumer API container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources) + resources: + requests: + cpu: "200m" + memory: "128Mi" + limits: + cpu: "400m" + memory: "1Gi" + + # securityContext - securityContext for the Consumer API container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1) + securityContext: {} + + # podSecurityContext - securityContext for the pods deployed by the Deployment (see https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) + podSecurityContext: {} + + podAnnotations: {} + + # env - environment variables for the Consumer API container (see https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) + env: [] + + service: + type: "ClusterIP" + port: 80 + + # the nodeSelector for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) + nodeSelector: {} + + # the tolerations for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) + tolerations: [] + + # the affinity for the pods deployed by the Deployment (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#NodeAffinity) + affinity: {} + + autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: "" + + # httpRoute - the configuration of the HttpRoute for the Consumer API + httpRoute: + # enabled - whether to enable the HttpRoute for the Consumer API + enabled: false + # parentRefName - the name of the gateway this Route wants to be attached to + parentRefName: "" + # parentRefNamespace - # the namespace of the gateway this Route wants to be attached to + parentRefNamespace: "" + hostnames: [] + + # backendConfig - only applicable if .Values.global.provider is set to "GoogleCloud"; see https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#direct_health for a description of `HttpRoute`s` + backendConfig: + healthCheck: + # checkIntervalSec - time from the start of one prober's check to the start of its next check + checkIntervalSec: 15 + # timeoutSec - the amount of time that Google Cloud waits for a response to a probe + timeoutSec: 15 + # healthyThreshold - the number of consecutive successful checks required to mark a backend as healthy + healthyThreshold: 1 + # unhealthyThreshold - the number of consecutive failed checks required to mark a backend as unhealthy + unhealthyThreshold: 2 + +adminui: + nameOverride: "" + replicas: 1 + + image: + repository: "ghcr.io/nmshd/backbone-admin-ui" + tagOverride: "" + pullPolicy: "IfNotPresent" + imagePullSecrets: [] + + # resources - the resources for the Admin UI container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources) + resources: + requests: + cpu: "50m" + memory: "64Mi" + limits: + cpu: "100m" + memory: "128Mi" + + # securityContext - securityContext for the Consumer API container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1) + securityContext: {} + + # podSecurityContext - securityContext for the pods deployed by the Deployment (see https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) + podSecurityContext: {} + + podAnnotations: {} + + # env - environment variables for the Admin UI container (see https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) + env: + - name: Database__ConnectionString + valueFrom: + secretKeyRef: + name: "devices-sql-connectionstring" + key: VALUE + + service: + type: "ClusterIP" + port: 80 + + # the nodeSelector for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) + nodeSelector: {} + + # the tolerations for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) + tolerations: [] + + # the affinity for the pods deployed by the Deployment (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#NodeAffinity) + affinity: {} + + autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: "" + + # httpRoute - the configuration of the HttpRoute for the Consumer API + httpRoute: + # enabled - whether to enable the HttpRoute for the Consumer API + enabled: false + # parentRefName - the name of the gateway this Route wants to be attached to + parentRefName: "" + # parentRefNamespace - # the namespace of the gateway this Route wants to be attached to + parentRefNamespace: "" + hostnames: [] + + # backendConfig - only applicable if .Values.global.provider is set to "GoogleCloud"; see https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#direct_health for a description of `HttpRoute`s` + backendConfig: + healthCheck: + # checkIntervalSec - time from the start of one prober's check to the start of its next check + checkIntervalSec: 15 + # timeoutSec - the amount of time that Google Cloud waits for a response to a probe + timeoutSec: 15 + # healthyThreshold - the number of consecutive successful checks required to mark a backend as healthy + healthyThreshold: 1 + # unhealthyThreshold - the number of consecutive failed checks required to mark a backend as unhealthy + unhealthyThreshold: 2 + +admincli: + nameOverride: "" + + configuration: + Database: + # Provider - possible values: "Postgres"/"SqlServer" + Provider: "Postgres" + + image: + repository: "ghcr.io/nmshd/backbone-admin-cli" + tagOverride: "" + pullPolicy: "IfNotPresent" + imagePullSecrets: [] + + # resources - the resources for the Admin CLI container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources) + resources: + requests: + cpu: "200m" + memory: "128Mi" + limits: + cpu: "400m" + memory: "1Gi" + + # securityContext - securityContext for the Consumer API container (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1) + securityContext: {} + + # podSecurityContext - securityContext for the pods deployed by the Deployment (see https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) + podSecurityContext: {} + + podAnnotations: {} + + # env - environment variables for the Admin CLI container (see https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/) + env: [] + + # the nodeSelector for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) + nodeSelector: {} + + # the tolerations for the pods deployed by the Deployment (see https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) + tolerations: [] + + # the affinity for the pods deployed by the Deployment (see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#NodeAffinity) + affinity: {} + global: + # useBuiltInEventbus - if a development event bus should be created, set this to true; if you want to use an existing one, set it to false + useBuiltInEventbus: false + # environment - possible values: "Development"/"Production" environment: "" @@ -37,11 +232,11 @@ global: rabbitMQUsername: "" # RabbitMQPassword - only applicable if Vendor is "RabbitMQ"; should be set via environment variable rabbitMQPassword: "" - # ConnectionRetryCount - only applicable if Vendor is "RabbitMQ"; specifies how often the consumer API should retry to connect to the RabbitMQ service + # ConnectionRetryCount - only applicable if Vendor is "RabbitMQ"; specifies how often the Consumer API should retry to connect to the RabbitMQ service connectionRetryCount: 5 # GcpPubSubProjectId - only applicable if Vendor is "GoogleCloud"; the ID of the Google Cloud project the Pub/Sub service is running in gcpPubSubProjectId: "" - # GcpPubSubTopicName - only applicable if Vendor is "GoogleCloud"; the name of the Pub/Sub topic the consumer API should publish events to + # GcpPubSubTopicName - only applicable if Vendor is "GoogleCloud"; the name of the Pub/Sub topic the Consumer API should publish events to gcpPubSubTopicName: "" modules: challenges: @@ -92,7 +287,7 @@ global: containerName: "" messages: application: - # MaxNumberOfUnreceivedMessagesFromOneSender - if this number is exceeded, the consumer API will not accept any more messages from the sender to the recipient in order to prevent spam + # MaxNumberOfUnreceivedMessagesFromOneSender - if this number is exceeded, the Consumer API will not accept any more messages from the sender to the recipient in order to prevent spam maxNumberOfUnreceivedMessagesFromOneSender: 20 # Pagination - the following options describe the default and maximum page size for the different endpoints pagination: @@ -195,166 +390,3 @@ global: - name: Console args: outputTemplate: "{Timestamp:yyyy-MM-dd HH:mm:ss}|{Level} => CorrelationID:{CorrelationID} => RequestId:{RequestId} => RequestPath:{RequestPath}{NewLine} {SourceContext}{NewLine} {Message}{NewLine}{Exception}" - -consumerapi: - nameOverride: "" - replicas: 1 - - image: - repository: "ghcr.io/nmshd/backbone-consumer-api" - tagOverride: "" - pullPolicy: "IfNotPresent" - imagePullSecrets: [] - - # the resources for the Consumer API container - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources - resources: - requests: - cpu: "200m" - memory: "128Mi" - limits: - cpu: "400m" - memory: "1Gi" - - # securityContext for the Consumer API container - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1 - securityContext: {} - - # securityContext for the pod deployed by the Deployment - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context - podSecurityContext: {} - - podAnnotations: {} - - # env - environment variables for the Consumer API container - ############################################################################# - # IMPORTANT - # The following environment variables are required: - # - Authentication__JwtSigningCertificate - # - Modules__Challenges__Infrastructure__SqlDatabase__ConnectionString - # - Modules__Devices__Infrastructure__AzureNotificationHub__ConnectionString - # - Modules__Devices__Infrastructure__SqlDatabase__ConnectionString - # - Modules__Files__Infrastructure__SqlDatabase__ConnectionString - # - Modules__Messages__Infrastructure__SqlDatabase__ConnectionString - # - Modules__Quotas__Infrastructure__SqlDatabase__ConnectionString - # - Modules__Relationships__Infrastructure__SqlDatabase__ConnectionString - # - Modules__Synchronization__Infrastructure__SqlDatabase__ConnectionString - # - Modules__Tokens__Infrastructure__SqlDatabase__ConnectionString - ############################################################################# - env: [] - - service: - type: "ClusterIP" - port: 80 - - # the nodeSelector for the pods deployed by the Deployment - # https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector - nodeSelector: {} - - # the tolerations for the pods deployed by the Deployment - # https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ - tolerations: [] - - # the affinity for the pods deployed by the Deployment - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#NodeAffinity - affinity: {} - - autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - targetMemoryUtilizationPercentage: "" - - # httpRoute - the configuration of the HttpRoute for the consumer API - httpRoute: - # enabled - whether to enable the HttpRoute for the consumer API - enabled: false - # parentRefName - the name of the gateway this Route wants to be attached to - parentRefName: "" - # parentRefNamespace - # the namespace of the gateway this Route wants to be attached to - parentRefNamespace: "" - hostnames: [] - - # httpRoute - only applicable if .Values.global.provider is set to "GoogleCloud"; see https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-configuration#direct_health for a description of `HttpRoute`s` - backendConfig: - healthCheck: - # checkIntervalSec - time from the start of one prober's check to the start of its next check - checkIntervalSec: 15 - # timeoutSec - the amount of time that Google Cloud waits for a response to a probe - timeoutSec: 15 - # healthyThreshold - the number of consecutive successful checks required to mark a backend as healthy - healthyThreshold: 1 - # unhealthyThreshold - the number of consecutive failed checks required to mark a backend as unhealthy - unhealthyThreshold: 2 - -admincli: - nameOverride: "" - - configuration: - Database: - # Provider - possible values: "Postgres"/"SqlServer" - Provider: "Postgres" - - image: - repository: "ghcr.io/nmshd/backbone-admin-cli" - tagOverride: "" - pullPolicy: "IfNotPresent" - imagePullSecrets: [] - - # the resources for the Admin CLI container - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources - resources: - requests: - cpu: "200m" - memory: "128Mi" - limits: - cpu: "400m" - memory: "1Gi" - - # securityContext for the Admin CLI container - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1 - securityContext: {} - - # securityContext for the pods deployed by the Deployment - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context - podSecurityContext: {} - - podAnnotations: {} - - # env - environment variables for the Admin CLI container - ############################################################################# - # IMPORTANT - # The following environment variables are required: - # - Database__ConnectionString - ############################################################################# - - # a list of environment variables - # see https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#environment-variables - env: [] - - # the nodeSelector for the pods deployed by the Deployment - # https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector - nodeSelector: {} - - # the tolerations for the pods deployed by the Deployment - # https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ - tolerations: [] - - # the affinity for the pods deployed by the Deployment - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#NodeAffinity - affinity: {} - -rabbitmq: - # create - if a RabbitMQ service should be created, set this to true; if you want to use an existing one, set it to false - create: false - - # the resources for the RabbitMQ container - # https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources - resources: - requests: - cpu: "100m" - memory: "128Mi" - limits: - cpu: "200m" - memory: "256Mi"