diff --git a/assets/playbooks/k3s.yml b/assets/playbooks/k3s.yml index f7a6bbb..9f48c34 100644 --- a/assets/playbooks/k3s.yml +++ b/assets/playbooks/k3s.yml @@ -31,7 +31,7 @@ - name: Install K3s agent ansible.builtin.shell: /tmp/k3s_install.sh environment: - K3S_URL: "https://{{ hostvars[groups['control_plane'][0]]['ansible_host'] }}:6443" + K3S_URL: "https://{{ hostvars[groups['control_plane'][0]]['inventory_hostname'] }}:6443" K3S_TOKEN: "{{ hostvars[groups['control_plane'][0]]['node_token']['stdout'] }}" - name: Configure kubectl on control plane @@ -108,7 +108,7 @@ kubernetes.core.k8s_taint: kubeconfig: "{{ kubeconfig }}" state: present - name: "{{ hostvars[groups['control_plane'][0]]['ansible_host'] }}" + name: "{{ hostvars[groups['control_plane'][0]]['inventory_hostname'] }}" taints: - key: "node-role.kubernetes.io/control-plane" effect: "NoSchedule" diff --git a/cmd/init.go b/cmd/init.go index cec460a..d8b8323 100644 --- a/cmd/init.go +++ b/cmd/init.go @@ -110,6 +110,9 @@ func createTemplates(overwrite bool) error { if err != nil { return fmt.Errorf("error creating templates directory: %w", err) } + fmt.Printf("Templates directory created at %s\n", templatesDir) + } else { + fmt.Printf("Templates directory already exists at %s\n", templatesDir) } return initializeFiles(assets.TemplateFiles, "templates", templatesDir, overwrite) } @@ -132,6 +135,9 @@ func createPlaybooks(overwrite bool) error { if err != nil { return fmt.Errorf("error creating playbooks directory: %w", err) } + fmt.Printf("Playbooks directory created at %s\n", playbooksDir) + } else { + fmt.Printf("Playbooks directory already exists at %s\n", playbooksDir) } return initializeFiles(assets.PlaybookFiles, "playbooks", playbooksDir, overwrite) } @@ -154,8 +160,10 @@ func createDefaultKeysDir() error { if err != nil { return fmt.Errorf("error creating default keys directory: %w", err) } + fmt.Printf("Default keys directory created at %s\n", defaultKeysDir) + } else { + fmt.Printf("Default keys directory already exists at %s\n", defaultKeysDir) } - fmt.Printf("Default keys directory created at %s\n", defaultKeysDir) return nil } @@ -177,8 +185,10 @@ func createDefaultLabStorage() error { if err != nil { return fmt.Errorf("error writing default lab storage file: %w", err) } + fmt.Printf("Default lab storage file created at %s\n", labStorageFile) + } else { + fmt.Printf("Default lab storage file already exists at %s\n", labStorageFile) } - fmt.Printf("Default lab storage file created at %s\n", labStorageFile) return nil } @@ -203,7 +213,6 @@ func initializeFiles(sourceFS embed.FS, sourceDir, targetDir string, overwrite b relPath := path[len(sourceDir+"/"):] targetPath := filepath.Join(targetDir, relPath) - fmt.Printf("Extracting %s to %s\n", path, targetPath) // Ensure subdirectories exist if err := os.MkdirAll(filepath.Dir(targetPath), 0755); err != nil { @@ -216,6 +225,7 @@ func initializeFiles(sourceFS embed.FS, sourceDir, targetDir string, overwrite b return nil // Skip if file exists and overwrite is false } } + fmt.Printf("Extracting %s to %s\n", path, targetPath) return os.WriteFile(targetPath, content, 0644) }) } diff --git a/internal/lab/lab.go b/internal/lab/lab.go index 97d4ab1..f866aa0 100644 --- a/internal/lab/lab.go +++ b/internal/lab/lab.go @@ -288,6 +288,10 @@ func (m *ManagerSvc) Delete(labName string, force bool) error { if err != nil { return err } + // Check if the lab is ready for deletion + if !lab.Status.DeleteAfter.Before(time.Now().UTC()) && !force { + return fmt.Errorf("lab %s is not ready for deletion", labName) + } // delete volumes first for _, volume := range lab.Status.Volumes { m.Logger.Debug("deleting volume", "volume", volume.ObjectMeta.Name)