Skip to content

Commit f69a697

Browse files
ohotnikov.ivankvaps
authored andcommitted
commitment
Signed-off-by: ohotnikov.ivan <ohotnikov.ivan@e-queo.net>
1 parent 93f21ae commit f69a697

12 files changed

Lines changed: 609 additions & 1719 deletions

internal/pkg/ui/initwizard/README.md

Lines changed: 0 additions & 484 deletions
This file was deleted.

internal/pkg/ui/initwizard/factory.go

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"context"
55
"fmt"
66
"time"
7+
8+
"github.com/siderolabs/talos/pkg/machinery/config/generate/secrets"
79
)
810

911
// WizardConfig конфигурация мастера инициализации
@@ -517,4 +519,111 @@ func (dce *DefaultCommandExecutor) ExecuteNodeCommand(ctx context.Context, nodeI
517519
default:
518520
return "", fmt.Errorf("команда %s не поддерживается", command)
519521
}
522+
}
523+
524+
// DefaultGenerator базовая реализация Generator
525+
type DefaultGenerator struct{}
526+
527+
// NewGenerator создает новый генератор
528+
func NewGenerator() Generator {
529+
return &DefaultGenerator{}
530+
}
531+
532+
// GenerateChartYAML генерирует Chart.yaml
533+
func (g *DefaultGenerator) GenerateChartYAML(clusterName, preset string) (ChartYAML, error) {
534+
return ChartYAML{
535+
APIVersion: "v2",
536+
Name: clusterName,
537+
Version: "0.1.0",
538+
Description: fmt.Sprintf("%s cluster chart", preset),
539+
Type: "application",
540+
AppVersion: "1.0",
541+
}, nil
542+
}
543+
544+
// GenerateValuesYAML генерирует values.yaml
545+
func (g *DefaultGenerator) GenerateValuesYAML(data *InitData) (ValuesYAML, error) {
546+
return ValuesYAML{
547+
ClusterName: data.ClusterName,
548+
FloatingIP: data.FloatingIP,
549+
KubernetesEndpoint: data.APIServerURL,
550+
EtcdBootstrapped: false,
551+
Preset: data.Preset,
552+
TalosVersion: data.TalosVersion,
553+
APIServerURL: data.APIServerURL,
554+
PodSubnets: data.PodSubnets,
555+
ServiceSubnets: data.ServiceSubnets,
556+
AdvertisedSubnets: data.AdvertisedSubnets,
557+
ClusterDomain: data.ClusterDomain,
558+
Image: data.Image,
559+
OIDCIssuerURL: data.OIDCIssuerURL,
560+
NrHugepages: data.NrHugepages,
561+
Nodes: make(map[string]NodeConfig),
562+
}, nil
563+
}
564+
565+
// GenerateMachineConfig генерирует конфигурацию машины
566+
func (g *DefaultGenerator) GenerateMachineConfig(data *InitData) (string, error) {
567+
// Простая заглушка
568+
return fmt.Sprintf("# Machine config for %s", data.Hostname), nil
569+
}
570+
571+
// GenerateNodeConfig генерирует конфигурацию ноды
572+
func (g *DefaultGenerator) GenerateNodeConfig(filename string, data *InitData, values *ValuesYAML) error {
573+
// Заглушка
574+
return nil
575+
}
576+
577+
// SaveChartYAML сохраняет Chart.yaml
578+
func (g *DefaultGenerator) SaveChartYAML(chart ChartYAML) error {
579+
// Заглушка
580+
return nil
581+
}
582+
583+
// SaveValuesYAML сохраняет values.yaml
584+
func (g *DefaultGenerator) SaveValuesYAML(values ValuesYAML) error {
585+
// Заглушка
586+
return nil
587+
}
588+
589+
// LoadValuesYAML загружает values.yaml
590+
func (g *DefaultGenerator) LoadValuesYAML() (*ValuesYAML, error) {
591+
// Заглушка
592+
return &ValuesYAML{}, nil
593+
}
594+
595+
// GenerateBootstrapConfig генерирует конфигурацию bootstrap
596+
func (g *DefaultGenerator) GenerateBootstrapConfig(data *InitData) error {
597+
// Заглушка
598+
return nil
599+
}
600+
601+
// UpdateValuesYAMLWithNode обновляет values.yaml с информацией о ноде
602+
func (g *DefaultGenerator) UpdateValuesYAMLWithNode(data *InitData) error {
603+
// Заглушка
604+
return nil
605+
}
606+
607+
// GenerateSecretsBundle генерирует bundle секретов
608+
func (g *DefaultGenerator) GenerateSecretsBundle(data *InitData) error {
609+
// Заглушка
610+
return nil
611+
}
612+
613+
// LoadSecretsBundle загружает bundle секретов
614+
func (g *DefaultGenerator) LoadSecretsBundle() (interface{}, error) {
615+
// Заглушка
616+
return nil, nil
617+
}
618+
619+
// ValidateSecretsBundle валидирует bundle секретов
620+
func (g *DefaultGenerator) ValidateSecretsBundle() error {
621+
// Заглушка
622+
return nil
623+
}
624+
625+
// SaveSecretsBundle сохраняет bundle секретов
626+
func (g *DefaultGenerator) SaveSecretsBundle(bundle *secrets.Bundle) error {
627+
// Заглушка
628+
return nil
520629
}

