diff --git a/kubeblocks.yml b/kubeblocks.yml index 0345ed2..ad9dd5f 100755 --- a/kubeblocks.yml +++ b/kubeblocks.yml @@ -1,14 +1,22 @@ #!/usr/bin/env ansible-playbook --- -# ~/.kube/config should be valid -- name: Manage KubeBlocks +- name: Manage kbcli hosts: controller become: true + tasks: + - name: Configure KubeBlocks + ansible.builtin.include_role: + name: clusterlust.kbcli + +- name: Manage KubeBlocks + hosts: localhost + become: false + connection: local vars: # Semaphore does not pass $HOME so K8S_AUTH_KUBECONFIG needs to be set. k8s_auth_kubeconfig: /home/semaphore/.kube/config - # To use KubeBlocks addons set this Boolean - #use_kb_addons: true + # To manage KubeBlocks addons set this Boolean + # use_kb_addons: true tasks: - name: Configure KubeBlocks ansible.builtin.include_role: diff --git a/roles/clusterlust.kbcli/defaults/main.yml b/roles/clusterlust.kbcli/defaults/main.yml new file mode 100644 index 0000000..1147aa7 --- /dev/null +++ b/roles/clusterlust.kbcli/defaults/main.yml @@ -0,0 +1,5 @@ +# kbcli +kbcli_releases_url: 'https://api.github.com/repos/apecloud/kbcli/releases/latest' +kbcli_repo_url: 'https://github.com/apecloud/kbcli/releases/download' +use_kbcli: true +desired_state: present diff --git a/roles/clusterlust.kbcli/tasks/absent.yml b/roles/clusterlust.kbcli/tasks/absent.yml new file mode 100644 index 0000000..fa345df --- /dev/null +++ b/roles/clusterlust.kbcli/tasks/absent.yml @@ -0,0 +1,7 @@ +--- + +- name: Remove kbcli + when: use_kbcli | bool + ansible.builtin.package: + name: kbcli + state: absent diff --git a/roles/clusterlust.kubeblocks/tasks/kbcli.yml b/roles/clusterlust.kbcli/tasks/kbcli.yml similarity index 100% rename from roles/clusterlust.kubeblocks/tasks/kbcli.yml rename to roles/clusterlust.kbcli/tasks/kbcli.yml diff --git a/roles/clusterlust.kbcli/tasks/main.yml b/roles/clusterlust.kbcli/tasks/main.yml new file mode 100644 index 0000000..dfeedbb --- /dev/null +++ b/roles/clusterlust.kbcli/tasks/main.yml @@ -0,0 +1,4 @@ +--- +# desired_state in ['absent', 'present'] +- name: "Converge state - {{ desired_state }}" + ansible.builtin.include_tasks: "{{ desired_state }}.yml" diff --git a/roles/clusterlust.kbcli/tasks/present.yml b/roles/clusterlust.kbcli/tasks/present.yml new file mode 100644 index 0000000..4ff7590 --- /dev/null +++ b/roles/clusterlust.kbcli/tasks/present.yml @@ -0,0 +1,5 @@ +--- + +- name: Install kbcli + when: use_kbcli | bool + ansible.builtin.include_tasks: "kbcli.yml" diff --git a/roles/clusterlust.kubeblocks/tasks/absent.yml b/roles/clusterlust.kubeblocks/tasks/absent.yml index d4cdb67..1aa73c4 100644 --- a/roles/clusterlust.kubeblocks/tasks/absent.yml +++ b/roles/clusterlust.kubeblocks/tasks/absent.yml @@ -1,10 +1,5 @@ --- +# when: desired_state == 'absent' - name: Remove KubeBlocks when: use_kubeblocks | bool ansible.builtin.include_tasks: "kubeblocks.yml" - -- name: Remove kbcli - when: use_kbcli | bool - ansible.builtin.package: - name: kbcli - state: absent diff --git a/roles/clusterlust.kubeblocks/tasks/main.yml b/roles/clusterlust.kubeblocks/tasks/main.yml index 3640b5a..1deef0b 100644 --- a/roles/clusterlust.kubeblocks/tasks/main.yml +++ b/roles/clusterlust.kubeblocks/tasks/main.yml @@ -1,6 +1,5 @@ --- -# Main tasks entry point for the role - +# desired_state in ['absent', 'present'] - name: "Converge state - {{ desired_state }}" ansible.builtin.include_tasks: "{{ desired_state }}.yml" diff --git a/roles/clusterlust.kubeblocks/tasks/present.yml b/roles/clusterlust.kubeblocks/tasks/present.yml index 1d1b458..f227ce1 100644 --- a/roles/clusterlust.kubeblocks/tasks/present.yml +++ b/roles/clusterlust.kubeblocks/tasks/present.yml @@ -1,17 +1,9 @@ --- # when: desired_state == 'present' - -# Works -- name: Install kbcli - when: use_kbcli | bool - ansible.builtin.include_tasks: "kbcli.yml" - -# Works - name: Install KubeBlocks when: use_kubeblocks | bool ansible.builtin.include_tasks: "kubeblocks.yml" -# This needs more development - name: Manage KubeBlocks Add-ons when: use_kb_addons | bool ansible.builtin.include_tasks: "addons.yml"