diff --git a/charts/platform/README.md b/charts/platform/README.md index f74163f9..ad9d8df1 100644 --- a/charts/platform/README.md +++ b/charts/platform/README.md @@ -4,27 +4,92 @@ Helm chart for installing the CloudQuery self-hosted platform ![Version: 0.1.2](https://img.shields.io/badge/Version-0.1.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.14.2](https://img.shields.io/badge/AppVersion-0.14.2-informational?style=flat-square) -## Installing the Chart +## Quickstart -First create a `secrets.yaml` file with the following content: +The following shows how to install the chart in a local [kind](https://kind.sigs.k8s.io/) cluster, configured to expose ports 80 and 443 on the host machine for ingress. + +First create a `kind.config` file with the following content: + +```console +cat < kind.config +kind: Cluster +apiVersion: kind.x-k8s.io/v1alpha4 +nodes: + - role: control-plane + kubeadmConfigPatches: + - | + kind: InitConfiguration + nodeRegistration: + kubeletExtraArgs: + node-labels: "ingress-ready=true" + extraPortMappings: + - containerPort: 80 + hostPort: 80 + protocol: TCP + - containerPort: 443 + hostPort: 443 + protocol: TCP +EOF +``` + +Create the kind cluster: + +```console +kind create cluster --config kind.config +``` + +Install the NGINX Ingress Controller: + +```console +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml +``` + +Wait for the ingress controller to be ready: + +```console +kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=120s +``` + +Create a `secrets.yaml` file with the following content, replacing ``, ``, and `` with the appropriate values: ```console cat < secrets.yml -platform: - activationKey: "" - externalDependencies: - postgresql_dsn: "" - clickhouse_dsn: "" +activationKey: "" +externalDependencies: + postgresql_dsn: "" + clickhouse_dsn: "" EOF ``` +Create an `ingress.yaml` file with the following content: + +```console +ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + hosts: + - host: local.cloudquery.io + paths: + - path: / + pathType: ImplementationSpecific +``` + To install the chart with the release name `platform`: ```console $ helm repo add cloudquery https://cloudquery.github.io/helm-charts/ -$ helm install platform -n cloudquery --create-namespace cloudquery/platform --values ./secrets.yml +$ helm install platform -n cloudquery --create-namespace cloudquery/platform --values ./secrets.yml --values ./ingress.yml +``` + +To access the cloudquery platform, add the following line to your `/etc/hosts` file: + +```console +127.0.0.1 local.cloudquery.io ``` +The cloudquery platform should now be available at [http://local.cloudquery.io](http://local.cloudquery.io). + ## Requirements | Repository | Name | Version | @@ -35,35 +100,42 @@ $ helm install platform -n cloudquery --create-namespace cloudquery/platform --v | Key | Type | Default | Description | |-----|------|---------|-------------| +| activationKey | string | `""` | Activation key for the self-hosted platform | +| containerSecurityContext | object | `{}` | Specify the container-level security context | | debug.enabled | bool | `false` | Optional. Enable debug mode. | -| platform.activationKey | string | `""` | Activation key for the self-hosted platform | -| platform.containerSecurityContext | object | `{}` | Specify the container-level security context | -| platform.externalDependencies.clickhouse_dsn | string | `""` | Required: The DSN for the ClickHouse database | -| platform.externalDependencies.postgresql_dsn | string | `""` | Required: The DSN for the Postgres database | -| platform.fullNameOverride | string | `""` | Override the full name | -| platform.image.pullPolicy | string | `"IfNotPresent"` | | -| platform.image.repository | string | `"us-east1-docker.pkg.dev/cq-cloud-prod/platform/full"` | The image repository to pull from | -| platform.image.tag | string | `nil` | Overrides the image tag whose default is the chart appVersion | -| platform.livenessProbe.httpGet.path | string | `"/"` | | -| platform.livenessProbe.httpGet.port | string | `"api"` | | -| platform.livenessProbe.periodSeconds | int | `60` | | -| platform.nameOverride | string | `""` | Override the default name | -| platform.podAnnotations | object | `{}` | Addition pod annotations | -| platform.podLabels | object | `{}` | Addition pod labels | -| platform.podSecurityContext | object | `{}` | Specify the pod-level security context | -| platform.readinessProbe.httpGet.path | string | `"/"` | | -| platform.readinessProbe.httpGet.port | string | `"api"` | | -| platform.readinessProbe.periodSeconds | int | `30` | | -| platform.replicaCount | int | `1` | The number of replicas to deploy | -| platform.resources | object | `{}` | Deployment resources | -| platform.service | object | `{"apiPort":4444,"apiType":"ClusterIP","storagePort":4445,"storageType":"ClusterIP","uiPort":3000,"uiType":"ClusterIP"}` | Specify the ports the container exposes | -| platform.serviceAccount.annotations | object | `{}` | | -| platform.serviceAccount.automount | bool | `true` | | -| platform.serviceAccount.create | bool | `false` | | -| platform.serviceAccount.name | string | `""` | | -| platform.volumeMounts | list | `[]` | Additional volumeMounts on the output Deployment definition. | -| platform.volumes | list | `[]` | Additional volumes on the output Deployment definition. | +| externalDependencies.clickhouse_dsn | string | `""` | Required: The DSN for the ClickHouse database | +| externalDependencies.postgresql_dsn | string | `""` | Required: The DSN for the Postgres database | +| fullNameOverride | string | `""` | Override the full name | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"us-east1-docker.pkg.dev/cq-cloud-prod/platform/full"` | The image repository to pull from | +| image.tag | string | `nil` | Overrides the image tag whose default is the chart appVersion | +| ingress.annotations | object | `{}` | | +| ingress.className | string | `""` | | +| ingress.enabled | bool | `false` | Optional. Enable ingress. | +| ingress.hosts[0].host | string | `"local.cloudquery.io"` | | +| ingress.hosts[0].paths[0].path | string | `"/"` | | +| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | | +| ingress.tls | list | `[]` | | +| livenessProbe.httpGet.path | string | `"/"` | | +| livenessProbe.httpGet.port | string | `"api"` | | +| livenessProbe.periodSeconds | int | `60` | | +| nameOverride | string | `""` | Override the default name | +| podAnnotations | object | `{}` | Addition pod annotations | +| podLabels | object | `{}` | Addition pod labels | +| podSecurityContext | object | `{}` | Specify the pod-level security context | +| readinessProbe.httpGet.path | string | `"/"` | | +| readinessProbe.httpGet.port | string | `"api"` | | +| readinessProbe.periodSeconds | int | `30` | | | redis | object | `{"auth":{"enabled":false},"enabled":true}` | Redis configuration | +| replicaCount | int | `1` | The number of replicas to deploy | +| resources | object | `{}` | Deployment resources | +| service | object | `{"apiPort":4444,"apiType":"ClusterIP","proxyPort":3000,"proxyType":"ClusterIP","storagePort":4445,"storageType":"ClusterIP","uiPort":3001,"uiType":"ClusterIP"}` | Specify the ports the container exposes | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.automount | bool | `true` | | +| serviceAccount.create | bool | `false` | | +| serviceAccount.name | string | `""` | | +| volumeMounts | list | `[]` | Additional volumeMounts on the output Deployment definition. | +| volumes | list | `[]` | Additional volumes on the output Deployment definition. | ---------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/charts/platform/README.md.gotmpl b/charts/platform/README.md.gotmpl index b43db75b..272639e8 100644 --- a/charts/platform/README.md.gotmpl +++ b/charts/platform/README.md.gotmpl @@ -3,27 +3,92 @@ {{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }} -## Installing the Chart +## Quickstart -First create a `secrets.yaml` file with the following content: +The following shows how to install the chart in a local [kind](https://kind.sigs.k8s.io/) cluster, configured to expose ports 80 and 443 on the host machine for ingress. + +First create a `kind.config` file with the following content: + +```console +cat < kind.config +kind: Cluster +apiVersion: kind.x-k8s.io/v1alpha4 +nodes: + - role: control-plane + kubeadmConfigPatches: + - | + kind: InitConfiguration + nodeRegistration: + kubeletExtraArgs: + node-labels: "ingress-ready=true" + extraPortMappings: + - containerPort: 80 + hostPort: 80 + protocol: TCP + - containerPort: 443 + hostPort: 443 + protocol: TCP +EOF +``` + +Create the kind cluster: + +```console +kind create cluster --config kind.config +``` + +Install the NGINX Ingress Controller: + +```console +kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml +``` + +Wait for the ingress controller to be ready: + +```console +kubectl wait --namespace ingress-nginx --for=condition=ready pod --selector=app.kubernetes.io/component=controller --timeout=120s +``` + +Create a `secrets.yaml` file with the following content, replacing ``, ``, and `` with the appropriate values: ```console cat < secrets.yml -platform: - activationKey: "" - externalDependencies: - postgresql_dsn: "" - clickhouse_dsn: "" +activationKey: "" +externalDependencies: + postgresql_dsn: "" + clickhouse_dsn: "" EOF ``` +Create an `ingress.yaml` file with the following content: + +```console +ingress: + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + hosts: + - host: local.cloudquery.io + paths: + - path: / + pathType: ImplementationSpecific +``` + To install the chart with the release name `platform`: ```console $ helm repo add cloudquery https://cloudquery.github.io/helm-charts/ -$ helm install platform -n cloudquery --create-namespace cloudquery/{{ template "chart.name" . }} --values ./secrets.yml +$ helm install platform -n cloudquery --create-namespace cloudquery/{{ template "chart.name" . }} --values ./secrets.yml --values ./ingress.yml +``` + +To access the cloudquery platform, add the following line to your `/etc/hosts` file: + +```console +127.0.0.1 local.cloudquery.io ``` +The cloudquery platform should now be available at [http://local.cloudquery.io](http://local.cloudquery.io). + {{ template "chart.requirementsSection" . }} {{ template "chart.valuesSection" . }} diff --git a/charts/platform/ci/test-values.yaml b/charts/platform/ci/test-values.yaml index 50119938..e4d17713 100644 --- a/charts/platform/ci/test-values.yaml +++ b/charts/platform/ci/test-values.yaml @@ -1,5 +1,4 @@ -platform: - externalDependencies: - # 172.17.0.1 is the default gateway for the docker0 bridge network - postgresql_dsn: "postgres://postgres:pass@172.17.0.1:5432/postgres?sslmode=disable" - clickhouse_dsn: "clickhouse://user:pass@172.17.0.1:9000/assets" +externalDependencies: + # 172.17.0.1 is the default gateway for the docker0 bridge network + postgresql_dsn: "postgres://postgres:pass@172.17.0.1:5432/postgres?sslmode=disable" + clickhouse_dsn: "clickhouse://user:pass@172.17.0.1:9000/assets" diff --git a/charts/platform/templates/NOTES.txt b/charts/platform/templates/NOTES.txt index 17d40aed..98de71fa 100644 --- a/charts/platform/templates/NOTES.txt +++ b/charts/platform/templates/NOTES.txt @@ -1,8 +1,23 @@ -The CloudQuery Platform UI can be accessed via port {{ .Values.platform.service.uiPort }} and the API server via port {{ .Values.platform.service.apiPort }}. +# Pod Access -1. Setup port forwarding to access the UI and API servers by doing the following: +The CloudQuery Platform UI can be accessed directly via the pod on port {{ .Values.service.proxyPort }}. + +1. Setup port forwarding to access the UI by doing the following: export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "platform.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") - kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 3000 4444 + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 3000 2. Visit the UI on http://localhost:3000 using username `admin@localhost` and initial password of `pass` + +{{ if .Values.ingress.enabled }} +# Ingress Access + +The CloudQuery Platform UI can be accessed via the following ingress endpoints: + +{{ range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} + +{{- end }} diff --git a/charts/platform/templates/_helpers.tpl b/charts/platform/templates/_helpers.tpl index d2c2af92..dd8f849a 100644 --- a/charts/platform/templates/_helpers.tpl +++ b/charts/platform/templates/_helpers.tpl @@ -2,7 +2,7 @@ Expand the name of the chart. */}} {{- define "platform.name" -}} -{{- default .Chart.Name .Values.platform.nameOverride | trunc 63 | trimSuffix "-" }} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- end }} {{/* @@ -11,10 +11,10 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this If release name contains chart name it will be used as a full name. */}} {{- define "platform.fullName" -}} -{{- if .Values.platform.fullNameOverride }} -{{- .Values.platform.fullNameOverride | trunc 63 | trimSuffix "-" }} +{{- if .Values.fullNameOverride }} +{{- .Values.fullNameOverride | trunc 63 | trimSuffix "-" }} {{- else }} -{{- $name := default .Chart.Name .Values.platform.nameOverride }} +{{- $name := default .Chart.Name .Values.nameOverride }} {{- if contains $name .Release.Name }} {{- .Release.Name | trunc 63 | trimSuffix "-" }} {{- else }} @@ -54,10 +54,10 @@ app.kubernetes.io/instance: {{ .Release.Name }} Create the name of the service account to use */}} {{- define "platform.serviceAccount" -}} -{{- if .Values.platform.serviceAccount.create }} -{{- default (include "platform.fullName" .) .Values.platform.serviceAccount.name }} +{{- if .Values.serviceAccount.create }} +{{- default (include "platform.fullName" .) .Values.serviceAccount.name }} {{- else }} -{{- default "default" .Values.platform.serviceAccount.name }} +{{- default "default" .Values.serviceAccount.name }} {{- end }} {{- end }} @@ -65,5 +65,5 @@ Create the name of the service account to use Return the image to use depending on the AppVersion and image tag defined */}} {{- define "platform.image" -}} -{{ .Values.platform.image.repository }}:{{ if .Values.platform.image.tag }}{{ .Values.platform.image.tag }}{{ else }}v{{ .Chart.AppVersion }}{{ end }} +{{ .Values.image.repository }}:{{ if .Values.image.tag }}{{ .Values.image.tag }}{{ else }}v{{ .Chart.AppVersion }}{{ end }} {{- end }} diff --git a/charts/platform/templates/deployments.yaml b/charts/platform/templates/deployments.yaml index b711a6d1..865d450a 100644 --- a/charts/platform/templates/deployments.yaml +++ b/charts/platform/templates/deployments.yaml @@ -5,29 +5,29 @@ metadata: labels: {{- include "platform.labels" . | nindent 4 }} spec: - replicas: {{ .Values.platform.replicaCount }} + replicas: {{ .Values.replicaCount }} selector: matchLabels: {{- include "platform.selectorLabels" . | nindent 6 }} template: metadata: - {{- with .Values.platform.podAnnotations }} + {{- with .Values.podAnnotations }} annotations: {{- toYaml . | nindent 8 }} {{- end }} labels: {{- include "platform.labels" . | nindent 8 }} - {{- with .Values.platform.podLabels }} + {{- with .Values.podLabels }} {{- toYaml . | nindent 8 }} {{- end }} spec: - {{- with .Values.platform.imagePullSecrets }} + {{- with .Values.imagePullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} serviceAccountName: {{ include "platform.serviceAccount" . }} securityContext: - {{- toYaml .Values.platform.podSecurityContext | nindent 8 }} + {{- toYaml .Values.podSecurityContext | nindent 8 }} initContainers: - name: {{ .Chart.Name }}-init image: "{{ include "platform.image" . }}" @@ -48,13 +48,13 @@ spec: containers: - name: {{ .Chart.Name }} securityContext: - {{- toYaml .Values.platform.containerSecurityContext | nindent 12 }} + {{- toYaml .Values.containerSecurityContext | nindent 12 }} image: "{{ include "platform.image" . }}" - imagePullPolicy: {{ .Values.platform.image.pullPolicy }} + imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: HOSTNAME value: 0.0.0.0 - {{- if .Values.platform.activationKey }} + {{- if .Values.activationKey }} - name: CQAPI_LOCAL_ACTIVATION_KEY valueFrom: secretKeyRef: @@ -76,23 +76,26 @@ spec: - name: CQAPI_REDIS_ADDR value: redis://{{ .Release.Name }}-redis-master.{{ .Release.Namespace }}.svc.cluster.local:6379 ports: + - name: proxy + containerPort: {{ .Values.service.proxyPort }} + protocol: TCP - name: ui - containerPort: {{ .Values.platform.service.uiPort }} + containerPort: {{ .Values.service.uiPort }} protocol: TCP - name: api - containerPort: {{ .Values.platform.service.apiPort }} + containerPort: {{ .Values.service.apiPort }} protocol: TCP - name: storage - containerPort: {{ .Values.platform.service.storagePort }} + containerPort: {{ .Values.service.storagePort }} protocol: TCP livenessProbe: - {{- toYaml .Values.platform.livenessProbe | nindent 12 }} + {{- toYaml .Values.livenessProbe | nindent 12 }} readinessProbe: - {{- toYaml .Values.platform.readinessProbe | nindent 12 }} + {{- toYaml .Values.readinessProbe | nindent 12 }} resources: - {{- toYaml .Values.platform.resources | nindent 12 }} + {{- toYaml .Values.resources | nindent 12 }} volumeMounts: - {{- with .Values.platform.volumeMounts }} + {{- with .Values.volumeMounts }} {{- toYaml . | nindent 12 }} {{- end }} - name: jwt-private-key @@ -100,21 +103,21 @@ spec: subPath: jwtPrivateKey readOnly: true volumes: - {{- with .Values.platform.volumes }} + {{- with .Values.volumes }} {{- toYaml . | nindent 8 }} {{- end }} - name: jwt-private-key secret: secretName: {{ include "platform.fullName" . }}-secrets - {{- with .Values.platform.nodeSelector }} + {{- with .Values.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.platform.affinity }} + {{- with .Values.affinity }} affinity: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.platform.tolerations }} + {{- with .Values.tolerations }} tolerations: {{- toYaml . | nindent 8 }} {{- end }} diff --git a/charts/platform/templates/ingress.yaml b/charts/platform/templates/ingress.yaml new file mode 100644 index 00000000..91ec3a73 --- /dev/null +++ b/charts/platform/templates/ingress.yaml @@ -0,0 +1,43 @@ +{{- if .Values.ingress.enabled -}} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "platform.fullName" . }} + labels: + {{- include "platform.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- with .Values.ingress.className }} + ingressClassName: {{ . }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- with .pathType }} + pathType: {{ . }} + {{- end }} + backend: + service: + name: {{ include "platform.fullName" $ }} + port: + number: {{ $.Values.service.proxyPort }} + {{- end }} + {{- end }} +{{- end }} diff --git a/charts/platform/templates/secrets.yaml b/charts/platform/templates/secrets.yaml index e10ddcb3..e08a8f06 100644 --- a/charts/platform/templates/secrets.yaml +++ b/charts/platform/templates/secrets.yaml @@ -5,10 +5,10 @@ metadata: namespace: {{ .Release.Namespace }} type: Opaque data: - {{- if .Values.platform.activationKey }} - activationKey: {{ .Values.platform.activationKey | b64enc }} + {{- if .Values.activationKey }} + activationKey: {{ .Values.activationKey | b64enc }} {{- end }} - postgresqlDSN: {{ required "A valid postgres DSN is required" .Values.platform.externalDependencies.postgresql_dsn | b64enc }} - clickhouseDSN: {{ required "A valid clickhouse DSN is required" .Values.platform.externalDependencies.clickhouse_dsn | b64enc }} + postgresqlDSN: {{ required "A valid postgres DSN is required" .Values.externalDependencies.postgresql_dsn | b64enc }} + clickhouseDSN: {{ required "A valid clickhouse DSN is required" .Values.externalDependencies.clickhouse_dsn | b64enc }} jwtPrivateKey: | {{ genPrivateKey "rsa" | b64enc }} diff --git a/charts/platform/templates/services.yaml b/charts/platform/templates/services.yaml index ec35b71c..118434f1 100644 --- a/charts/platform/templates/services.yaml +++ b/charts/platform/templates/services.yaml @@ -5,11 +5,11 @@ metadata: labels: {{- include "platform.labels" . | nindent 4 }} spec: - type: {{ .Values.platform.service.apiType }} + type: {{ .Values.service.proxyType }} ports: - - port: {{ .Values.platform.service.uiPort }} - targetPort: ui + - port: {{ .Values.service.proxyPort }} + targetPort: proxy protocol: TCP - name: ui + name: proxy selector: {{- include "platform.selectorLabels" . | nindent 4 }} diff --git a/charts/platform/values.yaml b/charts/platform/values.yaml index 28aee6b9..7f7523af 100644 --- a/charts/platform/values.yaml +++ b/charts/platform/values.yaml @@ -1,86 +1,104 @@ -platform: - # -- The number of replicas to deploy - replicaCount: 1 - - image: - # -- The image repository to pull from - repository: us-east1-docker.pkg.dev/cq-cloud-prod/platform/full - # -- (string) Overrides the image tag whose default is the chart appVersion - tag: - pullPolicy: IfNotPresent - - # -- Override the default name - nameOverride: "" - # -- Override the full name - fullNameOverride: "" - - serviceAccount: - create: false - automount: true - annotations: {} - name: "" - - # -- Addition pod annotations - podAnnotations: {} - - # -- Addition pod labels - podLabels: {} - - # -- Specify the pod-level security context - podSecurityContext: {} - - # -- Specify the container-level security context - containerSecurityContext: {} - - # -- Specify the ports the container exposes - service: - uiType: ClusterIP - uiPort: 3000 - apiType: ClusterIP - apiPort: 4444 - storageType: ClusterIP - storagePort: 4445 - - # -- Deployment resources - 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: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - - # 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: - periodSeconds: 60 - httpGet: - path: / - port: api - readinessProbe: - periodSeconds: 30 - httpGet: - path: / - port: api - - # -- Additional volumes on the output Deployment definition. - volumes: [] - - # -- Additional volumeMounts on the output Deployment definition. - volumeMounts: [] - - # -- Activation key for the self-hosted platform - activationKey: "" - - externalDependencies: - # -- Required: The DSN for the Postgres database - postgresql_dsn: "" - - # -- Required: The DSN for the ClickHouse database - clickhouse_dsn: "" +# -- The number of replicas to deploy +replicaCount: 1 + +image: + # -- The image repository to pull from + repository: us-east1-docker.pkg.dev/cq-cloud-prod/platform/full + # -- (string) Overrides the image tag whose default is the chart appVersion + tag: + pullPolicy: IfNotPresent + +# -- Override the default name +nameOverride: "" +# -- Override the full name +fullNameOverride: "" + +serviceAccount: + create: false + automount: true + annotations: {} + name: "" + +# -- Addition pod annotations +podAnnotations: {} + +# -- Addition pod labels +podLabels: {} + +# -- Specify the pod-level security context +podSecurityContext: {} + +# -- Specify the container-level security context +containerSecurityContext: {} + +# -- Specify the ports the container exposes +service: + proxyType: ClusterIP + proxyPort: 3000 + uiType: ClusterIP + uiPort: 3001 + apiType: ClusterIP + apiPort: 4444 + storageType: ClusterIP + storagePort: 4445 + +# -- Deployment resources +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: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +# 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: + periodSeconds: 60 + httpGet: + path: / + port: api +readinessProbe: + periodSeconds: 30 + httpGet: + path: / + port: api + +# -- Additional volumes on the output Deployment definition. +volumes: [] + +# -- Additional volumeMounts on the output Deployment definition. +volumeMounts: [] + +# -- Activation key for the self-hosted platform +activationKey: "" + +externalDependencies: + # -- Required: The DSN for the Postgres database + postgresql_dsn: "" + + # -- Required: The DSN for the ClickHouse database + clickhouse_dsn: "" + +# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/ +ingress: + # -- Optional. Enable ingress. + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + hosts: + - host: local.cloudquery.io + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: local-cloudquery-io-tls + # hosts: + # - local.cloudquery.io # -- Redis configuration redis: