diff options
Diffstat (limited to 'roles/openshift_metrics/tasks')
| -rw-r--r-- | roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml | 2 | ||||
| -rw-r--r-- | roles/openshift_metrics/tasks/install_hosa.yaml | 44 | ||||
| -rw-r--r-- | roles/openshift_metrics/tasks/install_metrics.yaml | 37 | ||||
| -rw-r--r-- | roles/openshift_metrics/tasks/main.yaml | 3 | ||||
| -rw-r--r-- | roles/openshift_metrics/tasks/oc_apply.yaml | 2 | ||||
| -rw-r--r-- | roles/openshift_metrics/tasks/uninstall_hosa.yaml | 15 | 
6 files changed, 100 insertions, 3 deletions
diff --git a/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml b/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml index fb4fe2f03..7b81b3c10 100644 --- a/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml +++ b/roles/openshift_metrics/tasks/generate_hawkular_certificates.yaml @@ -73,6 +73,8 @@          {{ hawkular_secrets['hawkular-metrics.key'] }}        tls.truststore.crt: >          {{ hawkular_secrets['hawkular-cassandra.crt'] }} +      ca.crt: > +        {{ hawkular_secrets['ca.crt'] }}    when: name not in metrics_secrets.stdout_lines    changed_when: no diff --git a/roles/openshift_metrics/tasks/install_hosa.yaml b/roles/openshift_metrics/tasks/install_hosa.yaml new file mode 100644 index 000000000..cc533a68b --- /dev/null +++ b/roles/openshift_metrics/tasks/install_hosa.yaml @@ -0,0 +1,44 @@ +--- +- name: Generate Hawkular Agent (HOSA) Cluster Role +  template: +    src: hawkular_openshift_agent_role.j2 +    dest: "{{mktemp.stdout}}/templates/metrics-hawkular-openshift-agent-role.yaml" +  changed_when: no + +- name: Generate Hawkular Agent (HOSA) Service Account +  template: +    src: hawkular_openshift_agent_sa.j2 +    dest: "{{mktemp.stdout}}/templates/metrics-hawkular-openshift-agent-sa.yaml" +  changed_when: no + +- name: Generate Hawkular Agent (HOSA) Daemon Set +  template: +    src: hawkular_openshift_agent_ds.j2 +    dest: "{{mktemp.stdout}}/templates/metrics-hawkular-openshift-agent-ds.yaml" +  vars: +    node_selector: "{{openshift_metrics_hawkular_agent_nodeselector | default('') }}" +  changed_when: no + +- name: Generate the Hawkular Agent (HOSA) Configmap +  template: +    src: hawkular_openshift_agent_cm.j2 +    dest: "{{mktemp.stdout}}/templates/metrics-hawkular-openshift-agent-cm.yaml" +  changed_when: no + +- name: Generate role binding for the hawkular-openshift-agent service account +  template: +    src: rolebinding.j2 +    dest: "{{ mktemp.stdout }}/templates/metrics-hawkular-agent-rolebinding.yaml" +  vars: +    cluster: True +    obj_name: hawkular-openshift-agent-rb +    labels: +      metrics-infra: hawkular-agent +    roleRef: +      kind: ClusterRole +      name: hawkular-openshift-agent +    subjects: +      - kind: ServiceAccount +        name: hawkular-openshift-agent +        namespace: "{{openshift_metrics_hawkular_agent_namespace}}" +  changed_when: no diff --git a/roles/openshift_metrics/tasks/install_metrics.yaml b/roles/openshift_metrics/tasks/install_metrics.yaml index 74eb56713..fdf4ae57f 100644 --- a/roles/openshift_metrics/tasks/install_metrics.yaml +++ b/roles/openshift_metrics/tasks/install_metrics.yaml @@ -16,11 +16,19 @@    include: install_heapster.yaml    when: openshift_metrics_heapster_standalone | bool -- find: paths={{ mktemp.stdout }}/templates patterns=*.yaml +- name: Install Hawkular OpenShift Agent (HOSA) +  include: install_hosa.yaml +  when: openshift_metrics_install_hawkular_agent | default(false) | bool + +- find: +    paths: "{{ mktemp.stdout }}/templates" +    patterns: "^(?!metrics-hawkular-openshift-agent).*.yaml" +    use_regex: true    register: object_def_files    changed_when: no -- slurp: src={{item.path}} +- slurp: +    src: "{{item.path}}"    register: object_defs    with_items: "{{object_def_files.files}}"    changed_when: no @@ -34,6 +42,31 @@      file_content: "{{ item.content | b64decode | from_yaml }}"    with_items: "{{ object_defs.results }}" +- find: +    paths: "{{ mktemp.stdout }}/templates" +    patterns: "^metrics-hawkular-openshift-agent.*.yaml" +    use_regex: true +  register: hawkular_agent_object_def_files +  when: openshift_metrics_install_hawkular_agent | bool +  changed_when: no + +- slurp: +    src: "{{item.path}}" +  register: hawkular_agent_object_defs +  with_items: "{{ hawkular_agent_object_def_files.files }}" +  when: openshift_metrics_install_hawkular_agent | bool +  changed_when: no + +- name: Create Hawkular Agent objects +  include: oc_apply.yaml +  vars: +    kubeconfig: "{{ mktemp.stdout }}/admin.kubeconfig" +    namespace: "{{ openshift_metrics_hawkular_agent_namespace }}" +    file_name: "{{ item.source }}" +    file_content: "{{ item.content | b64decode | from_yaml }}" +  with_items: "{{ hawkular_agent_object_defs.results }}" +  when: openshift_metrics_install_hawkular_agent | bool +  - include: update_master_config.yaml  - command: > diff --git a/roles/openshift_metrics/tasks/main.yaml b/roles/openshift_metrics/tasks/main.yaml index 5d8506a73..0b5f23c24 100644 --- a/roles/openshift_metrics/tasks/main.yaml +++ b/roles/openshift_metrics/tasks/main.yaml @@ -44,6 +44,9 @@  - include: "{{ (openshift_metrics_install_metrics | bool) | ternary('install_metrics.yaml','uninstall_metrics.yaml') }}" +- include: uninstall_hosa.yaml +  when: not openshift_metrics_install_hawkular_agent | bool +  - name: Delete temp directory    local_action: file path=local_tmp.stdout state=absent    tags: metrics_cleanup diff --git a/roles/openshift_metrics/tasks/oc_apply.yaml b/roles/openshift_metrics/tasks/oc_apply.yaml index dd67703b4..1e1af40e8 100644 --- a/roles/openshift_metrics/tasks/oc_apply.yaml +++ b/roles/openshift_metrics/tasks/oc_apply.yaml @@ -14,7 +14,7 @@    command: >      {{ openshift.common.client_binary }} --config={{ kubeconfig }}      apply -f {{ file_name }} -    -n {{ openshift_metrics_project }} +    -n {{namespace}}    register: generation_apply    failed_when: "'error' in generation_apply.stderr"    changed_when: no diff --git a/roles/openshift_metrics/tasks/uninstall_hosa.yaml b/roles/openshift_metrics/tasks/uninstall_hosa.yaml new file mode 100644 index 000000000..42ed02460 --- /dev/null +++ b/roles/openshift_metrics/tasks/uninstall_hosa.yaml @@ -0,0 +1,15 @@ +--- +- name: remove Hawkular Agent (HOSA) components +  command: > +    {{ openshift.common.client_binary }} -n {{ openshift_metrics_hawkular_agent_namespace }} --config={{ mktemp.stdout }}/admin.kubeconfig +    delete --ignore-not-found --selector=metrics-infra=agent +    all,sa,secrets,templates,routes,pvc,rolebindings,clusterrolebindings +  register: delete_metrics +  changed_when: delete_metrics.stdout != 'No resources found' + +- name: remove rolebindings +  command: > +    {{ openshift.common.client_binary }} -n {{ openshift_metrics_hawkular_agent_namespace }} --config={{ mktemp.stdout }}/admin.kubeconfig +    delete --ignore-not-found +    clusterrolebinding/hawkular-openshift-agent-rb +  changed_when: delete_metrics.stdout != 'No resources found'  | 
