github.com/verrazzano/verrazzano@v1.7.0/platform-operator/thirdparty/charts/keycloak/templates/test/configmap-test.yaml (about) 1 {{- if .Values.test.enabled }} 2 apiVersion: v1 3 kind: ConfigMap 4 metadata: 5 name: {{ include "keycloak.fullname" . }}-test 6 namespace: {{ .Release.Namespace }} 7 labels: 8 {{- include "keycloak.labels" . | nindent 4 }} 9 annotations: 10 helm.sh/hook: test 11 helm.sh/hook-delete-policy: hook-succeeded 12 data: 13 test.py: | 14 import os 15 from selenium import webdriver 16 from selenium.webdriver.common.by import By 17 from selenium.webdriver.support.ui import WebDriverWait 18 from selenium.webdriver.chrome.options import Options 19 from selenium.webdriver.support import expected_conditions 20 21 print('Creating chrome driver in headless mode') 22 chrome_options = Options() 23 chrome_options.add_argument("--headless") 24 chrome_options.add_argument('--no-sandbox') 25 chrome_options.add_argument('--disable-dev-shm-usage') 26 driver = webdriver.Chrome(options=chrome_options) 27 28 base_url = 'http://{{ include "keycloak.fullname" . }}-http{{ if ne 80 (int .Values.service.httpPort) }}:{{ .Values.service.httpPort }}{{ end }}' 29 30 print('Opening Keycloak...') 31 driver.get('{0}{{ tpl .Values.http.relativePath . | trimSuffix "/" }}/admin/'.format(base_url)) 32 33 username = os.environ['KEYCLOAK_USER'] 34 password = os.environ['KEYCLOAK_PASSWORD'] 35 36 username_input = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "username"))) 37 password_input = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "password"))) 38 login_button = WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "kc-login"))) 39 40 print('Entering username...') 41 username_input.send_keys(username) 42 43 print('Entering password...') 44 password_input.send_keys(password) 45 46 print('Clicking login button...') 47 login_button.click() 48 49 WebDriverWait(driver, 30).until(lambda driver: '{{ tpl .Values.http.relativePath . | trimSuffix "/" }}/admin/master/console/' in driver.current_url) 50 51 print('Admin console visible. Login successful.') 52 53 driver.quit() 54 55 {{- end }}