Treasuremap Elasticsearch & Kibana

This change adds a composite to treasuremap for deploying
Elasticsearch & Kibana in the lma-stack phase

Co-Authored-By: gs909v <graham.steffaniak@att.com>
Change-Id: I6b4a9b1787f9daae9889084cb2dde483b815186e
This commit is contained in:
gs909v 2021-01-21 14:30:13 -06:00 committed by Steven Fitzpatrick
parent b850bc140f
commit 4bf27930e9
24 changed files with 442 additions and 1 deletions

View File

@ -0,0 +1,20 @@
resources:
- ../../../function/elasticsearch
patches:
- patch: |-
- op: replace
path: /metadata/name
value: elasticsearch-data
target:
kind: HelmRelease
name: elasticsearch
- patch: |-
- op: replace
path: /metadata/name
value: elasticsearch-data
target:
kind: HelmRepository
name: elasticsearch
- path: patches/elasticsearch-data.yaml

View File

@ -0,0 +1,27 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: elasticsearch-data
spec:
releaseName: elasticsearch-data
chart:
spec:
sourceRef:
name: elasticsearch-data
values:
nodeGroup: "data"
masterService: elasticsearch-ingest
roles:
master: "false"
ingest: "false"
data: "true"
replicas: 1
resources:
requests:
cpu: "1m"
memory: "0.5Gi"
limits:
cpu: "1000m"
memory: "2Gi"
persistence:
enabled: false

View File

@ -0,0 +1,2 @@
resources:
- versions.yaml

View File

