diff --git a/charts/feast-ui/Chart.yaml b/charts/feast-ui/Chart.yaml new file mode 100644 index 00000000..501ba8fe --- /dev/null +++ b/charts/feast-ui/Chart.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +description: "Feast: ML Feature Store" +name: feast-ui +version: 0.4.0 +maintainers: + - email: caraml-dev@caraml.dev + name: caraml-dev diff --git a/charts/feast-ui/README.md b/charts/feast-ui/README.md new file mode 100644 index 00000000..17bcd67d --- /dev/null +++ b/charts/feast-ui/README.md @@ -0,0 +1,36 @@ +# feast-ui + +![Version: 0.4.0](https://img.shields.io/badge/Version-0.4.0-informational?style=flat-square) + +Feast: ML Feature Store + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| caraml-dev | | | + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| feast_ui.extraVolumeMounts[0].mountPath | string | `"/etc/gcp_service_account"` | | +| feast_ui.extraVolumeMounts[0].name | string | `"service-account"` | | +| feast_ui.extraVolumeMounts[0].readOnly | bool | `true` | | +| feast_ui.extraVolumes[0].name | string | `"service-account"` | | +| feast_ui.extraVolumes[0].secret.items[0].key | string | `"key.json"` | | +| feast_ui.extraVolumes[0].secret.items[0].path | string | `"key.json"` | | +| feast_ui.extraVolumes[0].secret.secretName | string | `"feast-google-service-account"` | | +| feast_ui.image.pullPolicy | string | `"IfNotPresent"` | | +| feast_ui.image.repository | string | `"feast-ui"` | | +| feast_ui.image.tag | string | `nil` | | +| feast_ui.livenessProbe.path | string | `"/api/live"` | | +| feast_ui.readinessProbe.path | string | `"/api/ready"` | | +| feast_ui.replicaCount | string | `"1"` | | +| feast_ui.resources.limits.memory | string | `"256Mi"` | | +| feast_ui.resources.requests.cpu | string | `"100m"` | | +| feast_ui.resources.requests.memory | string | `"128Mi"` | | +| feast_ui.service.type | string | `"ClusterIP"` | | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0) diff --git a/charts/feast-ui/templates/_helpers.tpl b/charts/feast-ui/templates/_helpers.tpl new file mode 100644 index 00000000..8702c22c --- /dev/null +++ b/charts/feast-ui/templates/_helpers.tpl @@ -0,0 +1,20 @@ +{{- define "feast_ui.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end }} + +{{- define "feast_ui.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version -}} +{{- end -}} + +{{- define "feast_ui.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 -}} diff --git a/charts/feast-ui/templates/deployment.yaml b/charts/feast-ui/templates/deployment.yaml new file mode 100644 index 00000000..4d635cf0 --- /dev/null +++ b/charts/feast-ui/templates/deployment.yaml @@ -0,0 +1,68 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "feast_ui.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "feast_ui.fullname" . }} + chart: {{ template "feast_ui.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +{{- if .Values.feast_ui.labels }} +{{ toYaml .Values.feast_ui.labels | indent 4 -}} +{{- end }} +spec: + replicas: {{ .Values.feast_ui.replicaCount }} + selector: + matchLabels: + app: {{ template "feast_ui.fullname" . }} + release: {{ .Release.Name }} + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 4 + maxUnavailable: 0 + template: + metadata: + labels: + app: {{ template "feast_ui.fullname" . }} + release: {{ .Release.Name }} +{{- if .Values.feast_ui.labels }} +{{ toYaml .Values.feast_ui.labels | indent 8 -}} +{{- end }} + spec: + containers: + - name: feast-ui + image: "{{ .Values.feast_ui.image.registry }}{{ .Values.feast_ui.image.repository }}:{{ .Values.feast_ui.image.tag }}" + imagePullPolicy: {{ .Values.feast_ui.image.pullPolicy }} + ports: + - containerPort: {{ .Values.feast_ui.service.internalPort }} + resources: + {{- toYaml .Values.feast_ui.resources | nindent 10 }} + env: + - name: REACT_APP_OAUTH_CLIENT_ID + value: "{{ .Values.feast_ui.oauthClientID }}" + - name: JOBSERVICE_ENDPOINTS + value: "{{ .Values.feast_ui.jobserviceEndpoints }}" + - name: JOBSERVICE_LABELS + value: "{{ .Values.feast_ui.jobserviceLabels }}" + - name: JOB_LOG_URL_TEMPLATE + value: "{{ .Values.feast_ui.jobLogUrlTemplate }}" + - name: FEAST_CORE_ENDPOINT + value: "{{ .Values.feast_ui.coreEndpoint }}" + {{- with .Values.feast_ui.extraEnvs }} + {{- toYaml . | nindent 8 }} + {{- end }} + volumeMounts: + {{- with .Values.feast_ui.extraVolumeMounts }} + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: + {{- with .Values.feast_ui.extraVolumes }} + {{- toYaml . | nindent 6 }} + {{- end }} + +{{- if .Values.feast_ui.nodeSelector }} + nodeSelector: +{{ toYaml .Values.feast_ui.nodeSelector | nindent 8 }} +{{ end -}} \ No newline at end of file diff --git a/charts/feast-ui/templates/service.yaml b/charts/feast-ui/templates/service.yaml new file mode 100644 index 00000000..ce753cbc --- /dev/null +++ b/charts/feast-ui/templates/service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "feast_ui.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "feast_ui.fullname" . }} + chart: {{ template "feast_ui.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +{{- if .Values.feast_ui.labels }} +{{ toYaml .Values.feast_ui.labels | indent 4 -}} +{{- end }} +spec: + type: {{ .Values.feast_ui.service.type }} + ports: + - port: {{ .Values.feast_ui.service.externalPort }} + targetPort: {{ .Values.feast_ui.service.internalPort }} + protocol: TCP + selector: + app: {{ template "feast_ui.fullname" . }} + release: {{ .Release.Name }} \ No newline at end of file diff --git a/charts/feast-ui/values.yaml b/charts/feast-ui/values.yaml new file mode 100644 index 00000000..d10831dd --- /dev/null +++ b/charts/feast-ui/values.yaml @@ -0,0 +1,39 @@ +feast_ui: + image: + pullPolicy: IfNotPresent + repository: feast-ui + # Value will be set at install time using helm --set command + tag: + + service: + type: ClusterIP + + extraVolumes: + - name: service-account + secret: + # Assume secret "feast-google-service-account" with key "key.json" containing + # GCP service account already exists in the Kubernetes cluster + secretName: feast-google-service-account + items: + - key: key.json + path: key.json + + extraVolumeMounts: + - name: service-account + mountPath: "/etc/gcp_service_account" + readOnly: true + + livenessProbe: + path: "/api/live" + + readinessProbe: + path: "/api/ready" + + resources: + requests: + cpu: 100m + memory: 128Mi + limits: + memory: 256Mi + + replicaCount: "1"