Skip to content

Commit

Permalink
V1.1.0 beta2 (#421)
Browse files Browse the repository at this point in the history
* add `go mod tidy` and `go mod vendor` on `make build`

* update vendor dir, and remove `vendor` from `.gitignore`

* add cache status descriptions to documentation

* validation errors on reload break the reloader

* Tracing improvements: include global tags on zipkin spans, include informative tags in spans, don't trace health checks, use proper url examples for jaeger agent, zipkin in example config, add omit_tags option

* persist response body when deriving POST cache key

* don't wrap in connection limiter unless connection limit max > 0

* update graffle

* disable CGO for release artifacts
  • Loading branch information
James Ranson authored May 11, 2020
1 parent 78e4437 commit af69404
Show file tree
Hide file tree
Showing 245 changed files with 26,848 additions and 347 deletions.
43 changes: 7 additions & 36 deletions .github/workflows/publish-beta-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
tags:
- 'v[0-9]+\.[0-9]+\.[0-9]+-beta[0-9]+'

name: Publish Trickster Beta Release to GitHub and Docker Hub
name: Publish Trickster Beta Release to Drafts

jobs:
build:
Expand All @@ -13,14 +13,18 @@ jobs:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
#
- name: Get bare tag
id: baretag
run: echo "::set-output name=baretag::$(echo ${{ github.ref }} | cut -b 12-)"
#
- name: Checkout code
uses: actions/checkout@v2
#
- name: Build project
run: |
TAGVER=${{ steps.baretag.outputs.baretag }} make release
#
- name: Create Release
id: create_release
uses: actions/create-release@v1
Expand All @@ -31,8 +35,9 @@ jobs:
release_name: Release v${{ steps.baretag.outputs.baretag }} / ${{ steps.date.outputs.date }}
draft: true
prerelease: true
#
- name: Upload Release Binaries Tarball
id: upload-release-asset-linux-amd64
id: upload-beta-release-asset-bundle
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -41,37 +46,3 @@ jobs:
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.tar.gz
asset_content_type: application/gzip
- name: build-push-tricksterio-amd
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterio/trickster
tags: ${{ steps.baretag.outputs.baretag }}
dockerfile: ./deploy/Dockerfile
- name: build-push-tricksterproxy-amd
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterproxy/trickster
tags: ${{ steps.baretag.outputs.baretag }}
dockerfile: ./deploy/Dockerfile
#- name: build-push-tricksterio-arm
# uses: docker/build-push-action@v1
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
# repository: tricksterio/trickster
# build_args: IMAGE_ARCH=arm64v8,GOARCH=arm64
# tags: arm64v8-${{ steps.baretag.outputs.baretag }}
# dockerfile: ./deploy/Dockerfile
#- name: build-push-tricksterproxy-arm
# uses: docker/build-push-action@v1
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
# repository: tricksterproxy/trickster
# build_args: IMAGE_ARCH=arm64v8,GOARCH=arm64
# tags: arm64v8-${{ steps.baretag.outputs.baretag }}
# dockerfile: ./deploy/Dockerfile
77 changes: 11 additions & 66 deletions .github/workflows/publish-release-candidate.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
tags:
- 'v[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+'

name: Publish Trickster Release Candidate to GitHub and Docker Hub
name: Publish Trickster Release Candidate to Drafts

jobs:
build:
Expand All @@ -13,14 +13,18 @@ jobs:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
#
- name: Get bare tag
id: baretag
run: echo "::set-output name=baretag::$(echo ${{ github.ref }} | cut -b 12-)"
#
- name: Checkout code
uses: actions/checkout@v2
#
- name: Build project
run: |
TAGVER=${{ steps.baretag.outputs.baretag }} make release
#
- name: Create Release
id: create_release
uses: actions/create-release@v1
Expand All @@ -29,75 +33,16 @@ jobs:
with:
tag_name: ${{ github.ref }}
release_name: Release v${{ steps.baretag.outputs.baretag }} / ${{ steps.date.outputs.date }}
draft: false
draft: true
prerelease: true
- name: Upload Release Asset (linux-amd64)
id: upload-release-asset-linux-amd64
#
- name: Upload Release Binaries Tarball
id: upload-release-candidate-asset-bundle
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.linux-amd64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.linux-amd64.tar.gz
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.tar.gz
asset_content_type: application/gzip
- name: Upload Release Asset (linux-arm64)
id: upload-release-asset-linux-arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.linux-arm64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.linux-arm64.tar.gz
asset_content_type: application/gzip
- name: Upload Release Asset (darwin-amd64)
id: upload-release-asset-darwin-amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.darwin-amd64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.darwin-amd64.tar.gz
asset_content_type: application/gzip
- name: Upload Release Asset (windows-amd64)
id: upload-release-asset-windows-amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.windows-amd64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.windows-amd64.tar.gz
asset_content_type: application/gzip
- name: build-push-tricksterio-amd
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterio/trickster
tags: ${{ steps.baretag.outputs.baretag }}
- name: build-push-tricksterproxy-amd
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterproxy/trickster
tags: ${{ steps.baretag.outputs.baretag }}
- name: build-push-tricksterio-arm
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterio/trickster
build_args: IMAGE_ARCH=arm64v8,GOARCH=arm64
tags: arm64v8-${{ steps.baretag.outputs.baretag }}
- name: build-push-tricksterproxy-arm
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterproxy/trickster
build_args: IMAGE_ARCH=arm64v8,GOARCH=arm64
tags: arm64v8-${{ steps.baretag.outputs.baretag }}
77 changes: 11 additions & 66 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
tags:
- 'v[0-9]+\.[0-9]+\.[0-9]+'

name: Publish Trickster Release to GitHub and Docker Hub
name: Publish Trickster Release to Drafts

jobs:
build:
Expand All @@ -13,14 +13,18 @@ jobs:
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
#
- name: Get bare tag
id: baretag
run: echo "::set-output name=baretag::$(echo ${{ github.ref }} | cut -b 12-)"
#
- name: Checkout code
uses: actions/checkout@v2
#
- name: Build project
run: |
TAGVER=${{ steps.baretag.outputs.baretag }} make release
#
- name: Create Release
id: create_release
uses: actions/create-release@v1
Expand All @@ -29,75 +33,16 @@ jobs:
with:
tag_name: ${{ github.ref }}
release_name: Release v${{ steps.baretag.outputs.baretag }} / ${{ steps.date.outputs.date }}
draft: false
draft: true
prerelease: false
- name: Upload Release Asset (linux-amd64)
id: upload-release-asset-linux-amd64
#
- name: Upload Release Binaries Tarball
id: upload-release-asset-bundle
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.linux-amd64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.linux-amd64.tar.gz
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.tar.gz
asset_content_type: application/gzip
- name: Upload Release Asset (linux-arm64)
id: upload-release-asset-linux-arm64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.linux-arm64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.linux-arm64.tar.gz
asset_content_type: application/gzip
- name: Upload Release Asset (darwin-amd64)
id: upload-release-asset-darwin-amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.darwin-amd64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.darwin-amd64.tar.gz
asset_content_type: application/gzip
- name: Upload Release Asset (windows-amd64)
id: upload-release-asset-windows-amd64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./OPATH/trickster-${{ steps.baretag.outputs.baretag }}.windows-amd64.tar.gz
asset_name: trickster-${{ steps.baretag.outputs.baretag }}.windows-amd64.tar.gz
asset_content_type: application/gzip
- name: build-push-tricksterio-amd
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterio/trickster
tags: ${{ steps.baretag.outputs.baretag }}
- name: build-push-tricksterproxy-amd
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterproxy/trickster
tags: ${{ steps.baretag.outputs.baretag }}
- name: build-push-tricksterio-arm
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterio/trickster
build_args: IMAGE_ARCH=arm64v8,GOARCH=arm64
tags: arm64v8-${{ steps.baretag.outputs.baretag }}
- name: build-push-tricksterproxy-arm
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: tricksterproxy/trickster
build_args: IMAGE_ARCH=arm64v8,GOARCH=arm64
tags: arm64v8-${{ steps.baretag.outputs.baretag }}
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,5 +44,4 @@ cacheKey.expiration
#log testing
out.log

vendor
tags
13 changes: 8 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@
# Licensed 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.
Expand Down Expand Up @@ -30,6 +32,7 @@ BUILD_SUBDIR := OPATH
PACKAGE_DIR := ./$(BUILD_SUBDIR)/trickster-$(PROGVER)
BIN_DIR := $(PACKAGE_DIR)/bin
CONF_DIR := $(PACKAGE_DIR)/conf
CGO_ENABLED ?= 0

.PHONY: validate-app-version
validate-app-version:
Expand All @@ -50,7 +53,7 @@ test-go-mod:
@git diff --quiet --exit-code go.mod go.sum || echo "There are changes to go.mod and go.sum which needs to be committed"

.PHONY: build
build:
build: go-mod-tidy go-mod-vendor
GOOS=$(GOOS) GOARCH=$(GOARCH) CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(LDFLAGS) -o ./$(BUILD_SUBDIR)/trickster -a -v $(TRICKSTER_MAIN)/*.go

rpm: build
Expand Down Expand Up @@ -86,10 +89,10 @@ release-artifacts: clean
cp ./LICENSE $(PACKAGE_DIR)
cp ./cmd/trickster/conf/*.conf $(CONF_DIR)

GOOS=darwin GOARCH=amd64 $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).darwin-amd64 -a -v $(TRICKSTER_MAIN)/*.go
GOOS=linux GOARCH=amd64 $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).linux-amd64 -a -v $(TRICKSTER_MAIN)/*.go
GOOS=linux GOARCH=arm64 $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).linux-arm64 -a -v $(TRICKSTER_MAIN)/*.go
GOOS=windows GOARCH=amd64 $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).windows-amd64 -a -v $(TRICKSTER_MAIN)/*.go
GOOS=darwin GOARCH=amd64 CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).darwin-amd64 -a -v $(TRICKSTER_MAIN)/*.go
GOOS=linux GOARCH=amd64 CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).linux-amd64 -a -v $(TRICKSTER_MAIN)/*.go
GOOS=linux GOARCH=arm64 CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).linux-arm64 -a -v $(TRICKSTER_MAIN)/*.go
GOOS=windows GOARCH=amd64 CGO_ENABLED=$(CGO_ENABLED) $(GO) build $(LDFLAGS) -o $(BIN_DIR)/trickster-$(PROGVER).windows-amd64 -a -v $(TRICKSTER_MAIN)/*.go

cd ./$(BUILD_SUBDIR) && tar cvfz ./trickster-$(PROGVER).tar.gz ./trickster-$(PROGVER)/*

Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,15 @@ Trickster is a fully-featured HTTP Reverse Proxy Cache for HTTP applications lik

### Proxy Feature Highlights

* [Supports TLS](./docs/tls.md) frontend termination and backend origination
* [Supports TLS](./docs/tls.md) and HTTP/2 for frontend termination and backend origination
* Offers several options for a [caching layer](./docs/caches.md), including in-memory, filesystem, Redis and bbolt
* [Highly customizable](./docs/configuring.md), using simple configuration settings, [down to the HTTP Path](./docs/paths.md)
* Built-in Prometheus [metrics](./docs/metrics.md) and customizable [Health Check](./docs/health.md) Endpoints for end-to-end monitoring
* [Negative Caching](./docs/negative-caching.md) to prevent domino effect outages
* High-performance [Collapsed Forwarding](./docs/collapsed-forwarding.md)
* Best-in-class [Byte Range Request caching and acceleration](./docs/range_request.md).
* [Distributed Tracing](./docs/tracing.md) via OpenTelemetry
* [Distributed Tracing](./docs/tracing.md) via OpenTelemetry, supporting Jaeger and Zipkin
* Rules engine for custom request routing and rewriting

## Time Series Database Accelerator

Expand Down
8 changes: 6 additions & 2 deletions cmd/trickster/conf/example.conf
Original file line number Diff line number Diff line change
Expand Up @@ -517,6 +517,10 @@ listen_port = 8480
## A floating point value of 0.0 to 1.0 (inclusive) is permitted
## default is 1.0 (meaning 100% of requests are recorded)
# sample_rate = 1.0

## omit_tags is a list of tag names that, while normally added by Trickster to various spans,
## are omitted for spans produced by this tracer. The default setting is empty list.
# omit_tags = []

## tags will append these tags/attributes to each trace that is recorded
## only string key/value tags are supported. numeric values, etc are not.
Expand All @@ -541,15 +545,15 @@ listen_port = 8480
## another example tracing config named 'example' using jaeger agent backend and a 50% sample rate
# [tracing.example]
# tracer_type = 'jaeger'
# collector_url = 'http://jaeger:14268/api/traces'
# collector_url = 'jaeger:6831'
# sample_rate = .5
# [tracing.example.jaeger]
# endpoint_type = 'agent'

## another example tracing config named 'zipkin-example' using zipkin backend and a 10% sample rate
# [tracing.zipkin-example]
# tracer_type = 'zipkin'
# collector_url = 'https://zipkin.example.com/'
# collector_url = 'https://zipkin.example.com:9411/api/v2/spans'
# sample_rate = .1


Expand Down
Loading

0 comments on commit af69404

Please sign in to comment.