Skip to content

Instantly share code, notes, and snippets.

@jpkrohling
Created March 29, 2018 12:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jpkrohling/02bd2f1b1a55ee883793f6967086023b to your computer and use it in GitHub Desktop.
Save jpkrohling/02bd2f1b1a55ee883793f6967086023b to your computer and use it in GitHub Desktop.
Jaeger Production Template with Keycloak Proxy as sidecar
#
# Copyright 2017-2018 The Jaeger Authors
#
# 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. See the License for the specific language governing permissions and limitations under
# the License.
#
parameters:
- description: The name of the Jaeger Service.
displayName: Jaeger Service Name
name: JAEGER_SERVICE_NAME
required: true
value: jaeger
- description: The Jaeger image version to use
displayName: Image version
name: IMAGE_VERSION
required: false
value: "1.2"
- description: The name of the Jaeger Zipkin Service.
displayName: Jaeger Zipkin Service Name
name: JAEGER_ZIPKIN_SERVICE_NAME
required: true
value: zipkin
apiVersion: v1
kind: Template
labels:
app: jaeger
template: jaeger-template
jaeger-infra: template
metadata:
name: jaeger-template
annotations:
description: Jaeger Distributed Tracing Server
iconClass: icon-go-gopher
openshift.io/display-name: Jaeger
tags: instant-app,tracing,opentracing,jaeger
labels:
app: jaeger
name: jaeger-infra
jaeger-infra: template-production
objects:
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ${JAEGER_SERVICE_NAME}-collector
labels:
app: jaeger
jaeger-infra: collector-deployment
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: jaeger
jaeger-infra: collector-pod
spec:
containers:
- image: jaegertracing/jaeger-collector:${IMAGE_VERSION}
name: ${JAEGER_SERVICE_NAME}-collector
command:
- "/go/bin/collector-linux"
- "--config-file=/conf/collector.yaml"
ports:
- containerPort: 14267
protocol: TCP
- containerPort: 14268
protocol: TCP
- containerPort: 9411
protocol: TCP
volumeMounts:
- name: jaeger-configuration-volume
mountPath: /conf
env:
- name: SPAN_STORAGE_TYPE
valueFrom:
configMapKeyRef:
name: jaeger-configuration
key: span-storage-type
volumes:
- configMap:
name: jaeger-configuration
items:
- key: collector
path: collector.yaml
name: jaeger-configuration-volume
- apiVersion: v1
kind: Service
metadata:
name: ${JAEGER_SERVICE_NAME}-collector
labels:
app: jaeger
jaeger-infra: collector-service
spec:
ports:
- name: jaeger-collector-tchannel
port: 14267
protocol: TCP
targetPort: 14267
- name: jaeger-collector-http
port: 14268
protocol: TCP
targetPort: 14268
- name: jaeger-collector-zipkin
port: 9411
protocol: TCP
targetPort: 9411
selector:
jaeger-infra: collector-pod
type: ClusterIP
- apiVersion: v1
kind: Service
metadata:
name: ${JAEGER_ZIPKIN_SERVICE_NAME}
labels:
app: jaeger
jaeger-infra: zipkin-service
spec:
ports:
- name: jaeger-zipkin-http
port: 9411
protocol: TCP
targetPort: 9411
selector:
jaeger-infra: collector-pod
type: ClusterIP
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: ${JAEGER_SERVICE_NAME}-query
labels:
app: jaeger
jaeger-infra: query-deployment
spec:
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: jaeger
jaeger-infra: query-pod
spec:
containers:
- image: jaegertracing/jaeger-query:${IMAGE_VERSION}
name: jaeger-query
command:
- "/go/bin/query-linux"
- "--config-file=/conf/query.yaml"
ports:
- containerPort: 16686
protocol: TCP
readinessProbe:
httpGet:
path: "/"
port: 16686
volumeMounts:
- name: jaeger-configuration-volume
mountPath: /conf
env:
- name: SPAN_STORAGE_TYPE
valueFrom:
configMapKeyRef:
name: jaeger-configuration
key: span-storage-type
- image: jboss/keycloak-proxy
name: ${JAEGER_SERVICE_NAME}-query-security-proxy
volumeMounts:
- mountPath: /opt/jboss/conf
name: security-proxy-configuration-volume
ports:
- containerPort: 8080
protocol: TCP
readinessProbe:
httpGet:
path: "/"
port: 8080
volumes:
- configMap:
name: jaeger-configuration
items:
- key: query
path: query.yaml
name: jaeger-configuration-volume
- configMap:
name: ${JAEGER_SERVICE_NAME}-configuration
items:
- key: proxy
path: proxy.json
name: security-proxy-configuration-volume
- apiVersion: v1
kind: Service
metadata:
name: ${JAEGER_SERVICE_NAME}-query
labels:
app: jaeger
jaeger-infra: query-service
spec:
ports:
- name: jaeger-query
port: 80
protocol: TCP
targetPort: 8080
selector:
jaeger-infra: query-pod
type: LoadBalancer
- apiVersion: v1
kind: Route
metadata:
name: ${JAEGER_SERVICE_NAME}-query
labels:
app: jaeger
jaeger-infra: query-route
spec:
tls:
insecureEdgeTerminationPolicy: Allow
termination: edge
to:
kind: Service
name: ${JAEGER_SERVICE_NAME}-query
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment