diff options
Diffstat (limited to 'roles')
41 files changed, 303 insertions, 233 deletions
| diff --git a/roles/cockpit-ui/defaults/main.yml b/roles/cockpit-ui/defaults/main.yml new file mode 100644 index 000000000..b1696f1b8 --- /dev/null +++ b/roles/cockpit-ui/defaults/main.yml @@ -0,0 +1,3 @@ +--- +openshift_config_base: "/etc/origin" +openshift_master_config_dir: "{{ openshift.common.config_base | default(openshift_config_base) }}/master" diff --git a/roles/cockpit-ui/tasks/main.yml b/roles/cockpit-ui/tasks/main.yml index 0114498f8..244e2cc41 100644 --- a/roles/cockpit-ui/tasks/main.yml +++ b/roles/cockpit-ui/tasks/main.yml @@ -50,7 +50,9 @@        -n default      register: deploy_registry_console      changed_when: "'already exists' not in deploy_registry_console.stderr" -    failed_when: "'already exists' not in deploy_registry_console.stderr and deploy_registry_console.rc != 0" +    failed_when: +    - "'already exists' not in deploy_registry_console.stderr" +    - "deploy_registry_console.rc != 0"    - name: Delete temp directory      file: diff --git a/roles/docker/defaults/main.yml b/roles/docker/defaults/main.yml index 81f3ee9e4..274fd8603 100644 --- a/roles/docker/defaults/main.yml +++ b/roles/docker/defaults/main.yml @@ -4,3 +4,17 @@ docker_cli_auth_config_path: '/root/.docker'  # oreg_url is defined by user input.  oreg_host: "{{ oreg_url.split('/')[0] if (oreg_url is defined and '.' in oreg_url.split('/')[0]) else '' }}"  oreg_auth_credentials_replace: False + +openshift_docker_additional_registries: [] +openshift_docker_blocked_registries: [] +openshift_docker_insecure_registries: [] + +# The l2_docker_* variables convert csv strings to lists, if +# necessary.  These variables should be used in place of their respective +# openshift_docker_* counterparts to ensure the properly formatted lists are +# utilized. +l2_docker_additional_registries: "{% if openshift_docker_additional_registries is string %}{% if openshift_docker_additional_registries == '' %}[]{% elif ',' in openshift_docker_additional_registries %}{{ openshift_docker_additional_registries.split(',') | list }}{% else %}{{ [ openshift_docker_additional_registries ] }}{% endif %}{% else %}{{ openshift_docker_additional_registries }}{% endif %}" +l2_docker_blocked_registries: "{% if openshift_docker_blocked_registries is string %}{% if openshift_docker_blocked_registries == '' %}[]{% elif ',' in openshift_docker_blocked_registries %}{{ openshift_docker_blocked_registries.split(',') | list }}{% else %}{{ [ openshift_docker_blocked_registries ] }}{% endif %}{% else %}{{ openshift_docker_blocked_registries }}{% endif %}" +l2_docker_insecure_registries: "{% if openshift_docker_insecure_registries is string %}{% if openshift_docker_insecure_registries == '' %}[]{% elif ',' in openshift_docker_insecure_registries %}{{ openshift_docker_insecure_registries.split(',') | list }}{% else %}{{ [ openshift_docker_insecure_registries ] }}{% endif %}{% else %}{{ openshift_docker_insecure_registries }}{% endif %}" + +containers_registries_conf_path: /etc/containers/registries.conf diff --git a/roles/docker/tasks/package_docker.yml b/roles/docker/tasks/package_docker.yml index 16aea5067..0c5621259 100644 --- a/roles/docker/tasks/package_docker.yml +++ b/roles/docker/tasks/package_docker.yml @@ -53,22 +53,22 @@  - stat: path=/etc/sysconfig/docker    register: docker_check -- name: Set registry params +- name: Comment old registry params in /etc/sysconfig/docker    lineinfile:      dest: /etc/sysconfig/docker      regexp: '^{{ item.reg_conf_var }}=.*$' -    line: "{{ item.reg_conf_var }}='{{ item.reg_fact_val | oo_prepend_strings_in_list(item.reg_flag ~ ' ') | join(' ') }}'" -  when: item.reg_fact_val != '' and docker_check.stat.isreg is defined and docker_check.stat.isreg +    line: "#{{ item.reg_conf_var }}=''# Moved to {{ containers_registries_conf_path }}"    with_items:    - reg_conf_var: ADD_REGISTRY -    reg_fact_val: "{{ docker_additional_registries | default(None, true)}}" -    reg_flag: --add-registry    - reg_conf_var: BLOCK_REGISTRY -    reg_fact_val: "{{ docker_blocked_registries| default(None, true) }}" -    reg_flag: --block-registry    - reg_conf_var: INSECURE_REGISTRY -    reg_fact_val: "{{ docker_insecure_registries| default(None, true) }}" -    reg_flag: --insecure-registry +  notify: +  - restart docker + +- name: Place additional/blocked/insecure registies in /etc/containers/registries.conf +  template: +    dest: "{{ containers_registries_conf_path }}" +    src: registries.conf    notify:    - restart docker diff --git a/roles/docker/tasks/systemcontainer_crio.yml b/roles/docker/tasks/systemcontainer_crio.yml index e6fc2db06..5b02b72be 100644 --- a/roles/docker/tasks/systemcontainer_crio.yml +++ b/roles/docker/tasks/systemcontainer_crio.yml @@ -104,7 +104,7 @@      - name: Use RHEL based image when distribution is Red Hat        set_fact: -        l_crio_image_prepend: "registry.access.redhat.com" +        l_crio_image_prepend: "registry.access.redhat.com/openshift3"          l_crio_image_name: "cri-o"        when: ansible_distribution == "RedHat" diff --git a/roles/docker/templates/registries.conf b/roles/docker/templates/registries.conf new file mode 100644 index 000000000..c55dbd84f --- /dev/null +++ b/roles/docker/templates/registries.conf @@ -0,0 +1,46 @@ +# {{ ansible_managed }} +# This is a system-wide configuration file used to +# keep track of registries for various container backends. +# It adheres to YAML format and does not support recursive +# lists of registries. + +# The default location for this configuration file is /etc/containers/registries.conf. + +# The only valid categories are: 'registries', 'insecure_registies', +# and 'block_registries'. + + +#registries: +#  - registry.access.redhat.com + +{% if l2_docker_additional_registries %} +registries: +{% for reg in l2_docker_additional_registries %} +  - {{ reg }} +{% endfor %} +{% endif %} + +# If you need to access insecure registries, uncomment the section below +# and add the registries fully-qualified name. An insecure registry is one +# that does not have a valid SSL certificate or only does HTTP. +#insecure_registries: +#  - + +{% if l2_docker_insecure_registries %} +insecure_registries: +{% for reg in l2_docker_insecure_registries %} +  - {{ reg }} +{% endfor %} +{% endif %} + +# If you need to block pull access from a registry, uncomment the section below +# and add the registries fully-qualified name. +#block_registries: +# - + +{% if l2_docker_blocked_registries %} +block_registries: +{% for reg in l2_docker_blocked_registries %} +  - {{ reg }} +{% endfor %} +{% endif %} diff --git a/roles/nuage_master/templates/nuage-master-config-daemonset.j2 b/roles/nuage_master/templates/nuage-master-config-daemonset.j2 index 612d689c2..7be5d6743 100755 --- a/roles/nuage_master/templates/nuage-master-config-daemonset.j2 +++ b/roles/nuage_master/templates/nuage-master-config-daemonset.j2 @@ -62,16 +62,14 @@ spec:    selector:      matchLabels:        k8s-app: nuage-master-config +  updateStrategy: +    type: RollingUpdate    template:      metadata:        labels:          k8s-app: nuage-master-config      spec:        hostNetwork: true -      tolerations: -        - key: node-role.kubernetes.io/master -          effect: NoSchedule -          operator: Exists        nodeSelector:          install-monitor: "true"        containers: diff --git a/roles/nuage_master/templates/nuage-node-config-daemonset.j2 b/roles/nuage_master/templates/nuage-node-config-daemonset.j2 index 02e9a1563..6a1267d94 100755 --- a/roles/nuage_master/templates/nuage-node-config-daemonset.j2 +++ b/roles/nuage_master/templates/nuage-node-config-daemonset.j2 @@ -23,7 +23,7 @@ data:        # IP address and port number of master API server        masterApiServer: {{ api_server_url }}        # REST server URL  -      nuageMonRestServer: {{ nuage_mon_rest_server_url }} +      nuageMonRestServer: https://{{ openshift_master_cluster_hostname }}:{{ nuage_mon_rest_server_port }}        # Bridge name for the docker bridge        dockerBridgeName: docker0        # Certificate for connecting to the openshift monitor REST api @@ -32,11 +32,6 @@ data:        nuageMonClientKey: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/nuageMonClient.key        # CA certificate for verifying the master's rest server        nuageMonServerCA: {{ nuage_node_config_dsets_mount_dir }}/vsp-openshift/nuageMonCA.crt -      # Nuage vport mtu size -      interfaceMTU: {{ nuage_vport_mtu  }} -      # Logging level for the plugin -      # allowed options are: "dbg", "info", "warn", "err", "emer", "off" -      logLevel: 3    # This will generate the required Nuage CNI yaml configuration    cni_yaml_config: | @@ -72,10 +67,6 @@ spec:          k8s-app: nuage-cni-ds      spec:        hostNetwork: true -      tolerations: -        - key: node-role.kubernetes.io/master -          effect: NoSchedule -          operator: Exists        containers:          # This container installs Nuage CNI binaries          # and CNI network config file on each node. @@ -157,10 +148,6 @@ spec:          k8s-app: nuage-vrs-ds      spec:        hostNetwork: true -      tolerations: -        - key: node-role.kubernetes.io/master -          effect: NoSchedule -          operator: Exists        containers:          # This container installs Nuage VRS running as a          # container on each worker node diff --git a/roles/nuage_node/vars/main.yaml b/roles/nuage_node/vars/main.yaml index d8bfca62a..fdf01b7c2 100644 --- a/roles/nuage_node/vars/main.yaml +++ b/roles/nuage_node/vars/main.yaml @@ -24,4 +24,4 @@ cni_bin_dir: "/opt/cni/bin/"  nuage_plugin_crt_dir: /usr/share/vsp-openshift  openshift_atomic_node_config_file: /etc/sysconfig/{{ openshift.common.service_type }}-node -nuage_atomic_docker_additional_mounts: "DOCKER_ADDTL_BIND_MOUNTS=-v /var/usr/share/vsp-openshift:/var/usr/share/vsp-openshift -v /etc/default:/etc/default -v /var/run:/var/run -v /opt/cni/bin:/opt/cni/bin -v /etc/cni/net.d:/etc/cni/net.d" +nuage_atomic_docker_additional_mounts: "NUAGE_ADDTL_BIND_MOUNTS=-v /var/usr/share/vsp-openshift:/var/usr/share/vsp-openshift -v /etc/default:/etc/default -v /var/run:/var/run -v /opt/cni/bin:/opt/cni/bin -v /etc/cni/net.d:/etc/cni/net.d" diff --git a/roles/openshift_hosted/defaults/main.yml b/roles/openshift_hosted/defaults/main.yml index 712a2a591..c234c3740 100644 --- a/roles/openshift_hosted/defaults/main.yml +++ b/roles/openshift_hosted/defaults/main.yml @@ -1,14 +1,33 @@  --- +########## +# Common # +########## +openshift_hosted_infra_selector: "region=infra" +r_openshift_hosted_use_calico_default: "{{ openshift_use_calico | default(False) }}" +r_openshift_hosted_use_calico: "{{ r_openshift_hosted_use_calico_default }}" + +openshift_default_projects: +  default: +    default_node_selector: '' +  logging: +    default_node_selector: '' +  openshift-infra: +    default_node_selector: '' + +# openshift_additional_projects shares the same format as openshift_default_projects +openshift_additional_projects: {} + +openshift_config_base: "/etc/origin" +openshift_master_config_dir: "{{ openshift.common.config_base | default(openshift_config_base) }}/master" +openshift_cluster_domain: 'cluster.local' + +########## +# Router # +##########  r_openshift_hosted_router_firewall_enabled: "{{ os_firewall_enabled | default(True) }}"  r_openshift_hosted_router_use_firewalld: "{{ os_firewall_use_firewalld | default(False) }}" -r_openshift_hosted_registry_firewall_enabled: "{{ os_firewall_enabled | default(True) }}" -r_openshift_hosted_registry_use_firewalld: "{{ os_firewall_use_firewalld | default(False) }}" -  openshift_hosted_router_wait: "{{ not (openshift_master_bootstrap_enabled | default(False)) }}" -openshift_hosted_registry_wait: "{{ not (openshift_master_bootstrap_enabled | default(False)) }}" - -registry_volume_claim: 'registry-claim'  openshift_hosted_router_edits:  - key: spec.strategy.rollingParams.intervalSeconds @@ -36,20 +55,49 @@ openshift_hosted_routers:    certificate: "{{ openshift_hosted_router_certificate | default({}) }}"  openshift_hosted_router_certificate: {} -openshift_hosted_registry_cert_expire_days: 730  openshift_hosted_router_create_certificate: True  r_openshift_hosted_router_os_firewall_deny: []  r_openshift_hosted_router_os_firewall_allow: [] +############ +# Registry # +############ + +r_openshift_hosted_registry_firewall_enabled: "{{ os_firewall_enabled | default(True) }}" +r_openshift_hosted_registry_use_firewalld: "{{ os_firewall_use_firewalld | default(False) }}" + +openshift_hosted_registry_name: docker-registry +openshift_hosted_registry_wait: "{{ not (openshift_master_bootstrap_enabled | default(False)) }}" +registry_volume_claim: 'registry-claim' +openshift_hosted_registry_cert_expire_days: 730 +  r_openshift_hosted_registry_os_firewall_deny: []  r_openshift_hosted_registry_os_firewall_allow:  - service: Docker Registry Port    port: 5000/tcp    cond: "{{ r_openshift_hosted_use_calico }}" -# NOTE -# r_openshift_hosted_use_calico_default may be defined external to this role. -# openshift_use_calico, if defined, may affect other roles or play behavior. -r_openshift_hosted_use_calico_default: "{{ openshift_use_calico | default(False) }}" -r_openshift_hosted_use_calico: "{{ r_openshift_hosted_use_calico_default }}" +openshift_hosted_registry_serviceaccount: registry +openshift_hosted_registry_volumes: [] +openshift_hosted_registry_env_vars: {} + +# These edits are being specified only to prevent 'changed' on rerun +openshift_hosted_registry_edits: +- key: spec.strategy.rollingParams +  value: +    intervalSeconds: 1 +    maxSurge: "25%" +    maxUnavailable: "25%" +    timeoutSeconds: 600 +    updatePeriodSeconds: 1 +  action: put + +openshift_hosted_registry_force: +- False + +openshift_push_via_dns: False + +# NOTE: settting openshift_docker_hosted_registry_insecure may affect other roles +openshift_hosted_docker_registry_insecure_default: "{{ openshift_docker_hosted_registry_insecure | default(False) }}" +openshift_hosted_docker_registry_insecure: "{{ openshift_hosted_docker_registry_insecure_default }}" diff --git a/roles/openshift_hosted/meta/main.yml b/roles/openshift_hosted/meta/main.yml index 28fd396d6..1d70ef7eb 100644 --- a/roles/openshift_hosted/meta/main.yml +++ b/roles/openshift_hosted/meta/main.yml @@ -12,7 +12,6 @@ galaxy_info:    categories:    - cloud  dependencies: -- role: openshift_cli  - role: openshift_hosted_facts  - role: lib_openshift  - role: lib_os_firewall diff --git a/roles/openshift_hosted/tasks/create_projects.yml b/roles/openshift_hosted/tasks/create_projects.yml new file mode 100644 index 000000000..1b25d0c64 --- /dev/null +++ b/roles/openshift_hosted/tasks/create_projects.yml @@ -0,0 +1,14 @@ +--- +- name: Create default projects +  oc_project: +    name: "{{ item.key }}" +    node_selector: +    - "{{ item.value.default_node_selector }}" +  with_dict: "{{ openshift_default_projects }}" + +- name: Create additional projects +  oc_project: +    name: "{{ item.key }}" +    node_selector: +    - "{{ item.value.default_node_selector }}" +  with_dict: "{{ openshift_additional_projects }}" diff --git a/roles/openshift_hosted/tasks/router/firewall.yml b/roles/openshift_hosted/tasks/firewall.yml index ff90f3372..1eb2c92c8 100644 --- a/roles/openshift_hosted/tasks/router/firewall.yml +++ b/roles/openshift_hosted/tasks/firewall.yml @@ -8,7 +8,7 @@        protocol: "{{ item.port.split('/')[1] }}"        port: "{{ item.port.split('/')[0] }}"      when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_router_os_firewall_allow }}" +    with_items: "{{ l_openshift_hosted_fw_allow }}"    - name: Remove iptables rules      os_firewall_manage_iptables: @@ -17,9 +17,9 @@        protocol: "{{ item.port.split('/')[1] }}"        port: "{{ item.port.split('/')[0] }}"      when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_router_os_firewall_deny }}" +    with_items: "{{ l_openshift_hosted_fw_deny }}" -- when: r_openshift_hosted_router_firewall_enabled | bool and r_openshift_hosted_router_use_firewalld | bool +- when: l_openshift_hosted_firewall_enabled | bool and l_openshift_hosted_use_firewalld | bool    block:    - name: Add firewalld allow rules      firewalld: @@ -28,7 +28,7 @@        immediate: true        state: enabled      when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_router_os_firewall_allow }}" +    with_items: "{{ l_openshift_hosted_fw_allow }}"    - name: Remove firewalld allow rules      firewalld: @@ -37,4 +37,4 @@        immediate: true        state: disabled      when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_router_os_firewall_deny }}" +    with_items: "{{ l_openshift_hosted_fw_deny }}" diff --git a/roles/openshift_hosted/tasks/main.yml b/roles/openshift_hosted/tasks/main.yml index 6efe2f63c..d306adf42 100644 --- a/roles/openshift_hosted/tasks/main.yml +++ b/roles/openshift_hosted/tasks/main.yml @@ -1,13 +1,9 @@  --- -- name: Create projects -  oc_project: -    name: "{{ item.key }}" -    node_selector: -    - "{{ item.value.default_node_selector }}" -  with_dict: "{{ openshift_projects }}" - -- include: router/router.yml -  when: openshift_hosted_manage_router | default(true) | bool - -- include: registry/registry.yml -  when: openshift_hosted_manage_registry | default(true) | bool +# This role is intended to be used with include_role. +# include_role: +#   name:  openshift_hosted +#   tasks_from: "{{ item }}" +# with_items: +#   - create_projects.yml +#   - router.yml +#   - registry.yml diff --git a/roles/openshift_hosted/tasks/registry/registry.yml b/roles/openshift_hosted/tasks/registry.yml index 48f53aef8..f1aa9c5a8 100644 --- a/roles/openshift_hosted/tasks/registry/registry.yml +++ b/roles/openshift_hosted/tasks/registry.yml @@ -1,7 +1,11 @@  ---  - name: setup firewall    include: firewall.yml -  static: yes +  vars: +    l_openshift_hosted_firewall_enabled: "{{ r_openshift_hosted_registry_firewall_enabled }}" +    l_openshift_hosted_use_firewalld: "{{ r_openshift_hosted_registry_use_firewalld }}" +    l_openshift_hosted_fw_allow: "{{ r_openshift_hosted_registry_os_firewall_allow }}" +    l_openshift_hosted_fw_deny: "{{ r_openshift_hosted_registry_os_firewall_deny }}"  - when: openshift.hosted.registry.replicas | default(none) is none    block: @@ -36,30 +40,14 @@  - name: set openshift_hosted facts    set_fact:      openshift_hosted_registry_replicas: "{{ openshift.hosted.registry.replicas | default(l_default_replicas) }}" -    openshift_hosted_registry_name: docker-registry -    openshift_hosted_registry_serviceaccount: registry      openshift_hosted_registry_namespace: "{{ openshift.hosted.registry.namespace | default('default') }}"      openshift_hosted_registry_selector: "{{ openshift.hosted.registry.selector }}"      openshift_hosted_registry_images: "{{ openshift.hosted.registry.registryurl | default('openshift3/ose-${component}:${version}')}}" -    openshift_hosted_registry_volumes: [] -    openshift_hosted_registry_env_vars: {} -    openshift_hosted_registry_edits: -    # These edits are being specified only to prevent 'changed' on rerun -    - key: spec.strategy.rollingParams -      value: -        intervalSeconds: 1 -        maxSurge: "25%" -        maxUnavailable: "25%" -        timeoutSeconds: 600 -        updatePeriodSeconds: 1 -      action: put -    openshift_hosted_registry_force: -    - False  - name: Update registry environment variables when pushing via dns    set_fact:      openshift_hosted_registry_env_vars: "{{ openshift_hosted_registry_env_vars | combine({'OPENSHIFT_DEFAULT_REGISTRY':'docker-registry.default.svc:5000'}) }}" -  when: openshift_push_via_dns | default(false) | bool +  when: openshift_push_via_dns | bool  - name: Update registry proxy settings for dc/docker-registry    set_fact: @@ -137,36 +125,17 @@      edits: "{{ openshift_hosted_registry_edits }}"      force: "{{ True|bool in openshift_hosted_registry_force }}" -- when: openshift_hosted_registry_wait | bool -  block: -  - name: Ensure OpenShift registry correctly rolls out (best-effort today) -    command: | -      oc rollout status deploymentconfig {{ openshift_hosted_registry_name }} \ -                        --namespace {{ openshift_hosted_registry_namespace }} \ -                        --config {{ openshift.common.config_base }}/master/admin.kubeconfig -    async: 600 -    poll: 15 -    failed_when: false - -  - name: Determine the latest version of the OpenShift registry deployment -    command: | -      {{ openshift.common.client_binary }} get deploymentconfig {{ openshift_hosted_registry_name }} \ -             --namespace {{ openshift_hosted_registry_namespace }} \ -             --config {{ openshift.common.config_base }}/master/admin.kubeconfig \ -             -o jsonpath='{ .status.latestVersion }' -    register: openshift_hosted_registry_latest_version - -  - name: Sanity-check that the OpenShift registry rolled out correctly -    command: | -      {{ openshift.common.client_binary }} get replicationcontroller {{ openshift_hosted_registry_name }}-{{ openshift_hosted_registry_latest_version.stdout }} \ -             --namespace {{ openshift_hosted_registry_namespace }} \ -             --config {{ openshift.common.config_base }}/master/admin.kubeconfig \ -             -o jsonpath='{ .metadata.annotations.openshift\.io/deployment\.phase }' -    register: openshift_hosted_registry_rc_phase -    until: "'Running' not in openshift_hosted_registry_rc_phase.stdout" -    delay: 15 -    retries: 40 -    failed_when: "'Failed' in openshift_hosted_registry_rc_phase.stdout" +- name: setup registry list +  set_fact: +    r_openshift_hosted_registry_list: +    - name: "{{ openshift_hosted_registry_name }}" +      namespace: "{{ openshift_hosted_registry_namespace }}" + +- name: Wait for pod (Registry) +  include: wait_for_pod.yml +  vars: +    l_openshift_hosted_wait_for_pod: "{{ openshift_hosted_registry_wait }}" +    l_openshift_hosted_wfp_items: "{{ r_openshift_hosted_registry_list }}"  - include: storage/glusterfs.yml    when: diff --git a/roles/openshift_hosted/tasks/registry/firewall.yml b/roles/openshift_hosted/tasks/registry/firewall.yml deleted file mode 100644 index 775b7d6d7..000000000 --- a/roles/openshift_hosted/tasks/registry/firewall.yml +++ /dev/null @@ -1,40 +0,0 @@ ---- -- when: r_openshift_hosted_registry_firewall_enabled | bool and not r_openshift_hosted_registry_use_firewalld | bool -  block: -  - name: Add iptables allow rules -    os_firewall_manage_iptables: -      name: "{{ item.service }}" -      action: add -      protocol: "{{ item.port.split('/')[1] }}" -      port: "{{ item.port.split('/')[0] }}" -    when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_registry_os_firewall_allow }}" - -  - name: Remove iptables rules -    os_firewall_manage_iptables: -      name: "{{ item.service }}" -      action: remove -      protocol: "{{ item.port.split('/')[1] }}" -      port: "{{ item.port.split('/')[0] }}" -    when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_registry_os_firewall_deny }}" - -- when: r_openshift_hosted_registry_firewall_enabled | bool and r_openshift_hosted_registry_use_firewalld | bool -  block: -  - name: Add firewalld allow rules -    firewalld: -      port: "{{ item.port }}" -      permanent: true -      immediate: true -      state: enabled -    when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_registry_os_firewall_allow }}" - -  - name: Remove firewalld allow rules -    firewalld: -      port: "{{ item.port }}" -      permanent: true -      immediate: true -      state: disabled -    when: item.cond | default(True) -    with_items: "{{ r_openshift_hosted_registry_os_firewall_deny }}" diff --git a/roles/openshift_hosted/tasks/router/router.yml b/roles/openshift_hosted/tasks/router.yml index 2a42b5a7c..2aeecc943 100644 --- a/roles/openshift_hosted/tasks/router/router.yml +++ b/roles/openshift_hosted/tasks/router.yml @@ -1,7 +1,11 @@  ---  - name: setup firewall    include: firewall.yml -  static: yes +  vars: +    l_openshift_hosted_firewall_enabled: "{{ r_openshift_hosted_router_firewall_enabled }}" +    l_openshift_hosted_use_firewalld: "{{ r_openshift_hosted_router_use_firewalld }}" +    l_openshift_hosted_fw_allow: "{{ r_openshift_hosted_router_os_firewall_allow }}" +    l_openshift_hosted_fw_deny: "{{ r_openshift_hosted_router_os_firewall_deny }}"  - name: Retrieve list of openshift nodes matching router selector    oc_obj: @@ -82,7 +86,7 @@      replicas: "{{ item.replicas }}"      namespace: "{{ item.namespace | default('default') }}"      # This option is not yet implemented -    # force_subdomain: "{{ openshift.hosted.router.force_subdomain | default(none) }}" +    # force_subdomain: "{{ openshift_hosted_router_force_subdomain | default(none) }}"      service_account: "{{ item.serviceaccount | default('router') }}"      selector: "{{ item.selector | default(none) }}"      images: "{{ item.images | default(omit) }}" @@ -94,38 +98,8 @@      stats_port: "{{ item.stats_port }}"    with_items: "{{ openshift_hosted_routers }}" -- when: openshift_hosted_router_wait | bool -  block: -  - name: Ensure OpenShift router correctly rolls out (best-effort today) -    command: | -      {{ openshift.common.client_binary }} rollout status deploymentconfig {{ item.name }} \ -                        --namespace {{ item.namespace | default('default') }} \ -                        --config {{ openshift.common.config_base }}/master/admin.kubeconfig -    async: 600 -    poll: 15 -    with_items: "{{ openshift_hosted_routers }}" -    failed_when: false - -  - name: Determine the latest version of the OpenShift router deployment -    command: | -      {{ openshift.common.client_binary }} get deploymentconfig {{ item.name }} \ -             --namespace {{ item.namespace }} \ -             --config {{ openshift.common.config_base }}/master/admin.kubeconfig \ -             -o jsonpath='{ .status.latestVersion }' -    register: openshift_hosted_routers_latest_version -    with_items: "{{ openshift_hosted_routers }}" - -  - name: Poll for OpenShift router deployment success -    command: | -      {{ openshift.common.client_binary }} get replicationcontroller {{ item.0.name }}-{{ item.1.stdout }} \ -             --namespace {{ item.0.namespace }} \ -             --config {{ openshift.common.config_base }}/master/admin.kubeconfig \ -             -o jsonpath='{ .metadata.annotations.openshift\.io/deployment\.phase }' -    register: openshift_hosted_router_rc_phase -    until: "'Running' not in openshift_hosted_router_rc_phase.stdout" -    delay: 15 -    retries: 40 -    failed_when: "'Failed' in openshift_hosted_router_rc_phase.stdout" -    with_together: -    - "{{ openshift_hosted_routers }}" -    - "{{ openshift_hosted_routers_latest_version.results }}" +- name: Wait for pod (Routers) +  include: wait_for_pod.yml +  vars: +    l_openshift_hosted_wait_for_pod: "{{ openshift_hosted_router_wait }}" +    l_openshift_hosted_wfp_items: "{{ openshift_hosted_routers }}" diff --git a/roles/openshift_hosted/tasks/registry/secure.yml b/roles/openshift_hosted/tasks/secure.yml index 434b679df..0da8ac8a7 100644 --- a/roles/openshift_hosted/tasks/registry/secure.yml +++ b/roles/openshift_hosted/tasks/secure.yml @@ -38,11 +38,11 @@      - "{{ docker_registry_service.results.clusterip }}"      - "{{ docker_registry_route.results[0].spec.host }}"      - "{{ openshift_hosted_registry_name }}.default.svc" -    - "{{ openshift_hosted_registry_name }}.default.svc.{{ openshift.common.dns_domain }}" +    - "{{ openshift_hosted_registry_name }}.default.svc.{{ openshift_cluster_domain }}"      - "{{ openshift_hosted_registry_routehost }}"      cert: "{{ docker_registry_cert_path }}"      key: "{{ docker_registry_key_path }}" -    expire_days: "{{ openshift_hosted_registry_cert_expire_days if openshift_version | oo_version_gte_3_5_or_1_5(openshift.common.deployment_type) | bool else omit }}" +    expire_days: "{{ openshift_hosted_registry_cert_expire_days if openshift_version | oo_version_gte_3_5_or_1_5(openshift_deployment_type) | bool else omit }}"    register: registry_self_cert    when: docker_registry_self_signed diff --git a/roles/openshift_hosted/tasks/registry/secure/passthrough.yml b/roles/openshift_hosted/tasks/secure/passthrough.yml index 5b44fda10..5b44fda10 100644 --- a/roles/openshift_hosted/tasks/registry/secure/passthrough.yml +++ b/roles/openshift_hosted/tasks/secure/passthrough.yml diff --git a/roles/openshift_hosted/tasks/registry/secure/reencrypt.yml b/roles/openshift_hosted/tasks/secure/reencrypt.yml index 48e5b0fba..48e5b0fba 100644 --- a/roles/openshift_hosted/tasks/registry/secure/reencrypt.yml +++ b/roles/openshift_hosted/tasks/secure/reencrypt.yml diff --git a/roles/openshift_hosted/tasks/registry/storage/glusterfs.yml b/roles/openshift_hosted/tasks/storage/glusterfs.yml index c2954fde1..c2954fde1 100644 --- a/roles/openshift_hosted/tasks/registry/storage/glusterfs.yml +++ b/roles/openshift_hosted/tasks/storage/glusterfs.yml diff --git a/roles/openshift_hosted/tasks/registry/storage/object_storage.yml b/roles/openshift_hosted/tasks/storage/object_storage.yml index 8553a8098..8553a8098 100644 --- a/roles/openshift_hosted/tasks/registry/storage/object_storage.yml +++ b/roles/openshift_hosted/tasks/storage/object_storage.yml diff --git a/roles/openshift_hosted/tasks/registry/storage/registry_config.j2 b/roles/openshift_hosted/tasks/storage/registry_config.j2 index f3e82ad4f..f3e82ad4f 120000 --- a/roles/openshift_hosted/tasks/registry/storage/registry_config.j2 +++ b/roles/openshift_hosted/tasks/storage/registry_config.j2 diff --git a/roles/openshift_hosted/tasks/registry/storage/s3.yml b/roles/openshift_hosted/tasks/storage/s3.yml index 318969885..8e905d905 100644 --- a/roles/openshift_hosted/tasks/registry/storage/s3.yml +++ b/roles/openshift_hosted/tasks/storage/s3.yml @@ -3,7 +3,7 @@    assert:      that:      - openshift.hosted.registry.storage.s3.bucket | default(none) is not none -    - openshift.hosted.registry.storage.s3.region | default(none) is not none +    - openshift.hosted.registry.storage.s3.bucket | default(none) is not none      msg: |        When using S3 storage, the following variables are required:          openshift_hosted_registry_storage_s3_bucket diff --git a/roles/openshift_hosted/tasks/wait_for_pod.yml b/roles/openshift_hosted/tasks/wait_for_pod.yml new file mode 100644 index 000000000..056c79334 --- /dev/null +++ b/roles/openshift_hosted/tasks/wait_for_pod.yml @@ -0,0 +1,36 @@ +--- +- when: l_openshift_hosted_wait_for_pod | default(False) | bool +  block: +  - name: Ensure OpenShift pod correctly rolls out (best-effort today) +    command: | +      {{ openshift.common.client_binary }} rollout status deploymentconfig {{ item.name }} \ +                        --namespace {{ item.namespace | default('default') }} \ +                        --config {{ openshift_master_config_dir }}/admin.kubeconfig +    async: 600 +    poll: 15 +    with_items: "{{ l_openshift_hosted_wfp_items }}" +    failed_when: false + +  - name: Determine the latest version of the OpenShift pod deployment +    command: | +      {{ openshift.common.client_binary }} get deploymentconfig {{ item.name }} \ +             --namespace {{ item.namespace }} \ +             --config {{ openshift_master_config_dir }}/admin.kubeconfig \ +             -o jsonpath='{ .status.latestVersion }' +    register: l_openshift_hosted_wfp_latest_version +    with_items: "{{ l_openshift_hosted_wfp_items }}" + +  - name: Poll for OpenShift pod deployment success +    command: | +      {{ openshift.common.client_binary }} get replicationcontroller {{ item.0.name }}-{{ item.1.stdout }} \ +             --namespace {{ item.0.namespace }} \ +             --config {{ openshift_master_config_dir }}/admin.kubeconfig \ +             -o jsonpath='{ .metadata.annotations.openshift\.io/deployment\.phase }' +    register: openshift_hosted_wfp_rc_phase +    until: "'Running' not in openshift_hosted_wfp_rc_phase.stdout" +    delay: 15 +    retries: 40 +    failed_when: "'Failed' in openshift_hosted_wfp_rc_phase.stdout" +    with_together: +    - "{{ l_openshift_hosted_wfp_items }}" +    - "{{ l_openshift_hosted_wfp_latest_version.results }}" diff --git a/roles/openshift_hosted/templates/registry_config.j2 b/roles/openshift_hosted/templates/registry_config.j2 index 61da452de..eae8b328e 100644 --- a/roles/openshift_hosted/templates/registry_config.j2 +++ b/roles/openshift_hosted/templates/registry_config.j2 @@ -70,10 +70,8 @@ auth:    openshift:      realm: openshift  middleware: -{% if openshift.common.version_gte_3_3_or_1_3 | bool %}    registry:    - name: openshift -{% endif %}    repository:    - name: openshift      options: @@ -87,7 +85,7 @@ middleware:        baseurl: {{ openshift_hosted_registry_storage_s3_cloudfront_baseurl }}        privatekey: /etc/origin/cloudfront.pem        keypairid: {{ openshift_hosted_registry_storage_s3_cloudfront_keypairid }} -{% elif openshift.common.version_gte_3_3_or_1_3 | bool %} +{% else %}    storage:    - name: openshift  {% endif -%} diff --git a/roles/openshift_hosted/vars/main.yml b/roles/openshift_hosted/vars/main.yml index 0821d0e7e..0e756d9e1 100644 --- a/roles/openshift_hosted/vars/main.yml +++ b/roles/openshift_hosted/vars/main.yml @@ -1,13 +1,2 @@  --- -openshift_master_config_dir: "{{ openshift.common.config_base }}/master"  registry_config_secret_name: registry-config - -openshift_default_projects: -  default: -    default_node_selector: '' -  logging: -    default_node_selector: '' -  openshift-infra: -    default_node_selector: '' - -openshift_projects: "{{ openshift_additional_projects | default({}) | oo_merge_dicts(openshift_default_projects) }}" diff --git a/roles/openshift_logging/README.md b/roles/openshift_logging/README.md index f283261c4..de3d19858 100644 --- a/roles/openshift_logging/README.md +++ b/roles/openshift_logging/README.md @@ -62,7 +62,6 @@ When `openshift_logging_install_logging` is set to `False` the `openshift_loggin  - `openshift_logging_fluentd_nodeselector`: The node selector that the Fluentd daemonset uses to determine where to deploy to. Defaults to '"logging-infra-fluentd": "true"'.  - `openshift_logging_fluentd_cpu_limit`: The CPU limit for Fluentd pods. Defaults to '100m'.  - `openshift_logging_fluentd_memory_limit`: The memory limit for Fluentd pods. Defaults to '512Mi'. -- `openshift_logging_fluentd_es_copy`: Whether or not to use the ES_COPY feature for Fluentd (DEPRECATED). Defaults to 'False'.  - `openshift_logging_fluentd_use_journal`: *DEPRECATED - DO NOT USE* Fluentd will automatically detect whether or not Docker is using the journald log driver.  - `openshift_logging_fluentd_journal_read_from_head`: If empty, Fluentd will use its internal default, which is false.  - `openshift_logging_fluentd_hosts`: List of nodes that should be labeled for Fluentd to be deployed to. Defaults to ['--all']. diff --git a/roles/openshift_logging/defaults/main.yml b/roles/openshift_logging/defaults/main.yml index 6699e2062..db4262fed 100644 --- a/roles/openshift_logging/defaults/main.yml +++ b/roles/openshift_logging/defaults/main.yml @@ -74,7 +74,6 @@ openshift_logging_kibana_ops_ca: ""  openshift_logging_fluentd_nodeselector: {'logging-infra-fluentd': 'true'}  openshift_logging_fluentd_cpu_limit: 100m  openshift_logging_fluentd_memory_limit: 512Mi -openshift_logging_fluentd_es_copy: false  openshift_logging_fluentd_journal_source: ""  openshift_logging_fluentd_journal_read_from_head: ""  openshift_logging_fluentd_hosts: ['--all'] diff --git a/roles/openshift_logging_fluentd/defaults/main.yml b/roles/openshift_logging_fluentd/defaults/main.yml index 30d3d854a..82326bdd1 100644 --- a/roles/openshift_logging_fluentd/defaults/main.yml +++ b/roles/openshift_logging_fluentd/defaults/main.yml @@ -50,8 +50,6 @@ openshift_logging_fluentd_aggregating_key_path: none  openshift_logging_fluentd_aggregating_passphrase: none  ### Deprecating in 3.6 -openshift_logging_fluentd_es_copy: false -  # following can be uncommented to provide values for configmaps -- take care when providing file contents as it may cause your cluster to not operate correctly  #fluentd_config_contents:  #fluentd_throttle_contents: diff --git a/roles/openshift_logging_fluentd/tasks/main.yaml b/roles/openshift_logging_fluentd/tasks/main.yaml index 74b4d7db4..37960afd1 100644 --- a/roles/openshift_logging_fluentd/tasks/main.yaml +++ b/roles/openshift_logging_fluentd/tasks/main.yaml @@ -1,5 +1,8 @@  ---  - fail: +    msg: The ES_COPY feature is no longer supported. Please remove the variable from your inventory +  when: openshift_logging_fluentd_es_copy is defined +- fail:      msg: Only one Fluentd nodeselector key pair should be provided    when: openshift_logging_fluentd_nodeselector.keys() | count > 1 diff --git a/roles/openshift_logging_fluentd/templates/fluentd.j2 b/roles/openshift_logging_fluentd/templates/fluentd.j2 index a4afb6618..1c0d1089f 100644 --- a/roles/openshift_logging_fluentd/templates/fluentd.j2 +++ b/roles/openshift_logging_fluentd/templates/fluentd.j2 @@ -94,8 +94,6 @@ spec:            value: "{{ openshift_logging_fluentd_ops_client_key }}"          - name: "OPS_CA"            value: "{{ openshift_logging_fluentd_ops_ca }}" -        - name: "ES_COPY" -          value: "false"          - name: "JOURNAL_SOURCE"            value: "{{ openshift_logging_fluentd_journal_source | default('') }}"          - name: "JOURNAL_READ_FROM_HEAD" diff --git a/roles/openshift_node/templates/openshift.docker.node.dep.service b/roles/openshift_node/templates/openshift.docker.node.dep.service index 8734e7443..fa7238849 100644 --- a/roles/openshift_node/templates/openshift.docker.node.dep.service +++ b/roles/openshift_node/templates/openshift.docker.node.dep.service @@ -6,6 +6,6 @@ Before={{ openshift.common.service_type }}-node.service  {% if openshift_use_crio|default(false) %}Wants=cri-o.service{% endif %}  [Service] -ExecStart=/bin/bash -c "if [[ -f /usr/bin/docker-current ]]; then echo \"DOCKER_ADDTL_BIND_MOUNTS=--volume=/usr/bin/docker-current:/usr/bin/docker-current:ro --volume=/etc/sysconfig/docker:/etc/sysconfig/docker:ro\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; else echo \"#DOCKER_ADDTL_BIND_MOUNTS=\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; fi" +ExecStart=/bin/bash -c "if [[ -f /usr/bin/docker-current ]]; then echo \"DOCKER_ADDTL_BIND_MOUNTS=--volume=/usr/bin/docker-current:/usr/bin/docker-current:ro --volume=/etc/sysconfig/docker:/etc/sysconfig/docker:ro --volume=/etc/containers/registries:/etc/containers/registries:ro\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; else echo \"#DOCKER_ADDTL_BIND_MOUNTS=\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; fi"  ExecStop=  SyslogIdentifier={{ openshift.common.service_type }}-node-dep diff --git a/roles/openshift_node/templates/openshift.docker.node.service b/roles/openshift_node/templates/openshift.docker.node.service index 4ab10b95f..310d8b29d 100644 --- a/roles/openshift_node/templates/openshift.docker.node.service +++ b/roles/openshift_node/templates/openshift.docker.node.service @@ -34,6 +34,7 @@ ExecStart=/usr/bin/docker run --name {{ openshift.common.service_type }}-node \    -v /lib/modules:/lib/modules -v /etc/origin/openvswitch:/etc/openvswitch \    -v /etc/origin/sdn:/etc/openshift-sdn -v /var/lib/cni:/var/lib/cni \    -v /etc/systemd/system:/host-etc/systemd/system -v /var/log:/var/log \ +  {% if openshift_use_nuage | default(false) -%} $NUAGE_ADDTL_BIND_MOUNTS {% endif -%} \    -v /dev:/dev $DOCKER_ADDTL_BIND_MOUNTS -v /etc/pki:/etc/pki:ro \    {% if l_bind_docker_reg_auth %} -v {{ oreg_auth_credentials_path }}:/root/.docker:ro{% endif %}\    {{ openshift.node.node_image }}:${IMAGE_VERSION} diff --git a/roles/openshift_node_upgrade/templates/openshift.docker.node.dep.service b/roles/openshift_node_upgrade/templates/openshift.docker.node.dep.service index 4c47f8c0d..aae35719c 100644 --- a/roles/openshift_node_upgrade/templates/openshift.docker.node.dep.service +++ b/roles/openshift_node_upgrade/templates/openshift.docker.node.dep.service @@ -6,6 +6,6 @@ Before={{ openshift.common.service_type }}-node.service  [Service] -ExecStart=/bin/bash -c "if [[ -f /usr/bin/docker-current ]]; then echo \"DOCKER_ADDTL_BIND_MOUNTS=--volume=/usr/bin/docker-current:/usr/bin/docker-current:ro --volume=/etc/sysconfig/docker:/etc/sysconfig/docker:ro\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; else echo \"#DOCKER_ADDTL_BIND_MOUNTS=\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; fi" +ExecStart=/bin/bash -c "if [[ -f /usr/bin/docker-current ]]; then echo \"DOCKER_ADDTL_BIND_MOUNTS=--volume=/usr/bin/docker-current:/usr/bin/docker-current:ro --volume=/etc/sysconfig/docker:/etc/sysconfig/docker:ro --volume=/etc/containers/registries:/etc/containers/registries:ro\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; else echo \"#DOCKER_ADDTL_BIND_MOUNTS=\" > /etc/sysconfig/{{ openshift.common.service_type }}-node-dep; fi"  ExecStop=  SyslogIdentifier={{ openshift.common.service_type }}-node-dep diff --git a/roles/openshift_service_catalog/tasks/install.yml b/roles/openshift_service_catalog/tasks/install.yml index faf1aea97..e202ae173 100644 --- a/roles/openshift_service_catalog/tasks/install.yml +++ b/roles/openshift_service_catalog/tasks/install.yml @@ -23,10 +23,22 @@      name: "kube-service-catalog"      node_selector: "" -- name: Make kube-service-catalog project network global -  command: > -    oc adm pod-network make-projects-global kube-service-catalog -  when: os_sdn_network_plugin_name == 'redhat/openshift-ovs-multitenant' +- when: os_sdn_network_plugin_name == 'redhat/openshift-ovs-multitenant' +  block: +    - name: Waiting for netnamespace kube-service-catalog to be ready +      oc_obj: +        kind: netnamespace +        name: kube-service-catalog +        state: list +      register: get_output +      until: not get_output.results.stderr is defined +      retries: 30 +      delay: 1 +      changed_when: false + +    - name: Make kube-service-catalog project network global +      command: > +        oc adm pod-network make-projects-global kube-service-catalog  - include: generate_certs.yml diff --git a/roles/openshift_service_catalog/tasks/wire_aggregator.yml b/roles/openshift_service_catalog/tasks/wire_aggregator.yml index 6431c6d3f..300a7db62 100644 --- a/roles/openshift_service_catalog/tasks/wire_aggregator.yml +++ b/roles/openshift_service_catalog/tasks/wire_aggregator.yml @@ -75,17 +75,35 @@      path: /etc/origin/master/aggregator-front-proxy.kubeconfig    register: first_front_proxy_kubeconfig    delegate_to: "{{ first_master }}" - -- name: Create first master api-client config for Aggregator -  command: > -    {{ hostvars[first_master].openshift.common.client_binary }} adm create-api-client-config -    --certificate-authority=/etc/origin/master/front-proxy-ca.crt -    --signer-cert=/etc/origin/master/front-proxy-ca.crt -    --signer-key=/etc/origin/master/front-proxy-ca.key -    --user aggregator-front-proxy -    --client-dir=/etc/origin/master -    --signer-serial=/etc/origin/master/ca.serial.txt -  delegate_to: "{{ first_master }}" +  run_once: true + +# create-api-client-config generates a ca.crt file which will +# overwrite the OpenShift CA certificate.  Generate the aggregator +# kubeconfig in a temporary directory and then copy files into the +# master config dir to avoid overwriting ca.crt. +- block: +  - name: Create first master api-client config for Aggregator +    command: > +      {{ hostvars[first_master].openshift.common.client_binary }} adm create-api-client-config +      --certificate-authority=/etc/origin/master/front-proxy-ca.crt +      --signer-cert=/etc/origin/master/front-proxy-ca.crt +      --signer-key=/etc/origin/master/front-proxy-ca.key +      --user aggregator-front-proxy +      --client-dir={{ certtemp.stdout }} +      --signer-serial=/etc/origin/master/ca.serial.txt +    delegate_to: "{{ first_master }}" +    run_once: true +  - name: Copy first master api-client config for Aggregator +    copy: +      src: "{{ certtemp.stdout }}/{{ item }}" +      dest: "/etc/origin/master/" +      remote_src: true +    with_items: +    - aggregator-front-proxy.crt +    - aggregator-front-proxy.key +    - aggregator-front-proxy.kubeconfig +    delegate_to: "{{ first_master }}" +    run_once: true    when:    - not first_front_proxy_kubeconfig.stat.exists diff --git a/roles/openshift_version/tasks/set_version_containerized.yml b/roles/openshift_version/tasks/set_version_containerized.yml index a2a579e9d..b727eb74d 100644 --- a/roles/openshift_version/tasks/set_version_containerized.yml +++ b/roles/openshift_version/tasks/set_version_containerized.yml @@ -1,6 +1,6 @@  ---  - set_fact: -    l_use_crio: "{{ openshift_use_crio | default(false) }}" +    l_use_crio_only: "{{ openshift_use_crio_only | default(false) }}"  - name: Set containerized version to configure if openshift_image_tag specified    set_fact: @@ -22,7 +22,9 @@    command: >      docker run --rm {{ openshift.common.cli_image }}:latest version    register: cli_image_version -  when: openshift_version is not defined +  when: +  - openshift_version is not defined +  - not l_use_crio_only  # Origin latest = pre-release version (i.e. v1.3.0-alpha.1-321-gb095e3a)  - set_fact: @@ -31,6 +33,7 @@    - openshift_version is not defined    - openshift.common.deployment_type == 'origin'    - cli_image_version.stdout_lines[0].split('-') | length > 1 +  - not l_use_crio_only  - set_fact:      openshift_version: "{{ cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0][1:] }}" @@ -45,14 +48,14 @@    when:    - openshift_version is defined    - openshift_version.split('.') | length == 2 -  - not l_use_crio +  - not l_use_crio_only  - set_fact:      openshift_version: "{{ cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0:2][1:] | join('-') if openshift.common.deployment_type == 'origin' else cli_image_version.stdout_lines[0].split(' ')[1].split('-')[0][1:] }}"    when:    - openshift_version is defined    - openshift_version.split('.') | length == 2 -  - not l_use_crio +  - not l_use_crio_only  # TODO: figure out a way to check for the openshift_version when using CRI-O.  # We should do that using the images in the ostree storage so we don't have diff --git a/roles/template_service_broker/tasks/install.yml b/roles/template_service_broker/tasks/install.yml index 199df83c2..a9d22aa06 100644 --- a/roles/template_service_broker/tasks/install.yml +++ b/roles/template_service_broker/tasks/install.yml @@ -8,7 +8,9 @@  - name: set ansible_service_broker facts    set_fact: -    template_service_broker_image: "{{ template_service_broker_image | default(__template_service_broker_image) }}" +    template_service_broker_prefix: "{{ template_service_broker_prefix | default(__template_service_broker_prefix) }}" +    template_service_broker_version: "{{ template_service_broker_version | default(__template_service_broker_version) }}" +    template_service_broker_image_name: "{{ template_service_broker_image_name | default(__template_service_broker_image_name) }}"  - oc_project:      name: openshift-template-service-broker @@ -28,7 +30,7 @@  - name: Apply template file    shell: > -    oc process -f "{{ mktemp.stdout }}/{{ __tsb_template_file }}" --param API_SERVER_CONFIG="{{ lookup('file', __tsb_files_location ~ '/' ~ __tsb_config_file) }}" | kubectl apply -f - +    oc process -f "{{ mktemp.stdout }}/{{ __tsb_template_file }}" --param API_SERVER_CONFIG="{{ lookup('file', __tsb_files_location ~ '/' ~ __tsb_config_file) }}" --param IMAGE="{{ template_service_broker_prefix }}{{ template_service_broker_image_name }}:{{ template_service_broker_version }}" | kubectl apply -f -  # reconcile with rbac  - name: Reconcile with RBAC file diff --git a/roles/template_service_broker/vars/default_images.yml b/roles/template_service_broker/vars/default_images.yml index 807f2822c..77afe1f43 100644 --- a/roles/template_service_broker/vars/default_images.yml +++ b/roles/template_service_broker/vars/default_images.yml @@ -1,2 +1,4 @@  --- -__template_service_broker_image: "" +__template_service_broker_prefix: "docker.io/openshift/" +__template_service_broker_version: "latest" +__template_service_broker_image_name: "origin" diff --git a/roles/template_service_broker/vars/openshift-enterprise.yml b/roles/template_service_broker/vars/openshift-enterprise.yml index 807f2822c..dfab1e01b 100644 --- a/roles/template_service_broker/vars/openshift-enterprise.yml +++ b/roles/template_service_broker/vars/openshift-enterprise.yml @@ -1,2 +1,4 @@  --- -__template_service_broker_image: "" +__template_service_broker_prefix: "registry.access.redhat.com/openshift3/" +__template_service_broker_version: "v3.7" +__template_service_broker_image_name: "ose" | 
