From f0cf113325980af59adfa513cb24ca2ec702f544 Mon Sep 17 00:00:00 2001 From: Bas Date: Mon, 16 Dec 2024 18:18:30 +0100 Subject: [PATCH] Feature/kubeblocks (#64) * kubeblocks * ignore * KubeBlocks * creation * ignore * info --- .gitignore | 3 +-- addons.yml | 14 ++++++++++++++ clusters.yml | 10 ++++++++++ inventory/test/group_vars/all/vars.yml | 23 +++++++++++++++++++++++ kubeblocks.yml | 21 +++++++++++++++++++++ roles/requirements.yml | 4 ++++ 6 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 addons.yml create mode 100644 clusters.yml create mode 100644 kubeblocks.yml create mode 100644 roles/requirements.yml diff --git a/.gitignore b/.gitignore index 05e6095..9577c4c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ .vagrant .vscode -roles/geerlingguy.docker -roles/proxy +roles/bbaassssiiee.* diff --git a/addons.yml b/addons.yml new file mode 100644 index 0000000..b5407f6 --- /dev/null +++ b/addons.yml @@ -0,0 +1,14 @@ +- name: Create namespace for KubeBlocks add-on + kubernetes.core.k8s: + name: "{{ item.addon_namespace }}" + api_version: v1 + kind: Namespace + state: present + +- name: Install the KubeBlocks add-on + kubernetes.core.helm: + name: "{{ addon_name }}" + chart_ref: "{{ helm_repo_name }}/{{ helm_chart_name }}" + release_namespace: "{{ addon_namespace }}" + create_namespace: true + state: present diff --git a/clusters.yml b/clusters.yml new file mode 100644 index 0000000..cb032fa --- /dev/null +++ b/clusters.yml @@ -0,0 +1,10 @@ +- name: Create namespace for KubeBlocks cluster + kubernetes.core.k8s: + name: "{{ item.kb_cluster_ns }}" + api_version: v1 + kind: Namespace + state: present + +- name: Create the KubeBlocks cluster + ansible.builtin.command: + cmd: "kbcli cluster create {{ kb_cluster_type }} {{ kb_cluster_name }} -n {{ kb_cluster_name }}" diff --git a/inventory/test/group_vars/all/vars.yml b/inventory/test/group_vars/all/vars.yml index a608eac..adb6662 100644 --- a/inventory/test/group_vars/all/vars.yml +++ b/inventory/test/group_vars/all/vars.yml @@ -37,3 +37,26 @@ ntp_servers: http_proxy: "http://10.0.0.206:3128" https_proxy: "http://10.0.0.206:3128" + +kubeblocks_add_ons: + - addon_name: kb-addon-pg + helm_repo_name: kubeblocks + helm_chart_name: postgresql + addon_namespace: kb-system + # rabbitmq cluster cannot be created with kbcli, use kubectl + - addon_name: kb-addon-rmq + helm_repo_name: kubeblocks + helm_chart_name: rabbitmq + addon_namespace: kb-system + - addon_name: kb-addon-kafka + helm_repo_name: kubeblocks + helm_chart_name: kafka + addon_namespace: kb-system + +kubeblocks_clusters: + - kb_cluster_type: postgresql + kb_cluster_name: data + kb_cluster_ns: kb-postgres + - kb_cluster_type: kafka + kb_cluster_name: kafka-one + kb_cluster_ns: kb-stream diff --git a/kubeblocks.yml b/kubeblocks.yml new file mode 100644 index 0000000..85991a3 --- /dev/null +++ b/kubeblocks.yml @@ -0,0 +1,21 @@ +--- +# ~/.kube/config should be valid +- name: Manage KubeBlocks + hosts: localhost + become: false + tasks: + - name: Install KubeBlocks + ansible.builtin.include_role: + name: bbaassssiiee.kubeblocks + + - name: Install KubeBlocks add-ons + when: + - kubeblocks_add_ons|length >= 1 + ansible.builtin.include_tasks: addons.yml + loop: "{{ kubeblocks_add_ons }}" + + - name: Install KubeBlock clusters + when: + - kubeblocks_clusters|length >= 1 + ansible.builtin.include_tasks: clusters.yml + loop: "{{ kubeblocks_clusters }}" diff --git a/roles/requirements.yml b/roles/requirements.yml new file mode 100644 index 0000000..68ec953 --- /dev/null +++ b/roles/requirements.yml @@ -0,0 +1,4 @@ +--- +roles: + - src: https://github.com/bbaassssiiee/ansible-role-kubeblocks.git + name: bbaassssiiee.kubeblocks