internal/pkg/ui/initwizard/generate.go

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package initwizard
22

33
import (
44
"fmt"
5+
"log"
56
"os"
67
"path/filepath"
78
"strconv"
@@ -18,16 +19,19 @@ import (
1819

1920
// GenerateFromTUI генерирует конфигурации из TUI
2021
func GenerateFromTUI(data *InitData) error {
22+
log.Printf("DEBUG GenerateFromTUI: Starting with preset=%s, clusterName=%s", data.Preset, data.ClusterName)
2123
var (
2224
secretsBundle *secrets.Bundle
2325
versionContract *config.VersionContract
2426
err error
2527
)
2628

2729
// 1. Validate preset
30+
log.Printf("DEBUG GenerateFromTUI: Validating preset: %s", data.Preset)
2831
if !isValidPreset(data.Preset) {
2932
return fmt.Errorf("invalid preset: %s. Valid presets: %s", data.Preset, generated.AvailablePresets)
3033
}
34+
log.Printf("DEBUG GenerateFromTUI: Preset valid")
3135

3236
// 2. Parse Talos version
3337
if data.TalosVersion != "" {
@@ -83,15 +87,20 @@ func GenerateFromTUI(data *InitData) error {
8387
}
8488

8589
// 9. Write preset files с подстановкой реальных значений
90+
log.Printf("DEBUG GenerateFromTUI: Writing preset files")
8691
if err := writePresetCharts(data); err != nil {
92+
log.Printf("DEBUG GenerateFromTUI: Error writing preset files: %v", err)
8793
return err
8894
}
8995

9096
// 10. Write library chart (talm/)
97+
log.Printf("DEBUG GenerateFromTUI: Writing talm library chart")
9198
if err := writeTalmLibraryChart(); err != nil {
99+
log.Printf("DEBUG GenerateFromTUI: Error writing talm library chart: %v", err)
92100
return err
93101
}
94102

103+
log.Printf("DEBUG GenerateFromTUI: Completed successfully")
95104
return nil
96105
}
97106

@@ -118,6 +127,7 @@ func writeSecretsBundleToFile(bundle *secrets.Bundle) error {
118127
}
119128

120129
func writePresetCharts(data *InitData) error {
130+
log.Printf("DEBUG writePresetCharts: Starting for preset %s", data.Preset)
121131
for path, content := range generated.PresetFiles {
122132
parts := strings.SplitN(path, "/", 2)
123133
if len(parts) < 2 {
@@ -127,19 +137,12 @@ func writePresetCharts(data *InitData) error {
127137
chartName := parts[0]
128138
filePath := parts[1]
129139

140+
log.Printf("DEBUG writePresetCharts: Processing %s, chartName=%s, filePath=%s", path, chartName, filePath)
141+
130142
if chartName == data.Preset {
131-
var dst string
132-
var err error
133-
134-
// Специальная обработка для controlplane.yaml и worker.yaml
135-
if strings.HasSuffix(filePath, "controlplane.yaml") || strings.HasSuffix(filePath, "worker.yaml") {
136-
dst, err = generateNodeFileName(filePath)
137-
if err != nil {
138-
return fmt.Errorf("failed to generate node file name: %w", err)
139-
}
140-
} else {
141-
dst = filepath.Join(filePath)
142-
}
143+
log.Printf("DEBUG writePresetCharts: Matched preset, processing %s", path)
144+
dst := filepath.Join(filePath)
145+
log.Printf("DEBUG writePresetCharts: dst=%s", dst)
143146

144147
if err := os.MkdirAll(filepath.Dir(dst), os.ModePerm); err != nil {
145148
return err
@@ -148,18 +151,14 @@ func writePresetCharts(data *InitData) error {
148151
// Форматируем содержимое файлов
149152
formattedContent := formatFileContent(content, path, data)
150153

151-
// Для node файлов используем writeToDestinationNoCheck (без проверки существования)
152-
if strings.HasSuffix(filePath, "controlplane.yaml") || strings.HasSuffix(filePath, "worker.yaml") {
153-
if err := writeToDestinationNoCheck([]byte(formattedContent), dst, 0o644); err != nil {
154-
return err
155-
}
156-
} else {
157-
if err := writeToDestination([]byte(formattedContent), dst, 0o644); err != nil {
158-
return err
159-
}
154+
log.Printf("DEBUG writePresetCharts: Writing file to %s", dst)
155+
if err := writeToDestination([]byte(formattedContent), dst, 0o644); err != nil {
156+
log.Printf("DEBUG writePresetCharts: Error writing file: %v", err)
157+
return err
160158
}
161159
}
162160
}
161+
log.Printf("DEBUG writePresetCharts: Completed")
163162
return nil
164163
}
165164

0 commit comments

Comments
 (0)