--Task--
name: Deploy_Discover_IDC_tenant
enabled: True
class_name: DeployTenantTask
source_name: controller
source_namespace: >default<
target_name: controller
target_namespace: >default<
start: 0
stop: None
timeout: no timeout
loop: False
interval: None
dependencies: []
wait_for: []
options: {}
group_name: None
Current dir: /mnt/disks/data/xslou/lodestar-fork/pyrock
________________________________________________________________________________
[25/Aug/2023 03:41:10] Deploy_Discover_IDC_tenant pre : N/A
________________________________________________________________________________
________________________________________________________________________________
[25/Aug/2023 03:41:10] Deploy_Discover_IDC_tenant step1 : N/A
________________________________________________________________________________
******************************** Cleaning up existing namespace ********************************
------------------ Deleting secret agent controller ------------------
[loop_until]: kubectl --namespace=xlou delete sac --all
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
No resources found
--- stderr ---
----------------------- Deleting all resources -----------------------
[loop_until]: kubectl --namespace=xlou delete all --all --grace-period=0 --force
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
pod "overseer-0-5f659c95cf-hqqks" force deleted
service "overseer-0" force deleted
deployment.apps "overseer-0" force deleted
--- stderr ---
Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
[loop_until]: kubectl --namespace xlou get pods | grep "No resources found"
[loop_until]: (max_time=360, interval=10, expected_rc=[0]
[loop_until]: Function succeeded after 0s (rc=0) - failed to find expected output: No resources found - retry
[loop_until]: Function succeeded after 10s (rc=0) - failed to find expected output: No resources found - retry
[loop_until]: Function succeeded after 20s (rc=0) - failed to find expected output: No resources found - retry
[loop_until]: Function succeeded after 31s (rc=0) - failed to find expected output: No resources found - retry
[loop_until]: Function succeeded after 41s (rc=0) - failed to find expected output: No resources found - retry
[loop_until]: Function succeeded after 51s (rc=0) - expected pattern found
[loop_until]: OK (rc = 0)
--- stdout ---
--- stderr ---
No resources found in xlou namespace.
------------------------- Deleting configmap -------------------------
[loop_until]: kubectl --namespace=xlou get configmap --output jsonpath={.items[*].metadata.name}
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
kube-root-ca.crt overseer-config-0
--- stderr ---
[loop_until]: kubectl --namespace=xlou delete configmap kube-root-ca.crt --ignore-not-found
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
configmap "kube-root-ca.crt" deleted
--- stderr ---
[loop_until]: kubectl --namespace=xlou delete configmap overseer-config-0 --ignore-not-found
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
configmap "overseer-config-0" deleted
--- stderr ---
--------------------------- Deleting secret ---------------------------
[loop_until]: kubectl --namespace=xlou get secret --output jsonpath='{.items[?(@.type=="Opaque")].metadata.name}'
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
--- stderr ---
-------------------------- Deleting ingress --------------------------
[loop_until]: kubectl --namespace=xlou get ingress --output jsonpath={.items[*].metadata.name}
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
overseer-0
--- stderr ---
[loop_until]: kubectl --namespace=xlou delete ingress overseer-0 --ignore-not-found
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
ingress.networking.k8s.io "overseer-0" deleted
--- stderr ---
---------------------------- Deleting pvc ----------------------------
[loop_until]: kubectl --namespace=xlou get pvc --output jsonpath={.items[*].metadata.name}
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
overseer-0
--- stderr ---
[loop_until]: kubectl --namespace=xlou delete pvc overseer-0 --ignore-not-found
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
persistentvolumeclaim "overseer-0" deleted
--- stderr ---
[loop_until]: kubectl --namespace=xlou delete pv ds-backup-xlou --ignore-not-found
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
--- stderr ---
Warning: deleting cluster-scoped resources, not scoped to the provided namespace
----------------- Deleting admin clusterrolebindings -----------------
[loop_until]: kubectl get clusterrolebinding --output jsonpath="{range .items[?(@.subjects[0].namespace=='xlou')]}{.metadata.name} {end}"
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
k8s-svc-acct-crb-xlou-0
--- stderr ---
Deleting clusterrolebinding k8s-svc-acct-crb-xlou-0 associated with xlou namespace
[loop_until]: kubectl delete clusterrolebinding k8s-svc-acct-crb-xlou-0
[loop_until]: (max_time=180, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
clusterrolebinding.rbac.authorization.k8s.io "k8s-svc-acct-crb-xlou-0" deleted
--- stderr ---
------------------------- Deleting namespace -------------------------
[loop_until]: kubectl delete namespaces xlou --ignore-not-found --grace-period=0 --force
[loop_until]: (max_time=360, interval=5, expected_rc=[0]
[loop_until]: OK (rc = 0)
--- stdout ---
namespace "xlou" force deleted
--- stderr ---
Warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
[loop_until]: awk -F" " "{print NF}" <<< `kubectl get namespace xlou --ignore-not-found` | grep 0
[loop_until]: (max_time=600, interval=10, expected_rc=[0]
[loop_until]: Function succeeded after 0s (rc=0) - expected number of elements found
[loop_until]: OK (rc = 0)
--- stdout ---
--- stderr ---
************************************* Creating deployment *************************************
Creating IDC type deployment for stack
****************************** Livecheck stage: After deployment ******************************
------------------------ Running AM livecheck ------------------------
Livecheck to https://openam-perf-23-05-am-2.forgeblocks.com/am/json/health/ready
[http_cmd]: curl --insecure -L --request GET "https://openam-perf-23-05-am-2.forgeblocks.com/am/json/health/ready"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
------------------------ Running IDM livecheck ------------------------
Livecheck to https://openam-perf-23-05-am-2.forgeblocks.com/openidm/info/ping
[http_cmd]: curl --header "X-OpenIDM-Username: anonymous" --header "X-OpenIDM-Password: ****" --insecure -L --request GET "https://openam-perf-23-05-am-2.forgeblocks.com/openidm/info/ping"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
{
"_id": "",
"_rev": "",
"shortDesc": "OpenIDM ready",
"state": "ACTIVE_READY"
}
---------------------- Running DS-CTS livecheck ----------------------
--------------------- Running DS-IDREPO livecheck ---------------------
--------------------- Running ADMIN-UI livecheck ---------------------
Livecheck to https://openam-perf-23-05-am-2.forgeblocks.com/platform
[http_cmd]: curl --insecure -L --request GET "https://openam-perf-23-05-am-2.forgeblocks.com/platform"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
Platform Admin
[]
-------------------- Running END-USER-UI livecheck --------------------
Livecheck to https://openam-perf-23-05-am-2.forgeblocks.com/enduser
[http_cmd]: curl --insecure -L --request GET "https://openam-perf-23-05-am-2.forgeblocks.com/enduser"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
Identity Management
[]
--------------------- Running LOGIN-UI livecheck ---------------------
Livecheck to https://openam-perf-23-05-am-2.forgeblocks.com/am/XUI
[http_cmd]: curl --insecure -L --request GET "https://openam-perf-23-05-am-2.forgeblocks.com/am/XUI"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
Login
[]
LIVECHECK SUCCEEDED
****************************** Initializing component pods for AM ******************************
----------------------- Get AM software version -----------------------
Getting product version from https://openam-perf-23-05-am-2.forgeblocks.com/am/json/realms/alpha/serverinfo/version
Create new LoginSession for user "xiaosong.lou@forgerock.com"
[LoginSession] Get "token_id" token for user "xiaosong.lou@forgerock.com"
[LoginSession] Obtaining new "token_id" token from server because it was not obtained yet for the user
Authenticate user xiaosong.lou@forgerock.com via REST
[http_cmd]: curl --header "X-OpenAM-Username: xiaosong.lou@forgerock.com" --header "X-OpenAM-Password: ****" --header "Content-Type: application/json" --header "Accept-API-Version: resource=2.0, protocol=1.0" --insecure -L --request POST "https://openam-perf-23-05-am-2.forgeblocks.com/am/json/authenticate?realm=/"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
[print_head_tail]: Print head (10 lines) and tail (10 lines) of input string (83 lines):
----- output -----
{
"authId": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvdGsiOiJocjJ1Z2NzcGc3cnBvYnQ1N3I4YTE3MTYzOCIsInJlYWxtIjoiLyIsInNlc3Npb25JZCI6IipBQUpUU1FBQ01ESUFCSFI1Y0dVQUNFcFhWRjlCVlZSSUFBSlRNUUFDTURFLipleUowZVhBaU9pSktWMVFpTENKamRIa2lPaUpLVjFRaUxDSmhiR2NpT2lKSVV6STFOaUo5LlpYbEtNR1ZZUVdsUGFVcExWakZSYVV4RFNteGliVTFwVDJsS1FrMVVTVFJSTUVwRVRGVm9WRTFxVlRKSmFYZHBXVmQ0YmtscWIybGFSMng1U1c0d0xpNDJVVmxoVkhkWWNGbE5kMDVvZERCRVJuUlpWQzFuTG5SMVZFWlBiemhSYURadVpFcG1Sa1F0VFZoMGVFZHhaMlZDTWpNdFp6RlRUMGMyVDNwTVVHb3dXa1JUY1V4RU5WcEpTMlY1Y0RSMVJuTnljV0ZYVm0wM1JsUlFVblZ3U1RsNFMwTlFkWEYxTWpOaFlsWllWMEpQWlZGSmN6SjZUWGhHVkd0QlRHcGtVVk5TVjBwRFNrZEdlSFp1Y25VMWFqaFVOSFZhVFZWWmR6WTBTamh2TW5KNVFVUk1UR1JCWVRWbVdHZDFiazg1WjFaUVRuWmpZMEZrYmtWMWREWjJMV1J0T0UweWNYbFBOM0JXTVVGbFgxbFdTblEyVlVSR2FUZHZSMjFPYmtOMVZVeE1VMUZaYjFkaE15MDNUWGhPWDNwTVdWSmFPRVJ4TTJNM01rRnViMnAzYjB4MVEweE5SR2xoVEhaMU1XMUdMVTU0TUdsRk5GOWFkMFZUUWxjM1lqRjNkRkpGVjFWbmFIcENUVzFrU210NVduaEZkVW8zTW5vdGJsbHFZazl4VTNKelRYaFhUR3BIUlVzNFoxcFpUbUZEY0V3eVpHdFlOMXA1VTB4dWFrSkRiVFpKTVVGWlRsaHNOa2w1TFVOblRuWm1lR1p2TVc5aGVWbG9NbVIwWW5kUGRXOWtkRWhETUhkQlJXWm5hM1ZHZGxWM00zRkJWM05zY2tWMmRrNDBVWFpFV0cxaWFuVmtZV3BpWDB0NlNrSmpZVFZxTFc0d1RsWnBNR2RwUWpkV1dWQkxiMGt3ZEhCdk5GTktjVWwwT0ZOemFHZEpRMU5NZDFWZmFHZHliMkpwWTJSMU1tb3pVMmszT0ZRd1pHdDRZa0Y0YVdZeVF6ZExPR3gzVlhRMFJYWlZXREpTZEc5RFgwSmxNa3hYYlRKR2JreG9kbU14TWs0MFQydFRaMWx4Y0VSeWJVTldjRFp5WjAxR1UwVlpNbVE0ZFRWTk5XcE9PVlJDWHpsNGJFVlNlazVpZDJGcVNuZGlTazU0V21admEwSlpNak5EYm5BeGNGODRZMnB3T0dSUlVHdGZRVkZhUkhKTmFrVkhaRXM1WDBOb1ZtWjVjSEZDY0RWbVNFODNibkJKV1VaSGFuWjBhbEJCUkMxMll6TlFWMDFYZGs5VlpWVm1OSE13ZWpJeWNqaFRNekZuVlVWWlJrOVdWa054TVY5dWJIbDRRbmwyTjE5SlZsSlJNa2hvWVRkeWFuaHphRTVhVW1kRFJsRndaRTR4VWxoNVFuazJPRkZ2WnpsUVNEZzJPV1ZxZEZGak4yeDBaRzVoZUVsWWFtMWpOME5TTjE5TVUyTlJZMDFuTm1aa1NIVTBkbVpKUkVkT1ZGcE9iMTlRUkZRNWVtRjZPRU5mWld4WVJEVXpjMDVUT0d0NVRUWlFiVGRrUkRaVGFrTnBYMGcwZEVVd1pHOVlNbFpDUWpCTlZFTnhZalJpTWxGdVdXcG5PVmd4YjAxR1RrWlNObUZTTnpjd2VrVmtXVlpoUmpsWVJsODVPR3RUYjE4eVdGZHFOVkY0Y0hNeFJsZ3RSemhDZUhoV1RVbHZNMWROZVV4b1oxbERNVXMzVjBVNFREZHVObWd4WjJkV1VEVnNkMk51YkZBMFFXSjVUR1pFWVdkZlpuRjZjVzFaT1ZOblptaDNaR3BuY1VnelkwVnZTSEJQZWt0clZXeFpVWFYzYWtGR01uQXlaMUZyYkRSME1sUnNjM3AxZGtoTVNYQnJOSEExTTFKVWVYSm5UbDlUYW5SeVRrRlNOM2d6TFhkRmFrNHhRWFZQZFZwc2FqWnlXRlF3ZEhGWVIyTTJXVXRtYUhSNWVFSmFablEwYWtsemFYRnRibXQwYkZOdFJEWnRhRTlPWDJ0VGFYTXhTM1JXVUdOUkxXOWFabmxDV1hBMU9VWTFhbVZZZDBadFJGUlpUVnBxZEhkTmRrRlRXVk5vVWtOMFFtaDNSRTFDVlRKMVoycEhTVUpKTm1KVFdGcGZNVkpYV25SMmRsRmZNbll0TUVKb1UzZHBSUzExTWtSNE1IbHFhV1pLYUhsR1NIaElPVVl0WjFGcVNXVkdaM1ZFUkhKbU1FbzRPVFI0ZVVRNExVZGtTVUo0VDNvMlVsSmFkR2RqUjJOMlZEYzRielp4VVhkQ2IyMWlja3Q1V1RSUFZqaG5jRFJ0UW5GMGRUWlRiMFpDUkhWVlMyaFhWbWg0TWkxb1V6WjVWSHBWWjJkblFUWm1MVmhDU0c1WllXcENUMHhHZFZsSFRDMHhObVYyUzNRMlIyZFZZblZoY25GRE4yMDJSa1IzTUVKUFEyaG9SbkF3YUZocWNYWjRPRTlSZVZkQ1JFaGxOM1ZzV201WFdXRkljM2RqTlZoWmVEWndlV3g1U1Mxa1MyaG1aMk53ZUVoSWIxTmpkVjkxV0hCNFIzUkdWakpXV1d0cVMwVm1lRFJxV1RVemVWUldaMkpPYzBSa1UzaHlVR1J0V1dzNFZYWjViWFp0VW5oU2RUTkllakF4YWxKTU5EQlVXV1pQYTJGNlVtaHZTbEI2ZFRKbGNERllhSGcxWW1WZk4wa3RUR3BFZFdaRExWTXlaRVpmT0ZSTVlrTldTVlpxZDJnMlNWQlJSMEk1T0haaFdtY3dlRUV4Y2xGRmNuaGllRWRFWTJWV2JqSXhjMHRXYVVWWlMybDRWblp6VlRNeVFTNXFNMjkzTlVaQ2RuTXdkWGRRT0hGblIxQlNkRVZSLlhlRWNrV1hZaWZyNm5nbWJaR0l2bU9tSFlGU21obmt3d29qdDlRbk9wcnciLCJleHAiOjE2OTMwMjEzNTYsImlhdCI6MTY5MjkzNDk1Nn0.DrmXdFJGN1iDepulthAwY3jqTn7aBXoA9_a4GyQMuDk",
"callbacks": [
{
"type": "TextOutputCallback",
"output": [
{
"name": "message",
"value": "Loading..."
},
[...]
"value": "var setupPage = function() { var skipInputElem = document.getElementById(\"skip-input-291\"); var messageElem; document.getElementsByClassName(\"callback-component\").forEach( function (e) { var m = e.firstElementChild; if (m.firstChild && m.firstChild.nodeName == \"#text\" && m.firstChild.nodeValue.trim() == \"Loading...\") { messageElem = m; } } ); if (!skipInputElem || !messageElem) { return setTimeout(setupPage, 50); } var skipContainer = document.createElement(\"div\"); skipContainer.style = \"width:100%\"; skipContainer.innerHTML = \"\"; skipInputElem.parentNode.append(skipContainer); messageElem.align = \"center\"; messageElem.innerHTML = \"
Set up 2-step verification
Protect your account by adding a second step after entering your password to verify it's you signing in.
Protect your account by adding a second step after entering your password to verify it's you signing in.
\"; var bindSkipLink = function() { document.getElementById(\"skip-link-291\").onclick = function() { skipInputElem.value = \"Skip\"; document.getElementById(\"loginButton_0\").click(); return false; }; }; setTimeout(bindSkipLink, 100);};setupPage();"}, {"name": "messageType", "value": "4"}]}]}' "https://openam-perf-23-05-am-2.forgeblocks.com/am/json/authenticate?realm=/"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
{
"tokenId": "8A-QdwSeYgACja-DPTFXy9ytT7A.*AAJTSQACMDIAAlNLABxZWC9rdVBXcy9rZEEyREtxSU8xTmhqbnlmVG89AAR0eXBlAANDVFMAAlMxAAIwMQ..*",
"successUrl": "/platform",
"realm": "/"
}
[LoginSession] Obtaining session info
[http_cmd]: curl --header "b4a27156a826c25: 8A-QdwSeYgACja-DPTFXy9ytT7A.*AAJTSQACMDIAAlNLABxZWC9rdVBXcy9rZEEyREtxSU8xTmhqbnlmVG89AAR0eXBlAANDVFMAAlMxAAIwMQ..*" --header "Content-Type: application/json" --header "Accept-API-Version: resource=3.0, protocol=2.1" --header "filters_cookie: 8A-QdwSeYgACja-DPTFXy9ytT7A.*AAJTSQACMDIAAlNLABxZWC9rdVBXcy9rZEEyREtxSU8xTmhqbnlmVG89AAR0eXBlAANDVFMAAlMxAAIwMQ..*" --insecure -L --request POST "https://openam-perf-23-05-am-2.forgeblocks.com/am/json/sessions?_action=getSessionInfo"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
{
"username": "2f49e0b0-05ca-4a88-9e0a-fd9940773fa2",
"universalId": "id=2f49e0b0-05ca-4a88-9e0a-fd9940773fa2,ou=user,ou=am-config",
"realm": "/",
"latestAccessTime": "2023-08-25T03:42:36Z",
"maxIdleExpirationTime": "2023-08-25T04:12:36Z",
"maxSessionExpirationTime": "2023-08-25T05:42:35Z",
"properties": {
"AMCtxId": "c5c3da96-72aa-4ca3-91a3-a63a222b9373-82908739"
}
}
[http_cmd]: curl --insecure -L --request GET --cookie "amlbcookie=01" --cookie "b4a27156a826c25=8A-QdwSeYgACja-DPTFXy9ytT7A.*AAJTSQACMDIAAlNLABxZWC9rdVBXcy9rZEEyREtxSU8xTmhqbnlmVG89AAR0eXBlAANDVFMAAlMxAAIwMQ..*" "https://openam-perf-23-05-am-2.forgeblocks.com/am/json/realms/alpha/serverinfo/version"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
{
"_id": "version",
"_rev": "-751731666",
"version": "7.4.0-SNAPSHOT",
"fullVersion": "ForgeRock Access Management 7.4.0-SNAPSHOT Build 33f5a98f0eb7195a332310adb6b393ed55362d04 (2023-August-01 08:45)",
"revision": "33f5a98f0eb7195a332310adb6b393ed55362d04",
"date": "2023-August-01 08:45"
}
***************************** Initializing component pods for IDM *****************************
---------------------- Get IDM software version ----------------------
Getting product version from https://openam-perf-23-05-am-2.forgeblocks.com/openidm/info/version
[http_cmd]: curl --header "X-OpenIDM-Username: anonymous" --header "X-OpenIDM-Password: ****" --insecure -L --request GET "https://openam-perf-23-05-am-2.forgeblocks.com/openidm/info/version"
[http_cmd]: http status code OK
--- status code ---
http status code is 200 (expected 200)
--- http response ---
{
"_id": "version",
"productVersion": "7.4.0-2023-5-0-SNAPSHOT",
"productBuildDate": "20230710182152",
"productRevision": "a58b3d0c3a"
}
**************************** Initializing component pods for DS-CTS ****************************
--------------------- Get DS-CTS software version ---------------------
Component ds-cts is not in Running state so impossible to get software version
************************** Initializing component pods for DS-IDREPO **************************
------------------- Get DS-IDREPO software version -------------------
Component ds-idrepo is not in Running state so impossible to get software version
*************************** Initializing component pods for ADMIN-UI ***************************
-------------------- Get ADMIN-UI software version --------------------
Component admin-ui is running in tenant so impossible to get software version
************************* Initializing component pods for END-USER-UI *************************
------------------ Get END-USER-UI software version ------------------
Component end-user-ui is running in tenant so impossible to get software version
*************************** Initializing component pods for LOGIN-UI ***************************
-------------------- Get LOGIN-UI software version --------------------
Component login-ui is running in tenant so impossible to get software version
[25/Aug/2023 03:42:36] - INFO: Deployment successful
________________________________________________________________________________
[25/Aug/2023 03:42:36] Deploy_Discover_IDC_tenant post : Post method
________________________________________________________________________________
Setting result to PASS
Task has been successfully stopped