@ -0,0 +1,59 @@
apiVersion: airshipit.org/v1alpha1
kind: ReplacementTransformer
metadata:
name: elasticsearch-data-versions-replacements
annotations:
config.kubernetes.io/function: |-
container:
image: quay.io/airshipit/replacement-transformer:v2
replacements:
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.helm_repositories.elastic.url}"
target:
objref:
kind: HelmRepository
name: elasticsearch-data
fieldrefs: ["{.spec.url}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.elasticsearch.chart}"
target:
objref:
kind: HelmRelease
name: elasticsearch-data
fieldrefs: ["{.spec.chart.spec.chart}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.elasticsearch.version}"
target:
objref:
kind: HelmRelease
name: elasticsearch-data
fieldrefs: ["{.spec.chart.version}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.elasticsearch.elasticsearch.repository}"
target:
objref:
kind: HelmRelease
name: elasticsearch-data
fieldrefs: ["{.spec.values.image}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.elasticsearch.elasticsearch.tag}"
target:
objref:
kind: HelmRelease
name: elasticsearch-data
fieldrefs: ["{.spec.values.imageTag}"]

View File

@ -0,0 +1,19 @@
resources:
- ../../../function/elasticsearch
patches:
- patch: |-
- op: replace
path: /metadata/name
value: elasticsearch-ingest
target:
kind: HelmRelease
name: elasticsearch
- patch: |-
- op: replace
path: /metadata/name
value: elasticsearch-ingest
target:
kind: HelmRepository
name: elasticsearch
- path: patches/elasticsearch-ingest.yaml

View File

@ -0,0 +1,26 @@
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
name: elasticsearch-ingest
spec:
releaseName: elasticsearch-ingest
chart:
spec:
sourceRef:
name: elasticsearch-ingest
values:
nodeGroup: "ingest"
roles:
master: "true"
ingest: "true"
data: "false"
replicas: 1
resources:
requests:
cpu: "1m"
memory: "0.5Gi"
limits:
cpu: "1000m"
memory: "2Gi"
persistence:
enabled: false

View File

@ -0,0 +1,2 @@
resources:
- versions.yaml

View File

@ -0,0 +1,59 @@
apiVersion: airshipit.org/v1alpha1
kind: ReplacementTransformer
metadata:
name: elasticsearch-ingest-versions-replacements
annotations:
config.kubernetes.io/function: |-
container:
image: quay.io/airshipit/replacement-transformer:v2
replacements:
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.helm_repositories.elastic.url}"
target:
objref:
kind: HelmRepository
name: elasticsearch-ingest
fieldrefs: ["{.spec.url}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.elasticsearch.chart}"
target:
objref:
kind: HelmRelease
name: elasticsearch-ingest
fieldrefs: ["{.spec.chart.spec.chart}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.elasticsearch.version}"
target:
objref:
kind: HelmRelease
name: elasticsearch-ingest
fieldrefs: ["{.spec.chart.version}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.elasticsearch.elasticsearch.repository}"
target:
objref:
kind: HelmRelease
name: elasticsearch-ingest
fieldrefs: ["{.spec.values.image}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.elasticsearch.elasticsearch.tag}"
target:
objref:
kind: HelmRelease
name: elasticsearch-ingest
fieldrefs: ["{.spec.values.imageTag}"]

View File

@ -0,0 +1,9 @@
resources:
- elasticsearch-ingest
- elasticsearch-data
- ../../function/kibana
namespace: lma
patches:
- path: patches/kibana.yaml

View File

@ -0,0 +1,24 @@
apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
kind: HelmRelease
metadata:
name: kibana
spec:
values:
elasticsearchHosts: "http://elasticsearch-ingest.lma.svc.cluster.local:9200"
replicas: 1
# Extra environment variables to append to this nodeGroup
# This will be appended to the current 'env:' key. You can use any of the kubernetes env
# syntax here
extraEnvs:
- name: "NODE_OPTIONS"
value: "--max-old-space-size=1800"
# additionals labels
labels: {}
resources:
requests:
memory: "0.5Gi"
cpu: "1m"
limits:
memory: "1024Mi"
cpu: "1000m"
protocol: http

View File

@ -0,0 +1,4 @@
resources:
- ../elasticsearch-ingest/replacements
- ../elasticsearch-data/replacements
- ../../../function/kibana/replacements

View File

@ -36,7 +36,7 @@ spec:
- name: elasticsearch
spec:
elasticsearch:
host: elasticsearch-elasticsearch-cluster.default.svc.cluster.local
host: elasticsearch-ingest.lma-infra.svc.cluster.local
port: 9200
scheme: https
ssl_verify: false

View File

@ -0,0 +1,16 @@
apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
kind: HelmRelease
metadata:
name: elasticsearch
spec:
releaseName: elasticsearch
interval: 5m
chart:
spec:
sourceRef:
kind: HelmRepository
name: elasticsearch
interval: 1m
wait: false
timeout: 5m
values: {}

View File

@ -0,0 +1,6 @@
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: HelmRepository
metadata:
name: elasticsearch
spec:
interval: 10m

View File

@ -0,0 +1,3 @@
resources:
- helmrepository.yaml
- helmrelease.yaml

View File

@ -0,0 +1,2 @@
resources:
- versions.yaml

View File

@ -0,0 +1,59 @@
apiVersion: airshipit.org/v1alpha1
kind: ReplacementTransformer
metadata:
name: elasticseach-versions-replacements
annotations:
config.kubernetes.io/function: |-
container:
image: quay.io/airshipit/replacement-transformer:v2
replacements:
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.helm_repositories.elastic.url}"
target:
objref:
kind: HelmRepository
name: elasticseach
fieldrefs: ["{.spec.url}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.elasticseach.chart}"
target:
objref:
kind: HelmRelease
name: elasticseach
fieldrefs: ["{.spec.chart.spec.chart}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.elasticseach.version}"
target:
objref:
kind: HelmRelease
name: elasticseach
fieldrefs: ["{.spec.chart.version}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.elasticseach.elasticseach.image}"
target:
objref:
kind: HelmRelease
name: elasticseach
fieldrefs: ["{.spec.values.image}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.elasticseach.elasticseach.imageTag}"
target:
objref:
kind: HelmRelease
name: elasticseach
fieldrefs: ["{.spec.values.imageTag}"]

View File

@ -0,0 +1,16 @@
apiVersion: "helm.toolkit.fluxcd.io/v2beta1"
kind: HelmRelease
metadata:
name: kibana
spec:
releaseName: kibana
interval: 5m
chart:
spec:
sourceRef:
kind: HelmRepository
name: kibana
interval: 1m
wait: false
timeout: 5m
values: {}

View File

@ -0,0 +1,6 @@
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: HelmRepository
metadata:
name: kibana
spec:
interval: 10m

View File

@ -0,0 +1,3 @@
resources:
- helmrepository.yaml
- helmrelease.yaml

View File

@ -0,0 +1,2 @@
resources:
- versions.yaml

View File

@ -0,0 +1,59 @@
apiVersion: airshipit.org/v1alpha1
kind: ReplacementTransformer
metadata:
name: kibana-versions-replacements
annotations:
config.kubernetes.io/function: |-
container:
image: quay.io/airshipit/replacement-transformer:v2
replacements:
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.helm_repositories.elastic.url}"
target:
objref:
kind: HelmRepository
name: kibana
fieldrefs: ["{.spec.url}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.kibana.chart}"
target:
objref:
kind: HelmRelease
name: kibana
fieldrefs: ["{.spec.chart.spec.chart}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.charts.kibana.version}"
target:
objref:
kind: HelmRelease
name: kibana
fieldrefs: ["{.spec.chart.version}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.kibana.kibana.repository}"
target:
objref:
kind: HelmRelease
name: kibana
fieldrefs: ["{.spec.values.image}"]
- source:
objref:
kind: VersionsCatalogue
name: versions-treasuremap
fieldref: "{.spec.image_components.kibana.kibana.tag}"
target:
objref:
kind: HelmRelease
name: kibana
fieldrefs: ["{.spec.values.imageTag}"]

View File

@ -12,6 +12,8 @@ spec:
checksum: 4a6909d1480ac30d676accd7b37ec711
helm_repositories:
elastic:
url: https://helm.elastic.co
grafana:
url: https://grafana.github.io/helm-charts
prometheus_community:
@ -29,9 +31,15 @@ spec:
url: http://helm-chart-collator.collator.svc:8080
charts:
elasticsearch:
chart: elasticsearch
version: 7.12.1
grafana:
chart: grafana
version: 6.9.1
kibana:
chart: kibana
version: 7.12.1
kube_prometheus_stack:
chart: kube-prometheus-stack
version: 16.0.1
@ -133,10 +141,18 @@ spec:
# image_components are organized by
# <function>:
# <container>:
elasticsearch:
elasticsearch:
repository: docker.elastic.co/elasticsearch/elasticsearch
tag: 7.12.1
grafana:
grafana:
repository: grafana/grafana
tag: 7.5.5
kibana:
kibana:
repository: docker.elastic.co/kibana/kibana
tag: 7.12.1
kube_prometheus_stack:
admission_webhooks:
repository: jettech/kube-webhook-certgen

View File

@ -1,10 +1,12 @@
resources:
- ../../../../composite/elastic-stack
- ../../../../composite/monitoring-stack
- ../../../../function/minio
- ../catalogues
- minio-admin-secret.yaml
transformers:
- ../../../../composite/elastic-stack/replacements
- ../../../../composite/monitoring-stack/replacements
- ../../../../function/minio/replacements