diff options
| -rw-r--r-- | ansible.cfg | 2 | ||||
| -rw-r--r-- | files/origin-components/console-rbac-template.yaml | 38 | ||||
| -rw-r--r-- | playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml | 8 | ||||
| -rw-r--r-- | roles/ansible_service_broker/tasks/install.yml | 9 | ||||
| -rw-r--r-- | roles/openshift_master/tasks/upgrade/rpm_upgrade.yml | 1 | ||||
| -rw-r--r-- | roles/openshift_web_console/tasks/install.yml | 13 | ||||
| -rw-r--r-- | roles/openshift_web_console/vars/main.yml | 1 | 
7 files changed, 62 insertions, 10 deletions
diff --git a/ansible.cfg b/ansible.cfg index c1c76a496..67149cb35 100644 --- a/ansible.cfg +++ b/ansible.cfg @@ -22,7 +22,7 @@ fact_caching = jsonfile  fact_caching_connection = $HOME/ansible/facts  fact_caching_timeout = 600  callback_whitelist = profile_tasks -inventory_ignore_extensions = secrets.py, .pyc, .cfg, .crt +inventory_ignore_extensions = secrets.py, .pyc, .cfg, .crt, .ini  # work around privilege escalation timeouts in ansible:  timeout = 30 diff --git a/files/origin-components/console-rbac-template.yaml b/files/origin-components/console-rbac-template.yaml new file mode 100644 index 000000000..9ee117199 --- /dev/null +++ b/files/origin-components/console-rbac-template.yaml @@ -0,0 +1,38 @@ +apiVersion: template.openshift.io/v1 +kind: Template +metadata: +  name: web-console-server-rbac +parameters: +- name: NAMESPACE +  # This namespace cannot be changed. Only `openshift-web-console` is supported. +  value: openshift-web-console +objects: + + +# allow grant powers to the webconsole server for cluster inspection +- apiVersion: rbac.authorization.k8s.io/v1beta1 +  kind: ClusterRole +  metadata: +    name: system:openshift:web-console-server +  rules: +  - apiGroups: +    - "servicecatalog.k8s.io" +    resources: +    - clusterservicebrokers +    verbs: +    - get +    - list +    - watch + +# Grant the service account for the web console +- apiVersion: rbac.authorization.k8s.io/v1beta1 +  kind: ClusterRoleBinding +  metadata: +    name: system:openshift:web-console-server +  roleRef: +    kind: ClusterRole +    name: system:openshift:web-console-server +  subjects: +  - kind: ServiceAccount +    namespace: ${NAMESPACE} +    name: webconsole diff --git a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml index ef9871008..073bfbf60 100644 --- a/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml +++ b/playbooks/common/openshift-cluster/upgrades/v3_9/upgrade_control_plane.yml @@ -58,13 +58,13 @@    roles:    - role: openshift_facts    tasks: -  - name: Stop {{ openshift.common.service_type }}-master-controllers +  - name: Stop {{ openshift_service_type }}-master-controllers      systemd: -      name: "{{ openshift.common.service_type }}-master-controllers" +      name: "{{ openshift_service_type }}-master-controllers"        state: stopped -  - name: Start {{ openshift.common.service_type }}-master-controllers +  - name: Start {{ openshift_service_type }}-master-controllers      systemd: -      name: "{{ openshift.common.service_type }}-master-controllers" +      name: "{{ openshift_service_type }}-master-controllers"        state: started  - import_playbook: ../post_control_plane.yml diff --git a/roles/ansible_service_broker/tasks/install.yml b/roles/ansible_service_broker/tasks/install.yml index ba2f7293b..1bc1b5e43 100644 --- a/roles/ansible_service_broker/tasks/install.yml +++ b/roles/ansible_service_broker/tasks/install.yml @@ -72,6 +72,15 @@        - apiGroups: ["image.openshift.io", ""]          resources: ["images"]          verbs: ["get", "list"] +      - apiGroups: ["network.openshift.io"] +        resources: ["clusternetworks", "netnamespaces"] +        verbs: ["get"] +      - apiGroups: ["network.openshift.io"] +        resources: ["netnamespaces"] +        verbs: ["update"] +      - apiGroups: ["networking.k8s.io"] +        resources: ["networkpolicies"] +        verbs: ["create", "delete"]  - name: Create asb-access cluster role    oc_clusterrole: diff --git a/roles/openshift_master/tasks/upgrade/rpm_upgrade.yml b/roles/openshift_master/tasks/upgrade/rpm_upgrade.yml index 7870f43e2..96079884e 100644 --- a/roles/openshift_master/tasks/upgrade/rpm_upgrade.yml +++ b/roles/openshift_master/tasks/upgrade/rpm_upgrade.yml @@ -17,6 +17,5 @@        - "{{ openshift_service_type }}-node{{ openshift_pkg_version | default('') }}"        - "{{ openshift_service_type }}-sdn-ovs{{ openshift_pkg_version | default('') }}"        - "{{ openshift_service_type }}-clients{{ openshift_pkg_version | default('') }}" -      - "tuned-profiles-{{ openshift_service_type }}-node{{ openshift_pkg_version | default('') }}"    register: result    until: result is succeeded diff --git a/roles/openshift_web_console/tasks/install.yml b/roles/openshift_web_console/tasks/install.yml index 12916961b..287d8973d 100644 --- a/roles/openshift_web_console/tasks/install.yml +++ b/roles/openshift_web_console/tasks/install.yml @@ -21,20 +21,21 @@      node_selector:        - "" -- name: Make temp directory for asset config files +- name: Make temp directory for the web console config files    command: mktemp -d /tmp/console-ansible-XXXXXX    register: mktemp    changed_when: False -- name: Copy asset config template to temp directory +- name: Copy the web console config template to temp directory    copy:      src: "{{ __console_files_location }}/{{ item }}"      dest: "{{ mktemp.stdout }}/{{ item }}"    with_items:      - "{{ __console_template_file }}" +    - "{{ __console_rbac_file }}"      - "{{ __console_config_file }}" -- name: Update asset config properties +- name: Update the web console config properties    yedit:      src: "{{ mktemp.stdout }}/{{ __console_config_file }}"      edits: @@ -50,7 +51,11 @@      src: "{{ mktemp.stdout }}/{{ __console_config_file }}"    register: config -- name: Apply template file +- name: Reconcile with the web console RBAC file +  shell: > +    {{ openshift_client_binary }} process -f "{{ mktemp.stdout }}/{{ __console_rbac_file }}" | {{ openshift_client_binary }} auth reconcile -f - + +- 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 }}" diff --git a/roles/openshift_web_console/vars/main.yml b/roles/openshift_web_console/vars/main.yml index 80bc56a17..e91048e38 100644 --- a/roles/openshift_web_console/vars/main.yml +++ b/roles/openshift_web_console/vars/main.yml @@ -2,4 +2,5 @@  __console_files_location: "../../../files/origin-components/"  __console_template_file: "console-template.yaml" +__console_rbac_file: "console-rbac-template.yaml"  __console_config_file: "console-config.yaml"  | 
