ansible/roles/osbs-namespace/tests/test.yml
Clement Verna fb240ea470 Update osbs-namespace to latest upstream.
This is an update of the ansible-role-osbs-namespace role
to the latest upstream available + PR16 not yet merged.

https://github.com/projectatomic/ansible-role-osbs-namespace
Signed-off-by: Clement Verna <cverna@tutanota.com>
2018-02-19 14:55:32 +01:00

312 lines
9.2 KiB
YAML

# Standards: 1.8
---
# Run playbook
# ansible-playbook -i test-inventory test.yml
# During active development, you can re-use the same
# environment setup:
# ansible-playbook -i test-inventory test.yml --skip-tags 'environment-setup'
- name: setup environment
hosts: masters
tasks:
- name: cleanup existing cluster
command: >
oc cluster down
register: cmd_cluster_down
changed_when: cmd_cluster_down.rc == 0
- name: bring up new cluster
command: >
oc cluster up
--version v3.6.0
register: cmd_cluster_up
changed_when: cmd_cluster_up.rc == 0
- name: login as admin
command: >
oc login -u system:admin
register: cmd_login_admin
changed_when: cmd_login_admin.rc == 0
- name: cleanup tmp folder
file:
path: tmp
state: absent
- name: setup tmp folder
file:
path: tmp
state: directory
tags:
- environment-setup
- name: setup worker namespace
hosts: masters
roles:
- role: "{{ playbook_dir }}/../."
osbs_kubeconfig_path: "{{ lookup('env','HOME') }}/.kube/config"
osbs_openshift_home: tmp
osbs_namespace: test-worker
osbs_nodeselector: "worker=true"
osbs_service_accounts:
- orchestrator
- name: test worker namespace
hosts: masters
tasks:
- name: namespace worker created
command: >
oc get project test-worker
changed_when: false
- name: orchestrator service account created in worker namespace
command: >
oc -n test-worker get serviceaccount orchestrator
changed_when: false
- name: policy binding created
command: >
oc -n test-worker get policybinding ':default'
changed_when: false
- name: custom builds roles created
command: >
oc -n test-worker get role osbs-custom-build
changed_when: false
- name: expected rolebindings created in worker namespace
command: >
oc -n test-worker get rolebinding {{ item }}
with_items:
- osbs-admin
- osbs-admin
- osbs-custom-build-admin
- osbs-custom-build-readwrite
- osbs-custom-build-serviceaccounts
- osbs-readonly
- osbs-readwrite
- osbs-readwrite-serviceaccounts
changed_when: false
- name: nodeselector exists
shell: >
oc get namespace test-worker -o json |grep 'node-selector'
register: node_selector_exists
failed_when: "'node-selector' not in node_selector_exists.stdout"
- name: setup orchestrator namespace
hosts: masters
tags:
orchestrator
roles:
- role: "{{ playbook_dir }}/../."
osbs_kubeconfig_path: "{{ lookup('env','HOME') }}/.kube/config"
osbs_openshift_home: tmp
osbs_generated_config_path: tmp
osbs_namespace: test-orchestrator
osbs_orchestrator: true
- name: test orchestrator namespace
hosts: masters
tags:
orchestrator
tasks:
- name: reactor config secret generated
stat:
path: tmp/test-orchestrator-reactor-config-secret.yml
register: stat_reactor_config_secret
changed_when: false
- name: fail if reactor config secret was generated
fail:
msg: Reactor config secret file not created!
when: not stat_reactor_config_secret.stat.exists
- name: client-config-secret was generated properly
command: >
diff {{ playbook_dir }}/files/expected-client-config-secret.conf
{{ playbook_dir }}/tmp/test-orchestrator-client-config-secret.conf
changed_when: false
- name: setup namespace as non admin
hosts: masters
pre_tasks:
- name: Login with non cluster admin account
command: >
oc login -u non-admin -p non-admin
register: cmd_login_non_admin
changed_when: cmd_login_non_admin.rc == 0
roles:
- role: "{{ playbook_dir }}/../."
osbs_kubeconfig_path: "{{ lookup('env','HOME') }}/.kube/config"
osbs_openshift_home: tmp
osbs_namespace: test-non-admin
osbs_is_admin: false
osbs_service_accounts:
- orchestrator
post_tasks:
- name: Log back in with cluster admin account
command: >
oc login -u system:admin
register: cmd_login_admin
changed_when: cmd_login_admin.rc == 0
- name: test non-admin namespace
hosts: masters
tasks:
- name: namespace non-admin created
command: >
oc get project test-non-admin
changed_when: false
- name: orchestrator service account created in non-admin namespace
command: >
oc -n test-non-admin get serviceaccount orchestrator
changed_when: false
- name: custom builds roles NOT created in non-admin namespace
command: >
oc -n test-non-admin get role osbs-custom-build
register: cmd_role
failed_when: ('No resources found' not in cmd_role.stderr) and ('NotFound' not in cmd_role.stderr)
changed_when: false
- name: custom rolebindings NOT created in non-admin namespace
command: >
oc -n test-non-admin get rolebinding {{ item }}
register: cmd_rolebinding
failed_when: ('No resources found' not in cmd_rolebinding.stderr) and ('NotFound' not in cmd_rolebinding.stderr)
with_items:
- osbs-admin
- osbs-admin
- osbs-custom-build-admin
- osbs-custom-build-readwrite
- osbs-custom-build-serviceaccounts
- osbs-readonly
- osbs-readwrite
- osbs-readwrite-serviceaccounts
changed_when: false
- name: create limitrange namespace
hosts: masters
roles:
- role: "{{ playbook_dir }}/../."
osbs_kubeconfig_path: "{{ lookup('env','HOME') }}/.kube/config"
osbs_openshift_home: tmp
osbs_namespace: test-limitrange
osbs_cpu_limitrange: '100m'
- name: test limitrange namespace
hosts: masters
tasks:
- name: namespace limitrange created
command: >
oc get project test-limitrange
changed_when: false
- name: limitrange created
command: >
oc -n test-limitrange get limitrange cpureq
changed_when: false
- name: update limitrange namespace
hosts: masters
roles:
- role: "{{ playbook_dir }}/../."
osbs_kubeconfig_path: "{{ lookup('env','HOME') }}/.kube/config"
osbs_openshift_home: tmp
osbs_namespace: test-limitrange
# No osbs_cpu_limitrage provided should trigger removal
- name: test updated limitrange namespace
hosts: masters
tasks:
- name: limitrange deleted
command: >
oc -n test-limitrange get limitrange cpureq
register: cmd_limitrange
failed_when: ('No resources found' not in cmd_limitrange.stderr) and ('NotFound' not in cmd_limitrange.stderr)
changed_when: false
- name: setup policybinding dedicated-admin namespace
hosts: masters
pre_tasks:
- name: login as admin
command: >
oc login -u system:admin
register: cmd_login_admin
changed_when: cmd_login_admin.rc == 0
- name: Create dedicated-poject-admin clusterrole
command: >
oc create -f {{ playbook_dir }}/files/dedicated-project-admin.yaml
register: cmd_create_clusterrole
changed_when: cmd_create_clusterrole.rc == 0
- name: Create the namespace as cluster admin
command: >
oc new-project test-policybinding-dedicated-admin
register: cmd_pre_create_namespace
changed_when: cmd_pre_create_namespace.rc == 0
- name: Create dedicated-admin user
command: >
oc -n test-policybinding-dedicated-admin
create user dedicated-admin
register: cmd_create_user
changed_when: cmd_create_user.rc == 0
- name: Add dedicated-project-admin role to dedicated-admin
command: >
oc -n test-policybinding-dedicated-admin
policy add-role-to-user dedicated-project-admin dedicated-admin
register: cmd_role_dedicated_project_admin
changed_when: cmd_role_dedicated_project_admin.rc == 0
- name: Create policybinding as cluster admin
command: >
oc -n test-policybinding-dedicated-admin
create policybinding test-policybinding-dedicated-admin
register: cmd_pre_create_policybinding
changed_when: cmd_pre_create_policybinding.rc == 0
# This is only needed because the project was created
# by a different user: system:admin.
- name: Give dedicated-admin user project admin access
command: >
oc -n test-policybinding-dedicated-admin
adm policy add-role-to-user admin dedicated-admin
register: cmd_role_project_admin
changed_when: cmd_role_project_admin.rc == 0
- name: Login with non cluster admin account
command: >
oc login -u dedicated-admin -p dedicated-admin
register: cmd_login_dedicated_admin
changed_when: cmd_login_dedicated_admin.rc == 0
roles:
- role: "{{ playbook_dir }}/../."
osbs_kubeconfig_path: "{{ lookup('env','HOME') }}/.kube/config"
osbs_openshift_home: tmp
osbs_namespace: test-policybinding-dedicated-admin
osbs_is_admin: true
osbs_service_accounts:
- orchestrator
post_tasks:
- name: Log back in with cluster admin account
command: >
oc login -u system:admin
register: cmd_login_admin
changed_when: cmd_login_admin.rc == 0
- name: test policybinding dedicated-admin namespace
hosts: masters
tasks:
- name: custom rolebindings created in dedicated-admin namespace
command: >
oc -n test-policybinding-dedicated-admin get rolebinding {{ item }}
register: cmd_rolebinding
with_items:
- osbs-admin
- osbs-admin
- osbs-custom-build-admin
- osbs-custom-build-readwrite
- osbs-custom-build-serviceaccounts
- osbs-readonly
- osbs-readwrite
- osbs-readwrite-serviceaccounts
changed_when: false