From b5ed18b8529f5d73b22afab702d5db9d19289fa0 Mon Sep 17 00:00:00 2001 From: Jonathon Byrdziak Date: Fri, 10 Nov 2023 10:19:01 -0500 Subject: [PATCH 1/5] initial application setup for dremio --- dremio/Pluralfile | 6 ++ dremio/helm/dremio/.helmignore | 23 ++++ dremio/helm/dremio/Chart.yaml | 14 +++ dremio/helm/dremio/README.md | 1 + dremio/helm/dremio/charts/dremio-2.0.0.tgz | Bin 0 -> 33617 bytes dremio/helm/dremio/deps.yaml | 38 +++++++ dremio/helm/dremio/templates/NOTES.txt | 22 ++++ dremio/helm/dremio/templates/_helpers.tpl | 62 +++++++++++ dremio/helm/dremio/templates/deployment.yaml | 61 +++++++++++ dremio/helm/dremio/templates/hpa.yaml | 32 ++++++ dremio/helm/dremio/templates/ingress.yaml | 61 +++++++++++ dremio/helm/dremio/templates/service.yaml | 15 +++ .../helm/dremio/templates/serviceaccount.yaml | 12 +++ .../templates/tests/test-connection.yaml | 15 +++ dremio/helm/dremio/values.yaml | 101 ++++++++++++++++++ dremio/helm/dremio/values.yaml.tpl | 8 ++ dremio/plural/notes.tpl | 1 + dremio/plural/recipes/dremio-aws.yaml | 26 +++++ dremio/plural/recipes/dremio-azure.yaml | 23 ++++ dremio/plural/recipes/dremio-gcp.yaml | 23 ++++ dremio/repository.yaml | 6 ++ dremio/terraform/aws/deps.yaml | 13 +++ dremio/terraform/aws/main.tf | 32 ++++++ dremio/terraform/aws/terraform.tfvars | 2 + dremio/terraform/aws/variables.tf | 8 ++ dremio/terraform/azure/deps.yaml | 13 +++ dremio/terraform/azure/main.tf | 13 +++ dremio/terraform/azure/terraform.tfvars | 2 + dremio/terraform/azure/variables.tf | 8 ++ dremio/terraform/gcp/deps.yaml | 13 +++ dremio/terraform/gcp/main.tf | 13 +++ dremio/terraform/gcp/terraform.tfvars | 2 + dremio/terraform/gcp/variables.tf | 8 ++ 33 files changed, 677 insertions(+) create mode 100644 dremio/Pluralfile create mode 100644 dremio/helm/dremio/.helmignore create mode 100644 dremio/helm/dremio/Chart.yaml create mode 100644 dremio/helm/dremio/README.md create mode 100644 dremio/helm/dremio/charts/dremio-2.0.0.tgz create mode 100644 dremio/helm/dremio/deps.yaml create mode 100644 dremio/helm/dremio/templates/NOTES.txt create mode 100644 dremio/helm/dremio/templates/_helpers.tpl create mode 100644 dremio/helm/dremio/templates/deployment.yaml create mode 100644 dremio/helm/dremio/templates/hpa.yaml create mode 100644 dremio/helm/dremio/templates/ingress.yaml create mode 100644 dremio/helm/dremio/templates/service.yaml create mode 100644 dremio/helm/dremio/templates/serviceaccount.yaml create mode 100644 dremio/helm/dremio/templates/tests/test-connection.yaml create mode 100644 dremio/helm/dremio/values.yaml create mode 100644 dremio/helm/dremio/values.yaml.tpl create mode 100644 dremio/plural/notes.tpl create mode 100644 dremio/plural/recipes/dremio-aws.yaml create mode 100644 dremio/plural/recipes/dremio-azure.yaml create mode 100644 dremio/plural/recipes/dremio-gcp.yaml create mode 100644 dremio/repository.yaml create mode 100644 dremio/terraform/aws/deps.yaml create mode 100644 dremio/terraform/aws/main.tf create mode 100644 dremio/terraform/aws/terraform.tfvars create mode 100644 dremio/terraform/aws/variables.tf create mode 100644 dremio/terraform/azure/deps.yaml create mode 100644 dremio/terraform/azure/main.tf create mode 100644 dremio/terraform/azure/terraform.tfvars create mode 100644 dremio/terraform/azure/variables.tf create mode 100644 dremio/terraform/gcp/deps.yaml create mode 100644 dremio/terraform/gcp/main.tf create mode 100644 dremio/terraform/gcp/terraform.tfvars create mode 100644 dremio/terraform/gcp/variables.tf diff --git a/dremio/Pluralfile b/dremio/Pluralfile new file mode 100644 index 000000000..616c0fb44 --- /dev/null +++ b/dremio/Pluralfile @@ -0,0 +1,6 @@ +REPO dremio +ATTRIBUTES CapitalAudience repository.yaml + +TF terraform/* +HELM helm/* +RECIPE plural/recipes/* diff --git a/dremio/helm/dremio/.helmignore b/dremio/helm/dremio/.helmignore new file mode 100644 index 000000000..0e8a0eb36 --- /dev/null +++ b/dremio/helm/dremio/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/dremio/helm/dremio/Chart.yaml b/dremio/helm/dremio/Chart.yaml new file mode 100644 index 000000000..43cde317c --- /dev/null +++ b/dremio/helm/dremio/Chart.yaml @@ -0,0 +1,14 @@ +apiVersion: v2 +name: dremio +description: helm chart for dremio +type: application +version: 0.1.0 +appVersion: "v1.0.0" + +dependencies: +- name: postgres + version: 0.1.5 + repository: https://pluralsh.github.io/module-library +- name: dremio + version: 2.0.0 + repository: https://github.com/dremio/dremio-cloud-tools \ No newline at end of file diff --git a/dremio/helm/dremio/README.md b/dremio/helm/dremio/README.md new file mode 100644 index 000000000..bdc433920 --- /dev/null +++ b/dremio/helm/dremio/README.md @@ -0,0 +1 @@ +A helm chart for dremio \ No newline at end of file diff --git a/dremio/helm/dremio/charts/dremio-2.0.0.tgz b/dremio/helm/dremio/charts/dremio-2.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..3f64534248dd471c3dfcabbeda7bf8cb6a50c799 GIT binary patch literal 33617 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 literal 0 HcmV?d00001 diff --git a/dremio/helm/dremio/deps.yaml b/dremio/helm/dremio/deps.yaml new file mode 100644 index 000000000..679942f02 --- /dev/null +++ b/dremio/helm/dremio/deps.yaml @@ -0,0 +1,38 @@ +apiVersion: plural.sh/v1alpha1 +kind: Dependencies +metadata: + application: true + description: Deploys dremio crafted for the target cloud +spec: + dependencies: + - type: helm + name: bootstrap + repo: bootstrap + version: '>= 0.5.1' + + - type: helm + name: ingress-nginx + repo: ingress-nginx + version: ">= 0.1.2" + + + - type: helm + name: postgres + repo: postgres + version: ">= 0.1.6" + + - type: terraform + name: aws + repo: dremio + version: '>= 0.1.0' + optional: true + - type: terraform + name: azure + repo: dremio + version: '>= 0.1.0' + optional: true + - type: terraform + name: gcp + repo: dremio + version: '>= 0.1.0' + optional: true \ No newline at end of file diff --git a/dremio/helm/dremio/templates/NOTES.txt b/dremio/helm/dremio/templates/NOTES.txt new file mode 100644 index 000000000..2d557bddc --- /dev/null +++ b/dremio/helm/dremio/templates/NOTES.txt @@ -0,0 +1,22 @@ +1. Get the application URL by running these commands: +{{- if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "dremio.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "dremio.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "dremio.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "dremio.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/dremio/helm/dremio/templates/_helpers.tpl b/dremio/helm/dremio/templates/_helpers.tpl new file mode 100644 index 000000000..74c3f464a --- /dev/null +++ b/dremio/helm/dremio/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "dremio.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 "dremio.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 "dremio.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "dremio.labels" -}} +helm.sh/chart: {{ include "dremio.chart" . }} +{{ include "dremio.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "dremio.selectorLabels" -}} +app.kubernetes.io/name: {{ include "dremio.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "dremio.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "dremio.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/dremio/helm/dremio/templates/deployment.yaml b/dremio/helm/dremio/templates/deployment.yaml new file mode 100644 index 000000000..84a7af25d --- /dev/null +++ b/dremio/helm/dremio/templates/deployment.yaml @@ -0,0 +1,61 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "dremio.fullname" . }} + labels: + {{- include "dremio.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "dremio.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "dremio.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "dremio.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.port }} + protocol: TCP + livenessProbe: + httpGet: + path: / + port: http + readinessProbe: + httpGet: + path: / + port: http + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- 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/dremio/helm/dremio/templates/hpa.yaml b/dremio/helm/dremio/templates/hpa.yaml new file mode 100644 index 000000000..e01e2b053 --- /dev/null +++ b/dremio/helm/dremio/templates/hpa.yaml @@ -0,0 +1,32 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "dremio.fullname" . }} + labels: + {{- include "dremio.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "dremio.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/dremio/helm/dremio/templates/ingress.yaml b/dremio/helm/dremio/templates/ingress.yaml new file mode 100644 index 000000000..390f4fb1c --- /dev/null +++ b/dremio/helm/dremio/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "dremio.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "dremio.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- 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 }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/dremio/helm/dremio/templates/service.yaml b/dremio/helm/dremio/templates/service.yaml new file mode 100644 index 000000000..3a009ebc0 --- /dev/null +++ b/dremio/helm/dremio/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "dremio.fullname" . }} + labels: + {{- include "dremio.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "dremio.selectorLabels" . | nindent 4 }} diff --git a/dremio/helm/dremio/templates/serviceaccount.yaml b/dremio/helm/dremio/templates/serviceaccount.yaml new file mode 100644 index 000000000..401966f4c --- /dev/null +++ b/dremio/helm/dremio/templates/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "dremio.serviceAccountName" . }} + labels: + {{- include "dremio.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/dremio/helm/dremio/templates/tests/test-connection.yaml b/dremio/helm/dremio/templates/tests/test-connection.yaml new file mode 100644 index 000000000..6349d4934 --- /dev/null +++ b/dremio/helm/dremio/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "dremio.fullname" . }}-test-connection" + labels: + {{- include "dremio.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "dremio.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/dremio/helm/dremio/values.yaml b/dremio/helm/dremio/values.yaml new file mode 100644 index 000000000..ee4402528 --- /dev/null +++ b/dremio/helm/dremio/values.yaml @@ -0,0 +1,101 @@ +# The Dremio image used in the cluster. +# +# It is *highly* recommended to update the version tag to +# the version that you are using. This will ensure that all +# the pods are using the same version of the software. If +# you are directly consuming Dremio's images from Docker Hub, +# when specifying which version to use, it is best to use the +# full version tag in the form X.Y.Z (i.e. 21.1.0), as image +# tags in the form X.Y (i.e. 21.1) are updated with the latest +# patch version released. +# +# Using the image tag latest or in the form X.Y +# will potentially cause Dremio to upgrade versions +# automatically during redeployments and may negatively impact +# the cluster. +image: dremio/dremio-oss +imageTag: 24.2.5 + +# Annotations, labels, node selectors, and tolerations +# +# annotations: Annotations are applied to the StatefulSets that are deployed. +# podAnnotations: Pod annotations are applied to the pods that are deployed. +# labels: Labels operate much like annotations. +# podLabels: Labels that are applied to the pods that are deployed. +# nodeSelector: Target pods to nodes based on labels set on the nodes. For more +# information, see https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector +# tolerations: Tolerations allow the negation of taints that have been applied to some set of nodes +# in the Kubernetes cluster so that pods can be scheduled on those tainted nodes. +annotations: {} +podAnnotations: {} +labels: {} +podLabels: {} +nodeSelector: {} +tolerations: [] + +replicaCount: 1 + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: 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: "dremio" + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +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 + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +affinity: {} diff --git a/dremio/helm/dremio/values.yaml.tpl b/dremio/helm/dremio/values.yaml.tpl new file mode 100644 index 000000000..1bbf0745b --- /dev/null +++ b/dremio/helm/dremio/values.yaml.tpl @@ -0,0 +1,8 @@ +dremio: + ingress: + tls: + - hosts: + - { { .Values.hostname } } + secretName: dremio-tls + hosts: + - { { .Values.hostname } } \ No newline at end of file diff --git a/dremio/plural/notes.tpl b/dremio/plural/notes.tpl new file mode 100644 index 000000000..94d32bf2a --- /dev/null +++ b/dremio/plural/notes.tpl @@ -0,0 +1 @@ +Use `plural watch dremio` to track the status of your application \ No newline at end of file diff --git a/dremio/plural/recipes/dremio-aws.yaml b/dremio/plural/recipes/dremio-aws.yaml new file mode 100644 index 000000000..0c3036950 --- /dev/null +++ b/dremio/plural/recipes/dremio-aws.yaml @@ -0,0 +1,26 @@ +name: dremio-aws +description: Installs dremio on an aws eks cluster +provider: AWS +primary: true +dependencies: +- repo: bootstrap + name: aws-k8s + +- repo: ingress-nginx + name: ingress-nginx-aws + + +- repo: postgres + name: aws-postgres + +sections: +- name: dremio + configuration: # Users will be asked to input values for these parameters + - name: hostname + documentation: Fully Qualified Domain Name to use for your hasura installation, eg hasura.topleveldomain.com if topleveldomain.com is the domain you inputed for dns_domain above. + type: DOMAIN + items: + - type: TERRAFORM + name: aws + - type: HELM + name: dremio diff --git a/dremio/plural/recipes/dremio-azure.yaml b/dremio/plural/recipes/dremio-azure.yaml new file mode 100644 index 000000000..f943bfedb --- /dev/null +++ b/dremio/plural/recipes/dremio-azure.yaml @@ -0,0 +1,23 @@ +name: dremio-azure +description: Installs dremio on an aws eks cluster +provider: AZURE +primary: true +dependencies: +- repo: bootstrap + name: azure-k8s + +- repo: ingress-nginx + name: ingress-nginx-azure + + +- repo: postgres + name: azure-postgres + +sections: +- name: dremio + configuration: [] + items: + - type: TERRAFORM + name: azure + - type: HELM + name: dremio diff --git a/dremio/plural/recipes/dremio-gcp.yaml b/dremio/plural/recipes/dremio-gcp.yaml new file mode 100644 index 000000000..cf4a8d2aa --- /dev/null +++ b/dremio/plural/recipes/dremio-gcp.yaml @@ -0,0 +1,23 @@ +name: dremio-gcp +description: Installs dremio on an aws eks cluster +provider: GCP +primary: true +dependencies: +- repo: bootstrap + name: gcp-k8s + +- repo: ingress-nginx + name: ingress-nginx-gcp + + +- repo: postgres + name: gcp-postgres + +sections: +- name: dremio + configuration: [] + items: + - type: TERRAFORM + name: gcp + - type: HELM + name: dremio diff --git a/dremio/repository.yaml b/dremio/repository.yaml new file mode 100644 index 000000000..e6f9151d5 --- /dev/null +++ b/dremio/repository.yaml @@ -0,0 +1,6 @@ +name: dremio +description: dremio deployed on plural +category: DATA +private: true +icon: plural/icons/dremio.png +notes: plural/notes.tpl diff --git a/dremio/terraform/aws/deps.yaml b/dremio/terraform/aws/deps.yaml new file mode 100644 index 000000000..9707130c6 --- /dev/null +++ b/dremio/terraform/aws/deps.yaml @@ -0,0 +1,13 @@ +apiVersion: plural.sh/v1alpha1 +kind: Dependencies +metadata: + description: dremio aws setup + version: 0.1.0 +spec: + dependencies: + - name: aws-bootstrap + repo: bootstrap + type: terraform + version: '>= 0.1.1' + providers: + - aws \ No newline at end of file diff --git a/dremio/terraform/aws/main.tf b/dremio/terraform/aws/main.tf new file mode 100644 index 000000000..6a7021b31 --- /dev/null +++ b/dremio/terraform/aws/main.tf @@ -0,0 +1,32 @@ +resource "kubernetes_namespace" "dremio" { + metadata { + name = var.namespace + labels = { + "app.kubernetes.io/managed-by" = "plural" + "app.plural.sh/name" = "dremio" + + "platform.plural.sh/sync-target" = "pg" + + } + } +} + + +data "aws_iam_role" "postgres" { + name = "${var.cluster_name}-postgres" +} + +resource "kubernetes_service_account" "postgres" { + metadata { + name = "postgres-pod" + namespace = var.namespace + + annotations = { + "eks.amazonaws.com/role-arn" = data.aws_iam_role.postgres.arn + } + } + + depends_on = [ + kubernetes_namespace.dremio + ] +} diff --git a/dremio/terraform/aws/terraform.tfvars b/dremio/terraform/aws/terraform.tfvars new file mode 100644 index 000000000..961103ecf --- /dev/null +++ b/dremio/terraform/aws/terraform.tfvars @@ -0,0 +1,2 @@ +namespace = {{ .Namespace | quote }} +cluster_name = {{ .Cluster | quote }} \ No newline at end of file diff --git a/dremio/terraform/aws/variables.tf b/dremio/terraform/aws/variables.tf new file mode 100644 index 000000000..bb8ac2aa2 --- /dev/null +++ b/dremio/terraform/aws/variables.tf @@ -0,0 +1,8 @@ +variable "namespace" { + type = string + default = "dremio" +} + +variable "cluster_name" { + type = string +} diff --git a/dremio/terraform/azure/deps.yaml b/dremio/terraform/azure/deps.yaml new file mode 100644 index 000000000..752afd554 --- /dev/null +++ b/dremio/terraform/azure/deps.yaml @@ -0,0 +1,13 @@ +apiVersion: plural.sh/v1alpha1 +kind: Dependencies +metadata: + description: dremio azure setup + version: 0.1.0 +spec: + dependencies: + - name: azure-bootstrap + repo: bootstrap + type: terraform + version: '>= 0.1.1' + providers: + - azure \ No newline at end of file diff --git a/dremio/terraform/azure/main.tf b/dremio/terraform/azure/main.tf new file mode 100644 index 000000000..459c6b2cb --- /dev/null +++ b/dremio/terraform/azure/main.tf @@ -0,0 +1,13 @@ +resource "kubernetes_namespace" "dremio" { + metadata { + name = var.namespace + labels = { + "app.kubernetes.io/managed-by" = "plural" + "app.plural.sh/name" = "dremio" + + "platform.plural.sh/sync-target" = "pg" + + } + } +} + diff --git a/dremio/terraform/azure/terraform.tfvars b/dremio/terraform/azure/terraform.tfvars new file mode 100644 index 000000000..961103ecf --- /dev/null +++ b/dremio/terraform/azure/terraform.tfvars @@ -0,0 +1,2 @@ +namespace = {{ .Namespace | quote }} +cluster_name = {{ .Cluster | quote }} \ No newline at end of file diff --git a/dremio/terraform/azure/variables.tf b/dremio/terraform/azure/variables.tf new file mode 100644 index 000000000..bb8ac2aa2 --- /dev/null +++ b/dremio/terraform/azure/variables.tf @@ -0,0 +1,8 @@ +variable "namespace" { + type = string + default = "dremio" +} + +variable "cluster_name" { + type = string +} diff --git a/dremio/terraform/gcp/deps.yaml b/dremio/terraform/gcp/deps.yaml new file mode 100644 index 000000000..07e253d1e --- /dev/null +++ b/dremio/terraform/gcp/deps.yaml @@ -0,0 +1,13 @@ +apiVersion: plural.sh/v1alpha1 +kind: Dependencies +metadata: + description: dremio gcp setup + version: 0.1.0 +spec: + dependencies: + - name: gcp-bootstrap + repo: bootstrap + type: terraform + version: '>= 0.1.1' + providers: + - gcp \ No newline at end of file diff --git a/dremio/terraform/gcp/main.tf b/dremio/terraform/gcp/main.tf new file mode 100644 index 000000000..459c6b2cb --- /dev/null +++ b/dremio/terraform/gcp/main.tf @@ -0,0 +1,13 @@ +resource "kubernetes_namespace" "dremio" { + metadata { + name = var.namespace + labels = { + "app.kubernetes.io/managed-by" = "plural" + "app.plural.sh/name" = "dremio" + + "platform.plural.sh/sync-target" = "pg" + + } + } +} + diff --git a/dremio/terraform/gcp/terraform.tfvars b/dremio/terraform/gcp/terraform.tfvars new file mode 100644 index 000000000..961103ecf --- /dev/null +++ b/dremio/terraform/gcp/terraform.tfvars @@ -0,0 +1,2 @@ +namespace = {{ .Namespace | quote }} +cluster_name = {{ .Cluster | quote }} \ No newline at end of file diff --git a/dremio/terraform/gcp/variables.tf b/dremio/terraform/gcp/variables.tf new file mode 100644 index 000000000..bb8ac2aa2 --- /dev/null +++ b/dremio/terraform/gcp/variables.tf @@ -0,0 +1,8 @@ +variable "namespace" { + type = string + default = "dremio" +} + +variable "cluster_name" { + type = string +} From 64e802d3a2aa5d08deaab287d8088463ed658eb6 Mon Sep 17 00:00:00 2001 From: Jonathon Byrdziak Date: Fri, 10 Nov 2023 10:33:35 -0500 Subject: [PATCH 2/5] Add contributors --- dremio/repository.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dremio/repository.yaml b/dremio/repository.yaml index e6f9151d5..2698ef0b0 100644 --- a/dremio/repository.yaml +++ b/dremio/repository.yaml @@ -4,3 +4,5 @@ category: DATA private: true icon: plural/icons/dremio.png notes: plural/notes.tpl +contributors: +- jonathon@capitalaudience.com \ No newline at end of file From 09cbdb649a74a1ab8a1bb0d1f4410b63bd1a9973 Mon Sep 17 00:00:00 2001 From: Jonathon Byrdziak Date: Fri, 10 Nov 2023 10:38:36 -0500 Subject: [PATCH 3/5] Add dremio dashboard --- dremio/helm/dremio/templates/dashboards.yaml | 56 ++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 dremio/helm/dremio/templates/dashboards.yaml diff --git a/dremio/helm/dremio/templates/dashboards.yaml b/dremio/helm/dremio/templates/dashboards.yaml new file mode 100644 index 000000000..1b41e6ece --- /dev/null +++ b/dremio/helm/dremio/templates/dashboards.yaml @@ -0,0 +1,56 @@ +apiVersion: platform.plural.sh/v1alpha1 +kind: Dashboard +metadata: + name: dremio-postgres +spec: + name: postgres # name of the dashboard in the console UI + description: Monitoring for hasura's postgres db # short description + timeslices: [30m, 1h, 2h, 1d] # durations options to allow display for + defaultTime: 30m + labels: # global values to slice the dashboard further + - name: instance + query: + query: pg_stat_database_tup_fetched{namespace="{{ .Release.Namespace }}"} + label: instance + graphs: + - queries: # list of grouped prometheus queries per graph + - query: SUM(pg_stat_database_tup_fetched{instance=~"$instance"}) + legend: tuples fetched + - query: SUM(pg_stat_database_tup_inserted{instance=~"$instance"}) + legend: tuples inserted + - query: SUM(pg_stat_database_tup_updated{instance=~"$instance"}) + legend: tuples updated + name: Storage Performance + - queries: + - query: pg_settings_max_connections{instance="$instance"} + legend: connections + name: Max Connections + - queries: + - query: avg(rate(process_cpu_seconds_total{instance="$instance"}[5m]) * 1000) + legend: seconds + name: CPU time + - queries: + - query: avg(rate(process_resident_memory_bytes{instance="$instance"}[5m])) + legend: resident mem + - query: avg(rate(process_virtual_memory_bytes{instance="$instance"}[5m])) + legend: process mem + format: bytes + name: Memory utilization + - queries: + - query: process_open_fds{instance="$instance"} + legend: fds + name: Open file descriptors + - queries: + - query: pg_settings_max_wal_size_bytes{instance="$instance"} + legend: WAL size + name: Max WAL size + - queries: + - query: irate(pg_stat_database_xact_commit{instance="$instance"}[5m]) + legend: commits + - query: irate(pg_stat_database_xact_rollback{instance="$instance"}[5m]) + legend: rollbacks + name: Transactions + - queries: + - query: pg_stat_database_blks_hit{instance="$instance"} / (pg_stat_database_blks_read{instance="$instance"} + pg_stat_database_blks_hit{instance="$instance"}) + legend: hit rate + name: Cache hit rate \ No newline at end of file From 4b9789d9ead120e94bea3f1b2e12fa881c118446 Mon Sep 17 00:00:00 2001 From: Jonathon Byrdziak Date: Fri, 10 Nov 2023 11:15:00 -0500 Subject: [PATCH 4/5] Changed attributes plural repository --- dremio/Pluralfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dremio/Pluralfile b/dremio/Pluralfile index 616c0fb44..cda5e5135 100644 --- a/dremio/Pluralfile +++ b/dremio/Pluralfile @@ -1,5 +1,5 @@ REPO dremio -ATTRIBUTES CapitalAudience repository.yaml +ATTRIBUTES Plural repository.yaml TF terraform/* HELM helm/* From dc6c49cf752fc4bc1bdf6464360affb0eae77bbd Mon Sep 17 00:00:00 2001 From: Jonathon Byrdziak Date: Fri, 10 Nov 2023 12:00:39 -0500 Subject: [PATCH 5/5] Add dremio icon --- dremio/plural/icons/dremio.png | Bin 0 -> 5537 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 dremio/plural/icons/dremio.png diff --git a/dremio/plural/icons/dremio.png b/dremio/plural/icons/dremio.png new file mode 100644 index 0000000000000000000000000000000000000000..6a1fe52e4deca15a15a8bea5540ab36e83fad8d3 GIT binary patch literal 5537 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 literal 0 HcmV?d00001