From 88bee6c68ed7518d9906c982486dcda6f56e02e7 Mon Sep 17 00:00:00 2001
From: forselli-stratio <41321889+forselli-stratio@users.noreply.github.com>
Date: Wed, 3 Feb 2021 16:22:29 +0100
Subject: [PATCH] Fix ansible calico route reflector tasks in calico role
 (#7224)

* Fix calico-rr tasks

* revert stdin only when it's already a string
---
 roles/network_plugin/calico/tasks/install.yml | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml
index 561bcd876..f5a9afc33 100644
--- a/roles/network_plugin/calico/tasks/install.yml
+++ b/roles/network_plugin/calico/tasks/install.yml
@@ -138,7 +138,7 @@
 - name: Calico | Configure calico network pool
   command:
     cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
-    stdin: "{{ stdin | to_json }}"
+    stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}"
   vars:
     stdin: >
       { "kind": "IPPool",
@@ -173,7 +173,7 @@
 - name: Calico | Set up BGP Configuration
   command:
     cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
-    stdin: "{{ stdin | to_json }}"
+    stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}"
   vars:
     stdin: >
       { "kind": "BGPConfiguration",
@@ -194,7 +194,7 @@
 - name: Calico | Configure peering with router(s) at global scope
   command:
     cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
-    stdin: "{{ stdin | to_json }}"
+    stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}"
   vars:
     stdin: >
       {"apiVersion": "projectcalico.org/v3",
@@ -219,7 +219,8 @@
 - name: Calico | Configure peering with route reflectors at global scope
   command:
     cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
-    stdin: "{{ stdin | to_json }}"
+    # revert when it's already a string
+    stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}"
   vars:
     stdin: >
       {"apiVersion": "projectcalico.org/v3",
@@ -244,7 +245,8 @@
 - name: Calico | Configure route reflectors to peer with each other
   command:
     cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
-    stdin: "{{ stdin | to_json }}"
+    # revert when it's already a string
+    stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}"
   vars:
     stdin: >
       {"apiVersion": "projectcalico.org/v3",
@@ -320,7 +322,7 @@
 - name: Calico | Configure node asNumber for per node peering
   command:
     cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
-    stdin: "{{ stdin | to_json }}"
+    stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}"
   vars:
     stdin: >
       {"apiVersion": "projectcalico.org/v3",
@@ -347,7 +349,7 @@
 - name: Calico | Configure peering with router(s) at node scope
   command:
     cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
-    stdin: "{{ stdin | to_json }}"
+    stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}"
   vars:
     stdin: >
       {"apiVersion": "projectcalico.org/v3",
-- 
GitLab