Coder Social home page Coder Social logo

helm-charts's Introduction

Kubernetes Helm Charts for Trickster

License

This functionality is in beta and is subject to change. The code is provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.

Usage

Helm must be installed to use the charts. Please refer to Helm's documentation to get started.

Once Helm is set up properly, add the repo as follows:

$ helm repo add tricksterproxy https://helm.tricksterproxy.io/

You can then run helm search repo tricksterproxy to see the charts.

Contributing

We'd love to have you contribute! Please refer to our contribution guidelines for details.

License

Apache 2.0 License.

helm-charts's People

Contributors

jarett-cyxtera avatar jranson avatar limitlessearth avatar nlamirault avatar velothump avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

helm-charts's Issues

Error in trickster log

Hi all,
I used trickster as proxy server for prometheus on k8s. I using helm chart to deploy trickster and value.yaml content as below:

origins:
  - name: default
    originType: prometheus
    originURL: http://prometheus-server.monitoring:8080
    timeoutSecs: "60"
    keepAliveTimeoutSecs: "180"
caches:
  - name: default
    cacheType: memory
    volumeName: trickster
    index:
      maxSizeBytes: "2147482548"
image:
  repository: tricksterproxy/trickster
  tag: "latest"
  pullPolicy: Always
volumes:
  generic:
    type: "generic"
    enabled: false
    mountPath: "/tmp/trickster"
resources:
  limits:
    cpu: 1000m
    memory: 1Gi
  requests:
    cpu: 100m
    memory: 128Mi

I got the error in Trickster log pod as the following:

time=2020-11-11T09:18:36.703819952Z app=trickster caller=proxy/engines/deltaproxycache.go:488 level=error event="unexpected upstream response" clientRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range clientRequestMethod=POST clientRequestHeaders="unsupported value type" upstreamRequestMethod=POST upstreamRequestHeaders="{[Content-Length:276],[Content-Type:application/x-www-form-urlencoded],[Forwarded:for=10.42.187.67;proto=http],[User-Agent:Go-http-client/1.1],[Via:HTTP/1.1 trickster-588c65fc47-qpqn2]}" statusCode=400 upstreamRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range upstreamResponseHeaders="{[Cache-Control:s-maxage=21600],[Content-Type:application/json],[Date:Wed, 11 Nov 2020 09:18:36 GMT]}" upstreamResponseBody="{\"status\":\"error\",\"errorType\":\"bad_data\",\"error\":\"1:135: parse error: missing unit character in duration\"}"
time=2020-11-11T09:18:36.708131332Z app=trickster caller=proxy/engines/deltaproxycache.go:488 level=error event="unexpected upstream response" statusCode=400 clientRequestMethod=POST upstreamRequestMethod=POST upstreamRequestHeaders="{[Content-Length:274],[Content-Type:application/x-www-form-urlencoded],[Forwarded:for=10.42.187.67;proto=http],[User-Agent:Go-http-client/1.1],[Via:HTTP/1.1 trickster-588c65fc47-qpqn2]}" clientRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range clientRequestHeaders="unsupported value type" upstreamRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range upstreamResponseHeaders="{[Cache-Control:s-maxage=21600],[Content-Type:application/json],[Date:Wed, 11 Nov 2020 09:18:36 GMT]}" upstreamResponseBody="{\"status\":\"error\",\"errorType\":\"bad_data\",\"error\":\"1:135: parse error: missing unit character in duration\"}"
time=2020-11-11T09:18:36.711124288Z app=trickster caller=proxy/engines/deltaproxycache.go:488 level=error event="unexpected upstream response" statusCode=400 clientRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range clientRequestMethod=POST clientRequestHeaders="unsupported value type" upstreamRequestHeaders="{[Content-Length:274],[Content-Type:application/x-www-form-urlencoded],[Forwarded:for=10.42.187.67;proto=http],[User-Agent:Go-http-client/1.1],[Via:HTTP/1.1 trickster-588c65fc47-qpqn2]}" upstreamResponseBody="{\"status\":\"error\",\"errorType\":\"bad_data\",\"error\":\"1:135: parse error: missing unit character in duration\"}" upstreamRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range upstreamRequestMethod=POST upstreamResponseHeaders="{[Cache-Control:s-maxage=21600],[Content-Type:application/json],[Date:Wed, 11 Nov 2020 09:18:36 GMT]}"
time=2020-11-11T09:19:12.787977014Z app=trickster caller=proxy/engines/deltaproxycache.go:488 level=error event="unexpected upstream response" clientRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range clientRequestMethod=POST upstreamRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range upstreamResponseHeaders="{[Cache-Control:s-maxage=21600],[Content-Type:application/json],[Date:Wed, 11 Nov 2020 09:19:12 GMT]}" upstreamResponseBody="{\"status\":\"error\",\"errorType\":\"bad_data\",\"error\":\"1:135: parse error: missing unit character in duration\"}" statusCode=400 upstreamRequestMethod=POST upstreamRequestHeaders="{[Content-Length:276],[Content-Type:application/x-www-form-urlencoded],[Forwarded:for=10.42.187.67;proto=http],[User-Agent:Go-http-client/1.1],[Via:HTTP/1.1 trickster-588c65fc47-qpqn2]}" clientRequestHeaders="unsupported value type"
time=2020-11-11T09:19:12.795047239Z app=trickster caller=proxy/engines/deltaproxycache.go:488 level=error event="unexpected upstream response" clientRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range upstreamRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range upstreamRequestHeaders="{[Content-Length:274],[Content-Type:application/x-www-form-urlencoded],[Forwarded:for=10.42.187.67;proto=http],[User-Agent:Go-http-client/1.1],[Via:HTTP/1.1 trickster-588c65fc47-qpqn2]}" upstreamResponseHeaders="{[Cache-Control:s-maxage=21600],[Content-Type:application/json],[Date:Wed, 11 Nov 2020 09:19:12 GMT]}" upstreamResponseBody="{\"status\":\"error\",\"errorType\":\"bad_data\",\"error\":\"1:135: parse error: missing unit character in duration\"}" statusCode=400 clientRequestMethod=POST clientRequestHeaders="unsupported value type" upstreamRequestMethod=POST
time=2020-11-11T09:19:12.798483432Z app=trickster caller=proxy/engines/deltaproxycache.go:488 level=error event="unexpected upstream response" clientRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range clientRequestMethod=POST upstreamRequestURL=http://prometheus-server.monitoring:8080/api/v1/query_range upstreamResponseHeaders="{[Cache-Control:s-maxage=21600],[Content-Type:application/json],[Date:Wed, 11 Nov 2020 09:19:12 GMT]}" upstreamResponseBody="{\"status\":\"error\",\"errorType\":\"bad_data\",\"error\":\"1:135: parse error: missing unit character in duration\"}" statusCode=400 clientRequestHeaders="unsupported value type" upstreamRequestMethod=POST upstreamRequestHeaders="{[Content-Length:276],[Content-Type:application/x-www-form-urlencoded],[Forwarded:for=10.42.187.67;proto=http],[User-Agent:Go-http-client/1.1],[Via:HTTP/1.1 trickster-588c65fc47-qpqn2]}"

