diff options
Diffstat (limited to 'roles')
| -rwxr-xr-x | roles/openshift_facts/library/openshift_facts.py | 16 | ||||
| -rw-r--r-- | roles/openshift_metrics/README.md | 51 | ||||
| -rw-r--r-- | roles/openshift_metrics/meta/main.yaml | 3 | ||||
| -rw-r--r-- | roles/openshift_metrics/tasks/main.yaml | 55 | ||||
| -rw-r--r-- | roles/openshift_metrics/vars/main.yaml | 19 | ||||
| -rw-r--r-- | roles/openshift_storage_nfs/defaults/main.yml | 8 | 
6 files changed, 152 insertions, 0 deletions
diff --git a/roles/openshift_facts/library/openshift_facts.py b/roles/openshift_facts/library/openshift_facts.py index 3bdad1175..862871bd8 100755 --- a/roles/openshift_facts/library/openshift_facts.py +++ b/roles/openshift_facts/library/openshift_facts.py @@ -1634,6 +1634,22 @@ class OpenShiftFacts(object):          if 'hosted' in roles or self.role == 'hosted':              defaults['hosted'] = dict( +                metrics=dict( +                    deploy=False, +                    storage=dict( +                        kind=None, +                        volume=dict( +                            name='metrics', +                            size='10Gi' +                        ), +                        nfs=dict( +                            directory='/exports', +                            options='*(rw,root_squash)'), +                        host=None, +                        access_modes=['ReadWriteMany'], +                        create_pv=True +                    ) +                ),                  registry=dict(                      storage=dict(                          kind=None, diff --git a/roles/openshift_metrics/README.md b/roles/openshift_metrics/README.md new file mode 100644 index 000000000..610917d7d --- /dev/null +++ b/roles/openshift_metrics/README.md @@ -0,0 +1,51 @@ +OpenShift Metrics with Hawkular +==================== + +OpenShift Metrics Installation + +Requirements +------------ +It requires subdomain fqdn to be set. +If persistence is enabled, then it also requires NFS  + +Role Variables +-------------- + +From this role: +| Name                                            | Default value         |                                                             | +|-------------------------------------------------|-----------------------|-------------------------------------------------------------| +| openshift_hosted_metrics_deploy                 | False                 | If metrics should be deployed                               | +| openshift_hosted_metrics_storage_nfs_directory  | /exports              | Root export directory.                                      | +| openshift_hosted_metrics_storage_volume_name    | metrics               | Metrics volume within openshift_hosted_metrics_volume_dir   | +| openshift_hosted_metrics_storage_volume_size    | 10Gi                  | Metrics volume size                                         | +| openshift_hosted_metrics_storage_nfs_options    | *(rw,root_squash)     | NFS options for configured exports.                         | + + +From openshift_common: +| Name                                  | Default Value  |                                        | +|---------------------------------------|----------------|----------------------------------------| +| openshift_master_default_subdomain    | null           | Subdomain FQDN (Mandatory)             | + + +Dependencies +------------ +openshift_facts +openshift_examples + +Example Playbook +---------------- + +- name: Configure openshift-metrics +  hosts: oo_first_master +  roles: +  - role: openshift_metrics + +License +------- + +Apache License, Version 2.0 + +Author Information +------------------ + +Jose David MartÃn (j.david.nieto@gmail.com) diff --git a/roles/openshift_metrics/meta/main.yaml b/roles/openshift_metrics/meta/main.yaml new file mode 100644 index 000000000..5f8d4f5c5 --- /dev/null +++ b/roles/openshift_metrics/meta/main.yaml @@ -0,0 +1,3 @@ +dependencies: +- { role: openshift_examples } +- { role: openshift_facts }
\ No newline at end of file diff --git a/roles/openshift_metrics/tasks/main.yaml b/roles/openshift_metrics/tasks/main.yaml new file mode 100644 index 000000000..1a86cb1ea --- /dev/null +++ b/roles/openshift_metrics/tasks/main.yaml @@ -0,0 +1,55 @@ +--- +- name: Copy Configuration to temporary conf +  command: > +    cp {{ openshift.common.config_base }}/master/admin.kubeconfig {{hawkular_tmp_conf}} +  changed_when: false + +- name: Create metrics-deployer Service Account +  shell: > +    echo {{ deployer_service_account | to_json | quote }} | +    {{ openshift.common.client_binary }} create +    -n openshift-infra +    --config={{hawkular_tmp_conf}} +    -f - +  register: deployer_create_service_account +  failed_when: "'already exists' not in deployer_create_service_account.stderr and deployer_create_service_account.rc != 0" +  changed_when: deployer_create_service_account.rc == 0 + +- name: Create metrics-deployer Secret +  command: > +    {{ openshift.common.client_binary }} +    secrets new metrics-deployer +    nothing=/dev/null +    -n openshift-infra +  register: deployer_create_secret +  failed_when: "'already exists' not in deployer_create_secret.stderr and deployer_create_secret.rc !=0" +  changed_when: deployer_create_secret.rc == 0 + +- name: Configure role/user permissions +  command: > +    {{ openshift.common.admin_binary }} {{item}} +    --config={{hawkular_tmp_conf}} +  with_items: "{{hawkular_permission_oc_commands}}" +  register: hawkular_perm_task +  failed_when: "'already exists' not in hawkular_perm_task.stderr and hawkular_perm_task.rc != 0" +  changed_when: hawkular_perm_task.rc == 0 + +- name: Check openshift_master_default_subdomain +  fail:  +    msg: "Default subdomain should be defined" +  when: openshift.master.default_subdomain is not defined + +- name: Create Heapster and Hawkular/Cassandra Services +  shell: > +   {{ openshift.common.client_binary }} process -f \ +   /usr/share/openshift/examples/infrastructure-templates/{{ hawkular_type }}/metrics-deployer.yaml -v \ +    HAWKULAR_METRICS_HOSTNAME=hawkular-metrics.{{ openshift.master.default_subdomain }},USE_PERSISTENT_STORAGE={{ hawkular_persistence }} | \ +    {{ openshift.common.client_binary }} create -n openshift-infra -f -  +  register: oex_heapster_services +  failed_when: "'already exists' not in oex_heapster_services.stderr and oex_heapster_services.rc != 0" +  changed_when: false + +- name: Clean temporary config file +  command: > +    rm -rf {{hawkular_tmp_conf}} +  changed_when: false
\ No newline at end of file diff --git a/roles/openshift_metrics/vars/main.yaml b/roles/openshift_metrics/vars/main.yaml new file mode 100644 index 000000000..82d9d29f7 --- /dev/null +++ b/roles/openshift_metrics/vars/main.yaml @@ -0,0 +1,19 @@ +hawkular_permission_oc_commands: +    - policy add-role-to-user edit system:serviceaccount:openshift-infra:metrics-deployer -n openshift-infra +    - policy add-cluster-role-to-user cluster-admin system:serviceaccount:openshift-infra:heapster + +deployer_service_account: +    apiVersion: v1 +    kind: ServiceAccount +    metadata: +      name: metrics-deployer +    secrets: +    - name: metrics-deployer + + +hawkular_tmp_conf: /tmp/hawkular_admin.kubeconfig + +hawkular_persistence: "{% if openshift.hosted.metrics.storage.kind != None %}true{% else %}false{% endif %}" + +hawkular_type: "{{ 'origin' if deployment_type == 'origin' else 'enterprise' }}" + diff --git a/roles/openshift_storage_nfs/defaults/main.yml b/roles/openshift_storage_nfs/defaults/main.yml index 5f6893129..90592e9d0 100644 --- a/roles/openshift_storage_nfs/defaults/main.yml +++ b/roles/openshift_storage_nfs/defaults/main.yml @@ -8,6 +8,14 @@ openshift:            options: "*(rw,root_squash)"          volume:            name: "registry" +    metrics: +      deploy: False +      storage: +        nfs: +          directory: "/exports" +          options: "*(rw,root_squash)" +        volume: +          name: "metrics"  os_firewall_use_firewalld: False  os_firewall_allow:  - service: nfs  | 
