Merge "Fix reconciling dns addons on version changing"
diff --git a/kubernetes/_common.sls b/kubernetes/_common.sls
index 2b7f54e..5d304df 100644
--- a/kubernetes/_common.sls
+++ b/kubernetes/_common.sls
@@ -45,14 +45,15 @@
containerd_pkg:
pkg.installed:
- - name: {{ common.containerd.get('package', 'containerd.io') }}
-
-runc_pkg:
- pkg.installed:
- - name: {{ common.containerd.get('runc_package', 'runc') }}
+ - name: {{ common.get('containerd', {}).get('package', 'containerd.io') }}
/etc/containerd/config.toml:
- file.absent
+ file.managed:
+ - source: salt://kubernetes/files/containerd/config.toml
+ - template: jinja
+ - user: root
+ - group: root
+ - mode: 644
containerd_service:
service.running:
@@ -62,11 +63,38 @@
- file: /etc/containerd/config.toml
- require:
- containerd_pkg
- - runc_pkg
{%- if grains.get('noservices') %}
- onlyif: /bin/false
{%- endif %}
+extract_crictl:
+ archive.extracted:
+ - name: /tmp/crictl
+ - source: {{ common.containerd.crictl.source }}
+ - source_hash: {{ common.containerd.crictl.hash }}
+ - enforce_toplevel: false
+ - options: xzf
+ - archive_format: tar
+ - keep: true
+ {%- if grains.get('noservices') %}
+ - onlyif: /bin/false
+ {%- endif %}
+
+/usr/local/bin/crictl:
+ file.managed:
+ - source: /tmp/crictl/crictl
+ - mode: 755
+ - owner: root
+ - group: root
+ - require:
+ - archive: extract_crictl
+
+/etc/crictl.yaml:
+ file.managed:
+ - user: root
+ - group: root
+ - mode: 644
+ - contents: 'runtime-endpoint: unix:///run/containerd/containerd.sock'
{%- endif %}
{%- if common.addons.get('virtlet', {}).get('enabled') and not pillar.kubernetes.master is defined %}
diff --git a/kubernetes/files/containerd/config.toml b/kubernetes/files/containerd/config.toml
new file mode 100644
index 0000000..5296733
--- /dev/null
+++ b/kubernetes/files/containerd/config.toml
@@ -0,0 +1,4 @@
+{%- from "kubernetes/map.jinja" import common with context -%}
+[plugins]
+ [plugins.cri]
+ sandbox_image = "{{ common.hyperkube.pause_image }}"
diff --git a/kubernetes/files/kube-addons/alertmanager/alertmanager-deploy.yml b/kubernetes/files/kube-addons/alertmanager/alertmanager-deploy.yml
index 9e6c01a..eeb192d 100644
--- a/kubernetes/files/kube-addons/alertmanager/alertmanager-deploy.yml
+++ b/kubernetes/files/kube-addons/alertmanager/alertmanager-deploy.yml
@@ -4,7 +4,7 @@
kind: Deployment
metadata:
name: alertmanager
- namespace: {{ common.addons.get('alertmanager',{}).get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.get('alertmanager',{}).get('namespace') }}
labels:
k8s-app: alertmanager
addonmanager.kubernetes.io/mode: Reconcile
@@ -37,19 +37,19 @@
effect: "NoSchedule"
containers:
- name: alertmanager
- image: "{{ common.addons.get('alertmanager',{}).get('image', 'docker-prod-local.artifactory.mirantis.com/openstack-docker/alertmanager:2018.8.0') }}"
+ image: "{{ common.addons.get('alertmanager',{}).get('image') }}"
ports:
- name: alertmanager
- containerPort: {{ common.addons.get('alertmanager',{}).get('bind', {}).get('port', '9093') }}
+ containerPort: {{ common.addons.get('alertmanager',{}).get('bind', {}).get('port') }}
env:
- name: ALERTMANAGER_CONFIG_DIR
- value: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('config', '/etc/alertmanager') }}"
+ value: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('config') }}"
- name: ALERTMANAGER_DATA_DIR
- value: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('data', '/data') }}"
+ value: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('data') }}"
- name: ALERTMANAGER_BIND_PORT
- value: "{{ common.addons.get('alertmanager',{}).get('bind', {}).get('port', '9093') }}"
+ value: "{{ common.addons.get('alertmanager',{}).get('bind', {}).get('port') }}"
- name: ALERTMANAGER_BIND_ADDRESS
- value: "{{ common.addons.get('alertmanager',{}).get('bind', {}).get('address', '0.0.0.0') }}"
+ value: "{{ common.addons.get('alertmanager',{}).get('bind', {}).get('address') }}"
- name: ALERTMANAGER_DISCOVERY_DOMAIN
value: "*.alertmanager.stacklight"
- name: ALERTMANAGER_USE_STATIC_DATADIR
@@ -58,13 +58,13 @@
value: "True"
volumeMounts:
- name: config-volume
- mountPath: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('config', '/etc/alertmanager') }}"
+ mountPath: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('config') }}"
- name: data-volume
- mountPath: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('data', '/data') }}"
+ mountPath: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('data') }}"
volumes:
- name: config-volume
hostPath:
- path: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('host_config', '/srv/volumes/local/alertmanager/config') }}"
+ path: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('host_config') }}"
- name: data-volume
hostPath:
- path: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('host_data', '/srv/volumes/local/alertmanager/data') }}"
+ path: "{{ common.addons.get('alertmanager',{}).get('dir', {}).get('host_data') }}"
diff --git a/kubernetes/files/kube-addons/alertmanager/alertmanager-ns.yml b/kubernetes/files/kube-addons/alertmanager/alertmanager-ns.yml
index b8c7dce..941f646 100644
--- a/kubernetes/files/kube-addons/alertmanager/alertmanager-ns.yml
+++ b/kubernetes/files/kube-addons/alertmanager/alertmanager-ns.yml
@@ -3,6 +3,6 @@
kind: Namespace
apiVersion: v1
metadata:
- name: {{ common.addons.get('alertmanager',{}).get('namespace', 'stacklight') }}
+ name: {{ common.addons.get('alertmanager',{}).get('namespace') }}
labels:
addonmanager.kubernetes.io/mode: Reconcile
diff --git a/kubernetes/files/kube-addons/alertmanager/alertmanager-sa.yml b/kubernetes/files/kube-addons/alertmanager/alertmanager-sa.yml
index 7844be6..3de89ba 100644
--- a/kubernetes/files/kube-addons/alertmanager/alertmanager-sa.yml
+++ b/kubernetes/files/kube-addons/alertmanager/alertmanager-sa.yml
@@ -6,7 +6,7 @@
labels:
addonmanager.kubernetes.io/mode: Reconcile
name: alertmanager
- namespace: {{ common.addons.get('alertmanager',{}).get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.get('alertmanager',{}).get('namespace') }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -41,4 +41,4 @@
subjects:
- kind: ServiceAccount
name: alertmanager
- namespace: {{ common.addons.get('alertmanager',{}).get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.get('alertmanager',{}).get('namespace') }}
diff --git a/kubernetes/files/kube-addons/alertmanager/alertmanager-svc.yml b/kubernetes/files/kube-addons/alertmanager/alertmanager-svc.yml
index 0ebeb15..132c94f 100644
--- a/kubernetes/files/kube-addons/alertmanager/alertmanager-svc.yml
+++ b/kubernetes/files/kube-addons/alertmanager/alertmanager-svc.yml
@@ -4,7 +4,7 @@
kind: Service
metadata:
name: alertmanager
- namespace: {{ common.addons.get('alertmanager',{}).get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.get('alertmanager',{}).get('namespace') }}
labels:
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "Alertmanager"
@@ -12,8 +12,8 @@
type: LoadBalancer
ports:
- name: http
- port: {{ common.addons.get('alertmanager',{}).get('bind', {}).get('port', '9093') }}
+ port: {{ common.addons.get('alertmanager',{}).get('bind', {}).get('port') }}
protocol: TCP
- targetPort: {{ common.addons.get('alertmanager',{}).get('bind', {}).get('port', '9093') }}
+ targetPort: {{ common.addons.get('alertmanager',{}).get('bind', {}).get('port') }}
selector:
k8s-app: alertmanager
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml
index 6234b85..cae9584 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-deploy.yaml
@@ -4,13 +4,15 @@
kind: Deployment
metadata:
name: fluentd-aggregator
- namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.fluentd.get('namespace') }}
labels:
k8s-app: fluentd-aggregator
version: v1
addonmanager.kubernetes.io/mode: Reconcile
spec:
- replicas: 1
+{%- if common.addons.fluentd.get('replicas', 1) != 1 %}
+ replicas: {{ common.addons.fluentd.aggregator.replicas }}
+{%- endif %}
selector:
matchLabels:
k8s-app: fluentd-aggregator
@@ -38,16 +40,20 @@
values: ["true"]
containers:
- name: fluentd-aggregator
- image: {{ common.addons.fluentd.aggregator.get('image', 'docker-prod-local.docker.mirantis.net/mirantis/external/fluentd-kubernetes-daemonset:stable') }}
+ image: {{ common.addons.fluentd.aggregator.get('image') }}
env:
- name: FLUENTD_ELASTICSEARCH_HOST
- value: "{{ common.addons.fluentd.aggregator.config.output.es.get('host', '127.0.0.1') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('host') }}"
- name: FLUENTD_ELASTICSEARCH_PORT
- value: "{{ common.addons.fluentd.aggregator.config.output.es.get('port', '9200') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('port') }}"
- name: FLUENTD_ELASTICSEARCH_SCHEME
- value: "{{ common.addons.fluentd.aggregator.config.output.es.get('scheme', 'http') }}"
+ value: "{{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('scheme') }}"
+ - name: FLUENTD_ELASTICSEARCH_SSL_VERIFY
+ value: "{{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('ssl_verify') | lower }}"
+ - name: FLUENTD_ELASTICSEARCH_RELOAD_CONNECTIONS
+ value: "{{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('reload_connections') | lower }}"
- name: FLUENTD_AGGREGATOR_BIND_PORT
- value: "{{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}"
+ value: "{{ common.addons.fluentd.aggregator.bind.get('port') }}"
- name: ENVIRONMENT_LABEL
value: "{{ grains.domain }}"
# TODO: a hack to pass the broken entrypoint in upstream docker image for k8s fluent when configmap is used
@@ -57,16 +63,16 @@
value: "null"
resources:
limits:
- memory: {{ common.addons.fluentd.aggregator.resources.limits.get('memory', '500Mi') }}
+ memory: {{ common.addons.fluentd.aggregator.resources.limits.get('memory') }}
requests:
- memory: {{ common.addons.fluentd.aggregator.resources.requests.get('memory', '500Mi') }}
+ memory: {{ common.addons.fluentd.aggregator.resources.requests.get('memory') }}
ports:
- - containerPort: {{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}
+ - containerPort: {{ common.addons.fluentd.aggregator.bind.get('port') }}
name: main-input
protocol: TCP
volumeMounts:
- name: fluentd-aggregator-cfg
- mountPath: {{ common.addons.fluentd.aggregator.config.get('config_dir', '/fluentd/etc') }}
+ mountPath: {{ common.addons.fluentd.aggregator.config.get('config_dir') }}
readOnly: false
volumes:
- name: fluentd-aggregator-cfg
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml
index bfcbd3e..8f543b2 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-fluent-conf.yaml
@@ -4,7 +4,7 @@
apiVersion: v1
metadata:
name: fluentd-aggregator-cfg
- namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.fluentd.get('namespace') }}
labels:
addonmanager.kubernetes.io/mode: Reconcile
data:
@@ -28,25 +28,25 @@
output.conf: |
<match **>
@type elasticsearch
- @log_level {{ common.addons.fluentd.aggregator.config.output.get('log_level', 'info') }}
+ @log_level {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('log_level') }}
host "#{ENV['FLUENTD_ELASTICSEARCH_HOST']}"
port "#{ENV['FLUENTD_ELASTICSEARCH_PORT']}"
- scheme "#{ENV['FLUENTD_ELASTICSEARCH_SCHEME'] || 'http'}"
- ssl_verify "#{ENV['FLUENTD_ELASTICSEARCH_SSL_VERIFY'] || 'true'}"
- reload_connections "#{ENV['FLUENTD_ELASTICSEARCH_RELOAD_CONNECTIONS'] || 'true'}"
+ scheme "#{ENV['FLUENTD_ELASTICSEARCH_SCHEME']}"
+ ssl_verify "#{ENV['FLUENTD_ELASTICSEARCH_SSL_VERIFY']}"
+ reload_connections "#{ENV['FLUENTD_ELASTICSEARCH_RELOAD_CONNECTIONS']}"
type_name message
tag_key Logger
include_tag_key true
time_key Timestamp
time_key_exclude_timestamp true
- logstash_format {{ common.addons.fluentd.aggregator.config.output.get('logstash_format', 'true') | lower }}
- logstash_prefix {{ common.addons.fluentd.aggregator.config.output.get('logstash_prefix', 'log') }}
- logstash_dateformat {{ common.addons.fluentd.aggregator.config.output.get('logstash_dateformat', '%Y.%m.%d') }}
- request_timeout {{ common.addons.fluentd.aggregator.config.output.get('request_timeout', '10s') }}
- buffer_chunk_limit {{ common.addons.fluentd.aggregator.config.output.get('buffer_chunk_limit', '2m') }}
- buffer_queue_limit {{ common.addons.fluentd.aggregator.config.output.get('buffer_queue_limit', '32') }}
- flush_interval {{ common.addons.fluentd.aggregator.config.output.get('flush_interval', '10s') }}
- max_retry_wait {{ common.addons.fluentd.aggregator.config.output.get('max_retry_wait', '30') }}
+ logstash_format {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('logstash_format') | lower }}
+ logstash_prefix {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('logstash_prefix') }}
+ logstash_dateformat {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('logstash_dateformat') }}
+ request_timeout {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('request_timeout') }}
+ buffer_chunk_limit {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('buffer_chunk_limit') }}
+ buffer_queue_limit {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('buffer_queue_limit') }}
+ flush_interval {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('flush_interval') }}
+ max_retry_wait {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('max_retry_wait') }}
disable_retry_limit
- num_threads {{ common.addons.fluentd.aggregator.config.output.get('num_threads', '8') }}
+ num_threads {{ common.addons.fluentd.aggregator.config.output.elasticsearch.get('num_threads') }}
</match>
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml
index 6c5b3a4..1985cf4 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-aggregator-svc.yaml
@@ -4,7 +4,7 @@
kind: Service
metadata:
name: fluentd-aggregator-svc
- namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.fluentd.get('namespace') }}
labels:
k8s-app: fluentd-aggregator
version: v1
@@ -15,8 +15,8 @@
type: NodePort
ports:
- name: input
- port: {{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}
- targetPort: {{ common.addons.fluentd.aggregator.bind.get('port', '24224') }}
+ port: {{ common.addons.fluentd.aggregator.bind.get('port') }}
+ targetPort: {{ common.addons.fluentd.aggregator.bind.get('port') }}
protocol: TCP
# must be between 30000-32767
- nodePort: {{ common.addons.fluentd.aggregator.bind.get('host_port', '31950') }}
+ nodePort: {{ common.addons.fluentd.aggregator.bind.get('host_port') }}
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml
index 5c6a50d..9f5c89f 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-ns.yaml
@@ -3,7 +3,7 @@
kind: Namespace
apiVersion: v1
metadata:
- name: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
+ name: {{ common.addons.fluentd.get('namespace') }}
labels:
k8s-app: fluentd
addonmanager.kubernetes.io/mode: Reconcile
diff --git a/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml b/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml
index 2dd6b68..73d9304 100644
--- a/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml
+++ b/kubernetes/files/kube-addons/fluentd/fluentd-sa.yaml
@@ -6,7 +6,7 @@
labels:
addonmanager.kubernetes.io/mode: Reconcile
name: fluentd
- namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.fluentd.get('namespace') }}
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
@@ -39,4 +39,4 @@
subjects:
- kind: ServiceAccount
name: fluentd
- namespace: {{ common.addons.fluentd.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.fluentd.get('namespace') }}
diff --git a/kubernetes/files/kube-addons/prometheus/prometheus-ns.yaml b/kubernetes/files/kube-addons/prometheus/prometheus-ns.yaml
index 78833ab..0f3ad6d 100644
--- a/kubernetes/files/kube-addons/prometheus/prometheus-ns.yaml
+++ b/kubernetes/files/kube-addons/prometheus/prometheus-ns.yaml
@@ -3,7 +3,7 @@
kind: Namespace
apiVersion: v1
metadata:
- name: {{ common.addons.prometheus.get('namespace', 'stacklight') }}
+ name: {{ common.addons.prometheus.get('namespace') }}
labels:
k8s-app: prometheus
addonmanager.kubernetes.io/mode: Reconcile
diff --git a/kubernetes/files/kube-addons/prometheus/prometheus-sa.yaml b/kubernetes/files/kube-addons/prometheus/prometheus-sa.yaml
index 55e6d89..22be312 100644
--- a/kubernetes/files/kube-addons/prometheus/prometheus-sa.yaml
+++ b/kubernetes/files/kube-addons/prometheus/prometheus-sa.yaml
@@ -6,7 +6,7 @@
labels:
addonmanager.kubernetes.io/mode: Reconcile
name: prometheus-server
- namespace: {{ common.addons.prometheus.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.prometheus.get('namespace') }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
@@ -48,4 +48,4 @@
subjects:
- kind: ServiceAccount
name: prometheus-server
- namespace: {{ common.addons.prometheus.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.prometheus.get('namespace') }}
diff --git a/kubernetes/files/kube-addons/prometheus/prometheus-server-deploy.yaml b/kubernetes/files/kube-addons/prometheus/prometheus-server-deploy.yaml
index 6e8c58b..4d232c7 100644
--- a/kubernetes/files/kube-addons/prometheus/prometheus-server-deploy.yaml
+++ b/kubernetes/files/kube-addons/prometheus/prometheus-server-deploy.yaml
@@ -4,13 +4,15 @@
kind: Deployment
metadata:
name: prometheus-server
- namespace: {{ common.addons.prometheus.get('namespace', 'stacklight') }}
+ namespace: {{ common.addons.prometheus.get('namespace') }}
labels:
k8s-app: prometheus-server
version: v1
addonmanager.kubernetes.io/mode: Reconcile
spec:
- replicas: 2
+{%- if common.addons.prometheus.server.get('replicas', 1) != 1 %}
+ replicas: {{ common.addons.prometheus.server.replicas }}
+{%- endif %}
selector:
matchLabels:
k8s-app: prometheus-server
@@ -38,39 +40,39 @@
values: ["true"]
containers:
- name: prometheus
- image: {{ common.addons.prometheus.get('image', 'docker-prod-local.artifactory.mirantis.com/openstack-docker/prometheus:stable') }}
+ image: {{ common.addons.prometheus.server.get('image') }}
env:
- name: PROMETHEUS_BIND_ADDRESS
- value: "{{ common.addons.prometheus.server.bind.get('host', '0.0.0.0') }}"
+ value: "{{ common.addons.prometheus.server.bind.get('host') }}"
- name: PROMETHEUS_BIND_PORT
- value: "{{ common.addons.prometheus.server.bind.get('port', '9090') }}"
+ value: "{{ common.addons.prometheus.server.bind.get('port') }}"
- name: PROMETHEUS_CONFIG_DIR
- value: "{{ common.addons.prometheus.server.config.get('config_dir', '/etc/prometheus') }}"
+ value: "{{ common.addons.prometheus.server.config.get('config_dir') }}"
- name: PROMETHEUS_DATA_DIR
- value: "{{ common.addons.prometheus.server.config.get('data_dir', '/data') }}"
+ value: "{{ common.addons.prometheus.server.config.get('data_dir') }}"
- name: PROMETHEUS_STORAGE_LOCAL_ENGINE
- value: "{{ common.addons.prometheus.server.config.get('storage_local_engine', 'persisted') }}"
+ value: "{{ common.addons.prometheus.server.config.get('storage_local_engine') }}"
- name: PROMETHEUS_STORAGE_LOCAL_RETENTION
- value: "{{ common.addons.prometheus.server.config.get('storage_local_retention', '360h') }}"
+ value: "{{ common.addons.prometheus.server.config.get('storage_local_retention') }}"
- name: PROMETHEUS_USE_STATIC_DATADIR
- value: "{{ common.addons.prometheus.server.config.get('use_static_datadir', 'true') | lower }}"
+ value: "{{ common.addons.prometheus.server.config.get('use_static_datadir') | lower }}"
ports:
- name: webui
- containerPort: {{ common.addons.prometheus.server.bind.get('port', '9090') }}
+ containerPort: {{ common.addons.prometheus.server.bind.get('port') }}
resources:
requests:
- memory: {{ common.addons.prometheus.server.resources.requests.get('memory', '500M') }}
+ memory: {{ common.addons.prometheus.server.resources.requests.get('memory') }}
limits:
- memory: {{ common.addons.prometheus.server.resources.limits.get('memory', '500M') }}
+ memory: {{ common.addons.prometheus.server.resources.limits.get('memory') }}
volumeMounts:
- name: prometheus-server-cfg
- mountPath: "{{ common.addons.prometheus.server.config.get('config_dir', '/etc/prometheus') }}"
+ mountPath: "{{ common.addons.prometheus.server.config.get('config_dir') }}"
- name: prometheus-server-data
- mountPath: "{{ common.addons.prometheus.server.config.get('data_dir', '/data') }}"
+ mountPath: "{{ common.addons.prometheus.server.config.get('data_dir') }}"
volumes:
- name: prometheus-server-cfg
hostPath:
- path: "{{ common.addons.prometheus.server.config.get('host_config_dir', '/srv/volumes/local/prometheus/config') }}"
+ path: "{{ common.addons.prometheus.server.config.get('host_config_dir') }}"
- name: prometheus-server-data
hostPath:
- path: "{{ common.addons.prometheus.server.config.get('host_data_dir', '/srv/volumes/local/prometheus/data') }}"
+ path: "{{ common.addons.prometheus.server.config.get('host_data_dir') }}"
diff --git a/kubernetes/files/kube-addons/prometheus/prometheus-server-svc.yaml b/kubernetes/files/kube-addons/prometheus/prometheus-server-svc.yaml
index 978bb60..0c41c07 100644
--- a/kubernetes/files/kube-addons/prometheus/prometheus-server-svc.yaml
+++ b/kubernetes/files/kube-addons/prometheus/prometheus-server-svc.yaml
@@ -15,6 +15,6 @@
type: LoadBalancer
ports:
- name: webui
- port: {{ common.addons.prometheus.server.bind.get('port', '9090') }}
- targetPort: {{ common.addons.prometheus.server.bind.get('port', '9090') }}
+ port: {{ common.addons.prometheus.server.bind.get('port') }}
+ targetPort: {{ common.addons.prometheus.server.bind.get('port') }}
protocol: TCP
diff --git a/kubernetes/files/systemd/criproxy.service b/kubernetes/files/systemd/criproxy.service
index b5f9d18..9980501 100644
--- a/kubernetes/files/systemd/criproxy.service
+++ b/kubernetes/files/systemd/criproxy.service
@@ -5,8 +5,13 @@
[Unit]
Description=CRI Proxy
+{%- if common.get('containerd', {}).get('enabled') %}
+After=containerd.service
+Requires=containerd.service
+{%- else %}
After=dockershim.service
Requires=dockershim.service
+{%- endif %}
[Service]
SyslogIdentifier=criproxy
diff --git a/kubernetes/files/systemd/kubelet.service b/kubernetes/files/systemd/kubelet.service
index c353ece..8e75895 100644
--- a/kubernetes/files/systemd/kubelet.service
+++ b/kubernetes/files/systemd/kubelet.service
@@ -1,10 +1,16 @@
+{%- from "kubernetes/map.jinja" import common with context -%}
[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/kubernetes/kubernetes
Documentation=man:kubelet
After=network.target
+{%- if common.get('containerd', {}).get('enabled') %}
+After=containerd.service
+Requires=containerd.service
+{%- else %}
After=docker.service
Requires=docker.service
+{%- endif %}
Conflicts=cadvisor.service
[Service]
diff --git a/metadata/service/common.yml b/metadata/service/common.yml
index 3d01377..6f53745 100644
--- a/metadata/service/common.yml
+++ b/metadata/service/common.yml
@@ -7,6 +7,18 @@
kubernetes:
common:
addons:
+ alertmanager:
+ enabled: False
+ image: docker-prod-local.artifactory.mirantis.com/openstack-docker/alertmanager:2018.8.0
+ namespace: stacklight
+ bind:
+ port: 9093
+ address: 0.0.0.0
+ dir:
+ config: /etc/alertmanager
+ data: /data
+ host_config: /srv/volumes/local/alertmanager/config
+ host_data: /srv/volumes/local/alertmanager/data
dns:
enabled: true
replicas: 1
@@ -54,6 +66,61 @@
image: mirantis/external-dns:latest
domain: ${_param:kubernetes_cluster_domain}
provider: coredns
+ fluentd:
+ namespace: stacklight
+ enabled: False
+ aggregator:
+ image: docker-prod-local.docker.mirantis.net/mirantis/external/fluentd-kubernetes-daemonset:stable
+ replicas: 1
+ bind:
+ port: 24224
+ host_port: 31950
+ config:
+ config_dir: /fluentd/etc
+ output:
+ elasticsearch:
+ host: 127.0.0.1
+ port: 9200
+ scheme: http
+ logstash_format: true
+ logstash_prefix: 'log'
+ logstash_dateformat: '%Y.%m.%d'
+ request_timeout: '10s'
+ buffer_chunk_limit: '2m'
+ buffer_queue_limit: 32
+ flush_interval: '10s'
+ max_retry_wait: 30
+ num_threads: 8
+ reload_connections: true
+ ssl_verify: false
+ log_level: info
+ resources:
+ requests:
+ memory: 512M
+ limits:
+ memory: 512M
+ prometheus:
+ enabled: False
+ namespace: stacklight
+ server:
+ image: docker-prod-local.artifactory.mirantis.com/openstack-docker/prometheus:2018.8.0
+ replicas: 2
+ bind:
+ host: 0.0.0.0
+ port: 9090
+ config:
+ config_dir: /etc/prometheus
+ data_dir: /data
+ host_config_dir: /srv/volumes/local/prometheus/config
+ host_data_dir: /srv/volumes/local/prometheus/data
+ storage_local_engine: persisted
+ storage_local_retention: 72h
+ use_static_datadir: true
+ resources:
+ requests:
+ memory: 1G
+ limits:
+ memory: 1G
virtlet:
enabled: False
namespace: kube-system
@@ -64,6 +131,11 @@
plugins:
source: https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz
hash: e7e5751d43456f69ea1ed043647e0377
+ containerd:
+ enabled: false
+ crictl:
+ source: https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.12.0/crictl-v1.12.0-linux-amd64.tar.gz
+ hash: md5=ff60b9ddfa5617f7ed14b3f3b6a60056
cloudprovider:
enabled: False
provider: openstack