Where is the best place to report a bug in the hel...
# gooddata-cn
d
Where is the best place to report a bug in the helm chart? Would love to see the chart on a public repository if it isn’t already.
j
Hi Daniel, Now, there are two possibilities, how you can discuss or describe a problem or bug in Helm chart. Slack channel or https://community.gooddata.com/ So, I would like to ask you for a description, what is going wrong with helm chart?
d
The pass through of
nodeSelector
in the PodSpec is missing from
broker-namespace.yaml
. In our case, this is critical because we have to use
nodeSelector
to avoid ARM nodes. This blocks progress because the
wait-broker-ready
container doesn’t run on ARM and blocks the install. Unrelated, it would be advisable to update the documentation (https://www.gooddata.com/developers/cloud-native/doc/1.3/installation/k8s/helm-chart-installation/) to include
--timeout 10m
to the
helm install pulsar
command as suggested here (https://pulsar.apache.org/docs/en/helm-deploy/)
Adding the following to
broker-namespace.yaml
under
spec.template.spec
fixed it for us:
Copy code
{{- if .Values.nodeSelector }}
      nodeSelector:
        {{- toYaml .Values.nodeSelector | nindent 8 }}
      {{- end }}
m
Hi @Daniel Smith. Thanks for feedback. We actually use the
timeout
option but we miss it in the doc. I will add it. Regarding the node selector - the Pulsar helm chart is common upstream Pulsar helm chart and it is out of our control. However, you can report issue or open PR there https://github.com/apache/pulsar-helm-chart. Or feel free to install your forked version of Pulsar.
r
@Daniel Smith @Milan Sladký The broker-namespace.yaml is a part of our gooddata-cn chart. We will fix the node selector in next release. Thank you for reporting this issue.
💯 1
d
We also had to supply
nodeSelector
in values for each of the dependencies (
posatgresql-ha.pgpool.nodeSelector
,
postgresql-ha.postgresql.nodeSelector
) as well as for pulsar (
zookeeper.nodeSelector
,
bookkeeper.nodeSelector
,
broker.nodeSelector
)
Finally (not a bug) and also very unrelated: We don’t use nginx for ingress because we terminate through
cloudflared
(it supplies a direct connection to Cloudflare to serve traffic from their edge). Here is the config yaml for `cloudflared`: (unfortunately the service names and ports aren’t variable)
Copy code
protocol: http2
ingress:
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/actions/workspaces/[^/]+/execution/afm/execute
    service: <http://gooddata-cn-afm-exec-api.gooddata-cn.svc.cluster.local:9000>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/actions/workspaces/[^/]+/execution/collectLabelElements
    service: <http://gooddata-cn-afm-exec-api.gooddata-cn.svc.cluster.local:9000>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/actions/workspaces/[^/]+/execution/afm/computeValidObjects
    service: <http://gooddata-cn-afm-exec-api.gooddata-cn.svc.cluster.local:9000>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/actions/workspaces/[^/]+/execution/afm/execute/result
    service: <http://gooddata-cn-afm-exec-api.gooddata-cn.svc.cluster.local:9000>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/schemas/afm
    service: <http://gooddata-cn-afm-exec-api.gooddata-cn.svc.cluster.local:9000>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /analyze
    service: <http://gooddata-cn-analytical-designer.gooddata-cn.svc.cluster.local:9300>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /dashboards
    service: <http://gooddata-cn-dashboards.gooddata-cn.svc.cluster.local:9500>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/auth
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/schemas/auth
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /login
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /oauth2
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /logout
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /appLogin
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/profile
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/license
    service: <http://gooddata-cn-auth-service.gooddata-cn.svc.cluster.local:9050>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /modeler
    service: <http://gooddata-cn-ldm-modeler.gooddata-cn.svc.cluster.local:9400>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/actions/dataSources/[^/]+/scan
    service: <http://gooddata-cn-scan-model.gooddata-cn.svc.cluster.local:9060>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/actions/dataSources/[^/]+/test
    service: <http://gooddata-cn-scan-model.gooddata-cn.svc.cluster.local:9060>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/actions/dataSource/test
    service: <http://gooddata-cn-scan-model.gooddata-cn.svc.cluster.local:9060>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api/schemas/scan
    service: <http://gooddata-cn-scan-model.gooddata-cn.svc.cluster.local:9060>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /apidocs
    service: <http://gooddata-cn-apidocs.gooddata-cn.svc.cluster.local:9999>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /api
    service: <http://gooddata-cn-metadata-api.gooddata-cn.svc.cluster.local:9007>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /
    service: <http://gooddata-cn-home-ui.gooddata-cn.svc.cluster.local:9600>
  - hostname: <http://analytics.example.com|analytics.example.com>
    path: /measures
    service: <http://gooddata-cn-measure-editor.gooddata-cn.svc.cluster.local:9700>
  - hostname: <http://auth.example.com|auth.example.com>
    path: /dex
    service: <http://gooddata-cn-dex.gooddata-cn.svc.cluster.local:32000>