From 2c0aff55eccdd7c15968764559bba749c3ed3668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20Gourv=C3=A9nec?= Date: Wed, 5 Jul 2023 12:21:13 +0200 Subject: [PATCH 1/2] Add tasks to create only 1 client Rational: adding a client seems inoffensive. Updating a client on the other hand is not (removing then adding a client). --- tasks/hydra-create-client.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 tasks/hydra-create-client.yml diff --git a/tasks/hydra-create-client.yml b/tasks/hydra-create-client.yml new file mode 100644 index 0000000..da2ec5b --- /dev/null +++ b/tasks/hydra-create-client.yml @@ -0,0 +1,18 @@ +--- +# Simple task to create 1 client for hydra. Fails if the client already exists. +# Parameter: client_id + +- fail: msg='Error, client does not exist. Please define the client first' + when: hydra_clients|selectattr("client_id", "equalto", client_id)|list|length == 0 + +- name: Create hydra-client + template: + src: hydra-client.json.j2 + dest: "/etc/hydra/clients.d/{{ item.client_id }}.json" + with_items: "{{ hydra_clients }}" + when: item.client_id == client_id + become: true + +- name: Import client + command: podman exec -t cadoles-pod-hydra-v1 /bin/sh -c "hydra clients import /etc/hydra/clients.d/{{ client_id }}.json --endpoint http://127.0.0.1:4445" + become: true -- 2.17.1 From e2e36216b02d523f4c83b166bd1c3b15cdf7731b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20Gourv=C3=A9nec?= Date: Mon, 10 Jul 2023 11:36:46 +0200 Subject: [PATCH 2/2] Check hydra client doesn't exist before creating it --- tasks/hydra-create-client.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tasks/hydra-create-client.yml b/tasks/hydra-create-client.yml index da2ec5b..e8b5c14 100644 --- a/tasks/hydra-create-client.yml +++ b/tasks/hydra-create-client.yml @@ -5,6 +5,13 @@ - fail: msg='Error, client does not exist. Please define the client first' when: hydra_clients|selectattr("client_id", "equalto", client_id)|list|length == 0 +# Creating a client which already exists could create problems +- name: Check client doesn't already exists + command: podman exec -t cadoles-pod-hydra-v1 /bin/sh -c "hydra clients get {{ client_id }} --endpoint http://127.0.0.1:4445" + register: command_result + failed_when: command_result.rc == 0 + become: true + - name: Create hydra-client template: src: hydra-client.json.j2 -- 2.17.1