Could you please help me to explain this?
Thanks.

Error in ServiceMonitor template indentation

Hi,

I'm trying to deploy the Helm chart and I've run into what I think is an error in the ServiceMonitor template.
Deploying the chart as it is now results in the following error

error="Helm release failed" revision=1.5.1 err="release trickster-proxy failed: 
ServiceMonitor.monitoring.coreos.com \"trickster-proxy\" is invalid: 
spec.selector.matchLabels: Invalid value: \"null\": spec.selector.matchLabels in body must be of type object: \"null\"]"

Templating the helm chart locally returns the following configuration

spec:
  jobLabel: trickster
  selector:
    matchLabels:
    component: trickster
    app: trickster
    release: release-name
    chart: trickster-1.5.1
    heritage: Tiller

Editing the indentation in line https://github.com/tricksterproxy/helm-charts/blob/master/charts/trickster/templates/servicemonitor.yaml#L16 to {{- include "trickster.labels" . | nindent 6 }} produces the correct template

spec:
  jobLabel: trickster
  selector:
    matchLabels:
      component: trickster
      app: trickster
      release: release-name
      chart: trickster-1.5.1
      heritage: Tiller

Trickster helm chart declares pod annotations twice

https://github.com/tricksterproxy/helm-charts/blob/master/charts/trickster/templates/deployment.yaml#L22

In the template for the deployment pod level annotations are declared twice, because of this the podAnnotations value doesn't actually work.

      annotations:
        checksum/trickster-cfg: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
    {{- if .Values.podAnnotations }}        
{{ toYaml .Values.podAnnotations | indent 8 }}
    {{- end }}    
      labels:
        {{- include "trickster.labels" . | nindent 8 }}
      annotations:
        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}

One of these annotation declarations should be removed I think.

"Page not found" when I access to trickster service endpoint

I deploy trickster through helm charts, but I can't access to service endpoint.
My steps as below:
I created custom-values.yaml with content as below:

service:
type: NodePort
nodePort: 30000
metricsNodePort: 30001

I saved and ran with command:

helm install trickster -ntrickster

and then I access to service endpoint with nodePort: :30000, I got the error is "Page not found"

Could someone help me?

installing trickster using helm charts

helm upgrade -i trickster tricksterproxy/trickster
Release "trickster" does not exist. Installing it now.
coalesce.go:165: warning: skipped value for image: Not a table.
Error: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Deployment" in version "extensions/v1beta1"

Getting error while installing trickster

Hello,

I'm trying to install trickster in k8's using helm, but I'm getting below error while installing.
Error: template: trickster/templates/deployment.yaml:65:17: executing "trickster/templates/deployment.yaml" at <eq .volumeName $key>: error calling eq: incompatible types for comparison

I'm using the default values and not changed much except the prometheus URL and cache type.
I'm just stuck here as I couldn't figure out what went wrong, can anyone please help me ?

Helm version
helm version
version.BuildInfo{Version:"v3.3.0", GitCommit:"8a4aeec08d67a7b84472007529e8097ec3742105", GitTreeState:"dirty", GoVersion:"go1.14.7"}

K8's version : v1.21.5

Thanks you in advance!

Wrong configuration option name for mapping origins

Hi there!

I just noticed that the option name for defining the largest byte size an object may be before it's unreachable differs between

{{- if .maxObjectByteSize }}
max_object_byte_size = {{ .maxObjectByteSize }}
{{- end }}
and https://github.com/trickstercache/trickster/blob/4595bd6a1ae1165ef497251ad85c646dadc8a925/cmd/trickster/conf/example.conf#L339.

Should this be max_object_size_bytes or max_object_byte_size?

ServiceMonitor template selector label indent is wrong

spec:
jobLabel: {{ template "trickster.name" . }}
selector:
matchLabels:
app: {{ template "trickster.name" . }}
{{- include "trickster.labels" . | indent 6 }}
{{- if .Values.service.labels }}
{{ toYaml .Values.service.labels | indent 4 }}
{{- end }}

Values.service.labels must be indented 6 to not break yaml structure

Can we have a new release?

It has been more than 2 years since v1.5.4, the last release. There have been a few bug fixes since then that could benefit the community. Can you please cut a new release?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.