summaryrefslogtreecommitdiffstats
path: root/roles/openshift_logging_elasticsearch
diff options
context:
space:
mode:
Diffstat (limited to 'roles/openshift_logging_elasticsearch')
-rw-r--r--roles/openshift_logging_elasticsearch/tasks/main.yaml87
-rw-r--r--roles/openshift_logging_elasticsearch/templates/elasticsearch.yml.j24
-rw-r--r--roles/openshift_logging_elasticsearch/templates/es.j216
-rw-r--r--roles/openshift_logging_elasticsearch/templates/rolebinding.j214
4 files changed, 97 insertions, 24 deletions
diff --git a/roles/openshift_logging_elasticsearch/tasks/main.yaml b/roles/openshift_logging_elasticsearch/tasks/main.yaml
index 0d4c7a013..620c82fd0 100644
--- a/roles/openshift_logging_elasticsearch/tasks/main.yaml
+++ b/roles/openshift_logging_elasticsearch/tasks/main.yaml
@@ -11,7 +11,9 @@
msg: Invalid deployment type, one of ['data-master', 'data-client', 'master', 'client'] allowed
when: not openshift_logging_elasticsearch_deployment_type in __allowed_es_types
-- set_fact: elasticsearch_name="{{ 'logging-elasticsearch' ~ ( (openshift_logging_elasticsearch_ops_deployment | default(false) | bool) | ternary('-ops', '')) }}"
+- set_fact:
+ elasticsearch_name: "{{ 'logging-elasticsearch' ~ ( (openshift_logging_elasticsearch_ops_deployment | default(false) | bool) | ternary('-ops', '')) }}"
+ es_component: "{{ 'es' ~ ( (openshift_logging_elasticsearch_ops_deployment | default(false) | bool) | ternary('-ops', '') ) }}"
- include: determine_version.yaml
@@ -39,7 +41,7 @@
oc_serviceaccount:
state: present
name: "aggregated-logging-elasticsearch"
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
image_pull_secrets: "{{ openshift_logging_image_pull_secret }}"
when: openshift_logging_image_pull_secret != ''
@@ -47,7 +49,7 @@
oc_serviceaccount:
state: present
name: "aggregated-logging-elasticsearch"
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
when:
- openshift_logging_image_pull_secret == ''
@@ -61,7 +63,7 @@
state: present
name: "rolebinding-reader"
kind: clusterrole
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
files:
- "{{ tempdir }}/rolebinding-reader.yml"
delete_after: true
@@ -70,10 +72,34 @@
- name: Set rolebinding-reader permissions for ES
oc_adm_policy_user:
state: present
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
resource_kind: cluster-role
resource_name: rolebinding-reader
- user: "system:serviceaccount:{{ openshift_logging_namespace }}:aggregated-logging-elasticsearch"
+ user: "system:serviceaccount:{{ openshift_logging_elasticsearch_namespace }}:aggregated-logging-elasticsearch"
+
+# View role and binding
+- name: Generate logging-elasticsearch-view-role
+ template:
+ src: rolebinding.j2
+ dest: "{{mktemp.stdout}}/logging-elasticsearch-view-role.yaml"
+ vars:
+ obj_name: logging-elasticsearch-view-role
+ roleRef:
+ name: view
+ subjects:
+ - kind: ServiceAccount
+ name: aggregated-logging-elasticsearch
+ changed_when: no
+
+- name: Set logging-elasticsearch-view-role role
+ oc_obj:
+ state: present
+ name: "logging-elasticsearch-view-role"
+ kind: rolebinding
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
+ files:
+ - "{{ tempdir }}/logging-elasticsearch-view-role.yaml"
+ delete_after: true
# configmap
- template:
@@ -87,7 +113,6 @@
dest: "{{ tempdir }}/elasticsearch.yml"
vars:
allow_cluster_reader: "{{ openshift_logging_elasticsearch_ops_allow_cluster_reader | lower | default('false') }}"
- deploy_type: "{{ openshift_logging_elasticsearch_deployment_type }}"
when: es_config_contents is undefined
changed_when: no
@@ -106,8 +131,8 @@
- name: Set ES configmap
oc_configmap:
state: present
- name: "{{ elasticsearch_name }}-{{ openshift_logging_elasticsearch_deployment_type }}"
- namespace: "{{ openshift_logging_namespace }}"
+ name: "{{ elasticsearch_name }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
from_file:
elasticsearch.yml: "{{ tempdir }}/elasticsearch.yml"
logging.yml: "{{ tempdir }}/elasticsearch-logging.yml"
@@ -119,7 +144,7 @@
oc_secret:
state: present
name: "logging-elasticsearch"
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
files:
- name: key
path: "{{ generated_certs_dir }}/logging-es.jks"
@@ -138,6 +163,34 @@
- name: admin.jks
path: "{{ generated_certs_dir }}/system.admin.jks"
+# services
+- name: Set logging-{{ es_component }}-cluster service
+ oc_service:
+ state: present
+ name: "logging-{{ es_component }}-cluster"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
+ selector:
+ component: "{{ es_component }}"
+ provider: openshift
+# labels:
+# - logging-infra: 'support'
+ ports:
+ - port: 9300
+
+- name: Set logging-{{ es_component }} service
+ oc_service:
+ state: present
+ name: "logging-{{ es_component }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
+ selector:
+ component: "{{ es_component }}"
+ provider: openshift
+# labels:
+# - logging-infra: 'support'
+ ports:
+ - port: 9200
+ targetPort: "restapi"
+
- name: Creating ES storage template
template:
src: pvc.j2
@@ -171,7 +224,7 @@
state: present
kind: pvc
name: "{{ openshift_logging_elasticsearch_pvc_name }}"
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
files:
- "{{ tempdir }}/templates/logging-es-pvc.yml"
delete_after: true
@@ -179,9 +232,6 @@
- openshift_logging_elasticsearch_storage_type == "pvc"
- set_fact:
- es_component: "{{ 'es' ~ ( (openshift_logging_elasticsearch_ops_deployment | default(false) | bool) | ternary('-ops', '') ) }}"
-
-- set_fact:
es_deploy_name: "logging-{{ es_component }}-{{ openshift_logging_elasticsearch_deployment_type }}-{{ 'abcdefghijklmnopqrstuvwxyz0123456789' | random_word(8) }}"
when: openshift_logging_elasticsearch_deployment_name == ""
@@ -195,20 +245,21 @@
src: es.j2
dest: "{{ tempdir }}/templates/logging-es-dc.yml"
vars:
- es_configmap: "{{ elasticsearch_name }}-{{ openshift_logging_elasticsearch_deployment_type }}"
es_cluster_name: "{{ es_component }}"
- logging_component: "{{ es_component }}"
+ component: "{{ es_component }}"
+ logging_component: elasticsearch
deploy_name: "{{ es_deploy_name }}"
image: "{{ openshift_logging_image_prefix }}logging-elasticsearch:{{ openshift_logging_image_version }}"
es_cpu_limit: "{{ openshift_logging_elasticsearch_cpu_limit }}"
es_memory_limit: "{{ openshift_logging_elasticsearch_memory_limit }}"
es_node_selector: "{{ openshift_logging_elasticsearch_nodeselector | default({}) }}"
+ deploy_type: "{{ openshift_logging_elasticsearch_deployment_type }}"
- name: Set ES dc
oc_obj:
state: present
name: "{{ es_deploy_name }}"
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
kind: dc
files:
- "{{ tempdir }}/templates/logging-es-dc.yml"
@@ -219,7 +270,7 @@
oc_scale:
kind: dc
name: "{{ es_deploy_name }}"
- namespace: "{{ openshift_logging_namespace }}"
+ namespace: "{{ openshift_logging_elasticsearch_namespace }}"
replicas: 1
## Placeholder for migration when necessary ##
diff --git a/roles/openshift_logging_elasticsearch/templates/elasticsearch.yml.j2 b/roles/openshift_logging_elasticsearch/templates/elasticsearch.yml.j2
index cd4bde98b..340c6d7e6 100644
--- a/roles/openshift_logging_elasticsearch/templates/elasticsearch.yml.j2
+++ b/roles/openshift_logging_elasticsearch/templates/elasticsearch.yml.j2
@@ -15,8 +15,8 @@ index:
flush_threshold_period: 5m
node:
- master: {% if deploy_type in ['data-master', 'master'] %}true{% else %}false{% endif %}
- data: {% if deploy_type in ['data-master', 'data-client'] %}true{% else %}false{% endif %}
+ master: ${IS_MASTER}
+ data: ${HAS_DATA}
network:
host: 0.0.0.0
diff --git a/roles/openshift_logging_elasticsearch/templates/es.j2 b/roles/openshift_logging_elasticsearch/templates/es.j2
index 295e58981..36390a2c2 100644
--- a/roles/openshift_logging_elasticsearch/templates/es.j2
+++ b/roles/openshift_logging_elasticsearch/templates/es.j2
@@ -4,14 +4,14 @@ metadata:
name: "{{deploy_name}}"
labels:
provider: openshift
- component: elasticsearch
+ component: "{{component}}"
deployment: "{{deploy_name}}"
logging-infra: "{{logging_component}}"
spec:
replicas: {{replicas|default(0)}}
selector:
provider: openshift
- component: elasticsearch
+ component: "{{component}}"
deployment: "{{deploy_name}}"
logging-infra: "{{logging_component}}"
strategy:
@@ -22,7 +22,7 @@ spec:
labels:
logging-infra: "{{logging_component}}"
provider: openshift
- component: elasticsearch
+ component: "{{component}}"
deployment: "{{deploy_name}}"
spec:
terminationGracePeriod: 600
@@ -86,6 +86,14 @@ spec:
-
name: "RECOVER_AFTER_TIME"
value: "{{openshift_logging_elasticsearch_recover_after_time}}"
+ -
+ name: "IS_MASTER"
+ value: "{% if deploy_type in ['data-master', 'master'] %}true{% else %}false{% endif %}"
+
+ -
+ name: "HAS_DATA"
+ value: "{% if deploy_type in ['data-master', 'data-client'] %}true{% else %}false{% endif %}"
+
volumeMounts:
- name: elasticsearch
mountPath: /etc/elasticsearch/secret
@@ -101,7 +109,7 @@ spec:
secretName: logging-elasticsearch
- name: elasticsearch-config
configMap:
- name: {{ es_configmap }}
+ name: logging-elasticsearch
- name: elasticsearch-storage
{% if openshift_logging_elasticsearch_storage_type == 'pvc' %}
persistentVolumeClaim:
diff --git a/roles/openshift_logging_elasticsearch/templates/rolebinding.j2 b/roles/openshift_logging_elasticsearch/templates/rolebinding.j2
new file mode 100644
index 000000000..fcd4e87cc
--- /dev/null
+++ b/roles/openshift_logging_elasticsearch/templates/rolebinding.j2
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: RoleBinding
+metadata:
+ name: {{obj_name}}
+roleRef:
+{% if roleRef.kind is defined %}
+ kind: {{ roleRef.kind }}
+{% endif %}
+ name: {{ roleRef.name }}
+subjects:
+{% for sub in subjects %}
+ - kind: {{ sub.kind }}
+ name: {{ sub.name }}
+{% endfor %}