diff options
Diffstat (limited to 'roles')
24 files changed, 197 insertions, 70 deletions
diff --git a/roles/lib_utils/library/docker_creds.py b/roles/lib_utils/library/docker_creds.py index b94c0b779..936fb1c38 100644 --- a/roles/lib_utils/library/docker_creds.py +++ b/roles/lib_utils/library/docker_creds.py @@ -148,10 +148,12 @@ def update_config(docker_config, registry, username, password):  def write_config(module, docker_config, dest):      '''Write updated credentials into dest/config.json''' +    if not isinstance(docker_config, dict): +        docker_config = docker_config.decode()      conf_file_path = os.path.join(dest, 'config.json')      try:          with open(conf_file_path, 'w') as conf_file: -            json.dump(docker_config.decode(), conf_file, indent=8) +            json.dump(docker_config, conf_file, indent=8)      except IOError as ioerror:          result = {'failed': True,                    'changed': False, diff --git a/roles/lib_utils/library/openshift_container_binary_sync.py b/roles/lib_utils/library/openshift_container_binary_sync.py index 440b8ec28..efdfcf1c7 100644 --- a/roles/lib_utils/library/openshift_container_binary_sync.py +++ b/roles/lib_utils/library/openshift_container_binary_sync.py @@ -107,7 +107,7 @@ class BinarySyncer(object):              self._sync_binary('oc')          # Ensure correct symlinks created: -        self._sync_symlink('kubectl', 'openshift') +        self._sync_symlink('kubectl', 'oc')          # Remove old oadm binary          if os.path.exists(os.path.join(self.bin_dir, 'oadm')): diff --git a/roles/nuage_master/tasks/etcd_certificates.yml b/roles/nuage_master/tasks/etcd_certificates.yml new file mode 100644 index 000000000..99ec27f91 --- /dev/null +++ b/roles/nuage_master/tasks/etcd_certificates.yml @@ -0,0 +1,21 @@ +--- +- name: Generate openshift etcd certs +  become: yes +  include_role: +    name: etcd +    tasks_from: client_certificates +  vars: +    etcd_cert_prefix: nuageEtcd- +    etcd_cert_config_dir: "{{ cert_output_dir }}" +    embedded_etcd: "{{ hostvars[groups.oo_first_master.0].openshift.master.embedded_etcd }}" +    etcd_ca_host: "{{ groups.oo_etcd_to_config.0 }}" +    etcd_cert_subdir: "openshift-nuage-{{ openshift.common.hostname }}" + + +- name: Error if etcd certs are not copied +  stat: +    path: "{{ item }}" +  with_items: +  - "{{ cert_output_dir }}/nuageEtcd-ca.crt" +  - "{{ cert_output_dir }}/nuageEtcd-client.crt" +  - "{{ cert_output_dir }}/nuageEtcd-client.key" diff --git a/roles/nuage_master/tasks/main.yaml b/roles/nuage_master/tasks/main.yaml index 29e16b6f8..a1781dc56 100644 --- a/roles/nuage_master/tasks/main.yaml +++ b/roles/nuage_master/tasks/main.yaml @@ -81,6 +81,7 @@      - nuage.key      - nuage.kubeconfig +- include_tasks: etcd_certificates.yml  - include_tasks: certificates.yml  - name: Install Nuage VSD user certificate @@ -99,7 +100,16 @@    become: yes    template: src=nuage-node-config-daemonset.j2 dest=/etc/nuage-node-config-daemonset.yaml owner=root mode=0644 -- name: Add the service account to the privileged scc to have root permissions +- name: Create Nuage Infra Pod daemon set yaml file +  become: yes +  template: src=nuage-infra-pod-config-daemonset.j2 dest=/etc/nuage-infra-pod-config-daemonset.yaml owner=root mode=0644 + +- name: Add the service account to the privileged scc to have root permissions for kube-system +  shell: oc adm policy add-scc-to-user privileged system:serviceaccount:kube-system:daemon-set-controller +  ignore_errors: true +  when: inventory_hostname == groups.oo_first_master.0 + +- name: Add the service account to the privileged scc to have root permissions for openshift-infra    shell: oc adm policy add-scc-to-user privileged system:serviceaccount:openshift-infra:daemonset-controller    ignore_errors: true    when: inventory_hostname == groups.oo_first_master.0 @@ -114,6 +124,11 @@    ignore_errors: true    when: inventory_hostname == groups.oo_first_master.0 +- name: Spawn Nuage Infra daemon sets pod +  shell: oc create -f /etc/nuage-infra-pod-config-daemonset.yaml +  ignore_errors: true +  when: inventory_hostname == groups.oo_first_master.0 +  - name: Restart daemons    command: /bin/true    notify: diff --git a/roles/nuage_master/templates/nuage-infra-pod-config-daemonset.j2 b/roles/nuage_master/templates/nuage-infra-pod-config-daemonset.j2 new file mode 100755 index 000000000..534a1517f --- /dev/null +++ b/roles/nuage_master/templates/nuage-infra-pod-config-daemonset.j2 @@ -0,0 +1,39 @@ +# This manifest installs Nuage Infra pod on +# each worker node in an Openshift cluster. +kind: DaemonSet +apiVersion: extensions/v1beta1 +metadata: +  name: nuage-infra-ds +  namespace: kube-system +  labels: +    k8s-app: nuage-infra-ds +spec: +  selector: +    matchLabels: +      k8s-app: nuage-infra-ds +  updateStrategy: +    type: RollingUpdate +  template: +    metadata: +      labels: +        k8s-app: nuage-infra-ds +    spec: +      tolerations: +        - key: node-role.kubernetes.io/master +          effect: NoSchedule +          operator: Exists +      containers: +        # This container spawns a Nuage Infra pod +        # on each worker node +        - name: install-nuage-infra +          image: nuage/infra:{{ nuage_infra_container_image_version }} +          command: ["/install-nuage-infra-pod.sh"] +          securityContext: +            privileged: true +          volumeMounts: +            - mountPath: /var/log +              name: log-dir +      volumes: +        - name: log-dir +          hostPath: +            path: /var/log diff --git a/roles/nuage_master/templates/nuage-master-config-daemonset.j2 b/roles/nuage_master/templates/nuage-master-config-daemonset.j2 index 7be5d6743..3543eeb56 100755 --- a/roles/nuage_master/templates/nuage-master-config-daemonset.j2 +++ b/roles/nuage_master/templates/nuage-master-config-daemonset.j2 @@ -37,11 +37,14 @@ data:        nuageMonServer:            URL: 0.0.0.0:9443            certificateDirectory: {{ nuage_master_crt_dir }} +          clientCA: "" +          serverCertificate: "" +          serverKey: ""        # etcd config required for HA        etcdClientConfig: -          ca: {{ nuage_master_crt_dir }}/nuageMonCA.crt -          certFile: {{ nuage_master_crt_dir }}/nuageMonServer.crt -          keyFile: {{ nuage_master_crt_dir }}/master.etcd-client.key +          ca: {{ nuage_master_crt_dir }}/nuageEtcd-ca.crt +          certFile: {{ nuage_master_crt_dir }}/nuageEtcd-client.crt +          keyFile: {{ nuage_master_crt_dir }}/nuageEtcd-client.key            urls:        {% for etcd_url in openshift.master.etcd_urls %}                - {{ etcd_url }} diff --git a/roles/nuage_master/templates/nuage-node-config-daemonset.j2 b/roles/nuage_master/templates/nuage-node-config-daemonset.j2 index 6a1267d94..996a2d2b0 100755 --- a/roles/nuage_master/templates/nuage-node-config-daemonset.j2 +++ b/roles/nuage_master/templates/nuage-node-config-daemonset.j2 @@ -61,6 +61,8 @@ spec:    selector:      matchLabels:        k8s-app: nuage-cni-ds +  updateStrategy: +    type: RollingUpdate    template:      metadata:        labels: @@ -104,6 +106,8 @@ spec:              - mountPath: /var/log                name: cni-log-dir              - mountPath: {{ nuage_node_config_dsets_mount_dir }} +              name: var-usr-share-dir +            - mountPath: /usr/share/                name: usr-share-dir        volumes:          - name: cni-bin-dir @@ -121,9 +125,12 @@ spec:          - name: cni-log-dir            hostPath:              path: /var/log -        - name: usr-share-dir +        - name: var-usr-share-dir            hostPath:              path: {{ nuage_node_config_dsets_mount_dir }} +        - name: usr-share-dir +          hostPath: +            path: /usr/share/  --- @@ -164,7 +171,7 @@ spec:              - name: NUAGE_PLATFORM                value: '"kvm, k8s"'              - name: NUAGE_K8S_SERVICE_IPV4_SUBNET -              value: '192.168.0.0\/16' +              value: '172.30.0.0\/16'              - name: NUAGE_NETWORK_UPLINK_INTF                value: "eth0"            volumeMounts: diff --git a/roles/nuage_master/vars/main.yaml b/roles/nuage_master/vars/main.yaml index 114514d7c..5045e1cc5 100644 --- a/roles/nuage_master/vars/main.yaml +++ b/roles/nuage_master/vars/main.yaml @@ -26,9 +26,10 @@ nuage_master_config_dsets_mount_dir: /usr/share/  nuage_node_config_dsets_mount_dir: /usr/share/  nuage_cni_bin_dsets_mount_dir: /opt/cni/bin  nuage_cni_netconf_dsets_mount_dir: /etc/cni/net.d -nuage_monitor_container_image_version: "{{ nuage_monitor_image_version | default('v5.1.1') }}" -nuage_vrs_container_image_version: "{{ nuage_vrs_image_version | default('v5.1.1') }}" -nuage_cni_container_image_version: "{{ nuage_cni_image_version | default('v5.1.1') }}" +nuage_monitor_container_image_version: "{{ nuage_monitor_image_version | default('v5.2.1') }}" +nuage_vrs_container_image_version: "{{ nuage_vrs_image_version | default('v5.2.1') }}" +nuage_cni_container_image_version: "{{ nuage_cni_image_version | default('v5.2.1') }}" +nuage_infra_container_image_version: "{{ nuage_infra_image_version | default('v5.2.1') }}"  api_server_url: "{{ hostvars[groups.oo_first_master.0].openshift.master.api_url }}"  nuage_vport_mtu: "{{ nuage_interface_mtu | default('1460') }}"  master_host_type: "{{ master_base_host_type | default('is_rhel_server') }}" diff --git a/roles/openshift_logging/tasks/install_logging.yaml b/roles/openshift_logging/tasks/install_logging.yaml index e4883bfa0..1b4bdb11f 100644 --- a/roles/openshift_logging/tasks/install_logging.yaml +++ b/roles/openshift_logging/tasks/install_logging.yaml @@ -71,10 +71,17 @@  - set_fact: openshift_logging_es_pvc_prefix="logging-es"    when: openshift_logging_es_pvc_prefix == "" +# Using this module for setting this fact because otherwise we were getting a value of "" trying to +# use default() in the set_fact after this which caused us to not correctly evaluate +# openshift_logging_elasticsearch_storage_type +- conditional_set_fact: +    facts: "{{ hostvars[inventory_hostname] }}" +    vars: +      elasticsearch_storage_type: openshift_logging_elasticsearch_storage_type +  - set_fact: -    elasticsearch_storage_type: "{{ openshift_logging_elasticsearch_storage_type | default('pvc' if ( openshift_logging_es_pvc_dynamic | bool or openshift_hosted_logging_storage_kind | default('') == 'nfs' or openshift_logging_es_pvc_size | length > 0)  else 'emptydir') }}" +    default_elasticsearch_storage_type: "{{ 'pvc' if ( openshift_logging_es_pvc_dynamic | bool or openshift_logging_storage_kind | default('') == 'nfs' or openshift_logging_es_pvc_size | length > 0)  else 'emptydir' }}" -# We don't allow scaling down of ES nodes currently  - include_role:      name: openshift_logging_elasticsearch    vars: @@ -85,7 +92,8 @@      openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_pvc_size }}"      openshift_logging_elasticsearch_replica_count: "{{ openshift_logging_es_cluster_size | int }}" -    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type }}" +    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type | default('pvc' if outer_item.0.volumes['elasticsearch-storage'].persistentVolumeClaim is defined else 'hostmount' if outer_item.0.volumes['elasticsearch-storage'].hostPath is defined else 'emptydir' if outer_item.0.volumes['elasticsearch-storage'].emptyDir is defined else default_elasticsearch_storage_type) }}" +    openshift_logging_elasticsearch_hostmount_path: "{{ outer_item.0.volumes['elasticsearch-storage'].hostPath.path if outer_item.0.volumes['elasticsearch-storage'].hostPath is defined else '' }}"      openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_pv_selector }}"      openshift_logging_elasticsearch_pvc_storage_class_name: "{{ openshift_logging_es_pvc_storage_class_name | default() }}"      openshift_logging_elasticsearch_nodeselector: "{{ openshift_logging_es_nodeselector if outer_item.0.nodeSelector | default(None) is none else outer_item.0.nodeSelector }}" @@ -112,7 +120,7 @@      openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_pvc_size }}"      openshift_logging_elasticsearch_replica_count: "{{ openshift_logging_es_cluster_size | int }}" -    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type }}" +    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type | default(default_elasticsearch_storage_type) }}"      openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_pv_selector }}"      openshift_logging_elasticsearch_pvc_storage_class_name: "{{ openshift_logging_es_pvc_storage_class_name | default() }}" @@ -133,7 +141,7 @@    when: openshift_logging_es_ops_pvc_prefix == ""  - set_fact: -    elasticsearch_storage_type: "{{ openshift_logging_elasticsearch_storage_type | default('pvc' if ( openshift_logging_es_ops_pvc_dynamic | bool or openshift_hosted_logging_storage_kind | default('') == 'nfs' or openshift_logging_es_ops_pvc_size | length > 0)  else 'emptydir') }}" +    default_elasticsearch_storage_type: "{{ 'pvc' if ( openshift_logging_es_ops_pvc_dynamic | bool or openshift_logging_storage_kind | default('') == 'nfs' or openshift_logging_es_ops_pvc_size | length > 0)  else 'emptydir' }}"    when:    - openshift_logging_use_ops | bool @@ -147,7 +155,8 @@      openshift_logging_elasticsearch_ops_deployment: true      openshift_logging_elasticsearch_replica_count: "{{ openshift_logging_es_ops_cluster_size | int }}" -    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type }}" +    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type | default('pvc' if outer_item.0.volumes['elasticsearch-storage'].persistentVolumeClaim is defined else 'hostmount' if outer_item.0.volumes['elasticsearch-storage'].hostPath is defined else 'emptydir' if outer_item.0.volumes['elasticsearch-storage'].emptyDir is defined else default_elasticsearch_storage_type) }}" +    openshift_logging_elasticsearch_hostmount_path: "{{ outer_item.0.volumes['elasticsearch-storage'].hostPath.path if outer_item.0.volumes['elasticsearch-storage'].hostPath is defined else '' }}"      openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_ops_pvc_size }}"      openshift_logging_elasticsearch_pvc_dynamic: "{{ openshift_logging_es_ops_pvc_dynamic }}"      openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_ops_pv_selector }}" @@ -189,7 +198,7 @@      openshift_logging_elasticsearch_ops_deployment: true      openshift_logging_elasticsearch_replica_count: "{{ openshift_logging_es_ops_cluster_size | int }}" -    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type }}" +    openshift_logging_elasticsearch_storage_type: "{{ elasticsearch_storage_type | default(default_elasticsearch_storage_type) }}"      openshift_logging_elasticsearch_pvc_size: "{{ openshift_logging_es_ops_pvc_size }}"      openshift_logging_elasticsearch_pvc_dynamic: "{{ openshift_logging_es_ops_pvc_dynamic }}"      openshift_logging_elasticsearch_pvc_pv_selector: "{{ openshift_logging_es_ops_pv_selector }}" diff --git a/roles/openshift_management/defaults/main.yml b/roles/openshift_management/defaults/main.yml index b5e234b7f..57bc97e3e 100644 --- a/roles/openshift_management/defaults/main.yml +++ b/roles/openshift_management/defaults/main.yml @@ -15,6 +15,8 @@ openshift_management_pod_rollout_retries: 30  #  # Choose 'miq-template' for a podified database install  # Choose 'miq-template-ext-db' for an external database install +# TODO: Swap this var declaration once CFME is fully supported +#openshift_management_app_template: "{{ 'cfme-template' if openshift_deployment_type == 'openshift-enterprise' else 'miq-template' }}"  openshift_management_app_template: miq-template  # If you are using the miq-template-ext-db template then you must add  # the required database parameters to the diff --git a/roles/openshift_management/tasks/accounts.yml b/roles/openshift_management/tasks/accounts.yml index e45ea8d43..80318fec0 100644 --- a/roles/openshift_management/tasks/accounts.yml +++ b/roles/openshift_management/tasks/accounts.yml @@ -5,14 +5,14 @@    oc_serviceaccount:      namespace: "{{ openshift_management_project }}"      state: present -    name: "{{ openshift_management_flavor_short }}{{ item.name }}" +    name: "{{ __openshift_management_flavor_short }}{{ item.name }}"    with_items:      - "{{ __openshift_system_account_sccs }}"  - name: Ensure the CFME system accounts have all the required SCCs    oc_adm_policy_user:      namespace: "{{ openshift_management_project }}" -    user: "system:serviceaccount:{{ openshift_management_project }}:{{ openshift_management_flavor_short }}{{ item.name }}" +    user: "system:serviceaccount:{{ openshift_management_project }}:{{ __openshift_management_flavor_short }}{{ item.name }}"      resource_kind: scc      resource_name: "{{ item.resource_name }}"    with_items: @@ -21,7 +21,7 @@  - name: Ensure the CFME system accounts have the required roles    oc_adm_policy_user:      namespace: "{{ openshift_management_project }}" -    user: "system:serviceaccount:{{ openshift_management_project }}:{{ openshift_management_flavor_short }}{{ item.name }}" +    user: "system:serviceaccount:{{ openshift_management_project }}:{{ __openshift_management_flavor_short }}{{ item.name }}"      resource_kind: role      resource_name: "{{ item.resource_name }}"    with_items: diff --git a/roles/openshift_management/tasks/main.yml b/roles/openshift_management/tasks/main.yml index c4b204b98..5209eba56 100644 --- a/roles/openshift_management/tasks/main.yml +++ b/roles/openshift_management/tasks/main.yml @@ -71,15 +71,15 @@  # CREATE APP  - name: Note the correct ext-db template name    set_fact: -    openshift_management_template_name: "{{ openshift_management_flavor }}-ext-db" +    openshift_management_template_name: "{{ __openshift_management_flavor }}-ext-db"    when: -    - openshift_management_app_template in ['miq-template-ext-db', 'cfme-template-ext-db'] +    - __openshift_management_use_ext_db  - name: Note the correct podified db template name    set_fact: -    openshift_management_template_name: "{{ openshift_management_flavor }}" +    openshift_management_template_name: "{{ __openshift_management_flavor }}"    when: -    - openshift_management_app_template in ['miq-template', 'cfme-template'] +    - not __openshift_management_use_ext_db  - name: Ensure the Management App is created    oc_process: @@ -89,7 +89,7 @@      params: "{{ openshift_management_template_parameters }}"  - name: Wait for the app to come up. May take several minutes, 30s check intervals, {{ openshift_management_pod_rollout_retries }} retries -  command: "oc logs {{ openshift_management_flavor }}-0 -n {{ openshift_management_project }}" +  command: "oc logs {{ __openshift_management_flavor }}-0 -n {{ openshift_management_project }}"    register: app_seeding_logs    until: app_seeding_logs.stdout.find('Server starting complete') != -1    delay: 30 diff --git a/roles/openshift_management/tasks/storage/create_nfs_pvs.yml b/roles/openshift_management/tasks/storage/create_nfs_pvs.yml index d1b9a8d5c..1f8cac6c6 100644 --- a/roles/openshift_management/tasks/storage/create_nfs_pvs.yml +++ b/roles/openshift_management/tasks/storage/create_nfs_pvs.yml @@ -12,7 +12,7 @@    when:      - openshift_management_template_parameters.APPLICATION_VOLUME_CAPACITY is not defined -- when: openshift_management_app_template in ['miq-template', 'cfme-template'] +- when: not __openshift_management_use_ext_db    block:      - name: Note the DB PV Size from Template Parameters        set_fact: @@ -31,7 +31,7 @@      namespace: "{{ openshift_management_project }}"      state: list      kind: pv -    name: "{{ openshift_management_flavor_short }}-app" +    name: "{{ __openshift_management_flavor_short }}-app"    register: miq_app_pv_check  - name: Check if the Management DB PV has been created @@ -39,15 +39,15 @@      namespace: "{{ openshift_management_project }}"      state: list      kind: pv -    name: "{{ openshift_management_flavor_short }}-db" +    name: "{{ __openshift_management_flavor_short }}-db"    register: miq_db_pv_check    when: -    - openshift_management_app_template in ['miq-template', 'cfme-template'] +    - not __openshift_management_use_ext_db  - name: Ensure the Management App PV is created    oc_process:      namespace: "{{ openshift_management_project }}" -    template_name: "{{ openshift_management_flavor }}-app-pv" +    template_name: "{{ __openshift_management_flavor }}-app-pv"      create: True      params:        PV_SIZE: "{{ openshift_management_app_pv_size }}" @@ -58,12 +58,12 @@  - name: Ensure the Management DB PV is created    oc_process:      namespace: "{{ openshift_management_project }}" -    template_name: "{{ openshift_management_flavor }}-db-pv" +    template_name: "{{ __openshift_management_flavor }}-db-pv"      create: True      params:        PV_SIZE: "{{ openshift_management_db_pv_size }}"        BASE_PATH: "{{ openshift_management_storage_nfs_base_dir }}"        NFS_HOST: "{{ openshift_management_nfs_server }}"    when: -    - openshift_management_app_template in ['miq-template', 'cfme-template'] +    - not __openshift_management_use_ext_db      - miq_db_pv_check.results.results == [{}] diff --git a/roles/openshift_management/tasks/storage/nfs.yml b/roles/openshift_management/tasks/storage/nfs.yml index 9e3a4d43a..4a00efb1d 100644 --- a/roles/openshift_management/tasks/storage/nfs.yml +++ b/roles/openshift_management/tasks/storage/nfs.yml @@ -17,8 +17,8 @@          tasks_from: create_export        vars:          l_nfs_base_dir: "{{ openshift_management_storage_nfs_base_dir }}" -        l_nfs_export_config: "{{ openshift_management_flavor_short }}" -        l_nfs_export_name: "{{ openshift_management_flavor_short }}-app" +        l_nfs_export_config: "{{ __openshift_management_flavor_short }}" +        l_nfs_export_name: "{{ __openshift_management_flavor_short }}-app"          l_nfs_options: "*(rw,no_root_squash,no_wdelay)"      - name: Create the DB export @@ -27,10 +27,10 @@          tasks_from: create_export        vars:          l_nfs_base_dir: "{{ openshift_management_storage_nfs_base_dir }}" -        l_nfs_export_config: "{{ openshift_management_flavor_short }}" -        l_nfs_export_name: "{{ openshift_management_flavor_short }}-db" +        l_nfs_export_config: "{{ __openshift_management_flavor_short }}" +        l_nfs_export_name: "{{ __openshift_management_flavor_short }}-db"          l_nfs_options: "*(rw,no_root_squash,no_wdelay)"        when: -        - openshift_management_app_template in ['miq-template', 'cfme-template'] +        - not __openshift_management_use_ext_db    delegate_to: "{{ openshift_management_nfs_server }}" diff --git a/roles/openshift_management/tasks/template.yml b/roles/openshift_management/tasks/template.yml index 9f97cdcb9..f40af7349 100644 --- a/roles/openshift_management/tasks/template.yml +++ b/roles/openshift_management/tasks/template.yml @@ -13,59 +13,59 @@  ######################################################################  # STANDARD PODIFIED DATABASE TEMPLATE -- when: openshift_management_app_template in ['miq-template', 'cfme-template'] +- when: not __openshift_management_use_ext_db    block:    - name: Check if the Management Server template has been created already      oc_obj:        namespace: "{{ openshift_management_project }}"        state: list        kind: template -      name: "{{ openshift_management_flavor }}" +      name: "{{ __openshift_management_flavor }}"      register: miq_server_check    - when: miq_server_check.results.results == [{}]      block:      - name: Copy over Management Server template        copy: -        src: "templates/{{ openshift_management_flavor }}/{{ openshift_management_flavor_short }}-template.yaml" +        src: "templates/{{ __openshift_management_flavor }}/{{ __openshift_management_flavor_short }}-template.yaml"          dest: "{{ template_dir }}/"      - name: Ensure Management Server Template is created        oc_obj:          namespace: "{{ openshift_management_project }}" -        name: "{{ openshift_management_flavor }}" +        name: "{{ __openshift_management_flavor }}"          state: present          kind: template          files: -        - "{{ template_dir }}/{{ openshift_management_flavor_short }}-template.yaml" +        - "{{ template_dir }}/{{ __openshift_management_flavor_short }}-template.yaml"  ######################################################################  # EXTERNAL DATABASE TEMPLATE -- when: openshift_management_app_template in ['miq-template-ext-db', 'cfme-template-ext-db'] +- when: __openshift_management_use_ext_db    block:    - name: Check if the Management Ext-DB Server template has been created already      oc_obj:        namespace: "{{ openshift_management_project }}"        state: list        kind: template -      name: "{{ openshift_management_flavor }}-ext-db" +      name: "{{ __openshift_management_flavor }}-ext-db"      register: miq_ext_db_server_check    - when: miq_ext_db_server_check.results.results == [{}]      block:      - name: Copy over Management Ext-DB Server template        copy: -        src: "templates/{{ openshift_management_flavor }}/{{openshift_management_flavor_short}}-template-ext-db.yaml" +        src: "templates/{{ __openshift_management_flavor }}/{{__openshift_management_flavor_short}}-template-ext-db.yaml"          dest: "{{ template_dir }}/"      - name: Ensure Management Ext-DB Server Template is created        oc_obj:          namespace: "{{ openshift_management_project }}" -        name: "{{ openshift_management_flavor }}-ext-db" +        name: "{{ __openshift_management_flavor }}-ext-db"          state: present          kind: template          files: -        - "{{ template_dir }}/{{ openshift_management_flavor_short }}-template-ext-db.yaml" +        - "{{ template_dir }}/{{ __openshift_management_flavor_short }}-template-ext-db.yaml"  # End app template creation.  ###################################################################### @@ -79,50 +79,50 @@      namespace: "{{ openshift_management_project }}"      state: list      kind: template -    name: "{{ openshift_management_flavor }}-app-pv" +    name: "{{ __openshift_management_flavor }}-app-pv"    register: miq_app_pv_check  - when: miq_app_pv_check.results.results == [{}]    block:    - name: Copy over Management App PV template      copy: -      src: "templates/{{ openshift_management_flavor }}/{{ openshift_management_flavor_short }}-pv-server-example.yaml" +      src: "templates/{{ __openshift_management_flavor }}/{{ __openshift_management_flavor_short }}-pv-server-example.yaml"        dest: "{{ template_dir }}/"    - name: Ensure Management App PV Template is created      oc_obj:        namespace: "{{ openshift_management_project }}" -      name: "{{ openshift_management_flavor }}-app-pv" +      name: "{{ __openshift_management_flavor }}-app-pv"        state: present        kind: template        files: -      - "{{ template_dir }}/{{ openshift_management_flavor_short }}-pv-server-example.yaml" +      - "{{ template_dir }}/{{ __openshift_management_flavor_short }}-pv-server-example.yaml"  #---------------------------------------------------------------------  # Required for database if the installation is fully podified -- when: openshift_management_app_template in ['miq-template', 'cfme-template'] +- when: not __openshift_management_use_ext_db    block:    - name: Check if the Management DB PV template has been created already      oc_obj:        namespace: "{{ openshift_management_project }}"        state: list        kind: template -      name: "{{ openshift_management_flavor }}-db-pv" +      name: "{{ __openshift_management_flavor }}-db-pv"      register: miq_db_pv_check    - when: miq_db_pv_check.results.results == [{}]      block:      - name: Copy over Management DB PV template        copy: -        src: "templates/{{ openshift_management_flavor }}/{{ openshift_management_flavor_short }}-pv-db-example.yaml" +        src: "templates/{{ __openshift_management_flavor }}/{{ __openshift_management_flavor_short }}-pv-db-example.yaml"          dest: "{{ template_dir }}/"      - name: Ensure Management DB PV Template is created        oc_obj:          namespace: "{{ openshift_management_project }}" -        name: "{{ openshift_management_flavor }}-db-pv" +        name: "{{ __openshift_management_flavor }}-db-pv"          state: present          kind: template          files: -        - "{{ template_dir }}/{{ openshift_management_flavor_short }}-pv-db-example.yaml" +        - "{{ template_dir }}/{{ __openshift_management_flavor_short }}-pv-db-example.yaml" diff --git a/roles/openshift_management/tasks/validate.yml b/roles/openshift_management/tasks/validate.yml index b22f36a4f..2dc895190 100644 --- a/roles/openshift_management/tasks/validate.yml +++ b/roles/openshift_management/tasks/validate.yml @@ -100,4 +100,4 @@        'openshift_management_template_parameters'"    with_items: "{{ __openshift_management_required_db_conn_params }}"    when: -    - openshift_management_app_template in ['miq-template-ext-db', 'cfme-template-ext-db'] +    - __openshift_management_use_ext_db diff --git a/roles/openshift_management/vars/main.yml b/roles/openshift_management/vars/main.yml index da3ad0af7..d7b18df3a 100644 --- a/roles/openshift_management/vars/main.yml +++ b/roles/openshift_management/vars/main.yml @@ -30,14 +30,18 @@ __openshift_management_db_parameters:    - DATABASE_PORT    - DATABASE_NAME -# # Commented out until we can support both CFME and MIQ -# # openshift_management_flavor: "{{ 'cloudforms' if openshift_deployment_type == 'openshift-enterprise' else 'manageiq' }}" -#openshift_management_flavor: cloudforms -openshift_management_flavor: manageiq -# TODO: Make this conditional as well based on the prior variable -# # openshift_management_flavor_short: "{{ 'cfme' if openshift_deployment_type == 'openshift-enterprise' else 'miq' }}" -# openshift_management_flavor_short: cfme -openshift_management_flavor_short: miq +__openshift_management_flavors: +  miq: +    short: miq +    long: manageiq +  cfme: +    short: cfme +    long: cloudforms + +__openshift_management_flavor: "{{ __openshift_management_flavors[openshift_management_app_template.split('-')[0]]['long'] }}" +__openshift_management_flavor_short: "{{ __openshift_management_flavors[openshift_management_app_template.split('-')[0]]['short'] }}" + +__openshift_management_use_ext_db: "{{ true if 'ext-db' in openshift_management_app_template else false }}"  ######################################################################  # ACCOUNTING diff --git a/roles/openshift_metrics/defaults/main.yaml b/roles/openshift_metrics/defaults/main.yaml index 8da74430f..293d8f451 100644 --- a/roles/openshift_metrics/defaults/main.yaml +++ b/roles/openshift_metrics/defaults/main.yaml @@ -54,7 +54,7 @@ openshift_metrics_master_url: https://kubernetes.default.svc  openshift_metrics_node_id: nodename  openshift_metrics_project: openshift-infra -openshift_metrics_cassandra_pvc_prefix: "{{ openshift_metrics_storage_volume_name | default('metrics-cassandra') }}" +openshift_metrics_cassandra_pvc_prefix: metrics-cassandra  openshift_metrics_cassandra_pvc_access: "{{ openshift_metrics_storage_access_modes | default(['ReadWriteOnce']) }}"  openshift_metrics_hawkular_user_write_access: False diff --git a/roles/openshift_openstack/templates/docker-storage-setup-dm.j2 b/roles/openshift_openstack/templates/docker-storage-setup-dm.j2 index 32c6b5838..9015c561f 100644 --- a/roles/openshift_openstack/templates/docker-storage-setup-dm.j2 +++ b/roles/openshift_openstack/templates/docker-storage-setup-dm.j2 @@ -1,4 +1,8 @@ +{% if docker_storage_mountpoints is defined %} +DEVS="{{ docker_storage_mountpoints }}" +{% else %}  DEVS="{{ openshift_openstack_container_storage_setup.docker_dev }}" +{% endif %}  VG="{{ openshift_openstack_container_storage_setup.docker_vg }}"  DATA_SIZE="{{ openshift_openstack_container_storage_setup.docker_data_size }}"  EXTRA_DOCKER_STORAGE_OPTIONS="--storage-opt dm.basesize={{ openshift_openstack_container_storage_setup.docker_dm_basesize }}" diff --git a/roles/openshift_openstack/templates/docker-storage-setup-overlayfs.j2 b/roles/openshift_openstack/templates/docker-storage-setup-overlayfs.j2 index 1bf366bdc..917347073 100644 --- a/roles/openshift_openstack/templates/docker-storage-setup-overlayfs.j2 +++ b/roles/openshift_openstack/templates/docker-storage-setup-overlayfs.j2 @@ -1,4 +1,8 @@ +{% if docker_storage_mountpoints is defined %} +DEVS="{{ docker_storage_mountpoints }}" +{% else %}  DEVS="{{ openshift_openstack_container_storage_setup.docker_dev }}" +{% endif %}  VG="{{ openshift_openstack_container_storage_setup.docker_vg }}"  DATA_SIZE="{{ openshift_openstack_container_storage_setup.docker_data_size }}"  STORAGE_DRIVER=overlay2 diff --git a/roles/openshift_openstack/templates/heat_stack.yaml.j2 b/roles/openshift_openstack/templates/heat_stack.yaml.j2 index 8e7c6288a..1d3173022 100644 --- a/roles/openshift_openstack/templates/heat_stack.yaml.j2 +++ b/roles/openshift_openstack/templates/heat_stack.yaml.j2 @@ -418,6 +418,10 @@ resources:            protocol: tcp            port_range_min: 443            port_range_max: 443 +        - direction: ingress +          protocol: tcp +          port_range_min: 1936 +          port_range_max: 1936    cns-secgrp:      type: OS::Neutron::SecurityGroup diff --git a/roles/openshift_openstack/templates/heat_stack_server.yaml.j2 b/roles/openshift_openstack/templates/heat_stack_server.yaml.j2 index 29b09f3c9..9aeecfa74 100644 --- a/roles/openshift_openstack/templates/heat_stack_server.yaml.j2 +++ b/roles/openshift_openstack/templates/heat_stack_server.yaml.j2 @@ -261,11 +261,12 @@ resources:      properties:        size: { get_param: volume_size }        availability_zone: { get_param: availability_zone } +      metadata: +        purpose: openshift_docker_storage    volume_attachment:      type: OS::Cinder::VolumeAttachment      properties:        volume_id: { get_resource: cinder_volume }        instance_uuid: { get_resource: server } -      mountpoint: /dev/sdb  {% endif %} diff --git a/roles/openshift_provisioners/defaults/main.yaml b/roles/openshift_provisioners/defaults/main.yaml index a6f040831..34ba78404 100644 --- a/roles/openshift_provisioners/defaults/main.yaml +++ b/roles/openshift_provisioners/defaults/main.yaml @@ -1,7 +1,5 @@  ---  openshift_provisioners_install_provisioners: True -openshift_provisioners_image_prefix: docker.io/openshift/origin- -openshift_provisioners_image_version: latest  openshift_provisioners_efs: False  openshift_provisioners_efs_path: /persistentvolumes @@ -10,3 +8,11 @@ openshift_provisioners_efs_nodeselector: ""  openshift_provisioners_efs_supplementalgroup: '65534'  openshift_provisioners_project: openshift-infra + +openshift_provisioners_image_prefix_dict: +  origin: "docker.io/openshift/origin-" +  openshift-enterprise: "registry.access.redhat.com/openshift3/ose-" + +openshift_provisioners_image_version_dict: +  origin: "latest" +  openshift-enterprise: "{{ openshift_image_tag }}" diff --git a/roles/openshift_provisioners/tasks/main.yaml b/roles/openshift_provisioners/tasks/main.yaml index 4ba26b2b8..d00573b07 100644 --- a/roles/openshift_provisioners/tasks/main.yaml +++ b/roles/openshift_provisioners/tasks/main.yaml @@ -12,6 +12,11 @@    check_mode: no    tags: provisioners_init +- name: Set eventrouter image facts +  set_fact: +    openshift_provisioners_image_prefix: "{{ openshift_provisioners_image_prefix | default(openshift_provisioners_image_prefix_dict[openshift_deployment_type]) }}" +    openshift_provisioners_image_version: "{{ openshift_provisioners_image_version | default(openshift_provisioners_image_version_dict[openshift_deployment_type]) }}" +  - include_tasks: install_provisioners.yaml    when: openshift_provisioners_install_provisioners | default(false) | bool  | 
