blob: c9ab850c12b4e7f13dadf5dcd4fb8c311c9d4d5a [file] [log] [blame]
################################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
################################################################################
---
apiVersion: v1
kind: ConfigMap
metadata:
name: influxdb-init-scripts
data:
init-script.iql: |
CREATE RETENTION POLICY "a_year" ON "beam_test_metrics" DURATION 52w REPLICATION 1 DEFAULT
CREATE RETENTION POLICY "forever" ON "beam_test_metrics" DURATION INF REPLICATION 1
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: beammetrics
name: influxdb
spec:
replicas: 1
selector:
matchLabels:
app: influxdb
template:
metadata:
labels:
app: influxdb
spec:
containers:
- image: influxdb:1.8.0
imagePullPolicy: IfNotPresent
name: influxdb
ports:
- containerPort: 8086
- containerPort: 8088
volumeMounts:
- mountPath: /var/lib/influxdb
name: influxdb-storage
- mountPath: /docker-entrypoint-initdb.d
name: influxdb-init-scripts
readOnly: True
env:
# Default database name. Influx will create a new database with that
# name if it does not exist.
- name: INFLUXDB_DB
value: beam_test_metrics
# Enable user authentication. Note: InfluxDB will NOT enforce
# authentication if there is no admin user.
- name: INFLUXDB_HTTP_AUTH_ENABLED
value: "true"
# Expose the port 8088 to allow backing up and restoring database
# from another container.
- name: INFLUXDB_BIND_ADDRESS
value: ":8088"
envFrom:
# A generic secret that should contain the following keys:
# * `INFLUXDB_ADMIN_USER` - The name of the admin user to be created.
# * `INFLUXDB_ADMIN_PASSWORD`
# * `INFLUXDB_USER` - The name of a user to be created. The user will
# be granted read and write permissions for a database specified
# in `INFLUXDB_DB`
# * `INFLUXDB_USER_PASSWORD`
- secretRef:
name: influxdb-creds
restartPolicy: Always
volumes:
- name: influxdb-storage
persistentVolumeClaim:
claimName: influxdb-storage
- name: influxdb-init-scripts
configMap:
name: influxdb-init-scripts
---
apiVersion: v1
kind: Service
metadata:
name: influxdb
# Makes the service accessible to Compute Engine VM instances running in
# the same region on the same VPC network.
#
# For more information, see:
# https://cloud.google.com/kubernetes-engine/docs/how-to/internal-load-balancing
annotations:
cloud.google.com/load-balancer-type: "Internal"
spec:
type: LoadBalancer
ports:
- port: 8086
targetPort: 8086
selector:
app: influxdb
---
apiVersion: v1
kind: Service
metadata:
name: influxdb-rpc
spec:
ports:
- port: 8088
targetPort: 8088
selector:
app: influxdb