-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ci(helm): added workflow to see the diff #14134
Conversation
c49c5c8
to
94d19a1
Compare
…elm charts PRs Signed-off-by: Vladyslav Diachenko <[email protected]>
94d19a1
to
a380771
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a great idea @vlad-diachenko, love it!
Kubernetes Manifest Diff SummaryScenario: default-single-binary-values (Added: 57, Modified: 0, Removed: 0)
Summary:
Added Filesloki/charts/minio/templates/post-install-create-user-job.yaml---
# Source: loki/charts/minio/templates/post-install-create-user-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: loki-test-chart-name-minio-make-user-job
namespace: "default"
labels:
app: minio-make-user-job
chart: minio-4.0.15
release: loki-test-chart-name
heritage: Helm
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
spec:
template:
metadata:
labels:
app: minio-job
release: loki-test-chart-name
spec:
restartPolicy: OnFailure
volumes:
- name: minio-configuration
projected:
sources:
- configMap:
name: loki-test-chart-name-minio
- secret:
name: loki-test-chart-name-minio
serviceAccountName: minio-sa
containers:
- name: minio-mc
image: "quay.io/minio/mc:RELEASE.2022-09-16T09-16-47Z"
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "/config/add-user"]
env:
- name: MINIO_ENDPOINT
value: loki-test-chart-name-minio
- name: MINIO_PORT
value: "9000"
volumeMounts:
- name: minio-configuration
mountPath: /config
resources:
requests:
memory: 128Mi loki/charts/minio/templates/statefulset.yaml---
# Source: loki/charts/minio/templates/statefulset.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-minio-svc
namespace: "default"
labels:
app: minio
chart: minio-4.0.15
release: "loki-test-chart-name"
heritage: "Helm"
spec:
publishNotReadyAddresses: true
clusterIP: None
ports:
- name: http
port: 9000
protocol: TCP
targetPort: 9000
selector:
app: minio
release: loki-test-chart-name
---
# Source: loki/charts/minio/templates/statefulset.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-minio
namespace: "default"
labels:
app: minio
chart: minio-4.0.15
release: loki-test-chart-name
heritage: Helm
spec:
updateStrategy:
type: RollingUpdate
podManagementPolicy: "Parallel"
serviceName: loki-test-chart-name-minio-svc
replicas: 1
selector:
matchLabels:
app: minio
release: loki-test-chart-name
template:
metadata:
name: loki-test-chart-name-minio
labels:
app: minio
release: loki-test-chart-name
annotations:
checksum/secrets: 78a49b82f52849e48441c61981e69eb775a1daa578c9eb9767644ec0d063fad0
checksum/config: 9f25d6c5255157376e499a246d3f9eabb081eba553bacdcfca3494bafc438a68
spec:
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: OnRootMismatch
serviceAccountName: minio-sa
containers:
- name: minio
image: quay.io/minio/minio:RELEASE.2022-09-17T00-09-45Z
imagePullPolicy: IfNotPresent
command: [ "/bin/sh",
"-ce",
"/usr/bin/docker-entrypoint.sh minio server http://loki-test-chart-name-minio-{0...0}.loki-test-chart-name-minio-svc.default.svc.cluster.local/export-{0...1} -S /etc/minio/certs/ --address :9000 --console-address :9001" ]
volumeMounts:
- name: export-0
mountPath: /export-0
- name: export-1
mountPath: /export-1
ports:
- name: http
containerPort: 9000
- name: http-console
containerPort: 9001
env:
- name: MINIO_ROOT_USER
valueFrom:
secretKeyRef:
name: loki-test-chart-name-minio
key: rootUser
- name: MINIO_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: loki-test-chart-name-minio
key: rootPassword
- name: MINIO_PROMETHEUS_AUTH_TYPE
value: "public"
resources:
requests:
cpu: 100m
memory: 128Mi
volumes:
- name: minio-user
secret:
secretName: loki-test-chart-name-minio
volumeClaimTemplates:
- metadata:
name: export-0
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 5Gi
- metadata:
name: export-1
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 5Gi loki/charts/minio/templates/configmap.yaml---
# Source: loki/charts/minio/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-test-chart-name-minio
namespace: "default"
labels:
app: minio
chart: minio-4.0.15
release: loki-test-chart-name
heritage: Helm
data:
initialize: |-
#!/bin/sh
set -e ; # Have script exit in the event of a failed command.
MC_CONFIG_DIR="/etc/minio/mc/"
MC="/usr/bin/mc --insecure --config-dir ${MC_CONFIG_DIR}"
# connectToMinio
# Use a check-sleep-check loop to wait for MinIO service to be available
connectToMinio() {
SCHEME=$1
ATTEMPTS=0 ; LIMIT=29 ; # Allow 30 attempts
set -e ; # fail if we can't read the keys.
ACCESS=$(cat /config/rootUser) ; SECRET=$(cat /config/rootPassword) ;
set +e ; # The connections to minio are allowed to fail.
echo "Connecting to MinIO server: $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT" ;
MC_COMMAND="${MC} alias set myminio $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT $ACCESS $SECRET" ;
$MC_COMMAND ;
STATUS=$? ;
until [ $STATUS = 0 ]
do
ATTEMPTS=`expr $ATTEMPTS + 1` ;
echo \"Failed attempts: $ATTEMPTS\" ;
if [ $ATTEMPTS -gt $LIMIT ]; then
exit 1 ;
fi ;
sleep 2 ; # 1 second intervals between attempts
$MC_COMMAND ;
STATUS=$? ;
done ;
set -e ; # reset `e` as active
return 0
}
# checkBucketExists ($bucket)
# Check if the bucket exists, by using the exit code of `mc ls`
checkBucketExists() {
BUCKET=$1
CMD=$(${MC} ls myminio/$BUCKET > /dev/null 2>&1)
return $?
}
# createBucket ($bucket, $policy, $purge)
# Ensure bucket exists, purging if asked to
createBucket() {
BUCKET=$1
POLICY=$2
PURGE=$3
VERSIONING=$4
OBJECTLOCKING=$5
# Purge the bucket, if set & exists
# Since PURGE is user input, check explicitly for `true`
if [ $PURGE = true ]; then
if checkBucketExists $BUCKET ; then
echo "Purging bucket '$BUCKET'."
set +e ; # don't exit if this fails
${MC} rm -r --force myminio/$BUCKET
set -e ; # reset `e` as active
else
echo "Bucket '$BUCKET' does not exist, skipping purge."
fi
fi
# Create the bucket if it does not exist and set objectlocking if enabled (NOTE: versioning will be not changed if OBJECTLOCKING is set because it enables versioning to the Buckets created)
if ! checkBucketExists $BUCKET ; then
if [ ! -z $OBJECTLOCKING ] ; then
if [ $OBJECTLOCKING = true ] ; then
echo "Creating bucket with OBJECTLOCKING '$BUCKET'"
${MC} mb --with-lock myminio/$BUCKET
elif [ $OBJECTLOCKING = false ] ; then
echo "Creating bucket '$BUCKET'"
${MC} mb myminio/$BUCKET
fi
elif [ -z $OBJECTLOCKING ] ; then
echo "Creating bucket '$BUCKET'"
${MC} mb myminio/$BUCKET
else
echo "Bucket '$BUCKET' already exists."
fi
fi
# set versioning for bucket if objectlocking is disabled or not set
if [ -z $OBJECTLOCKING ] ; then
if [ ! -z $VERSIONING ] ; then
if [ $VERSIONING = true ] ; then
echo "Enabling versioning for '$BUCKET'"
${MC} version enable myminio/$BUCKET
elif [ $VERSIONING = false ] ; then
echo "Suspending versioning for '$BUCKET'"
${MC} version suspend myminio/$BUCKET
fi
fi
else
echo "Bucket '$BUCKET' versioning unchanged."
fi
# At this point, the bucket should exist, skip checking for existence
# Set policy on the bucket
echo "Setting policy of bucket '$BUCKET' to '$POLICY'."
${MC} policy set $POLICY myminio/$BUCKET
}
# Try connecting to MinIO instance
scheme=http
connectToMinio $scheme
# Create the buckets
createBucket chunks none false
createBucket ruler none false
createBucket admin none false
add-user: |-
#!/bin/sh
set -e ; # Have script exit in the event of a failed command.
MC_CONFIG_DIR="/etc/minio/mc/"
MC="/usr/bin/mc --insecure --config-dir ${MC_CONFIG_DIR}"
# AccessKey and secretkey credentials file are added to prevent shell execution errors caused by special characters.
# Special characters for example : ',",<,>,{,}
MINIO_ACCESSKEY_SECRETKEY_TMP="/tmp/accessKey_and_secretKey_tmp"
# connectToMinio
# Use a check-sleep-check loop to wait for MinIO service to be available
connectToMinio() {
SCHEME=$1
ATTEMPTS=0 ; LIMIT=29 ; # Allow 30 attempts
set -e ; # fail if we can't read the keys.
ACCESS=$(cat /config/rootUser) ; SECRET=$(cat /config/rootPassword) ;
set +e ; # The connections to minio are allowed to fail.
echo "Connecting to MinIO server: $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT" ;
MC_COMMAND="${MC} alias set myminio $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT $ACCESS $SECRET" ;
$MC_COMMAND ;
STATUS=$? ;
until [ $STATUS = 0 ]
do
ATTEMPTS=`expr $ATTEMPTS + 1` ;
echo \"Failed attempts: $ATTEMPTS\" ;
if [ $ATTEMPTS -gt $LIMIT ]; then
exit 1 ;
fi ;
sleep 2 ; # 1 second intervals between attempts
$MC_COMMAND ;
STATUS=$? ;
done ;
set -e ; # reset `e` as active
return 0
}
# checkUserExists ()
# Check if the user exists, by using the exit code of `mc admin user info`
checkUserExists() {
CMD=$(${MC} admin user info myminio $(head -1 $MINIO_ACCESSKEY_SECRETKEY_TMP) > /dev/null 2>&1)
return $?
}
# createUser ($policy)
createUser() {
POLICY=$1
#check accessKey_and_secretKey_tmp file
if [[ ! -f $MINIO_ACCESSKEY_SECRETKEY_TMP ]];then
echo "credentials file does not exist"
return 1
fi
if [[ $(cat $MINIO_ACCESSKEY_SECRETKEY_TMP|wc -l) -ne 2 ]];then
echo "credentials file is invalid"
rm -f $MINIO_ACCESSKEY_SECRETKEY_TMP
return 1
fi
USER=$(head -1 $MINIO_ACCESSKEY_SECRETKEY_TMP)
# Create the user if it does not exist
if ! checkUserExists ; then
echo "Creating user '$USER'"
cat $MINIO_ACCESSKEY_SECRETKEY_TMP | ${MC} admin user add myminio
else
echo "User '$USER' already exists."
fi
#clean up credentials files.
rm -f $MINIO_ACCESSKEY_SECRETKEY_TMP
# set policy for user
if [ ! -z $POLICY -a $POLICY != " " ] ; then
echo "Adding policy '$POLICY' for '$USER'"
${MC} admin policy set myminio $POLICY user=$USER
else
echo "User '$USER' has no policy attached."
fi
}
# Try connecting to MinIO instance
scheme=http
connectToMinio $scheme
# Create the users
echo console > $MINIO_ACCESSKEY_SECRETKEY_TMP
echo console123 >> $MINIO_ACCESSKEY_SECRETKEY_TMP
createUser consoleAdmin
add-policy: |-
#!/bin/sh
set -e ; # Have script exit in the event of a failed command.
MC_CONFIG_DIR="/etc/minio/mc/"
MC="/usr/bin/mc --insecure --config-dir ${MC_CONFIG_DIR}"
# connectToMinio
# Use a check-sleep-check loop to wait for MinIO service to be available
connectToMinio() {
SCHEME=$1
ATTEMPTS=0 ; LIMIT=29 ; # Allow 30 attempts
set -e ; # fail if we can't read the keys.
ACCESS=$(cat /config/rootUser) ; SECRET=$(cat /config/rootPassword) ;
set +e ; # The connections to minio are allowed to fail.
echo "Connecting to MinIO server: $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT" ;
MC_COMMAND="${MC} alias set myminio $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT $ACCESS $SECRET" ;
$MC_COMMAND ;
STATUS=$? ;
until [ $STATUS = 0 ]
do
ATTEMPTS=`expr $ATTEMPTS + 1` ;
echo \"Failed attempts: $ATTEMPTS\" ;
if [ $ATTEMPTS -gt $LIMIT ]; then
exit 1 ;
fi ;
sleep 2 ; # 1 second intervals between attempts
$MC_COMMAND ;
STATUS=$? ;
done ;
set -e ; # reset `e` as active
return 0
}
# checkPolicyExists ($policy)
# Check if the policy exists, by using the exit code of `mc admin policy info`
checkPolicyExists() {
POLICY=$1
CMD=$(${MC} admin policy info myminio $POLICY > /dev/null 2>&1)
return $?
}
# createPolicy($name, $filename)
createPolicy () {
NAME=$1
FILENAME=$2
# Create the name if it does not exist
echo "Checking policy: $NAME (in /config/$FILENAME.json)"
if ! checkPolicyExists $NAME ; then
echo "Creating policy '$NAME'"
else
echo "Policy '$NAME' already exists."
fi
${MC} admin policy add myminio $NAME /config/$FILENAME.json
}
# Try connecting to MinIO instance
scheme=http
connectToMinio $scheme
custom-command: |-
#!/bin/sh
set -e ; # Have script exit in the event of a failed command.
MC_CONFIG_DIR="/etc/minio/mc/"
MC="/usr/bin/mc --insecure --config-dir ${MC_CONFIG_DIR}"
# connectToMinio
# Use a check-sleep-check loop to wait for MinIO service to be available
connectToMinio() {
SCHEME=$1
ATTEMPTS=0 ; LIMIT=29 ; # Allow 30 attempts
set -e ; # fail if we can't read the keys.
ACCESS=$(cat /config/rootUser) ; SECRET=$(cat /config/rootPassword) ;
set +e ; # The connections to minio are allowed to fail.
echo "Connecting to MinIO server: $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT" ;
MC_COMMAND="${MC} alias set myminio $SCHEME://$MINIO_ENDPOINT:$MINIO_PORT $ACCESS $SECRET" ;
$MC_COMMAND ;
STATUS=$? ;
until [ $STATUS = 0 ]
do
ATTEMPTS=`expr $ATTEMPTS + 1` ;
echo \"Failed attempts: $ATTEMPTS\" ;
if [ $ATTEMPTS -gt $LIMIT ]; then
exit 1 ;
fi ;
sleep 2 ; # 1 second intervals between attempts
$MC_COMMAND ;
STATUS=$? ;
done ;
set -e ; # reset `e` as active
return 0
}
# runCommand ($@)
# Run custom mc command
runCommand() {
${MC} "$@"
return $?
}
# Try connecting to MinIO instance
scheme=http
connectToMinio $scheme loki/charts/minio/templates/secrets.yaml---
# Source: loki/charts/minio/templates/secrets.yaml
apiVersion: v1
kind: Secret
metadata:
name: loki-test-chart-name-minio
namespace: "default"
labels:
app: minio
chart: minio-4.0.15
release: loki-test-chart-name
heritage: Helm
type: Opaque
data:
rootUser: "ZW50ZXJwcmlzZS1sb2dz"
rootPassword: "c3VwZXJzZWNyZXQ=" loki/charts/minio/templates/console-service.yaml---
# Source: loki/charts/minio/templates/console-service.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-minio-console
namespace: "default"
labels:
app: minio
chart: minio-4.0.15
release: loki-test-chart-name
heritage: Helm
spec:
type: ClusterIP
ports:
- name: http
port: 9001
protocol: TCP
targetPort: 9001
selector:
app: minio
release: loki-test-chart-name loki/charts/minio/templates/service.yaml---
# Source: loki/charts/minio/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-minio
namespace: "default"
labels:
app: minio
chart: minio-4.0.15
release: loki-test-chart-name
heritage: Helm
monitoring: "true"
spec:
type: ClusterIP
ports:
- name: http
port: 9000
protocol: TCP
targetPort: 9000
selector:
app: minio
release: loki-test-chart-name loki/charts/minio/templates/post-install-create-bucket-job.yaml---
# Source: loki/charts/minio/templates/post-install-create-bucket-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: loki-test-chart-name-minio-make-bucket-job
namespace: "default"
labels:
app: minio-make-bucket-job
chart: minio-4.0.15
release: loki-test-chart-name
heritage: Helm
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-delete-policy": hook-succeeded,before-hook-creation
spec:
template:
metadata:
labels:
app: minio-job
release: loki-test-chart-name
spec:
restartPolicy: OnFailure
volumes:
- name: minio-configuration
projected:
sources:
- configMap:
name: loki-test-chart-name-minio
- secret:
name: loki-test-chart-name-minio
serviceAccountName: minio-sa
containers:
- name: minio-mc
image: "quay.io/minio/mc:RELEASE.2022-09-16T09-16-47Z"
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "/config/initialize"]
env:
- name: MINIO_ENDPOINT
value: loki-test-chart-name-minio
- name: MINIO_PORT
value: "9000"
volumeMounts:
- name: minio-configuration
mountPath: /config
resources:
requests:
memory: 128Mi loki/charts/minio/templates/serviceaccount.yaml---
# Source: loki/charts/minio/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: "minio-sa"
namespace: "default" loki/templates/query-scheduler/service-query-scheduler.yaml---
# Source: loki/templates/query-scheduler/service-query-scheduler.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-query-scheduler
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: query-scheduler
spec:
type: ClusterIP
clusterIP: None
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpclb
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-scheduler loki/templates/query-scheduler/deployment-query-scheduler.yaml---
# Source: loki/templates/query-scheduler/deployment-query-scheduler.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-query-scheduler
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: query-scheduler
spec:
replicas: 2
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-scheduler
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-scheduler
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: query-scheduler
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=query-scheduler
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
livenessProbe:
null
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: query-scheduler
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime loki/templates/query-scheduler/poddisruptionbudget-query-scheduler.yaml---
# Source: loki/templates/query-scheduler/poddisruptionbudget-query-scheduler.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-query-scheduler
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: query-scheduler
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-scheduler
maxUnavailable: 1 loki/templates/querier/poddisruptionbudget-querier.yaml---
# Source: loki/templates/querier/poddisruptionbudget-querier.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-querier
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: querier
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: querier
maxUnavailable: 2 loki/templates/querier/service-querier.yaml---
# Source: loki/templates/querier/service-querier.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-querier
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: querier
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: querier loki/templates/querier/deployment-querier.yaml---
# Source: loki/templates/querier/deployment-querier.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-querier
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: querier
app.kubernetes.io/part-of: memberlist
spec:
replicas: 3
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: querier
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: querier
app.kubernetes.io/part-of: memberlist
spec:
topologySpreadConstraints:
- labelSelector:
matchLabels:
app.kubernetes.io/component: querier
maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: querier
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=querier
- -distributor.zone-awareness-enabled=true
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
livenessProbe:
null
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: querier
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: data
emptyDir: {} loki/templates/ingester/statefulset-ingester-zone-c.yaml---
# Source: loki/templates/ingester/statefulset-ingester-zone-c.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-ingester-zone-c
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ingester
app.kubernetes.io/part-of: memberlist
rollout-group: ingester
name: ingester-zone-c
annotations:
rollout-max-unavailable: "1"
spec:
replicas: 1
podManagementPolicy: Parallel
serviceName: loki-test-chart-name-ingester-zone-c
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
name: ingester-zone-c
rollout-group: ingester
updateStrategy:
type: OnDelete
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
app.kubernetes.io/part-of: memberlist
name: ingester-zone-c
rollout-group: ingester
spec:
topologySpreadConstraints:
- labelSelector:
matchLabels:
app.kubernetes.io/component: ingester
maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: ingester
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -ingester.availability-zone=zone-c
- -ingester.unregister-on-shutdown=false
- -ingester.tokens-file-path=/var/loki/ring-tokens
- -target=ingester
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: rollout-group
operator: In
values:
- ingester
- key: name
operator: NotIn
values:
- ingester-zone-c
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: data
emptyDir: {} loki/templates/ingester/service-ingester-zone-c-headless.yaml---
# Source: loki/templates/ingester/service-ingester-zone-c-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-ingester-zone-c-headless
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ingester
spec:
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
name: ingester-zone-c
rollout-group: ingester loki/templates/ingester/poddisruptionbudget-ingester-rollout.yaml---
# Source: loki/templates/ingester/poddisruptionbudget-ingester-rollout.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-ingester-rollout
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ingester
spec:
selector:
matchLabels:
rollout-group: ingester
maxUnavailable: 1 loki/templates/ingester/statefulset-ingester-zone-a.yaml---
# Source: loki/templates/ingester/statefulset-ingester-zone-a.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-ingester-zone-a
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ingester
app.kubernetes.io/part-of: memberlist
rollout-group: ingester
name: ingester-zone-a
annotations:
rollout-max-unavailable: "1"
spec:
replicas: 1
podManagementPolicy: Parallel
serviceName: loki-test-chart-name-ingester-zone-a
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
name: ingester-zone-a
rollout-group: ingester
updateStrategy:
type: OnDelete
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
app.kubernetes.io/part-of: memberlist
name: ingester-zone-a
rollout-group: ingester
spec:
topologySpreadConstraints:
- labelSelector:
matchLabels:
app.kubernetes.io/component: ingester
maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: ingester
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -ingester.availability-zone=zone-a
- -ingester.unregister-on-shutdown=false
- -ingester.tokens-file-path=/var/loki/ring-tokens
- -target=ingester
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: rollout-group
operator: In
values:
- ingester
- key: name
operator: NotIn
values:
- ingester-zone-a
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: data
emptyDir: {} loki/templates/ingester/service-ingester-zone-a-headless.yaml---
# Source: loki/templates/ingester/service-ingester-zone-a-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-ingester-zone-a-headless
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ingester
spec:
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
name: ingester-zone-a
rollout-group: ingester loki/templates/ingester/statefulset-ingester-zone-b.yaml---
# Source: loki/templates/ingester/statefulset-ingester-zone-b.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-ingester-zone-b
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ingester
app.kubernetes.io/part-of: memberlist
rollout-group: ingester
name: ingester-zone-b
annotations:
rollout-max-unavailable: "1"
spec:
replicas: 1
podManagementPolicy: Parallel
serviceName: loki-test-chart-name-ingester-zone-b
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
name: ingester-zone-b
rollout-group: ingester
updateStrategy:
type: OnDelete
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
app.kubernetes.io/part-of: memberlist
name: ingester-zone-b
rollout-group: ingester
spec:
topologySpreadConstraints:
- labelSelector:
matchLabels:
app.kubernetes.io/component: ingester
maxSkew: 1
topologyKey: kubernetes.io/hostname
whenUnsatisfiable: ScheduleAnyway
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: ingester
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -ingester.availability-zone=zone-b
- -ingester.unregister-on-shutdown=false
- -ingester.tokens-file-path=/var/loki/ring-tokens
- -target=ingester
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: rollout-group
operator: In
values:
- ingester
- key: name
operator: NotIn
values:
- ingester-zone-b
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: data
emptyDir: {} loki/templates/ingester/service-ingester-zone-b-headless.yaml---
# Source: loki/templates/ingester/service-ingester-zone-b-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-ingester-zone-b-headless
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ingester
spec:
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ingester
name: ingester-zone-b
rollout-group: ingester loki/templates/bloom-builder/service-bloom-builder.yaml---
# Source: loki/templates/bloom-builder/service-bloom-builder.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-bloom-builder
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: bloom-builder
spec:
type: ClusterIP
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
- name: grpclb
port: 9096
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: bloom-builder loki/templates/bloom-builder/deployment-bloom-builder.yaml---
# Source: loki/templates/bloom-builder/deployment-bloom-builder.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-bloom-builder
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: bloom-builder
spec:
replicas: 0
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: bloom-builder
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: bloom-builder
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: bloom-builder
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=bloom-builder
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: bloom-builder
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime loki/templates/bloom-builder/service-bloom-builder-headless.yaml---
# Source: loki/templates/bloom-builder/service-bloom-builder-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-bloom-builder-headless
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: bloom-builder
prometheus.io/service-monitor: "false"
spec:
clusterIP: None
type: ClusterIP
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
- name: grpclb
port: 9096
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: bloom-builder loki/templates/tests/test-canary.yaml---
# Source: loki/templates/tests/test-canary.yaml
apiVersion: v1
kind: Pod
metadata:
name: "loki-helm-test"
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: helm-test
annotations:
"helm.sh/hook": test
spec:
containers:
- name: loki-helm-test
image: docker.io/grafana/loki-helm-test:ewelch-distributed-helm-chart-17db5ee
env:
- name: CANARY_SERVICE_ADDRESS
value: "http://loki-canary:3500/metrics"
- name: CANARY_PROMETHEUS_ADDRESS
value: ""
- name: CANARY_TEST_TIMEOUT
value: "1m"
args:
- -test.v
restartPolicy: Never loki/templates/config.yaml---
# Source: loki/templates/config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
config.yaml: |
auth_enabled: true
chunk_store_config:
chunk_cache_config:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 0s
memcached:
batch_size: 4
parallelism: 5
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-chunks-cache.default.svc
consistent_hash: true
max_idle_conns: 72
timeout: 2000ms
common:
compactor_address: 'http://loki-test-chart-name-compactor:3100'
path_prefix: /var/loki
replication_factor: 3
storage:
s3:
access_key_id: enterprise-logs
bucketnames: chunks
endpoint: loki-test-chart-name-minio.default.svc:9000
insecure: true
s3forcepathstyle: true
secret_access_key: supersecret
frontend:
scheduler_address: loki-test-chart-name-query-scheduler.default.svc.cluster.local:9095
tail_proxy_url: http://loki-test-chart-name-querier.default.svc.cluster.local:3100
frontend_worker:
scheduler_address: loki-test-chart-name-query-scheduler.default.svc.cluster.local:9095
index_gateway:
mode: simple
ingester:
chunk_encoding: snappy
limits_config:
max_cache_freshness_per_query: 10m
query_timeout: 300s
reject_old_samples: true
reject_old_samples_max_age: 168h
split_queries_by_interval: 15m
volume_enabled: true
memberlist:
join_members:
- loki-memberlist
pattern_ingester:
enabled: false
querier:
max_concurrent: 4
query_range:
align_queries_with_step: true
cache_results: true
results_cache:
cache:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 12h
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-results-cache.default.svc
consistent_hash: true
timeout: 500ms
update_interval: 1m
ruler:
storage:
s3:
bucketnames: ruler
type: s3
runtime_config:
file: /etc/loki/runtime-config/runtime-config.yaml
schema_config:
configs:
- from: "2024-04-01"
index:
period: 24h
prefix: loki_index_
object_store: s3
schema: v13
store: tsdb
server:
grpc_listen_port: 9095
http_listen_port: 3100
http_server_read_timeout: 600s
http_server_write_timeout: 600s
storage_config:
boltdb_shipper:
index_gateway_client:
server_address: dns+loki-test-chart-name-index-gateway-headless.default.svc.cluster.local:9095
hedging:
at: 250ms
max_per_second: 20
up_to: 3
tsdb_shipper:
index_gateway_client:
server_address: dns+loki-test-chart-name-index-gateway-headless.default.svc.cluster.local:9095
tracing:
enabled: true loki/templates/query-frontend/deployment-query-frontend.yaml---
# Source: loki/templates/query-frontend/deployment-query-frontend.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-query-frontend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: query-frontend
spec:
replicas: 2
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-frontend
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-frontend
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: query-frontend
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=query-frontend
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: query-frontend
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime loki/templates/query-frontend/service-query-frontend-headless.yaml---
# Source: loki/templates/query-frontend/service-query-frontend-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-query-frontend-headless
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: query-frontend
prometheus.io/service-monitor: "false"
spec:
clusterIP: None
type: ClusterIP
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
- name: grpclb
port: 9096
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-frontend loki/templates/query-frontend/service-query-frontend.yaml---
# Source: loki/templates/query-frontend/service-query-frontend.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-query-frontend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: query-frontend
spec:
type: ClusterIP
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
- name: grpclb
port: 9096
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-frontend loki/templates/query-frontend/poddisruptionbudget-query-frontent.yaml---
# Source: loki/templates/query-frontend/poddisruptionbudget-query-frontent.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-query-frontend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: query-frontend
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: query-frontend
maxUnavailable: 1 loki/templates/service-memberlist.yaml---
# Source: loki/templates/service-memberlist.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-memberlist
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
type: ClusterIP
clusterIP: None
ports:
- name: tcp
port: 7946
targetPort: http-memberlist
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/part-of: memberlist loki/templates/loki-canary/daemonset.yaml---
# Source: loki/templates/loki-canary/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
spec:
serviceAccountName: loki-canary
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
containers:
- name: loki-canary
image: docker.io/grafana/loki-canary:3.1.1
imagePullPolicy: IfNotPresent
args:
- -addr=loki-test-chart-name-gateway.default.svc.cluster.local.:80
- -labelname=pod
- -labelvalue=$(POD_NAME)
- -user=self-monitoring
- -tenant-id=self-monitoring
- -pass=
- -push=true
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
ports:
- name: http-metrics
containerPort: 3500
protocol: TCP
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
readinessProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
volumes: loki/templates/loki-canary/service.yaml---
# Source: loki/templates/loki-canary/service.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3500
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary loki/templates/loki-canary/serviceaccount.yaml---
# Source: loki/templates/loki-canary/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
automountServiceAccountToken: true loki/templates/results-cache/poddisruptionbudget-results-cache.yaml---
# Source: loki/templates/results-cache/poddisruptionbudget-results-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-results-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
maxUnavailable: 1 loki/templates/results-cache/statefulset-results-cache.yaml---
# Source: loki/templates/results-cache/statefulset-results-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-results-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 1229Mi
requests:
cpu: 500m
memory: 1229Mi
ports:
- containerPort: 11211
name: client
args:
- -m 1024
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/results-cache/service-results-cache-headless.yaml---
# Source: loki/templates/results-cache/service-results-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache" loki/templates/distributor/deployment-distributor.yaml---
# Source: loki/templates/distributor/deployment-distributor.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-distributor
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: distributor
app.kubernetes.io/part-of: memberlist
spec:
replicas: 3
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: distributor
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: distributor
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: distributor
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=distributor
- -distributor.zone-awareness-enabled=true
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
livenessProbe:
null
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: distributor
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime loki/templates/distributor/service-distributor-headless.yaml---
# Source: loki/templates/distributor/service-distributor-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-distributor-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: distributor
variant: headless
prometheus.io/service-monitor: "false"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: distributor loki/templates/distributor/poddisruptionbudget-distributor.yaml---
# Source: loki/templates/distributor/poddisruptionbudget-distributor.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-distributor
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: distributor
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: distributor
maxUnavailable: 2 loki/templates/distributor/service-distributor.yaml---
# Source: loki/templates/distributor/service-distributor.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-distributor
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: distributor
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: distributor loki/templates/gateway/configmap-gateway.yaml---
# Source: loki/templates/gateway/configmap-gateway.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
data:
nginx.conf: |
worker_processes 5; ## Default: 1
error_log /dev/stderr;
pid /tmp/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096; ## Default: 1024
}
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
client_max_body_size 4M;
proxy_read_timeout 600; ## 10 minutes
proxy_send_timeout 600;
proxy_connect_timeout 600;
proxy_http_version 1.1;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/stderr main;
sendfile on;
tcp_nopush on;
resolver kube-dns.kube-system.svc.cluster.local.;
server {
listen 8080;
listen [::]:8080;
location = / {
return 200 'OK';
auth_basic off;
}
########################################################
# Configure backend targets# Distributor
location = /api/prom/push {
proxy_pass http://loki-test-chart-name-distributor.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/push {
proxy_pass http://loki-test-chart-name-distributor.default.svc.cluster.local:3100$request_uri;
}
location = /distributor/ring {
proxy_pass http://loki-test-chart-name-distributor.default.svc.cluster.local:3100$request_uri;
}
location = /otlp/v1/logs {
proxy_pass http://loki-test-chart-name-distributor.default.svc.cluster.local:3100$request_uri;
}
# Ingester
location = /flush {
proxy_pass http://loki-test-chart-name-ingester.default.svc.cluster.local:3100$request_uri;
}
location ^~ /ingester/ {
proxy_pass http://loki-test-chart-name-ingester.default.svc.cluster.local:3100$request_uri;
}
location = /ingester {
internal; # to suppress 301
}
# Ring
location = /ring {
proxy_pass http://loki-test-chart-name-ingester.default.svc.cluster.local:3100$request_uri;
}
# MemberListKV
location = /memberlist {
proxy_pass http://loki-test-chart-name-ingester.default.svc.cluster.local:3100$request_uri;
}
# Ruler
location = /ruler/ring {
proxy_pass http://loki-test-chart-name-ruler.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom/rules {
proxy_pass http://loki-test-chart-name-ruler.default.svc.cluster.local:3100$request_uri;
}
location ^~ /api/prom/rules/ {
proxy_pass http://loki-test-chart-name-ruler.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/rules {
proxy_pass http://loki-test-chart-name-ruler.default.svc.cluster.local:3100$request_uri;
}
location ^~ /loki/api/v1/rules/ {
proxy_pass http://loki-test-chart-name-ruler.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/alerts {
proxy_pass http://loki-test-chart-name-ruler.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/rules {
proxy_pass http://loki-test-chart-name-ruler.default.svc.cluster.local:3100$request_uri;
}
# Compactor
location = /compactor/ring {
proxy_pass http://loki-test-chart-name-compactor.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/delete {
proxy_pass http://loki-test-chart-name-compactor.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/cache/generation_numbers {
proxy_pass http://loki-test-chart-name-compactor.default.svc.cluster.local:3100$request_uri;
}
# IndexGateway
location = /indexgateway/ring {
proxy_pass http://loki-test-chart-name-index-gateway.default.svc.cluster.local:3100$request_uri;
}
# QueryScheduler
location = /scheduler/ring {
proxy_pass http://loki-test-chart-name-query-scheduler.default.svc.cluster.local:3100$request_uri;
}
# Config
location = /config {
proxy_pass http://loki-test-chart-name-ingester.default.svc.cluster.local:3100$request_uri;
}
# QueryFrontend, Querier
location = /api/prom/tail {
proxy_pass http://loki-test-chart-name-query-frontend.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location = /loki/api/v1/tail {
proxy_pass http://loki-test-chart-name-query-frontend.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ^~ /api/prom/ {
proxy_pass http://loki-test-chart-name-query-frontend.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom {
internal; # to suppress 301
}
location ^~ /loki/api/v1/ {
proxy_pass http://loki-test-chart-name-query-frontend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1 {
internal; # to suppress 301
}
}
} loki/templates/gateway/service-gateway.yaml---
# Source: loki/templates/gateway/service-gateway.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 80
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway loki/templates/gateway/deployment-gateway-nginx.yaml---
# Source: loki/templates/gateway/deployment-gateway-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
spec:
replicas: 1
strategy:
type: RollingUpdate
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
template:
metadata:
annotations:
checksum/config: 15c46973e60557d100e2671b98523f215075965a869846ba66cd8fc9c70349ec
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
spec:
serviceAccountName: loki
enableServiceLinks: true
securityContext:
fsGroup: 101
runAsGroup: 101
runAsNonRoot: true
runAsUser: 101
terminationGracePeriodSeconds: 30
containers:
- name: nginx
image: docker.io/nginxinc/nginx-unprivileged:1.27-alpine
imagePullPolicy: IfNotPresent
ports:
- name: http-metrics
containerPort: 8080
protocol: TCP
readinessProbe:
httpGet:
path: /
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
- name: config
mountPath: /etc/nginx
- name: tmp
mountPath: /tmp
- name: docker-entrypoint-d-override
mountPath: /docker-entrypoint.d
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: gateway
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki-test-chart-name-gateway
- name: tmp
emptyDir: {}
- name: docker-entrypoint-d-override
emptyDir: {} loki/templates/index-gateway/poddisruptionbudget-index-gateway.yaml---
# Source: loki/templates/index-gateway/poddisruptionbudget-index-gateway.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-index-gateway
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: index-gateway
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: index-gateway
maxUnavailable: 1 loki/templates/index-gateway/service-index-gateway.yaml---
# Source: loki/templates/index-gateway/service-index-gateway.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-index-gateway
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: index-gateway
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: index-gateway loki/templates/index-gateway/statefulset-index-gateway.yaml---
# Source: loki/templates/index-gateway/statefulset-index-gateway.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-index-gateway
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: index-gateway
spec:
replicas: 2
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-test-chart-name-index-gateway-headless
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: index-gateway
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: index-gateway
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: index-gateway
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=index-gateway
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
livenessProbe:
null
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: index-gateway
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: data
emptyDir: {} loki/templates/index-gateway/service-index-gateway-headless.yaml---
# Source: loki/templates/index-gateway/service-index-gateway-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-index-gateway-headless
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: index-gateway
prometheus.io/service-monitor: "false"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: index-gateway loki/templates/compactor/statefulset-compactor.yaml---
# Source: loki/templates/compactor/statefulset-compactor.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-compactor
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: compactor
app.kubernetes.io/part-of: memberlist
spec:
replicas: 1
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-test-chart-name-compactor-headless
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: compactor
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: compactor
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: compactor
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=compactor
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: temp
mountPath: /tmp
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: compactor
topologyKey: kubernetes.io/hostname
volumes:
- name: temp
emptyDir: {}
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: data
emptyDir: {} loki/templates/compactor/service-compactor.yaml---
# Source: loki/templates/compactor/service-compactor.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-compactor
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: compactor
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: compactor loki/templates/serviceaccount.yaml---
# Source: loki/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
automountServiceAccountToken: true loki/templates/ruler/statefulset-ruler.yaml---
# Source: loki/templates/ruler/statefulset-ruler.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-ruler
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: ruler
app.kubernetes.io/part-of: memberlist
spec:
replicas: 0
revisionHistoryLimit: 10
serviceName: loki-test-chart-name-ruler
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ruler
template:
metadata:
annotations:
checksum/config: 927412fe484bf5103a8ac7034f7bb86d52494eaff45e6aaf2ab9e5f9076b436d
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ruler
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: ruler
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=ruler
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
- name: tmp
mountPath: /tmp/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: ruler
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: tmp
emptyDir: {}
- name: data
emptyDir: {} loki/templates/ruler/service-ruler.yaml---
# Source: loki/templates/ruler/service-ruler.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-ruler
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ruler
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: ruler loki/templates/chunks-cache/statefulset-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/statefulset-chunks-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-chunks-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 9830Mi
requests:
cpu: 500m
memory: 9830Mi
ports:
- containerPort: 11211
name: client
args:
- -m 8192
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/chunks-cache/service-chunks-cache-headless.yaml---
# Source: loki/templates/chunks-cache/service-chunks-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache" loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-chunks-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
maxUnavailable: 1 loki/templates/runtime-configmap.yaml---
# Source: loki/templates/runtime-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-runtime
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
runtime-config.yaml: |
{} Modified FilesNo modified files Removed FilesNo removed files Scenario: default-values (Added: 29, Modified: 0, Removed: 0)
Summary:
Added Filesloki/templates/tests/test-canary.yaml---
# Source: loki/templates/tests/test-canary.yaml
apiVersion: v1
kind: Pod
metadata:
name: "loki-helm-test"
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: helm-test
annotations:
"helm.sh/hook": test
spec:
containers:
- name: loki-helm-test
image: docker.io/grafana/loki-helm-test:ewelch-distributed-helm-chart-17db5ee
env:
- name: CANARY_SERVICE_ADDRESS
value: "http://loki-canary:3500/metrics"
- name: CANARY_PROMETHEUS_ADDRESS
value: ""
- name: CANARY_TEST_TIMEOUT
value: "1m"
args:
- -test.v
restartPolicy: Never loki/templates/read/service-read-headless.yaml---
# Source: loki/templates/read/service-read-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-read-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/read/deployment-read.yaml---
# Source: loki/templates/read/deployment-read.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-read
namespace: default
labels:
app.kubernetes.io/part-of: memberlist
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/part-of: memberlist
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
spec:
serviceAccountName: loki
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=read
- -legacy-read-mode=false
- -common.compactor-grpc-address=loki-backend.default.svc.cluster.local:9095
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: read
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: data
emptyDir: {}
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime loki/templates/read/service-read.yaml---
# Source: loki/templates/read/service-read.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-read
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/config.yaml---
# Source: loki/templates/config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
config.yaml: |
auth_enabled: true
chunk_store_config:
chunk_cache_config:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 0s
memcached:
batch_size: 4
parallelism: 5
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-chunks-cache.default.svc
consistent_hash: true
max_idle_conns: 72
timeout: 2000ms
common:
compactor_address: 'http://loki-backend:3100'
path_prefix: /var/loki
replication_factor: 1
storage:
s3:
bucketnames: chunks
insecure: false
s3forcepathstyle: false
frontend:
scheduler_address: ""
tail_proxy_url: ""
frontend_worker:
scheduler_address: ""
index_gateway:
mode: simple
limits_config:
max_cache_freshness_per_query: 10m
query_timeout: 300s
reject_old_samples: true
reject_old_samples_max_age: 168h
split_queries_by_interval: 15m
volume_enabled: true
memberlist:
join_members:
- loki-memberlist
pattern_ingester:
enabled: false
query_range:
align_queries_with_step: true
cache_results: true
results_cache:
cache:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 12h
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-results-cache.default.svc
consistent_hash: true
timeout: 500ms
update_interval: 1m
ruler:
storage:
s3:
bucketnames: ruler
insecure: false
s3forcepathstyle: false
type: s3
runtime_config:
file: /etc/loki/runtime-config/runtime-config.yaml
schema_config:
configs:
- from: "2024-04-01"
index:
period: 24h
prefix: index_
object_store: 'filesystem'
schema: v13
store: tsdb
server:
grpc_listen_port: 9095
http_listen_port: 3100
http_server_read_timeout: 600s
http_server_write_timeout: 600s
storage_config:
boltdb_shipper:
index_gateway_client:
server_address: dns+loki-backend-headless.default.svc.cluster.local:9095
hedging:
at: 250ms
max_per_second: 20
up_to: 3
tsdb_shipper:
index_gateway_client:
server_address: dns+loki-backend-headless.default.svc.cluster.local:9095
tracing:
enabled: false loki/templates/service-memberlist.yaml---
# Source: loki/templates/service-memberlist.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-memberlist
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
type: ClusterIP
clusterIP: None
ports:
- name: tcp
port: 7946
targetPort: http-memberlist
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/part-of: memberlist loki/templates/loki-canary/daemonset.yaml---
# Source: loki/templates/loki-canary/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
spec:
serviceAccountName: loki-canary
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
containers:
- name: loki-canary
image: docker.io/grafana/loki-canary:3.1.1
imagePullPolicy: IfNotPresent
args:
- -addr=loki-test-chart-name-gateway.default.svc.cluster.local.:80
- -labelname=pod
- -labelvalue=$(POD_NAME)
- -user=self-monitoring
- -tenant-id=self-monitoring
- -pass=
- -push=true
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
ports:
- name: http-metrics
containerPort: 3500
protocol: TCP
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
readinessProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
volumes: loki/templates/loki-canary/service.yaml---
# Source: loki/templates/loki-canary/service.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3500
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary loki/templates/loki-canary/serviceaccount.yaml---
# Source: loki/templates/loki-canary/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
automountServiceAccountToken: true loki/templates/results-cache/poddisruptionbudget-results-cache.yaml---
# Source: loki/templates/results-cache/poddisruptionbudget-results-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-results-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
maxUnavailable: 1 loki/templates/results-cache/statefulset-results-cache.yaml---
# Source: loki/templates/results-cache/statefulset-results-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-results-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 1229Mi
requests:
cpu: 500m
memory: 1229Mi
ports:
- containerPort: 11211
name: client
args:
- -m 1024
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/results-cache/service-results-cache-headless.yaml---
# Source: loki/templates/results-cache/service-results-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache" loki/templates/gateway/configmap-gateway.yaml---
# Source: loki/templates/gateway/configmap-gateway.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
data:
nginx.conf: |
worker_processes 5; ## Default: 1
error_log /dev/stderr;
pid /tmp/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096; ## Default: 1024
}
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
client_max_body_size 4M;
proxy_read_timeout 600; ## 10 minutes
proxy_send_timeout 600;
proxy_connect_timeout 600;
proxy_http_version 1.1;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/stderr main;
sendfile on;
tcp_nopush on;
resolver kube-dns.kube-system.svc.cluster.local.;
server {
listen 8080;
listen [::]:8080;
location = / {
return 200 'OK';
auth_basic off;
}
########################################################
# Configure backend targets# Distributor
location = /api/prom/push {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/push {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /distributor/ring {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /otlp/v1/logs {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# Ingester
location = /flush {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location ^~ /ingester/ {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /ingester {
internal; # to suppress 301
}
# Ring
location = /ring {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# MemberListKV
location = /memberlist {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# Ruler
location = /ruler/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location ^~ /api/prom/rules/ {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location ^~ /loki/api/v1/rules/ {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/alerts {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# Compactor
location = /compactor/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/delete {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/cache/generation_numbers {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# IndexGateway
location = /indexgateway/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# QueryScheduler
location = /scheduler/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# Config
location = /config {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# QueryFrontend, Querier
location = /api/prom/tail {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location = /loki/api/v1/tail {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ^~ /api/prom/ {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom {
internal; # to suppress 301
}
location ^~ /loki/api/v1/ {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1 {
internal; # to suppress 301
}
}
} loki/templates/gateway/service-gateway.yaml---
# Source: loki/templates/gateway/service-gateway.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 80
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway loki/templates/gateway/deployment-gateway-nginx.yaml---
# Source: loki/templates/gateway/deployment-gateway-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
spec:
replicas: 1
strategy:
type: RollingUpdate
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
template:
metadata:
annotations:
checksum/config: 9f31d0e363d3d13dcc6de473a599f0619f524418be6a7c1f71cbcac20631e25c
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
spec:
serviceAccountName: loki
enableServiceLinks: true
securityContext:
fsGroup: 101
runAsGroup: 101
runAsNonRoot: true
runAsUser: 101
terminationGracePeriodSeconds: 30
containers:
- name: nginx
image: docker.io/nginxinc/nginx-unprivileged:1.27-alpine
imagePullPolicy: IfNotPresent
ports:
- name: http-metrics
containerPort: 8080
protocol: TCP
readinessProbe:
httpGet:
path: /
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
- name: config
mountPath: /etc/nginx
- name: tmp
mountPath: /tmp
- name: docker-entrypoint-d-override
mountPath: /docker-entrypoint.d
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: gateway
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki-test-chart-name-gateway
- name: tmp
emptyDir: {}
- name: docker-entrypoint-d-override
emptyDir: {} loki/templates/write/service-write-headless.yaml---
# Source: loki/templates/write/service-write-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-write-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/write/statefulset-write.yaml---
# Source: loki/templates/write/statefulset-write.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
replicas: 1
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-write-headless
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
automountServiceAccountToken: true
enableServiceLinks: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=write
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: write
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "10Gi" loki/templates/write/service-write.yaml---
# Source: loki/templates/write/service-write.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/serviceaccount.yaml---
# Source: loki/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
automountServiceAccountToken: true loki/templates/chunks-cache/statefulset-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/statefulset-chunks-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-chunks-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 9830Mi
requests:
cpu: 500m
memory: 9830Mi
ports:
- containerPort: 11211
name: client
args:
- -m 8192
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/chunks-cache/service-chunks-cache-headless.yaml---
# Source: loki/templates/chunks-cache/service-chunks-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache" loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-chunks-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
maxUnavailable: 1 loki/templates/runtime-configmap.yaml---
# Source: loki/templates/runtime-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-runtime
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
runtime-config.yaml: |
{} loki/templates/backend/service-backend.yaml---
# Source: loki/templates/backend/service-backend.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/service-backend-headless.yaml---
# Source: loki/templates/backend/service-backend-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-backend-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/statefulset-backend.yaml---
# Source: loki/templates/backend/statefulset-backend.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
replicas: 1
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-backend-headless
revisionHistoryLimit: 10
persistentVolumeClaimRetentionPolicy:
whenDeleted: Delete
whenScaled: Delete
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki-sc-rules
image: "kiwigrid/k8s-sidecar:1.27.5"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
value: WATCH
- name: LABEL
value: "loki_rule"
- name: FOLDER
value: "/rules"
- name: RESOURCE
value: "both"
- name: WATCH_SERVER_TIMEOUT
value: "60"
- name: WATCH_CLIENT_TIMEOUT
value: "60"
- name: LOG_LEVEL
value: "INFO"
volumeMounts:
- name: sc-rules-volume
mountPath: "/rules"
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=backend
- -legacy-read-mode=false
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
- name: sc-rules-volume
mountPath: "/rules"
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: backend
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: sc-rules-volume
emptyDir: {}
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "10Gi" loki/templates/backend/clusterrole.yaml---
# Source: loki/templates/backend/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
name: loki-test-chart-name-clusterrole
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["configmaps", "secrets"]
verbs: ["get", "watch", "list"] loki/templates/backend/clusterrolebinding.yaml---
# Source: loki/templates/backend/clusterrolebinding.yaml
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: loki-test-chart-name-clusterrolebinding
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
subjects:
- kind: ServiceAccount
name: loki
namespace: default
roleRef:
kind: ClusterRole
name: loki-test-chart-name-clusterrole
apiGroup: rbac.authorization.k8s.io loki/templates/backend/query-scheduler-discovery.yaml---
# Source: loki/templates/backend/query-scheduler-discovery.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-query-scheduler-discovery
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
prometheus.io/service-monitor: "false"
spec:
type: ClusterIP
clusterIP: None
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend Modified FilesNo modified files Removed FilesNo removed files Scenario: ingress-values (Added: 30, Modified: 0, Removed: 0)
Summary:
Added Filesloki/templates/tests/test-canary.yaml---
# Source: loki/templates/tests/test-canary.yaml
apiVersion: v1
kind: Pod
metadata:
name: "loki-helm-test"
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: helm-test
annotations:
"helm.sh/hook": test
spec:
containers:
- name: loki-helm-test
image: docker.io/grafana/loki-helm-test:ewelch-distributed-helm-chart-17db5ee
env:
- name: CANARY_SERVICE_ADDRESS
value: "http://loki-canary:3500/metrics"
- name: CANARY_PROMETHEUS_ADDRESS
value: ""
- name: CANARY_TEST_TIMEOUT
value: "1m"
args:
- -test.v
restartPolicy: Never loki/templates/read/service-read-headless.yaml---
# Source: loki/templates/read/service-read-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-read-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/read/deployment-read.yaml---
# Source: loki/templates/read/deployment-read.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-read
namespace: default
labels:
app.kubernetes.io/part-of: memberlist
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/part-of: memberlist
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
spec:
serviceAccountName: loki
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=read
- -legacy-read-mode=false
- -common.compactor-grpc-address=loki-backend.default.svc.cluster.local:9095
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: read
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: data
emptyDir: {}
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime loki/templates/read/service-read.yaml---
# Source: loki/templates/read/service-read.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-read
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/config.yaml---
# Source: loki/templates/config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
config.yaml: |
auth_enabled: true
chunk_store_config:
chunk_cache_config:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 0s
memcached:
batch_size: 4
parallelism: 5
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-chunks-cache.default.svc
consistent_hash: true
max_idle_conns: 72
timeout: 2000ms
common:
compactor_address: 'http://loki-backend:3100'
path_prefix: /var/loki
replication_factor: 1
storage:
s3:
bucketnames: chunks
insecure: false
s3forcepathstyle: false
frontend:
scheduler_address: ""
tail_proxy_url: ""
frontend_worker:
scheduler_address: ""
index_gateway:
mode: simple
limits_config:
max_cache_freshness_per_query: 10m
query_timeout: 300s
reject_old_samples: true
reject_old_samples_max_age: 168h
split_queries_by_interval: 15m
volume_enabled: true
memberlist:
join_members:
- loki-memberlist
pattern_ingester:
enabled: false
query_range:
align_queries_with_step: true
cache_results: true
results_cache:
cache:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 12h
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-results-cache.default.svc
consistent_hash: true
timeout: 500ms
update_interval: 1m
ruler:
storage:
s3:
bucketnames: ruler
insecure: false
s3forcepathstyle: false
type: s3
runtime_config:
file: /etc/loki/runtime-config/runtime-config.yaml
schema_config:
configs:
- from: "2024-04-01"
index:
period: 24h
prefix: index_
object_store: 'filesystem'
schema: v13
store: tsdb
server:
grpc_listen_port: 9095
http_listen_port: 3100
http_server_read_timeout: 600s
http_server_write_timeout: 600s
storage_config:
boltdb_shipper:
index_gateway_client:
server_address: dns+loki-backend-headless.default.svc.cluster.local:9095
hedging:
at: 250ms
max_per_second: 20
up_to: 3
tsdb_shipper:
index_gateway_client:
server_address: dns+loki-backend-headless.default.svc.cluster.local:9095
tracing:
enabled: false loki/templates/service-memberlist.yaml---
# Source: loki/templates/service-memberlist.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-memberlist
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
type: ClusterIP
clusterIP: None
ports:
- name: tcp
port: 7946
targetPort: http-memberlist
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/part-of: memberlist loki/templates/loki-canary/daemonset.yaml---
# Source: loki/templates/loki-canary/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
spec:
serviceAccountName: loki-canary
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
containers:
- name: loki-canary
image: docker.io/grafana/loki-canary:3.1.1
imagePullPolicy: IfNotPresent
args:
- -addr=loki-test-chart-name-gateway.default.svc.cluster.local.:80
- -labelname=pod
- -labelvalue=$(POD_NAME)
- -user=self-monitoring
- -tenant-id=self-monitoring
- -pass=
- -push=true
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
ports:
- name: http-metrics
containerPort: 3500
protocol: TCP
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
readinessProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
volumes: loki/templates/loki-canary/service.yaml---
# Source: loki/templates/loki-canary/service.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3500
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary loki/templates/loki-canary/serviceaccount.yaml---
# Source: loki/templates/loki-canary/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
automountServiceAccountToken: true loki/templates/results-cache/poddisruptionbudget-results-cache.yaml---
# Source: loki/templates/results-cache/poddisruptionbudget-results-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-results-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
maxUnavailable: 1 loki/templates/results-cache/statefulset-results-cache.yaml---
# Source: loki/templates/results-cache/statefulset-results-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-results-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 1229Mi
requests:
cpu: 500m
memory: 1229Mi
ports:
- containerPort: 11211
name: client
args:
- -m 1024
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/results-cache/service-results-cache-headless.yaml---
# Source: loki/templates/results-cache/service-results-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache" loki/templates/gateway/configmap-gateway.yaml---
# Source: loki/templates/gateway/configmap-gateway.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
data:
nginx.conf: |
worker_processes 5; ## Default: 1
error_log /dev/stderr;
pid /tmp/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096; ## Default: 1024
}
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
client_max_body_size 4M;
proxy_read_timeout 600; ## 10 minutes
proxy_send_timeout 600;
proxy_connect_timeout 600;
proxy_http_version 1.1;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/stderr main;
sendfile on;
tcp_nopush on;
resolver kube-dns.kube-system.svc.cluster.local.;
server {
listen 8080;
listen [::]:8080;
location = / {
return 200 'OK';
auth_basic off;
}
########################################################
# Configure backend targets# Distributor
location = /api/prom/push {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/push {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /distributor/ring {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /otlp/v1/logs {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# Ingester
location = /flush {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location ^~ /ingester/ {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /ingester {
internal; # to suppress 301
}
# Ring
location = /ring {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# MemberListKV
location = /memberlist {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# Ruler
location = /ruler/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location ^~ /api/prom/rules/ {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location ^~ /loki/api/v1/rules/ {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/alerts {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# Compactor
location = /compactor/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/delete {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/cache/generation_numbers {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# IndexGateway
location = /indexgateway/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# QueryScheduler
location = /scheduler/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# Config
location = /config {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# QueryFrontend, Querier
location = /api/prom/tail {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location = /loki/api/v1/tail {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ^~ /api/prom/ {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom {
internal; # to suppress 301
}
location ^~ /loki/api/v1/ {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1 {
internal; # to suppress 301
}
}
} loki/templates/gateway/ingress-gateway.yaml---
# Source: loki/templates/gateway/ingress-gateway.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
spec:
tls:
- hosts:
- "gateway.loki.example.com"
secretName: loki-gateway-tls
rules:
- host: "gateway.loki.example.com"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: loki-test-chart-name-gateway
port:
number: 80 loki/templates/gateway/service-gateway.yaml---
# Source: loki/templates/gateway/service-gateway.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 80
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway loki/templates/gateway/deployment-gateway-nginx.yaml---
# Source: loki/templates/gateway/deployment-gateway-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
spec:
replicas: 1
strategy:
type: RollingUpdate
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
template:
metadata:
annotations:
checksum/config: 9f31d0e363d3d13dcc6de473a599f0619f524418be6a7c1f71cbcac20631e25c
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
spec:
serviceAccountName: loki
enableServiceLinks: true
securityContext:
fsGroup: 101
runAsGroup: 101
runAsNonRoot: true
runAsUser: 101
terminationGracePeriodSeconds: 30
containers:
- name: nginx
image: docker.io/nginxinc/nginx-unprivileged:1.27-alpine
imagePullPolicy: IfNotPresent
ports:
- name: http-metrics
containerPort: 8080
protocol: TCP
readinessProbe:
httpGet:
path: /
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
- name: config
mountPath: /etc/nginx
- name: tmp
mountPath: /tmp
- name: docker-entrypoint-d-override
mountPath: /docker-entrypoint.d
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: gateway
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki-test-chart-name-gateway
- name: tmp
emptyDir: {}
- name: docker-entrypoint-d-override
emptyDir: {} loki/templates/write/service-write-headless.yaml---
# Source: loki/templates/write/service-write-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-write-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/write/statefulset-write.yaml---
# Source: loki/templates/write/statefulset-write.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
replicas: 1
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-write-headless
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
automountServiceAccountToken: true
enableServiceLinks: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=write
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: write
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "10Gi" loki/templates/write/service-write.yaml---
# Source: loki/templates/write/service-write.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/serviceaccount.yaml---
# Source: loki/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
automountServiceAccountToken: true loki/templates/chunks-cache/statefulset-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/statefulset-chunks-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-chunks-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 9830Mi
requests:
cpu: 500m
memory: 9830Mi
ports:
- containerPort: 11211
name: client
args:
- -m 8192
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/chunks-cache/service-chunks-cache-headless.yaml---
# Source: loki/templates/chunks-cache/service-chunks-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache" loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-chunks-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
maxUnavailable: 1 loki/templates/runtime-configmap.yaml---
# Source: loki/templates/runtime-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-runtime
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
runtime-config.yaml: |
{} loki/templates/backend/service-backend.yaml---
# Source: loki/templates/backend/service-backend.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/service-backend-headless.yaml---
# Source: loki/templates/backend/service-backend-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-backend-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/statefulset-backend.yaml---
# Source: loki/templates/backend/statefulset-backend.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
replicas: 1
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-backend-headless
revisionHistoryLimit: 10
persistentVolumeClaimRetentionPolicy:
whenDeleted: Delete
whenScaled: Delete
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki-sc-rules
image: "kiwigrid/k8s-sidecar:1.27.5"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
value: WATCH
- name: LABEL
value: "loki_rule"
- name: FOLDER
value: "/rules"
- name: RESOURCE
value: "both"
- name: WATCH_SERVER_TIMEOUT
value: "60"
- name: WATCH_CLIENT_TIMEOUT
value: "60"
- name: LOG_LEVEL
value: "INFO"
volumeMounts:
- name: sc-rules-volume
mountPath: "/rules"
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=backend
- -legacy-read-mode=false
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
- name: sc-rules-volume
mountPath: "/rules"
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: backend
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: sc-rules-volume
emptyDir: {}
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "10Gi" loki/templates/backend/clusterrole.yaml---
# Source: loki/templates/backend/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
name: loki-test-chart-name-clusterrole
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["configmaps", "secrets"]
verbs: ["get", "watch", "list"] loki/templates/backend/clusterrolebinding.yaml---
# Source: loki/templates/backend/clusterrolebinding.yaml
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: loki-test-chart-name-clusterrolebinding
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
subjects:
- kind: ServiceAccount
name: loki
namespace: default
roleRef:
kind: ClusterRole
name: loki-test-chart-name-clusterrole
apiGroup: rbac.authorization.k8s.io loki/templates/backend/query-scheduler-discovery.yaml---
# Source: loki/templates/backend/query-scheduler-discovery.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-query-scheduler-discovery
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
prometheus.io/service-monitor: "false"
spec:
type: ClusterIP
clusterIP: None
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend Modified FilesNo modified files Removed FilesNo removed files Scenario: legacy-monitoring-values (Added: 37, Modified: 0, Removed: 0)
Summary:
Added Filesloki/charts/grafana-agent-operator/templates/tests/test-grafanaagent.yaml---
# Source: loki/charts/grafana-agent-operator/templates/tests/test-grafanaagent.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: grafana-agent-test-sa
annotations:
"helm.sh/hook": test
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
---
# Source: loki/charts/grafana-agent-operator/templates/tests/test-grafanaagent.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: grafana-agent-test-cr
annotations:
"helm.sh/hook": test
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
rules:
- apiGroups:
- ""
resources:
- nodes
- nodes/proxy
- nodes/metrics
- services
- endpoints
- pods
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- watch
- nonResourceURLs:
- /metrics
- /metrics/cadvisor
verbs:
- get
---
# Source: loki/charts/grafana-agent-operator/templates/tests/test-grafanaagent.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: grafana-agent-test-crb
annotations:
"helm.sh/hook": test
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: grafana-agent-test-cr
subjects:
- kind: ServiceAccount
name: grafana-agent-test-sa
namespace: default
---
# Source: loki/charts/grafana-agent-operator/templates/tests/test-grafanaagent.yaml
apiVersion: v1
kind: Pod
metadata:
name: grafana-agent-test-probe
annotations:
"helm.sh/hook": test
"helm.sh/hook-weight": "1"
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
spec:
containers:
- name: busybox
image: busybox
command: ['wget']
args: ['grafana-agent-test-operated:8080/-/healthy']
# Wait for GrafanaAgent CR
initContainers:
- name: sleep
image: busybox
command: ['sleep', '60']
restartPolicy: Never
---
# Source: loki/charts/grafana-agent-operator/templates/tests/test-grafanaagent.yaml
apiVersion: monitoring.grafana.com/v1alpha1
kind: GrafanaAgent
metadata:
name: grafana-agent-test
labels:
app: grafana-agent-test
annotations:
"helm.sh/hook": test
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
spec:
image: "docker.io/grafana/agent:v0.39.1"
logLevel: info
serviceAccountName: grafana-agent-test-sa
metrics:
instanceSelector:
matchLabels:
agent: grafana-agent-test
---
# Source: loki/charts/grafana-agent-operator/templates/tests/test-grafanaagent.yaml
apiVersion: monitoring.grafana.com/v1alpha1
kind: MetricsInstance
metadata:
name: primary-test
annotations:
"helm.sh/hook": test
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded,hook-failed
labels:
agent: grafana-agent-test
spec: {} loki/charts/grafana-agent-operator/templates/operator-serviceaccount.yaml---
# Source: loki/charts/grafana-agent-operator/templates/operator-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki-test-chart-name-grafana-agent-operator
namespace: default
labels:
app.kubernetes.io/name: grafana-agent-operator
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: operator
helm.sh/chart: grafana-agent-operator-0.3.15
app.kubernetes.io/version: "0.39.1" loki/charts/grafana-agent-operator/templates/operator-deployment.yaml---
# Source: loki/charts/grafana-agent-operator/templates/operator-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-grafana-agent-operator
labels:
app.kubernetes.io/name: grafana-agent-operator
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: operator
helm.sh/chart: grafana-agent-operator-0.3.15
app.kubernetes.io/version: "0.39.1"
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: grafana-agent-operator
app.kubernetes.io/instance: loki-test-chart-name
template:
metadata:
labels:
app.kubernetes.io/name: grafana-agent-operator
app.kubernetes.io/instance: loki-test-chart-name
spec:
serviceAccountName: loki-test-chart-name-grafana-agent-operator
containers:
- name: grafana-agent-operator
image: "docker.io/grafana/agent-operator:v0.39.1"
imagePullPolicy: IfNotPresent
args:
- --kubelet-service=default/kubelet loki/charts/grafana-agent-operator/templates/operator-clusterrole.yaml---
# Source: loki/charts/grafana-agent-operator/templates/operator-clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: loki-test-chart-name-grafana-agent-operator
labels:
app.kubernetes.io/name: grafana-agent-operator
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: operator
helm.sh/chart: grafana-agent-operator-0.3.15
app.kubernetes.io/version: "0.39.1"
rules:
- apiGroups: [monitoring.grafana.com]
resources:
- grafanaagents
- metricsinstances
- logsinstances
- podlogs
- integrations
verbs: [get, list, watch]
- apiGroups: [monitoring.grafana.com]
resources:
- grafanaagents/finalizers
- metricsinstances/finalizers
- logsinstances/finalizers
- podlogs/finalizers
- integrations/finalizers
verbs: [get, list, watch, update]
- apiGroups: [monitoring.coreos.com]
resources:
- podmonitors
- probes
- servicemonitors
verbs: [get, list, watch]
- apiGroups: [monitoring.coreos.com]
resources:
- podmonitors/finalizers
- probes/finalizers
- servicemonitors/finalizers
verbs: [get, list, watch, update]
- apiGroups: [""]
resources:
- namespaces
- nodes
verbs: [get, list, watch]
- apiGroups: [""]
resources:
- secrets
- services
- configmaps
- endpoints
verbs: [get, list, watch, create, update, patch, delete]
- apiGroups: ["apps"]
resources:
- statefulsets
- daemonsets
- deployments
verbs: [get, list, watch, create, update, patch, delete] loki/charts/grafana-agent-operator/templates/operator-clusterrolebinding.yaml---
# Source: loki/charts/grafana-agent-operator/templates/operator-clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: loki-test-chart-name-grafana-agent-operator
labels:
app.kubernetes.io/name: grafana-agent-operator
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: operator
helm.sh/chart: grafana-agent-operator-0.3.15
app.kubernetes.io/version: "0.39.1"
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: loki-test-chart-name-grafana-agent-operator
subjects:
- kind: ServiceAccount
name: loki-test-chart-name-grafana-agent-operator
namespace: default loki/templates/monitoring/pod-logs.yaml---
# Source: loki/templates/monitoring/pod-logs.yaml
apiVersion: monitoring.grafana.com/v1alpha1
kind: PodLogs
metadata:
name: loki-test-chart-name
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
pipelineStages:
- cri: { }
relabelings:
- action: replace
sourceLabels:
- __meta_kubernetes_pod_node_name
targetLabel: __host__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- action: replace
replacement: "$1"
separator: "-"
sourceLabels:
- __meta_kubernetes_pod_label_app_kubernetes_io_name
- __meta_kubernetes_pod_label_app_kubernetes_io_component
targetLabel: __service__
- action: replace
replacement: "$1"
separator: "/"
sourceLabels:
- __meta_kubernetes_namespace
- __service__
targetLabel: job
- action: replace
sourceLabels:
- __meta_kubernetes_pod_container_name
targetLabel: container
- action: replace
replacement: "loki-test-chart-name"
targetLabel: cluster
namespaceSelector:
matchNames:
- default
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name loki/templates/monitoring/grafana-agent.yaml---
# Source: loki/templates/monitoring/grafana-agent.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki-test-chart-name-grafana-agent
namespace: default
---
# Source: loki/templates/monitoring/grafana-agent.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: loki-test-chart-name-grafana-agent
rules:
- apiGroups:
- ""
resources:
- nodes
- nodes/proxy
- nodes/metrics
- services
- endpoints
- pods
- events
verbs:
- get
- list
- watch
- apiGroups:
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- watch
- nonResourceURLs:
- /metrics
- /metrics/cadvisor
verbs:
- get
---
# Source: loki/templates/monitoring/grafana-agent.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: loki-test-chart-name-grafana-agent
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: loki-test-chart-name-grafana-agent
subjects:
- kind: ServiceAccount
name: loki-test-chart-name-grafana-agent
namespace: default
---
# Source: loki/templates/monitoring/grafana-agent.yaml
apiVersion: monitoring.grafana.com/v1alpha1
kind: GrafanaAgent
metadata:
name: loki-test-chart-name
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
serviceAccountName: loki-test-chart-name-grafana-agent
enableConfigReadAPI: false
logs:
instanceSelector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name loki/templates/monitoring/logs-instance.yaml---
# Source: loki/templates/monitoring/logs-instance.yaml
apiVersion: monitoring.grafana.com/v1alpha1
kind: LogsInstance
metadata:
name: loki-test-chart-name
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
clients:
- url: http://loki-test-chart-name-gateway.default.svc.cluster.local/loki/api/v1/push
externalLabels:
cluster: loki-test-chart-name
tenantId: "self-monitoring"
podLogsNamespaceSelector: {}
podLogsSelector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name loki/templates/tests/test-canary.yaml---
# Source: loki/templates/tests/test-canary.yaml
apiVersion: v1
kind: Pod
metadata:
name: "loki-helm-test"
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: helm-test
annotations:
"helm.sh/hook": test
spec:
containers:
- name: loki-helm-test
image: docker.io/grafana/loki-helm-test:ewelch-distributed-helm-chart-17db5ee
env:
- name: CANARY_SERVICE_ADDRESS
value: "http://loki-canary:3500/metrics"
- name: CANARY_PROMETHEUS_ADDRESS
value: "http://prometheus-kube-prometheus-prometheus.prometheus.svc.cluster.local.:9090"
- name: CANARY_TEST_TIMEOUT
value: "1m"
args:
- -test.v
restartPolicy: Never loki/templates/read/service-read-headless.yaml---
# Source: loki/templates/read/service-read-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-read-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/read/deployment-read.yaml---
# Source: loki/templates/read/deployment-read.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-read
namespace: default
labels:
app.kubernetes.io/part-of: memberlist
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
spec:
replicas: 1
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/part-of: memberlist
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
spec:
serviceAccountName: loki
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=read
- -legacy-read-mode=false
- -common.compactor-grpc-address=loki-backend.default.svc.cluster.local:9095
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: read
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: data
emptyDir: {}
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime loki/templates/read/service-read.yaml---
# Source: loki/templates/read/service-read.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-read
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/config.yaml---
# Source: loki/templates/config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
config.yaml: |
auth_enabled: true
chunk_store_config:
chunk_cache_config:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 0s
memcached:
batch_size: 4
parallelism: 5
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-chunks-cache.default.svc
consistent_hash: true
max_idle_conns: 72
timeout: 2000ms
common:
compactor_address: 'http://loki-backend:3100'
path_prefix: /var/loki
replication_factor: 1
storage:
s3:
bucketnames: chunks
insecure: false
s3forcepathstyle: false
frontend:
scheduler_address: ""
tail_proxy_url: ""
frontend_worker:
scheduler_address: ""
index_gateway:
mode: simple
limits_config:
max_cache_freshness_per_query: 10m
query_timeout: 300s
reject_old_samples: true
reject_old_samples_max_age: 168h
split_queries_by_interval: 15m
volume_enabled: true
memberlist:
join_members:
- loki-memberlist
pattern_ingester:
enabled: false
query_range:
align_queries_with_step: true
cache_results: true
results_cache:
cache:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 12h
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-results-cache.default.svc
consistent_hash: true
timeout: 500ms
update_interval: 1m
ruler:
storage:
s3:
bucketnames: ruler
insecure: false
s3forcepathstyle: false
type: s3
runtime_config:
file: /etc/loki/runtime-config/runtime-config.yaml
schema_config:
configs:
- from: "2024-04-01"
index:
period: 24h
prefix: index_
object_store: 'filesystem'
schema: v13
store: tsdb
server:
grpc_listen_port: 9095
http_listen_port: 3100
http_server_read_timeout: 600s
http_server_write_timeout: 600s
storage_config:
boltdb_shipper:
index_gateway_client:
server_address: dns+loki-backend-headless.default.svc.cluster.local:9095
hedging:
at: 250ms
max_per_second: 20
up_to: 3
tsdb_shipper:
index_gateway_client:
server_address: dns+loki-backend-headless.default.svc.cluster.local:9095
tracing:
enabled: false loki/templates/service-memberlist.yaml---
# Source: loki/templates/service-memberlist.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-memberlist
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
type: ClusterIP
clusterIP: None
ports:
- name: tcp
port: 7946
targetPort: http-memberlist
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/part-of: memberlist loki/templates/loki-canary/daemonset.yaml---
# Source: loki/templates/loki-canary/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
spec:
serviceAccountName: loki-canary
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
containers:
- name: loki-canary
image: docker.io/grafana/loki-canary:3.1.1
imagePullPolicy: IfNotPresent
args:
- -addr=loki-test-chart-name-gateway.default.svc.cluster.local.:80
- -labelname=pod
- -labelvalue=$(POD_NAME)
- -user=self-monitoring
- -tenant-id=self-monitoring
- -pass=
- -push=true
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
ports:
- name: http-metrics
containerPort: 3500
protocol: TCP
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
readinessProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
volumes: loki/templates/loki-canary/service.yaml---
# Source: loki/templates/loki-canary/service.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3500
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary loki/templates/loki-canary/serviceaccount.yaml---
# Source: loki/templates/loki-canary/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
automountServiceAccountToken: true loki/templates/results-cache/poddisruptionbudget-results-cache.yaml---
# Source: loki/templates/results-cache/poddisruptionbudget-results-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-results-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
maxUnavailable: 1 loki/templates/results-cache/statefulset-results-cache.yaml---
# Source: loki/templates/results-cache/statefulset-results-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-results-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 1229Mi
requests:
cpu: 500m
memory: 1229Mi
ports:
- containerPort: 11211
name: client
args:
- -m 1024
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/results-cache/service-results-cache-headless.yaml---
# Source: loki/templates/results-cache/service-results-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache" loki/templates/gateway/configmap-gateway.yaml---
# Source: loki/templates/gateway/configmap-gateway.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
data:
nginx.conf: |
worker_processes 5; ## Default: 1
error_log /dev/stderr;
pid /tmp/nginx.pid;
worker_rlimit_nofile 8192;
events {
worker_connections 4096; ## Default: 1024
}
http {
client_body_temp_path /tmp/client_temp;
proxy_temp_path /tmp/proxy_temp_path;
fastcgi_temp_path /tmp/fastcgi_temp;
uwsgi_temp_path /tmp/uwsgi_temp;
scgi_temp_path /tmp/scgi_temp;
client_max_body_size 4M;
proxy_read_timeout 600; ## 10 minutes
proxy_send_timeout 600;
proxy_connect_timeout 600;
proxy_http_version 1.1;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status '
'"$request" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/stderr main;
sendfile on;
tcp_nopush on;
resolver kube-dns.kube-system.svc.cluster.local.;
server {
listen 8080;
listen [::]:8080;
location = / {
return 200 'OK';
auth_basic off;
}
########################################################
# Configure backend targets# Distributor
location = /api/prom/push {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/push {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /distributor/ring {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /otlp/v1/logs {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# Ingester
location = /flush {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location ^~ /ingester/ {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
location = /ingester {
internal; # to suppress 301
}
# Ring
location = /ring {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# MemberListKV
location = /memberlist {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# Ruler
location = /ruler/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location ^~ /api/prom/rules/ {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location ^~ /loki/api/v1/rules/ {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/alerts {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /prometheus/api/v1/rules {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# Compactor
location = /compactor/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/delete {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1/cache/generation_numbers {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# IndexGateway
location = /indexgateway/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# QueryScheduler
location = /scheduler/ring {
proxy_pass http://loki-backend.default.svc.cluster.local:3100$request_uri;
}
# Config
location = /config {
proxy_pass http://loki-write.default.svc.cluster.local:3100$request_uri;
}
# QueryFrontend, Querier
location = /api/prom/tail {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location = /loki/api/v1/tail {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location ^~ /api/prom/ {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
}
location = /api/prom {
internal; # to suppress 301
}
location ^~ /loki/api/v1/ {
proxy_pass http://loki-read.default.svc.cluster.local:3100$request_uri;
}
location = /loki/api/v1 {
internal; # to suppress 301
}
}
} loki/templates/gateway/service-gateway.yaml---
# Source: loki/templates/gateway/service-gateway.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 80
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway loki/templates/gateway/deployment-gateway-nginx.yaml---
# Source: loki/templates/gateway/deployment-gateway-nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
spec:
replicas: 1
strategy:
type: RollingUpdate
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
template:
metadata:
annotations:
checksum/config: 9f31d0e363d3d13dcc6de473a599f0619f524418be6a7c1f71cbcac20631e25c
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
spec:
serviceAccountName: loki
enableServiceLinks: true
securityContext:
fsGroup: 101
runAsGroup: 101
runAsNonRoot: true
runAsUser: 101
terminationGracePeriodSeconds: 30
containers:
- name: nginx
image: docker.io/nginxinc/nginx-unprivileged:1.27-alpine
imagePullPolicy: IfNotPresent
ports:
- name: http-metrics
containerPort: 8080
protocol: TCP
readinessProbe:
httpGet:
path: /
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
- name: config
mountPath: /etc/nginx
- name: tmp
mountPath: /tmp
- name: docker-entrypoint-d-override
mountPath: /docker-entrypoint.d
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: gateway
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki-test-chart-name-gateway
- name: tmp
emptyDir: {}
- name: docker-entrypoint-d-override
emptyDir: {} loki/templates/write/service-write-headless.yaml---
# Source: loki/templates/write/service-write-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-write-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/write/statefulset-write.yaml---
# Source: loki/templates/write/statefulset-write.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
replicas: 1
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-write-headless
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
automountServiceAccountToken: true
enableServiceLinks: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=write
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: write
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "10Gi" loki/templates/write/service-write.yaml---
# Source: loki/templates/write/service-write.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/serviceaccount.yaml---
# Source: loki/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: loki
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
automountServiceAccountToken: true loki/templates/chunks-cache/statefulset-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/statefulset-chunks-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-chunks-cache
template:
metadata:
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
spec:
serviceAccountName: loki
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 9830Mi
requests:
cpu: 500m
memory: 9830Mi
ports:
- containerPort: 11211
name: client
args:
- -m 8192
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/chunks-cache/service-chunks-cache-headless.yaml---
# Source: loki/templates/chunks-cache/service-chunks-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache" loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-memcached-chunks-cache
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
maxUnavailable: 1 loki/templates/runtime-configmap.yaml---
# Source: loki/templates/runtime-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: loki-runtime
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
runtime-config.yaml: |
{} loki/templates/backend/service-backend.yaml---
# Source: loki/templates/backend/service-backend.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/service-backend-headless.yaml---
# Source: loki/templates/backend/service-backend-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-backend-headless
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/statefulset-backend.yaml---
# Source: loki/templates/backend/statefulset-backend.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
replicas: 1
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: loki-backend-headless
revisionHistoryLimit: 10
persistentVolumeClaimRetentionPolicy:
whenDeleted: Delete
whenScaled: Delete
selector:
matchLabels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
template:
metadata:
annotations:
checksum/config: 500ba3df68a94b828b3eb91169c199117adfeef5370bb54ec4d7d3ca3536b480
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: loki
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki-sc-rules
image: "kiwigrid/k8s-sidecar:1.27.5"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
value: WATCH
- name: LABEL
value: "loki_rule"
- name: FOLDER
value: "/rules"
- name: RESOURCE
value: "both"
- name: WATCH_SERVER_TIMEOUT
value: "60"
- name: WATCH_CLIENT_TIMEOUT
value: "60"
- name: LOG_LEVEL
value: "INFO"
volumeMounts:
- name: sc-rules-volume
mountPath: "/rules"
- name: loki
image: docker.io/grafana/loki:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=backend
- -legacy-read-mode=false
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
- name: sc-rules-volume
mountPath: "/rules"
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: backend
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: config
configMap:
name: loki
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: loki-runtime
- name: sc-rules-volume
emptyDir: {}
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "10Gi" loki/templates/backend/clusterrole.yaml---
# Source: loki/templates/backend/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
name: loki-test-chart-name-clusterrole
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["configmaps", "secrets"]
verbs: ["get", "watch", "list"] loki/templates/backend/clusterrolebinding.yaml---
# Source: loki/templates/backend/clusterrolebinding.yaml
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: loki-test-chart-name-clusterrolebinding
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
subjects:
- kind: ServiceAccount
name: loki
namespace: default
roleRef:
kind: ClusterRole
name: loki-test-chart-name-clusterrole
apiGroup: rbac.authorization.k8s.io loki/templates/backend/query-scheduler-discovery.yaml---
# Source: loki/templates/backend/query-scheduler-discovery.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-query-scheduler-discovery
namespace: default
labels:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
prometheus.io/service-monitor: "false"
spec:
type: ClusterIP
clusterIP: None
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: loki
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend Modified FilesNo modified files Removed FilesNo removed files Scenario: simple-scalable-aws-kube-irsa-values (Added: 42, Modified: 0, Removed: 0)
Summary:
Added Filesloki/templates/tests/test-canary.yaml---
# Source: loki/templates/tests/test-canary.yaml
apiVersion: v1
kind: Pod
metadata:
name: "enterprise-logs-helm-test"
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: helm-test
annotations:
"helm.sh/hook": test
spec:
containers:
- name: loki-helm-test
image: docker.io/grafana/loki-helm-test:ewelch-distributed-helm-chart-17db5ee
env:
- name: CANARY_SERVICE_ADDRESS
value: "http://loki-canary:3500/metrics"
- name: CANARY_PROMETHEUS_ADDRESS
value: ""
- name: CANARY_TEST_TIMEOUT
value: "1m"
args:
- -test.v
restartPolicy: Never loki/templates/tokengen/job-tokengen.yaml---
# Source: loki/templates/tokengen/job-tokengen.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: enterprise-logs-tokengen
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: tokengen
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install
"helm.sh/hook-weight": "10"
spec:
backoffLimit: 6
completions: 1
parallelism: 1
template:
metadata:
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: tokengen
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
spec:
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
initContainers:
- name: loki
image: docker.io/grafana/enterprise-logs:3.1.1
imagePullPolicy: IfNotPresent
args:
# The shared emptyDir exists only while the job is running, and is deleted once the job is completed.
# The tokengen generates a new admin token in case the 'token-file' file doesn't exist.
# As a result, subsequent executions of this tokengen job will generate new admin tokens.
# Note that previously generated tokens remain valid, as these remain present in the object storage.
- -config.file=/etc/loki/config/config.yaml
- -target=tokengen
- -tokengen.token-file=/shared/admin-token
volumeMounts:
- name: shared
mountPath: /shared
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: license
mountPath: /etc/loki/license
env:
containers:
- name: create-secret
image: docker.io/bitnami/kubectl:latest
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- -euc
- |
# Create or update admin token secrets generated by tokengen job
kubectl create secret generic "enterprise-logs-admin-token" \
--from-file=token=/shared/admin-token \
--dry-run=client -o yaml \
| kubectl apply -f -
volumeMounts:
- name: shared
mountPath: /shared
- name: config
mountPath: /etc/loki/config
- name: license
mountPath: /etc/loki/license
restartPolicy: OnFailure
serviceAccount: enterprise-logs-tokengen
serviceAccountName: enterprise-logs-tokengen
volumes:
- name: config
configMap:
name: enterprise-logs
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: enterprise-logs-runtime
- name: license
secret:
secretName: enterprise-logs-license
- name: shared
emptyDir: {} loki/templates/tokengen/clusterrole-tokengen.yaml---
# Source: loki/templates/tokengen/clusterrole-tokengen.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: enterprise-logs-tokengen
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: tokengen
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["create", "get", "patch"] loki/templates/tokengen/serviceaccount-tokengen.yaml---
# Source: loki/templates/tokengen/serviceaccount-tokengen.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: enterprise-logs-tokengen
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: tokengen
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install loki/templates/tokengen/clusterrolebinding-tokengen.yaml---
# Source: loki/templates/tokengen/clusterrolebinding-tokengen.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: enterprise-logs-tokengen
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: tokengen
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: enterprise-logs-tokengen
subjects:
- kind: ServiceAccount
name: enterprise-logs-tokengen
namespace: default loki/templates/admin-api/deployment-admin-api.yaml---
# Source: loki/templates/admin-api/deployment-admin-api.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-enterprise-logs-admin-api
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: admin-api
target: admin-api
app.kubernetes.io/part-of: memberlist
annotations:
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: admin-api
target: admin-api
strategy:
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: admin-api
target: admin-api
app.kubernetes.io/part-of: memberlist
annotations:
checksum/config: 40ee874b8d9cd2ff500f549233cda3d88f452f13da79551155f43dbe7f2a0b65
spec:
serviceAccountName: enterprise-logs
securityContext:
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
initContainers:
# Taken from
# https://github.com/minio/charts/blob/a5c84bcbad884728bff5c9c23541f936d57a13b3/minio/templates/post-install-create-bucket-job.yaml
containers:
- name: admin-api
image: "docker.io/grafana/enterprise-logs:3.1.1"
imagePullPolicy: IfNotPresent
args:
- -target=admin-api
- -config.file=/etc/loki/config/config.yaml
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: license
mountPath: /etc/loki/license
- name: storage
mountPath: /data
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 45
resources:
{}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
env:
nodeSelector:
{}
affinity:
{}
tolerations:
[]
terminationGracePeriodSeconds: 60
volumes:
- name: config
configMap:
name: enterprise-logs
items:
- key: "config.yaml"
path: "config.yaml"
- name: license
secret:
secretName: enterprise-logs-license
- name: storage
emptyDir: {} loki/templates/admin-api/service-admin-api.yaml---
# Source: loki/templates/admin-api/service-admin-api.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-enterprise-logs-admin-api
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: admin-api
target: admin-api
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
protocol: TCP
targetPort: http-metrics
- name: grpc
port: 9095
protocol: TCP
targetPort: grpc
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: admin-api
target: admin-api loki/templates/read/poddisruptionbudget-read.yaml---
# Source: loki/templates/read/poddisruptionbudget-read.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: enterprise-logs-read
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
spec:
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
maxUnavailable: 1 loki/templates/read/service-read-headless.yaml---
# Source: loki/templates/read/service-read-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-read-headless
namespace: default
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/read/deployment-read.yaml---
# Source: loki/templates/read/deployment-read.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: enterprise-logs-read
namespace: default
labels:
app.kubernetes.io/part-of: memberlist
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
spec:
replicas: 3
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
template:
metadata:
annotations:
checksum/config: 40ee874b8d9cd2ff500f549233cda3d88f452f13da79551155f43dbe7f2a0b65
labels:
app.kubernetes.io/part-of: memberlist
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read
spec:
serviceAccountName: enterprise-logs
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 30
containers:
- name: loki
image: docker.io/grafana/enterprise-logs:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=read
- -legacy-read-mode=false
- -common.compactor-grpc-address=enterprise-logs-backend.default.svc.cluster.local:9095
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
- name: license
mountPath: /etc/loki/license
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: read
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: data
emptyDir: {}
- name: config
configMap:
name: enterprise-logs
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: enterprise-logs-runtime
- name: license
secret:
secretName: enterprise-logs-license loki/templates/read/service-read.yaml---
# Source: loki/templates/read/service-read.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-read
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: read
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: read loki/templates/provisioner/job-provisioner.yaml---
# Source: loki/templates/provisioner/job-provisioner.yaml
apiVersion: batch/v1
kind: Job
metadata:
name: enterprise-logs-provisioner
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: provisioner
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install
"helm.sh/hook-weight": "15"
spec:
backoffLimit: 6
completions: 1
parallelism: 1
template:
metadata:
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: provisioner
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
spec:
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
initContainers:
- name: provisioner
image: docker.io/grafana/enterprise-logs-provisioner:latest
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- -exuc
- |
/usr/bin/enterprise-logs-provisioner \
-bootstrap-path=/bootstrap \
-cluster-name=loki-test-chart-name \
-gel-url=http://loki-test-chart-name-enterprise-logs-gateway.default.svc.cluster.local.:80 \
-instance=self-monitoring \
-access-policy=self-monitoring:self-monitoring:logs:write,logs:read \
-token=self-monitoring
volumeMounts:
- name: bootstrap
mountPath: /bootstrap
- name: admin-token
mountPath: /bootstrap/token
subPath: token
containers:
- name: create-secret
image: docker.io/bitnami/kubectl:latest
imagePullPolicy: IfNotPresent
command:
- /bin/bash
- -exuc
- |
# In case, the admin resources have already been created, the provisioner job
# does not write the token files to the bootstrap mount.
# Therefore, secrets are only created if the respective token files exist.
# Note: the following bash commands should always return a success status code.
# Therefore, in case the token file does not exist, the first clause of the
# or-operation is successful.
! test -s /bootstrap/token-self-monitoring || \
kubectl --namespace "default" create secret generic "enterprise-logs-provisioned-self-monitoring" \
--from-literal=username="self-monitoring" \
--from-literal=password="$(cat /bootstrap/token-self-monitoring)"
volumeMounts:
- name: bootstrap
mountPath: /bootstrap
restartPolicy: OnFailure
serviceAccount: enterprise-logs-provisioner
serviceAccountName: enterprise-logs-provisioner
volumes:
- name: admin-token
secret:
secretName: "enterprise-logs-admin-token"
- name: bootstrap
emptyDir: {} loki/templates/provisioner/serviceaccount-provisioner.yaml---
# Source: loki/templates/provisioner/serviceaccount-provisioner.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: enterprise-logs-provisioner
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: provisioner
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install loki/templates/provisioner/role-provisioner.yaml---
# Source: loki/templates/provisioner/role-provisioner.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: enterprise-logs-provisioner
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: provisioner
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install
rules:
- apiGroups: [""]
resources: ["secrets"]
verbs: ["create"] loki/templates/provisioner/rolebinding-provisioner.yaml---
# Source: loki/templates/provisioner/rolebinding-provisioner.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: enterprise-logs-provisioner
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: provisioner
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
"helm.sh/hook": post-install
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: enterprise-logs-provisioner
subjects:
- kind: ServiceAccount
name: enterprise-logs-provisioner
namespace: default loki/templates/config.yaml---
# Source: loki/templates/config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: enterprise-logs
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
config.yaml: |
admin_client:
storage:
backend: s3
s3:
bucket_name: aws-s3-admin-bucket
auth:
type: enterprise
auth_enabled: true
chunk_store_config:
chunk_cache_config:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 0s
memcached:
batch_size: 4
parallelism: 5
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-enterprise-logs-chunks-cache.default.svc
consistent_hash: true
max_idle_conns: 72
timeout: 2000ms
cluster_name: loki-test-chart-name
common:
compactor_address: 'http://enterprise-logs-backend:3100'
path_prefix: /var/loki
replication_factor: 3
storage:
s3:
bucketnames: aws-s3-chunks-bucket
insecure: false
region: eu-central-1
s3forcepathstyle: false
frontend:
scheduler_address: ""
tail_proxy_url: ""
frontend_worker:
scheduler_address: ""
index_gateway:
mode: simple
license:
path: /etc/loki/license/license.jwt
limits_config:
max_cache_freshness_per_query: 10m
query_timeout: 300s
reject_old_samples: true
reject_old_samples_max_age: 168h
split_queries_by_interval: 15m
volume_enabled: true
memberlist:
join_members:
- enterprise-logs-memberlist
pattern_ingester:
enabled: false
query_range:
align_queries_with_step: true
cache_results: true
results_cache:
cache:
background:
writeback_buffer: 500000
writeback_goroutines: 1
writeback_size_limit: 500MB
default_validity: 12h
memcached_client:
addresses: dnssrvnoa+_memcached-client._tcp.loki-test-chart-name-enterprise-logs-results-cache.default.svc
consistent_hash: true
timeout: 500ms
update_interval: 1m
ruler:
storage:
s3:
bucketnames: aws-s3-ruler-bucket
insecure: false
region: eu-central-1
s3forcepathstyle: false
type: s3
runtime_config:
file: /etc/loki/runtime-config/runtime-config.yaml
schema_config:
configs:
- from: "2023-09-19"
index:
period: 1d
prefix: tsdb_index_
object_store: s3
schema: v13
store: tsdb
server:
grpc_listen_port: 9095
http_listen_port: 3100
http_server_read_timeout: 600s
http_server_write_timeout: 600s
storage_config:
boltdb_shipper:
index_gateway_client:
server_address: dns+enterprise-logs-backend-headless.default.svc.cluster.local:9095
hedging:
at: 250ms
max_per_second: 20
up_to: 3
tsdb_shipper:
index_gateway_client:
server_address: dns+enterprise-logs-backend-headless.default.svc.cluster.local:9095
tracing:
enabled: false loki/templates/service-memberlist.yaml---
# Source: loki/templates/service-memberlist.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-memberlist
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
spec:
type: ClusterIP
clusterIP: None
ports:
- name: tcp
port: 7946
targetPort: http-memberlist
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/part-of: memberlist loki/templates/loki-canary/daemonset.yaml---
# Source: loki/templates/loki-canary/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: enterprise-logs-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
spec:
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
updateStrategy:
rollingUpdate:
maxUnavailable: 1
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary
spec:
serviceAccountName: enterprise-logs-canary
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
containers:
- name: loki-canary
image: docker.io/grafana/loki-canary:3.1.1
imagePullPolicy: IfNotPresent
args:
- -addr=loki-test-chart-name-enterprise-logs-gateway.default.svc.cluster.local.:80
- -labelname=pod
- -labelvalue=$(POD_NAME)
- -user=$(USER)
- -tenant-id=$(USER)
- -pass=$(PASS)
- -push=true
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
volumeMounts:
ports:
- name: http-metrics
containerPort: 3500
protocol: TCP
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: USER
valueFrom:
secretKeyRef:
name: enterprise-logs-provisioned-self-monitoring
key: username
- name: PASS
valueFrom:
secretKeyRef:
name: enterprise-logs-provisioned-self-monitoring
key: password
readinessProbe:
httpGet:
path: /metrics
port: http-metrics
initialDelaySeconds: 15
timeoutSeconds: 1
volumes: loki/templates/loki-canary/service.yaml---
# Source: loki/templates/loki-canary/service.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3500
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: canary loki/templates/loki-canary/serviceaccount.yaml---
# Source: loki/templates/loki-canary/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: enterprise-logs-canary
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: canary
automountServiceAccountToken: true loki/templates/results-cache/poddisruptionbudget-results-cache.yaml---
# Source: loki/templates/results-cache/poddisruptionbudget-results-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-enterprise-logs-memcached-results-cache
namespace: default
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-results-cache
maxUnavailable: 1 loki/templates/results-cache/statefulset-results-cache.yaml---
# Source: loki/templates/results-cache/statefulset-results-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-enterprise-logs-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-enterprise-logs-results-cache
template:
metadata:
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache"
name: "memcached-results-cache"
annotations:
spec:
serviceAccountName: enterprise-logs
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 1229Mi
requests:
cpu: 500m
memory: 1229Mi
ports:
- containerPort: 11211
name: client
args:
- -m 1024
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/results-cache/service-results-cache-headless.yaml---
# Source: loki/templates/results-cache/service-results-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-enterprise-logs-results-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-results-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-results-cache" loki/templates/gateway/deployment-gateway-enterprise.yaml---
# Source: loki/templates/gateway/deployment-gateway-enterprise.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: loki-test-chart-name-enterprise-logs-gateway
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
annotations:
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
strategy:
type: RollingUpdate
template:
metadata:
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway
annotations:
checksum/config: 40ee874b8d9cd2ff500f549233cda3d88f452f13da79551155f43dbe7f2a0b65
spec:
serviceAccountName: enterprise-logs
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
initContainers:
[]
containers:
- name: gateway
image: "docker.io/grafana/enterprise-logs:3.1.1"
imagePullPolicy: IfNotPresent
args:
- -target=gateway
- -config.file=/etc/loki/config/config.yaml
- -gateway.proxy.default.url=http://loki-test-chart-name-enterprise-logs-admin-api.default.svc:3100
- -gateway.proxy.admin-api.url=http://loki-test-chart-name-enterprise-logs-admin-api.default.svc:3100
- -gateway.proxy.compactor.url=http://enterprise-logs-backend-headless.default.svc:3100
- -gateway.proxy.distributor.url=dns:///enterprise-logs-write-headless.default.svc:9095
- -gateway.proxy.ingester.url=http://enterprise-logs-write.default.svc:3100
- -gateway.proxy.query-frontend.url=http://enterprise-logs-read.default.svc:3100
- -gateway.proxy.ruler.url=http://enterprise-logs-backend-headless.default.svc:3100
- -gateway.proxy.query-scheduler.url=http://enterprise-logs-backend-headless.default.svc:3100
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: license
mountPath: /etc/loki/license
- name: storage
mountPath: /data
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 45
resources:
{}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
env:
nodeSelector:
{}
affinity:
{}
tolerations:
[]
terminationGracePeriodSeconds: 60
volumes:
- name: config
configMap:
name: enterprise-logs
items:
- key: "config.yaml"
path: "config.yaml"
- name: license
secret:
secretName: enterprise-logs-license
- name: storage
emptyDir: {} loki/templates/gateway/service-gateway.yaml---
# Source: loki/templates/gateway/service-gateway.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-enterprise-logs-gateway
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: gateway
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 80
targetPort: http-metrics
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: gateway loki/templates/write/service-write-headless.yaml---
# Source: loki/templates/write/service-write-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-write-headless
namespace: default
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
appProtocol: tcp
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/write/poddisruptionbudget-write.yaml---
# Source: loki/templates/write/poddisruptionbudget-write.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: enterprise-logs-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
spec:
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
maxUnavailable: 1 loki/templates/write/statefulset-write.yaml---
# Source: loki/templates/write/statefulset-write.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: enterprise-logs-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
replicas: 3
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: enterprise-logs-write-headless
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
template:
metadata:
annotations:
checksum/config: 40ee874b8d9cd2ff500f549233cda3d88f452f13da79551155f43dbe7f2a0b65
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: enterprise-logs
automountServiceAccountToken: true
enableServiceLinks: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki
image: docker.io/grafana/enterprise-logs:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=write
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: data
mountPath: /var/loki
- name: license
mountPath: /etc/loki/license
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: write
topologyKey: kubernetes.io/hostname
volumes:
- name: config
configMap:
name: enterprise-logs
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: enterprise-logs-runtime
- name: license
secret:
secretName: enterprise-logs-license
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
storageClassName: gp2
resources:
requests:
storage: "10Gi" loki/templates/write/service-write.yaml---
# Source: loki/templates/write/service-write.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-write
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: write
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: write loki/templates/serviceaccount.yaml---
# Source: loki/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: enterprise-logs
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
annotations:
eks.amazonaws.com/role-arn: arn:aws:iam::2222222:role/test-role
automountServiceAccountToken: true loki/templates/chunks-cache/statefulset-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/statefulset-chunks-cache.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: loki-test-chart-name-enterprise-logs-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
podManagementPolicy: Parallel
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
updateStrategy:
type: RollingUpdate
serviceName: loki-test-chart-name-enterprise-logs-chunks-cache
template:
metadata:
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache"
name: "memcached-chunks-cache"
annotations:
spec:
serviceAccountName: enterprise-logs
securityContext:
{}
initContainers:
[]
nodeSelector:
{}
affinity:
{}
topologySpreadConstraints:
[]
tolerations:
[]
terminationGracePeriodSeconds: 60
containers:
- name: memcached
image: memcached:1.6.23-alpine
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 9830Mi
requests:
cpu: 500m
memory: 9830Mi
ports:
- containerPort: 11211
name: client
args:
- -m 8192
- --extended=modern,track_sizes
- -I 5m
- -c 16384
- -v
- -u 11211
env:
envFrom:
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
- name: exporter
image: prom/memcached-exporter:v0.14.2
imagePullPolicy: IfNotPresent
ports:
- containerPort: 9150
name: http-metrics
args:
- "--memcached.address=localhost:11211"
- "--web.listen-address=0.0.0.0:9150"
resources:
limits: {}
requests: {}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true loki/templates/chunks-cache/service-chunks-cache-headless.yaml---
# Source: loki/templates/chunks-cache/service-chunks-cache-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-enterprise-logs-chunks-cache
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: "memcached-chunks-cache"
annotations:
{}
namespace: "default"
spec:
type: ClusterIP
clusterIP: None
ports:
- name: memcached-client
port: 11211
targetPort: 11211
- name: http-metrics
port: 9150
targetPort: 9150
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: "memcached-chunks-cache" loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml---
# Source: loki/templates/chunks-cache/poddisruptionbudget-chunks-cache.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: loki-test-chart-name-enterprise-logs-memcached-chunks-cache
namespace: default
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
spec:
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: memcached-chunks-cache
maxUnavailable: 1 loki/templates/secret-license.yaml---
# Source: loki/templates/secret-license.yaml
apiVersion: v1
kind: Secret
metadata:
name: enterprise-logs-license
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
license.jwt: Y29udGVudCBvZiBsaWNlbmNl loki/templates/runtime-configmap.yaml---
# Source: loki/templates/runtime-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: enterprise-logs-runtime
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
data:
runtime-config.yaml: |
{} loki/templates/backend/service-backend.yaml---
# Source: loki/templates/backend/service-backend.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
annotations:
spec:
type: ClusterIP
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/poddisruptionbudget-backend.yaml---
# Source: loki/templates/backend/poddisruptionbudget-backend.yaml
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: enterprise-logs-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
spec:
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
maxUnavailable: 1 loki/templates/backend/service-backend-headless.yaml---
# Source: loki/templates/backend/service-backend-headless.yaml
apiVersion: v1
kind: Service
metadata:
name: enterprise-logs-backend-headless
namespace: default
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
variant: headless
prometheus.io/service-monitor: "false"
annotations:
spec:
type: ClusterIP
clusterIP: None
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend loki/templates/backend/statefulset-backend.yaml---
# Source: loki/templates/backend/statefulset-backend.yaml
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: enterprise-logs-backend
namespace: default
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
replicas: 3
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: enterprise-logs-backend-headless
revisionHistoryLimit: 10
persistentVolumeClaimRetentionPolicy:
whenDeleted: Delete
whenScaled: Delete
selector:
matchLabels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
template:
metadata:
annotations:
checksum/config: 40ee874b8d9cd2ff500f549233cda3d88f452f13da79551155f43dbe7f2a0b65
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: memberlist
spec:
serviceAccountName: enterprise-logs
automountServiceAccountToken: true
securityContext:
fsGroup: 10001
runAsGroup: 10001
runAsNonRoot: true
runAsUser: 10001
terminationGracePeriodSeconds: 300
containers:
- name: loki-sc-rules
image: "kiwigrid/k8s-sidecar:1.27.5"
imagePullPolicy: IfNotPresent
env:
- name: METHOD
value: WATCH
- name: LABEL
value: "loki_rule"
- name: FOLDER
value: "/rules"
- name: RESOURCE
value: "both"
- name: WATCH_SERVER_TIMEOUT
value: "60"
- name: WATCH_CLIENT_TIMEOUT
value: "60"
- name: LOG_LEVEL
value: "INFO"
volumeMounts:
- name: sc-rules-volume
mountPath: "/rules"
- name: loki
image: docker.io/grafana/enterprise-logs:3.1.1
imagePullPolicy: IfNotPresent
args:
- -config.file=/etc/loki/config/config.yaml
- -target=backend
- -legacy-read-mode=false
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: true
readinessProbe:
httpGet:
path: /ready
port: http-metrics
initialDelaySeconds: 30
timeoutSeconds: 1
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
- name: tmp
mountPath: /tmp
- name: data
mountPath: /var/loki
- name: license
mountPath: /etc/loki/license
- name: sc-rules-volume
mountPath: "/rules"
resources:
{}
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: backend
topologyKey: kubernetes.io/hostname
volumes:
- name: tmp
emptyDir: {}
- name: config
configMap:
name: enterprise-logs
items:
- key: "config.yaml"
path: "config.yaml"
- name: runtime-config
configMap:
name: enterprise-logs-runtime
- name: license
secret:
secretName: enterprise-logs-license
- name: sc-rules-volume
emptyDir: {}
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
storageClassName: gp2
resources:
requests:
storage: "10Gi" loki/templates/backend/clusterrole.yaml---
# Source: loki/templates/backend/clusterrole.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
name: loki-test-chart-name-enterprise-logs-clusterrole
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["configmaps", "secrets"]
verbs: ["get", "watch", "list"] loki/templates/backend/clusterrolebinding.yaml---
# Source: loki/templates/backend/clusterrolebinding.yaml
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: loki-test-chart-name-enterprise-logs-clusterrolebinding
labels:
helm.sh/chart: loki-6.12.0
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/version: "3.1.1"
app.kubernetes.io/managed-by: Helm
subjects:
- kind: ServiceAccount
name: enterprise-logs
namespace: default
roleRef:
kind: ClusterRole
name: loki-test-chart-name-enterprise-logs-clusterrole
apiGroup: rbac.authorization.k8s.io loki/templates/backend/query-scheduler-discovery.yaml---
# Source: loki/templates/backend/query-scheduler-discovery.yaml
apiVersion: v1
kind: Service
metadata:
name: loki-test-chart-name-enterprise-logs-query-scheduler-discovery
namespace: default
labels:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend
prometheus.io/service-monitor: "false"
spec:
type: ClusterIP
clusterIP: None
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
selector:
app.kubernetes.io/name: enterprise-logs
app.kubernetes.io/instance: loki-test-chart-name
app.kubernetes.io/component: backend Modified FilesNo modified files Removed FilesNo removed files |
Signed-off-by: Vladyslav Diachenko <[email protected]>
What this PR does / why we need it:
added a new workflow that prints the diff of kube manifests on Loki helm charts PRs.
Special notes for your reviewer:
I have added a few examples of values files into
scenarios
folder, feel free to add other examples as well...Each scenario is used as the values file for the Loki Helm chart to render Kubernetes manifests in
base
andPR's
branch to compare the content and report the diff on Pull Request as a comment(example). It gives the ability to the reviewer to understand how the changes in the chart modify resulting manifests.The workflow reports three types of changes for each scenario:
base
branch.Modified files - the manifests that exist in both branches but the changes in PRs branch modify them.
Removed files - the manifests that exist in
base
branch but do not exist in PRs branch.