From 2018bbd7755c6370565d47654d9e1ef67c73faab Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:12:45 +0100 Subject: [PATCH 01/17] Implement multi-user properly first attempt --- .../ocp4_workload_devspaces/defaults/main.yml | 38 +++++--- .../tasks/create_dev_workspace.yml | 8 ++ .../tasks/save_user_information.yml | 55 +++++++----- .../tasks/workload.yml | 88 +++++++------------ .../templates/devworkspace.yaml.j2 | 4 +- .../templates/namespace.yaml.j2 | 4 +- roles/ocp4_workload_devspaces/vars/main.yml | 3 + 7 files changed, 103 insertions(+), 97 deletions(-) create mode 100644 roles/ocp4_workload_devspaces/tasks/create_dev_workspace.yml diff --git a/roles/ocp4_workload_devspaces/defaults/main.yml b/roles/ocp4_workload_devspaces/defaults/main.yml index a3aef05..c178fa6 100644 --- a/roles/ocp4_workload_devspaces/defaults/main.yml +++ b/roles/ocp4_workload_devspaces/defaults/main.yml @@ -1,26 +1,38 @@ --- -ocp4_workload_devspaces_catalogsource_setup: true +ocp4_workload_devspaces_channel: stable +ocp4_workload_devspaces_startingcsv: "" + +ocp4_workload_devspaces_catalogsource_setup: false ocp4_workload_devspaces_catalogsource_name: devspaces-catalogsource ocp4_workload_devspaces_catalogsource_image: "" ocp4_workload_devspaces_catalogsource_tag: "" -ocp4_workload_devspaces_channel: stable -ocp4_workload_devspaces_startingcsv: "" +ocp4_workload_devspaces_setup_devworkspaces: false +ocp4_workload_devspaces_devworkspace_devfile: >- + http://devspaces-dashboard.openshift-devspaces.svc.cluster.local:8080/dashboard/api/editors/devfile?che-editor=che-incubator/che-code/latest -ocp4_workload_devspaces_namespace: openshift-devspaces +# Either have one user specified with ocp4_workload_devspaces_username +ocp4_workload_devspaces_username: user1 +# Or have a number of users starting with ocp4_workload_devspaces_user_base ocp4_workload_devspaces_user_base: user -ocp4_workload_devspaces_user_count: 1 +ocp4_workload_devspaces_user_count: 2 + +ocp4_workload_devspaces_devworkspace_name: workspace +# Actual namespace will be either ocp4_workload_devspaces_devworkspace_namespace_base-ocp4_workload_devspaces_username +# or ocp4_workload_devspaces_devworkspace_namespace_base-ocp4_workload_devspaces_user_baseXX +ocp4_workload_devspaces_devworkspace_namespace_base: devworkspace- -ocp4_workload_devspaces_devworkspace: true -ocp4_workload_devspaces_devworkspace_name: mydevworkspace -ocp4_workload_devspaces_devworkspace_namespace: devworkspaces -ocp4_workload_devspaces_devworkspace_username: user1 -ocp4_workload_devspaces_devworkspace_project: myproject +# Repo to be cloned into the devworkspace +# Either the full path to a repository ocp4_workload_devspaces_devworkspace_git_repo: https://github.com/eclipse-che/che-docs +# Or the Base followed by userXX followed by repo name +# ocp4_workload_devspaces_devworkspace_git_repo_base: http://gitea.gitea.svc:3000 +# ocp4_workload_devspaces_devworkspace_git_repo_name: reponame ocp4_workload_devspaces_devworkspace_git_revision: main + ocp4_workload_devspaces_devworkspace_components: - name: tooling container: - image: registry.redhat.io/devspaces/udi-rhel8:latest -ocp4_workload_devspaces_devworkspace_devfile: >- - http://devspaces-dashboard.openshift-devspaces.svc.cluster.local:8080/dashboard/api/editors/devfile?che-editor=che-incubator/che-code/latest + image: registry.redhat.io/devspaces/udi-base-rhel10:latest + # image: registry.redhat.io/devspaces/udi-rhel8:latest + # image: registry.redhat.io/devspaces/udi-rhel9:latest diff --git a/roles/ocp4_workload_devspaces/tasks/create_dev_workspace.yml b/roles/ocp4_workload_devspaces/tasks/create_dev_workspace.yml new file mode 100644 index 0000000..4a13518 --- /dev/null +++ b/roles/ocp4_workload_devspaces/tasks/create_dev_workspace.yml @@ -0,0 +1,8 @@ +--- +- name: Create DevWorkspace + kubernetes.core.k8s: + state: present + template: "{{ item }}" + loop: + - namespace.yaml.j2 + - devworkspace.yaml.j2 diff --git a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml index 60aed74..f430415 100644 --- a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml +++ b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml @@ -1,5 +1,5 @@ --- -- name: Get devspaces route +- name: Get DevSpaces route kubernetes.core.k8s_info: api_version: route.openshift.io/v1 kind: Route @@ -14,31 +14,42 @@ ansible.builtin.set_fact: _ocp4_workload_devspaces_url: "https://{{ r_devspaces_route.resources[0].spec.host }}" -- name: Save workload user_info - block: - - name: Output workload user_info - agnosticd.core.agnosticd_user_info: - msg: "Dev Spaces URL: {{ _ocp4_workload_devspaces_url }}" - data: - devspaces_url: "{{ _ocp4_workload_devspaces_url }}" +- name: Save DevSpaces URL (single user) + when: ocp4_workload_devspaces_user_count | int == 1 + agnosticd.core.agnosticd_user_info: + data: + devspaces_url: "{{ _ocp4_workload_devspaces_url }}" -- name: Save workload user_info for multi users +- name: Save DevSpaces URL (multiple users) when: ocp4_workload_devspaces_user_count | int > 1 agnosticd.core.agnosticd_user_info: user: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" data: devspaces_url: "{{ _ocp4_workload_devspaces_url }}" - loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" - loop_control: - loop_var: n - label: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" + loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" + loop_control: + loop_var: n + label: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" -- name: Save devworkspace specific user_info - when: ocp4_workload_devspaces_devworkspace | bool - vars: - _devworkspace_path: >- - "dashboard/#/ide/{{ ocp4_workload_devspaces_devworkspace_namespace }}/{{ ocp4_workload_devspaces_devworkspace_name }}" - agnosticd.core.agnosticd_user_info: - msg: "Dev Spaces Workspace URL: {{ _ocp4_workload_devspaces_url }}/{{ _devworkspace_path }}" - data: - devworkspaces_url: "{{ _ocp4_workload_devspaces_url }}/{{ _devworkspace_path }}" + - name: Save DevWorkspace information for a single user + when: ocp4_workload_devspaces_user_count | int == 1 + vars: + _devworkspace_path: >- + "dashboard/#/ide/{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_devworkspace_name }}/{{ ocp4_workload_devspaces_devworkspace_name }}" + agnosticd.core.agnosticd_user_info: + data: + devworkspace_url: "{{ _ocp4_workload_devspaces_url }}/{{ _devworkspace_path }}" + + - name: Save DevWorkspace information for multiple users + when: ocp4_workload_devspaces_user_count | int > 1 + vars: + _devworkspace_path: >- + "dashboard/#/ide/{{ ocp4_workload_devspaces_devworkspace_namespace_base }}/{{ ocp4_workload_devspaces_devworkspace_name }}" + agnosticd.core.agnosticd_user_info: + user: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" + data: + devworkspace_url: "{{ _ocp4_workload_devspaces_url }}/{{ _devworkspace_path }}" + loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" + loop_control: + loop_var: n + label: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index 9408215..eded6b7 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -31,8 +31,8 @@ retries: 30 delay: 10 -- name: Create DevWorkspace - when: ocp4_workload_devspaces_devworkspace | bool +- name: Create DevWorkspace(s) + when: ocp4_workload_devspaces_devworkspaces | bool block: - name: Check {{ ocp4_workload_devspaces_devworkspace_devfile }} kubernetes.core.k8s_exec: @@ -46,63 +46,35 @@ retries: 15 delay: 5 - - name: Create DevWorkspace - kubernetes.core.k8s: - state: present - template: "{{ item }}" - loop: - - namespace.yaml.j2 - - devworkspace.yaml.j2 + - name: Create DevWorkspace for single user + when: ocp4_workload_devspaces_user_count | int == 1 + vars: + _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_username }}" + _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_username }}" + _ocp4_workload_devspaces_devworkspace_git_repo: >- + {{ ((ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0) + | ternary(ocp4_workload_devspaces_devworkspace_git_repo, + (ocp4_workload_devspaces_devworkspace_git_repo_base is defined + | ternary(ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')), + '')) }} + ansible.builtin.include_tasks: create_dev_workspace.yml - - name: Check/recover devworkspace - block: - - name: Check that devworkspace is running - kubernetes.core.k8s_info: - api_version: workspace.devfile.io/v1alpha2 - kind: DevWorkspace - name: "{{ ocp4_workload_devspaces_devworkspace_name }}" - namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace }}" - register: r_devworkspace - failed_when: r_devworkspace.resources[0].status.phase | default('') != 'Running' - until: r_devworkspace is successful - retries: 30 - delay: 10 - rescue: - - name: Delete devworkspace (rescue) - kubernetes.core.k8s: - state: absent - api_version: workspace.devfile.io/v1alpha2 - kind: DevWorkspace - name: "{{ ocp4_workload_devspaces_devworkspace_name }}" - namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace }}" - - - name: wait for devworkspace deletion (rescue) - kubernetes.core.k8s_info: - api_version: workspace.devfile.io/v1alpha2 - kind: DevWorkspace - name: "{{ ocp4_workload_devspaces_devworkspace_name }}" - namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace }}" - register: r_devworkspace_deletion - until: r_devworkspace_deletion.resources | length == 0 - retries: 10 - delay: 5 - - - name: Recreate devworkspace (rescue) - kubernetes.core.k8s: - state: present - template: devworkspace.yaml.j2 - - - name: Check devworkspace is running (rescue) - kubernetes.core.k8s_info: - api_version: workspace.devfile.io/v1alpha2 - kind: DevWorkspace - name: "{{ ocp4_workload_devspaces_devworkspace_name }}" - namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace }}" - register: r_devworkspace_retry - failed_when: r_devworkspace_retry.resources[0].status.phase | default('') != 'Running' - until: r_devworkspace_retry is successful - retries: 30 - delay: 5 + - name: Create DevWorkspace for multiple users + when: ocp4_workload_devspaces_user_count | int > 1 + vars: + _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" + _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" + _ocp4_workload_devspaces_devworkspace_git_repo: >- + {{ ((ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0) + | ternary(ocp4_workload_devspaces_devworkspace_git_repo, + (ocp4_workload_devspaces_devworkspace_git_repo_base is defined + | ternary(ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')), + '')) }} + ansible.builtin.include_tasks: create_dev_workspace.yml + loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" + loop_control: + loop_var: n + label: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" - name: Save user information ansible.builtin.include_tasks: save_user_information.yml diff --git a/roles/ocp4_workload_devspaces/templates/devworkspace.yaml.j2 b/roles/ocp4_workload_devspaces/templates/devworkspace.yaml.j2 index 190abe6..e23f4ff 100644 --- a/roles/ocp4_workload_devspaces/templates/devworkspace.yaml.j2 +++ b/roles/ocp4_workload_devspaces/templates/devworkspace.yaml.j2 @@ -3,7 +3,7 @@ apiVersion: workspace.devfile.io/v1alpha2 kind: DevWorkspace metadata: name: {{ ocp4_workload_devspaces_devworkspace_name }} - namespace: {{ ocp4_workload_devspaces_devworkspace_namespace }} + namespace: {{ _ocp4_workload_devspaces_devworkspace_namespace }} spec: routingClass: che started: true @@ -15,7 +15,7 @@ spec: - name: {{ ocp4_workload_devspaces_devworkspace_project }} git: remotes: - origin: {{ ocp4_workload_devspaces_devworkspace_git_repo }} + origin: {{ _ocp4_workload_devspaces_devworkspace_git_repo }} checkoutFrom: revision: {{ ocp4_workload_devspaces_devworkspace_git_revision }} components: {{ ocp4_workload_devspaces_devworkspace_components }} diff --git a/roles/ocp4_workload_devspaces/templates/namespace.yaml.j2 b/roles/ocp4_workload_devspaces/templates/namespace.yaml.j2 index bc88cf6..d08eeb4 100644 --- a/roles/ocp4_workload_devspaces/templates/namespace.yaml.j2 +++ b/roles/ocp4_workload_devspaces/templates/namespace.yaml.j2 @@ -2,9 +2,9 @@ kind: Namespace apiVersion: v1 metadata: - name: {{ ocp4_workload_devspaces_devworkspace_namespace }} + name: {{ _ocp4_workload_devspaces_devworkspace_namespace }} labels: app.kubernetes.io/part-of: che.eclipse.org app.kubernetes.io/component: workspaces-namespace annotations: - che.eclipse.org/username: {{ ocp4_workload_devspaces_devworkspace_username }} + che.eclipse.org/username: {{ _ocp4_workload_devspaces_devworkspace_username }} diff --git a/roles/ocp4_workload_devspaces/vars/main.yml b/roles/ocp4_workload_devspaces/vars/main.yml index 4cc820f..f658a08 100644 --- a/roles/ocp4_workload_devspaces/vars/main.yml +++ b/roles/ocp4_workload_devspaces/vars/main.yml @@ -1,2 +1,5 @@ --- +_ocp4_workload_devspaces_devworkspace_namespace: "" +_ocp4_workload_devspaces_devworkspace_username: "" _ocp4_workload_devspaces_url: "" +_ocp4_workload_devspaces_devworkspace_git_repo: "" From 73d60af25fd2d1e57e66d4abe6d137e5425c097b Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:14:49 +0100 Subject: [PATCH 02/17] Remove devworkspace info --- .../tasks/save_user_information.yml | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml index f430415..1da6c5a 100644 --- a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml +++ b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml @@ -30,26 +30,3 @@ loop_control: loop_var: n label: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" - - - name: Save DevWorkspace information for a single user - when: ocp4_workload_devspaces_user_count | int == 1 - vars: - _devworkspace_path: >- - "dashboard/#/ide/{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_devworkspace_name }}/{{ ocp4_workload_devspaces_devworkspace_name }}" - agnosticd.core.agnosticd_user_info: - data: - devworkspace_url: "{{ _ocp4_workload_devspaces_url }}/{{ _devworkspace_path }}" - - - name: Save DevWorkspace information for multiple users - when: ocp4_workload_devspaces_user_count | int > 1 - vars: - _devworkspace_path: >- - "dashboard/#/ide/{{ ocp4_workload_devspaces_devworkspace_namespace_base }}/{{ ocp4_workload_devspaces_devworkspace_name }}" - agnosticd.core.agnosticd_user_info: - user: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" - data: - devworkspace_url: "{{ _ocp4_workload_devspaces_url }}/{{ _devworkspace_path }}" - loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" - loop_control: - loop_var: n - label: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" From 3237b5d4449ff44382aa93e20f9e70c1a75ba635 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:17:44 +0100 Subject: [PATCH 03/17] Missing var --- roles/ocp4_workload_devspaces/defaults/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/ocp4_workload_devspaces/defaults/main.yml b/roles/ocp4_workload_devspaces/defaults/main.yml index c178fa6..1b056bd 100644 --- a/roles/ocp4_workload_devspaces/defaults/main.yml +++ b/roles/ocp4_workload_devspaces/defaults/main.yml @@ -6,6 +6,7 @@ ocp4_workload_devspaces_catalogsource_setup: false ocp4_workload_devspaces_catalogsource_name: devspaces-catalogsource ocp4_workload_devspaces_catalogsource_image: "" ocp4_workload_devspaces_catalogsource_tag: "" +ocp4_workload_devspaces_namespace: openshift-devspaces ocp4_workload_devspaces_setup_devworkspaces: false ocp4_workload_devspaces_devworkspace_devfile: >- From 5bcdfac29ca4e8b550b93a5a722c9d5e7e1a4b93 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:18:04 +0100 Subject: [PATCH 04/17] Temporarily comment things --- .../tasks/workload.yml | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index eded6b7..e1c42cf 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -1,35 +1,35 @@ --- -- name: Install devspaces operator - ansible.builtin.include_role: - name: install_operator - vars: - install_operator_name: devspaces - install_operator_namespace: "{{ ocp4_workload_devspaces_namespace }}" - install_operator_csv_nameprefix: devspacesoperator - install_operator_channel: "{{ ocp4_workload_devspaces_channel }}" - install_operator_starting_csv: "{{ ocp4_workload_devspaces_startingcsv }}" - install_operator_catalogsource_setup: "{{ ocp4_workload_devspaces_catalogsource_setup }}" - install_operator_catalogsource_name: "{{ ocp4_workload_devspaces_catalogsource_name }}" - install_operator_catalogsource_image: "{{ ocp4_workload_devspaces_catalogsource_image }}" - install_operator_catalogsource_image_tag: "{{ ocp4_workload_devspaces_catalogsource_tag }}" +# - name: Install devspaces operator +# ansible.builtin.include_role: +# name: install_operator +# vars: +# install_operator_name: devspaces +# install_operator_namespace: "{{ ocp4_workload_devspaces_namespace }}" +# install_operator_csv_nameprefix: devspacesoperator +# install_operator_channel: "{{ ocp4_workload_devspaces_channel }}" +# install_operator_starting_csv: "{{ ocp4_workload_devspaces_startingcsv }}" +# install_operator_catalogsource_setup: "{{ ocp4_workload_devspaces_catalogsource_setup }}" +# install_operator_catalogsource_name: "{{ ocp4_workload_devspaces_catalogsource_name }}" +# install_operator_catalogsource_image: "{{ ocp4_workload_devspaces_catalogsource_image }}" +# install_operator_catalogsource_image_tag: "{{ ocp4_workload_devspaces_catalogsource_tag }}" -- name: Create CheCluster - kubernetes.core.k8s: - state: present - template: checluster.yaml.j2 +# - name: Create CheCluster +# kubernetes.core.k8s: +# state: present +# template: checluster.yaml.j2 -- name: Wait until devspaces dashboard pod is ready - kubernetes.core.k8s_info: - api_version: v1 - kind: Pod - label_selectors: - - component=devspaces-dashboard - namespace: "{{ ocp4_workload_devspaces_namespace }}" - register: r_devspaces_dashboard_pod - failed_when: r_devspaces_dashboard_pod.resources[0].status.phase | default('') != 'Running' - until: r_devspaces_dashboard_pod is successful - retries: 30 - delay: 10 +# - name: Wait until devspaces dashboard pod is ready +# kubernetes.core.k8s_info: +# api_version: v1 +# kind: Pod +# label_selectors: +# - component=devspaces-dashboard +# namespace: "{{ ocp4_workload_devspaces_namespace }}" +# register: r_devspaces_dashboard_pod +# failed_when: r_devspaces_dashboard_pod.resources[0].status.phase | default('') != 'Running' +# until: r_devspaces_dashboard_pod is successful +# retries: 30 +# delay: 10 - name: Create DevWorkspace(s) when: ocp4_workload_devspaces_devworkspaces | bool From 1b5802c3b2fbf237e4fa2177a03ae8e55ffa286e Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:18:53 +0100 Subject: [PATCH 05/17] Fix variable name --- roles/ocp4_workload_devspaces/tasks/workload.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index e1c42cf..272c043 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -32,7 +32,7 @@ # delay: 10 - name: Create DevWorkspace(s) - when: ocp4_workload_devspaces_devworkspaces | bool + when: ocp4_workload_devspaces_setup_devworkspaces | bool block: - name: Check {{ ocp4_workload_devspaces_devworkspace_devfile }} kubernetes.core.k8s_exec: From 39e52095ba1f48dcc0206a468e6a211e115168a2 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:19:33 +0100 Subject: [PATCH 06/17] Add --- .../tasks/workload.yml | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index 272c043..6bffafc 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -18,18 +18,18 @@ # state: present # template: checluster.yaml.j2 -# - name: Wait until devspaces dashboard pod is ready -# kubernetes.core.k8s_info: -# api_version: v1 -# kind: Pod -# label_selectors: -# - component=devspaces-dashboard -# namespace: "{{ ocp4_workload_devspaces_namespace }}" -# register: r_devspaces_dashboard_pod -# failed_when: r_devspaces_dashboard_pod.resources[0].status.phase | default('') != 'Running' -# until: r_devspaces_dashboard_pod is successful -# retries: 30 -# delay: 10 +- name: Wait until devspaces dashboard pod is ready + kubernetes.core.k8s_info: + api_version: v1 + kind: Pod + label_selectors: + - component=devspaces-dashboard + namespace: "{{ ocp4_workload_devspaces_namespace }}" + register: r_devspaces_dashboard_pod + failed_when: r_devspaces_dashboard_pod.resources[0].status.phase | default('') != 'Running' + until: r_devspaces_dashboard_pod is successful + retries: 30 + delay: 10 - name: Create DevWorkspace(s) when: ocp4_workload_devspaces_setup_devworkspaces | bool From 7322ef8dfb3cf920838e7ffce28b9ebce5cdf95a Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:42:17 +0100 Subject: [PATCH 07/17] Fixes --- roles/ocp4_workload_devspaces/defaults/main.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/roles/ocp4_workload_devspaces/defaults/main.yml b/roles/ocp4_workload_devspaces/defaults/main.yml index 1b056bd..ea9d916 100644 --- a/roles/ocp4_workload_devspaces/defaults/main.yml +++ b/roles/ocp4_workload_devspaces/defaults/main.yml @@ -15,9 +15,10 @@ ocp4_workload_devspaces_devworkspace_devfile: >- # Either have one user specified with ocp4_workload_devspaces_username ocp4_workload_devspaces_username: user1 # Or have a number of users starting with ocp4_workload_devspaces_user_base -ocp4_workload_devspaces_user_base: user -ocp4_workload_devspaces_user_count: 2 +# ocp4_workload_devspaces_user_base: user +# ocp4_workload_devspaces_user_count: 2 +ocp4_workload_devspaces_devworkspace_project: project ocp4_workload_devspaces_devworkspace_name: workspace # Actual namespace will be either ocp4_workload_devspaces_devworkspace_namespace_base-ocp4_workload_devspaces_username # or ocp4_workload_devspaces_devworkspace_namespace_base-ocp4_workload_devspaces_user_baseXX From 20643186304a932ce3110aac3efbcba471ae71b9 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:44:22 +0100 Subject: [PATCH 08/17] Fixes --- .../tasks/workload.yml | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index 6bffafc..00bb618 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -46,31 +46,32 @@ retries: 15 delay: 5 - - name: Create DevWorkspace for single user + - name: Set git repo for single user when: ocp4_workload_devspaces_user_count | int == 1 - vars: + ansible.builtin.set_fact: _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- - {{ ((ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0) - | ternary(ocp4_workload_devspaces_devworkspace_git_repo, - (ocp4_workload_devspaces_devworkspace_git_repo_base is defined - | ternary(ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')), - '')) }} + {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0 + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + + - name: Create DevWorkspace for single user + when: ocp4_workload_devspaces_user_count | int == 1 ansible.builtin.include_tasks: create_dev_workspace.yml - - name: Create DevWorkspace for multiple users + - name: Create DevWorkspace for multiple users when: ocp4_workload_devspaces_user_count | int > 1 - vars: - _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" - _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" - _ocp4_workload_devspaces_devworkspace_git_repo: >- - {{ ((ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0) - | ternary(ocp4_workload_devspaces_devworkspace_git_repo, - (ocp4_workload_devspaces_devworkspace_git_repo_base is defined - | ternary(ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')), - '')) }} - ansible.builtin.include_tasks: create_dev_workspace.yml + block: + - name: Set git repo for multiple users + ansible.builtin.set_fact: + _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" + _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" + _ocp4_workload_devspaces_devworkspace_git_repo: >- + {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0 + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + + - name: Create DevWorkspace + ansible.builtin.include_tasks: create_dev_workspace.yml loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" loop_control: loop_var: n From 8cb4d1b7154952d7b0c871c044337f9afd69fac3 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:45:14 +0100 Subject: [PATCH 09/17] Fix --- .../ocp4_workload_devspaces/tasks/workload.yml | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index 00bb618..d95848f 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -61,17 +61,13 @@ - name: Create DevWorkspace for multiple users when: ocp4_workload_devspaces_user_count | int > 1 - block: - - name: Set git repo for multiple users - ansible.builtin.set_fact: - _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" - _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" - _ocp4_workload_devspaces_devworkspace_git_repo: >- - {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0 - else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} - - - name: Create DevWorkspace - ansible.builtin.include_tasks: create_dev_workspace.yml + ansible.builtin.include_tasks: create_dev_workspace.yml + vars: + _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" + _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" + _ocp4_workload_devspaces_devworkspace_git_repo: >- + {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0 + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" loop_control: loop_var: n From b0d3d7160121259d1b3b1a904711ba4f920d1786 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:47:33 +0100 Subject: [PATCH 10/17] user number logic --- roles/ocp4_workload_devspaces/tasks/workload.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index d95848f..dea5ae3 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -46,21 +46,19 @@ retries: 15 delay: 5 - - name: Set git repo for single user - when: ocp4_workload_devspaces_user_count | int == 1 - ansible.builtin.set_fact: + - name: Create DevWorkspace for single user + when: ocp4_workload_devspaces_user_count is not defined + vars: _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0 else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} - - name: Create DevWorkspace for single user - when: ocp4_workload_devspaces_user_count | int == 1 ansible.builtin.include_tasks: create_dev_workspace.yml - name: Create DevWorkspace for multiple users - when: ocp4_workload_devspaces_user_count | int > 1 + when: ocp4_workload_devspaces_user_count is defined ansible.builtin.include_tasks: create_dev_workspace.yml vars: _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" From 0726971d15a53efe82df864a976a240a94857f48 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:48:27 +0100 Subject: [PATCH 11/17] Fix info --- roles/ocp4_workload_devspaces/tasks/save_user_information.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml index 1da6c5a..4ff52c8 100644 --- a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml +++ b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml @@ -15,13 +15,13 @@ _ocp4_workload_devspaces_url: "https://{{ r_devspaces_route.resources[0].spec.host }}" - name: Save DevSpaces URL (single user) - when: ocp4_workload_devspaces_user_count | int == 1 + when: ocp4_workload_devspaces_user_count is not defined agnosticd.core.agnosticd_user_info: data: devspaces_url: "{{ _ocp4_workload_devspaces_url }}" - name: Save DevSpaces URL (multiple users) - when: ocp4_workload_devspaces_user_count | int > 1 + when: ocp4_workload_devspaces_user_count is defined agnosticd.core.agnosticd_user_info: user: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" data: From d988c59c7691f09ddfe1dceb1233a83e6107eb0a Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 14:59:11 +0100 Subject: [PATCH 12/17] Fix label --- .../tasks/save_user_information.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml index 4ff52c8..91179e1 100644 --- a/roles/ocp4_workload_devspaces/tasks/save_user_information.yml +++ b/roles/ocp4_workload_devspaces/tasks/save_user_information.yml @@ -23,10 +23,7 @@ - name: Save DevSpaces URL (multiple users) when: ocp4_workload_devspaces_user_count is defined agnosticd.core.agnosticd_user_info: - user: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" + user: "{{ ocp4_workload_devspaces_user_base }}{{ item }}" data: devspaces_url: "{{ _ocp4_workload_devspaces_url }}" - loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" - loop_control: - loop_var: n - label: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" + loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" From 8a41ec0df4590bf4c5f11c1569c480df1db56b72 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 15:08:24 +0100 Subject: [PATCH 13/17] Fix git url? --- roles/ocp4_workload_devspaces/tasks/workload.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index dea5ae3..ebf243b 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -52,8 +52,8 @@ _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- - {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0 - else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo is defined + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name ) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} ansible.builtin.include_tasks: create_dev_workspace.yml @@ -64,8 +64,8 @@ _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- - {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo | default('') | trim | length) > 0 - else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name | default('')) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo is defined + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" loop_control: loop_var: n From 6657000fcc8b271b1f0c4da924f799c4860eccba Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 15:09:31 +0100 Subject: [PATCH 14/17] fix brackets --- roles/ocp4_workload_devspaces/tasks/workload.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index ebf243b..60ba3d6 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -53,7 +53,7 @@ _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo is defined - else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name ) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name ) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} ansible.builtin.include_tasks: create_dev_workspace.yml @@ -65,7 +65,7 @@ _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo is defined - else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ (ocp4_workload_devspaces_devworkspace_git_repo_name) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" loop_control: loop_var: n From 55e00d0f09553004b1da9f6973740388ba4942f1 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 15:10:50 +0100 Subject: [PATCH 15/17] bracket? --- roles/ocp4_workload_devspaces/tasks/workload.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index 60ba3d6..d3b6f12 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -52,9 +52,8 @@ _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- - {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo is defined + {{ ocp4_workload_devspaces_devworkspace_git_repo if ocp4_workload_devspaces_devworkspace_git_repo is defined else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name ) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} - ansible.builtin.include_tasks: create_dev_workspace.yml - name: Create DevWorkspace for multiple users @@ -64,7 +63,7 @@ _ocp4_workload_devspaces_devworkspace_namespace: "{{ ocp4_workload_devspaces_devworkspace_namespace_base }}{{ ocp4_workload_devspaces_user_base }}{{ n }}" _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- - {{ ocp4_workload_devspaces_devworkspace_git_repo if (ocp4_workload_devspaces_devworkspace_git_repo is defined + {{ ocp4_workload_devspaces_devworkspace_git_repo if ocp4_workload_devspaces_devworkspace_git_repo is defined else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" loop_control: From 26f92fdd6f7a481bf4ca39ddc311530a9f9e5a7e Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 15:11:55 +0100 Subject: [PATCH 16/17] Another bracket --- roles/ocp4_workload_devspaces/tasks/workload.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ocp4_workload_devspaces/tasks/workload.yml b/roles/ocp4_workload_devspaces/tasks/workload.yml index d3b6f12..a59a088 100644 --- a/roles/ocp4_workload_devspaces/tasks/workload.yml +++ b/roles/ocp4_workload_devspaces/tasks/workload.yml @@ -53,7 +53,7 @@ _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_username }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- {{ ocp4_workload_devspaces_devworkspace_git_repo if ocp4_workload_devspaces_devworkspace_git_repo is defined - else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name ) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} ansible.builtin.include_tasks: create_dev_workspace.yml - name: Create DevWorkspace for multiple users @@ -64,7 +64,7 @@ _ocp4_workload_devspaces_devworkspace_username: "{{ ocp4_workload_devspaces_user_base }}{{ n }}" _ocp4_workload_devspaces_devworkspace_git_repo: >- {{ ocp4_workload_devspaces_devworkspace_git_repo if ocp4_workload_devspaces_devworkspace_git_repo is defined - else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name) if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} + else (ocp4_workload_devspaces_devworkspace_git_repo_base ~ '/' ~ ocp4_workload_devspaces_user_base ~ n ~ '/' ~ ocp4_workload_devspaces_devworkspace_git_repo_name if ocp4_workload_devspaces_devworkspace_git_repo_base is defined else "") }} loop: "{{ range(1, ocp4_workload_devspaces_user_count | int + 1) | list }}" loop_control: loop_var: n From b32bdad9b940555388812a4ac75edd7fa1d74f47 Mon Sep 17 00:00:00 2001 From: Wolfgang Kulhanek Date: Fri, 27 Feb 2026 15:14:54 +0100 Subject: [PATCH 17/17] Fix default --- roles/ocp4_workload_devspaces/defaults/main.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/roles/ocp4_workload_devspaces/defaults/main.yml b/roles/ocp4_workload_devspaces/defaults/main.yml index ea9d916..0432f6c 100644 --- a/roles/ocp4_workload_devspaces/defaults/main.yml +++ b/roles/ocp4_workload_devspaces/defaults/main.yml @@ -24,12 +24,14 @@ ocp4_workload_devspaces_devworkspace_name: workspace # or ocp4_workload_devspaces_devworkspace_namespace_base-ocp4_workload_devspaces_user_baseXX ocp4_workload_devspaces_devworkspace_namespace_base: devworkspace- -# Repo to be cloned into the devworkspace +# Repo to be cloned into the devworkspace - one of the two options must be set # Either the full path to a repository -ocp4_workload_devspaces_devworkspace_git_repo: https://github.com/eclipse-che/che-docs +# ocp4_workload_devspaces_devworkspace_git_repo: https://github.com/eclipse-che/che-docs + # Or the Base followed by userXX followed by repo name # ocp4_workload_devspaces_devworkspace_git_repo_base: http://gitea.gitea.svc:3000 # ocp4_workload_devspaces_devworkspace_git_repo_name: reponame + ocp4_workload_devspaces_devworkspace_git_revision: main ocp4_workload_devspaces_devworkspace_components: