ahsen m
03/29/2022, 1:34 AMpersistence:
enabled: true
accessMode: ReadWriteOnce
size: 2G
mountPath: /var/pinot/controller/data
storageClass: ""
extraVolumes:
- name: gcp-credentials-volume
secret:
secretName: gcp-credentials
items:
- key: gcp_creds_json
path: gcp_credentials.json
extraVolumeMounts:
- name: gcp-credentials-volume
mountPath: /opt/pinot/gcp
readOnly: true
but when i run helm template testing --debug . the template it generates does not have any volume mount named `gcp-credentials-volume`, any idea's?
Mayank
Xiang Fu
persistence
Xiang Fu
---
# Source: pinot/templates/controller/statefulset.yaml
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# <http://www.apache.org/licenses/LICENSE-2.0>
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: release-name-pinot-controller
labels:
<http://helm.sh/chart|helm.sh/chart>: pinot-0.2.6-SNAPSHOT
app: pinot
release: release-name
<http://app.kubernetes.io/version|app.kubernetes.io/version>: "0.2.6-SNAPSHOT"
<http://app.kubernetes.io/managed-by|app.kubernetes.io/managed-by>: Helm
heritage: Helm
component: controller
spec:
selector:
matchLabels:
app: pinot
release: release-name
component: controller
serviceName: release-name-pinot-controller-headless
replicas: 1
updateStrategy:
type: RollingUpdate
podManagementPolicy: Parallel
template:
metadata:
labels:
<http://helm.sh/chart|helm.sh/chart>: pinot-0.2.6-SNAPSHOT
app: pinot
release: release-name
<http://app.kubernetes.io/version|app.kubernetes.io/version>: "0.2.6-SNAPSHOT"
<http://app.kubernetes.io/managed-by|app.kubernetes.io/managed-by>: Helm
heritage: Helm
component: controller
annotations:
{}
spec:
terminationGracePeriodSeconds: 30
serviceAccountName: release-name-pinot
securityContext:
{}
nodeSelector:
{}
affinity:
{}
tolerations:
[]
containers:
- name: controller
securityContext:
{}
image: "apachepinot/pinot:latest-jdk11"
imagePullPolicy: IfNotPresent
args: [ "StartController", "-configFileName", "/var/pinot/controller/config/pinot-controller.conf" ]
env:
- name: JAVA_OPTS
value: "-Xms256M -Xmx1G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xlog:gc*:file=/opt/pinot/gc-pinot-controller.log -Dlog4j2.configurationFile=/opt/pinot/conf/log4j2.xml -Dplugins.dir=/opt/pinot/plugins"
envFrom:
[]
ports:
- containerPort: 9000
protocol: TCP
name: controller
volumeMounts:
- name: config
mountPath: /var/pinot/controller/config
- name: data
mountPath: "/var/pinot/controller/data"
- mountPath: /opt/pinot/gcp
name: gcp-credentials-volume
readOnly: true
resources:
{}
restartPolicy: Always
volumes:
- name: config
configMap:
name: release-name-pinot-controller-config
- name: gcp-credentials-volume
secret:
items:
- key: gcp_creds_json
path: gcp_credentials.json
secretName: gcp-credentials
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "2G"
---
Xiang Fu
helm template . --values values.yaml
ahsen m
03/29/2022, 4:51 PM---
apiVersion: v2
name: apache-pinot
description: Apache Pinot
version: 0.1.0
dependencies:
- name: pinot
repository: <https://raw.githubusercontent.com/apache/pinot/master/kubernetes/helm>
version: v0.2.4
...
ahsen m
03/29/2022, 4:51 PM# Default values for Pinot.
pinot:
image:
repository: apachepinot/pinot
tag: latest-jdk11 # release-0.7.1
pullPolicy: IfNotPresent
cluster:
name: pinot-cluster
imagePullSecrets: []
terminationGracePeriodSeconds: 30
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
probes:
initialDelaySeconds: 60
periodSeconds: 10
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: ""
additionalMatchLabels: {}
# ------------------------------------------------------------------------------
# Pinot Controller:
# ------------------------------------------------------------------------------
controller:
name: controller
replicaCount: 1
podManagementPolicy: Parallel
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
probes:
endpoint: "/health"
livenessEnabled: false
readinessEnabled: false
persistence:
enabled: true
accessMode: ReadWriteOnce
size: 2G
mountPath: /var/pinot/controller/data
storageClass: ""
extraVolumes:
- name: gcp-credentials-volume
secret:
secretName: gcp-credentials
items:
- key: gcp_creds_json
path: gcp_credentials.json
extraVolumeMounts:
- name: gcp-credentials-volume
mountPath: /opt/pinot/gcp
readOnly: true
vip:
enabled: false
host: pinot-controller
port: 9000
jvmOpts: "-Xms256M -Xmx1G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xlog:gc*:file=/opt/pinot/gc-pinot-controller.log"
log4j2ConfFile: /opt/pinot/conf/log4j2.xml
pluginsDir: /opt/pinot/plugins
service:
annotations: {}
clusterIP: "None"
externalIPs: []
loadBalancerIP: ""
loadBalancerSourceRanges: []
type: ClusterIP
port: 9000
nodePort: ""
protocol: TCP
name: controller
external:
enabled: false
type: LoadBalancer
port: 9000
annotations: {}
ingress:
v1beta1:
enabled: true
v1:
enabled: false
annotations:
<http://kubernetes.io/ingress.class|kubernetes.io/ingress.class>: nginx
<http://kubernetes.io/tls-acme|kubernetes.io/tls-acme>: "true"
<http://nginx.ingress.kubernetes.io/backend-protocol|nginx.ingress.kubernetes.io/backend-protocol>: "HTTP"
<http://nginx.ingress.kubernetes.io/auth-url|nginx.ingress.kubernetes.io/auth-url>: "<https://auth.stg.domain.com/oauth2/auth>"
<http://nginx.ingress.kubernetes.io/auth-signin|nginx.ingress.kubernetes.io/auth-signin>: "<https://auth.stg.domain.com/oauth2/start?rd=$scheme://$host$request_uri>"
path: /
hosts:
- <http://pinot.stg.domain.com|pinot.stg.domain.com>
tls:
- secretName: pinot.stg.domain.com-cert
hosts:
- <http://pinot.stg.domain.com|pinot.stg.domain.com>
# resources: {}
resources:
requests:
cpu: 1000m
limits:
cpu: 1700m
nodeSelector:
service: pinot-cluster
tolerations: []
affinity: {}
podAnnotations: {}
updateStrategy:
type: RollingUpdate
# Use envFrom to define all of the ConfigMap or Secret data as container environment variables.
# ref: <https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables>
# ref: <https://kubernetes.io/docs/tasks/inject-data-application/distribute-credentials-secure/#configure-all-key-value-pairs-in-a-secret-as-container-environment-variables>
envFrom: []
# - configMapRef:
# name: special-config
# - secretRef:
# name: test-secret
# Use extraEnv to add individual key value pairs as container environment variables.
# ref: <https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/>
# extraEnv: []
# - name: PINOT_CUSTOM_ENV
# value: custom-value
extraEnv:
# - name: AWS_ACCESS_KEY_ID
# value: some-mounted-access-key-id
# - name: AWS_SECRET_ACCESS_KEY
# value: some-mounted-secret-access-key
- name: GOOGLE_APPLICATION_CREDENTIALS
value: /opt/pinot/gcp/gcp_credentials.json
data:
# dir: /var/pinot/controller/data
dir: <s3://some-bucket-for-deep-store>
# Extra configs will be appended to pinot-controller.conf file
extra:
configs: |-
pinot.set.instance.id.to.hostname=true
controller.task.scheduler.enabled=true
controller.local.temp.dir=/tmp/pinot/
# pinot.controller.storage.factory.class.s3=org.apache.pinot.plugin.filesystem.S3PinotFS
# pinot.controller.storage.factory.s3.region=eu-west-1
# pinot.controller.segment.fetcher.protocols=file,http,s3
# pinot.controller.segment.fetcher.s3.class=org.apache.pinot.common.utils.fetcher.PinotFSSegmentFetcher
controller.data.dir=<gs://pinot/somefolder/data/>
controller.enable.split.commit=true
<http://pinot.controller.storage.factory.class.gs|pinot.controller.storage.factory.class.gs>=org.apache.pinot.plugin.filesystem.GcsPinotFS
pinot.controller.storage.factory.gs.projectId=flex-305117
pinot.controller.storage.factory.gs.gcpKey=/opt/pinot/gcp/gcp_credentials.json
pinot.controller.segment.fetcher.protocols=file,http,gs
pinot.controller.segment.fetcher.gs.class=org.apache.pinot.common.utils.fetcher.PinotFSSegmentFetcher
ahsen m
03/29/2022, 4:53 PMgcp-credentials-volume
does not show up in helm template . --values values.yamlahsen m
03/29/2022, 4:57 PM- name: pinot
repository: <https://raw.githubusercontent.com/apache/pinot/master/kubernetes/helm>
version: v0.2.4
ahsen m
03/29/2022, 4:59 PMXiang Fu
Xiang Fu
Xiang Fu
Xiang Fu
Xiang Fu
ahsen m
03/29/2022, 7:21 PMahsen m
03/29/2022, 7:22 PMahsen m
03/29/2022, 7:22 PM# Source: apache-pinot/charts/pinot/templates/controller/statefulset.yaml
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# <http://www.apache.org/licenses/LICENSE-2.0>
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: release-name-pinot-controller
labels:
<http://helm.sh/chart|helm.sh/chart>: pinot-0.2.4
app: pinot
chart: pinot-0.2.4
release: release-name
<http://app.kubernetes.io/version|app.kubernetes.io/version>: "0.2.4"
<http://app.kubernetes.io/managed-by|app.kubernetes.io/managed-by>: Helm
heritage: Helm
component: controller
spec:
selector:
matchLabels:
app: pinot
chart: pinot-0.2.4
release: release-name
component: controller
serviceName: release-name-pinot-controller-headless
replicas: 1
updateStrategy:
type: RollingUpdate
podManagementPolicy: Parallel
template:
metadata:
labels:
<http://helm.sh/chart|helm.sh/chart>: pinot-0.2.4
app: pinot
chart: pinot-0.2.4
release: release-name
<http://app.kubernetes.io/version|app.kubernetes.io/version>: "0.2.4"
<http://app.kubernetes.io/managed-by|app.kubernetes.io/managed-by>: Helm
heritage: Helm
component: controller
annotations:
{}
spec:
terminationGracePeriodSeconds: 30
serviceAccountName: release-name-pinot
securityContext:
{}
nodeSelector:
{}
affinity:
{}
tolerations:
[]
containers:
- name: controller
securityContext:
{}
image: "apachepinot/pinot:latest-jdk11"
imagePullPolicy: IfNotPresent
args: [ "StartController", "-configFileName", "/var/pinot/controller/config/pinot-controller.conf" ]
env:
- name: JAVA_OPTS
value: "-Xms256M -Xmx1G -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -Xlog:gc*:file=/opt/pinot/gc-pinot-controller.log -Dlog4j2.configurationFile=/opt/pinot/conf/log4j2.xml -Dplugins.dir=/opt/pinot/plugins"
envFrom:
[]
ports:
- containerPort: 9000
protocol: TCP
name: controller
volumeMounts:
- name: config
mountPath: /var/pinot/controller/config
- name: data
mountPath: "/var/pinot/controller/data"
resources:
{}
restartPolicy: Always
volumes:
- name: config
configMap:
name: release-name-pinot-controller-config
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "1G"
---
ahsen m
03/29/2022, 7:47 PMXiang Fu
Xiang Fu
ahsen m
03/29/2022, 8:11 PMXiang Fu
ahsen m
03/29/2022, 8:47 PMahsen m
03/29/2022, 8:56 PM---
apiVersion: v2
name: apache-pinot
description: Apache Pinot
version: 0.1.0
dependencies:
- name: pinot
repository: <https://raw.githubusercontent.com/apache/pinot/master/kubernetes/helm>
version: v0.2.5
...
ahsen m
03/29/2022, 8:56 PM% helm dependency build
Hang tight while we grab the latest from your chart repositories...
...Unable to get an update from the "pinot" chart repository (<https://raw.githubusercontent.com/apache/pinot/master/kubernetes/helm>):
error converting YAML to JSON: yaml: line 31: did not find expected key
...Successfully got an update from the "superset" chart repository
...Successfully got an update from the "nginx-stable" chart repository
Update Complete. ⎈Happy Helming!⎈
Error: can't get a valid version for repositories pinot. Try changing the version constraint in Chart.yaml
Xiang Fu
Xiang Fu
Xiang Fu
Xiang Fu
ahsen m
03/29/2022, 9:05 PMXiang Fu
Xiang Fu
extensions/v1beta1
ahsen m
03/29/2022, 9:05 PMahsen m
03/29/2022, 9:05 PMXiang Fu