K8s Migration Phase 0: Foundation Infrastructure #26
5 changed files with 74 additions and 0 deletions
Add minikube role for Kubernetes cluster on indri
- Create ansible/roles/minikube for minikube cluster setup - Use podman driver with cri-o runtime - Set memory to 7800MB (vs 8192 podman) to account for VM overhead - Add minikube role to indri playbook - Update k8s-migration plan with implementation details Deployed with Kubernetes v1.34.0 and CRI-O 1.24.6. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
commit
2c90dc01a4
|
|
@ -105,6 +105,8 @@
|
|||
tags: zot_metrics
|
||||
- role: podman
|
||||
tags: podman
|
||||
- role: minikube
|
||||
tags: minikube
|
||||
- role: plex_metrics
|
||||
tags: plex_metrics
|
||||
- role: postgresql
|
||||
|
|
|
|||
8
ansible/roles/minikube/defaults/main.yml
Normal file
8
ansible/roles/minikube/defaults/main.yml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
# Minikube cluster configuration
|
||||
minikube_cpus: 4
|
||||
# Note: Must be less than podman machine memory (8192MB) to account for overhead
|
||||
minikube_memory: 7800
|
||||
minikube_disk_size: "200g"
|
||||
minikube_driver: podman
|
||||
minikube_container_runtime: cri-o
|
||||
9
ansible/roles/minikube/handlers/main.yml
Normal file
9
ansible/roles/minikube/handlers/main.yml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
# Minikube handlers
|
||||
# Note: Restarting minikube is a heavy operation and may require manual intervention
|
||||
|
||||
- name: Restart minikube
|
||||
ansible.builtin.shell: |
|
||||
minikube stop 2>/dev/null || true
|
||||
minikube start
|
||||
changed_when: true
|
||||
51
ansible/roles/minikube/tasks/main.yml
Normal file
51
ansible/roles/minikube/tasks/main.yml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
# Minikube installation and cluster setup for indri
|
||||
# Requires podman machine to be running (see podman role)
|
||||
#
|
||||
# NOTE: Similar to podman, minikube start may have issues when run via SSH.
|
||||
# If cluster fails to start, manually run on indri:
|
||||
# minikube start --driver=podman --container-runtime=cri-o \
|
||||
# --cpus=4 --memory=8192 --disk-size=200g
|
||||
|
||||
- name: Install minikube via homebrew
|
||||
community.general.homebrew:
|
||||
name: minikube
|
||||
state: present
|
||||
|
||||
- name: Install kubectl via homebrew
|
||||
community.general.homebrew:
|
||||
name: kubectl
|
||||
state: present
|
||||
|
||||
- name: Check if minikube cluster exists
|
||||
ansible.builtin.command:
|
||||
cmd: minikube status --format={% raw %}'{{.Host}}'{% endraw %}
|
||||
register: minikube_status
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Start minikube cluster
|
||||
ansible.builtin.command:
|
||||
cmd: >
|
||||
minikube start
|
||||
--driver={{ minikube_driver }}
|
||||
--container-runtime={{ minikube_container_runtime }}
|
||||
--cpus={{ minikube_cpus }}
|
||||
--memory={{ minikube_memory }}
|
||||
--disk-size={{ minikube_disk_size }}
|
||||
register: minikube_start
|
||||
changed_when: minikube_start.rc == 0
|
||||
failed_when: false # Don't fail - may need manual intervention like podman
|
||||
when: minikube_status.rc != 0 or 'Running' not in minikube_status.stdout
|
||||
|
||||
- name: Check minikube status after start attempt
|
||||
ansible.builtin.command:
|
||||
cmd: minikube status --format={% raw %}'{{.Host}}'{% endraw %}
|
||||
register: minikube_final_status
|
||||
changed_when: false
|
||||
failed_when: false
|
||||
|
||||
- name: Warn if minikube failed to start
|
||||
ansible.builtin.debug:
|
||||
msg: "WARNING: minikube may not have started properly. Run 'minikube start' manually on indri if needed. Status: {{ minikube_final_status.stdout | default('unknown') }}"
|
||||
when: minikube_final_status.rc != 0 or 'Running' not in minikube_final_status.stdout
|
||||
|
|
@ -598,6 +598,10 @@ ssh indri 'kubectl get nodes'
|
|||
# Expected: minikube Ready control-plane ...
|
||||
```
|
||||
|
||||
**Implementation Details:**
|
||||
- Changed `minikube_memory` from 8192 to 7800 because podman machine reports slightly less available memory (7908MB) due to VM overhead. Minikube rejects memory requests exceeding what podman reports.
|
||||
- Deployed with Kubernetes v1.34.0 and CRI-O 1.24.6.
|
||||
|
||||
---
|
||||
|
||||
### Step 0.10: Configure Kubeconfig on Gilbert
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue