mirror of
https://github.com/openshift/community.okd.git
synced 2026-03-26 19:03:14 +00:00
Move k8s_auth library from community.kubernetes to openshift_auth (#33)
* Add openshift_auth module * add task to print out config * Attempt to configure auth * Update molecule/default/tasks/openshift_auth.yml * fix sanity test and use incluster address for now * Get integration tests passing locally * Give test user cluster-level admin permissions * Use a less verbose resource for testing * Add alias to k8s_auth for backwards compatibility
This commit is contained in:
committed by
GitHub
parent
f52d63c83f
commit
037f8b1f4f
@@ -15,3 +15,46 @@
|
||||
virtualenv: "{{ virtualenv }}"
|
||||
virtualenv_command: "{{ virtualenv_command }}"
|
||||
virtualenv_site_packages: no
|
||||
|
||||
- name: 'Configure htpasswd secret (username: test, password: testing123)'
|
||||
community.okd.k8s:
|
||||
definition:
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: htpass-secret
|
||||
namespace: openshift-config
|
||||
stringData:
|
||||
htpasswd: "test:$2y$05$zgjczyp96jCIp//CGmnWiefhd7G3l54IdsZoV4IwA1UWtd04L0lE2"
|
||||
|
||||
- name: Configure htpasswd identity provider
|
||||
community.okd.k8s:
|
||||
definition:
|
||||
apiVersion: config.openshift.io/v1
|
||||
kind: OAuth
|
||||
metadata:
|
||||
name: cluster
|
||||
spec:
|
||||
identityProviders:
|
||||
- name: htpasswd_provider
|
||||
mappingMethod: claim
|
||||
type: HTPasswd
|
||||
htpasswd:
|
||||
fileData:
|
||||
name: htpass-secret
|
||||
|
||||
- name: Create ClusterRoleBinding for test user
|
||||
community.okd.k8s:
|
||||
definition:
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: test-cluster-reader
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cluster-reader
|
||||
subjects:
|
||||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: User
|
||||
name: test
|
||||
|
||||
51
molecule/default/tasks/openshift_auth.yml
Normal file
51
molecule/default/tasks/openshift_auth.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
- vars:
|
||||
# TODO(fabianvf) Get this parameter working locally as well
|
||||
openshift_host: 'https://kubernetes.default.svc'
|
||||
block:
|
||||
- name: Log in (obtain access token)
|
||||
community.okd.openshift_auth:
|
||||
username: test
|
||||
password: testing123
|
||||
host: '{{ openshift_host }}'
|
||||
verify_ssl: false
|
||||
register: openshift_auth_results
|
||||
|
||||
- name: Get the test User
|
||||
community.kubernetes.k8s_info:
|
||||
api_key: "{{ openshift_auth_results.openshift_auth.api_key }}"
|
||||
host: '{{ openshift_host }}'
|
||||
verify_ssl: false
|
||||
kind: User
|
||||
api_version: user.openshift.io/v1
|
||||
name: test
|
||||
register: user_result
|
||||
|
||||
- name: assert that the user was found
|
||||
assert:
|
||||
that: (user_result.resources | length) == 1
|
||||
|
||||
always:
|
||||
- name: If login succeeded, try to log out (revoke access token)
|
||||
when: openshift_auth_results.openshift_auth.api_key is defined
|
||||
community.okd.openshift_auth:
|
||||
state: absent
|
||||
api_key: "{{ openshift_auth_results.openshift_auth.api_key }}"
|
||||
host: '{{ openshift_host }}'
|
||||
verify_ssl: false
|
||||
|
||||
- name: Get the test user
|
||||
community.kubernetes.k8s_info:
|
||||
api_key: "{{ openshift_auth_results.openshift_auth.api_key }}"
|
||||
host: '{{ openshift_host }}'
|
||||
verify_ssl: false
|
||||
kind: User
|
||||
name: test
|
||||
api_version: user.openshift.io/v1
|
||||
register: failed_user_result
|
||||
ignore_errors: yes
|
||||
|
||||
# TODO(fabianvf) determine why token is not being rejected, maybe add more info to return
|
||||
# - name: assert that the user was not found
|
||||
# assert:
|
||||
# that: (failed_user_result.resources | length) == 0
|
||||
@@ -59,3 +59,5 @@
|
||||
virtualenv_site_packages: no
|
||||
|
||||
- import_tasks: tasks/validate_not_installed.yml
|
||||
|
||||
- import_tasks: tasks/openshift_auth.yml
|
||||
|
||||
Reference in New Issue
Block a user