--- # tasks file for grafana - name: Create InfluxDB namespace k8s: state: present definition: apiVersion: v1 kind: Namespace metadata: name: influxdb - name: Create PVC for InfluxDB k8s: state: present definition: apiVersion: v1 kind: PersistentVolumeClaim metadata: name: influxdb namespace: influxdb spec: accessModes: - ReadWriteOnce resources: requests: storage: 128Gi - name: Create Deployment for InfluxDB k8s: state: present definition: apiVersion: v1 kind: Deployment metadata: name: influxdb namespace: influxdb labels: app: influxdb spec: replicas: 1 selector: matchLabels: app: influxdb template: metadata: labels: app: influxdb spec: containers: - name: influxdb image: influxdb env: - name: DOCKER_INFLUXDB_INIT_MODE value: setup - name: DOCKER_INFLUXDB_INIT_USERNAME value: influxdb - name: DOCKER_INFLUXDB_INIT_PASSWORD value: "{{ influxdb_admin_password }}" - name: DOCKER_INFLUXDB_INIT_ORG value: DevOps - name: DOCKER_INFLUXDB_INIT_BUCKET value: default - name: DOCKER_INFLUXDB_INIT_RETENTION value: 1w - name: DOCKER_INFLUXDB_INIT_ADMIN_TOKEN value: "{{ influxdb_admin_token }}" volumeMounts: - name: data mountPath: /var/lib/influxdb ports: - containerPort: 8086 volumes: - name: data persistentVolumeClaim: claimName: influxdb - name: Create Service for InfluxDB k8s: state: present definition: apiVersion: v1 kind: Service metadata: name: influxdb namespace: influxdb spec: selector: app: influxdb ports: - port: 80 targetPort: 8086 name: influxdb type: ClusterIP - name: Create Ingress for InfluxDB k8s: state: present definition: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: cert-manager.io/cluster-issuer: ca-issuer name: influxdb namespace: influxdb spec: ingressClassName: nginx rules: - host: influxdb.eom.dev http: paths: - pathType: Prefix path: / backend: service: name: influxdb port: number: 80 tls: - hosts: - influxdb.eom.dev secretName: influxdb