diff options
Diffstat (limited to 'roles')
15 files changed, 237 insertions, 41 deletions
diff --git a/roles/lib_utils/filter_plugins/oo_filters.py b/roles/lib_utils/filter_plugins/oo_filters.py index 9f73510c4..ef996fefe 100644 --- a/roles/lib_utils/filter_plugins/oo_filters.py +++ b/roles/lib_utils/filter_plugins/oo_filters.py @@ -4,6 +4,7 @@  """  Custom filters for use in openshift-ansible  """ +import json  import os  import pdb  import random @@ -586,6 +587,18 @@ that result to this filter plugin.      return secret_name +def lib_utils_oo_l_of_d_to_csv(input_list): +    """Map a list of dictionaries, input_list, into a csv string +    of json values. + +    Example input: +    [{'var1': 'val1', 'var2': 'val2'}, {'var1': 'val3', 'var2': 'val4'}] +    Example output: +    u'{"var1": "val1", "var2": "val2"},{"var1": "val3", "var2": "val4"}' +    """ +    return ','.join(json.dumps(x) for x in input_list) + +  def map_from_pairs(source, delim="="):      ''' Returns a dict given the source and delim delimited '''      if source == '': @@ -623,5 +636,6 @@ class FilterModule(object):              "lib_utils_oo_contains_rule": lib_utils_oo_contains_rule,              "lib_utils_oo_selector_to_string_list": lib_utils_oo_selector_to_string_list,              "lib_utils_oo_filter_sa_secrets": lib_utils_oo_filter_sa_secrets, +            "lib_utils_oo_l_of_d_to_csv": lib_utils_oo_l_of_d_to_csv,              "map_from_pairs": map_from_pairs          } diff --git a/roles/openshift_aws/defaults/main.yml b/roles/openshift_aws/defaults/main.yml index efd2468b2..a729e8dbd 100644 --- a/roles/openshift_aws/defaults/main.yml +++ b/roles/openshift_aws/defaults/main.yml @@ -301,3 +301,7 @@ openshift_aws_node_user_data: ''  openshift_aws_node_config_namespace: openshift-node  openshift_aws_masters_groups: masters,etcd,nodes + +# By default, don't delete things like the shared IAM instance +# profile and uploaded ssh keys +openshift_aws_enable_uninstall_shared_objects: False diff --git a/roles/openshift_aws/tasks/uninstall_security_group.yml b/roles/openshift_aws/tasks/uninstall_security_group.yml new file mode 100644 index 000000000..55d40e8ec --- /dev/null +++ b/roles/openshift_aws/tasks/uninstall_security_group.yml @@ -0,0 +1,14 @@ +--- +- name: delete the node group sgs +  oo_ec2_group: +    state: absent +    name: "{{ item.value.name}}" +    region: "{{ openshift_aws_region }}" +  with_dict: "{{ openshift_aws_node_security_groups }}" + +- name: delete the k8s sgs for the node group +  oo_ec2_group: +    state: absent +    name: "{{ item.value.name }}_k8s" +    region: "{{ openshift_aws_region }}" +  with_dict: "{{ openshift_aws_node_security_groups }}" diff --git a/roles/openshift_aws/tasks/uninstall_ssh_keys.yml b/roles/openshift_aws/tasks/uninstall_ssh_keys.yml new file mode 100644 index 000000000..27e42da53 --- /dev/null +++ b/roles/openshift_aws/tasks/uninstall_ssh_keys.yml @@ -0,0 +1,9 @@ +--- +- name: Remove the public keys for the user(s) +  ec2_key: +    state: absent +    name: "{{ item.key_name }}" +    region: "{{ openshift_aws_region }}" +  with_items: "{{ openshift_aws_users }}" +  no_log: True +  when: openshift_aws_enable_uninstall_shared_objects | bool diff --git a/roles/openshift_aws/tasks/uninstall_vpc.yml b/roles/openshift_aws/tasks/uninstall_vpc.yml new file mode 100644 index 000000000..ecf39f694 --- /dev/null +++ b/roles/openshift_aws/tasks/uninstall_vpc.yml @@ -0,0 +1,36 @@ +--- +- name: Fetch the VPC for the vpc.id +  ec2_vpc_net_facts: +    region: "{{ openshift_aws_region }}" +    filters: +      "tag:Name": "{{ openshift_aws_clusterid }}" +  register: vpcout +- debug: +    var: vpcout +    verbosity: 1 + +- when: vpcout.vpcs | length > 0 +  block: +  - name: delete the vpc igw +    ec2_vpc_igw: +      state: absent +      region: "{{ openshift_aws_region }}" +      vpc_id: "{{ vpcout.vpcs[0].id }}" +    register: igw + +  - name: delete the vpc subnets +    ec2_vpc_subnet: +      state: absent +      region: "{{ openshift_aws_region }}" +      vpc_id: "{{ vpcout.vpcs[0].id }}" +      cidr: "{{ item.cidr }}" +      az: "{{ item.az }}" +    with_items: "{{ openshift_aws_vpc.subnets[openshift_aws_region] }}" + +  - name: Delete AWS VPC +    ec2_vpc_net: +      state: absent +      region: "{{ openshift_aws_region }}" +      name: "{{ openshift_aws_clusterid }}" +      cidr_block: "{{ openshift_aws_vpc.cidr }}" +    register: vpc diff --git a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py index ac6ffbbad..d298fbab2 100644 --- a/roles/openshift_health_checker/openshift_checks/docker_image_availability.py +++ b/roles/openshift_health_checker/openshift_checks/docker_image_availability.py @@ -40,7 +40,7 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck):      # to look for images available remotely without waiting to pull them.      dependencies = ["python-docker-py", "skopeo"]      # command for checking if remote registries have an image, without docker pull -    skopeo_command = "timeout 10 skopeo inspect --tls-verify={tls} {creds} docker://{registry}/{image}" +    skopeo_command = "{proxyvars} timeout 10 skopeo inspect --tls-verify={tls} {creds} docker://{registry}/{image}"      skopeo_example_command = "skopeo inspect [--tls-verify=false] [--creds=<user>:<pass>] docker://<registry>/<image>"      def __init__(self, *args, **kwargs): @@ -76,11 +76,20 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck):          if oreg_auth_user != '' and oreg_auth_password != '':              oreg_auth_user = self.template_var(oreg_auth_user)              oreg_auth_password = self.template_var(oreg_auth_password) -            self.skopeo_command_creds = "--creds={}:{}".format(quote(oreg_auth_user), quote(oreg_auth_password)) +            self.skopeo_command_creds = quote("--creds={}:{}".format(oreg_auth_user, oreg_auth_password))          # record whether we could reach a registry or not (and remember results)          self.reachable_registries = {} +        # take note of any proxy settings needed +        proxies = [] +        for var in ['http_proxy', 'https_proxy', 'no_proxy']: +            # ansible vars are openshift_http_proxy, openshift_https_proxy, openshift_no_proxy +            value = self.get_var("openshift_" + var, default=None) +            if value: +                proxies.append(var.upper() + "=" + quote(self.template_var(value))) +        self.skopeo_proxy_vars = " ".join(proxies) +      def is_active(self):          """Skip hosts with unsupported deployment types."""          deployment_type = self.get_var("openshift_deployment_type") @@ -249,11 +258,18 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck):              if not self.reachable_registries[registry]:                  continue  # do not keep trying unreachable registries -            args = dict(registry=registry, image=image) -            args["tls"] = "false" if registry in self.registries["insecure"] else "true" -            args["creds"] = self.skopeo_command_creds if registry == self.registries["oreg"] else "" +            args = dict( +                proxyvars=self.skopeo_proxy_vars, +                tls="false" if registry in self.registries["insecure"] else "true", +                creds=self.skopeo_command_creds if registry == self.registries["oreg"] else "", +                registry=quote(registry), +                image=quote(image), +            ) -            result = self.execute_module_with_retries("command", {"_raw_params": self.skopeo_command.format(**args)}) +            result = self.execute_module_with_retries("command", { +                "_uses_shell": True, +                "_raw_params": self.skopeo_command.format(**args), +            })              if result.get("rc", 0) == 0 and not result.get("failed"):                  return True              if result.get("rc") == 124:  # RC 124 == timed out; mark unreachable @@ -263,6 +279,10 @@ class DockerImageAvailability(DockerHostMixin, OpenShiftCheck):      def connect_to_registry(self, registry):          """Use ansible wait_for module to test connectivity from host to registry. Returns bool.""" +        if self.skopeo_proxy_vars != "": +            # assume we can't connect directly; just waive the test +            return True +          # test a simple TCP connection          host, _, port = registry.partition(":")          port = port or 443 diff --git a/roles/openshift_hosted_templates/files/v3.6/enterprise/registry-console.yaml b/roles/openshift_hosted_templates/files/v3.6/enterprise/registry-console.yaml index cc3159a32..0786e2d2f 100644 --- a/roles/openshift_hosted_templates/files/v3.6/enterprise/registry-console.yaml +++ b/roles/openshift_hosted_templates/files/v3.6/enterprise/registry-console.yaml @@ -102,7 +102,7 @@ objects:  parameters:    - description: 'Specify "registry/repository" prefix for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", set prefix "registry.access.redhat.com/openshift3/"'      name: IMAGE_PREFIX -    value: "openshift3/" +    value: "registry.access.redhat.com/openshift3/"    - description: 'Specify component name for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", use base name "registry-console"'      name: IMAGE_BASENAME      value: "registry-console" diff --git a/roles/openshift_hosted_templates/files/v3.7/enterprise/registry-console.yaml b/roles/openshift_hosted_templates/files/v3.7/enterprise/registry-console.yaml index 9f2e6125d..ccea54aaf 100644 --- a/roles/openshift_hosted_templates/files/v3.7/enterprise/registry-console.yaml +++ b/roles/openshift_hosted_templates/files/v3.7/enterprise/registry-console.yaml @@ -102,7 +102,7 @@ objects:  parameters:    - description: 'Specify "registry/repository" prefix for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", set prefix "registry.access.redhat.com/openshift3/"'      name: IMAGE_PREFIX -    value: "openshift3/" +    value: "registry.access.redhat.com/openshift3/"    - description: 'Specify component name for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", use base name "registry-console"'      name: IMAGE_BASENAME      value: "registry-console" diff --git a/roles/openshift_hosted_templates/files/v3.8/enterprise/registry-console.yaml b/roles/openshift_hosted_templates/files/v3.8/enterprise/registry-console.yaml index f04ce06d3..15ad4e9af 100644 --- a/roles/openshift_hosted_templates/files/v3.8/enterprise/registry-console.yaml +++ b/roles/openshift_hosted_templates/files/v3.8/enterprise/registry-console.yaml @@ -102,7 +102,7 @@ objects:  parameters:    - description: 'Specify "registry/repository" prefix for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", set prefix "registry.access.redhat.com/openshift3/"'      name: IMAGE_PREFIX -    value: "openshift3/" +    value: "registry.access.redhat.com/openshift3/"    - description: 'Specify component name for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", use base name "registry-console"'      name: IMAGE_BASENAME      value: "registry-console" diff --git a/roles/openshift_hosted_templates/files/v3.9/enterprise/registry-console.yaml b/roles/openshift_hosted_templates/files/v3.9/enterprise/registry-console.yaml index c178cf432..7acefa0f0 100644 --- a/roles/openshift_hosted_templates/files/v3.9/enterprise/registry-console.yaml +++ b/roles/openshift_hosted_templates/files/v3.9/enterprise/registry-console.yaml @@ -102,7 +102,7 @@ objects:  parameters:    - description: 'Specify "registry/repository" prefix for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", set prefix "registry.access.redhat.com/openshift3/"'      name: IMAGE_PREFIX -    value: "openshift3/" +    value: "registry.access.redhat.com/openshift3/"    - description: 'Specify component name for container image; e.g. for "registry.access.redhat.com/openshift3/registry-console:latest", use base name "registry-console"'      name: IMAGE_BASENAME      value: "registry-console" diff --git a/roles/openshift_node/defaults/main.yml b/roles/openshift_node/defaults/main.yml index 0b10413c5..5864d3c03 100644 --- a/roles/openshift_node/defaults/main.yml +++ b/roles/openshift_node/defaults/main.yml @@ -77,6 +77,18 @@ r_openshift_node_use_firewalld: "{{ os_firewall_use_firewalld | default(False) }  l_is_node_system_container: "{{ (openshift_use_node_system_container | default(openshift_use_system_containers | default(false)) | bool) }}" +openshift_node_syscon_auth_mounts_l: +- type: bind +  source: "{{ oreg_auth_credentials_path }}" +  destination: "/root/.docker" +  options: +  - ro + +# If we need to add new mounts in the future, or the user wants to mount data. +# This should be in the same format as auth_mounts_l above. +openshift_node_syscon_add_mounts_l: [] + +  openshift_deployment_type: "{{ openshift_deployment_type | default('origin') }}"  openshift_node_image_dict: diff --git a/roles/openshift_node/tasks/node_system_container.yml b/roles/openshift_node/tasks/node_system_container.yml index 06b879050..008f209d7 100644 --- a/roles/openshift_node/tasks/node_system_container.yml +++ b/roles/openshift_node/tasks/node_system_container.yml @@ -14,4 +14,23 @@      - "DNS_DOMAIN={{ openshift.common.dns_domain }}"      - "DOCKER_SERVICE={{ openshift_docker_service_name }}.service"      - "MASTER_SERVICE={{ openshift_service_type }}.service" +    - 'ADDTL_MOUNTS={{ l_node_syscon_add_mounts2 }}'      state: latest +  vars: +    # We need to evaluate some variables here to ensure +    # l_bind_docker_reg_auth is evaluated after registry_auth.yml has been +    # processed. + +    # Determine if we want to include auth credentials mount. +    l_node_syscon_auth_mounts_l: "{{ l_bind_docker_reg_auth | ternary(openshift_node_syscon_auth_mounts_l,[]) }}" + +    # Join any user-provided mounts and auth_mounts into a combined list. +    l_node_syscon_add_mounts_l: "{{ openshift_node_syscon_add_mounts_l | union(l_node_syscon_auth_mounts_l) }}" + +    # We must prepend a ',' here to ensure the value is inserted properly into an +    # existing json list in the container's config.json +    # lib_utils_oo_l_of_d_to_csv is a custom filter plugin in roles/lib_utils/oo_filters.py +    l_node_syscon_add_mounts: ",{{ l_node_syscon_add_mounts_l | lib_utils_oo_l_of_d_to_csv }}" +    # if we have just a ',' then both mount lists were empty, we don't want to add +    # anything to config.json +    l_node_syscon_add_mounts2: "{{ (l_node_syscon_add_mounts != ',') | bool | ternary(l_node_syscon_add_mounts,'') }}" diff --git a/roles/openshift_web_console/tasks/install.yml b/roles/openshift_web_console/tasks/install.yml index de852e80b..ead62799a 100644 --- a/roles/openshift_web_console/tasks/install.yml +++ b/roles/openshift_web_console/tasks/install.yml @@ -21,7 +21,7 @@      node_selector:        - "" -- name: Make temp directory for the web console config files +- name: Make temp directory for web console templates    command: mktemp -d /tmp/console-ansible-XXXXXX    register: mktemp    changed_when: False @@ -31,7 +31,7 @@      cp {{ openshift.common.config_base }}/master//admin.kubeconfig {{ mktemp.stdout }}/admin.kubeconfig    changed_when: false -- name: Copy the web console config template to temp directory +- name: Copy web console templates to temp directory    copy:      src: "{{ __console_files_location }}/{{ item }}"      dest: "{{ mktemp.stdout }}/{{ item }}" @@ -40,31 +40,87 @@      - "{{ __console_rbac_file }}"      - "{{ __console_config_file }}" -- name: Update the web console config properties -  yedit: -    src: "{{ mktemp.stdout }}/{{ __console_config_file }}" -    edits: -      - key: clusterInfo#consolePublicURL -        # Must have a trailing slash -        value: "{{ openshift.master.public_console_url }}/" -      - key: clusterInfo#masterPublicURL -        value: "{{ openshift.master.public_api_url }}" -      - key: clusterInfo#logoutPublicURL -        value: "{{ openshift.master.logout_url | default('') }}" -      - key: features#inactivityTimeoutMinutes -        value: "{{ openshift_web_console_inactivity_timeout_minutes | default(0) }}" -      - key: extensions#scriptURLs -        value: "{{ openshift_web_console_extension_script_urls | default([]) }}" -      - key: extensions#stylesheetURLs -        value: "{{ openshift_web_console_extension_stylesheet_urls | default([]) }}" -      - key: extensions#properties -        value: "{{ openshift_web_console_extension_properties | default({}) }}" -    separator: '#' -    state: present +# Check if an existing webconsole-config config map exists. If so, use those +# contents so we don't overwrite changes. +- name: Read the existing web console config map +  oc_configmap: +    namespace: openshift-web-console +    name: webconsole-config +    state: list +  register: webconsole_config_map + +- set_fact: +    existing_config_map_data: "{{ webconsole_config_map.results.results[0].data | default({}) }}" + +- name: Copy the existing web console config to temp directory +  copy: +    content: "{{ existing_config_map_data['webconsole-config.yaml'] }}" +    dest: "{{ mktemp.stdout }}/{{ __console_config_file }}" +  when: existing_config_map_data['webconsole-config.yaml'] is defined + +# Generate a new config when a config map is not defined. +- when: existing_config_map_data['webconsole-config.yaml'] is not defined +  block: +    # Migrate the previous master-config.yaml asset config if it exists into the new +    # web console config config map. +    - name: Read existing assetConfig in master-config.yaml +      slurp: +        src: "{{ openshift.common.config_base }}/master/master-config.yaml" +      register: master_config_output + +    - set_fact: +        config_to_migrate: "{{ master_config_output.content | b64decode | from_yaml }}" + +    # Update properties in the config template based on inventory vars when the +    # asset config does not exist. +    - name: Set web console config properties from inventory variables +      yedit: +        src: "{{ mktemp.stdout }}/{{ __console_config_file }}" +        edits: +          - key: clusterInfo#consolePublicURL +            # Must have a trailing slash +            value: "{{ openshift.master.public_console_url }}/" +          - key: clusterInfo#masterPublicURL +            value: "{{ openshift.master.public_api_url }}" +          - key: clusterInfo#logoutPublicURL +            value: "{{ openshift.master.logout_url | default('') }}" +          - key: features#inactivityTimeoutMinutes +            value: "{{ openshift_web_console_inactivity_timeout_minutes | default(0) }}" +          - key: extensions#scriptURLs +            value: "{{ openshift_web_console_extension_script_urls | default([]) }}" +          - key: extensions#stylesheetURLs +            value: "{{ openshift_web_console_extension_stylesheet_urls | default([]) }}" +          - key: extensions#properties +            value: "{{ openshift_web_console_extension_properties | default({}) }}" +        separator: '#' +        state: present +      when: config_to_migrate.assetConfig is not defined + +    - name: Migrate assetConfig from master-config.yaml +      yedit: +        src: "{{ mktemp.stdout }}/{{ __console_config_file }}" +        edits: +          - key: clusterInfo#consolePublicURL +            value: "{{ config_to_migrate.assetConfig.publicURL }}" +          - key: clusterInfo#masterPublicURL +            value: "{{ config_to_migrate.assetConfig.masterPublicURL }}" +          - key: clusterInfo#logoutPublicURL +            value: "{{ config_to_migrate.assetConfig.logoutURL | default('') }}" +          - key: clusterInfo#metricsPublicURL +            value: "{{ config_to_migrate.assetConfig.metricsPublicURL | default('') }}" +          - key: clusterInfo#loggingPublicURL +            value: "{{ config_to_migrate.assetConfig.loggingPublicURL | default('') }}" +          - key: servingInfo#maxRequestsInFlight +            value: "{{ config_to_migrate.assetConfig.servingInfo.maxRequestsInFlight | default(0) }}" +          - key: servingInfo#requestTimeoutSeconds +            value: "{{ config_to_migrate.assetConfig.servingInfo.requestTimeoutSeconds | default(0) }}" +        separator: '#' +        state: present +      when: config_to_migrate.assetConfig is defined  - slurp:      src: "{{ mktemp.stdout }}/{{ __console_config_file }}" -  register: config +  register: updated_console_config  - name: Reconcile with the web console RBAC file    shell: > @@ -74,7 +130,7 @@  - name: Apply the web console template file    shell: >      {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __console_template_file }}" -    --param API_SERVER_CONFIG="{{ config['content'] | b64decode }}" +    --param API_SERVER_CONFIG="{{ updated_console_config['content'] | b64decode }}"      --param IMAGE="{{ openshift_web_console_prefix }}{{ openshift_web_console_image_name }}:{{ openshift_web_console_version }}"      --param NODE_SELECTOR={{ openshift_web_console_nodeselector | to_json | quote }}      --param REPLICA_COUNT="{{ openshift_web_console_replica_count }}" diff --git a/roles/template_service_broker/tasks/install.yml b/roles/template_service_broker/tasks/install.yml index 82b211032..4e6ad2ae5 100644 --- a/roles/template_service_broker/tasks/install.yml +++ b/roles/template_service_broker/tasks/install.yml @@ -22,6 +22,11 @@    register: mktemp    changed_when: False +- name: Copy admin client config +  command: > +    cp {{ openshift.common.config_base }}/master//admin.kubeconfig {{ mktemp.stdout }}/admin.kubeconfig +  changed_when: false +  - copy:      src: "{{ __tsb_files_location }}/{{ item }}"      dest: "{{ mktemp.stdout }}/{{ item }}" @@ -43,16 +48,18 @@  - name: Apply template file    shell: > -    {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __tsb_template_file }}" +    {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig +    -f "{{ mktemp.stdout }}/{{ __tsb_template_file }}"      --param API_SERVER_CONFIG="{{ config['content'] | b64decode }}"      --param IMAGE="{{ template_service_broker_prefix }}{{ template_service_broker_image_name }}:{{ template_service_broker_version }}"      --param NODE_SELECTOR={{ template_service_broker_selector | to_json | quote }} -    | {{ openshift_client_binary }} apply -f - +    | {{ openshift_client_binary }} apply --config={{ mktemp.stdout }}/admin.kubeconfig -f -  # reconcile with rbac  - name: Reconcile with RBAC file    shell: > -    {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __tsb_rbac_file }}" | {{ openshift_client_binary }} auth reconcile -f - +    {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig -f "{{ mktemp.stdout }}/{{ __tsb_rbac_file }}" +    | {{ openshift_client_binary }} auth reconcile --config={{ mktemp.stdout }}/admin.kubeconfig -f -  # Check that the TSB is running  - name: Verify that TSB is running @@ -79,7 +86,7 @@  # Register with broker  - name: Register TSB with broker    shell: > -    {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __tsb_broker_file }}" --param CA_BUNDLE="{{ __ca_bundle.content }}" | {{ openshift_client_binary }} apply -f - +    {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig -f "{{ mktemp.stdout }}/{{ __tsb_broker_file }}" --param CA_BUNDLE="{{ __ca_bundle.content }}" | {{ openshift_client_binary }} apply --config={{ mktemp.stdout }}/admin.kubeconfig -f -  - file:      state: absent diff --git a/roles/template_service_broker/tasks/remove.yml b/roles/template_service_broker/tasks/remove.yml index 767e8ddc1..48dc1327e 100644 --- a/roles/template_service_broker/tasks/remove.yml +++ b/roles/template_service_broker/tasks/remove.yml @@ -3,6 +3,11 @@    register: mktemp    changed_when: False +- name: Copy admin client config +  command: > +    cp {{ openshift.common.config_base }}/master//admin.kubeconfig {{ mktemp.stdout }}/admin.kubeconfig +  changed_when: false +  - copy:      src: "{{ __tsb_files_location }}/{{ item }}"      dest: "{{ mktemp.stdout }}/{{ item }}" @@ -12,11 +17,11 @@  - name: Delete TSB broker    shell: > -    {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __tsb_broker_file }}" | {{ openshift_client_binary }} delete --ignore-not-found -f - +    {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig -f "{{ mktemp.stdout }}/{{ __tsb_broker_file }}" | {{ openshift_client_binary }} delete --config={{ mktemp.stdout }}/admin.kubeconfig --ignore-not-found -f -  - name: Delete TSB objects    shell: > -    {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __tsb_template_file }}" | {{ openshift_client_binary }} delete --ignore-not-found -f - +    {{ openshift_client_binary }} process --config={{ mktemp.stdout }}/admin.kubeconfig -f "{{ mktemp.stdout }}/{{ __tsb_template_file }}" | {{ openshift_client_binary }} delete --config={{ mktemp.stdout }}/admin.kubeconfig --ignore-not-found -f -  - name: empty out tech preview extension file for service console UI    copy:  | 
