Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
5bfe9dd
kurl migration api
diamonwiggins Nov 20, 2025
3cda27d
f
diamonwiggins Nov 20, 2025
dfdcd29
remove example test
diamonwiggins Nov 20, 2025
6a9c61b
add function to discovery kotsadm namespace
diamonwiggins Nov 20, 2025
2d907b0
update web api types
diamonwiggins Nov 20, 2025
001ea87
address feedback
diamonwiggins Nov 20, 2025
2b73e74
fix lint
diamonwiggins Nov 20, 2025
fe84b34
fix lint
diamonwiggins Nov 20, 2025
1f418e3
address feedback
diamonwiggins Nov 20, 2025
3722c19
f
diamonwiggins Nov 21, 2025
0c10a4d
address feedback
diamonwiggins Nov 24, 2025
2cd1190
update swagger docs
diamonwiggins Nov 24, 2025
63a41d3
update web api types
diamonwiggins Nov 24, 2025
df9dda0
address feedback
diamonwiggins Nov 24, 2025
2c3021b
address feedback
diamonwiggins Nov 24, 2025
88d9300
fix unit tests
diamonwiggins Nov 24, 2025
e011059
remove unused code
diamonwiggins Nov 24, 2025
085c63f
fix set state bug
diamonwiggins Nov 24, 2025
b7891f6
address feedback
diamonwiggins Nov 24, 2025
6ffe614
remove comment
diamonwiggins Nov 24, 2025
0de7a8c
fix conflicts
diamonwiggins Nov 24, 2025
1180e4a
fix unit test
diamonwiggins Nov 24, 2025
55dc775
address feedback
diamonwiggins Nov 25, 2025
72f4407
fix naming
diamonwiggins Nov 25, 2025
7df308f
fix lint
diamonwiggins Nov 25, 2025
8c88bd4
fix conflict
diamonwiggins Nov 25, 2025
4ce450f
add missing kURL prefixes to variables and function names
diamonwiggins Nov 25, 2025
9c442e7
rename runMigrationAPI to runKURLMigrationAPI
diamonwiggins Nov 25, 2025
1d3bda0
fix naming comprehensively
diamonwiggins Nov 25, 2025
48d6f2a
fix naming comprehensively
diamonwiggins Nov 25, 2025
0ebabe4
Merge branch 'diamonwiggins/130971/kurl-migration-api-foundation' of …
diamonwiggins Nov 25, 2025
fa5cbfb
Merge branch 'diamonwiggins/130971/kurl-migration-api-foundation' of …
diamonwiggins Nov 25, 2025
e6fc6ef
Merge branch 'diamonwiggins/130971/kurl-migration-api-foundation' of …
diamonwiggins Nov 26, 2025
83e9833
f
diamonwiggins Nov 26, 2025
5ee27a9
f
diamonwiggins Dec 1, 2025
42a66be
migration status persistence
diamonwiggins Dec 1, 2025
51ce392
resolve conflicts
diamonwiggins Dec 2, 2025
ef83d13
f
diamonwiggins Dec 2, 2025
1c3c099
initialize controller in handler
diamonwiggins Dec 2, 2025
6173adb
address feedback
diamonwiggins Dec 2, 2025
852656e
fix test failure
diamonwiggins Dec 2, 2025
4ee5ceb
fix unit tests
diamonwiggins Dec 2, 2025
a77b58b
address feedback
diamonwiggins Dec 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions api/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ func (a *API) initHandlers() error {

// kURL Migration handler (Linux only)
kurlMigrationHandler, err := kurlmigrationhandler.New(
a.cfg,
kurlmigrationhandler.WithLogger(a.logger),
kurlmigrationhandler.WithController(a.kurlMigrationController),
)
Expand Down
23 changes: 19 additions & 4 deletions api/internal/handlers/kurlmigration/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,23 @@ import (

"github.com/replicatedhq/embedded-cluster/api/controllers/kurlmigration"
"github.com/replicatedhq/embedded-cluster/api/internal/handlers/utils"
"github.com/replicatedhq/embedded-cluster/api/internal/store"
"github.com/replicatedhq/embedded-cluster/api/pkg/logger"
"github.com/replicatedhq/embedded-cluster/api/types"
"github.com/sirupsen/logrus"
)

type Handler struct {
cfg types.APIConfig
logger logrus.FieldLogger
controller kurlmigration.Controller
}

type Option func(*Handler)

func WithLogger(logger logrus.FieldLogger) Option {
func WithLogger(log logrus.FieldLogger) Option {
return func(h *Handler) {
h.logger = logger
h.logger = log
}
}

Expand All @@ -29,15 +32,27 @@ func WithController(controller kurlmigration.Controller) Option {
}
}

func New(opts ...Option) (*Handler, error) {
h := &Handler{}
func New(cfg types.APIConfig, opts ...Option) (*Handler, error) {
h := &Handler{
cfg: cfg,
}

for _, opt := range opts {
opt(h)
}

if h.logger == nil {
h.logger = logger.NewDiscardLogger()
}

// Create controller internally if not provided via option
if h.controller == nil {
// Create file-based store for state persistence
dataDir := h.cfg.RuntimeConfig.EmbeddedClusterHomeDirectory()
s := store.NewStoreWithDataDir(dataDir)

controller, err := kurlmigration.NewKURLMigrationController(
kurlmigration.WithStore(s),
kurlmigration.WithLogger(h.logger),
)
if err != nil {
Expand Down
Loading
Loading